Most of the functionalities are developped inside ActorComponents.
Here is the list of all the ActorComponents of the project :
- AnimationComponent : Handle the animations and their feedbacks. Attach it to your player are to the enemies to handled move animations and attack animations. Can't be attached to the Controller.
- DamageDealerComponent : Handle damages. It is the component which is responsible for dealing damages to the TargetComponent. You may want to attach it to the Weapons or Spells.
- DragAndDropManagerComponent : Handle the DragAndDrop in the UI. Needs to be attached to the player.
- EffectHandlerComponent : Handle all the effects applied to the actor which owns this component. You can attach it to any actor on which you want to apply any effects.
- EquipedItemsComponent : This component inherits from the InventoryComponent. It represents the panel where the player can equip some equipment (Weapons, Armors, ...). You can attach it to the Player.
- HealthComponent : Not used in the demo. Simply handle the health of an actor. Replaced by the StatsComponent.
- HUDManagerComponent : Handle the UI of the Player. Don't hesitate to modify things inside it to change how the UI is handled. You need to attach this one to a Player.
- InteractibleComponent : Represents an actor on which an interactibleUserComponent can have an interaction. Mostly used to set the Owner of an interactible actor for networking purpose. Use it on any actor you want to interact with.
- InteractibleUserComponent : Use this component to interact with InteractibleComponents. Attach it to the player.
- InventoryComponent : The inventory component is the main component for handling items. Then you can use a widget to display the items. You can attach it to any Atcor which need to handle items. Attach it to the player to create an inventory for the player, or to a Actor to make it a container for items (Look at the Chest class).
- ItemUserComponent : This component to make the link between an Inventory Component/EquipedItems Component, the Player, and the rest of the world. It performs operations like picking up an item or dropping an item, equipping an item, ... Attach it to the Player.
- LocomotionComponent : Mainly used to provide a MoveTo() function for the player. Attach it to the Player. You'll need to provide an AIController Proxy to it.
- LootComponent : Used to spawn some items in the world. You can attach it to the enemy character so that they can loot items when they die, or you can attach it to an Actor (Look at the LootChest class).
- OrderHandlerComponent : Handles orders given to the player (Move to, attack,...). Attach it on the Player.
- QuickAccessInventoryComponent : Represents the quick access inventory (The bottom inventory bar on the HUD). Allows you to quickly use items of the inventory or unlocked spells. Attach it to the player.
- ShootProjectileComponent : Component which handle the shoot of any projectiles. Attach it to weapons (like the Bow).
- SkillsComponent : Handle the Skills sets of the player. allows you to unlock skills sets, unlock and upgrade skills. Attach it to the player.
- SpellUserComponent : Store spells. Currently used on the player to store the unlocked spells, but you could also use it on enemies if you want them to use spells.
- StaminaComponent : Not used in the demo. Simply handle the stamina of an actor. Replaced by the StatsComponent.
- StatsComponent : Handle the stats of an actor. Currently used on players and enemies. Handle Resistances, States, Attributs, Health, Stamina, Move Speed, Attack Speed. It also handle the XP and levelling.
- TargetComponent : Represents a generic object which can be targeted and damaged. You can use it on any Actor you want to damage and on the enemies and the player. You can't attach it to the Controllers, place it directly on the Pawn.
- WeaponOwnerComponent : Handle equipped weapons. Use it on the enemies or the player so that they can equip and use some weapons.