From f237b5fa1bd217c3bfc89a00373ac545fe377214 Mon Sep 17 00:00:00 2001 From: Alex <93446519+AlexOn1ine@users.noreply.github.com> Date: Mon, 17 Mar 2025 21:48:50 +0100 Subject: [PATCH] Fixes negative priority being blocked by dazzling abilities (#6433) --- src/battle_util.c | 2 +- test/battle/ability/dazzling.c | 22 ++++++++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/src/battle_util.c b/src/battle_util.c index 38223e058f..30479a060e 100644 --- a/src/battle_util.c +++ b/src/battle_util.c @@ -4241,7 +4241,7 @@ static void ChooseStatBoostAnimation(u32 battler) bool32 CanAbilityBlockMove(u32 battlerAtk, u32 battlerDef, u32 move, u32 abilityDef, enum AbilityEffectOptions option) { const u8 *battleScriptBlocksMove = NULL; - u32 atkPriority = AI_DATA->aiCalcInProgress ? GetBattleMovePriority(battlerAtk, move) : GetChosenMovePriority(battlerAtk); + s32 atkPriority = AI_DATA->aiCalcInProgress ? GetBattleMovePriority(battlerAtk, move) : GetChosenMovePriority(battlerAtk); u32 moveTarget = GetBattlerMoveTargetType(battlerAtk, move); u32 battlerAbility = battlerDef; diff --git a/test/battle/ability/dazzling.c b/test/battle/ability/dazzling.c index cc77e9a3bd..e248c9ce0b 100644 --- a/test/battle/ability/dazzling.c +++ b/test/battle/ability/dazzling.c @@ -50,3 +50,25 @@ DOUBLE_BATTLE_TEST("Dazzling, Queenly Majesty and Armor Tail protect users partn MESSAGE("Wobbuffet cannot use Quick Attack!"); } } + +DOUBLE_BATTLE_TEST("Dazzling, Queenly Majesty and Armor Tail don't protect the user from negative priority") +{ + u32 species, ability; + + PARAMETRIZE { species = SPECIES_BRUXISH; ability = ABILITY_DAZZLING; } + PARAMETRIZE { species = SPECIES_FARIGIRAF; ability = ABILITY_ARMOR_TAIL; } + PARAMETRIZE { species = SPECIES_TSAREENA; ability = ABILITY_QUEENLY_MAJESTY; } + + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(species) { Ability(ability); } + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(playerLeft, MOVE_AVALANCHE, target: opponentLeft); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_AVALANCHE, playerLeft); + NOT ABILITY_POPUP(opponentLeft, ability); + } +} +