My immediate problem is basically solved - thanks, all! - but for my own education and others who might read this, let me run down the details: The original expression from Heirloom Weapon (Manuever) is:
Code:
component.BaseWep & !Helper.NoSelect & !wCategory.Amm? & !wProfReq.Exotic & !Helper.Helper.
It works great for the rules of that Trait: pick a non-exotic, non-masterwork (and thus, non-special material and non-magic) weapon on the current character. The problem with it is that in my new Trait I want Magic, Custom & Masterwork Weapons to be available, and that seems to be prevented by !Helper.NoSelect. Removing !Helper.NoSelect mostly works, but "No primary weapon" appears in the list - apparently, it was also suppressed by Helper.NoSelect. It can be inelegantly suppressed by adding !thingid.wMainHand.
So the new expression
Code:
component.BaseWep & !thingid.wMainHand & !wCategory.Amm? & !wProfReq.Exotic & !Helper.Helper
works to create a list of all non-Exotic weapons on the current character.
Some more thoughts, so at the very least future searches for things like "Helper.NoSelect" or "component.BaseWep" will yield some kind of hit/information:
It looks like Helper.NoSelect is doing double-duty, both to identify the "no primary weapon" for suppression and to identify non-masterwork weapons (or maybe, to identify weapons created in "Magic, Custom and Masterwork Weapons" rather than in "Other Weapons"). As far as I can tell, there is no easy way to identify if a weapon is masterwork. Debug-comparing a normal weapon to a masterwork version (boy do I wish that the text in the floating windows was selectable so that they could be pasted in a spreadsheet and/or searched/diff'd as text), it looks like all that happens with masterwork is gCost & wAttBonus are raised and sbName includes "Masterwork."
I haven't found "no primary weapon" or wMainHand in a debug window anywhere yet, so I'm not sure how to identify a more generic tag associated with it and not associated with items I want in the list.
Helper.Helper. What is this one for, anyway, and if I should be able to figure out the answer to that without pestering this board, how would I do so? Well, one way is I could remove it and see what happens - and the answer is, in the original expression, it keeps Unarmed Strike out of the list. Without !Helper.NoSelect in the expression, Melee Touch, Ranged Touch, and Shield Bash Attacks would be in the list - but !Helper.Helper keeps them out, too.
The Shield Bash is an interesting case and potential problem. It actually counts as a weapon, I'd think, but gets put in the "Magic, Custom and Masterwork Weapons" section even if its just a plain old shield. So the base Heirloom Weapon Trait won't EVER include it in the list ... that may actually be a bug. But getting it included would require removing !Helper.NoSelect AND !Helper.Helper - which adds things we DON'T want to the list, so those things then need a DIFFERENT filter, and like "no primary weapon" I've not found a place to get 'em into a debug window. So no idea how to find other ways to suppress 'em...
component.BaseMagicI. For EXclusion, using this might work, but I'm looking at INclusion - and BaseMagicI is true for magic armor (and other items? I didn't check) as well.
component.NormalWep. Seems to be the exactly the same as BaseWep - so far, I've seen no weapon that isn't a NormalWep.
OK, that's it. Thanks again for the help! Maybe I'll go ahead and enter a bug on the shield issue ...