Features

Ability Creation & Management

Create unique abilities which can be activated in your game. Abilities can range from melee attacks to magic projectiles and more.
Control all aspects of the ability lifecycle through activation, preparation, initiation, travel and impact. Abilities can be created
for all types of games from FPS to third person. Decide where the ability starts from, how it travels, where it travels too
and what it does when it collides.

Ability Effects

Add effects which will be applied to entities that are hit by your abilities. There is over 40 effects to choose from which range from adjusting health to
moving the entity. There is a wide range of settings which will allow you to have complete control on how the effect operates
like adding a duration, setting it up with its own graphics, making the effect repeat for a certain time or setting a probability
that the effect will activate on the entity. Events can be raised when effects are applied which will communicate to other components you have linked.

AI

Enable AI on entities allowing them to automatically activate abilities. Control when the abilities activate depending on
scenerios in game. Use the tool to have an ally activate a heal ability when other allies have low health or setup for an enemy to
activate a big attack when near a certain type of entity.

Health/Mana Management

Manage health and/or mana. With a few clicks you can setup the max health/mana, decide how much is restored over time and the
GUI which will display in game. You can also select when to display the GUI (i.e only show a health bar of the current target).

Targetting

Enable entity targetting within your games to allow for the player to select a target automatically or through selection.
Activate abilities which will travel towards the target, display GUI's relating to the target and display graphics indicating the current target.

Impact Juice

Add camera shakes, bullet time, splash effects and explosion physics when an ability collides with other entities to add juice to your game.
All done with the modification of a few settings.

Easy To Use Configuration

ABC includes multiple configuration screens enabling you to setup and manage all features of ABC. Create a new ability in seconds or setup and configure the entities targetting
or AI. 3 different config windows exist and settings are grouped under tabs and sections so it is easy to navigate around. 'Load Default' buttons can also be found
which will automatically generate an example object which can be modified or learned from.

Surrounding Object Control

Set for abilities to manipulate surrounding objects, making the objects travel with the ability. Throw surrounding debris with telekensis
or pick up surrounding enemies with a wind ability. Additional features lets you destory or apply effects to any objects caught up with the ability.

Stat Management

Create custom stats like strength and defence each with its own value. Use these stats to modify the potency of the effects, increase the damage of an attack
dependant on the strength stat or reduce incoming damage with the defence stat. Stats can be linked to GUI to allow players to see the progress. Increase
or decrease stats in game with the help of ability effects.

Scrollable Abilities

Flag the ability as scrollable. Only one scrollable ability can be enabled/equipped at once during play and all scroll abilities will
activate with the same key/button. Scrollable abilities can be cycled through. This can be used in a game where you want to equip one weapon/spell
at a time like an FPS. This can also link with grouped ability functionality to enable/disable certain abilities when a weapon is 'equipped'.

Full Animation Control

Full animation control at different parts of the ability process including preparing, initiating, ability end/impact, reloading, entity hit reactions
and more. Links directly with Unity's animation system, it's quick and easy to setup which works directly with any animation controllers you have made.
Modify times at which stages occur to accuratly align animations to the ability activation.

Bouncing & Boomerang

As well as choosing between melee attacks, raycasts and projectile objects. You can turn enable ability bouncing
which will make the ability travel between targets or setup for the ability to boomerang, travelling back to the
activating entity after a set duration.

Interactive Icons

Fully interactive icon toolbar and ability book which can allow the player to drag, drop and press icons (to activate the ability).
Move abilities from the book to the toolbar to enable the ability ready to be used in game. Setup icons to display cooldowns, ability descriptions
and more.

Ability Grouping

Setup Ability grouping which allows for abilities to become enabled or disabled depending on certain events like from a button press which will
swap the entity into a power mode where new abilities become available for use.
Setup animations and graphics which will play out when a group is enabled.

Object Pooling

Automatic Object pooling. All graphics within the ABC system will be created at the start of the game to maximise on performance.
No setup required this will be handled by the system. All graphics in the pool will be kept under a GameObject in the Hierarchy until they are in use,
returning back to the pool once the graphic is no longer needed.

Component Integration

Integrate your own components to ABC by subscribing to event delegates. Once the event happens in ABC the linked components will recieve
notifications with all the data required to use in your own code. Events include target selection, effect activation and more. Attach the
ABC Effect Subscriber component to run methods in your scripts when the entity is inflicted by a certain effect.

Export & Import Abilities

Share abilities you have created with other projects or entities within your game. Export your creations into saveable scriptable objects.
then use the object to import into ABC immediatly loading all the ability configuration ready to be used.

Save & Load

Save and load your games using the ABC Save Manager. Have the option to use the component to define and setup your save and load system or use the API
to easily save and load ABC data with 1 line of code. The save manager can also be configured to save and load transform, enable states and scenes.
Save locally or have the manager return the data in a string ready to be uploaded and retrieved from a Dataase.

Use Animation Clips

Easily select Animation Clips which will play using ABC's Animation Runner. Have the option to select
Animation Clips which will play without using Unity's Animator.
This means you do not have to set up anything in the Animator to play animations relating to ABC.