Final Fantasy Wiki
Final Fantasy Wiki
Advertisement

Mirror Zidane is a human enemy from Final Fantasy IX. The party can fight him if an Epitaph (Zidane) uses its Mirror ability, triggered if any non lethal action is aimed at it. Mirror Zidane will deal 9,999 damage to Zidane. Using Iai Strike can defeat him in one blow, or the player may opt to have Man Eater equipped to increase the amount of damage done to this enemy. The player can farm Amethysts from him.

Stats[]

AI script[]

Using global variable dialogtarget
Using global variable dialogspeaker
Using global variable waitingdialog
Using global variable dialogstate
Using global variable epitaph
Using global variable mirror1
Using global variable mirror2
Using global variable mirror3
Using global variable mirrorindexcounter
Using global variable mirrorstate


Function Main_Loop
   if ( waitingdialog )
      while ( GetAttacker != dialogspeaker )
         Wait( 1 )
      Wait( 15 )
      if ( #( NotMatching(SV_EnemyTeam[STATUS_CURRENT], PETRIFY | DEATH | JUMP) & dialogspeaker ) )
         set waitingdialog = FALSE
         if ( !( #dialogtarget ) )
            BattleDialog( "I’m Zidane!" )
            set dialogstate |= 16
            set dialogstate |= 8
         else
            if ( #( ( NotMatching(SV_PlayerTeam[STATUS_CURRENT], PETRIFY | DEATH | JUMP) ) & dialogtarget ) )
               if ( dialogstate & 16 )
                  BattleDialog( "I’m the real Zidane!" )
               else
                  BattleDialog( "I’m Zidane!" )
                  set dialogstate |= 16
               set dialogstate |= 8
            set dialogtarget = 0
   Wait( 1 )
   loop


Function Zidane_Loop
   if ( !initflag )
      set SV_FunctionEnemy[SHADOW] = 0
      set SV_FunctionEnemy[TARGETABLE] = 0
      set mirrorindex = mirrorindexcounter++
      while ( GetBattleState != 4 )
         Wait( 1 )
      set initflag++
   elseif ( initflag == 1 )
      if ( !( ( mirrorstate >> ( mirrorindex * 4 ) ) & 0xF ) )
         if ( !( #( NotMatching(SV_EnemyTeam[STATUS_CURRENT], PETRIFY | VENOM | DEATH | STOP) & epitaph ) ) )
            while ( IsAttacking != 0 )
               Wait( 1 )
            if ( !( ( mirrorstate >> ( mirrorindex * 4 ) ) & 0xF ) )
               if ( NotMatching(SV_EnemyTeam[STATUS_CURRENT], PETRIFY | VENOM | DEATH | STOP) == SV_FunctionEnemy )
                  if ( !IsRebirthFlameCasted )
                     RunBattleCode( Disable ATB )
                     while ( GetBattleState != 1 )
                        Wait( 1 )
                     RunBattleCode( End Battle, Victory )
                     return
               else
                  set SV_FunctionEnemy[PRESENCE_OFF] = 1
                  return
      else
         if ( waitingos )
            set zidane = NotMatching(SV_PlayerTeam[STATUS_CURRENT], PETRIFY | DEATH | JUMP)
            set zidane = RandomInTeam( ( zidane[MODEL_TYPE] ==$ 0 ) | ( zidane[MODEL_TYPE] ==$ 1 ) )
            if ( !( #zidane ) )
               set dialogtarget = 0
               set SV_FunctionEnemy[PREVENT_ATTACK] = 1
               set waitingos = FALSE
               set SV_FunctionEnemy[ATB] = SV_FunctionEnemy[MAX_ATB]
            if ( GetAttacker == SV_FunctionEnemy )
               set waitingos = FALSE
         if ( waitingattack )
            set zidane = NotMatching(SV_PlayerTeam[STATUS_CURRENT], PETRIFY | DEATH | JUMP)
            set zidane = RandomInTeam( ( zidane[MODEL_TYPE] ==$ 0 ) | ( zidane[MODEL_TYPE] ==$ 1 ) )
            if ( #zidane )
               set SV_FunctionEnemy[PREVENT_ATTACK] = 1
               set waitingattack = FALSE
               set SV_FunctionEnemy[ATB] = SV_FunctionEnemy[MAX_ATB]
            if ( GetAttacker == SV_FunctionEnemy )
               set waitingattack = FALSE
   Wait( 1 )
   loop


Function Zidane_ATB
   if ( ( mirrorstate >> ( mirrorindex * 4 ) ) & 0xF == 1 )
      set SV_Target = NotMatching(SV_PlayerTeam[STATUS_CURRENT], PETRIFY | DEATH | JUMP)
      set SV_Target = RandomInTeam( ( SV_Target[MODEL_TYPE] ==$ 0 ) | ( SV_Target[MODEL_TYPE] ==$ 1 ) )
      if ( #SV_Target )
         set waitingos = TRUE
         set dialogtarget = SV_Target
         set dialogspeaker = SV_FunctionEnemy
         set waitingdialog = TRUE
         Attack( Battlemes0 )
      set SV_Target = RandomInTeam( NotMatching(SV_PlayerTeam[STATUS_CURRENT], PETRIFY | DEATH | JUMP) )
      set waitingattack = TRUE
      if ( !( dialogstate & 8 ) )
         set dialogspeaker = SV_FunctionEnemy
         set waitingdialog = TRUE
         Attack( Attack )
      else
         Attack( Attack )
   else
      Attack( None )


Related enemies[]

Advertisement