The player character and Enemy AI each have their own custom ability classes included as part of the Combat System. All the gameplay code for the enemy character’s gameplay abilities are created inside various different ability classes. Some Combat Abilities have properties that can be used to adjust various things for each ability.
Every one of the default enemy abilities can be overridden in child classes and given modified or customized functionality as needed by user created classes & user written code.
Enemy Ability Hierarchy
Almost all enemy combat abilities are a child of GA_EnemyAbility. Some enemy combat abilities also have their own hierarchy. For example, GA_EnemyMeleeAttack inherits from GA_MeleeBase which is the melee ability class that is also used for the player character. Almost all the default included abilities for both the AI and player derive from a single class, GA_Action.
Enemy Attack Ability
An Enemy Melee Attack ability, derived from GA_MeleeBase is an enemy specific version of the melee attack ability. This ability works similar to the base melee ability, which will allow you to set various properties about the enemy attack. Such as the attack animations, the attack data, Random Attack Index which will select a random attack montage from the montage array in the ability. There are also various gameplay tags which can be associated with the ability, these gameplay tags can be used to add various states to the performing actor, or to block the attack abilities activation during specific states.
A cost gameplay effect can also be added if you need the attack to have, for example, a stamina cost.