Been fiddling with a Possessor recently (hence the recent
bugfix), and it turns out that, properly played, they depend fairly heavily on both their primary and secondary weapon sets. Which is not a problem, except that
accessing your secondary weapon set to, say, swap in a new piece of equipment can be a bit of a pain, and it's not hard to actually forget what you're even wielding in the secondary set. (Haven't played a Temporal Warden in a while, but I vaguely recall them having similar issues.)
To try to improve that, I've put together a new addon, creatively named
Show Second Weapon Set.

Basically, it adds a game option to make the secondary weapon set visible in the inventory dialog:

- tome-show_set2-custom.png (183.47 KiB) Viewed 2136 times
You can wield equipment directly into the secondary set via drag-n-drop, without having to swap weapon sets. Tinkers should also work, though that's less extensively tested.

The relevant game option is "UI | Show second weapon set in equipment dialog", with supported values "Never" (default, original game behavior), "Always", or "If Any" (only make the secondary set visible if you're currently wielding something in the secondary set).
And while I'm in the neighborhood, another related feature: much like
Artificers' charm bandolier, it vaguely bugs me that equipment wielded in the secondary weapon set isn't listed on the online character sheet. Well, we support that too, by game option "Online | Show second weapon set in character sheet". Haven't tested this one yet (for obvious reasons); I'll upload a fix if it doesn't work.
[And looking ahead, I don't see any reason why this couldn't go into ZOmnibus or ZOmnibus Lite.]
[Implementation notes:]
Code: Select all
Hooks:
GameOptions:generateList [to add our game options]
ToME:PlayerDumpJSON [to modiy the character sheet]
Superload:
engine.ui.EquipDoll:
generateEquipDollFrames() [to add frames for secondary weapon set]
mod.class.Actor:
canWearObject() [to allow wielding into secondary weapon slot]
mod.dialogs.ShowEquipInven:
switchSets() [to juggle off-set frames when switching sets]