Spell.__init__()

This is the constructor of the class

Parameters

  • id : int - Unique identifier of the action.

  • GCD : bool - True if the action is a GCD.

  • Potency : int - Potency of the action.

  • ManaCost : int - Mana cost of the action.

  • CastTime : float - Base casting time of the action.

  • RecastTime : float - Base recast time of the action. Only GCD should have non zero recast time. This determines for how long the player is locked.

  • Effect : function - Function to be applied once the action is casted.

  • Requirement : list[function] - List of functions that checks if the action can be performed. All of the function must return True for the action to be legal.

  • DPSBonus : float - Multiplicative bonus on damage.

  • TargetID : int - Id of the target. 0 Means an enemy is being targetted and non zero ID is another player.

  • TargetPlayerObject : Player - Player object of the player target (if it applies).

  • type : int - Type of the action (0 = Ability, 1 = Spell, 2 = Weaponskill and 3 = Limit Break).

  • AOEHeal : bool - True if the action is classfied as an AOE heal (ex: succor). (Default : False)

  • TargetHeal : bool - True if the action has a healing target (ex: addloquium). (Default : False)

Usage

def applySpell(Player, Enemy):
    Player.HP += 10

def spellRequirement(Player, Spell):
    return Player.HP < 100, -1

newSpell = Spell(1, True, 2.5, 2.5, 100, 200, applySpell, [spellRequirement], type=1)

Creating job and class specific actions

In practice most actions are not a Spell and are a class derived from it. For example, the class BLMSpell represents an action that can be performed by a blackmage and BLMSpell is a subclass of Spell. There is one such class for each job and for each role. To import all actions that a player can perform, use the following import structure :

from ffxivcalc.Jobs.__ROLE__.__JOB__.__JOB___Spell import *
from ffxivcalc.Jobs.Caster.Blackmage.BlackMage_Spell import * # Import all BlackMage actions
from ffxivcalc.Jobs.Caster.Caster_Spell import * # Import all actions that any caster can perform.

from ffxivcalc.Jobs.Healer.Healer_Spell import * # Import all actions that any healer can perform
from ffxivcalc.Jobs.Healer.Scholar.Scholar_Spell import * # Import all Scholar actions.

Every subclass of Spell has their own constructor that might differ in need. Refer to the different files on the github repository for more information.