From 36fae275994d89d83c11987c509479811b67e475 Mon Sep 17 00:00:00 2001 From: FosterProgramming Date: Tue, 23 Sep 2025 17:50:48 +0200 Subject: [PATCH] Fix catch bug introduced in #7774 (#7782) --- src/battle_script_commands.c | 2 +- test/battle/ability/ball_fetch.c | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index 5ad5a1c642..84d58d6f64 100755 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -13945,7 +13945,7 @@ static void Cmd_handleballthrow(void) odds = 1048560 / odds; for (shakes = 0; shakes < maxShakes; shakes++) { - if (RandomUniform(RNG_BALLTHROW_SHAKE, 0, MAX_u16) < odds) + if (RandomUniform(RNG_BALLTHROW_SHAKE, 0, MAX_u16) >= odds) break; } } diff --git a/test/battle/ability/ball_fetch.c b/test/battle/ability/ball_fetch.c index a7513a701c..762225c0f0 100644 --- a/test/battle/ability/ball_fetch.c +++ b/test/battle/ability/ball_fetch.c @@ -15,7 +15,7 @@ WILD_BATTLE_TEST("Ball Fetch causes the Pokémon to pick up the last failed Ball PLAYER(SPECIES_YAMPER) { Ability(ABILITY_BALL_FETCH); } OPPONENT(SPECIES_METAGROSS); } WHEN { - TURN { USE_ITEM(player, item, WITH_RNG(RNG_BALLTHROW_SHAKE, 0) );} + TURN { USE_ITEM(player, item, WITH_RNG(RNG_BALLTHROW_SHAKE, MAX_u16) );} TURN {} } SCENE { if (item != ITEM_X_ACCURACY) @@ -41,7 +41,7 @@ WILD_BATTLE_TEST("Ball Fetch doesn't trigger if the Pokémon is already holding PLAYER(SPECIES_YAMPER) { Ability(ABILITY_BALL_FETCH); Item(item); } OPPONENT(SPECIES_METAGROSS); } WHEN { - TURN { USE_ITEM(player, ITEM_GREAT_BALL, WITH_RNG(RNG_BALLTHROW_SHAKE, 0)); } + TURN { USE_ITEM(player, ITEM_GREAT_BALL, WITH_RNG(RNG_BALLTHROW_SHAKE, MAX_u16)); } } SCENE { if (item == ITEM_NONE) { @@ -80,9 +80,9 @@ WILD_BATTLE_TEST("Ball Fetch only picks up the first failed ball, once per battl PLAYER(SPECIES_YAMPER) { Ability(ABILITY_BALL_FETCH); } OPPONENT(SPECIES_METAGROSS); } WHEN { - TURN { USE_ITEM(player, item, WITH_RNG(RNG_BALLTHROW_SHAKE, 0)); } + TURN { USE_ITEM(player, item, WITH_RNG(RNG_BALLTHROW_SHAKE, MAX_u16)); } TURN { MOVE(player, MOVE_BESTOW); } - TURN { USE_ITEM(player, item2, WITH_RNG(RNG_BALLTHROW_SHAKE, 0)); } + TURN { USE_ITEM(player, item2, WITH_RNG(RNG_BALLTHROW_SHAKE, MAX_u16)); } } SCENE { MESSAGE("You used Great Ball!"); ABILITY_POPUP(player, ABILITY_BALL_FETCH);