overload_status.xml

<statusEffects>
  <statusEffect>
    <name>Overload</name>
    <key>overload_status</key>
    <icon>overload</icon>
    <allowMany>false</allowMany>
    <description>
      Overload Stacks: {{global_flag -> key:overload_stacks}}
      [n]Turns until decay: {{global_flag -> key:overload_turn_tracker}}
      [p]On basic attack: consume all Overload stacks to deal +3 thunder damage per stack to the target.
      [p]At 5 stacks: the next targeted Fulmination spell consumes all stacks to deal +100% thunder damage and
      has +100% stun chance.
    </description>
    <hasTurns>false</hasTurns>
    <turnEffects>
      <turnEffects>
        ModifyGlobalFlag -> global_flag:overload_turn_tracker, operation:subtract, amount:1;
      </turnEffects>
      <turnEffects>
        IF GlobalFlagCompare -> key:overload_turn_tracker, less_than:1;
        THEN ModifyGlobalFlag -> global_flag:overload_stacks, operation:subtract, amount:1;
        THEN ModifyGlobalFlag -> global_flag:overload_turn_tracker, operation:set, amount:3;
      </turnEffects>
      <turnEffects>
        IF GlobalFlagCompare -> key:overload_stacks, less_than:1;
        THEN RemoveStatusEffect -> key:«LINK:overload_status»;
        THEN ModifyGlobalFlag -> global_flag:overload_stacks, operation:set, amount:0;
        THEN ModifyGlobalFlag -> global_flag:overload_turn_tracker, operation:set, amount:0;
      </turnEffects>
      <turnEffects>
        IF GlobalFlagCompare -> key:overload_stacks, less_than:5;
        THEN RemoveStatusEffect -> key:«LINK:overload_spellcharge», target:player;
      </turnEffects>
      <turnEffects>
        IF NOT GlobalFlagCompare -> key:overload_stacks, less_than:5;
        AND NOT HasStatusEffect -> key:overload_spellcharge, target:player;
        THEN ApplyStatusEffect -> key:«LINK:overload_spellcharge», target:player;
        THEN PlaySound -> key:cast_08, delay:100;
      </turnEffects>
      <turnEffects></turnEffects>
    </turnEffects>
    <enterActions>
      <enterActions>
        THEN ModifyGlobalFlag -> global_flag:overload_stacks, operation:set, amount:1;
        THEN ModifyGlobalFlag -> global_flag:overload_turn_tracker, operation:set, amount:4;
      </enterActions>
    </enterActions>
    <exitActions>
      <exitActions>
        THEN RemoveStatusEffect -> key:«LINK:overload_spellcharge»;
        THEN ModifyGlobalFlag -> global_flag:overload_stacks, operation:set, amount:0;
        THEN ModifyGlobalFlag -> global_flag:overload_turn_tracker, operation:set, amount:0;
      </exitActions>
    </exitActions>
    <triggers>
      <triggers>
        KEY overload_gain_stack;
        WHEN PlayerUsesAbility -> hasStatRequirement:TyrosAttunement,
        exclude_root_abilities:phase_instability;
        IF GlobalFlagCompare -> key:overload_stacks, less_than:4;
        THEN ModifyGlobalFlag -> global_flag:overload_stacks, operation:add, amount:1;
        THEN ModifyGlobalFlag -> global_flag:overload_stacks, operation:minimum, amount:5;
        THEN ModifyGlobalFlag -> global_flag:overload_turn_tracker, operation:set, amount:4;
        ELSE ModifyGlobalFlag -> global_flag:overload_stacks, operation:set, amount:5;
        ELSE ModifyGlobalFlag -> global_flag:overload_turn_tracker, operation:set, amount:4;
      </triggers>
      <triggers>
        KEY overload_attack_discharge;
        WHEN PlayerAttacks -> abilityNotUsed:true;
        THEN Evaluator -> operation:set, amount:{{G:overload_stacks}}, key:overload_damage;
        THEN Evaluator -> operation:multiply, amount:3, key:overload_damage;
        THEN DealDamage -> damageType:Thunder, minimumDamage:{{overload_damage}},
        maximumDamage:{{overload_damage}}, target:players_attack_target;
        THEN RemoveStatusEffect -> key:«LINK:overload_status», target:player;
        THEN write_log -> text:Your attack is overloaded!, type:combat;
      </triggers>
    </triggers>
  </statusEffect>
</statusEffects>