Sandman534 / EquipmentDurabilitySystem-NG

Apache License 2.0
4 stars 3 forks source link

Process All slots, and use keywords for identify armors #2

Open AndbGame opened 9 months ago

AndbGame commented 9 months ago

It is not for merge, but for discussion experimental adoptations for my gameplay. What you thinking about this?

  1. FoundEquipData::FindEquippedArmor - Checking and filtering by keywords allow process only items, which marked as armors
  2. process all slots (not only kHead/Body/Feet/Hand)
Sandman534 commented 9 months ago

I guess my question would be, what value is gained by checking keywords if the object itself is already an an ARMO record. Also depending on how other armor mods are implemented, the widget would possibly need to be re-worked as it was originally designed to show only the 4 primary bipped slots of head, body, hands and feet. I have barely touched that thing as I can only seem to edit it in JPEXS Free Flash Decompiler.

AndbGame commented 9 months ago

ARMO record can have lot of modded (and not only modded) Forms, which can be equipped, but in fact armor is not considered, and the user may not know and not see that PC is wearing something specific, like skins (include vanilla skin on npc), 3BBB body, some modded devices (invisible for user interface)

the question is quite complicated, at first I considered the possibility of simply listing all possible forms that should not break, but it turned out to be a rather non-trivial task, with a high chance of missing something

But during the analysis, I found that I think all the armor that can break has one of the 3 possible keywords: ArmorHeavy, ArmorLight, ArmorClothing (but later i added also ArmorShield and Jewelry) - now, of course, there is a risk that I have missed something, but for now looks all fine :)

but yes, the question is complicated, and theoretically breaks backward compatibility

And also this problem arises if add processing all bipped slots. With 4 primary slots - i am do not found any problems with current algorithms

(and of course this is not supported by the widget)