Advanced ARPG Combat utilizes the Advanced Combat framework in order to create the included combat system. The Combat System includes various custom melee, ranged, and magic combat related states and abilities in order to create the included combat system.
The Combat Component manages things such as whether combat is enabled (weapon is equipped in hand), the current combat type of the owning actor, the combat style of the owning actor, & the attack count of the owning actor.
Combat Info Data Assets
The combat info data assets, Player Info Data Asset and Enemy Info Data Asset, are optional data assets that are used to initialize data from various systems in the framework. For example, here you can grant various default abilities, define the starting attributes, set animation blueprint, etc.
These data assets are async loaded on begin play. So this will allow you to add various assets without needing to hard reference them.
Combat Enabled
This determines if the owning actor of the combat component is currently in combat mode (weapon is equipped in hand). This is a boolean that can be set through a function within the combat component. There is also a function to get the current value of the combat enabled boolean.
A dispatcher event “OnCombatToggled” can be overridden to change what happens when the combat enabled boolean changes. In the base weapon the “OnCombatToggled” dispatcher has been bound. This will allow you to adjust what happens in each weapon when the combat is toggled on and off.
Combat Type and Combat Style
In Advanced ARPG Combat, there is a combat type and a Combat Style. The combat type is an enum, E_CombatType, that defines which general combat type the actor currently is in. E.g. Melee Combat, Ranged Combat, or Magic Combat.
The Combat Style is a data asset that is used to define some more specific combat data about the actor. E.g. Light Sword, Heavy Sword, Sword and Shield, Bow, Crossbow, etc.
Combat Abilities
The player character and Enemy AI each have their own custom ability classes included as part of the Combat System. The Combat Abilities have various properties that can be used to adjust various things for each ability. For example, many of the AI abilities will allow you to adjust the percentage chance the ability can be activated, the distance of the attack, and more.
The player combat abilities can be found in AdvancedCombatFramework > Blueprints > AbilitySystem > Abilities > Player. The Enemy AI combat abilities can be found in AdvancedCombatFramework > Blueprints > AbilitySystem > Abilities > AI.
For the most part, the player abilities and AI abilities are completely separate. However there are some shared abilities which are located in the “Shared” folder within the Abilities folder.