More Neutralizing Gas cleanup (#8335)
This commit is contained in:
parent
7fd0745766
commit
10ef7f7839
@ -8112,12 +8112,6 @@ BattleScript_SwitchInAbilityMsg::
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
end3
|
||||
|
||||
BattleScript_SwitchInAbilityMsgRet::
|
||||
call BattleScript_AbilityPopUp
|
||||
printfromtable gSwitchInAbilityStringIds
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
return
|
||||
|
||||
BattleScript_ActivateAsOne::
|
||||
call BattleScript_AbilityPopUp
|
||||
printfromtable gSwitchInAbilityStringIds
|
||||
|
||||
@ -197,8 +197,8 @@ struct SpecialStatus
|
||||
u8 switchInItemDone:1;
|
||||
u8 instructedChosenTarget:3;
|
||||
u8 berryReduced:1;
|
||||
u8 announceNeutralizingGas:1; // See Cmd_switchineffects
|
||||
u8 neutralizingGasRemoved:1; // See VARIOUS_TRY_END_NEUTRALIZING_GAS
|
||||
u8 padding:1;
|
||||
// End of byte
|
||||
u8 gemParam;
|
||||
// End of byte
|
||||
|
||||
@ -287,7 +287,6 @@ extern const u8 BattleScript_AttackerAbilityStatRaiseEnd3[];
|
||||
extern const u8 BattleScript_PoisonHealActivates[];
|
||||
extern const u8 BattleScript_BadDreamsActivates[];
|
||||
extern const u8 BattleScript_SwitchInAbilityMsg[];
|
||||
extern const u8 BattleScript_SwitchInAbilityMsgRet[];
|
||||
extern const u8 BattleScript_ToxicSpikesPoisoned[];
|
||||
extern const u8 BattleScript_ToxicSpikesBadlyPoisoned[];
|
||||
extern const u8 BattleScript_ToxicSpikesAbsorbed[];
|
||||
|
||||
@ -7873,13 +7873,9 @@ static bool32 DoSwitchInEffectsForBattler(u32 battler)
|
||||
u32 i = 0;
|
||||
u32 side = GetBattlerSide(battler);
|
||||
// Neutralizing Gas announces itself before hazards
|
||||
if (gBattleMons[battler].ability == ABILITY_NEUTRALIZING_GAS && gSpecialStatuses[battler].announceNeutralizingGas == 0)
|
||||
if (AbilityBattleEffects(ABILITYEFFECT_NEUTRALIZINGGAS, battler, 0, 0, 0))
|
||||
{
|
||||
gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_SWITCHIN_NEUTRALIZING_GAS;
|
||||
gSpecialStatuses[battler].announceNeutralizingGas = TRUE;
|
||||
gDisableStructs[battler].neutralizingGas = TRUE;
|
||||
gBattlerAbility = battler;
|
||||
BattleScriptCall(BattleScript_SwitchInAbilityMsgRet);
|
||||
return TRUE;
|
||||
}
|
||||
// Healing Wish activates before hazards.
|
||||
// Starting from Gen8 - it heals only pokemon which can be healed. In gens 5,6,7 the effect activates anyways.
|
||||
@ -13103,7 +13099,7 @@ static void Cmd_setgastroacid(void)
|
||||
}
|
||||
else
|
||||
{
|
||||
if (gBattleMons[gBattlerTarget].ability == ABILITY_NEUTRALIZING_GAS)
|
||||
if (gDisableStructs[gBattlerTarget].neutralizingGas)
|
||||
gSpecialStatuses[gBattlerTarget].neutralizingGasRemoved = TRUE;
|
||||
|
||||
gBattleMons[gBattlerTarget].volatiles.gastroAcid = TRUE;
|
||||
@ -14681,7 +14677,7 @@ static void Cmd_tryworryseed(void)
|
||||
}
|
||||
else
|
||||
{
|
||||
if (gBattleMons[gBattlerTarget].ability == ABILITY_NEUTRALIZING_GAS)
|
||||
if (gDisableStructs[gBattlerTarget].neutralizingGas)
|
||||
gSpecialStatuses[gBattlerTarget].neutralizingGasRemoved = TRUE;
|
||||
|
||||
gBattleScripting.abilityPopupOverwrite = gBattleMons[gBattlerTarget].ability;
|
||||
@ -17522,7 +17518,7 @@ void BS_SetSimpleBeam(void)
|
||||
}
|
||||
else
|
||||
{
|
||||
if (gBattleMons[gBattlerTarget].ability == ABILITY_NEUTRALIZING_GAS)
|
||||
if (gDisableStructs[gBattlerTarget].neutralizingGas)
|
||||
gSpecialStatuses[gBattlerTarget].neutralizingGasRemoved = TRUE;
|
||||
|
||||
gBattleScripting.abilityPopupOverwrite = gBattleMons[gBattlerTarget].ability;
|
||||
|
||||
@ -5185,7 +5185,7 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32
|
||||
|
||||
case ABILITYEFFECT_NEUTRALIZINGGAS:
|
||||
// Prints message only. separate from ABILITYEFFECT_ON_SWITCHIN bc activates before entry hazards
|
||||
if (gBattleMons[battler].ability == ABILITY_NEUTRALIZING_GAS && !gDisableStructs[battler].neutralizingGas)
|
||||
if (gLastUsedAbility == ABILITY_NEUTRALIZING_GAS && !gDisableStructs[battler].neutralizingGas)
|
||||
{
|
||||
gDisableStructs[battler].neutralizingGas = TRUE;
|
||||
gBattlerAbility = battler;
|
||||
@ -5386,7 +5386,7 @@ u32 GetBattlerAbilityInternal(u32 battler, u32 ignoreMoldBreaker, u32 noAbilityS
|
||||
|
||||
if (!hasAbilityShield
|
||||
&& IsNeutralizingGasOnField()
|
||||
&& !gDisableStructs[battler].neutralizingGas)
|
||||
&& (gBattleMons[battler].ability != ABILITY_NEUTRALIZING_GAS || gBattleMons[battler].volatiles.gastroAcid))
|
||||
return ABILITY_NONE;
|
||||
|
||||
if (CanBreakThroughAbility(gBattlerAttacker, battler, gBattleMons[gBattlerAttacker].ability, hasAbilityShield, ignoreMoldBreaker))
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user