FANDOM


IX

Vivi is the victim of a boss fought in Final Fantasy IX, during the second battle with Prison Cage. While the player must avoid Vivi's HP dropping to zero, the battle is quite easy as Vivi will constantly cast Fire spells on the Prison Cage. It is advised to heal Vivi with a Potion after two to three consecutive drains from the Prison Cage.

StatsEdit

Formations Edit

Enemies Frequency AP
????
Can't escape.
Prison Cage, Vivi 100% 3

AI Script Edit

Using global variable cagedvivi

Using global variable prisoncage Using global variable viviendflag Using global variable vivideadflag
Function Vivi_Init
   set speakingally = 0

Function Vivi_Loop
   if ( !initflag )
      set initflag = TRUE
      BattleDialog( "Let me go! Help me!" )
      set SV_FunctionEnemy[ATB] = SV_FunctionEnemy[MAX_ATB]
      set cagedvivi = SV_FunctionEnemy
   if ( firstattackprogression == 0 )
      set SV_PlayerTeam[ATB] = 0
      if ( #( SV_EnemyTeam & prisoncage ) )
         set prisoncage[ATB] = 0
   elseif ( firstattackprogression == 1 )
      if ( GetAttacker == SV_FunctionEnemy )
         set firstattackprogression = 2
   elseif ( firstattackprogression == 2 )
      if ( GetAttacker != SV_FunctionEnemy )
         set firstattackprogression = 4
   if ( !viviendflag && vivideadflag )
      set viviendflag = TRUE
      while ( IsAttacking != 0 )
         Wait( 1 )
      RunBattleCode( Disable ATB )
      while ( GetBattleState != 1 )
         Wait( 1 )
      set SV_Target = SV_FunctionEnemy
      AttackSpecial( WAITANIM )
      while ( IsAttacking != 0 )
         Wait( 1 )
      set SV_Target = SV_FunctionEnemy
      AttackSpecial( Death )
      while ( IsAttacking != 0 )
         Wait( 1 )
      BattleDialog( "You failed to save Vivi." )
      Wait( 20 )
      RunBattleCode( Game Over )
   if ( ( #( NotMatching(SV_PlayerTeam[STATUS_CURRENT], PETRIFY | VENOM | DEATH | STOP) & speakingally ) == 0 ) && ( speakingally != SV_FunctionEnemy ) && ( speakingally != 0 ) )
      set SV_FunctionEnemy[PREVENT_ATTACK] = 1
   Wait( 1 )
   loop

Function Vivi_ATB
   set SV_Target = prisoncage
   if ( attackcounter == 0 )
      set attackcounter++
      set firstattackprogression = 1
      set speakingally = 0
      if ( #( NotMatching(SV_PlayerTeam[STATUS_CURRENT], PETRIFY | VENOM | DEATH | STOP) & steiner ) )
         set speakingally = steiner
         Attack( Fire )
      else
         set speakingally = 0
         Attack( Fire )
   elseif ( attackcounter == 1 )
      set attackcounter++
      if ( #( NotMatching(SV_PlayerTeam[STATUS_CURRENT], PETRIFY | VENOM | DEATH | STOP) & zidane ) )
         set speakingally = zidane
         Attack( Fire )
      else
         set speakingally = 0
         Attack( Fire )
   else
      set speakingally = 0
      Attack( Fire )
      break

Function Vivi_CounterEx
   if ( GetAttackCommandId != Enemy Command )
      return
   if ( #( SV_EnemyTeam & SV_FunctionEnemy ) )
      SetTextVariable( 0, SV_FunctionEnemy[HP] - 10000 )
      SetTextVariable( 1, SV_FunctionEnemy[MAX_HP] - 10000 )
      if ( SV_FunctionEnemy[HP] < 10000 )
         SetTextVariable( 0, 0 )


   BattleDialog( "Vivi’s HP: [NUMB=0]/[NUMB=1]" )

Related enemies Edit