Functionality Revision History
Beginning with the V3.1 release, a summary of the functional changes and enhancements to the Kit within each release is provided below.
V3.1 Revision History
The following changes and additions were introduced in V3.1.
- Extended "foreach" statement to support "foreach thing in component" syntax, which processes all things derived from a specified component.
- Extended "foreach" statement to support "foreach bootstrap in thing", which processes all things that are directly bootstrapped by an identified thing.
- Extended "foreach" statement to support "foreach bootstrap in entity" for use within Description scripts, which processes all things directly attached to the entity associated with the current thing context.
- The "isentity" target reference on picks and things indicates whether the item has a child entity attached.
- The "isgizmo" target reference behaves equally for things as well as picks.
- Picks with attached entities are treated the same as minions with respect to the scheduling of the final condition test. This means the final condition test is scheduled at the time of the latest condition test instead of at the earliest script. This change ensures that a single condition test can be defined on a component so that all child picks can safely test their live state, which depends on the live state of the gizmo, which depends on the live state of the pick that attaches the gizmo.
- When auto-tags are assigned via a bootstrap with a condition test, the tags are only assigned to the pick when the condition test is satisfied.
- Bootstraps can selectively override the values assigned to fields within the bootstrapped pick via the "assignval" child element.
- The "editthing" element can be assigned a "prefix" attribute, which will be used by the Editor to setup an initial unique id for new things created within the Editor.
- History tracking for fields with "stack" behavior supports the "=" operator, which overwrites the current value with the new value specified.
- If a field history entry adds or subtracts a negative value, the operator is automatically inverted and the value is negated, changing entries from "+-3" to "-3".
- The "history" target reference for fields and values supports an optional starting value to be shown in the report. Also, the splicing text can be omitted, in which case ", " is used.
- The "history" attribute for fields has a "changes" option available that omits any adjustments that yield no actual change, such as "+0" or "*1".
- When "best" history tracking is used for fields, any adjustments that fail to apply a meaningful change are ignored (like the "changes" behavior above).
- Portals of type "table_fixed" are automatically omitted by the auto-place mechanism when empty.
- Field history tracking is now allowed for fields that possess a Finalize script.
- The "output_dots" portal type was added to make it easy to insert a series of dots between two portals within character sheet output.
- Header portals used within dual-purpose templates may now use scripts, although the initial script context is undefined and the author must immediately transition to a valid context.
- The "ischanged" target reference on fields and values returns whether the field value has been changed in some way from its original starting state.
- The "pushtags" and "pulltags" target references now support containers as either the source or destination, or both.
- The pseudo-field "thingname" provides access to the original name assigned to a thing, which was otherwise inaccessible if the name of a pick was either modified via a script or renamed by the user.
- The "scenevalue" target reference provides a mechanism for managing "global" values within the context of a scene to allow communication between the scene and all layout and template scripts within it.
- The global "state" script context provides support for setting and getting persistent values that are global and exist at the portfolio level, outside of any actor. This mechanism makes it possible to manage state across the entire portfolio.
- The management of global, persistent, named sets of values is provided within the "global" script context via the "setrandom", "setextract", "setremain", and "setdiscard" target references.
- The NewCombat and NewTurn scripts possess an "@isfirst" special symbol, which indicates whether the script is being invoked on the very first actor. This allows one-time handling at the start of a combat or turn that spans all actors.
- The NewCombat and NewTurn scripts are always invoked *before* the Initiative script is invoked for any actor.
- The "shortname" field is now synthesized at a priority of 100 within the "Render" phase, if that phase exists, else in the last phase of evaluation.
- The minimum font size supported by "sizetofit" is now 6-point when rendering to the screen and 4-point when rendering onto sheets for printouts.
- The primary and secondary initiative values for each actor will persist if they are not set to a new value within the Initiative script.
- The InitFinalize script can be specified in the definition file and will be used as the Finalize script for the "initiative" field.
- The "initminimum" and "initmaximum" attributes were added to the "behavior" element in the definition file, dictating the lower and upper bounds for the initiative value when the user adjusts the value via the incrementer in the TacCon.
- The "gaphorz" and "gapvert" target references on visual elements have been renamed to "gapx" and "gapy", respectively, to eliminate confusion regarding their behavior.
- The various "gap" attributes on table portals have been renamed to eliminate confusion about their use. The "showgaphorz" and "showgapvert" attributes are now "showgapx" and "showgapy", respectively. The "choosegaphorz" and "choosegapvert" were renamed to "choosegapx" and "choosegapy".