From e32936d0b175e4508d66656d94bffaf9e56d1838 Mon Sep 17 00:00:00 2001 From: AgustinGDLV Date: Mon, 27 Feb 2023 09:57:24 -0800 Subject: [PATCH] implemented G-Max Foam Burst, G-Max Tartness --- src/battle_script_commands.c | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index eeaefdb1e7..478b7ea1b5 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -3752,7 +3752,8 @@ void SetMoveEffect(bool32 primary, u32 certain) case MOVE_EFFECT_RAISE_SIDE_STATS: if (!NoAliveMonsForEitherParty()) { - SET_STATCHANGER(gBattleMoves[gCurrentMove].argument, 1, FALSE); // see enum MaxMoveEffect + // Max Effects are ordered by stat ID. + SET_STATCHANGER(gBattleMoves[gCurrentMove].argument, 1, FALSE); BattleScriptPush(gBattlescriptCurrInstr + 1); gBattlescriptCurrInstr = BattleScript_EffectRaiseSideStats; break; @@ -3760,7 +3761,23 @@ void SetMoveEffect(bool32 primary, u32 certain) case MOVE_EFFECT_LOWER_SIDE_STATS: if (!NoAliveMonsForEitherParty()) { - SET_STATCHANGER(gBattleMoves[gCurrentMove].argument - 5, 1, TRUE); // see enum MaxMoveEffect + u8 statId = 0; + u8 stage = 1; + switch (gBattleMoves[gCurrentMove].argument) + { + case MAX_EFFECT_LOWER_SPEED_2_FOES: + statId = STAT_SPEED; + stage = 2; + break; + case MAX_EFFECT_LOWER_EVASIVENESS_FOES: + statId = STAT_EVASION; + break; + default: + // Max Effects are ordered by stat ID. + statId = gBattleMoves[gCurrentMove].argument - MAX_EFFECT_LOWER_ATTACK + 1; + break; + } + SET_STATCHANGER(statId, stage, TRUE); BattleScriptPush(gBattlescriptCurrInstr + 1); gBattlescriptCurrInstr = BattleScript_EffectLowerSideStats; break; @@ -11286,6 +11303,8 @@ static void Cmd_various(void) case MAX_EFFECT_LOWER_SPEED: case MAX_EFFECT_LOWER_SP_ATK: case MAX_EFFECT_LOWER_SP_DEF: + case MAX_EFFECT_LOWER_SPEED_2_FOES: + case MAX_EFFECT_LOWER_EVASIVENESS_FOES: gBattleScripting.moveEffect = MOVE_EFFECT_LOWER_SIDE_STATS; break; case MAX_EFFECT_SUN: