Madboy James
Member
Hi, I've played around with various ability effect systems, but I'm wondering what people think is the best.
Here's some use cases:
-Cryo/ incidiary/ X ammo ability: activate ability-> current weapon now slows enemies, who gain "icy" fx over them.
-adrenaline rush ability: activate ability-> temporarily increase speed, weapon and melee (but not ability) damage, and gain damage resistance.
Questions:
-Is it better to add functionality to the weapon at runtime (when ability is activated), or have an "effector" module on the weapon that is enabled and configured by the ability?
-where should "stats" be for move speed, weapon damage, ect.? I could use the attribute manager, but I could see myself having dozens of stats for managing fine details of gameplay ("accuracy" alone can have over 10 stats). Would it be preferable to "lazy call" stats from the attribute manager (ie. Melee Damage attribute does not exist until something asks for it or asks to change it)?
-How and where to manage inflicted effects on enemies/ player, such as bleed, on fire, weakened, ect? I could add/remove components, or I could have an effect manager that can have effects passed into it.
-Following that, what is the best way to produce a graphical effect on an enemy? I can try to add the fx dynamically, but I'm not sure how, or I can have a component/ model on the enemy for every possible effect, but that's not scalable.
Any thoughts are welcome!
Here's some use cases:
-Cryo/ incidiary/ X ammo ability: activate ability-> current weapon now slows enemies, who gain "icy" fx over them.
-adrenaline rush ability: activate ability-> temporarily increase speed, weapon and melee (but not ability) damage, and gain damage resistance.
Questions:
-Is it better to add functionality to the weapon at runtime (when ability is activated), or have an "effector" module on the weapon that is enabled and configured by the ability?
-where should "stats" be for move speed, weapon damage, ect.? I could use the attribute manager, but I could see myself having dozens of stats for managing fine details of gameplay ("accuracy" alone can have over 10 stats). Would it be preferable to "lazy call" stats from the attribute manager (ie. Melee Damage attribute does not exist until something asks for it or asks to change it)?
-How and where to manage inflicted effects on enemies/ player, such as bleed, on fire, weakened, ect? I could add/remove components, or I could have an effect manager that can have effects passed into it.
-Following that, what is the best way to produce a graphical effect on an enemy? I can try to add the fx dynamically, but I'm not sure how, or I can have a component/ model on the enemy for every possible effect, but that's not scalable.
Any thoughts are welcome!