* Added a sort-of explainer tile to the top of the Default Character Options tab in Options.
* Added an option to allow multi-line/word-wrapped trait names in Classic View trait lists. (It is Off by default.)
* Updated the image for the Export PDF button in Print Preview.
* Fixed bug that prevented loading a character with a chosen library, if that library was already loaded by a character and any changes were made to the library books, requiring the library to be reloaded.
* Fixed a couple issues in the Find Traits dialog.
* Fixed crash if changing a sheet in Sheet View when no character is loaded.
* I’ve added support for a base() tag for advantage-type traits. If base() exists, GCA will calculate it, and add it on to the final level of the advantage as a ‘base value’ instead of the normal base value of 0.
* Adjusted the order for calculating secondary characteristics for traits (damage, reach, skill used, etc.) because calculating the skill used was being done after damage, when it should have been done before damage; certain bonuses (such as weapon master) are based on character skill. This fixed a problem with damage values for such instances being a step behind unless you did a recalc everything, and now they stay current.
* Messed about with the Explainers again. They’re now even easier for me to create and adjust, and I think they look more consistant with other elements across the program.
* Added a dialog for the character’s messages. This content already appears as a box in Compact View, but it’s now accessible as a dialog from the Character menu.
* Character messages are now saved with a character, so they’ll stick around unless dismissed.
* The color selections for the Compact View boxes as set in the Colors & Layout dialog should now be remembered.
* Modifiers now support downto() and displaynameformula().
* Modifiers now have access to a some additional values through TagItem(): levelname, shortlevelname, caption, levelcaption, displayname, and basedisplayname. (Like Caption returns values using shortname(), LevelCaption returns values using shortlevelnames(); shortlevelname and levelcaption are aliases, and return the same value.)
* Modifiers now support a new directive, #format, within the shortname() tag, which tells it to format the output in a particular way–pretty much just like displaynameformula(), but obviously set up a tad differently. It is used like so: shortname( #format $val(me::levelname) ). #Format must be the first part of the tag value, and everything that follows is the format/formula to use. If you need spaces on one end or another, enclose the text after the #format directive in quotes or braces.
* These changes to modifiers mean that you can now define a modifier something like this:
<Self-Control> Self-Control Roll, *0.5/*1/*1.5/*2, upto(4), downto(1), group(Self-Control), page(B121), shortname(#format $val(me::shortlevelname) ), levelnames("15 or less, almost all the time", "12 or less, quite often", "9 or less, fairly often", "6 or less, quite rarely"), shortlevelnames(15 or less, 12 or less, 9 or less, 6 or less), displaynameformula( You resist on a roll of $val(me::levelname) )
(I set up this example in order of increasing costs, which is in decreasing order of Roll value. It could, of course, also be set up for the reverse order, instead.)
Inside GCA, the user sees “Self-Control Roll” in the Available Modifiers list; when added to the character they see “You resist on a roll of 15 or less, almost all the time” in the Applied Modifiers list; and for the caption within the item using this modifier, they see “15 or less, *0.5”. If the user then increments the modifier, the values change appopriately to the next levels.
Further, if you need some item to check for the existance of this modifier with @hasmod(), you can simply use @hasmod(Self-Control Roll), rather than needing to check for the name of each individual level, as is the case now with each level being a separate modifier.
* Made a small code adjustment to how the Edit dialog displays an item’s included modifiers.
* Added a warning to the log when a PDF can’t be launched because it wasn’t found.
* Added a safety check to ColorBlockSheet so it won’t try to print non-existant current loadout information.
* Updated OfficialCharacterSheet to add an option for the color of the ‘Included’ and ‘Conditional’ lines for bonuses.