Package Updates

* GCA Prime Sheet

Updated to allow users to customize the contents of the Attributes TopLine and the Attributes OCS Style blocks. In both cases, there are now options to allow the user to enter text in a specific way that tells GCA what attributes to display, and whether they should be in addition to, or instead of, the default items.

The Attributes OCS style options come in two chunks, one for the left half of the display area (ST, DX, etc.) and one for the right half of the display (HP, Per, etc.). The right half allows for an additional field to specify if there should be an extra box, such as is used for tracking the current value of the attribute.

Roll up a bit of text (b208)


* Modes

New Mode function RollToText() as String will now return the ‘extra roll info’ text. This is a string like this: “Roll to [mode]: [charskillscore]”. This is the text normally displayed when the user turns on ‘extra roll info’. Having GCA generate this text instead of pushing it onto the sheets allows for customizing it more easily. You can access the function directly or as TagItem(“rolltotext”).

To customize the returned RollToText, there are now the RollTo() and RollToPhrase() tags. These allow you to replace the extra roll info of “Roll to” with something else. RollTo() simply replaces the “Roll to” text with the text specified. RollToPhrase() provides a way to fully replace the entire “Roll to [mode]: [charskillscore]” phrase with a new one you specify, with Text Function Support and two special variables: %mode% for the name of the mode, and %score% for the value of charskillscore; variable replacement is done before Text Functions. If RollToPhrase() exists it overrides any provided RollTo().

* GCA Prime Sheet

Updated to use RollToText() for modes if run on a newer version of GCA.

* GCA5.xsd

Added elements ‘rollto’ and ‘rolltophrase’ to GCAAttackMode block

Bit do what? (b207)


* Appearance / Biographical Data

Added some error trapping for mismatched parens and braces.

Adjusted the window construction to allow for the error lister.

Changed ‘Build’ field to use the ‘bio_build’ character tag.

Added fields for ‘Eye Color’ and ‘Hair Color’ as character tags ‘bio_eyecolor’ and ‘bio_haircolor’, respectively.

Changed the ‘Appearance’ option on the Character menu to ‘Appearance / Biographical Data’.

* Armor

Armor items so far have denoted if they are flexible in the same way the books have: with a * at the end of the DR value. Now we have more options.

There is now support for the new flexible() tag, that can be used to denote whether the armor is flexible or not. Any of flexible(0)flexible(no), or flexible(false) will cause the armor to be marked as NOT flexible, while any other value will cause the armor to be marked as flexible (but using flexible(yes) or flexible(true) is recommended for clarity). Using this tag will override any existing * marker.

To apply bonuses to ‘flexible’, apply a string bonus to flexible$ of “no” or “false” to turn flexible off, or “yes” or “true” to turn flexible on. You can also target any positive adder bonus to turn flexible on, or any negative adder bonus to turn flexible off. The string bonus overrides the adder bonus if both are present.

GCA will calculate a charflexible() tag based on the * marker or the flexible() tag, and any bonuses targeted at ‘flexible’. If the armor is determined to NOT be flexible, charflexible() will NOT exist and will be deleted if it did exist. Likewise, GCA will add the * to the end of the DR value if flexible, and remove it if not flexible.

As with all other calculated character-specific calculated features, exporters and sheets will want to use charflexible() if they need it for something, but any flexible armors will still be marked with the * for user reference, so if those values are also used, you may need to remove the * from the end.

* TL

When creating the tl() for equipment items, GCA wouldn’t always preserve the special suffix for some items (such as ^) when setting that item to the character’s TL. Now it should.

I’ve also created the NumericTL() as Integer function on GCATrait, which returns an integer version of the TL for the trait. This can be retrieved through TagItem or :: as ‘numerictl’. In descending order of priority, this function will check the item’s tl(), then techlvl(), and lastly the character’s TL; then remove any suffix, and finally try Solving for a numeric value.

* #ForceNeeds

GCA’s usual behavior when processing templates is to *not* allow auto-adding of needs() items to the character. This is because that behavior may conflict with things the template has yet to finish doing, and could easily result in duplicate traits being added to the character when that is not intended.

You can now use the special directive #ForceNeeds in an adds(), addsorincreases(), or creates() tag to specify that the trait being added should override GCA’s usualy behavior and allow the needs() auto-add system to be employed.

As with #NoNeeds and #DoNotOwn you should include #ForceNeeds in the main clause of the tag data, before any ‘respond’ or ‘with’ portion, else it be considered part of the other clauses and not work correctly; sticking it into the name section is best.

* Build Campaign Book

I’m trying to rebuild this dialog to actually display properly for users in Windows 11. This is my second attempt, since I was rather unhappy with the previous one, whether it worked or not.

The dialog has now been restructured and arranges the window elements differently.

* TagDefs.xml

Updated to include flexible() and charflexible().


Probably no December release

It looks like I’m going to miss the release for December that I had planned on. I’m trying to fix a dialog display issue that appears to be the result of Windows 11 interactions, but I don’t have Windows 11 myself. So it’s going very slowly.

I’m continuing to fix new bugs as people find them. I’m continuing to add support for new things. I’m just not going to make this particular informally intended release date.

Although I should probably point out that I had always intended to release updates quarterly, at the fastest. They have occurred more often than that so far due to various crash-bugs that kept coming up. If those are mostly trapped at this point, the release pace should continue to be a bit slower in the future.

(Package updates, for books and sheets, available through the Check for Updates package manager, will continue to happen whenever they need to happen, as quickly as they need to happen.)

Package Updates

* Core Supplemental (Official Character Sheet)

Updated to use newer drawing routines for the protection image.

* Package Updater

Updated to show GCA version number in the top text block.

When the Details button for an update is clicked, the text has been updated to show all details when both updated files and obsolete files are involved.

Biographical imperial bug bits (b206)


* Bug Fixes

When reading a book file, if the last character of content in the file was a line-continuation character, GCA could get stuck in an infinite loop. Fixed.

* Options dialog

In the Characters box, the option ‘Show all status messages when processing templates’ makes more sense as a book-processing option since the output is for debugging. That option has been moved to the Book Processing box.

* Metric and Unit Conversions

Since GCA attempts to perform automatic unit conversions when various values are in standard/metric and the character is set to the other, checking or unchecking the Metric checkbox on the General Information box should trigger a character recalculation so that items can be converted to match the new setting. That will now happen.

Previously, GCA’s automatic unit conversions only used the Game Metric values (p. B9). GCA now supports either Game Metric or Real Metric (p. B9). Game Metric uses simpler, ‘close-enough’ conversion constants while Real Metric uses more exact conversion constants (to 3 decimal places). This support is GCA-specific, not character-specific, so all loaded characters use the same conversion values.

You can change GCA between the available sets of conversion constants in the new Unit Auto-Conversions box in Options. This box also offers the option of turning automatic conversion off, and leaving units and values alone. Some traits have unit conversion built into their calculations, and these will still calculate themselves based on the Metric setting regardless of your setting for Unit Auto-Conversions.

* Per-Die result caps

You can now cap the results returned by the functions that return the dice for base swing (@baseswdice) and base thrust (@basethdice) damage. I believe the recommended dice cap is 7; any positive integer value is allowed. These functions are primarily used for giving per-die bonuses to Boxing, Brawling, and karate, but would also affect Weapon Master damage bonuses or any other such usages.

There are now default character options and character options to set these, in the respective Rules boxes.

Because these are new options settings that can be set by files, also, the FastLoad file version has been changed, and FastLoad files will be rebuilt. The book file settings are “CapDamageBonusPerDie=True” to turn capping on, and “CapDamageBonusPerDieAtXDice=X”, where X is the cap to set (default is 7).

These settings are now also included in Build Campaign Book.

* Appearance / Biographical Data

The Appearance dialog has been updated, and it is now called Appearance / Biographical Data. The updated dialog now has two tabs: Appearance, which contains everything from the existing dialog; and Biographical Data, which contains a grid of biographical data fields. The Biographical Data tab also includes everything from the Appearance tab, so if you prefer it, you can simply use this tab and won’t have to switch between them.

Biographical data includes a bunch of possible default fields which you can use. All of these are stored in the character’s tags (except for those fields also on the Appearance tab, which have custom data slots on the character). The character will also get a tag called ‘biodatacontrols’, which tracks what all of these tags are, whether they are visible, and what prompt is shown to the user if it isn’t the same as the tag name (which is the case for most of them since this system uses tag names such as ‘bio_dob’ for ‘Date of Birth’ and ‘bio_family’ for ‘Family’).

You can rearrange the order of entries on the grid using drag-and-drop. You can hide fields you have no interest in using the right-click menu. If you change your mind, you can also use Show Hidden on the right-click menu to see the hidden items, then select them and pick Show to unhide them.

I’ll probably also add the ability to create new fields to include here, but that’ll require another dialog for tag names and prompts and such, so probably not right away.

The defaults are currently created by GCA, but the show/hide settings are per-character. There’s currently no way to universally hide any of the fields to make them hidden by default on new characters.