In my designed game I have 9 separate, distinct damage types that interact with everything. I’ve categorized this in such a fashion that they each have 2 separate “categories” they fall into, shown by the chart here:
The categories themselves are bolded for distinction. Equipment, skills, passives, and buffs will all be able to add/modify each damage type’s relative stats directly, but also can instead affect a category and subsequently affect all damage types relative to that category. I’m not sure how to better implement this system however.
Currently the system utilizes a rather large “StatType” enum that I also use for many other character stats. This is not ideal, but in terms of using the editor I personally haven’t come up with a good workaround or solution. For me to make the data easy to work with I’d like to be able to click a drop-down menu and select any of these stat types for an equipment or skill, and the only way I’ve managed to make that work is with the singular, massive enum. Each damage type and category as a result of my game design needs its own 4 separate fields to indicate Damage, Penetration, Protection, and Resistance. 4 *(9 + 6) = 60 separate stat types… which bloats the drop-down and hurts my eyes.
In an effort to drum up some new inspiration for a solution, has anyone here had a similar issue and had come up with a different approach to it? I know a lot of scripting advice is to “use a ScriptableObject in place of an enum” but I just can’t figure out how to approach this issue with that method in mind.