General & Stats

The General & Stats configuration has many features to further setup your characters including extra tagging used by ABC, stat setup, pop up text configuration which is used by effects to show damage numbers and UI logs which can show further ability and effect information to your players commonly used in MMO type games.

There is also settings to enable or disable certain functionality which is inflicted by abilities like blocking push effects, blocking duplicate effects and setting if hits from abilities can stop movements.

You may want to disable push effects in your games for bigger characters like bosses or strong enemies, to give the effect that their is more weight to them.

ABC Tags

ABC Tags is an additional tagging system similar to the tag system in Unity. Both ABC tags and Unity tags are used by functionality across the system when checking against certain conditions. An example of this is creating an effect that only applies to entities with an “Enemy” tag. There is never the circumstance where an ABC tag will just be checked over the normal Unity tag. Both are checked on every instance.

There is no limit to the amount of ABC Tags that can be added. Clicking the “+” sign will create a new text box to allow for text to be entered. You can then easily delete a tag by clicking the “x” or change the ordering with the arrow keys.

It is possible to add placeholder tags to your objects and ability settings which can later be converted depending on the type of character in play. More information on this can be found in the Core Components section.

Stats

Stats can be setup to change the ‘potency’ of effects on abilities. An example of use is to setup a Strength stat which affects the potency of an attack and a Defence stat which lowers the potency of an incoming attack

Stats can be added by clicking the “+ Add Stat” button and removed by clicking the red ‘x’.

When setting up a stat a field will be available to enter the stat name and a value field will let you determine what value that stat will be at for the character. Stat values can be adjusted in game through effects.

By clicking 'More' further settings will appear which allows you to drop/select Unity Text objects. The Text objects chosen for these fields will always be updated with the stat name and stat value during play. doing this allows you to create UI in game which can display the current stat name and value.

Unity Text objects can be created from the Unity menu: GameObject > UI > Text.

The last setting under the 'More' toggle is "Only Show Text When Selected" If enabled then the Text objects displaying the stat name and value will only appear if the entity is currently targeted.

Graphic Log

This setting is used to display effect text which has been setup to show when an effect is applied to an entity in the actual game as an object rather than on the UI, like a damage popup. The field requires a canvas object with the render mode set to “World Space” which also includes a Text component in the object or any of its children.

An example of its use is to add damage bubbles which shows when an entity takes damage. More information on this can be found in Unity documentation by searching for “Creating a World Space UI”

GUI Log

This setting requires an Unity text object which can be created from the Unity menu: GameObject > UI > Text. This object can be placed anywhere on the screen and will display all effect text which has been set up to show when an effect is applied to an entity

Hit Can Stop Movement

If enabled then the entities movement can be stopped after being hit (from a correctly setup effect being applied). If disabled then movement can never be stopped by a hit. If the box is ticked then the following additional settings will appear:

Stop Movement Duration

A float number can be entered here to determine how long the entities movement is stopped for

Freeze Position

If enabled then the entity will be frozen in place by the current transform position being frozen. This is done by temporarily adding the ABC_FreezePosition script. This script works by keeping the transform position the same as when the component was added and also keeping the rigidbody velocity at 0 if the component exists on the entity

Disable Components

If enabled then general unity movement components will be disabled and then re-enabled after the “Stop Movement Duration”. This is done by temporarily adding the ABC_DisableMovementComponents script which covers such components as navagent, character controller, rigidbody and more.

Delegate Event

On top of the above settings a delegate event will also be raised when the movement is either enabled or disabled which can be connected to from any script. This way any movement scripts outside of the system can execute methods when a call to stop movement has been made by ABC.

Code example to subscribe to the event delegate:

    private void OnEnable() {
        this.movementEventsABC = meTransform.GetComponentInChildren<ABC_StateManager>();
    
        //subscribe to the event
        if (this.movementEventsABC != null) {
        this.movementEventsABC.onEnableMovement += this.EnableMovement;
        this.movementEventsABC.onDisableMovement += this.DisableMovement;
        }
    }
    
    public void EnableMovement() {
    //Code to enable movement
    }
    
    
    public void DisableMovement() {
    //Code to disable movement
    }
    
    
    private void OnDisable() {
        if (this.movementEventsABC != null) {
        this.movementEventsABC.onEnableMovement -= this.EnableMovement;
        this.movementEventsABC.onDisableMovement -= this.DisableMovement;
        }
    }

Notable Settings

Setting

Description

Enable Pooling

If enabled then when the game loads all objects (graphics etc) which have been setup for the ABC system will be created and placed in a “pool” increasing performance (as no objects will be instantiated during play). If disabled then objects will be created when needed.

Ignore All Ability Collisions

If enabled then the entity will ignore all ability collisions no matter the circumstance. This setting can also be applied for a duration using the “Toggle Ignore Ability Collision” effect.

Block Push Effects

If enabled then the entity can not be pushed back by abilities.

Block Duplicate Effect Activation

If enabled then the entity can not have the same ability effects from the same originator applied more than once.

Block Surrounding Object Status

If enabled then the entity can never be used as a surrounding object. Surrounding objects are essentially GameObjects which will travel with the ability.

It is highly recommended to read the tooltips in the blue boxes for a full description on what each setting does

Last updated