b76
* Various
Trying out copies of the TL/Speed/Dodge/damage blocks from Classic Attributes on the General Information box in Unified.
Changed output of Windows version in the startup log.
If GCA finds gca5.prefs in its home folder, it will run in “portable” mode.
Added UI for changing User Folders (aka the various Bins) to Options.
Added an option to Options to allow/disallow auto-setting of Tablet mode when GCA starts up.
Added an option to the main window’s View menu to force Tablet Mode on or off. If on, auto-setting on startup is ignored.
Fixed a bug in the code that sets up trickle-thru calculations.
Updated the error messages related to plugins.
* Fencing Weapon
Added support for a fencingweapon() tag. (Maybe it should be lightweapon() instead?) The value for this tag, for current testing purposes, should be ‘char::enclevel’ such as fencingweapon(char::enclevel) because that will force GCA to create an association between the character and the trait, to ensure it’s recalculated when GCA’s encumbrance level changes. The given value of the tag is not used.
When this tag exists, and the character’s encumbrance level is above 0, GCA will create a charfencingpenalty(-X) tag, and add an item to the bonus list for encumbrance level affecting fencing weapon attacks and parries.
GCA will then use the charfencingpenalty() value to reduce the charskillscore() for the weapon. It then adds that value *back* before calculating the charparryscore() based on charskillscore(), and then reduces charparryscore() by that amount.
Net result: charskillscore() is reduced by EncLevel for the attack tables, and charparryscore() is reduced by EncLevel for the attack tables, and charparryscore() is not affected by ‘double dipping’ the encumbrance penalty.
* Conditional Select()
Added support for the new conditional() tag in the Select() structure. The conditional(), if it exists, must evaluate to True (a non-zero result) in order for the Select() to be processed.
triggers(_ select(_ text("Select with Conditional. You'll never see this one."), conditional(@sametext("alpha", "bravo")), itemswanted(atleast 1), list(_ DI:Alcoholism, DI:Stubbornness, DI:Workaholic_ )_ )_ )
In this example, @sametext(“alpha”, “bravo”) evaluates to 0, so it would not be shown. Conditional() is, obviously, math enabled, so it supports the full Solver functionality to determine if the conditional() applies.