Moves#
Moves are how characters fight and interact with each other. A good moveset can make or break a character and team composition, so pay attention to how they function!
Types of Moves#
There are four types of Moves that a character’s Moveset can contain:
| Move Type | Description | 
|---|---|
| Attack | Deals damage to decrease the target(s)’s health. | 
| Heal | Heals the target(s) a set amount to offset damage previously taken. | 
| Buff | Increases one of the target(s)’s stats. Good for getting an edge in combat! | 
| Debuff | Decreases one of the target(s)’s stats. Good for putting the opponent at a disadvantage! | 
Effects#
Some Moves are useful for a character because they have secondary Effects. If a Move has a secondary Effect, the character is essentially performing two Moves in one turn! Effects fall under the same four categories:
- Attack 
- Heal 
- Buff 
- Debuff 
An Effect can sometimes have a drawback for the user, so be mindful when using a Move with a secondary Effect!
Attack Moves VS Attack Effects#
When it comes to Attack Moves and Attack Effects, they are similar in that they deal damage, but how they deal damage is different.
- Attack Moves
- Uses the attacker’s Attack Stat, the move’s - damage_pointsvariable, and the target’s Defense Stat in the damage formula to return a final value
- The - damage_pointsinteger is added to the character’s attack stat for extra oomph
- Refer to Helper Methods & Debugging for the damage formula 
 
 
- Attack Effects
- Only uses the integer - damage_pointsto deal damage to the target(s) without any extra calculations
- For example, if a Move has an Attack Effect that has 20 damage points, it will deal 20 damage to the target(s) regardless of the attacker’s Attack Stat or target’s Defense Stat 
 
 
Special Points#
 
Not all Moves can be used immediately. A character needs to build up the strength to use some moves by increasing their Special Points. Special Points (abbreviated as “SP”) can be gained and lost during a match depending on the Move that’s used. A character can gain a maximum of five SP. How SP are gained and lost is explained in Movesets.
Movesets#
To contain a character’s Moves, they have an attribute called a Moveset. A Moveset will contain 3 Moves that are broken into three categories:
| Moveset Identifier | Description | 
|---|---|
| Normal Move | A character’s default Move. By using a Normal Move, a character will gain +1 SP. | 
| Special 1 | A Move with some more “oomph” to it. This will reduce a character’s SP by the cost of the Move. | 
| Special 2 | A Move that tends to be a character’s strongest. This will also reduce a character’s SP by the cost of the Move. Special 2 is more expensive than Special 1. | 
Understanding how a character’s Moveset will affect not just the user but all characters on the map will help when forming a team.
Every character’s individual Moveset will be explained in depth in Characters.
Accessing a Character’s Moveset#
To access a Character’s Moveset, you can do the following:
active_character.moveset
When you have access to a Moveset object, if you desire to use it as a dictionary object, you can call the
as_dict() method.
moveset_dict = active_character.moveset.as_dict()
The structure of a Moveset as a dictionary object is below. Every key is a string, and the value is a Move object.
| Key | Value | 
|---|---|
| “NM” | The Character’s Normal Move object | 
| “S1” | The Character’s Special 1 object | 
| “S2” | The Character’s Special 2 object | 
If an entire dictionary is not necessary, you can simply access an individual Move by using a Character reference and the following methods:
normal_move = active_character.get_nm()
special1 = active_character.get_s1()
special2 = active_character.get_s2()
Target Types#
When using a Move, the TargetType Enums it contains will determine how it behaves. Here is every TargetType and the target(s) associated with it.
| TargetType | Associated Targets | 
|---|---|
| TargetType.SELF | The user of the move will be affected | 
| TargetType.ADJACENT_ALLIES | Only characters adjacent to the user will be affected. This only applies to the user’s team, not the opponents | 
| TargetType.ENTIRE_TEAM | Every character on the user’s team will be affected, regardless of adjacency | 
| TargetType.SINGLE_OPP | The opposing character across the user on the game map will be affected | 
| TargetType.ALL_OPPS | Every opposing character on the opposing team will be affected |