I was wanting to suggest something that could make the system more flexible, to even where some combat effects could "linger" after the fight (e.g. "Flash" critical makes sight difficult for a little while, "Arcane Cloud" critical accelerates lust gain for a while, etc). The idea would allow a status to adopt multiple classifications and allow a status to be applied across any combination of the three types (so, if that Flash spell lingered after battle, then it would be labeled both a Combative and Localized Effect).
In that case, trying to roll everything out as separate classes would be a bit sticky. Using an EnumSet (flags) might be a better option for keeping track of which effect needs to go where.
Actually, the more I think about it the better that would probably be. Trying to differentiate them by type would either require you to check the type (would would essentially be a less flexible option than using flags) and trying to simply get a list of each status type would require reflection, which would wreck performance if it's done too often. Additionally, it would prove to be more flexible in the long run.
With flags, on the other hand, you could set a combination of flags, such as Combative+Localized, to ensure that the status remains applied. If you're feeling particularly spicy, you could even use that technique to define a long-term post-combat status (Combative+Global).
It's not the most object-oriented approach, but it feels like the most pragmatic and flexible one.
The other option would be to keep them split by type and simply have a combat move apply a Localized/Global effect directly. Those would still continue to receive update ticks during combat.
Yes, I agree. Defaulting to localized would by definition keep status effects contained to regions and maps, thus ensuring optimization of the entire structure. However, I'm not entirely sure what the vision was for Innoxia when coding in status effect support or if this falls in line with it. I could start work on the changes, but I don't want to pick up a project that won't see implementation.
The current system is probably used the way it is because "hey, this updates every turn, has a visible icon/tooltip, and can have a duration." Conceptually it's not bad, it just doesn't scale well in its current inception (and, IIRC, combat effects have to be special cased to ensure that they fall off properly, which this proposal would instantly fix…gonna have to look that up at some point).
As far as gauging interest is concerned, opening a RFC as a GitHub issue would be a good formal approach. I'd probably open up with the former (and then move to Discord if requested), since it's easily possible that it could get lost in the shuffle if the idea is thrown out in a chatroom, to say nothing of the typical signal-to-noise ratio.