Ah, this actually isn't using any gizmos at the moment. On the tab_basic page, the player can choose a background. One of the backgrounds allow them to pick a skill specialty associated with the Mechanics skill, so it bootstraps a pick of the following, which has the Skill.SkMech tag added to it:
Code:
<thing
id="fRPlusSp"
name="Bonus Specialty"
compset="cmpsetSB"
description="Adds the selected specialty.">
<fieldval field="usrCandid2" value="component.Specialty"/>
<tag group="Hide" tag="Special"/>
<tag group="ChooseSrc2" tag="Thing"/>
<eval index="1" phase="PreTraits" priority="900">
<before name="Calc trtFinal"/><![CDATA[
~build the candidate expression out of our specialty tags
var specs as string
specs = tagids[Specialty.?, " | "]
var skills as string
skills = tagids[Skill.?, " | "]
var combined as string
if (tagis[Skill.?] <> 0) then
if (tagis[Specialty.?] <> 0) then
combined = skills & " | " & specs
else
combined = skills
endif
else
combined = specs
endif
field[usrCandid2].text &= " & (" & combined & ")"
]]></eval>
</thing>
When listing the various bonuses I display the chooser table excerpted above if if the usrCandid2 field is filled out (which it actually has a condition in there, which was originally how I was trying to make this work).
So the idea is that the "fRPlusSp" bootstrapped onto the Mechanic background has the Skill.skMech tag, as do the specialties such as "Jury-Rig", and I thought I could use <needtag> to tie them together. Or would it make more sense to set up a
candidatepick and maybe a
candidatefield to instead do the picking? When I looked into that, it seemed kind of complicated, particularly since I really only need the field value (which I can grab from usrCandid2) and the candidatepick seemed almost like adding a gizmo to it.
That said, I've also realized that I've done this before, and similarly had issues where the Background gets changed, and the hero retains the Specialty pick. I vaguely remember there being a way to ensure such picks get deleted when the base object is, but