ADDITIONAL NOTES FOR D20PRO 3.7.3.3 CONTENTS 0. Rules Zip Update 1. Creature class template library (Class library) explained 2. Map segmentation and you. 3. Map Ping 4. Bug fixes for the Feature Processing Engine 5. Javascript -> D20PRO engine enhancements RULES ZIP UPDATE (when did that show up?) ========================================================================================= While working with Golkiwu on some DragonCon prep, we uncovered a bug in the 3.5 calculate saves method which was incrementing saves each time a creature was edited when they were under the effect of a feature. This has been corrected now and all the 3.5 derived rules jars are available for dropping into your 3.7.3.3 D20PRO builds. Drop them into your judge/addon/rules fodler and simply replace the files that were there. CREATURE CLASS TEMPLATE LIBRARY (CLASS LIBRARY) EXPLAINED ========================================================================================= This build includes an intial pass of the new Creature Class Library. It does not provide an editor UI for the classes yet, so it's functionality is somewhat limited from an users perspective. However, the core move from classes.txt to classes library logic is in place. When you first load a game or new campaign using this build, we attempt to do an auto- import of your current classes.txt file to the Library. If this takes longer than the boot time of your campaign, you may be presented with an import wizard. -->> PLEASE cancel the creature class import wizard on first load. <<-- If you want to reload the classes.txt in this build (it's crude still) you need to open Rules->Class Library and then select all the classes and delete them. Yes, this might take a couple of attempts to get them all out of there -- the system is syncing between the old Class Binder and the res folder CreatureClassTemplates folder. Once the list is cleared out, just open Options->Network/GM panel and click on 'Refresh Resources'. If this doesn't work, select a creature from the Content Library or the map and open the Creature Editor View ( 'e' key with a creature selected ). Then try the refresh window again. I'm still debugging this behavior, but this round-a-bout method corrects the confused state between the CreatureClassTemplateLibraryService and the older CreatureClassTemplateBinder (yeah, those names are massive and make my fingers ache just thinking about how many times I've typed them...). Okay, so that's it for now on the Class Library. Once the UI is ready, you'll be able to create and update Creature/Class Templates directly from the Rules panel in game adding and removing classes at will. (oh, one more thing to note. IF you disable a class with spell casting capabilities, then re-enable it. you'll have to reload your D20PRO session for anyone to pickup the spell- casting capababilities on their character sheet. This bug has been the bane of my time working on this and why the UI is delayed. I hope to resolve this immediately following GenCon so we can roll out the UI and let folks start creating class templates at will!!) MAP SEGMENTATION AND YOU ======================================================================================== Another cool feature of this build is the addition of Map Segmentation to the Map View. What is segmentation and why is it cool? Segmentation is our term for the splitting up of grid units into sub-grids; i.e. segments. So if I said a map had a Segmentation Per Cell value of 1, then there would be 1 segement per grid unit. This is the standard you're used too where templates lock onto the corners of the grid units. If you updated your Segmentation Per Cell value to 2, then you would find that you could target the mid point of any edge or even the center of your grid units. This is the new default by-the-way. This lets you drop that fireball in the center of a grid unit center- ed on your target, instead of at the vertice nearest the target! You can access any given maps Segmentation Values from the Draw Tools->Manage Tiles panel. With the Draw Tools->Manage Tiles panel open, click on 'Edit Map Properties...' along the bottom of the window. This will open up the resize, recolor tool window and also provide a drop down allowing you to select your Map Segementation (values 1 - 10). Please note, this is another system that's new and hasn't been throughly run through it's paces, although it's fairly solid in our internal testing. Sometimes the shape of a map template can get smushed when using segmentation values above 5. I know what the cause of this is, so will be working to correct the percision issue which causes it post GenCon. MAP PING ======================================================================================== Map Ping is a simple to use way for players and GM's to call out a location on the map without adding a permanent mark to the map space. Map Ping is accessible from the Right- Click menu and allows you to select a color for the ping. The location of the mouse when right clicked detemines the location of the ping (for now). This is a super helpful function which will get enhanced as we move forward with the Map layers update that is coming up next in the dev cycle. For now, it is what it is (which is cool by the way!). It will definitely get more love in the near future! BUG FIXES FOR THE FEATURE PROCESSING ENGINE ======================================================================================== Yeah, this one is long overdue. We finally completed work (mostly) on fixing the Feature Behaviors such that On Enter, On Exit, On Caster, On Target and even the elusive On Cancel triggers fire correctly. The one caveate and why I stated "mostly" above, is that On Cancel doesn't fire any associated effect node when the trigger occurs. However, it does process any 'Features to Run' or 'Scripts' which are attached to the 'Effect Node'. The problem is obvioius, but the fix is elusive -- so for the time being, if you have any additional effects you want to have occur when a spell/feature ends or is canceled, you'll need to hang them from the 'Features to Run' node or as a script in the 'Scripts Node'. Behavior for a Feature/Spell is as follows: When launched. + Process all Value Nodes based on the current targets (re-targeting re-calculates the value nodes). + Store Value and process for resistences/vulnerability/immunity (ER) + Wait for GM to approve usage (click 'ok') + Process each feature in order using triggers to determine validity; NOTE: if a feature has Apply Immediately checked, it will be applied during the casting action even if the trigger is not met. Triggers are: NONE - Default. If the feature applies one time or only needs calculation on initial casting leave the Trigger as None. On Caster - Fire this effect on each subsequent caster initiative for the duration of the feature. On Target - Fire this effect on each subsequent target initiative for the duration of the feature. On Enter - Fire this effect on any creature entering the templated zone associated with the feature. On Exit - Fire this effect on any creature exiting the templated zone associated with the feature. On Stay - Fire this effect on any creature who ends (default) it's turn in the templated zone associated with the feature. On Cancel - Fire this effect (see above!!) when the effect ends for any reason. In addition to the On Cancel effect node, any duration based effects currently in play on targets will be removed. Excecution Order: Use this option to specify if a given effect will run at the start of a turn/round or at the end. This can be used to control the following trigger types: TRIGGER -> INITIATIVE EVENT FIRING TIME --------------------------------------- On Caster -> Round Start|Round End|Turn Start|Turn End On Target -> Turn Start|Turn End On Stay -> Turn Start|Turn End Cancel Condition: Use this option to autolink a cancel event to a specific effect. This is ideal for handling things like difficult Terrain (although movement speeds is still wonky... fyi). TRIGGER -> EVENT TO TRIGGER CANCEL ---------------------------------- On Stay -> On Exit On Enter -> On Exit JAVASCRIPT -> D20PRO ENGINE ENHANCEMENTS ======================================================================================== We've added a few new script connections to the Javascript API. The complete list of D20PRO specific methods for use in your scripts is shown below: caster - Caster provides access to the caster's CreatureTemplate object. This is the data object which contains details about a creature such as abilities, hit points, traits, etc. casterInPlay - CasterInPlay provides access to the caster's CreautreInPlay object. This is the map object that represents a creature on the map itself. Details of this object includes location, size, footprint, etc. classBinder - ClassBinder provides access to all loaded classes, races and variants. This object will be replaced by the class library in the near future. The binder command is still valid when using the Class Library (library items are accessed through the older binder interface!) classLevel - returns a calculated class level for a given creature. console - Console allows some remote tool manipulation and map positioning effects. Mainly console is used to access tools such as fog of war, template, and movement. effect - Effect provides access to the current effect in progress. This allows for directly changing elements of an effect such as template size, target list, duration, and even damage types. feature - Feature provides access to the current feature in progress. This includes access to the current effect as well as all other possible effects the feature might contain. The name, cost, save conditions and other feature aspects can be accessed from this point. gameLog - GameLog provides access to read/write to the game log. light - Light provides access to create lights on the map or attached/tethered to creatures. Owner and Tethering are both available to be set when a light is created. map - Map provides access to the current map in which the feature/script is being executed. This is a blanket access to map name, size, bounds, etc. role - Role provides access to the current role of the caster -- player or gm owned target - Target provides access to the current target. Generally this is not used as targetsInPlay or targets provide more versatility. Target provides creature template level access to the target. targets - Targets provides access to a list of creature templates for all targeted creatures. targetsInPlay - TargetsInPlay provides access to a list of creatures in play objects for all targeted creatures. The "In Play" objects handle the map location, size, and footprint of the creature on the map. Creature Template can be accessed for each "In Play" object as well. In the coming weeks, we'll update the guide to have examples for using these methods so as to help you build better scripts!! With the above list you can change the size of a creature, teleport them around the map or even between maps, create light sources and tether them to a target and much much more. - Owlbear and the D20PRO Team!