rendered paste body#define ADD_RETROACTIVELY_MODIFIED_ATTACK FILTER
[store_unit]
[filter]
{FILTER}
[/filter]
variable=ARMA_units
[/store_unit]
{FOREACH ARMA_units ARMA_i}
{VARIABLE_OP ARMA_x to_variable ARMA_units[$ARMA_i].x}
{VARIABLE_OP ARMA_y to_variable ARMA_units[$ARMA_i].y}
[object]
silent=yes
[filter]
x=$ARMA_x
y=$ARMA_y
[/filter]
[effect]
apply_to=new_attack
#enddef
#define /ADD_RETROACTIVELY_MODIFIED_ATTACK
[/effect]
[/object]
[store_unit]
[filter]
x=$ARMA_x
y=$ARMA_y
[/filter]
variable=ARMA_unit
[/store_unit]
{VARIABLE ARMA_attack_swapped false}
{FOREACH ARMA_unit.modifications.object ARMA_j}
{VARIABLE_OP ARMA_object to_variable ARMA_unit.modifications.object[$ARMA_j]}
{FOREACH ARMA_object.effect ARMA_k}
{VARIABLE_OP ARMA_effect to_variable ARMA_object.effect[$ARMA_k]}
[if]
[variable]
name=ARMA_effect.apply_to
equals=attack
[/variable]
[variable]
name=ARMA_attack_swapped
equals=false
[/variable]
[then]
#swap the newly added attack with the first attack-modifying effect.
{VARIABLE_OP ARMA_unit.modifications.object[$ARMA_j].effect[$ARMA_k] to_variable ARMA_unit.modifications.object[$ARMA_unit.modifications.object.length].effect[0]}
{VARIABLE_OP ARMA_unit.modifications.object[$ARMA_unit.modifications.object.length].effect[0] to_variable ARMA_effect}
{VARIABLE ARMA_attack_swapped true}
[/then]
[/if]
{NEXT ARMA_k}
{NEXT ARMA_j}
[unstore_unit]
variable=ARMA_unit
[/unstore_unit]
{NEXT ARMA_i}
#enddef