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_ShellTrapSetUp[];
extern const u8 BattleScript_StealthRockActivates[];
extern const u8 BattleScript_DefogTryHazards[];
// zmoves
extern const u8 BattleScript_ZMoveActivateDamaging[];

View file

@ -381,8 +381,9 @@
#define MOVE_EFFECT_STEALTH_ROCK 77
#define MOVE_EFFECT_STEELSURGE 78
#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_CERTAIN 0x8000

View file

@ -3848,6 +3848,20 @@ void SetMoveEffect(bool32 primary, u32 certain)
}
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:
if (!(gSideStatuses[GetBattlerSide(gEffectBattler)] & SIDE_STATUS_STEALTH_ROCK))
{
@ -3862,21 +3876,17 @@ void SetMoveEffect(bool32 primary, u32 certain)
gBattlescriptCurrInstr = BattleScript_SteelsurgeActivates;
}
break;
case MOVE_EFFECT_DAMAGE_NON_TYPES:
{
side = GetBattlerSide(gEffectBattler);
if (!(gSideStatuses[side] & SIDE_STATUS_DAMAGE_NON_TYPES))
case MOVE_EFFECT_DEFOG:
if (gSideStatuses[GetBattlerSide(gEffectBattler)] & SIDE_STATUS_SCREEN_ANY
|| gSideStatuses[GetBattlerSide(gEffectBattler)] & SIDE_STATUS_HAZARDS_ANY
|| 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);
ChooseDamageNonTypesString(gBattleMoves[gCurrentMove].type);
gBattlescriptCurrInstr = BattleScript_DamageNonTypesStarts;
gBattlescriptCurrInstr = BattleScript_DefogTryHazards;
}
break;
}
}
}
}
@ -11331,6 +11341,9 @@ static void Cmd_various(void)
case MAX_EFFECT_STEELSURGE:
gBattleScripting.moveEffect = MOVE_EFFECT_STEELSURGE;
break;
case MAX_EFFECT_DEFOG:
gBattleScripting.moveEffect = MOVE_EFFECT_DEFOG;
break;
}
break;
}