Fix fury cutter scaling up to 640 power (#4846)
* Fix fury cutter scaling up to 640 power * Replace three instances of int i with one int turn * dynamic test
This commit is contained in:
parent
7ae88d8455
commit
c31f982a7b
2 changed files with 48 additions and 1 deletions
|
@ -13328,7 +13328,16 @@ static void Cmd_handlefurycutter(void)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (gDisableStructs[gBattlerAttacker].furyCutterCounter != 5
|
u32 max;
|
||||||
|
|
||||||
|
if (B_UPDATED_MOVE_DATA >= GEN_6)
|
||||||
|
max = 3;
|
||||||
|
else if (B_UPDATED_MOVE_DATA == GEN_5)
|
||||||
|
max = 4;
|
||||||
|
else
|
||||||
|
max = 5;
|
||||||
|
|
||||||
|
if (gDisableStructs[gBattlerAttacker].furyCutterCounter < max
|
||||||
&& gSpecialStatuses[gBattlerAttacker].parentalBondState != PARENTAL_BOND_1ST_HIT) // Don't increment counter on first hit
|
&& gSpecialStatuses[gBattlerAttacker].parentalBondState != PARENTAL_BOND_1ST_HIT) // Don't increment counter on first hit
|
||||||
gDisableStructs[gBattlerAttacker].furyCutterCounter++;
|
gDisableStructs[gBattlerAttacker].furyCutterCounter++;
|
||||||
|
|
||||||
|
|
38
test/battle/move_effect/fury_cutter.c
Normal file
38
test/battle/move_effect/fury_cutter.c
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
#include "global.h"
|
||||||
|
#include "test/battle.h"
|
||||||
|
|
||||||
|
ASSUMPTIONS
|
||||||
|
{
|
||||||
|
ASSUME(gMovesInfo[MOVE_FURY_CUTTER].effect == EFFECT_FURY_CUTTER);
|
||||||
|
}
|
||||||
|
|
||||||
|
SINGLE_BATTLE_TEST("Fury Cutter power doubles with each use, up to 160 power")
|
||||||
|
{
|
||||||
|
s16 damage[6];
|
||||||
|
int turn;
|
||||||
|
int maxTurns;
|
||||||
|
|
||||||
|
if (B_UPDATED_MOVE_DATA >= GEN_6)
|
||||||
|
maxTurns = 4;
|
||||||
|
else if (B_UPDATED_MOVE_DATA == GEN_5)
|
||||||
|
maxTurns = 5;
|
||||||
|
else
|
||||||
|
maxTurns = 6;
|
||||||
|
|
||||||
|
GIVEN {
|
||||||
|
PLAYER(SPECIES_CROBAT);
|
||||||
|
OPPONENT(SPECIES_LINOONE) { HP(900); }
|
||||||
|
} WHEN {
|
||||||
|
for (turn = 0; turn < maxTurns; turn++)
|
||||||
|
TURN { MOVE(player, MOVE_FURY_CUTTER); }
|
||||||
|
} SCENE {
|
||||||
|
for (turn = 0; turn < maxTurns; turn++) {
|
||||||
|
ANIMATION(ANIM_TYPE_MOVE, MOVE_FURY_CUTTER, player);
|
||||||
|
HP_BAR(opponent, captureDamage: &damage[turn]);
|
||||||
|
}
|
||||||
|
} THEN {
|
||||||
|
for (turn = 1; turn < maxTurns - 1; turn++)
|
||||||
|
EXPECT_MUL_EQ(damage[turn - 1], UQ_4_12(2.0), damage[turn]);
|
||||||
|
EXPECT_EQ(damage[maxTurns - 2], damage[maxTurns - 1]);
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in a new issue