FANDOM


IX

The mirror Dagger is a humanoid enemy from Final Fantasy IX. The party can fight her if an Epitaph uses its Mirror ability on Garnet. It will deal 9,999 damage to Garnet, but regular damage to everyone else. Using Iai Strike can defeat her in one blow, or the player may opt to have Man Eater equipped to increase the amount of damage done to this enemy.

StatsEdit

AI Script Edit

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 am Dagger." )
            set dialogstate |= 16
            set dialogstate |= 8
         else
            if ( #( ( NotMatching(SV_PlayerTeam[STATUS_CURRENT], PETRIFY | DEATH | JUMP) ) & dialogtarget ) )
               if ( dialogstate & 16 )
                  BattleDialog( "Who are you?" )
               else
                  BattleDialog( "I am Dagger." )
                  set dialogstate |= 16
               set dialogstate |= 8
            set dialogtarget = 0
   Wait( 1 )
   loop

Function Dagger_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 dagger = NotMatching(SV_PlayerTeam[STATUS_CURRENT], PETRIFY | DEATH | JUMP)
            set dagger = RandomInTeam( ( dagger[MODEL_TYPE] ==$ 3 ) | ( dagger[MODEL_TYPE] ==$ 4 ) | ( dagger[MODEL_TYPE] ==$ 5 ) | ( dagger[MODEL_TYPE] ==$ 6 ) )
            if ( !( #dagger ) )
               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 dagger = NotMatching(SV_PlayerTeam[STATUS_CURRENT], PETRIFY | DEATH | JUMP)
            set dagger = RandomInTeam( ( dagger[MODEL_TYPE] ==$ 3 ) | ( dagger[MODEL_TYPE] ==$ 4 ) | ( dagger[MODEL_TYPE] ==$ 5 ) | ( dagger[MODEL_TYPE] ==$ 6 ) )
            if ( #dagger )
               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 Dagger_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] ==$ 3 ) | ( SV_Target[MODEL_TYPE] ==$ 4 ) | ( SV_Target[MODEL_TYPE] ==$ 5 ) | ( SV_Target[MODEL_TYPE] ==$ 6 ) )
      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 Edit