implemented G-Max Wind Rage

This commit is contained in:
AgustinGDLV 2023-02-27 10:19:56 -08:00
parent e32936d0b1
commit c6c92da19c
3 changed files with 26 additions and 11 deletions

View file

@ -454,6 +454,7 @@ extern const u8 BattleScript_HealingWishActivates[];
extern const u8 BattleScript_LunarDanceActivates[]; extern const u8 BattleScript_LunarDanceActivates[];
extern const u8 BattleScript_ShellTrapSetUp[]; extern const u8 BattleScript_ShellTrapSetUp[];
extern const u8 BattleScript_StealthRockActivates[]; extern const u8 BattleScript_StealthRockActivates[];
extern const u8 BattleScript_DefogTryHazards[];
// zmoves // zmoves
extern const u8 BattleScript_ZMoveActivateDamaging[]; extern const u8 BattleScript_ZMoveActivateDamaging[];

View file

@ -381,8 +381,9 @@
#define MOVE_EFFECT_STEALTH_ROCK 77 #define MOVE_EFFECT_STEALTH_ROCK 77
#define MOVE_EFFECT_STEELSURGE 78 #define MOVE_EFFECT_STEELSURGE 78
#define MOVE_EFFECT_DAMAGE_NON_TYPES 79 #define MOVE_EFFECT_DAMAGE_NON_TYPES 79
#define MOVE_EFFECT_DEFOG 80
#define NUM_MOVE_EFFECTS 80 #define NUM_MOVE_EFFECTS 81
#define MOVE_EFFECT_AFFECTS_USER 0x4000 #define MOVE_EFFECT_AFFECTS_USER 0x4000
#define MOVE_EFFECT_CERTAIN 0x8000 #define MOVE_EFFECT_CERTAIN 0x8000

View file

@ -3848,6 +3848,20 @@ void SetMoveEffect(bool32 primary, u32 certain)
} }
break; break;
} }
case MOVE_EFFECT_DAMAGE_NON_TYPES:
{
side = GetBattlerSide(gBattlerTarget);
if (!(gSideStatuses[side] & SIDE_STATUS_DAMAGE_NON_TYPES))
{
gSideStatuses[side] |= SIDE_STATUS_DAMAGE_NON_TYPES;
gSideTimers[side].damageNonTypesTimer = 4;
gSideTimers[side].damageNonTypesType = gBattleMoves[gCurrentMove].type;
BattleScriptPush(gBattlescriptCurrInstr + 1);
ChooseDamageNonTypesString(gBattleMoves[gCurrentMove].type);
gBattlescriptCurrInstr = BattleScript_DamageNonTypesStarts;
}
break;
}
case MOVE_EFFECT_STEALTH_ROCK: case MOVE_EFFECT_STEALTH_ROCK:
if (!(gSideStatuses[GetBattlerSide(gEffectBattler)] & SIDE_STATUS_STEALTH_ROCK)) if (!(gSideStatuses[GetBattlerSide(gEffectBattler)] & SIDE_STATUS_STEALTH_ROCK))
{ {
@ -3862,21 +3876,17 @@ void SetMoveEffect(bool32 primary, u32 certain)
gBattlescriptCurrInstr = BattleScript_SteelsurgeActivates; gBattlescriptCurrInstr = BattleScript_SteelsurgeActivates;
} }
break; break;
case MOVE_EFFECT_DAMAGE_NON_TYPES: case MOVE_EFFECT_DEFOG:
{ if (gSideStatuses[GetBattlerSide(gEffectBattler)] & SIDE_STATUS_SCREEN_ANY
side = GetBattlerSide(gEffectBattler); || gSideStatuses[GetBattlerSide(gEffectBattler)] & SIDE_STATUS_HAZARDS_ANY
if (!(gSideStatuses[side] & SIDE_STATUS_DAMAGE_NON_TYPES)) || gSideStatuses[GetBattlerSide(gBattlerAttacker)] & SIDE_STATUS_HAZARDS_ANY
|| gFieldStatuses & STATUS_FIELD_TERRAIN_ANY)
{ {
gSideStatuses[side] |= SIDE_STATUS_DAMAGE_NON_TYPES;
gSideTimers[side].damageNonTypesTimer = 4;
gSideTimers[side].damageNonTypesType = gBattleMoves[gCurrentMove].type;
BattleScriptPush(gBattlescriptCurrInstr + 1); BattleScriptPush(gBattlescriptCurrInstr + 1);
ChooseDamageNonTypesString(gBattleMoves[gCurrentMove].type); gBattlescriptCurrInstr = BattleScript_DefogTryHazards;
gBattlescriptCurrInstr = BattleScript_DamageNonTypesStarts;
} }
break; break;
} }
}
} }
} }
@ -11331,6 +11341,9 @@ static void Cmd_various(void)
case MAX_EFFECT_STEELSURGE: case MAX_EFFECT_STEELSURGE:
gBattleScripting.moveEffect = MOVE_EFFECT_STEELSURGE; gBattleScripting.moveEffect = MOVE_EFFECT_STEELSURGE;
break; break;
case MAX_EFFECT_DEFOG:
gBattleScripting.moveEffect = MOVE_EFFECT_DEFOG;
break;
} }
break; break;
} }