Final Fantasy Wiki
Advertisement

The Plant Brain is a boss from Final Fantasy IX. The party fights it in the Evil Forest in order to rescue Princess Garnet who had been captured by Prison Cage.

After the battle, Evil Forest will begin to petrify.

Stats[]

Formations[]

Enemies Frequency AP
????
Can't escape.
Plant Brain 100% 5

Battle[]

After a certain amount of time has passed (5 or 6 attacks of Plant Brain), or if Plant Brain takes a total of 916 damage, Blank will join the battle. Alternatively, Blank will arrive when Zidane is KOed or his health bar goes to a HP Critical state. Blank does not appear immediately if the player enters the battle with Zidane knocked out. Once Blank appears, Plant Brain's health resets to 458 HP whatever the mean by which Blank appeared: damage, time, or Zidane's state.

Plant Brain's Pollen ability can blinds the party and limit their physical attacking capabilities, although it will not hamper Steiner's Sword Magic.

Plant Brain's most damaging attack is Thunder that hits the whole party.

Strategy[]

At the start of the battle Zidane should attempt to steal Plant Brain's Iron Helm, while Vivi should use Focus and Steiner should be on standby to heal the party with Potions.

Once Blank arrives, he and Zidane should attack using normal physical attacks. Vivi and Steiner should cast Fire and Fire Sword, respectively.

AI script[]

Using global variable zidane
Using global variable vivi
Using global variable blank
Using global variable callblank
Using global variable plantbrainmaxhp
Using global variable plantbrain
Using global variable plantbrainadjustedhp
Using global variable zidanestartdeadcountering

Function Main_Init
   InitObject( Plant_Brain )
   set zidane = ( SV_PlayerTeam[MODEL_TYPE] ==$ 0 )
   set zidane |= ( SV_PlayerTeam[MODEL_TYPE] ==$ 1 )
   set vivi = ( SV_PlayerTeam[MODEL_TYPE] ==$ 2 )
   set blank = ( SV_PlayerTeam[MODEL_TYPE] ==$ 16 )
   set blank |= ( SV_PlayerTeam[MODEL_TYPE] ==$ 17 )
   if ( #zidane )
      if ( ( #( NotMatching(SV_PlayerTeam[STATUS_CURRENT], PETRIFY | VENOM | DEATH | STOP) & zidane ) == 0 ) || #Matching(zidane[STATUS_CURRENT], LOW_HP) )
         set zidanestartdeadcountering = TRUE
   if ( #blank )
      set blank[MODEL_OFF] = 65535L
      set blank[SHADOW] = 0
   while ( GetBattleState != 1 )
      Wait( 1 )
   if ( #blank )
      set blank[PRESENCE_OFF] = 1
   Wait( 1 )
   RunBattleCode( Run Camera, 10 )
   Wait( 30 )
   RunBattleCode( Enable ATB )
   while ( GetBattleState != 4 )
      Wait( 1 )


Function Main_Loop
   if ( callblank && !blankshownup )
      set blankshownup = TRUE
      while ( IsAttacking != 0 )
         Wait( 1 )
      RunBattleCode( Disable ATB )
      while ( GetBattleState != 1 )
         Wait( 1 )
      if ( #( SV_EnemyTeam & plantbrain ) )
         set plantbrain[HP] = plantbrainmaxhp
         set plantbrain[MAX_HP] = plantbrainmaxhp
         set plantbrainadjustedhp = TRUE
      RunBattleCode( Run Camera, 9 )
      set blank[PRESENCE_ON] = 1
      set blank[MODEL_ON] = 65535L
      set blank[SHADOW] = 1
      set blank[ATB] = blank[MAX_ATB]
      BattleDialog( "Blank “Whew, I made it just in time.”" )
      Wait( 45 )
      BattleDialog( "Blank “Step aside. I’ll take care of this.”" )
      Wait( 45 )
      RunBattleCode( Enable ATB )
      while ( GetBattleState != 4 )
         Wait( 1 )
   Wait( 1 )
   loop


Function Plant_Brain_Init
   set attacklist = [ Right Tentacle ; Thunder ; Thunder ]


Function Plant_Brain_Loop
   if ( !initflag )
      set initflag = TRUE
      set plantbrain = SV_FunctionEnemy
      set plantbrainmaxhp = ( SV_FunctionEnemy[MAX_HP] - 10000 ) / 2
      set SV_FunctionEnemy[SHADOW] = 0
   if ( !blankcalled )
      if ( turncounter > 5 )
         set blankcalled = TRUE
         set callblank = TRUE
      elseif ( SV_FunctionEnemy[HP] <= 10000 )
         set callblank = TRUE
      elseif ( #( SV_PlayerTeam & zidane ) && !zidanestartdeadcountering && ( #Matching(zidane[STATUS_CURRENT], LOW_HP) || #Matching(zidane[STATUS_CURRENT], PETRIFY | VENOM | DEATH | STOP) ) )
         set blankcalled = TRUE
         set callblank = TRUE
   if ( #( SV_PlayerTeam & zidane ) && ( zidanealivecounter > 5 ) && ( #Matching(zidane[STATUS_CURRENT], LOW_HP) == 0 ) )
      set zidanestartdeadcountering = FALSE
   if ( zidanestartdeadcountering && #( SV_PlayerTeam & zidane ) && ( zidanealivecounter < 10 ) && #( NotMatching(SV_PlayerTeam[STATUS_CURRENT], PETRIFY | VENOM | DEATH | STOP) & zidane ) )
      set zidanealivecounter++
   if ( multithunderqueued && ( #NotMatching(SV_PlayerTeam[STATUS_CURRENT], PETRIFY | VENOM | DEATH | STOP) == 1 ) )
      set SV_FunctionEnemy[PREVENT_ATTACK] = 1
      set multithunderqueued = FALSE
   Wait( 1 )
   loop


Function Plant_Brain_ATB
   set turncounter++
   if ( #NotMatching(SV_PlayerTeam[STATUS_CURRENT], PETRIFY | VENOM | DEATH | STOP) == 1 )
      set multithundertarget = 0
   else
      set multithundertarget = SV_PlayerTeam
   set selectedattack = RandomAttack( attacklist )
   if ( selectedattack == Right Tentacle )
      set SV_Target = RandomInTeam(SV_PlayerTeam)
   elseif ( selectedattack == Thunder )
      set SV_Target = multithundertarget
   elseif ( selectedattack == Thunder )
      set SV_Target = RandomInTeam(SV_PlayerTeam) & ~vivi
   if ( !blankcalled && #( SV_PlayerTeam & zidane ) && #NotMatching(zidane[STATUS_CURRENT], LOW_HP) && ( #SV_Target == 1 ) && ( GetRandom % 3 ) )
      set SV_Target = zidane
   if ( ( selectedattack == Right Tentacle ) && ( ( SV_Target[COLUMN] == 0 ) || ( SV_Target[COLUMN] == 1 ) ) )
      set selectedattack = Left Tentacle
   if ( !pollenflag )
      set pollenflag = TRUE
      set SV_Target = SV_PlayerTeam
      set selectedattack = Pollen
   if ( selectedattack == Thunder )
      set multithunderqueued = TRUE
   Attack( selectedattack )


Other appearances[]

Pictlogica Final Fantasy[]

Baknamy FFTA2This section about an enemy in Pictlogica Final Fantasy is empty or needs to be expanded. You can help the Final Fantasy Wiki by expanding it.

Final Fantasy Record Keeper[]

FFRK Plant Brain FFIX
Baknamy FFTA2This section about an enemy in Final Fantasy Record Keeper is empty or needs to be expanded. You can help the Final Fantasy Wiki by expanding it.


Gallery[]

Advertisement