An idea I've been kicking around for set management is using arrays of weighted lists to build tunable sets.
Code:
[type priority][type][status/set name]
--------------------------------------
[1][Haste][TP]
[2][Triple Attack][TP]
[3][DualWield][TP]
[4][CritRate][TP]
[5][Double Attack][TP]
[6][Attack][TP]
[7][Dex][TP]
[8][Whatever][TP]
---------
[1][CritRate][WS]
[2][Str][WS]
[3][Triple Attack][WS]
[4][Double Attack][WS]
[5][Attack][WS]
[6][Dex][WS]
[7][Whatever][WS]
[type][priority][slot][item]
----------------------------
[Haste][1][body][Raider's Vest +2]
[Haste][2][waist][Twilight Belt]
[Haste][3][head][Raider's Bonnet +2]
[Haste][4][legs][Calmecac Trousers]
[Haste][5][feet][Ballerines]
...
[Haste][14][some slot][some item]
--------
[Triple Attack][1][rring][Epona's Ring]
[Triple Attack][2][lring][Oneiros Ring]
--------
[DualWield][1][lear][Suppanomimi]
--------
[Attack][1][back][Atheling Mantle]
[Attack][2][neck][Agasaya's Collar]
--------
[Acc][1][neck][Peacock Charm]
....
[etc.]
Build ordered lists for the current status
Set base slot usage from 1 to max # slots used (if Main hand and ranged are ignored, then 14)
[TP]
[type][default slots]
[Haste][5]
[Triple Attack][2]
[Dual Wield][1]
[Double Attack][2]
[Attack][2]
[Acc][0]
Bind hotkeys to toggle assorted types. Say I want to increase Acc, I hit the toggle Acc up. The code then searches the list for the lowest ranked piece of gear on the lowest ranked list that is equipped. In the simplified example above, that'd be for the neck, since it's the only one in the list. So then the TP set slot list would get altered to increase Acc gear by 1 slot, and decrease Attack by 1.
[TP]
[type][default slots]
[Haste][5]
[Triple Attack][2]
[Dual Wield][1]
[Double Attack][2]
[Attack][1]
[Acc][1]
It seems like this would be a bitch and a half to write, but once complete it'd make tuning sets for situations as simple as hitting a few hot keys. Eventual integration with a parser would allow for automated target based tuning over time. Have any suggestions on improving this concept? Do you think implementing in XML would result in a responsive enough tool?