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>