Intangir Bot (talk | contribs) m (Bot: Changing template: FFIX AI) |
Tag: Visual edit |
||
Line 74: | Line 74: | ||
Necron is not as powerful as [[Ozma (Final Fantasy IX)|Ozma]], but should not be underestimated. Necron has a plethora of magic spells, including [[Firaga (ability)|Firaga]], [[Blizzaga (ability)|Blizzaga]], and [[Thundaga (ability)|Thundaga]], which hit for around 1,500+ damage on all the characters. Necron can also cast [[Holy (ability)|Holy]] and [[Flare (ability)|Flare]], which hit one character for around 3,000 damage. Necron can perform three actions per turn, putting the party at a disadvantage, especially if it casts [[Grand Cross (ability)|Grand Cross]], since Neutron Ring follows almost immediately after. |
Necron is not as powerful as [[Ozma (Final Fantasy IX)|Ozma]], but should not be underestimated. Necron has a plethora of magic spells, including [[Firaga (ability)|Firaga]], [[Blizzaga (ability)|Blizzaga]], and [[Thundaga (ability)|Thundaga]], which hit for around 1,500+ damage on all the characters. Necron can also cast [[Holy (ability)|Holy]] and [[Flare (ability)|Flare]], which hit one character for around 3,000 damage. Necron can perform three actions per turn, putting the party at a disadvantage, especially if it casts [[Grand Cross (ability)|Grand Cross]], since Neutron Ring follows almost immediately after. |
||
ā | Necron will buff itself with [[Protect (ability)|Protect]] and [[Shell (ability)|Shell]] and uses [[Curaga]] when its HP drops. Like most final bosses, Necron has an attack to [[HP to one ability|bring one character to 1 HP]]: [[Shockwave|Blue Shockwave]]. Necron's Neutron Ring deals around 4,000+ damage to all characters. Its most devastating attack, Grand Cross, functions similarly to [[Malboro (Final Fantasy IX)|Malboro]]'s [[Bad Breath]], only it inflicts most of the [[status effect|status ailments]] in the game, including [[Heat (status)|Heat]]/[[Freeze (status)|Freeze]]. |
+ | Necron will buff itself with [[Protect (ability)|Protect]] and [[Shell (ability)|Shell]] and uses [[Curaga]] when its HP drops. Like most final bosses, Necron has an attack to [[HP to one ability|bring one character to 1 HP]]: [[Shockwave|Blue Shockwave]]. Necron's Neutron Ring deals around 4,000+ damage to all characters. Its most devastating attack, Grand Cross, functions similarly to [[Malboro (Final Fantasy IX)|Malboro]]'s [[Bad Breath]], only it inflicts most of the [[status effect|status ailments]] in the game, including [[Heat (status)|Heat]]/[[Freeze (status)|Freeze]], [[Zombie (status)|Zombie]], and even [[Instant Death]]. |
=== Strategy === |
=== Strategy === |
Revision as of 14:15, 5 February 2020
Template:Sideicon Necron is the final boss of Final Fantasy IX, fought at the Hill of Despair. After the party has been weakened by Trance Kuja's Ultima spell, the four party members selected to fight Necron are recharged by the other comrades. The player does not have to use Zidane for the final battle.
Stats
Battle
Necron is not as powerful as Ozma, but should not be underestimated. Necron has a plethora of magic spells, including Firaga, Blizzaga, and Thundaga, which hit for around 1,500+ damage on all the characters. Necron can also cast Holy and Flare, which hit one character for around 3,000 damage. Necron can perform three actions per turn, putting the party at a disadvantage, especially if it casts Grand Cross, since Neutron Ring follows almost immediately after.
Necron will buff itself with Protect and Shell and uses Curaga when its HP drops. Like most final bosses, Necron has an attack to bring one character to 1 HP: Blue Shockwave. Necron's Neutron Ring deals around 4,000+ damage to all characters. Its most devastating attack, Grand Cross, functions similarly to Malboro's Bad Breath, only it inflicts most of the status ailments in the game, including Heat/Freeze, Zombie, and even Instant Death.
Strategy
Before fighting Necron the player can check the party's equipment. It is recommended to equip the following immunity abilities to everyone: Clear Headed, Body Temp, Antibody, Locomotion, and Jelly. One can also equip some other supportive abilities, like HP+, Auto-Regen, and Auto-Haste.
It is advised to equip the Bird Killer and MP Attack abilities boost damage of normal attacks. The party can mimic Necron by casting Protect and Shell to guard against its Neutron Ring and elemental magic. Freya's Dragon's Crest, Vivi's Flare, Zidane's Thievery and/or Dyne, and Steiner's Shock are good damage dealers. Amarant's Aura can also be used to cast Regen and Auto-Life.
Quina's powered up Frog Drop is an easy way to deal damage and Quina can also cast Auto-Life and remove all of the party's status effects with Angel's Snack, as well as buff the party with Mighty Guard. If the party has any Elixirs this is the time to use them. Necron itself also carries four Elixirs so Zidane can steal them if the party runs out. Freya can avoid the Neutron Ring, Blue Shockwave, and Grand Cross attacks with the Jump command, especially if she has also achieved Trance.
AI script
Using general variable Boss_SpecialAnimationFlag
Using global variable necron
Function Necron_Init
set Boss_SpecialAnimationFlag = FALSE
set attackcounter = 2
Function Necron_Loop
if ( !initflag )
set initflag = TRUE
set necron = SV_FunctionEnemy
set SV_PlayerTeam[MODEL_OFF] =$ 255
while ( GetBattleState != 1 )
Wait( 1 )
set SV_Target = SV_PlayerTeam
AttackSpecial( Appearance )
while ( IsAttacking != 0 )
Wait( 1 )
RunBattleCode( Enable ATB )
while ( GetBattleState != 4 )
Wait( 1 )
if ( SV_FunctionEnemy[HP] <= 10000 )
while ( IsAttacking != 0 )
Wait( 1 )
RunBattleCode( Disable ATB )
while ( GetBattleState != 1 )
Wait( 1 )
set SV_Target = SV_FunctionEnemy
if ( SV_FunctionEnemy[STAND_ANIMATION] == 1 )
AttackSpecial( Death2 )
while ( IsAttacking != 0 )
Wait( 1 )
set SV_Target = NotMatching(SV_PlayerTeam[STATUS_CURRENT], JUMP)
AttackSpecial( Death3 )
while ( IsAttacking != 0 )
Wait( 1 )
Wait( 1 )
set SV_Target = SV_FunctionEnemy
AttackSpecial( Death1 )
while ( !Boss_SpecialAnimationFlag )
Wait( 1 )
RunBattleCode( Emphasize Music, 1 )
set Boss_SpecialAnimationFlag = FALSE
Wait( 1 )
while ( !Boss_SpecialAnimationFlag )
Wait( 1 )
FadeFilter( FILTER_ADD, 1, BLACK )
while ( IsAttacking != 0 )
Wait( 1 )
RunBattleCode( End Battle, INTERRUPTED )
Wait( 1 )
loop
Function Necron_ATB
if ( SV_FunctionEnemy[STAND_ANIMATION] == 0 )
if ( attackcounter >= 3 )
set SV_Target = SV_PlayerTeam
set attackcounter = 0
Attack( Grand Cross )
else
set SV_Target = RandomInTeam(SV_PlayerTeam)
set attackcounter++
Attack( Blue Shockwave )
set SV_Target = SV_PlayerTeam
Attack( Neutron Ring )
Function Dummy_Loop
if ( !initflag )
set initflag = TRUE
set dummyindex = SV_FunctionEnemy[ENEMY_ID]
if ( dummyindex == 1 )
set attacklist = [ Flare ; Holy ; Meteor ; Flare ; Holy ; Flare ; Holy ]
elseif ( dummyindex == 2 )
set attacklist = [ Firaga ; Blizzaga ; Thundaga ]
elseif ( dummyindex == 3 )
set attacklist = [ Curaga ; Shell ; Protect ]
if ( dummyindex == 1 )
if ( ( #NotMatching(SV_PlayerTeam[STATUS_CURRENT], PETRIFY | VENOM | DEATH | STOP | LOW_HP) < 4 ) && ( targetamount != 0 ) )
set SV_FunctionEnemy[PREVENT_ATTACK] = 1
elseif ( dummyindex == 2 )
if ( ( #NotMatching(SV_PlayerTeam[STATUS_CURRENT], PETRIFY | VENOM | DEATH | STOP | LOW_HP) < 3 ) && ( targetamount != 0 ) )
set SV_FunctionEnemy[PREVENT_ATTACK] = 1
elseif ( dummyindex == 3 )
if ( ( #NotMatching(SV_PlayerTeam[STATUS_CURRENT], PETRIFY | VENOM | DEATH | STOP | LOW_HP) < 2 ) && ( targetamount != 0 ) )
set SV_FunctionEnemy[PREVENT_ATTACK] = 1
Function Dummy_ATB
if ( dummyindex == 1 )
if ( meteorrolledflag )
set flareholybonustarget = RandomInTeam( NotMatching(SV_PlayerTeam[STATUS_CURRENT], PETRIFY | DEATH | ZOMBIE | REFLECT) & NotMatching(SV_PlayerTeam[STATUS_AUTO], REFLECT) )
else
set flareholybonustarget = 0
set selectedattack = RandomAttack( attacklist )
if ( selectedattack == Flare )
set SV_Target = RandomInTeam( NotMatching(SV_PlayerTeam[STATUS_CURRENT], PETRIFY | DEATH | ZOMBIE | REFLECT) & NotMatching(SV_PlayerTeam[STATUS_AUTO], REFLECT) )
elseif ( selectedattack == Holy )
set SV_Target = RandomInTeam( NotMatching(SV_PlayerTeam[STATUS_CURRENT], PETRIFY | DEATH | ZOMBIE | REFLECT) & NotMatching(SV_PlayerTeam[STATUS_AUTO], REFLECT) )
elseif ( selectedattack == Meteor )
set SV_Target = SV_PlayerTeam
elseif ( selectedattack == Flare )
set SV_Target = flareholybonustarget
elseif ( selectedattack == Holy )
set SV_Target = flareholybonustarget
elseif ( selectedattack == Flare )
set SV_Target = RandomInTeam( NotMatching(SV_PlayerTeam[STATUS_CURRENT], PETRIFY | DEATH | ZOMBIE | REFLECT) & NotMatching(SV_PlayerTeam[STATUS_AUTO], REFLECT) )
elseif ( selectedattack == Holy )
set SV_Target = RandomInTeam( NotMatching(SV_PlayerTeam[STATUS_CURRENT], PETRIFY | DEATH | ZOMBIE | REFLECT) & NotMatching(SV_PlayerTeam[STATUS_AUTO], REFLECT) )
if ( selectedattack == Meteor )
set meteorrolledflag = TRUE
elseif ( dummyindex == 2 )
set selectedattack = RandomAttack( attacklist )
if ( selectedattack == Firaga )
set SV_Target = SV_PlayerTeam
elseif ( selectedattack == Blizzaga )
set SV_Target = SV_PlayerTeam
elseif ( selectedattack == Thundaga )
set SV_Target = SV_PlayerTeam
set reflecttargetcheck = RandomInTeam( NotMatching(SV_PlayerTeam[STATUS_CURRENT], PETRIFY | DEATH | ZOMBIE | REFLECT) & NotMatching(SV_PlayerTeam[STATUS_AUTO], REFLECT) )
if ( #( NotMatching(SV_PlayerTeam[STATUS_CURRENT], PETRIFY | VENOM | DEATH | STOP) & reflecttargetcheck ) == 0 )
set SV_Target = 0
elseif ( dummyindex == 3 )
if ( necron[HP] - 10000 < ( necron[MAX_HP] - 10000 ) / 2 )
set curagatarget = necron
else
set curagatarget = 0
set selectedattack = RandomAttack( attacklist )
if ( selectedattack == Curaga )
set SV_Target = curagatarget
elseif ( selectedattack == Shell )
set SV_Target = RandomInTeam( NotMatching(SV_EnemyTeam[STATUS_CURRENT], PETRIFY | DEATH | ZOMBIE | SHELL) )
elseif ( selectedattack == Protect )
set SV_Target = RandomInTeam( NotMatching(SV_EnemyTeam[STATUS_CURRENT], PETRIFY | DEATH | ZOMBIE | PROTECT) )
if ( NotEnoughMP( selectedattack ) || ( SV_Target == 0 ) )
set selectedattack = None
if ( dummyindex == 1 )
if ( #NotMatching(SV_PlayerTeam[STATUS_CURRENT], PETRIFY | VENOM | DEATH | STOP | LOW_HP) < 4 )
set SV_Target = 0
set selectedattack = None
elseif ( dummyindex == 2 )
if ( #NotMatching(SV_PlayerTeam[STATUS_CURRENT], PETRIFY | VENOM | DEATH | STOP | LOW_HP) < 3 )
set SV_Target = 0
set selectedattack = None
elseif ( dummyindex == 3 )
if ( #NotMatching(SV_PlayerTeam[STATUS_CURRENT], PETRIFY | VENOM | DEATH | STOP | LOW_HP) < 2 )
set SV_Target = 0
set selectedattack = None
set targetamount = #SV_Target
Attack( selectedattack )