Fix Syrup Bomb and change Octolock
This commit is contained in:
parent
311224d32f
commit
6ed8ab771b
6 changed files with 158 additions and 55 deletions
|
@ -452,28 +452,15 @@ BattleScript_EffectSyrupBomb::
|
||||||
goto BattleScript_MoveEnd
|
goto BattleScript_MoveEnd
|
||||||
|
|
||||||
BattleScript_SyrupBombEndTurn::
|
BattleScript_SyrupBombEndTurn::
|
||||||
setbyte sSTAT_ANIM_PLAYED, FALSE
|
|
||||||
copybyte sBATTLER, gBattlerTarget
|
|
||||||
jumpifholdeffect BS_TARGET, HOLD_EFFECT_CLEAR_AMULET, BattleScript_SyrupBombItemNoStatLoss
|
|
||||||
jumpifability BS_TARGET, ABILITY_CLEAR_BODY, BattleScript_SyrupBombAbilityNoStatLoss
|
|
||||||
jumpifability BS_TARGET, ABILITY_FULL_METAL_BODY, BattleScript_SyrupBombAbilityNoStatLoss
|
|
||||||
jumpifability BS_TARGET, ABILITY_WHITE_SMOKE, BattleScript_SyrupBombAbilityNoStatLoss
|
|
||||||
jumpifstat BS_TARGET, CMP_GREATER_THAN, BIT_SPEED, MIN_STAT_STAGE, BattleScript_SyrupBombLowerSpeed
|
|
||||||
goto BattleScript_SyrupBombEnd2
|
|
||||||
BattleScript_SyrupBombLowerSpeed:
|
|
||||||
playstatchangeanimation BS_ATTACKER, BIT_SPEED, STAT_CHANGE_NEGATIVE
|
playstatchangeanimation BS_ATTACKER, BIT_SPEED, STAT_CHANGE_NEGATIVE
|
||||||
setbyte sSTAT_ANIM_PLAYED, TRUE
|
|
||||||
setstatchanger STAT_SPEED, 1, TRUE
|
setstatchanger STAT_SPEED, 1, TRUE
|
||||||
statbuffchange STAT_CHANGE_ALLOW_PTR, BattleScript_SyrupBombEnd2
|
statbuffchange STAT_CHANGE_ALLOW_PTR | STAT_CHANGE_NOT_PROTECT_AFFECTED, BattleScript_SyrupBombTurnDmgEnd
|
||||||
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_DECREASE, BattleScript_SyrupBombEnd2
|
BattleScript_SyrupBombTurnDmgPrintMsg:
|
||||||
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 3, BattleScript_SyrupBombTurnDmgEnd
|
||||||
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 4, BattleScript_SyrupBombTurnDmgEnd
|
||||||
printfromtable gStatDownStringIds
|
printfromtable gStatDownStringIds
|
||||||
waitmessage B_WAIT_TIME_LONG
|
waitmessage B_WAIT_TIME_LONG
|
||||||
BattleScript_SyrupBombItemNoStatLoss::
|
BattleScript_SyrupBombTurnDmgEnd:
|
||||||
call BattleScript_ItemNoStatLoss
|
|
||||||
goto BattleScript_SyrupBombEnd2
|
|
||||||
BattleScript_SyrupBombAbilityNoStatLoss::
|
|
||||||
call BattleScript_AbilityNoStatLoss
|
|
||||||
BattleScript_SyrupBombEnd2::
|
|
||||||
end2
|
end2
|
||||||
|
|
||||||
BattleScript_EffectMatchaGotcha::
|
BattleScript_EffectMatchaGotcha::
|
||||||
|
@ -1079,29 +1066,23 @@ BattleScript_EffectOctolock:
|
||||||
goto BattleScript_MoveEnd
|
goto BattleScript_MoveEnd
|
||||||
|
|
||||||
BattleScript_OctolockEndTurn::
|
BattleScript_OctolockEndTurn::
|
||||||
setbyte sSTAT_ANIM_PLAYED, FALSE
|
|
||||||
jumpifstat BS_TARGET, CMP_GREATER_THAN, STAT_DEF, MIN_STAT_STAGE, BattleScript_OctolockLowerDef
|
|
||||||
jumpifstat BS_TARGET, CMP_GREATER_THAN, STAT_SPDEF, MIN_STAT_STAGE, BattleScript_OctolockTryLowerSpDef
|
|
||||||
goto BattleScript_OctolockEnd2
|
|
||||||
BattleScript_OctolockLowerDef:
|
|
||||||
jumpifability BS_TARGET, ABILITY_BIG_PECKS, BattleScript_OctolockTryLowerSpDef
|
|
||||||
playstatchangeanimation BS_ATTACKER, BIT_DEF | BIT_SPDEF, STAT_CHANGE_NEGATIVE
|
playstatchangeanimation BS_ATTACKER, BIT_DEF | BIT_SPDEF, STAT_CHANGE_NEGATIVE
|
||||||
setbyte sSTAT_ANIM_PLAYED, TRUE
|
|
||||||
setstatchanger STAT_DEF, 1, TRUE
|
setstatchanger STAT_DEF, 1, TRUE
|
||||||
statbuffchange STAT_CHANGE_ALLOW_PTR, BattleScript_OctolockTryLowerSpDef
|
statbuffchange STAT_CHANGE_ALLOW_PTR | STAT_CHANGE_NOT_PROTECT_AFFECTED, BattleScript_OctolockTryLowerDef
|
||||||
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_DECREASE, BattleScript_OctolockTryLowerSpDef
|
BattleScript_OctolockTryLowerDef:
|
||||||
printfromtable gStatUpStringIds
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 3, BattleScript_OctolockTryLowerSpDef
|
||||||
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 4, BattleScript_OctolockTryLowerSpDef
|
||||||
|
printfromtable gStatDownStringIds
|
||||||
waitmessage B_WAIT_TIME_LONG
|
waitmessage B_WAIT_TIME_LONG
|
||||||
BattleScript_OctolockTryLowerSpDef:
|
BattleScript_OctolockTryLowerSpDef:
|
||||||
jumpifbyte CMP_EQUAL, sSTAT_ANIM_PLAYED, TRUE, BattleScript_OctolockSkipSpDefAnim
|
|
||||||
playstatchangeanimation BS_ATTACKER, BIT_SPDEF, STAT_CHANGE_NEGATIVE
|
|
||||||
BattleScript_OctolockSkipSpDefAnim:
|
|
||||||
setstatchanger STAT_SPDEF, 1, TRUE
|
setstatchanger STAT_SPDEF, 1, TRUE
|
||||||
statbuffchange STAT_CHANGE_ALLOW_PTR, BattleScript_OctolockEnd2
|
statbuffchange STAT_CHANGE_ALLOW_PTR | STAT_CHANGE_NOT_PROTECT_AFFECTED, BattleScript_OctolockTurnDmgPrintMsg
|
||||||
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_DECREASE, BattleScript_OctolockEnd2
|
BattleScript_OctolockTurnDmgPrintMsg:
|
||||||
printfromtable gStatUpStringIds
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 3, BattleScript_OctlockTurnDmgEnd
|
||||||
|
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 4, BattleScript_OctlockTurnDmgEnd
|
||||||
|
printfromtable gStatDownStringIds
|
||||||
waitmessage B_WAIT_TIME_LONG
|
waitmessage B_WAIT_TIME_LONG
|
||||||
BattleScript_OctolockEnd2::
|
BattleScript_OctlockTurnDmgEnd:
|
||||||
end2
|
end2
|
||||||
|
|
||||||
BattleScript_EffectPoltergeist:
|
BattleScript_EffectPoltergeist:
|
||||||
|
|
|
@ -3010,7 +3010,7 @@ void SetMoveEffect(bool32 primary, u32 certain)
|
||||||
gBattleMons[gEffectBattler].status1 |= STATUS1_SLEEP_TURN(1 + RandomUniform(RNG_SLEEP_TURNS, 1, 3));
|
gBattleMons[gEffectBattler].status1 |= STATUS1_SLEEP_TURN(1 + RandomUniform(RNG_SLEEP_TURNS, 1, 3));
|
||||||
else
|
else
|
||||||
gBattleMons[gEffectBattler].status1 |= STATUS1_SLEEP_TURN(1 + RandomUniform(RNG_SLEEP_TURNS, 2, 5));
|
gBattleMons[gEffectBattler].status1 |= STATUS1_SLEEP_TURN(1 + RandomUniform(RNG_SLEEP_TURNS, 2, 5));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
gBattleMons[gEffectBattler].status1 |= sStatusFlagsForMoveEffects[gBattleScripting.moveEffect];
|
gBattleMons[gEffectBattler].status1 |= sStatusFlagsForMoveEffects[gBattleScripting.moveEffect];
|
||||||
|
@ -11406,11 +11406,6 @@ static u32 ChangeStatBuffs(s8 statValue, u32 statId, u32 flags, const u8 *BS_ptr
|
||||||
|| battlerAbility == ABILITY_WHITE_SMOKE)
|
|| battlerAbility == ABILITY_WHITE_SMOKE)
|
||||||
&& (!affectsUser || mirrorArmored) && !certain && gCurrentMove != MOVE_CURSE)
|
&& (!affectsUser || mirrorArmored) && !certain && gCurrentMove != MOVE_CURSE)
|
||||||
{
|
{
|
||||||
if (battlerHoldEffect == HOLD_EFFECT_CLEAR_AMULET)
|
|
||||||
{
|
|
||||||
RecordItemEffectBattle(battler, HOLD_EFFECT_CLEAR_AMULET);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (flags == STAT_CHANGE_ALLOW_PTR)
|
if (flags == STAT_CHANGE_ALLOW_PTR)
|
||||||
{
|
{
|
||||||
if (gSpecialStatuses[battler].statLowered)
|
if (gSpecialStatuses[battler].statLowered)
|
||||||
|
@ -11424,6 +11419,7 @@ static u32 ChangeStatBuffs(s8 statValue, u32 statId, u32 flags, const u8 *BS_ptr
|
||||||
if (battlerHoldEffect == HOLD_EFFECT_CLEAR_AMULET)
|
if (battlerHoldEffect == HOLD_EFFECT_CLEAR_AMULET)
|
||||||
{
|
{
|
||||||
gBattlescriptCurrInstr = BattleScript_ItemNoStatLoss;
|
gBattlescriptCurrInstr = BattleScript_ItemNoStatLoss;
|
||||||
|
RecordItemEffectBattle(battler, HOLD_EFFECT_CLEAR_AMULET);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
|
@ -2793,11 +2793,7 @@ u8 DoBattlerEndTurnEffects(void)
|
||||||
case ENDTURN_OCTOLOCK:
|
case ENDTURN_OCTOLOCK:
|
||||||
{
|
{
|
||||||
u16 battlerAbility = GetBattlerAbility(battler);
|
u16 battlerAbility = GetBattlerAbility(battler);
|
||||||
if (gDisableStructs[battler].octolock
|
if (gDisableStructs[battler].octolock)
|
||||||
&& !(GetBattlerHoldEffect(battler, TRUE) == HOLD_EFFECT_CLEAR_AMULET
|
|
||||||
|| battlerAbility == ABILITY_CLEAR_BODY
|
|
||||||
|| battlerAbility == ABILITY_FULL_METAL_BODY
|
|
||||||
|| battlerAbility == ABILITY_WHITE_SMOKE))
|
|
||||||
{
|
{
|
||||||
gBattlerTarget = battler;
|
gBattlerTarget = battler;
|
||||||
BattleScriptExecute(BattleScript_OctolockEndTurn);
|
BattleScriptExecute(BattleScript_OctolockEndTurn);
|
||||||
|
@ -3094,9 +3090,6 @@ u8 DoBattlerEndTurnEffects(void)
|
||||||
case ENDTURN_SYRUP_BOMB:
|
case ENDTURN_SYRUP_BOMB:
|
||||||
if ((gStatuses4[battler] & STATUS4_SYRUP_BOMB) && (gBattleMons[battler].hp != 0))
|
if ((gStatuses4[battler] & STATUS4_SYRUP_BOMB) && (gBattleMons[battler].hp != 0))
|
||||||
{
|
{
|
||||||
u16 battlerAbility = GetBattlerAbility(battler);
|
|
||||||
u32 battlerHoldEffect = GetBattlerHoldEffect(battler, TRUE);
|
|
||||||
|
|
||||||
gDisableStructs[battler].syrupBombTimer--;
|
gDisableStructs[battler].syrupBombTimer--;
|
||||||
if (gDisableStructs[battler].syrupBombTimer == 0)
|
if (gDisableStructs[battler].syrupBombTimer == 0)
|
||||||
{
|
{
|
||||||
|
@ -5760,7 +5753,7 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32
|
||||||
case ABILITYEFFECT_OPPORTUNIST:
|
case ABILITYEFFECT_OPPORTUNIST:
|
||||||
/* Similar to ABILITYEFFECT_IMMUNITY in that it loops through all battlers.
|
/* Similar to ABILITYEFFECT_IMMUNITY in that it loops through all battlers.
|
||||||
* Is called after ABILITYEFFECT_ON_SWITCHIN to copy any boosts
|
* Is called after ABILITYEFFECT_ON_SWITCHIN to copy any boosts
|
||||||
* from switch in abilities e.g. intrepid sword, as
|
* from switch in abilities e.g. intrepid sword, as
|
||||||
*/
|
*/
|
||||||
for (battler = 0; battler < gBattlersCount; battler++)
|
for (battler = 0; battler < gBattlersCount; battler++)
|
||||||
{
|
{
|
||||||
|
@ -5836,7 +5829,7 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32
|
||||||
effect = 4;
|
effect = 4;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (effect != 0)
|
if (effect != 0)
|
||||||
{
|
{
|
||||||
switch (effect)
|
switch (effect)
|
||||||
|
|
|
@ -76,3 +76,40 @@ SINGLE_BATTLE_TEST("Damage calculation matches Gen5+ (Muscle Band, crit)")
|
||||||
EXPECT_EQ(expectedDamage, dmg);
|
EXPECT_EQ(expectedDamage, dmg);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SINGLE_BATTLE_TEST("Damage calculation matches Gen5+ (Marshadow vs Mawile)")
|
||||||
|
{
|
||||||
|
s16 dmg;
|
||||||
|
s16 expectedDamage;
|
||||||
|
PARAMETRIZE { expectedDamage = 145; }
|
||||||
|
PARAMETRIZE { expectedDamage = 144; }
|
||||||
|
PARAMETRIZE { expectedDamage = 142; }
|
||||||
|
PARAMETRIZE { expectedDamage = 141; }
|
||||||
|
PARAMETRIZE { expectedDamage = 139; }
|
||||||
|
PARAMETRIZE { expectedDamage = 138; }
|
||||||
|
PARAMETRIZE { expectedDamage = 136; }
|
||||||
|
PARAMETRIZE { expectedDamage = 135; }
|
||||||
|
PARAMETRIZE { expectedDamage = 133; }
|
||||||
|
PARAMETRIZE { expectedDamage = 132; }
|
||||||
|
PARAMETRIZE { expectedDamage = 130; }
|
||||||
|
PARAMETRIZE { expectedDamage = 129; }
|
||||||
|
PARAMETRIZE { expectedDamage = 127; }
|
||||||
|
PARAMETRIZE { expectedDamage = 126; }
|
||||||
|
PARAMETRIZE { expectedDamage = 124; }
|
||||||
|
PARAMETRIZE { expectedDamage = 123; }
|
||||||
|
GIVEN {
|
||||||
|
PLAYER(SPECIES_MARSHADOW) { Level(100); Attack(286); }
|
||||||
|
OPPONENT(SPECIES_MAWILE) { Level(100); Defense(226); HP(241); }
|
||||||
|
} WHEN {
|
||||||
|
TURN {
|
||||||
|
MOVE(player, MOVE_SPECTRAL_THIEF, WITH_RNG(RNG_DAMAGE_MODIFIER, i), criticalHit: FALSE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
SCENE{
|
||||||
|
MESSAGE("Marshadow used SpectrlThief!");
|
||||||
|
HP_BAR(opponent, captureDamage: &dmg);
|
||||||
|
}
|
||||||
|
THEN{
|
||||||
|
EXPECT_EQ(expectedDamage, dmg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
97
test/battle/move_effect/octolock.c
Normal file
97
test/battle/move_effect/octolock.c
Normal file
|
@ -0,0 +1,97 @@
|
||||||
|
#include "global.h"
|
||||||
|
#include "test/battle.h"
|
||||||
|
|
||||||
|
SINGLE_BATTLE_TEST("Octolock")
|
||||||
|
{
|
||||||
|
GIVEN {
|
||||||
|
PLAYER(SPECIES_WOBBUFFET);
|
||||||
|
OPPONENT(SPECIES_WOBBUFFET);
|
||||||
|
} WHEN {
|
||||||
|
TURN { MOVE(player, MOVE_OCTOLOCK); }
|
||||||
|
} SCENE {
|
||||||
|
ANIMATION(ANIM_TYPE_MOVE, MOVE_OCTOLOCK, player);
|
||||||
|
MESSAGE("Foe Wobbuffet can no longer escape because of Octolock!");
|
||||||
|
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent);
|
||||||
|
MESSAGE("Foe Wobbuffet's Defense fell!");
|
||||||
|
NOT ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent);
|
||||||
|
MESSAGE("Foe Wobbuffet's Sp. Def fell!");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
SINGLE_BATTLE_TEST("Octolock 2")
|
||||||
|
{
|
||||||
|
u32 species;
|
||||||
|
u32 ability;
|
||||||
|
|
||||||
|
PARAMETRIZE { species = SPECIES_BELDUM; ability = ABILITY_CLEAR_BODY; }
|
||||||
|
PARAMETRIZE { species = SPECIES_TORKOAL; ability = ABILITY_WHITE_SMOKE; }
|
||||||
|
PARAMETRIZE { species = SPECIES_SOLGALEO; ability = ABILITY_FULL_METAL_BODY; }
|
||||||
|
|
||||||
|
GIVEN {
|
||||||
|
PLAYER(SPECIES_WOBBUFFET);
|
||||||
|
OPPONENT(species) { Ability(ability); }
|
||||||
|
} WHEN {
|
||||||
|
TURN { MOVE(player, MOVE_OCTOLOCK); }
|
||||||
|
} SCENE {
|
||||||
|
ANIMATION(ANIM_TYPE_MOVE, MOVE_OCTOLOCK, player);
|
||||||
|
NOT ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent);
|
||||||
|
if (species == SPECIES_BELDUM)
|
||||||
|
{
|
||||||
|
MESSAGE("Foe Beldum can no longer escape because of Octolock!");
|
||||||
|
ABILITY_POPUP(opponent, ABILITY_CLEAR_BODY);
|
||||||
|
MESSAGE("Foe Beldum's Clear Body prevents stat loss!");
|
||||||
|
NOT MESSAGE("Foe Beldum's Defense fell!");
|
||||||
|
NOT MESSAGE("Foe Beldum's Sp. Def fell!");
|
||||||
|
}
|
||||||
|
else if (species == SPECIES_TORKOAL)
|
||||||
|
{
|
||||||
|
MESSAGE("Foe Torkoal can no longer escape because of Octolock!");
|
||||||
|
ABILITY_POPUP(opponent, ABILITY_WHITE_SMOKE);
|
||||||
|
MESSAGE("Foe Torkoal's White Smoke prevents stat loss!");
|
||||||
|
NOT MESSAGE("Foe Torkoal's Defense fell!");
|
||||||
|
NOT MESSAGE("Foe Torkoal's Sp. Def fell!");
|
||||||
|
}
|
||||||
|
else if (species == SPECIES_SOLGALEO)
|
||||||
|
{
|
||||||
|
MESSAGE("Foe Solgaleo can no longer escape because of Octolock!");
|
||||||
|
ABILITY_POPUP(opponent, ABILITY_FULL_METAL_BODY);
|
||||||
|
MESSAGE("Foe Solgaleo's Full Metal Body prevents stat loss!");
|
||||||
|
NOT MESSAGE("Foe Solgaleo's Defense fell!");
|
||||||
|
NOT MESSAGE("Foe Solgaleo's Sp. Def fell!");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
SINGLE_BATTLE_TEST("Octolock 3")
|
||||||
|
{
|
||||||
|
GIVEN {
|
||||||
|
PLAYER(SPECIES_WOBBUFFET);
|
||||||
|
OPPONENT(SPECIES_PIDGEY) { Ability(ABILITY_BIG_PECKS); }
|
||||||
|
} WHEN {
|
||||||
|
TURN { MOVE(player, MOVE_OCTOLOCK); }
|
||||||
|
} SCENE {
|
||||||
|
ANIMATION(ANIM_TYPE_MOVE, MOVE_OCTOLOCK, player);
|
||||||
|
MESSAGE("Foe Pidgey can no longer escape because of Octolock!");
|
||||||
|
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent);
|
||||||
|
NOT MESSAGE("Foe Pidgey's Defense fell!");
|
||||||
|
ABILITY_POPUP(opponent, ABILITY_BIG_PECKS);
|
||||||
|
MESSAGE("Foe Pidgey's Big Pecks prevents stat loss!");
|
||||||
|
MESSAGE("Foe Wobbuffet's Sp. Def fell!");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
SINGLE_BATTLE_TEST("Octolock 4")
|
||||||
|
{
|
||||||
|
GIVEN {
|
||||||
|
PLAYER(SPECIES_WOBBUFFET);
|
||||||
|
OPPONENT(SPECIES_WOBBUFFET) { Item(ITEM_CLEAR_AMULET); }
|
||||||
|
} WHEN {
|
||||||
|
TURN { MOVE(player, MOVE_OCTOLOCK); }
|
||||||
|
} SCENE {
|
||||||
|
ANIMATION(ANIM_TYPE_MOVE, MOVE_OCTOLOCK, player);
|
||||||
|
MESSAGE("Foe Wobbuffet can no longer escape because of Octolock!");
|
||||||
|
NOT ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent);
|
||||||
|
NOT MESSAGE("Foe Wobbuffet's Defense fell!");
|
||||||
|
NOT MESSAGE("Foe Wobbuffet's Sp. Def fell!");
|
||||||
|
}
|
||||||
|
}
|
|
@ -32,9 +32,9 @@ SINGLE_BATTLE_TEST("Syrup Bomb is prevented by Bulletproof")
|
||||||
TURN { MOVE(player, MOVE_SYRUP_BOMB); }
|
TURN { MOVE(player, MOVE_SYRUP_BOMB); }
|
||||||
} SCENE {
|
} SCENE {
|
||||||
ABILITY_POPUP(opponent, ABILITY_BULLETPROOF);
|
ABILITY_POPUP(opponent, ABILITY_BULLETPROOF);
|
||||||
MESSAGE("Foe Chespin's Bulletproof blocks Syrup Bomb!");
|
|
||||||
NOT ANIMATION(ANIM_TYPE_MOVE, MOVE_SYRUP_BOMB, player);
|
NOT ANIMATION(ANIM_TYPE_MOVE, MOVE_SYRUP_BOMB, player);
|
||||||
NOT HP_BAR(opponent);
|
NOT HP_BAR(opponent);
|
||||||
|
MESSAGE("Foe Chespin's Bulletproof blocks Syrup Bomb!");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -57,6 +57,7 @@ SINGLE_BATTLE_TEST("Clear Body, White Smoke and Full Metal Body prevent Sticky S
|
||||||
} SCENE {
|
} SCENE {
|
||||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_SYRUP_BOMB, player);
|
ANIMATION(ANIM_TYPE_MOVE, MOVE_SYRUP_BOMB, player);
|
||||||
HP_BAR(opponent);
|
HP_BAR(opponent);
|
||||||
|
NOT ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent);
|
||||||
if (species == SPECIES_BELDUM)
|
if (species == SPECIES_BELDUM)
|
||||||
{
|
{
|
||||||
MESSAGE("Foe Beldum got covered in sticky syrup!");
|
MESSAGE("Foe Beldum got covered in sticky syrup!");
|
||||||
|
@ -75,8 +76,6 @@ SINGLE_BATTLE_TEST("Clear Body, White Smoke and Full Metal Body prevent Sticky S
|
||||||
ABILITY_POPUP(opponent, ABILITY_FULL_METAL_BODY);
|
ABILITY_POPUP(opponent, ABILITY_FULL_METAL_BODY);
|
||||||
MESSAGE("Foe Solgaleo's Full Metal Body prevents stat loss!");
|
MESSAGE("Foe Solgaleo's Full Metal Body prevents stat loss!");
|
||||||
}
|
}
|
||||||
NOT ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent);
|
|
||||||
NOT MESSAGE("Foe Beldum's Speed fell!");
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -91,8 +90,8 @@ SINGLE_BATTLE_TEST("Clear Amulet prevents Sticky Syrup speed reduction")
|
||||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_SYRUP_BOMB, player);
|
ANIMATION(ANIM_TYPE_MOVE, MOVE_SYRUP_BOMB, player);
|
||||||
HP_BAR(opponent);
|
HP_BAR(opponent);
|
||||||
MESSAGE("Foe Wobbuffet got covered in sticky syrup!");
|
MESSAGE("Foe Wobbuffet got covered in sticky syrup!");
|
||||||
MESSAGE("Foe Wobbuffet's Speed was not lowered!");
|
|
||||||
NOT ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent);
|
NOT ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent);
|
||||||
NOT MESSAGE("Foe Wobbuffet's Speed fell!");
|
NOT MESSAGE("Foe Wobbuffet's Speed fell!");
|
||||||
|
MESSAGE("Foe Wobbuffet's Speed was not lowered!");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue