Fixes Brick Break/Psychic Fangs/Raging Bull breaking screens if target is immune (#6308)
This commit is contained in:
parent
5340dc8687
commit
f6ff64cdbe
@ -632,7 +632,7 @@ BattleScript_AffectionBasedStatus_HealFreezeString:
|
||||
printstring STRINGID_ATTACKERMELTEDTHEICE
|
||||
goto BattleScript_AffectionBasedStatusHeal_Continue
|
||||
BattleScript_AffectionBasedStatus_HealFrostbiteString:
|
||||
printstring STRINGID_ATTACKERMELTEDTHEICE
|
||||
printstring STRINGID_ATTACKERHEALEDITSFROSTBITE
|
||||
BattleScript_AffectionBasedStatusHeal_Continue:
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
clearstatus BS_ATTACKER
|
||||
@ -5090,6 +5090,7 @@ BattleScript_EffectBrickBreak::
|
||||
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
||||
attackstring
|
||||
ppreduce
|
||||
typecalc
|
||||
removelightscreenreflect
|
||||
critcalc
|
||||
damagecalc
|
||||
|
||||
@ -4,119 +4,139 @@
|
||||
ASSUMPTIONS
|
||||
{
|
||||
ASSUME(gMovesInfo[MOVE_BRICK_BREAK].effect == EFFECT_BRICK_BREAK);
|
||||
ASSUME(gMovesInfo[MOVE_PSYCHIC_FANGS].effect == EFFECT_BRICK_BREAK);
|
||||
ASSUME(gMovesInfo[MOVE_SNOWSCAPE].effect == EFFECT_SNOWSCAPE);
|
||||
ASSUME(gMovesInfo[MOVE_LIGHT_SCREEN].effect == EFFECT_LIGHT_SCREEN);
|
||||
ASSUME(gMovesInfo[MOVE_REFLECT].effect == EFFECT_REFLECT);
|
||||
ASSUME(gMovesInfo[MOVE_AURORA_VEIL].effect == EFFECT_AURORA_VEIL);
|
||||
}
|
||||
|
||||
SINGLE_BATTLE_TEST("Brick Break removes Light Screen, Reflect and Aurora Veil from the target's side of the field")
|
||||
SINGLE_BATTLE_TEST("Brick Break and Psychic Fangs remove Light Screen, Reflect and Aurora Veil from the target's side of the field")
|
||||
{
|
||||
u16 move;
|
||||
u32 move;
|
||||
u32 breakingMove;
|
||||
|
||||
PARAMETRIZE { move = MOVE_LIGHT_SCREEN; }
|
||||
PARAMETRIZE { move = MOVE_REFLECT; }
|
||||
PARAMETRIZE { move = MOVE_AURORA_VEIL; }
|
||||
PARAMETRIZE { move = MOVE_LIGHT_SCREEN; breakingMove = MOVE_BRICK_BREAK; }
|
||||
PARAMETRIZE { move = MOVE_REFLECT; breakingMove = MOVE_BRICK_BREAK; }
|
||||
PARAMETRIZE { move = MOVE_AURORA_VEIL; breakingMove = MOVE_BRICK_BREAK; }
|
||||
PARAMETRIZE { move = MOVE_LIGHT_SCREEN; breakingMove = MOVE_PSYCHIC_FANGS; }
|
||||
PARAMETRIZE { move = MOVE_REFLECT; breakingMove = MOVE_PSYCHIC_FANGS; }
|
||||
PARAMETRIZE { move = MOVE_AURORA_VEIL; breakingMove = MOVE_PSYCHIC_FANGS; }
|
||||
|
||||
GIVEN {
|
||||
PLAYER(SPECIES_WOBBUFFET);
|
||||
OPPONENT(SPECIES_WOBBUFFET);
|
||||
} WHEN {
|
||||
TURN { MOVE(player, MOVE_SNOWSCAPE); }
|
||||
TURN { MOVE(opponent, move); MOVE(player, MOVE_BRICK_BREAK); }
|
||||
TURN { MOVE(opponent, move); MOVE(player, breakingMove); }
|
||||
} SCENE {
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_SNOWSCAPE, player);
|
||||
ANIMATION(ANIM_TYPE_MOVE, move, opponent);
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_BRICK_BREAK, player);
|
||||
ANIMATION(ANIM_TYPE_MOVE, breakingMove, player);
|
||||
MESSAGE("The wall shattered!");
|
||||
HP_BAR(opponent);
|
||||
}
|
||||
}
|
||||
|
||||
SINGLE_BATTLE_TEST("Brick Break doesn't remove Light Screen, Reflect and Aurora Veil if the target is immune")
|
||||
SINGLE_BATTLE_TEST("Brick Break and Psychic Fangs don't remove Light Screen, Reflect and Aurora Veil if the target is immune")
|
||||
{
|
||||
u16 move;
|
||||
u32 move;
|
||||
u32 breakingMove;
|
||||
|
||||
PARAMETRIZE { move = MOVE_LIGHT_SCREEN; }
|
||||
PARAMETRIZE { move = MOVE_REFLECT; }
|
||||
PARAMETRIZE { move = MOVE_AURORA_VEIL; }
|
||||
PARAMETRIZE { move = MOVE_LIGHT_SCREEN; breakingMove = MOVE_BRICK_BREAK; }
|
||||
PARAMETRIZE { move = MOVE_REFLECT; breakingMove = MOVE_BRICK_BREAK; }
|
||||
PARAMETRIZE { move = MOVE_AURORA_VEIL; breakingMove = MOVE_BRICK_BREAK; }
|
||||
PARAMETRIZE { move = MOVE_LIGHT_SCREEN; breakingMove = MOVE_PSYCHIC_FANGS; }
|
||||
PARAMETRIZE { move = MOVE_REFLECT; breakingMove = MOVE_PSYCHIC_FANGS; }
|
||||
PARAMETRIZE { move = MOVE_AURORA_VEIL; breakingMove = MOVE_PSYCHIC_FANGS; }
|
||||
|
||||
KNOWN_FAILING;
|
||||
GIVEN {
|
||||
PLAYER(SPECIES_WOBBUFFET);
|
||||
OPPONENT(SPECIES_GASTLY);
|
||||
OPPONENT(SPECIES_SABLEYE);
|
||||
} WHEN {
|
||||
TURN { MOVE(player, MOVE_SNOWSCAPE); }
|
||||
TURN { MOVE(opponent, move); MOVE(player, MOVE_BRICK_BREAK); }
|
||||
TURN { MOVE(opponent, move); MOVE(player, breakingMove); }
|
||||
} SCENE {
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_SNOWSCAPE, player);
|
||||
ANIMATION(ANIM_TYPE_MOVE, move, opponent);
|
||||
NONE_OF {
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_BRICK_BREAK, player);
|
||||
ANIMATION(ANIM_TYPE_MOVE, breakingMove, player);
|
||||
MESSAGE("The wall shattered!");
|
||||
HP_BAR(opponent);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
SINGLE_BATTLE_TEST("Brick Break doesn't remove Light Screen, Reflect and Aurora Veil if the target Protected")
|
||||
SINGLE_BATTLE_TEST("Brick Break and Psychic Fangs don't remove Light Screen, Reflect and Aurora Veil if the target Protected")
|
||||
{
|
||||
u16 move;
|
||||
u32 move;
|
||||
u32 breakingMove;
|
||||
|
||||
PARAMETRIZE { move = MOVE_LIGHT_SCREEN; }
|
||||
PARAMETRIZE { move = MOVE_REFLECT; }
|
||||
PARAMETRIZE { move = MOVE_AURORA_VEIL; }
|
||||
PARAMETRIZE { move = MOVE_LIGHT_SCREEN; breakingMove = MOVE_BRICK_BREAK; }
|
||||
PARAMETRIZE { move = MOVE_REFLECT; breakingMove = MOVE_BRICK_BREAK; }
|
||||
PARAMETRIZE { move = MOVE_AURORA_VEIL; breakingMove = MOVE_BRICK_BREAK; }
|
||||
PARAMETRIZE { move = MOVE_LIGHT_SCREEN; breakingMove = MOVE_PSYCHIC_FANGS; }
|
||||
PARAMETRIZE { move = MOVE_REFLECT; breakingMove = MOVE_PSYCHIC_FANGS; }
|
||||
PARAMETRIZE { move = MOVE_AURORA_VEIL; breakingMove = MOVE_PSYCHIC_FANGS; }
|
||||
|
||||
GIVEN {
|
||||
PLAYER(SPECIES_WOBBUFFET);
|
||||
OPPONENT(SPECIES_WOBBUFFET);
|
||||
} WHEN {
|
||||
TURN { MOVE(player, MOVE_SNOWSCAPE); MOVE(opponent, move); }
|
||||
TURN { MOVE(player, MOVE_BRICK_BREAK); MOVE(opponent, MOVE_PROTECT); }
|
||||
TURN { MOVE(player, breakingMove); MOVE(opponent, MOVE_PROTECT); }
|
||||
} SCENE {
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_SNOWSCAPE, player);
|
||||
ANIMATION(ANIM_TYPE_MOVE, move, opponent);
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_PROTECT, opponent);
|
||||
NONE_OF {
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_BRICK_BREAK, player);
|
||||
ANIMATION(ANIM_TYPE_MOVE, breakingMove, player);
|
||||
MESSAGE("The wall shattered!");
|
||||
HP_BAR(opponent);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
SINGLE_BATTLE_TEST("Brick Break doesn't remove Light Screen, Reflect and Aurora Veil if it misses")
|
||||
SINGLE_BATTLE_TEST("Brick Break and Psychic Fangs don't remove Light Screen, Reflect and Aurora Veil if it misses")
|
||||
{
|
||||
u16 move;
|
||||
u32 move;
|
||||
u32 breakingMove;
|
||||
|
||||
PARAMETRIZE { move = MOVE_LIGHT_SCREEN; }
|
||||
PARAMETRIZE { move = MOVE_REFLECT; }
|
||||
PARAMETRIZE { move = MOVE_AURORA_VEIL; }
|
||||
PARAMETRIZE { move = MOVE_LIGHT_SCREEN; breakingMove = MOVE_BRICK_BREAK; }
|
||||
PARAMETRIZE { move = MOVE_REFLECT; breakingMove = MOVE_BRICK_BREAK; }
|
||||
PARAMETRIZE { move = MOVE_AURORA_VEIL; breakingMove = MOVE_BRICK_BREAK; }
|
||||
PARAMETRIZE { move = MOVE_LIGHT_SCREEN; breakingMove = MOVE_PSYCHIC_FANGS; }
|
||||
PARAMETRIZE { move = MOVE_REFLECT; breakingMove = MOVE_PSYCHIC_FANGS; }
|
||||
PARAMETRIZE { move = MOVE_AURORA_VEIL; breakingMove = MOVE_PSYCHIC_FANGS; }
|
||||
|
||||
GIVEN {
|
||||
PLAYER(SPECIES_WOBBUFFET);
|
||||
OPPONENT(SPECIES_WOBBUFFET) { Item(ITEM_BRIGHT_POWDER); }
|
||||
} WHEN {
|
||||
TURN { MOVE(player, MOVE_SNOWSCAPE); MOVE(opponent, move); }
|
||||
TURN { MOVE(player, MOVE_BRICK_BREAK, hit: FALSE); }
|
||||
TURN { MOVE(player, breakingMove, hit: FALSE); }
|
||||
} SCENE {
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_SNOWSCAPE, player);
|
||||
ANIMATION(ANIM_TYPE_MOVE, move, opponent);
|
||||
NONE_OF {
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_BRICK_BREAK, player);
|
||||
ANIMATION(ANIM_TYPE_MOVE, breakingMove, player);
|
||||
MESSAGE("The wall shattered!");
|
||||
HP_BAR(opponent);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
DOUBLE_BATTLE_TEST("Brick Break can remove Light Screen, Reflect and Aurora Veil on users side")
|
||||
DOUBLE_BATTLE_TEST("Brick Break and Psychic Fangs can remove Light Screen, Reflect and Aurora Veil on users side")
|
||||
{
|
||||
u16 move;
|
||||
u32 move;
|
||||
u32 breakingMove;
|
||||
|
||||
PARAMETRIZE { move = MOVE_LIGHT_SCREEN; }
|
||||
PARAMETRIZE { move = MOVE_REFLECT; }
|
||||
PARAMETRIZE { move = MOVE_AURORA_VEIL; }
|
||||
PARAMETRIZE { move = MOVE_LIGHT_SCREEN; breakingMove = MOVE_BRICK_BREAK; }
|
||||
PARAMETRIZE { move = MOVE_REFLECT; breakingMove = MOVE_BRICK_BREAK; }
|
||||
PARAMETRIZE { move = MOVE_AURORA_VEIL; breakingMove = MOVE_BRICK_BREAK; }
|
||||
PARAMETRIZE { move = MOVE_LIGHT_SCREEN; breakingMove = MOVE_PSYCHIC_FANGS; }
|
||||
PARAMETRIZE { move = MOVE_REFLECT; breakingMove = MOVE_PSYCHIC_FANGS; }
|
||||
PARAMETRIZE { move = MOVE_AURORA_VEIL; breakingMove = MOVE_PSYCHIC_FANGS; }
|
||||
|
||||
GIVEN {
|
||||
PLAYER(SPECIES_WOBBUFFET);
|
||||
@ -127,12 +147,12 @@ DOUBLE_BATTLE_TEST("Brick Break can remove Light Screen, Reflect and Aurora Veil
|
||||
TURN {
|
||||
MOVE(opponentLeft, MOVE_SNOWSCAPE);
|
||||
MOVE(playerLeft, move);
|
||||
MOVE(playerRight, MOVE_BRICK_BREAK, target: playerLeft);
|
||||
MOVE(playerRight, breakingMove, target: playerLeft);
|
||||
}
|
||||
} SCENE {
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_SNOWSCAPE, opponentLeft);
|
||||
ANIMATION(ANIM_TYPE_MOVE, move, playerLeft);
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_BRICK_BREAK, playerRight);
|
||||
ANIMATION(ANIM_TYPE_MOVE, breakingMove, playerRight);
|
||||
MESSAGE("The wall shattered!");
|
||||
HP_BAR(playerLeft);
|
||||
}
|
||||
|
||||
@ -41,7 +41,6 @@ SINGLE_BATTLE_TEST("Raging Bull doesn't remove Light Screen, Reflect and Aurora
|
||||
PARAMETRIZE { move = MOVE_REFLECT; }
|
||||
PARAMETRIZE { move = MOVE_AURORA_VEIL; }
|
||||
|
||||
KNOWN_FAILING;
|
||||
GIVEN {
|
||||
PLAYER(SPECIES_WOBBUFFET);
|
||||
OPPONENT(SPECIES_GASTLY);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user