This is a design question. I’m playing around with an RPG style game and I’m currently working on the combat system. I’m trying to figure out a good design for the combat abilities. What I’m calling an “ability” is something that you can do or use in combat that will either affect you or your target, such as an attack, healing, buffs/debuffs, etc.
Here’s what I’m currently considering. I’d have an Ability class that has a Type (Offensive, Defensive, Healing, Buff, Debuff, …), Cooldown, “Cast” Time (how long it takes between activating the ability and it taking effect), Range, etc. All of these properties determine how the Ability can be used.
Upon using an Ability, it can have one or more Effects on its target(s). These effects can be immediate, such as Damage (reduce HP), Healing (increase HP), or Knockback, or they can have a duration, such as Damage Over Time, Increase Damage Resistance, or Slow.
Only one Ability can be used at a time, but multiple Effects can be in effect on a single character.
Does this sound like a good start? Does anyone have any suggestions or thoughts to add to this, or suggestions for a different approach?