2023-10-15 02:58:31 +01:00
|
|
|
#include "global.h"
|
|
|
|
#include "test/battle.h"
|
|
|
|
|
|
|
|
ASSUMPTIONS
|
|
|
|
{
|
2024-01-29 11:51:32 +00:00
|
|
|
ASSUME(gMovesInfo[MOVE_HURRICANE].effect == EFFECT_THUNDER);
|
|
|
|
ASSUME(gMovesInfo[MOVE_HURRICANE].accuracy == 70);
|
2023-10-15 02:58:31 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
SINGLE_BATTLE_TEST("Hurricane's accuracy is lowered to 50% in Sunlight")
|
|
|
|
{
|
|
|
|
PASSES_RANDOMLY(50, 100, RNG_ACCURACY);
|
|
|
|
GIVEN {
|
|
|
|
PLAYER(SPECIES_WOBBUFFET);
|
|
|
|
OPPONENT(SPECIES_WOBBUFFET);
|
|
|
|
} WHEN {
|
|
|
|
TURN { MOVE(player, MOVE_SUNNY_DAY); MOVE(opponent, MOVE_HURRICANE); }
|
|
|
|
} SCENE {
|
|
|
|
ANIMATION(ANIM_TYPE_MOVE, MOVE_HURRICANE, opponent);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
SINGLE_BATTLE_TEST("Hurricane bypasses accuracy checks in Rain")
|
|
|
|
{
|
|
|
|
PASSES_RANDOMLY(100, 100, RNG_ACCURACY);
|
|
|
|
GIVEN {
|
|
|
|
PLAYER(SPECIES_WOBBUFFET);
|
|
|
|
OPPONENT(SPECIES_WOBBUFFET);
|
|
|
|
} WHEN {
|
|
|
|
TURN { MOVE(opponent, MOVE_RAIN_DANCE); MOVE(player, MOVE_HURRICANE); }
|
|
|
|
} SCENE {
|
|
|
|
NONE_OF { MESSAGE("Wobbuffet's attack missed!"); }
|
|
|
|
}
|
|
|
|
}
|
2024-06-20 12:46:01 +01:00
|
|
|
|
|
|
|
SINGLE_BATTLE_TEST("Hurricane can hit airborne targets (Fly, Bounce)")
|
|
|
|
{
|
|
|
|
u16 move;
|
|
|
|
PARAMETRIZE { move = MOVE_FLY; }
|
|
|
|
PARAMETRIZE { move = MOVE_BOUNCE; }
|
|
|
|
GIVEN {
|
|
|
|
ASSUME(gMovesInfo[MOVE_FLY].effect == EFFECT_SEMI_INVULNERABLE);
|
|
|
|
ASSUME(UNCOMPRESS_BITS(HIHALF(gMovesInfo[MOVE_FLY].argument)) == STATUS3_ON_AIR);
|
|
|
|
ASSUME(gMovesInfo[MOVE_BOUNCE].effect == EFFECT_SEMI_INVULNERABLE);
|
|
|
|
ASSUME(UNCOMPRESS_BITS(HIHALF(gMovesInfo[MOVE_BOUNCE].argument)) == STATUS3_ON_AIR);
|
|
|
|
PLAYER(SPECIES_WOBBUFFET);
|
|
|
|
OPPONENT(SPECIES_WOBBUFFET) { Moves(move); }
|
|
|
|
} WHEN {
|
|
|
|
TURN { MOVE(opponent, move); MOVE(player, MOVE_HURRICANE); }
|
|
|
|
} SCENE {
|
|
|
|
ANIMATION(ANIM_TYPE_MOVE, move, opponent);
|
|
|
|
ANIMATION(ANIM_TYPE_MOVE, MOVE_HURRICANE, player);
|
|
|
|
NONE_OF { MESSAGE("Wobbuffet's attack missed!"); }
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
DOUBLE_BATTLE_TEST("Hurricane can hit airborne targets (Sky Drop)")
|
|
|
|
{
|
|
|
|
GIVEN {
|
|
|
|
ASSUME(gMovesInfo[MOVE_SKY_DROP].effect == EFFECT_SKY_DROP);
|
|
|
|
ASSUME(UNCOMPRESS_BITS(HIHALF(gMovesInfo[MOVE_SKY_DROP].argument)) == STATUS3_ON_AIR);
|
|
|
|
PLAYER(SPECIES_WOBBUFFET);
|
|
|
|
PLAYER(SPECIES_WOBBUFFET);
|
|
|
|
OPPONENT(SPECIES_WOBBUFFET);
|
|
|
|
OPPONENT(SPECIES_WOBBUFFET);
|
|
|
|
} WHEN {
|
|
|
|
TURN { MOVE(playerLeft, MOVE_SKY_DROP, target: opponentLeft); MOVE(playerRight, MOVE_HURRICANE, target: playerLeft); }
|
|
|
|
} SCENE {
|
|
|
|
ANIMATION(ANIM_TYPE_MOVE, MOVE_SKY_DROP, playerLeft);
|
|
|
|
ANIMATION(ANIM_TYPE_MOVE, MOVE_HURRICANE, playerRight);
|
|
|
|
NONE_OF { MESSAGE("Wobbuffet's attack missed!"); }
|
|
|
|
}
|
|
|
|
}
|