Functionality Revision History

From HLKitWiki
Revision as of 00:39, 12 May 2009 by Rob (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Context: HL KitKit Reference 

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.

  1. Extended "foreach" statement to support "foreach thing in component" syntax, which processes all things derived from a specified component.
  2. Extended "foreach" statement to support "foreach bootstrap in thing", which processes all things that are directly bootstrapped by an identified thing.
  3. 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.
  4. The "isentity" target reference on picks and things indicates whether the item has a child entity attached.
  5. The "isgizmo" target reference behaves equally for things as well as picks.
  6. 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.
  7. 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.
  8. Bootstraps can selectively override the values assigned to fields within the bootstrapped pick via the "assignval" child element.
  9. 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.
  10. History tracking for fields with "stack" behavior supports the "=" operator, which overwrites the current value with the new value specified.
  11. 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".
  12. 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.
  13. The "history" attribute for fields has a "changes" option available that omits any adjustments that yield no actual change, such as "+0" or "*1".
  14. When "best" history tracking is used for fields, any adjustments that fail to apply a meaningful change are ignored (like the "changes" behavior above).
  15. Portals of type "table_fixed" are automatically omitted by the auto-place mechanism when empty.
  16. Field history tracking is now allowed for fields that possess a Finalize script.
  17. The "output_dots" portal type was added to make it easy to insert a series of dots between two portals within character sheet output.
  18. 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.
  19. The "ischanged" target reference on fields and values returns whether the field value has been changed in some way from its original starting state.
  20. The "pushtags" and "pulltags" target references now support containers as either the source or destination, or both.
  21. 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.
  22. 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.
  23. 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.
  24. 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.
  25. 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.
  26. The NewCombat and NewTurn scripts are always invoked *before* the Initiative script is invoked for any actor.
  27. 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.
  28. 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.
  29. The primary and secondary initiative values for each actor will persist if they are not set to a new value within the Initiative script.
  30. The InitFinalize script can be specified in the definition file and will be used as the Finalize script for the "initiative" field.
  31. 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.
  32. The "gaphorz" and "gapvert" target references on visual elements have been renamed to "gapx" and "gapy", respectively, to eliminate confusion regarding their behavior.
  33. 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".
  34. Printing of a spillover page continues until a page is generated that contains no data to output, at which point printing continues with the next page.
  35. Encoded text supports the indenting of the first line of a paragraph via the "{indent value}" syntax. Both normal and hanging indents are supported.
  36. Menu styles possess the "droplist" and "droplistoff" attributes, allowing the author to override the bitmaps used for the drop-arrow.
  37. The LeadSummary script is allowed to call procedures, which must be either the "container" context or "any" script type.
  38. Picks support the "uniqindex" target reference, which returns a value that uniquely identifies the pick throughout the entire portfolio.
  39. Only "derived" fields may utilize a Calculate script.
  40. The "output_separator" portal can be used within sheet output to insert an solid black line within the dimensions given.
  41. The "isroot" target reference (of picks) is accessible from the "template" script context.
  42. If the "@message" special symbol is set within an Eval Rule, but the "@summary" symbol is not, the returned message text is automatically used as the summary for display on the validation summary bar.
  43. The "exprreq" and "pickreq" elements on things support the "onlyonce" and "issilent" attributes, exactly the same way as they work on standard "prereq" elements.
  44. The "image_literal" portal supports the "isbuiltin" attribute, which identifies a bitmap that is provided by HL for general use.

V3.2 Revision History

The following changes and additions were introduced in V3.2.

  1. The dossier being output adds a "dossier.<id>" global tag to the portfolio during output. This allows scripts to check which dossier is being output.
  2. An "EndCombat" script is invoked on each actor when combat ends.
  3. An "endcombat" procedure type is supported for use with the EndCombat script.
  4. The "meta" text encoding allows the alignment behavior of bitmaps to be controlled relative to the position of text when mixing text and bitmaps.
  5. The scripting language supports the "doneif" statement to simplify coding.
  6. The "state" script context supports the "thing[id]" transition to directly access all facets of a thing.
  7. The "modify" target reference for fields supports the "#" operator, which suppresses the display of any operator within the resulting history report.
  8. The "modify" target reference for fields supports the "$" operator, which inserts a history entry with no field value and only a text description.
  9. Things possess the "holdlimit" tag expression to restrict the types of things that can be held by the thing within the gear containment hierarchy. This makes it possible to assign laser sights and such to weapons.
  10. The "it_field" input thing has an optional boolean "multiline" attribute to support the entry of multi-line text fields within the Editor.
  11. Thing-based menus can specify an alternate field to display for the menu item via the "namefield" attribute.
  12. The "heromatch" target reference on picks and containers behaves the same as "tagmatch", except that the initial context is always assumed to be the current actor. This allows arbitrary matches against the hero from anywhere.
  13. Sources possess both the "maxchoices" and "minchoices" attributes. These allow an author to specify a minimum and/or maximum number of child sources that can be selected by the user.
  14. Added the "plaintext" intrinsic function to the scripting language.
  15. Added the "amendthing" target reference to the "thing" script context, which allows pertinent feats in 4E to directly modify the powers that they impact.