From 6e529cf221cfa2b3e11414f3b3f73bc4fb142378 Mon Sep 17 00:00:00 2001 From: Eduardo Quezada Date: Thu, 18 Dec 2025 20:45:54 -0300 Subject: [PATCH] `B_KLUTZ_FLING_INTERACTION` config test (#8568) --- include/constants/generational_changes.h | 2 +- src/battle_util.c | 2 +- test/battle/move_effect/fling.c | 12 +++++++----- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/include/constants/generational_changes.h b/include/constants/generational_changes.h index 7d0699d479..a22b686d77 100644 --- a/include/constants/generational_changes.h +++ b/include/constants/generational_changes.h @@ -64,7 +64,7 @@ F(UPDATED_MOVE_FLAGS, updatedMoveFlags, (u32, GEN_COUNT - 1)) /* TODO: use in tests */ \ F(PHYSICAL_SPECIAL_SPLIT, physicalSpecialSplit, (u32, GEN_COUNT - 1)) /* TODO: use in tests */ \ F(RECOIL_IF_MISS_DMG, recoilIfMissDmg, (u32, GEN_COUNT - 1)) /* TODO: use in tests */ \ - F(KLUTZ_FLING_INTERACTION, klutzFlingInteraction, (u32, GEN_COUNT - 1)) /* TODO: use in tests */ \ + F(KLUTZ_FLING_INTERACTION, klutzFlingInteraction, (u32, GEN_COUNT - 1)) \ F(UPDATED_CONVERSION, updatedConversion, (u32, GEN_COUNT - 1)) /* TODO: use in tests */ \ F(UPDATED_CONVERSION_2, updatedConversion2, (u32, GEN_COUNT - 1)) /* TODO: use in tests */ \ F(PP_REDUCED_BY_SPITE, ppReducedBySpite, (u32, GEN_COUNT - 1)) /* TODO: use in tests */ \ diff --git a/src/battle_util.c b/src/battle_util.c index 888580f3fd..975e1f094c 100644 --- a/src/battle_util.c +++ b/src/battle_util.c @@ -9743,7 +9743,7 @@ bool32 CanFling(u32 battler) u16 item = gBattleMons[battler].item; if (item == ITEM_NONE - || (B_KLUTZ_FLING_INTERACTION >= GEN_5 && GetBattlerAbility(battler) == ABILITY_KLUTZ) + || (GetConfig(CONFIG_KLUTZ_FLING_INTERACTION) >= GEN_5 && GetBattlerAbility(battler) == ABILITY_KLUTZ) || gFieldStatuses & STATUS_FIELD_MAGIC_ROOM || gBattleMons[battler].volatiles.embargo || GetFlingPowerFromItemId(item) == 0 diff --git a/test/battle/move_effect/fling.c b/test/battle/move_effect/fling.c index 2046ebe638..012485abe8 100644 --- a/test/battle/move_effect/fling.c +++ b/test/battle/move_effect/fling.c @@ -56,22 +56,24 @@ SINGLE_BATTLE_TEST("Fling fails if Pokémon is under the effects of Embargo or M } } -SINGLE_BATTLE_TEST("Fling fails for Pokémon with Klutz ability") +SINGLE_BATTLE_TEST("Fling fails for Pokémon with Klutz ability (Gen5+)") { enum Ability ability; + u32 config; - PARAMETRIZE {ability = ABILITY_KLUTZ; } - PARAMETRIZE {ability = ABILITY_RUN_AWAY; } + PARAMETRIZE { ability = ABILITY_RUN_AWAY; config = GEN_4; } + PARAMETRIZE { ability = ABILITY_KLUTZ; config = GEN_4; } + PARAMETRIZE { ability = ABILITY_KLUTZ; config = GEN_5; } GIVEN { - ASSUME(B_KLUTZ_FLING_INTERACTION >= GEN_5); + WITH_CONFIG(CONFIG_KLUTZ_FLING_INTERACTION, config); PLAYER(SPECIES_BUNEARY) { Item(ITEM_RAZOR_CLAW); Ability(ability); } OPPONENT(SPECIES_WOBBUFFET); } WHEN { TURN { MOVE(player, MOVE_FLING); } } SCENE { MESSAGE("Buneary used Fling!"); - if (ability != ABILITY_KLUTZ) { + if (ability != ABILITY_KLUTZ || config == GEN_4) { ANIMATION(ANIM_TYPE_MOVE, MOVE_FLING, player); HP_BAR(opponent); } else {