* The Find Traits window is now available.
* Added support for upformula() and downformula() for Attributes. Using these tags allows you to specify a formula to use for calculating the cost of the attribute when raising or lowing the attribute from the base value.
* Added support for an ‘onlyif’ clause in bonuses. This is basically the same as the ‘unless’ clause, but may be easier for some folks to visualize, because it’s positive instead of negative. OnlyIf is used in the gives() bonus structure after ‘upto’ but before ‘unless’, like so:
‘+2 to SK:Skill [ upto 10][ onlyif TARGET::tag > 0][ unless TARGET::tag = 0][ when “running from danger”][ listas “Some bonus text”]
OnlyIf and Unless both restrict when a bonus is applied. You may use either or both, but if you use both in the same bonus, you must keep in mind that OnlyIf is checked first, and if the target DOES NOT satisfy the requirement, then the bonus WILL NOT be applied, regardless of the Unless statement. The Unless clause further restricts bonus application to traits that satisfy the OnlyIf requirement; it never restricts or excepts the results of the OnlyIf clause. If you only use one or the other clause, then when the exception or requirement applies should be fairly clear.
* Added the @TextIsInText(<IsThis>, <WithinThis>) function to the Solver, which returns 1 if the <IsThis> text is contained within the <WithinThis> text, and 0 if not. As with most such things in GCA, case is ignored.
* Added two new functions to the Solver, which allow for searching for a text item within a list of text items:
@TextIsInList(<IsThis>, {<Within This Comma Separated List of Items>})
@TextIsInListAlt(<IsThis>, <UsingThisSeparatorCharacter>, {<Within This List of Items>})
These are similar, except that @TextIsInList assumes a comma separated list of items, as is used in the cat() or page() tags, while @TextIsInListAlt allows you to specify the character used for separating the items in the list, such as the pipe (|) character used in skillused(). You should always enclose the list parameter inside braces to ensure safely defining the list of items as a single unit. You can, of course, either specify the list items manually, or obtain them using something like $textvalue(me::cat). Comparison of items ignores case, as always. The value returned is 0 if the item was not found, or the index number (1-based) of the list item that was matched.
* Addressed some drawing/refresh related things on the Protection Window.
* Addressed issue related to body image file support in the Protection Window.
* Fixed a bug locating the system images bin.
* Fixed an initialization issue with system traits.
* Made some minor adjustments to the list-based trait boxes in Compact View.
NOTE:
* Removed the old versions of the various trait boxes in Compact View. Please let me know if you see any issues with screen updates or other weird behavior in Compact View.
* Changed the folder references used internally. Also changed how they’re stored in the Folders section of the gca5.prefs file. If you’ve never changed these, nothing should be different, because the defaults are the same. However, if you have changed them, you’ll need to update the new versions.