package net.alcuria.umbracraft.definitions.skill; import net.alcuria.umbracraft.annotations.Order; import net.alcuria.umbracraft.annotations.Tooltip; import net.alcuria.umbracraft.definitions.Definition; import net.alcuria.umbracraft.definitions.skill.actions.SkillActionDefinition; import com.badlogic.gdx.utils.Array; public class SkillDefinition extends Definition { public static enum TargetRestriction { NO_RESTRICTION, REQUIRES_FREE_SPACE, REQUIRES_TARGET } @Tooltip("The action sequence when using the skill") public Array<SkillActionDefinition> actions; @Tooltip("The multiplier of the base damage") public float damageMultiplier; @Tooltip("A description of the skill to show in-battle") @Order(2) public String description; @Tooltip("The EP generated (positive) or EP taken (negative) to use the skill") public int ep; @Tooltip("A multiplier to the focus generated. Makes certain skills more or less likely to draw enemy attention.") public float focusMultiplier; @Tooltip("The icon to use for the skill") public String iconId; @Tooltip("The name of the skill") @Order(1) public String name; @Tooltip("A tag for sorting") @Order(3) public String tag; @Tooltip("Any restrictions on using the skill. For instance, the skill requires a target to cast or the skill must be cast into a blank space.") public TargetRestriction targetRestriction = TargetRestriction.NO_RESTRICTION; @Tooltip("The targets of the skill, relative to the drop point") public Array<SkillPositionDefinition> targets; @Tooltip("The ATB cost of the skill, in turns") public float turnCost; @Override public String getName() { return name != null ? name : "Skill"; } @Override public String getTag() { return tag != null ? tag : ""; } }