From 177fa2f096266800f1cdaa8fec4f766da8166bbc Mon Sep 17 00:00:00 2001 From: Alex <93446519+AlexOn1ine@users.noreply.github.com> Date: Tue, 3 Jun 2025 10:26:25 +0200 Subject: [PATCH] Combines Super Fang and Guardian of Alola effects (#7048) --- asm/macros/battle_script.inc | 4 ---- data/battle_scripts_1.s | 10 -------- include/battle_scripts.h | 1 - include/constants/battle_move_effects.h | 5 ++-- include/move.h | 8 ++++++- src/battle_ai_main.c | 21 ++++++++--------- src/battle_dynamax.c | 4 ++-- src/battle_script_commands.c | 10 -------- src/battle_tv.c | 4 ++-- src/battle_util.c | 8 +++---- src/data/battle_move_effects.h | 10 ++------ src/data/moves_info.h | 24 +++++++++++--------- test/battle/ability/cud_chew.c | 4 ++-- test/battle/gimmick/dynamax.c | 2 +- test/battle/gimmick/zmove.c | 4 ++-- test/battle/hold_effect/attack_up.c | 4 ++-- test/battle/hold_effect/critical_hit_up.c | 4 ++-- test/battle/hold_effect/defense_up.c | 4 ++-- test/battle/hold_effect/micle_berry.c | 4 ++-- test/battle/hold_effect/shell_bell.c | 4 ++-- test/battle/hold_effect/special_attack_up.c | 4 ++-- test/battle/hold_effect/special_defense_up.c | 4 ++-- test/battle/hold_effect/speed_up.c | 4 ++-- test/battle/move.c | 2 +- test/battle/move_effect/fixed_damage_arg.c | 4 ++-- test/battle/move_effect/magic_room.c | 4 ++-- test/battle/move_effect/shed_tail.c | 4 ++-- test/battle/trainer_slides.c | 2 +- 28 files changed, 71 insertions(+), 96 deletions(-) diff --git a/asm/macros/battle_script.inc b/asm/macros/battle_script.inc index 9921af639c..8ad9aa5911 100644 --- a/asm/macros/battle_script.inc +++ b/asm/macros/battle_script.inc @@ -1697,10 +1697,6 @@ callnative BS_ApplyTerastallization .endm - .macro damagetoquartertargethp - callnative BS_DamageToQuarterTargetHP - .endm - .macro jumpifsleepclause jumpInstr:req callnative BS_JumpIfSleepClause .4byte \jumpInstr diff --git a/data/battle_scripts_1.s b/data/battle_scripts_1.s index c244a50d08..5725a05e3d 100644 --- a/data/battle_scripts_1.s +++ b/data/battle_scripts_1.s @@ -20,16 +20,6 @@ .section script_data, "aw", %progbits -BattleScript_DamageToQuarterTargetHP:: - attackcanceler - accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE - attackstring - ppreduce - typecalc - clearmoveresultflags MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE - damagetoquartertargethp - goto BattleScript_HitFromAtkAnimation - BattleScript_EffectFickleBeam:: attackcanceler attackstring diff --git a/include/battle_scripts.h b/include/battle_scripts.h index 8c6d34b0f0..315c2939e1 100644 --- a/include/battle_scripts.h +++ b/include/battle_scripts.h @@ -863,7 +863,6 @@ extern const u8 BattleScript_EffectShedTail[]; extern const u8 BattleScript_EffectUpperHand[]; extern const u8 BattleScript_EffectTidyUp[]; extern const u8 BattleScript_EffectSpicyExtract[]; -extern const u8 BattleScript_DamageToQuarterTargetHP[]; extern const u8 BattleScript_EffectFickleBeam[]; extern const u8 BattleScript_FickleBeamDoubled[]; extern const u8 BattleScript_QuestionForfeitBattle[]; diff --git a/include/constants/battle_move_effects.h b/include/constants/battle_move_effects.h index eb0756bd40..3d899469f4 100644 --- a/include/constants/battle_move_effects.h +++ b/include/constants/battle_move_effects.h @@ -35,8 +35,8 @@ enum BattleMoveEffects EFFECT_REST, EFFECT_OHKO, EFFECT_FUSION_COMBO, - EFFECT_SUPER_FANG, - EFFECT_FIXED_DAMAGE_ARG, + EFFECT_FIXED_PERCENT_DAMAGE, + EFFECT_FIXED_HP_DAMAGE, EFFECT_HEAL_BLOCK, EFFECT_RECOIL_IF_MISS, EFFECT_MIST, @@ -341,7 +341,6 @@ enum BattleMoveEffects EFFECT_TERA_BLAST, EFFECT_TERA_STARSTORM, EFFECT_DRAGON_DARTS, - EFFECT_GUARDIAN_OF_ALOLA, EFFECT_SHELL_SIDE_ARM, EFFECT_ORDER_UP, EFFECT_RAPID_SPIN, diff --git a/include/move.h b/include/move.h index 16ede9d809..ba51165cb6 100644 --- a/include/move.h +++ b/include/move.h @@ -147,6 +147,7 @@ struct MoveInfo u32 holdEffect; u32 type; u32 fixedDamage; + u32 damagePercentage; u32 absorbPercentage; u32 recoilPercentage; u32 nonVolatileStatus; @@ -518,7 +519,7 @@ static inline u32 GetMoveArgType(u32 moveId) return gMovesInfo[SanitizeMoveId(moveId)].argument.type; } -static inline u32 GetMoveFixedDamage(u32 moveId) +static inline u32 GetMoveFixedHPDamage(u32 moveId) { return gMovesInfo[SanitizeMoveId(moveId)].argument.fixedDamage; } @@ -550,6 +551,11 @@ static inline u32 GetMoveNonVolatileStatus(u32 move) } } +static inline u32 GetMoveDamagePercentage(u32 move) +{ + return gMovesInfo[SanitizeMoveId(move)].argument.damagePercentage; +} + static inline const struct AdditionalEffect *GetMoveAdditionalEffectById(u32 moveId, u32 effect) { return &gMovesInfo[SanitizeMoveId(moveId)].additionalEffects[effect]; diff --git a/src/battle_ai_main.c b/src/battle_ai_main.c index 539b18f1b7..cea486e581 100644 --- a/src/battle_ai_main.c +++ b/src/battle_ai_main.c @@ -399,14 +399,14 @@ void ComputeBattlerDecisions(u32 battler) } } -void ReconsiderGimmick(u32 battlerAtk, u32 battlerDef, u16 move) +void ReconsiderGimmick(u32 battlerAtk, u32 battlerDef, u16 move) { // After choosing a move for battlerAtk assuming that a gimmick will be used, reconsider whether the gimmick is necessary. - if (gBattleStruct->gimmick.usableGimmick[battlerAtk] == GIMMICK_Z_MOVE && !ShouldUseZMove(battlerAtk, battlerDef, move)) + if (gBattleStruct->gimmick.usableGimmick[battlerAtk] == GIMMICK_Z_MOVE && !ShouldUseZMove(battlerAtk, battlerDef, move)) SetAIUsingGimmick(battlerAtk, NO_GIMMICK); - if (gBattleStruct->gimmick.usableGimmick[battlerAtk] == GIMMICK_TERA && GetMoveEffect(move) == EFFECT_PROTECT) + if (gBattleStruct->gimmick.usableGimmick[battlerAtk] == GIMMICK_TERA && GetMoveEffect(move) == EFFECT_PROTECT) SetAIUsingGimmick(battlerAtk, NO_GIMMICK); } @@ -416,18 +416,18 @@ u32 BattleAI_ChooseMoveIndex(u32 battler) SetAIUsingGimmick(battler, USE_GIMMICK); - if (gBattleStruct->gimmick.usableGimmick[battler] == GIMMICK_TERA && (gAiThinkingStruct->aiFlags[battler] & AI_FLAG_SMART_TERA)) + if (gBattleStruct->gimmick.usableGimmick[battler] == GIMMICK_TERA && (gAiThinkingStruct->aiFlags[battler] & AI_FLAG_SMART_TERA)) DecideTerastal(battler); - + if (!IsDoubleBattle()) chosenMoveIndex = ChooseMoveOrAction_Singles(battler); else chosenMoveIndex = ChooseMoveOrAction_Doubles(battler); - if (gBattleStruct->gimmick.usableGimmick[battler] != GIMMICK_NONE) + if (gBattleStruct->gimmick.usableGimmick[battler] != GIMMICK_NONE) ReconsiderGimmick(battler, gBattlerTarget, gBattleMons[battler].moves[chosenMoveIndex]); - + // Clear protect structures, some flags may be set during AI calcs // e.g. pranksterElevated from GetBattleMovePriority @@ -1081,18 +1081,17 @@ static s32 AI_CheckBadMove(u32 battlerAtk, u32 battlerDef, u32 move, s32 score) { switch (moveEffect) { - case EFFECT_FIXED_DAMAGE_ARG: + case EFFECT_FIXED_HP_DAMAGE: case EFFECT_LEVEL_DAMAGE: case EFFECT_PSYWAVE: case EFFECT_OHKO: case EFFECT_BIDE: - case EFFECT_SUPER_FANG: + case EFFECT_FIXED_PERCENT_DAMAGE: case EFFECT_ENDEAVOR: case EFFECT_COUNTER: case EFFECT_MIRROR_COAT: case EFFECT_METAL_BURST: case EFFECT_FINAL_GAMBIT: - case EFFECT_GUARDIAN_OF_ALOLA: break; default: RETURN_SCORE_MINUS(10); @@ -1624,7 +1623,7 @@ static s32 AI_CheckBadMove(u32 battlerAtk, u32 battlerDef, u32 move, s32 score) } break; case EFFECT_PRESENT: - case EFFECT_FIXED_DAMAGE_ARG: + case EFFECT_FIXED_HP_DAMAGE: case EFFECT_FOCUS_PUNCH: // AI_CBM_HighRiskForDamage if (aiData->abilities[battlerDef] == ABILITY_WONDER_GUARD && effectiveness < UQ_4_12(2.0)) diff --git a/src/battle_dynamax.c b/src/battle_dynamax.c index 6f69ca7580..c9f9947785 100644 --- a/src/battle_dynamax.c +++ b/src/battle_dynamax.c @@ -387,7 +387,7 @@ static u32 GetMaxPowerTier(u32 move) switch (GetMoveEffect(move)) { case EFFECT_BIDE: - case EFFECT_SUPER_FANG: + case EFFECT_FIXED_PERCENT_DAMAGE: case EFFECT_LEVEL_DAMAGE: case EFFECT_PSYWAVE: case EFFECT_COUNTER: @@ -400,7 +400,7 @@ static u32 GetMaxPowerTier(u32 move) case EFFECT_TERRAIN_PULSE: case EFFECT_PUNISHMENT: case EFFECT_TRUMP_CARD: - case EFFECT_FIXED_DAMAGE_ARG: + case EFFECT_FIXED_HP_DAMAGE: case EFFECT_SPIT_UP: case EFFECT_NATURAL_GIFT: case EFFECT_MIRROR_COAT: diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index f97def54b4..d7eec1c322 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -17865,16 +17865,6 @@ void BS_ApplyTerastallization(void) gBattlescriptCurrInstr = cmd->nextInstr; } -void BS_DamageToQuarterTargetHP(void) -{ - NATIVE_ARGS(); - gBattleStruct->moveDamage[gBattlerTarget] = (3 * GetNonDynamaxHP(gBattlerTarget)) / 4; - if (gBattleStruct->moveDamage[gBattlerTarget] == 0) - gBattleStruct->moveDamage[gBattlerTarget] = 1; - - gBattlescriptCurrInstr = cmd->nextInstr; -} - void BS_JumpIfSleepClause(void) { NATIVE_ARGS(const u8 *jumpInstr); diff --git a/src/battle_tv.c b/src/battle_tv.c index 96ce633440..732216d7ec 100644 --- a/src/battle_tv.c +++ b/src/battle_tv.c @@ -760,8 +760,8 @@ static void AddMovePoints(u8 caseId, u16 arg1, u8 arg2, u8 arg3) // Changes depending on the effect switch (effect) { - case EFFECT_FIXED_DAMAGE_ARG: - baseFromEffect *= (GetMoveFixedDamage(move) / 20); + case EFFECT_FIXED_HP_DAMAGE: + baseFromEffect *= (GetMoveFixedHPDamage(move) / 20); break; case EFFECT_TWO_TURNS_ATTACK: for (i = 0; i < GetMoveAdditionalEffectCount(move); i++) diff --git a/src/battle_util.c b/src/battle_util.c index 64e1b54481..66b1b4e042 100644 --- a/src/battle_util.c +++ b/src/battle_util.c @@ -9322,11 +9322,11 @@ static inline s32 DoFixedDamageMoveCalc(struct DamageCalculationData *damageCalc randDamage = B_PSYWAVE_DMG >= GEN_6 ? (Random() % 101) : ((Random() % 11) * 10); dmg = gBattleMons[damageCalcData->battlerAtk].level * (randDamage + 50) / 100; break; - case EFFECT_FIXED_DAMAGE_ARG: - dmg = GetMoveFixedDamage(damageCalcData->move); + case EFFECT_FIXED_HP_DAMAGE: + dmg = GetMoveFixedHPDamage(damageCalcData->move); break; - case EFFECT_SUPER_FANG: - dmg = GetNonDynamaxHP(damageCalcData->battlerDef) / 2; + case EFFECT_FIXED_PERCENT_DAMAGE: + dmg = GetNonDynamaxHP(damageCalcData->battlerDef) * GetMoveDamagePercentage(damageCalcData->move) / 100; break; case EFFECT_FINAL_GAMBIT: dmg = GetNonDynamaxHP(damageCalcData->battlerAtk); diff --git a/src/data/battle_move_effects.h b/src/data/battle_move_effects.h index a79eb441c1..b116b61999 100644 --- a/src/data/battle_move_effects.h +++ b/src/data/battle_move_effects.h @@ -209,14 +209,14 @@ const struct BattleMoveEffect gBattleMoveEffects[NUM_BATTLE_MOVE_EFFECTS] = .battleTvScore = 0, // TODO: Assign points }, - [EFFECT_SUPER_FANG] = + [EFFECT_FIXED_PERCENT_DAMAGE] = { .battleScript = BattleScript_EffectHit, .battleTvScore = 5, .encourageEncore = TRUE, }, - [EFFECT_FIXED_DAMAGE_ARG] = + [EFFECT_FIXED_HP_DAMAGE] = { .battleScript = BattleScript_EffectHit, .battleTvScore = 1, @@ -2171,12 +2171,6 @@ const struct BattleMoveEffect gBattleMoveEffects[NUM_BATTLE_MOVE_EFFECTS] = .battleTvScore = 0, // TODO: Assign points }, - [EFFECT_GUARDIAN_OF_ALOLA] = - { - .battleScript = BattleScript_DamageToQuarterTargetHP, - .battleTvScore = 0, // TODO: Assign points - }, - [EFFECT_SHELL_SIDE_ARM] = { .battleScript = BattleScript_EffectHit, diff --git a/src/data/moves_info.h b/src/data/moves_info.h index 0b61900109..db76c62ab8 100644 --- a/src/data/moves_info.h +++ b/src/data/moves_info.h @@ -1364,7 +1364,7 @@ const struct MoveInfo gMovesInfo[MOVES_COUNT_ALL] = .description = COMPOUND_STRING( "Launches shock waves that\n" "always inflict 20 HP damage."), - .effect = EFFECT_FIXED_DAMAGE_ARG, + .effect = EFFECT_FIXED_HP_DAMAGE, .power = 1, .type = TYPE_NORMAL, .accuracy = 90, @@ -2220,7 +2220,7 @@ const struct MoveInfo gMovesInfo[MOVES_COUNT_ALL] = .description = COMPOUND_STRING( "Launches shock waves that\n" "always inflict 40 HP damage."), - .effect = EFFECT_FIXED_DAMAGE_ARG, + .effect = EFFECT_FIXED_HP_DAMAGE, .power = 1, .type = TYPE_DRAGON, .accuracy = 100, @@ -2866,7 +2866,7 @@ const struct MoveInfo gMovesInfo[MOVES_COUNT_ALL] = "Minimizes the user's size to\n" #if B_MINIMIZE_EVASION >= GEN_5 "sharply raise evasiveness."), - #else + #else "raise evasiveness."), #endif .effect = EFFECT_MINIMIZE, @@ -3704,7 +3704,7 @@ const struct MoveInfo gMovesInfo[MOVES_COUNT_ALL] = .description = COMPOUND_STRING( #if B_UPDATED_MOVE_DATA >= GEN_5 "Envelops the foes in a toxic\n" - #else + #else "Envelops the foe in a toxic\n" #endif "gas that may poison."), @@ -4308,7 +4308,7 @@ const struct MoveInfo gMovesInfo[MOVES_COUNT_ALL] = .description = COMPOUND_STRING( "Attacks with sharp fangs\n" "and cuts half the foe's HP."), - .effect = EFFECT_SUPER_FANG, + .effect = EFFECT_FIXED_PERCENT_DAMAGE, .power = 1, .type = TYPE_NORMAL, .accuracy = 90, @@ -4316,6 +4316,7 @@ const struct MoveInfo gMovesInfo[MOVES_COUNT_ALL] = .target = MOVE_TARGET_SELECTED, .priority = 0, .category = DAMAGE_CATEGORY_PHYSICAL, + .argument = { .damagePercentage = 50 }, .makesContact = TRUE, .ignoresKingsRock = (B_UPDATED_MOVE_FLAGS == GEN_3 || B_UPDATED_MOVE_FLAGS == GEN_4), .contestEffect = CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS, @@ -6053,7 +6054,7 @@ const struct MoveInfo gMovesInfo[MOVES_COUNT_ALL] = "Spins attack that removes\n" #if B_SPEED_BUFFING_RAPID_SPIN >= GEN_8 "some effects and ups speed."), - #else + #else "certain effects."), #endif .effect = EFFECT_RAPID_SPIN, @@ -6280,7 +6281,7 @@ const struct MoveInfo gMovesInfo[MOVES_COUNT_ALL] = #else "The type and effectiveness\n" "vary with the user."), - #endif + #endif .power = B_HIDDEN_POWER_DMG >= GEN_6 ? 60 : 1, .effect = EFFECT_HIDDEN_POWER, .type = TYPE_NORMAL, @@ -9621,7 +9622,7 @@ const struct MoveInfo gMovesInfo[MOVES_COUNT_ALL] = "Whips up a breeze, doubling\n" #if B_TAILWIND_TURNS >= GEN_5 "ally Speed for 4 turns."), - #else + #else "ally Speed for 3 turns."), #endif .effect = EFFECT_TAILWIND, @@ -17089,7 +17090,7 @@ const struct MoveInfo gMovesInfo[MOVES_COUNT_ALL] = .description = COMPOUND_STRING( "Halves the foe's HP with\n" "the power of nature."), - .effect = EFFECT_SUPER_FANG, + .effect = EFFECT_FIXED_PERCENT_DAMAGE, .power = 1, .type = TYPE_FAIRY, .accuracy = 90, @@ -20174,7 +20175,7 @@ const struct MoveInfo gMovesInfo[MOVES_COUNT_ALL] = .description = COMPOUND_STRING( "Summons a ruinous disaster\n" "and cuts half the foe's HP."), - .effect = EFFECT_SUPER_FANG, + .effect = EFFECT_FIXED_PERCENT_DAMAGE, .power = 1, .type = TYPE_DARK, .accuracy = 90, @@ -21641,7 +21642,7 @@ const struct MoveInfo gMovesInfo[MOVES_COUNT_ALL] = .description = COMPOUND_STRING( "The Land Spirit Pokémon\n" "greatly reduces the foe's HP."), - .effect = EFFECT_GUARDIAN_OF_ALOLA, + .effect = EFFECT_FIXED_PERCENT_DAMAGE, .power = 1, .type = TYPE_FAIRY, .accuracy = 0, @@ -21649,6 +21650,7 @@ const struct MoveInfo gMovesInfo[MOVES_COUNT_ALL] = .target = MOVE_TARGET_SELECTED, .priority = 0, .category = DAMAGE_CATEGORY_SPECIAL, + .argument = { .damagePercentage = 75 }, .battleAnimScript = gBattleAnimMove_GuardianOfAlola, }, [MOVE_SEARING_SUNRAZE_SMASH] = diff --git a/test/battle/ability/cud_chew.c b/test/battle/ability/cud_chew.c index 486e2e9dac..82e7666bdd 100644 --- a/test/battle/ability/cud_chew.c +++ b/test/battle/ability/cud_chew.c @@ -28,8 +28,8 @@ SINGLE_BATTLE_TEST("Cud Chew will activate Oran Berry effect again on the next t GIVEN { ASSUME(gItemsInfo[ITEM_ORAN_BERRY].holdEffect == HOLD_EFFECT_RESTORE_HP); ASSUME(gItemsInfo[ITEM_ORAN_BERRY].holdEffectParam == 10); - ASSUME(GetMoveEffect(MOVE_DRAGON_RAGE) == EFFECT_FIXED_DAMAGE_ARG); - ASSUME(GetMoveFixedDamage(MOVE_DRAGON_RAGE) == 40); + ASSUME(GetMoveEffect(MOVE_DRAGON_RAGE) == EFFECT_FIXED_HP_DAMAGE); + ASSUME(GetMoveFixedHPDamage(MOVE_DRAGON_RAGE) == 40); PLAYER(SPECIES_WOBBUFFET); OPPONENT(SPECIES_TAUROS_PALDEA_COMBAT) { MaxHP(60); HP(60); Ability(ABILITY_CUD_CHEW); Item(ITEM_ORAN_BERRY); } } WHEN { diff --git a/test/battle/gimmick/dynamax.c b/test/battle/gimmick/dynamax.c index a929c82068..bbfcccafda 100644 --- a/test/battle/gimmick/dynamax.c +++ b/test/battle/gimmick/dynamax.c @@ -630,7 +630,7 @@ SINGLE_BATTLE_TEST("Dynamax: Super Fang uses a Pokemon's non-Dynamax HP", s16 da PARAMETRIZE { dynamax = GIMMICK_NONE; } PARAMETRIZE { dynamax = GIMMICK_DYNAMAX; } GIVEN { - ASSUME(GetMoveEffect(MOVE_SUPER_FANG) == EFFECT_SUPER_FANG); + ASSUME(GetMoveEffect(MOVE_SUPER_FANG) == EFFECT_FIXED_PERCENT_DAMAGE); PLAYER(SPECIES_WOBBUFFET) { Speed(50); } OPPONENT(SPECIES_WOBBUFFET) { Speed(100); } } WHEN { diff --git a/test/battle/gimmick/zmove.c b/test/battle/gimmick/zmove.c index fd5635d3fc..0133340618 100644 --- a/test/battle/gimmick/zmove.c +++ b/test/battle/gimmick/zmove.c @@ -630,10 +630,10 @@ SINGLE_BATTLE_TEST("(Z-MOVE) Clangorous Soulblaze boosts all the user's stats by } } -SINGLE_BATTLE_TEST("(Z-MOVE) Guardian of Alola deals 75\% of the target's current HP") +SINGLE_BATTLE_TEST("(Z-MOVE) Guardian of Alola deals 75% of the target's current HP") { GIVEN { - ASSUME(GetMoveEffect(MOVE_GUARDIAN_OF_ALOLA) == EFFECT_GUARDIAN_OF_ALOLA); + ASSUME(GetMoveEffect(MOVE_GUARDIAN_OF_ALOLA) == EFFECT_FIXED_PERCENT_DAMAGE); PLAYER(SPECIES_TAPU_FINI) { Item(ITEM_TAPUNIUM_Z); } OPPONENT(SPECIES_WOBBUFFET); } WHEN { diff --git a/test/battle/hold_effect/attack_up.c b/test/battle/hold_effect/attack_up.c index 2030faf782..e9efef9ad5 100644 --- a/test/battle/hold_effect/attack_up.c +++ b/test/battle/hold_effect/attack_up.c @@ -4,8 +4,8 @@ ASSUMPTIONS { ASSUME(gItemsInfo[ITEM_LIECHI_BERRY].holdEffect == HOLD_EFFECT_ATTACK_UP); - ASSUME(GetMoveEffect(MOVE_DRAGON_RAGE) == EFFECT_FIXED_DAMAGE_ARG); - ASSUME(GetMoveFixedDamage(MOVE_DRAGON_RAGE) == 40); + ASSUME(GetMoveEffect(MOVE_DRAGON_RAGE) == EFFECT_FIXED_HP_DAMAGE); + ASSUME(GetMoveFixedHPDamage(MOVE_DRAGON_RAGE) == 40); } SINGLE_BATTLE_TEST("Liechi Berry raises the holder's Attack by one stage when HP drops to 1/4 or below") diff --git a/test/battle/hold_effect/critical_hit_up.c b/test/battle/hold_effect/critical_hit_up.c index e571d39247..770505115b 100644 --- a/test/battle/hold_effect/critical_hit_up.c +++ b/test/battle/hold_effect/critical_hit_up.c @@ -4,8 +4,8 @@ ASSUMPTIONS { ASSUME(gItemsInfo[ITEM_LANSAT_BERRY].holdEffect == HOLD_EFFECT_CRITICAL_UP); - ASSUME(GetMoveEffect(MOVE_DRAGON_RAGE) == EFFECT_FIXED_DAMAGE_ARG); - ASSUME(GetMoveFixedDamage(MOVE_DRAGON_RAGE) == 40); + ASSUME(GetMoveEffect(MOVE_DRAGON_RAGE) == EFFECT_FIXED_HP_DAMAGE); + ASSUME(GetMoveFixedHPDamage(MOVE_DRAGON_RAGE) == 40); } SINGLE_BATTLE_TEST("Lansat Berry raises the holder's critical-hit-ratio by two stages when HP drops to 1/4 or below") diff --git a/test/battle/hold_effect/defense_up.c b/test/battle/hold_effect/defense_up.c index cf1ea04b40..a29f75b1e5 100644 --- a/test/battle/hold_effect/defense_up.c +++ b/test/battle/hold_effect/defense_up.c @@ -4,8 +4,8 @@ ASSUMPTIONS { ASSUME(gItemsInfo[ITEM_GANLON_BERRY].holdEffect == HOLD_EFFECT_DEFENSE_UP); - ASSUME(GetMoveEffect(MOVE_DRAGON_RAGE) == EFFECT_FIXED_DAMAGE_ARG); - ASSUME(GetMoveFixedDamage(MOVE_DRAGON_RAGE) == 40); + ASSUME(GetMoveEffect(MOVE_DRAGON_RAGE) == EFFECT_FIXED_HP_DAMAGE); + ASSUME(GetMoveFixedHPDamage(MOVE_DRAGON_RAGE) == 40); } SINGLE_BATTLE_TEST("Ganlon Berry raises the holder's Defense by one stage when HP drops to 1/4 or below") diff --git a/test/battle/hold_effect/micle_berry.c b/test/battle/hold_effect/micle_berry.c index 47e0b8e53b..24d3ef1cd6 100644 --- a/test/battle/hold_effect/micle_berry.c +++ b/test/battle/hold_effect/micle_berry.c @@ -4,8 +4,8 @@ ASSUMPTIONS { ASSUME(gItemsInfo[ITEM_MICLE_BERRY].holdEffect == HOLD_EFFECT_MICLE_BERRY); - ASSUME(GetMoveEffect(MOVE_DRAGON_RAGE) == EFFECT_FIXED_DAMAGE_ARG); - ASSUME(GetMoveFixedDamage(MOVE_DRAGON_RAGE) == 40); + ASSUME(GetMoveEffect(MOVE_DRAGON_RAGE) == EFFECT_FIXED_HP_DAMAGE); + ASSUME(GetMoveFixedHPDamage(MOVE_DRAGON_RAGE) == 40); } SINGLE_BATTLE_TEST("Micle Berry raises the holder's accuracy by 1.2 when HP drops to 1/4 or below") diff --git a/test/battle/hold_effect/shell_bell.c b/test/battle/hold_effect/shell_bell.c index 33fbc0558b..82f1b0b184 100644 --- a/test/battle/hold_effect/shell_bell.c +++ b/test/battle/hold_effect/shell_bell.c @@ -252,8 +252,8 @@ SINGLE_BATTLE_TEST("Shell Bell restores 1/8 HP at move end, one strike") hpGainActual = min(maxHp - hp, hpGainFromDamage); GIVEN { - ASSUME(GetMoveEffect(MOVE_DRAGON_RAGE) == EFFECT_FIXED_DAMAGE_ARG); - ASSUME(GetMoveFixedDamage(MOVE_DRAGON_RAGE) == 40); + ASSUME(GetMoveEffect(MOVE_DRAGON_RAGE) == EFFECT_FIXED_HP_DAMAGE); + ASSUME(GetMoveFixedHPDamage(MOVE_DRAGON_RAGE) == 40); PLAYER(SPECIES_WOBBUFFET) { MaxHP(maxHp); HP(hp); Item(ITEM_SHELL_BELL); } OPPONENT(SPECIES_WOBBUFFET) { MaxHP(maxHp); HP(opponentHp); } } WHEN { diff --git a/test/battle/hold_effect/special_attack_up.c b/test/battle/hold_effect/special_attack_up.c index 148b7abf1b..f4256a5335 100644 --- a/test/battle/hold_effect/special_attack_up.c +++ b/test/battle/hold_effect/special_attack_up.c @@ -4,8 +4,8 @@ ASSUMPTIONS { ASSUME(gItemsInfo[ITEM_PETAYA_BERRY].holdEffect == HOLD_EFFECT_SP_ATTACK_UP); - ASSUME(GetMoveEffect(MOVE_DRAGON_RAGE) == EFFECT_FIXED_DAMAGE_ARG); - ASSUME(GetMoveFixedDamage(MOVE_DRAGON_RAGE) == 40); + ASSUME(GetMoveEffect(MOVE_DRAGON_RAGE) == EFFECT_FIXED_HP_DAMAGE); + ASSUME(GetMoveFixedHPDamage(MOVE_DRAGON_RAGE) == 40); } SINGLE_BATTLE_TEST("Petaya Berry raises the holder's Sp. Atk by one stage when HP drops to 1/4 or below") diff --git a/test/battle/hold_effect/special_defense_up.c b/test/battle/hold_effect/special_defense_up.c index 266f954503..e7d8f9a170 100644 --- a/test/battle/hold_effect/special_defense_up.c +++ b/test/battle/hold_effect/special_defense_up.c @@ -4,8 +4,8 @@ ASSUMPTIONS { ASSUME(gItemsInfo[ITEM_APICOT_BERRY].holdEffect == HOLD_EFFECT_SP_DEFENSE_UP); - ASSUME(GetMoveEffect(MOVE_DRAGON_RAGE) == EFFECT_FIXED_DAMAGE_ARG); - ASSUME(GetMoveFixedDamage(MOVE_DRAGON_RAGE) == 40); + ASSUME(GetMoveEffect(MOVE_DRAGON_RAGE) == EFFECT_FIXED_HP_DAMAGE); + ASSUME(GetMoveFixedHPDamage(MOVE_DRAGON_RAGE) == 40); } SINGLE_BATTLE_TEST("Apicot Berry raises the holder's Sp. Def by one stage when HP drops to 1/4 or below") diff --git a/test/battle/hold_effect/speed_up.c b/test/battle/hold_effect/speed_up.c index 7fb24295d4..b1725597a9 100644 --- a/test/battle/hold_effect/speed_up.c +++ b/test/battle/hold_effect/speed_up.c @@ -4,8 +4,8 @@ ASSUMPTIONS { ASSUME(gItemsInfo[ITEM_SALAC_BERRY].holdEffect == HOLD_EFFECT_SPEED_UP); - ASSUME(GetMoveEffect(MOVE_DRAGON_RAGE) == EFFECT_FIXED_DAMAGE_ARG); - ASSUME(GetMoveFixedDamage(MOVE_DRAGON_RAGE) == 40); + ASSUME(GetMoveEffect(MOVE_DRAGON_RAGE) == EFFECT_FIXED_HP_DAMAGE); + ASSUME(GetMoveFixedHPDamage(MOVE_DRAGON_RAGE) == 40); } SINGLE_BATTLE_TEST("Salac Berry raises the holder's Speed by one stage when HP drops to 1/4 or below") diff --git a/test/battle/move.c b/test/battle/move.c index 541dc3812c..5a95c21d89 100644 --- a/test/battle/move.c +++ b/test/battle/move.c @@ -89,7 +89,7 @@ DOUBLE_BATTLE_TEST("Turn order is determined randomly if priority and Speed tie ASSUME(GetMoveEffect(MOVE_ENDEAVOR) == EFFECT_ENDEAVOR); ASSUME(GetMoveEffect(MOVE_LIFE_DEW) == EFFECT_JUNGLE_HEALING); ASSUME(GetMoveEffect(MOVE_CRUSH_GRIP) == EFFECT_POWER_BASED_ON_TARGET_HP); - ASSUME(GetMoveEffect(MOVE_SUPER_FANG) == EFFECT_SUPER_FANG); + ASSUME(GetMoveEffect(MOVE_SUPER_FANG) == EFFECT_FIXED_PERCENT_DAMAGE); PLAYER(SPECIES_WOBBUFFET) { MaxHP(480); HP(360); Defense(100); Speed(1); } PLAYER(SPECIES_WYNAUT) { Speed(1); } OPPONENT(SPECIES_WOBBUFFET) { Attack(100); Speed(1); } diff --git a/test/battle/move_effect/fixed_damage_arg.c b/test/battle/move_effect/fixed_damage_arg.c index 8cb2987072..ca39ff1c83 100644 --- a/test/battle/move_effect/fixed_damage_arg.c +++ b/test/battle/move_effect/fixed_damage_arg.c @@ -3,7 +3,7 @@ ASSUMPTIONS { - ASSUME(GetMoveEffect(MOVE_SONIC_BOOM) == EFFECT_FIXED_DAMAGE_ARG); + ASSUME(GetMoveEffect(MOVE_SONIC_BOOM) == EFFECT_FIXED_HP_DAMAGE); } SINGLE_BATTLE_TEST("Sonic Boom deals fixed damage", s16 damage) @@ -13,7 +13,7 @@ SINGLE_BATTLE_TEST("Sonic Boom deals fixed damage", s16 damage) PARAMETRIZE { mon = SPECIES_ARON; } GIVEN { - ASSUME(GetMoveFixedDamage(MOVE_SONIC_BOOM) == 20); + ASSUME(GetMoveFixedHPDamage(MOVE_SONIC_BOOM) == 20); PLAYER(SPECIES_WOBBUFFET); OPPONENT(mon); } WHEN { diff --git a/test/battle/move_effect/magic_room.c b/test/battle/move_effect/magic_room.c index b1be6ac5bc..3343fd6f66 100644 --- a/test/battle/move_effect/magic_room.c +++ b/test/battle/move_effect/magic_room.c @@ -10,8 +10,8 @@ DOUBLE_BATTLE_TEST("Magic Room prevents item hold effects") { GIVEN { ASSUME(gItemsInfo[ITEM_BERRY_JUICE].holdEffect == HOLD_EFFECT_RESTORE_HP); - ASSUME(GetMoveEffect(MOVE_DRAGON_RAGE) == EFFECT_FIXED_DAMAGE_ARG); - ASSUME(GetMoveFixedDamage(MOVE_DRAGON_RAGE) == 40); + ASSUME(GetMoveEffect(MOVE_DRAGON_RAGE) == EFFECT_FIXED_HP_DAMAGE); + ASSUME(GetMoveFixedHPDamage(MOVE_DRAGON_RAGE) == 40); PLAYER(SPECIES_WOBBUFFET) { MaxHP(100); HP(60); Item(ITEM_BERRY_JUICE); } PLAYER(SPECIES_WOBBUFFET) { MaxHP(100); HP(60); Item(ITEM_BERRY_JUICE); } diff --git a/test/battle/move_effect/shed_tail.c b/test/battle/move_effect/shed_tail.c index 4ce05c3f8c..491c7b3552 100644 --- a/test/battle/move_effect/shed_tail.c +++ b/test/battle/move_effect/shed_tail.c @@ -110,8 +110,8 @@ SINGLE_BATTLE_TEST("Shed Tail creates a Substitute with 1/4 of user maximum heal PARAMETRIZE { hp = 164; } GIVEN { - ASSUME(GetMoveFixedDamage(MOVE_DRAGON_RAGE) == 40); - ASSUME(GetMoveEffect(MOVE_DRAGON_RAGE) == EFFECT_FIXED_DAMAGE_ARG); + ASSUME(GetMoveFixedHPDamage(MOVE_DRAGON_RAGE) == 40); + ASSUME(GetMoveEffect(MOVE_DRAGON_RAGE) == EFFECT_FIXED_HP_DAMAGE); PLAYER(SPECIES_BULBASAUR) { MaxHP(hp); } PLAYER(SPECIES_BULBASAUR); OPPONENT(SPECIES_CHARMANDER); diff --git a/test/battle/trainer_slides.c b/test/battle/trainer_slides.c index e8a0999048..d76ef035d6 100644 --- a/test/battle/trainer_slides.c +++ b/test/battle/trainer_slides.c @@ -141,7 +141,7 @@ SINGLE_BATTLE_TEST("Trainer Slide: Last Half Hp") { gBattleTestRunnerState->data.recordedBattle.opponentA = TRAINER_SLIDE_LAST_HALF_HP; GIVEN { - ASSUME(GetMoveEffect(MOVE_SUPER_FANG) == EFFECT_SUPER_FANG); + ASSUME(GetMoveEffect(MOVE_SUPER_FANG) == EFFECT_FIXED_PERCENT_DAMAGE); ASSUME(gSpeciesInfo[SPECIES_WOBBUFFET].baseHP == 190); PLAYER(SPECIES_WOBBUFFET); OPPONENT(SPECIES_WOBBUFFET);