The Mover is an enemy from Final Fantasy IX fought in Terra and Pandemonium. It appears in threes and has unique death behavior compared to other enemies in the game. They are dangerous when all three are present at once.
Stats[]
Middle
Right
Left
Battle[]
Movers are exceptionally dangerous when all three are present, as they can align into a formation that triggers the lethal Delta Attack spell. Destroying at least one of the Movers will eliminate this threat.
For some reason, Movers cannot die from a White Magic spell, an item, or a Mug: their AI specifically prevents it by setting their HP to 1 (or one more than their death threshold to be accurate). Two Movers cannot die together (they can all die together, but not just two of them). Using a spell that should kill exactly two Movers, will kill only one, while the other's HP is set to the threshold. Any attack after that will kill it, even a 0-damage Minus Strike.
Spells countered with Return Magic also cannot kill Movers unless they die together, because the death of one Mover is actually a counter, and it is not possible to counter a counter.
Movers are susceptible to Quina's LV4 Holy.
AI script[]
Function Mover_Loop
if ( !initflag )
set initflag = TRUE
set mover1 = SV_EnemyTeam[ENEMY_ID] ==$ 0
set mover2 = SV_EnemyTeam[ENEMY_ID] ==$ 1
set mover3 = SV_EnemyTeam[ENEMY_ID] ==$ 2
set mover1[SHADOW] = 0
set mover2[SHADOW] = 0
set mover3[SHADOW] = 0
set hplimitdeath = 65535L - SV_FunctionEnemy[HP]
set mover1[MAX_HP] = 65535L
set mover2[MAX_HP] = 65535L - SV_FunctionEnemy[HP] / 2
set mover3[MAX_HP] = 65535L
set mover1[HP] = 65535L
set mover2[HP] = mover2[MAX_HP]
set mover3[HP] = 65535L
RunBattleCode( Enable ATB )
while ( GetBattleState != 4 )
Wait( 1 )
if ( waitingcounter && ( GetAttacker == SV_FunctionEnemy ) )
set waitingcounter = FALSE
Wait( 1 )
loop
Function Mover_ATB
if ( firstdown || seconddown )
set SV_Target = RandomInTeam(SV_PlayerTeam)
if ( ( GetRandom % 3 ) && ( SV_FunctionEnemy[MP] >= 24 ) )
Attack( Firaga )
else
Attack( Virus Combo )
elseif ( SV_FunctionEnemy[STAND_ANIMATION] == 0 )
if ( GetRandom & 1 )
set SV_Target = RandomInTeam(SV_PlayerTeam)
Attack( Virus Combo )
else
set SV_Target = SV_FunctionEnemy
Attack( Continue1 )
else
set SV_Target = SV_FunctionEnemy
Attack( Continue2 )
Function Mover_Counter
if ( ( GetAttackCommandId == Skill ) && ( GetAttackId == What's That?! ) )
return
if ( ( GetAttackCommandId == Item ) || ( GetAttackCommandId == Wht Mag ) || ( GetAttackCommandId == Dbl Wht ) || ( GetAttackCommandId == Steal ) )
set downlist = 0
if ( mover1[HP] < hplimitdeath )
set downlist = 4
if ( mover2[HP] < hplimitdeath )
set downlist |= 1
if ( mover3[HP] < hplimitdeath )
set downlist |= 2
if ( downlist & 4 )
set mover1[HP] = hplimitdeath
if ( !firstdown && ( downlist & 1 ) )
set mover2[HP] = hplimitdeath
if ( !seconddown && ( downlist & 2 ) )
set mover3[HP] = hplimitdeath
if ( downlist == 7 )
set alldown = TRUE
if ( #( SV_EnemyTeam & mover2 ) )
set mover2[HP] = 0
if ( #( SV_EnemyTeam & mover3 ) )
set mover3[HP] = 0
if ( #( SV_EnemyTeam & mover1 ) )
set mover1[HP] = 0
set downlist = 0
set SV_Target = SV_FunctionEnemy
if ( alldown )
return
if ( waitingcounter )
if ( mover1[HP] < hplimitdeath )
set mover1[HP] = hplimitdeath
if ( ( mover2[HP] < hplimitdeath ) && !firstdown )
set mover2[HP] = hplimitdeath
if ( ( mover3[HP] < hplimitdeath ) && !seconddown )
set mover3[HP] = hplimitdeath
return
if ( firstdown )
if ( seconddown )
if ( mover1[HP] < hplimitdeath )
set alldown = TRUE
if ( #( SV_EnemyTeam & mover2 ) )
set mover2[HP] = 0
if ( #( SV_EnemyTeam & mover3 ) )
set mover3[HP] = 0
if ( #( SV_EnemyTeam & mover1 ) )
set mover1[HP] = 0
return
if ( mover1[HP] < hplimitdeath )
if ( mover3[HP] < hplimitdeath )
set alldown = TRUE
if ( #( SV_EnemyTeam & mover2 ) )
set mover2[HP] = 0
if ( #( SV_EnemyTeam & mover3 ) )
set mover3[HP] = 0
if ( #( SV_EnemyTeam & mover1 ) )
set mover1[HP] = 0
return
set mover1[HP] = mover3[HP]
set mover3[HP] = hplimitdeath - 1
if ( mover3[HP] >= hplimitdeath )
return
set mover1[STAND_ANIMATION] = 0
set waitingcounter = TRUE
set downlist = 2
Attack( Spin )
if ( seconddown )
if ( mover1[HP] < hplimitdeath )
if ( mover2[HP] < hplimitdeath )
set alldown = TRUE
if ( #( SV_EnemyTeam & mover2 ) )
set mover2[HP] = 0
if ( #( SV_EnemyTeam & mover3 ) )
set mover3[HP] = 0
if ( #( SV_EnemyTeam & mover1 ) )
set mover1[HP] = 0
return
set mover1[HP] = mover2[HP]
set mover2[HP] = hplimitdeath - 1
if ( mover2[HP] >= hplimitdeath )
return
set mover1[STAND_ANIMATION] = 0
set waitingcounter = TRUE
set downlist = 1
Attack( Spin )
if ( mover1[HP] < hplimitdeath )
set downlist = 4
if ( mover2[HP] < hplimitdeath )
set downlist |= 1
if ( mover3[HP] < hplimitdeath )
set downlist |= 2
if ( ( downlist == 0 ) && ( mover1[STAND_ANIMATION] == 1 ) )
set waitingcounter = TRUE
set SV_Target = GetAttacker
Attack( Delta Attack )
elseif ( downlist == 1 )
set mover1[STAND_ANIMATION] = 0
set waitingcounter = TRUE
set downlist = 1
Attack( Spin )
elseif ( downlist == 4 )
set mover1[HP] = mover3[HP]
set mover3[HP] = hplimitdeath - 1
elseif ( downlist == 2 )
set mover1[STAND_ANIMATION] = 0
set waitingcounter = TRUE
set downlist = 2
Attack( Spin )
elseif ( downlist == 5 )
set mover1[HP] = mover3[HP]
set mover3[HP] = hplimitdeath - 1
elseif ( downlist == 6 )
set mover1[HP] = mover2[HP]
set mover2[HP] = hplimitdeath - 1
elseif ( downlist == 3 )
set mover1[STAND_ANIMATION] = 0
set waitingcounter = TRUE
set downlist = 3
Attack( Spin )
elseif ( downlist == 7 )
set alldown = TRUE
if ( #( SV_EnemyTeam & mover2 ) )
set mover2[HP] = 0
if ( #( SV_EnemyTeam & mover3 ) )
set mover3[HP] = 0
if ( #( SV_EnemyTeam & mover1 ) )
set mover1[HP] = 0
Function Mover_CounterEx
if ( GetAttackCommandId == Enemy Counter )
set SV_FunctionEnemy[PREVENT_ATTACK] = 1
if ( downlist & 1 )
set firstdown = TRUE
set mover2[TARGETABLE] = 0
set mover1[MODEL_OFF] = 12
if ( downlist & 2 )
set seconddown = TRUE
set mover3[TARGETABLE] = 0
set mover1[MODEL_OFF] = 48
set downlist = 0
if ( mover1[HP] < hplimitdeath )
set downlist = 4
if ( mover2[HP] < hplimitdeath )
set downlist |= 1
if ( mover3[HP] < hplimitdeath )
set downlist |= 2
if ( downlist & 4 )
set mover1[HP] = hplimitdeath
if ( !firstdown && ( downlist & 1 ) )
set mover2[HP] = hplimitdeath
if ( !seconddown && ( downlist & 2 ) )
set mover3[HP] = hplimitdeath
if ( downlist == 7 )
set alldown = TRUE
if ( #( SV_EnemyTeam & mover2 ) )
set mover2[HP] = 0
if ( #( SV_EnemyTeam & mover3 ) )
set mover3[HP] = 0
if ( #( SV_EnemyTeam & mover1 ) )
set mover1[HP] = 0
Tetra Master[]
Tetra Master |
---|
#050 Location: Black Mage Village (Black mage no.33) Treno (Card Stadium) |
Mover's card can be won from Black mage no.33 in the endgame, though they play it only rarely. Beast Master Gilbert uses it in the Treno Card Stadium in the endgame.