Final Fantasy Wiki
Advertisement

Kuja is fought as the boss atop Pandemonium in Final Fantasy IX. The battle ends by a scripted event.

Stats[]

Battle[]

Flare-Star-Kuja

Flare Star.

Kuja casts Thundaga and Demi and uses the special Flare Star magic if party members are under the Reflect status, or if he is attacked by an ability that lowers his MP. Flare Star is a devastating spell, damaging the whole party that neither Shell nor Reflect can protect against. During the battle, Kuja occasionally taunts the characters when they attack him.

Depleting his HP transforms Kuja into Trance form and he casts Ultima, ending the battle.

Strategy[]

Coral Ring absorbs Thundaga. It is not advised to use Auto-Reflect, as this makes Kuja use Flare Star. Physical attacks with the Man Eater are enough to defeat him. He is susceptible to Quina's LV4 Holy.

AI script[]

Using general variable Boss_SpecialAnimationFlag
Using global variable kuja
Using global variable trancekuja
Using global variable dotranceattacks

Function Kuja_Init
   set Boss_SpecialAnimationFlag = FALSE
   set attacklist = [ Thundaga ; Demi ]


Function Kuja_Loop
   if ( !initflag )
      set initflag = TRUE
      set kuja = SV_FunctionEnemy
   if ( SV_FunctionEnemy[HP] < 10000 )
      set endflag = TRUE
      while ( IsAttacking != 0 )
         Wait( 1 )
      RunBattleCode( Disable ATB )
      while ( GetBattleState != 1 )
         Wait( 1 )
      set trancekuja[TARGETABLE] = 1
      Wait( 1 )
      set SV_Target = trancekuja
      AttackSpecial( Transform )
      Wait( 45 )
      set trancekuja[SHADOW] = 1
      while ( !Boss_SpecialAnimationFlag )
         Wait( 1 )
      set Boss_SpecialAnimationFlag = FALSE
      set dotranceattacks = TRUE
      set SV_FunctionEnemy[DISAPPEAR] = 1
      while ( !Boss_SpecialAnimationFlag )
         Wait( 1 )
      FadeFilter( FILTER_ADD, 1, BLACK )
      set Boss_SpecialAnimationFlag = FALSE
      while ( dotranceattacks )
         Wait( 1 )
      RunBattleCode( End Battle, Interruption )
   Wait( 1 )
   loop


Function Kuja_ATB
   if ( ( SV_FunctionEnemy[MP] < 20 ) || !( #RandomInTeam( NotMatching(SV_PlayerTeam[STATUS_CURRENT], PETRIFY | DEATH | JUMP | REFLECT) & NotMatching(SV_PlayerTeam[STATUS_AUTO], REFLECT) ) ) )
      set SV_Target = SV_PlayerTeam
      Attack( Flare Star )
   set selectedattack = RandomAttack( attacklist )
   if ( selectedattack == Thundaga )
      set SV_Target = RandomInTeam( NotMatching(SV_PlayerTeam[STATUS_CURRENT], PETRIFY | DEATH | JUMP | REFLECT) & NotMatching(SV_PlayerTeam[STATUS_AUTO], REFLECT) )
   elseif ( selectedattack == Demi )
      set SV_Target = RandomInTeam( NotMatching(SV_PlayerTeam[STATUS_CURRENT], PETRIFY | DEATH | JUMP | REFLECT) & NotMatching(SV_PlayerTeam[STATUS_AUTO], REFLECT) )
   Attack( selectedattack )


Function Kuja_CounterEx
   if ( ( GetAttackCommandId != Attack ) && ( GetAttackCommandId != None ) && ( GetAttackCommandId != Jump ) && ( GetAttackCommandId != Throw ) && ( GetAttackCommandId != Summon ) && ( GetAttackCommandId != Eidolon ) && ( GetAttackCommandId != Blk Mag ) && ( GetAttackCommandId != Dbl Blk ) )
      return
   if ( ( SV_FunctionEnemy[HP] > 10000 ) && #NotMatching(SV_FunctionEnemy[STATUS_CURRENT], PETRIFY | VENOM | DEATH | STOP) )
      if ( tauntcounter == 0 )
         BattleDialog( "Ha ha ha..." )
         set tauntcounter++
      elseif ( tauntcounter == 1 )
         BattleDialog( "You call that an attack?" )
         set tauntcounter++
      elseif ( tauntcounter == 2 )
         BattleDialog( "Show me your true power!" )
         set tauntcounter++


Gallery[]

Related enemies[]

Advertisement