The Magic Vice is an enemy from Final Fantasy IX found in the Burmecia Suburbs. They can be difficult to deal with when they use Magic Hammer to deplete a magic-using character's MP. When at critical health, the Magic Vice will often flee the battle.
Like the standard Vice, Magic Vice can steal items from the party with Mug. Any stolen items are lost forever, even if the Magic Vice is subsequently defeated. This can be of considerable inconvenience as the only way to recover these items is to load a previous save file.
Stats[]
AI script[]
Using global variable mimic
Using global variable vice1
Using global variable vice2
Using global variable vice2
Using global variable viceindexcounter
Using global variable vicestate
Using global variable calledviceappeared
Function Magic_Vice_Init (without Mimic)
set escapecounter = GetRandom % 3
Function Magic_Vice_Loop (with a Mimic)
if ( !initflag )
set SV_FunctionEnemy[SHADOW] = 0
set SV_FunctionEnemy[TARGETABLE] = 0
if ( viceindexcounter == 0 )
set vice1 = SV_FunctionEnemy
elseif ( viceindexcounter == 1 )
set vice2 = SV_FunctionEnemy
elseif ( viceindexcounter == 2 )
set vice3 = SV_FunctionEnemy
set viceindex = viceindexcounter++
while ( GetBattleState != 4 )
if ( ( ( vicestate >> ( viceindex * 4 ) ) & 0xF ) == 1 )
set SV_Target = SV_FunctionEnemy
AttackSpecial( Appearance )
while ( IsAttacking == 0 )
Wait( 1 )
while ( IsAttacking != 0 )
Wait( 1 )
set SV_FunctionEnemy[TARGETABLE] = 1
set vicestate += 1 << ( viceindex * 4 )
while ( GetBattleState != 1 )
Wait( 1 )
RunBattleCode( Enable ATB )
while ( GetBattleState != 4 )
Wait( 1 )
Wait( 1 )
set initflag++
elseif ( initflag == 1 )
set appearancestate = ( vicestate >> ( viceindex * 4 ) ) & 0xF
if ( ( appearancestate == 0 ) || ( ( appearancestate == 1 ) && !calledviceappeared ) )
if ( !( #( NotMatching(SV_EnemyTeam[STATUS_CURRENT], PETRIFY | VENOM | DEATH | STOP) & mimic ) ) )
while ( IsAttacking != 0 )
Wait( 1 )
set appearancestate = ( vicestate >> ( viceindex * 4 ) ) & 0xF
if ( ( appearancestate == 0 ) || ( ( appearancestate == 1 ) && !calledviceappeared ) )
if ( NotMatching(SV_EnemyTeam[STATUS_CURRENT], PETRIFY | VENOM | DEATH | STOP) == SV_FunctionEnemy )
if ( !IsRebirthFlameCasted )
if ( GetBattleState != 4 )
return
RunBattleCode( Disable ATB )
while ( GetBattleState != 1 )
Wait( 1 )
RunBattleCode( End Battle, Victory )
else
set SV_FunctionEnemy[PRESENCE_OFF] = 1
if ( appearancestate == 1 )
if ( !( #Matching(SV_FunctionEnemy[MODEL_VISIBLE], TRUE) ) )
set SV_FunctionEnemy[TARGETABLE] = 1
set calledviceappeared = 1
set vicestate += 1 << ( viceindex * 4 )
Wait( 1 )
loop
Function Magic_Vice_ATB (without Mimic)
if ( escapecounter == 255 )
set SV_Target = SV_FunctionEnemy
Attack( Escape )
elseif ( escapecounter )
set escapecounter--
set SV_Target = RandomInTeam(SV_PlayerTeam)
Attack( Magic Hammer )
else
set escapecounter = 255
set SV_Target = RandomInTeam(SV_PlayerTeam)
set randnum = GetRandom % 15
if ( randnum <= 7 )
Attack( Mug Potion )
elseif ( randnum <= 11 )
Attack( Mug Hi-Potion )
elseif ( randnum <= 13 )
Attack( Mug Ether )
else
Attack( Mug Elixir )
Function Magic_Vice_ATB (with a Mimic)
if ( ( ( vicestate >> ( viceindex * 4 ) ) & 0xF ) == 0 )
set SV_Target = SV_FunctionEnemy
Attack( No action )
elseif ( ( ( vicestate >> ( viceindex * 4 ) ) & 0xF ) == 1 )
set SV_Target = RandomInTeam(SV_PlayerTeam)
Attack( Appearance )
elseif ( ( ( vicestate >> ( viceindex * 4 ) ) & 0xF ) == 2 )
if ( escapeflag )
set SV_Target = SV_FunctionEnemy
Attack( Escape )
else
set SV_Target = RandomInTeam(SV_PlayerTeam)
set randnum = GetRandom % 15
if ( randnum <= 7 )
Attack( Mug Potion )
elseif ( randnum <= 11 )
Attack( Mug Hi-Potion )
elseif ( randnum <= 13 )
Attack( Mug Ether )
else
Attack( Mug Elixir )
set escapeflag++
elseif ( ( ( vicestate >> ( viceindex * 4 ) ) & 0xF ) == 3 )
set SV_Target = SV_FunctionEnemy
Attack( No action )
Function Magic_Vice_CounterEx
if ( GetAttacker == SV_FunctionEnemy )
if ( GetAttackId != Escape )
return
while ( IsAttacking != 0 )
Wait( 1 )
if ( ( #NotMatching(SV_EnemyTeam[STATUS_CURRENT], PETRIFY | VENOM | DEATH | STOP) ) > 1 )
set SV_FunctionEnemy[TARGETABLE] = 0
set SV_FunctionEnemy[MODEL_OFF] = 255
Wait( 1 )
if ( !( #( NotMatching(SV_EnemyTeam[STATUS_CURRENT], PETRIFY | VENOM | DEATH | STOP) & SV_FunctionEnemy ) ) )
set SV_FunctionEnemy[DISAPPEAR] = 0
return
if ( #NotMatching(SV_EnemyTeam[STATUS_CURRENT], PETRIFY | VENOM | DEATH | STOP) == 0 )
set SV_FunctionEnemy[DISAPPEAR] = 0
elseif ( #NotMatching(SV_EnemyTeam[STATUS_CURRENT], PETRIFY | VENOM | DEATH | STOP) == 1 )
if ( GetBattleState != 4 )
return
RunBattleCode( Disable ATB )
while ( GetBattleState != 1 )
Wait( 1 )
if ( GetExpGain )
RunBattleCode( End Battle, Victory )
else
RunBattleCode( End Battle, Escape )
else
set SV_FunctionEnemy[PRESENCE_OFF] = 1
Gallery[]
Etymology[]
Magic or sorcery is an attempt to understand, experience and influence the world using rituals, symbols, actions, gestures and language that are believed to exploit supernatural forces.
Vice is a practice, behaviour, or habit generally considered immoral, sinful, criminal, rude, taboo, depraved, or degrading in the associated society.