Chillu1 / ModiBuff

Buff/Debuff/Modifier library focused on feature set and performance, while maintaining 0 GC. Fully pooled
Mozilla Public License 2.0
139 stars 4 forks source link

Modifier Tags #26

Closed Chillu1 closed 11 months ago

Chillu1 commented 11 months ago

The Issue Tagging system on top of modifiers would be very powerful, for a few things. Would work very nicely with future dispel logic (dispellable tag, strong dispel tag, etc.). We could tag which modifiers should be affected by status resistance, and how, for example if both interval and duration timers should be affected, or only duration, etc. Might be also useful for legal targeting (can be used on allies/enemies only, on anyone, on structures/objects, etc)

Possible Implementation Tags ideally would be user-fed through generics in ModiBuff.Core. The only requirements would be that tags are an Enum with integer base, and be a flags Enum. Tags would be ideally stored outside of modifiers, in a single data store, like ModifierRecipes, so they can be gotten through Modifier.Id. But some components might also need some kind of info from them on creation (like how to handle status resistance in time components).