From 4dc2bc69aa55c197ac6ee41f5230405c24bf9264 Mon Sep 17 00:00:00 2001 From: Frank DeBlasio <35279583+fdeblasio@users.noreply.github.com> Date: Fri, 24 Jan 2025 12:38:51 -0500 Subject: [PATCH] Fixed Liquid Voice's dynamic type for normal moves (#6092) --- src/battle_main.c | 22 +++++++++++----------- test/battle/ability/liquid_voice.c | 21 +++++++++++++++++++++ 2 files changed, 32 insertions(+), 11 deletions(-) create mode 100644 test/battle/ability/liquid_voice.c diff --git a/src/battle_main.c b/src/battle_main.c index 2391b4f370..5028a02e33 100644 --- a/src/battle_main.c +++ b/src/battle_main.c @@ -6028,9 +6028,17 @@ u32 GetDynamicMoveType(struct Pokemon *mon, u32 move, u32 battler, u8 *ateBoost) break; } - if (moveType == TYPE_NORMAL - && ((!gMain.inBattle || TrySetAteType(move, battler, ability)) - && GetActiveGimmick(battler) != GIMMICK_DYNAMAX)) + if (gMovesInfo[move].soundMove && ability == ABILITY_LIQUID_VOICE) + { + return TYPE_WATER; + } + else if (moveEffect == EFFECT_AURA_WHEEL && species == SPECIES_MORPEKO_HANGRY) + { + return TYPE_DARK; + } + else if (moveType == TYPE_NORMAL + && ((!gMain.inBattle || TrySetAteType(move, battler, ability)) + && GetActiveGimmick(battler) != GIMMICK_DYNAMAX)) { if (gMain.inBattle && ateBoost != NULL) *ateBoost = TRUE; @@ -6045,14 +6053,6 @@ u32 GetDynamicMoveType(struct Pokemon *mon, u32 move, u32 battler, u8 *ateBoost) *ateBoost = TRUE; return TYPE_NORMAL; } - else if (gMovesInfo[move].soundMove && ability == ABILITY_LIQUID_VOICE) - { - return TYPE_WATER; - } - else if (moveEffect == EFFECT_AURA_WHEEL && species == SPECIES_MORPEKO_HANGRY) - { - return TYPE_DARK; - } return TYPE_NONE; } diff --git a/test/battle/ability/liquid_voice.c b/test/battle/ability/liquid_voice.c new file mode 100644 index 0000000000..79fec2f2a6 --- /dev/null +++ b/test/battle/ability/liquid_voice.c @@ -0,0 +1,21 @@ +#include "global.h" +#include "test/battle.h" + +ASSUMPTIONS +{ + ASSUME(gMovesInfo[MOVE_HYPER_VOICE].type == TYPE_NORMAL); + ASSUME(gMovesInfo[MOVE_HYPER_VOICE].power > 0); +} + +SINGLE_BATTLE_TEST("Liquid voice turns a sound move into a Water-type move") +{ + GIVEN { + PLAYER(SPECIES_TYPHLOSION); + OPPONENT(SPECIES_PRIMARINA) { Ability(ABILITY_LIQUID_VOICE); } + } WHEN { + TURN { MOVE(opponent, MOVE_HYPER_VOICE); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_HYPER_VOICE, opponent); + MESSAGE("It's super effective!"); + } +}