Author Archives: Armin

Preset bits (b152)

b152

When modifiers are created from book data, having a group() tag in the modifier’s tag data was overriding the assignment of the group based on the subhead. When the group() tag was incorrect, this created a problem. Now, the subhead is always used to assign the group(). If Verbose logging is enabled while loading books, GCA will log a complaint when this happens.

It should now be possible to drag-and-drop an image onto the Protection dialog to set the body image for the current loadout.

Made a small change in the version testing of book files so that GCA now assumes an unreadable or non-existent version specification in a data file means that the file is older than the program version, instead of newer.

* Sheet Options – Presets

Sheet Options now supports preset options that can be set from a new Available Presets button. This button will appear only if preset options are found for the current sheet.

Sheet authors can include preset options by including saved profiles in a file called ‘presets.prefs’ in their plugin folder. GCA will check for that file when the user changes sheets in the Sheet Options dialog and gather up all the profiles in that file that are for the selected sheet.

When the user clicks the Available Presets button, they’ll get a dialog showing the available presets. If they select one, those settings will then be imported into the currently active profile.

The sheet plugin will be asked to upgrade options before the import, same as when the user uses the Import feature.

* Sheet Options – Checkboxes

Those sheet options that display a list of checkboxes for the user to check now have buttons to check all the boxes or to clear all the boxes.

* Data Files (posted via Updater on 2021 August 1)

GURPS Magic 4e.gdf updated modifiers for “One College Only (%College%)” and “One College Only (%College%)” to remove the group() tags.

* Official Character Sheet (posted via Updater on 2021 July 28)

You can now specify the image to use in the GURPS logo slot (upper left corner) of the sheet. You should be able to use most PNG, JPG, or BMP images. Note that the image will be sized to fit a space of 1.75 x 0.5625 (1 3/4 x 9/16) inches on the front, and a slightly smaller 1.625 x 0.5 (1 5/8 x 1/2) inches on the back. If your image isn’t exactly the right dimensions, it will be aligned to the top of the space, centered horizontally.

Added an option to include Extra Roll info in the trait lists, selected by list type. This is now Yes for all lists by default. This includes Roll To: text as a smaller-text additional line under the trait item, similar to how bonuses or notes are printed.

Added an option to include the Bonus and/or Conditional bonus text for traits, selected by list type. These are now Yes for all lists by default. The sheet was already printing these, but now you can turn that off.

Added an optional Encumbrance, Move, Dodge table to use in place of the default one. This alternate table is of the same design as the Encumbrance & Move box used on the Unified and Classic views, so it will show the movement rates for whatever active movement modes the character has. This option is No by default.

Smoothed out some issues with the printing of the Block values on the front page when using shields from the active loadout.

Now, for traits, only the bonus/conditional text is printed in the user-specified bonus text color. Description and extra roll text is printed in the sheet color, while user note text is printed in the user text color.

Added an option to print DR by hit location in the DR box. It will increase the size of the box by stealing space from Languages above and TL/Cultural Familiarities to the right, but the text will still be small. This is No by default.

The Feats of Strength box now includes labels for the weight and distance units.

Nothing but sheet bits

* Official Character Sheet

You can now specify the image to use in the GURPS logo slot (upper left corner) of the sheet. You should be able to use most PNG, JPG, or BMP images. Note that the image will be sized to fit a space of 1.75 x 0.5625 (1 3/4 x 9/16) inches on the front, and a slightly smaller 1.625 x 0.5 (1 5/8 x 1/2) inches on the back. If your image isn’t exactly the right dimensions, it will be aligned to the top of the space, centered horizontally.

Added an option to include Extra Roll info in the trait lists, selected by list type. This is now Yes for all lists by default. This includes Roll To: text as a smaller-text additional line under the trait item, similar to how bonuses or notes are printed.

Added an option to include the Bonus and/or Conditional bonus text for traits, selected by list type. These are now Yes for all lists by default. The sheet was already printing these, but now you can turn that off.

Added an optional Encumbrance, Move, Dodge table to use in place of the default one. This alternate table is of the same design as the Encumbrance & Move box used on the Unified and Classic views, so it will show the movement rates for whatever active movement modes the character has. This option is No by default.

Smoothed out some issues with the printing of the Block values on the front page when using shields from the active loadout.

Now, for traits, only the bonus/conditional text is printed in the user-specified bonus text color. Description and extra roll text is printed in the sheet color, while user note text is printed in the user text color.

Added an option to print DR by hit location in the DR box. It will increase the size of the box by stealing space from Languages above and TL/Cultural Familiarities to the right, but the text will still be small. This is No by default.

The Feats of Strength box now includes labels for the weight and distance units.

A bit more sheet (b151)

b151

Equipment lists in Unified and Classic always showed ‘lbs’ for equipment weights, even when the user had toggled the Metric stat. That is now fixed.

Added a missing word to the Protection Options explainer in the Protection dialog.

The UnassignedItemsAsLoadout() routine in the LoadOutManager didn’t return the All Unassigned Items loadout as a fully functional, ready to use loadout. Now it does.

* Official Character Sheet

Added an option to show a column for min ST on the Hand Weapons table. This is set to Yes by default and the column is labeled “ST”.

Added an option to include a Level and Parry score, instead of the Parry Adjustment, to the Hand Weapons table. This is now Yes by default, and the column is labeled “Lvl (Pry)”.

Added an option to include a Level column on the Ranged Weapons table. This is now Yes by default, and the column is labeled “Lvl”.

Added an option to have the “Lvl” and “Lvl (Pry)” columns printed as the first column after the name of the weapon. This is Yes by default.

Added options to highlight the new “Lvl” and “Lvl (Pry)” columns with a different background color and to set the desired color for the column. The default color is light sky blue but the default is to not highlight the columns.

Added an option to have shields in the Weapon tables print their Block score in the “(Pry)” slot instead of the usual ‘No’ for “(Pry)” since they block instead.

Added an option for the sheet to get the active shield (or two) from the current loadout, get the block score from that, and print that as the Block value on the first page. This is now the default behavior. Also added an option to print a diagram of the coverage arc for that shield next to the block value, which is also the default behavior.

Added an option to include a reminder message about adding DB to active defenses, which will appear under the Encumbrance/Move/Dodge and Parry/Block sections. This option is No by default.

Teensiest of bits (b150)

b150

Fixed an issue where the points bar didn’t always change some values to red or black correctly.

When GCA was checking prereqs, and a prereq was an attribute, GCA was attempting to set a value incorrectly, and that crashed the program. That is now fixed.

* Official Character Sheet

Added some optional blocks that can print additional attribute information: Feats of Strength, Perception, Checks (consciousness, death, fright), and additional attributes (other attributes not displayed elsewhere). Checks and Perception print in the right column above Skills, while Feats of Strength and Additional Attributes print in the left column above Advantages.

GCA Beta Preview, Release 2, Now Available

The second release of the GURPS Character Assistant 5 Beta Preview is now available.

The first release was announced in this post, which has more details.

This release fixes all the reported bugs so far, and includes some updates and other fixes, as detailed in the various build notes posted on this blog.

You can find the installer available for download here:

https://www.sjgames.com/gurps/characterassistant/gca5beta/gca5betapreview.zip

If you want to validate the ZIP after download, there is a PAR2 file here:

https://www.sjgames.com/gurps/characterassistant/gca5beta/gca5betapreview.zip.par2

The GCA5 installer is within the ZIP file. If you already have the previous Beta Preview release installed, this should install smoothly over the top in the same location. Once installed, this should be version 5.0.149.1. (The previous release was 5.0.1.137.)

Please refer to the original announcement for more details and links to the Google Group where we are handling the related discussions. We’d love to have your feedback, suggestions, and (of course!) bug reports.

A bit filtered (b149)

b149

I have changed the version numbers a bit, reversing the places where I specify the build and channel, so this is now version 5.0.149.0 and if I turn this into the next public beta build, it will be 5.0.149.1. This better matches the build.revision usage, and makes it easier for version checking required program versions for data files. I have not yet changed the version numbers on GCA5.Interfaces, I’m waiting until I actually need to make other changes to that assembly before I do that.

Changed the version checking method for when book files specify the program version.

* Classic View

I’ve added a filter pane for filtering Library trait lists (except attributes). Its visibility is toggled with the new Filter button to the right of the categories drop-down list. The visibility setting applies across all the trait tabs (except Attributes), but any specified filter text will be cleared when you change tabs. The filter text is entered into a drop-down list, so if you want to apply the same filter across tabs, or you want to reuse a filter during a session, you can select it from the drop-down list.

For the time being, I’ve removed the disabled Customize button. I may return it later or I may integrate its intended function into the filter pane; we’ll revisit that in the future.

* Library list

On the Unified and Sheet views, I’ve updated the library list filter pane to also use a combo box.

* Data Files

Made some fixes to Dungeon Fantasy RPG.gdf.

A bit more protection (b148)

b148

GCA was not honoring the user’s startup preference (new character, last session, or nothing) when returning from a check for updates. Now it does.

I’ve adjusted how the General Info data is processed, both to help cut down on window flashing and to trigger the character’s dirty state when values are changed. Values are now updated only when leaving the field.

Fixed an issue where closing GCA from the file menu after closing a character could cause an exception.

Found and adjusted a bunch more of the modal dialog calls (so GCA should no longer fall behind all other open windows when returning from them).

Added display of shields to the Protection box, and fixed the display of DR notes.

Made some adjustments to how lists are displayed on the Protection dialog, and also fixed display of DR notes there.

* b147

Forgotten in last build’s notes, I started a panel for Links on the Edit dialog.

My aching brain bits (b147)

b147

Made a slight change to the weight capacity calculations to try and account for variances in double precision values.

Updated saves to save various known tags in the normal xml blocks rather than end up as extended tag blocks.

Adjusted how most of the modal dialogs are called so GCA should no longer fall behind all other open windows when returning from them.

Made some minor drawing and labeling adjustments to the new Attack Mode boxes. Also added a GuideBoxes option that draws dotted boxes around the data cells, instead of just drawing a line between rows of them.

I decided that I liked a different way of showing an item’s used capacity, so I switched to that. The new way draws a bar across the bottom of an item’s display line on the trait list (not including the icon columns), and shows the filled percentage as a darker segment of that line. If the item’s capacity has been exceeded, the entire line is filled red, otherwise it is green or blue.

* Calculations, Text Functions, and NoBase

The NoBase keyword for a bonus was not supported as part of a conditional operation in a bonus, rather it was the unconditional point of a particular bonus. It was always processed first, before anything else, and then other bonus parts were applied to that ‘clean slate’. This may have been unclear, or was forgotten over time, and a number of bonuses started using nobase as a possible return option to clear certain values when various conditions applied. This was a great idea, but it didn’t actually work correctly in GCA 4 or 5, and instead cleared all modes of the targeted tag of all values in all cases.

Since this was a good idea, I have now adjusted GCA5 so that it will process Text Functions at the top of the process of evaluating and calculating bonuses to some tags (currently only reach()). This should enable the use of NoBase in a conditional operation as it already exists in all the cases that I’ve found so far.

* Links

Added a new type of relationship between two traits: linked(IDKey) and linkedfrom(IDKey). These are instantiated during adds() or creates() using a links(yes) tag on the source trait, which is the one doing the adding or creating.

The linked(IDKey) tag on the target trait (the one that was added or created) will get the IDKey of the source trait. It is assumed that this target trait depends on the source trait for some data that it needs.

The linkedfrom(IDKey) tag will be added to the source trait (the one that did the adding or creating), so that it will know that it’s being linked to from another trait and can update that trait when it changes.

Linkedfrom() can have many different IDKeys in a comma-separated list, but linked() can be only a single IDKey value.

The destination trait can then depend on having current data, and can refer back to the linked() trait in formulas using “linked::”, much as you can refer to parents with “parent::” or modifier owners with “owner::”.

You can not have links(yes) and owns(yes) on the same source trait; owns() will take precedence and links() will not be applied.

GCA will also create these related supporting tags: linkedname() and linkedfromnames(), which are the names of the traits related to the IDKeys in the linked() and linkedfrom() tags, respectively; and brokenlinks() which contains the IDKeys from linked() or linkedfrom() that can no longer be found.

* Simple Text Export

Made a minor change to how it exports components.

* Data Files

New version of Payload.

Updated some fencing weapons to use fencingweaspon().

Updated a bunch of containers to include weightcapacity() or countcapacity().

A few other bug fixes.

* TagDefs.XML

Updated with info for these tags: brokenlinks(), linked(), linkedfrom(), linkedfromnames(), linkedname(), links().

* GCA5.XSD

Added brokenlinks, linked, linkedfrom, linkedfromnames, linkedname elements to the ‘ref’ block of GCATrait
Added weightcapacity, weightcapacitylevel, overweightcapacity, overweightcapacityby elements to the ‘ref’ block of GCATrait
Added countcapacity, countcapacitylevel, overcountcapacity, overcountcapacityby elements to the ‘ref’ block of GCATrait
Added countasneed, ident elements to the ‘ref’ block of GCATrait
Added displaynameformula, vars elements to the main block of GCATrait
Added drnotes element to the ‘armordata’ block of GCATrait

Bits of sheets and boxes (b146)

b146

A parent item that was copied and pasted without its children would incorrectly still have cost/weight values that reflected those with the children that it no longer had. That has been fixed.

While fixing the issue above, I noticed that Recalculate All was not actually recalculating everything. I fixed that issue. This adds a slight amount to the total calculation times compared to what it was, but everything should now be getting recalculated correctly. This should have no impact on normal operation as it only applies when doing a Recalc All. (GCA calls for one when loading a character, but not normally otherwise).

Changed copying traits slightly. When you are copying traits with children, GCA will now ask if you want to copy the children also. If you do, great, if you don’t, then only the ones already explicitly selected are copied.

Consolidated some duplicate procedures.

* Attack Modes boxes

You can now hit Enter to launch Edit for the selected item.

The Notes text at the bottom was still sometimes getting cut off, and some weirdness was definitely happening with sizing it, so I replaced those bits with other bits.

* Trait boxes

I’ve made the right-click context menu available to the “No traits to display” label, so that you can Paste from there.

I made an adjustment to the routine that sizes the boxes to hopefully fix an intermittent but long-standing issue where the list box makes itself only a single item high, even though the trait box knows it should be larger than that.

* Sheet View

You should now be able to right-click on a trait’s edit field (when it is highlighted but not actually in active edit mode) to get the pop-up menu for traits.

* Official Character Sheet

Updated with options and support to enable/disable the on-sheet edit features and the buttons that call the trait dialogs.

* Data Files

Corrected some text in a couple _New Disadvantage traits, and removed one that was in an Advantages list.

Safety bits? (b145)

b145

If you start GCA in Safe Mode by holding down CTRL+SHIFT when launching, GCA will now mention that in the Log and Info panes.

When loading GCA for the first time, or in Safe Mode, the Info/Logging pane on the right should now ensure that it is wide enough to see the text it contains.

If you started GCA in Safe Mode, then GCA should warn you if you might overwrite your saved preferences with the ones from the Safe Mode session, and let you avoid doing so. This may happen when you use Options or when you close GCA after starting in Safe Mode.

I have added a trap for the Sheet View pane raising an exception and not instantiating. I have also added support to allow GCA to continue running without that pane being operational.

If starting up GCA in Sheet View, it should no longer reset the sheet’s zoom to the minimum size, and instead should correctly reset to the zoom you were using when you shut down.

Sheet View will now terminate object editing if the user clicks somewhere else on the sheet.

Sheet View on-sheet editor buttons now get tooltips.

Added a CollapseChangeButton to the SheetActionField SheetAction Enum, which allows collapsing/expanding child lists.

* Official Character Sheet

I’ve added support for editing things on-sheet in Sheet View. Let me know what you want to be able to edit if it’s not here yet.