Clean up battlescript calls with func BattleScriptCall (#6873)
This commit is contained in:
parent
21499cbee1
commit
eb81820ae3
@ -222,6 +222,7 @@ void OpponentSwitchInResetSentPokesToOpponentValue(u32 battler);
|
||||
void UpdateSentPokesToOpponentValue(u32 battler);
|
||||
void BattleScriptPush(const u8 *bsPtr);
|
||||
void BattleScriptPushCursor(void);
|
||||
void BattleScriptCall(const u8 *bsPtr);
|
||||
void BattleScriptPop(void);
|
||||
u32 TrySetCantSelectMoveBattleScript(u32 battler);
|
||||
u8 CheckMoveLimitations(u32 battler, u8 unusableMoves, u16 check);
|
||||
|
||||
@ -502,10 +502,9 @@ void BS_UndoDynamax(void)
|
||||
|
||||
if (GetActiveGimmick(battler) == GIMMICK_DYNAMAX)
|
||||
{
|
||||
BattleScriptPushCursor();
|
||||
UndoDynamax(battler);
|
||||
gBattleScripting.battler = battler;
|
||||
gBattlescriptCurrInstr = BattleScript_DynamaxEnds_Ret;
|
||||
BattleScriptCall(BattleScript_DynamaxEnds_Ret);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@ -1341,8 +1341,7 @@ static void Cmd_attackcanceler(void)
|
||||
}
|
||||
else
|
||||
{
|
||||
BattleScriptPushCursor();
|
||||
gBattlescriptCurrInstr = BattleScript_MagicCoat;
|
||||
BattleScriptCall(BattleScript_MagicCoat);
|
||||
}
|
||||
return;
|
||||
}
|
||||
@ -1367,8 +1366,7 @@ static void Cmd_attackcanceler(void)
|
||||
{
|
||||
ClearDamageCalcResults();
|
||||
SetAtkCancellerForCalledMove(); // Edge case for bouncing a powder move against a grass type pokemon.
|
||||
BattleScriptPushCursor();
|
||||
gBattlescriptCurrInstr = BattleScript_MagicBounce;
|
||||
BattleScriptCall(BattleScript_MagicBounce);
|
||||
gBattlerAbility = battler;
|
||||
return;
|
||||
}
|
||||
@ -1391,8 +1389,7 @@ static void Cmd_attackcanceler(void)
|
||||
gProtectStructs[gBattlerByTurnOrder[i]].stealMove = FALSE;
|
||||
gBattleStruct->snatchedMoveIsUsed = TRUE;
|
||||
gBattleScripting.battler = gBattlerByTurnOrder[i];
|
||||
BattleScriptPushCursor();
|
||||
gBattlescriptCurrInstr = BattleScript_SnatchedMove;
|
||||
BattleScriptCall(BattleScript_SnatchedMove);
|
||||
return;
|
||||
}
|
||||
}
|
||||
@ -1401,16 +1398,14 @@ static void Cmd_attackcanceler(void)
|
||||
{
|
||||
gSpecialStatuses[gBattlerTarget].lightningRodRedirected = FALSE;
|
||||
gLastUsedAbility = ABILITY_LIGHTNING_ROD;
|
||||
BattleScriptPushCursor();
|
||||
gBattlescriptCurrInstr = BattleScript_TookAttack;
|
||||
BattleScriptCall(BattleScript_TookAttack);
|
||||
RecordAbilityBattle(gBattlerTarget, gLastUsedAbility);
|
||||
}
|
||||
else if (gSpecialStatuses[gBattlerTarget].stormDrainRedirected)
|
||||
{
|
||||
gSpecialStatuses[gBattlerTarget].stormDrainRedirected = FALSE;
|
||||
gLastUsedAbility = ABILITY_STORM_DRAIN;
|
||||
BattleScriptPushCursor();
|
||||
gBattlescriptCurrInstr = BattleScript_TookAttack;
|
||||
BattleScriptCall(BattleScript_TookAttack);
|
||||
RecordAbilityBattle(gBattlerTarget, gLastUsedAbility);
|
||||
}
|
||||
else if (IsBattlerProtected(gBattlerAttacker, gBattlerTarget, gCurrentMove)
|
||||
@ -2282,8 +2277,7 @@ static void Cmd_adjustdamage(void)
|
||||
&& !(gHitMarker & HITMARKER_UNABLE_TO_USE_MOVE)
|
||||
&& gBattleMons[gBattlerAttacker].item)
|
||||
{
|
||||
BattleScriptPushCursor();
|
||||
gBattlescriptCurrInstr = BattleScript_GemActivates;
|
||||
BattleScriptCall(BattleScript_GemActivates);
|
||||
gLastUsedItem = gBattleMons[gBattlerAttacker].item;
|
||||
}
|
||||
}
|
||||
@ -2301,8 +2295,7 @@ static void Cmd_multihitresultmessage(void)
|
||||
if (gBattleStruct->moveResultFlags[gBattlerTarget] & MOVE_RESULT_STURDIED)
|
||||
{
|
||||
gBattleStruct->moveResultFlags[gBattlerTarget] &= ~(MOVE_RESULT_STURDIED | MOVE_RESULT_FOE_HUNG_ON);
|
||||
BattleScriptPushCursor();
|
||||
gBattlescriptCurrInstr = BattleScript_SturdiedMsg;
|
||||
BattleScriptCall(BattleScript_SturdiedMsg);
|
||||
return;
|
||||
}
|
||||
else if (gBattleStruct->moveResultFlags[gBattlerTarget] & MOVE_RESULT_FOE_HUNG_ON)
|
||||
@ -2310,8 +2303,7 @@ static void Cmd_multihitresultmessage(void)
|
||||
gLastUsedItem = gBattleMons[gBattlerTarget].item;
|
||||
gPotentialItemEffectBattler = gBattlerTarget;
|
||||
gBattleStruct->moveResultFlags[gBattlerTarget] &= ~(MOVE_RESULT_STURDIED | MOVE_RESULT_FOE_HUNG_ON);
|
||||
BattleScriptPushCursor();
|
||||
gBattlescriptCurrInstr = BattleScript_HangedOnMsg;
|
||||
BattleScriptCall(BattleScript_HangedOnMsg);
|
||||
return;
|
||||
}
|
||||
}
|
||||
@ -2377,8 +2369,7 @@ static inline bool32 TryStrongWindsWeakenAttack(u32 battlerDef, u32 moveType)
|
||||
&& !gBattleStruct->printedStrongWindsWeakenedAttack)
|
||||
{
|
||||
gBattleStruct->printedStrongWindsWeakenedAttack = TRUE;
|
||||
BattleScriptPushCursor();
|
||||
gBattlescriptCurrInstr = BattleScript_AttackWeakenedByStrongWinds;
|
||||
BattleScriptCall(BattleScript_AttackWeakenedByStrongWinds);
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
@ -2392,8 +2383,7 @@ static inline bool32 TryTeraShellDistortTypeMatchups(u32 battlerDef)
|
||||
{
|
||||
gSpecialStatuses[battlerDef].teraShellAbilityDone = FALSE;
|
||||
gBattleScripting.battler = battlerDef;
|
||||
BattleScriptPushCursor();
|
||||
gBattlescriptCurrInstr = BattleScript_TeraShellDistortingTypeMatchups;
|
||||
BattleScriptCall(BattleScript_TeraShellDistortingTypeMatchups);
|
||||
return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
@ -2408,8 +2398,7 @@ static inline bool32 TryActivateWeakenessBerry(u32 battlerDef)
|
||||
gBattleScripting.battler = battlerDef;
|
||||
gLastUsedItem = gBattleMons[battlerDef].item;
|
||||
gBattleStruct->partyState[GetBattlerSide(battlerDef)][gBattlerPartyIndexes[battlerDef]].ateBerry = TRUE;
|
||||
BattleScriptPushCursor();
|
||||
gBattlescriptCurrInstr = BattleScript_BerryReduceDmg;
|
||||
BattleScriptCall(BattleScript_BerryReduceDmg);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
@ -2653,8 +2642,7 @@ static void Cmd_datahpupdate(void)
|
||||
if (gDisableStructs[battler].substituteHP == 0)
|
||||
{
|
||||
gBattlescriptCurrInstr = cmd->nextInstr;
|
||||
BattleScriptPushCursor();
|
||||
gBattlescriptCurrInstr = BattleScript_SubstituteFade;
|
||||
BattleScriptCall(BattleScript_SubstituteFade);
|
||||
return;
|
||||
}
|
||||
}
|
||||
@ -2868,11 +2856,10 @@ static void Cmd_resultmessage(void)
|
||||
gDisableStructs[gBattlerTarget].iceFaceActivationPrevention = FALSE;
|
||||
u32 side = GetBattlerSide(gBattlerTarget);
|
||||
if (gBattleStruct->changedSpecies[side][gBattlerPartyIndexes[gBattlerTarget]] == SPECIES_NONE)
|
||||
gBattleStruct->changedSpecies[side][gBattlerPartyIndexes[gBattlerTarget]] = gBattleMons[gBattlerTarget].species;
|
||||
gBattleStruct->changedSpecies[side][gBattlerPartyIndexes[gBattlerTarget]] = gBattleMons[gBattlerTarget].species;
|
||||
gBattleMons[gBattlerTarget].species = SPECIES_EISCUE_NOICE;
|
||||
gBattleScripting.battler = gBattlerTarget; // For STRINGID_PKMNTRANSFORMED
|
||||
BattleScriptPushCursor();
|
||||
gBattlescriptCurrInstr = BattleScript_IceFaceNullsDamage;
|
||||
BattleScriptCall(BattleScript_IceFaceNullsDamage);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -2883,8 +2870,7 @@ static void Cmd_resultmessage(void)
|
||||
{
|
||||
gMultiHitCounter = 0;
|
||||
*moveResultFlags &= ~MOVE_RESULT_MISSED;
|
||||
BattleScriptPushCursor();
|
||||
gBattlescriptCurrInstr = BattleScript_MultiHitPrintStrings;
|
||||
BattleScriptCall(BattleScript_MultiHitPrintStrings);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -2962,8 +2948,7 @@ static void Cmd_resultmessage(void)
|
||||
gLastUsedItem = gBattleMons[gBattlerTarget].item;
|
||||
gPotentialItemEffectBattler = gBattlerTarget;
|
||||
*moveResultFlags &= ~(MOVE_RESULT_FOE_ENDURED | MOVE_RESULT_FOE_HUNG_ON);
|
||||
BattleScriptPushCursor();
|
||||
gBattlescriptCurrInstr = BattleScript_HangedOnMsg;
|
||||
BattleScriptCall(BattleScript_HangedOnMsg);
|
||||
return;
|
||||
default:
|
||||
if (*moveResultFlags & MOVE_RESULT_ONE_HIT_KO)
|
||||
@ -2971,22 +2956,19 @@ static void Cmd_resultmessage(void)
|
||||
*moveResultFlags &= ~MOVE_RESULT_ONE_HIT_KO;
|
||||
*moveResultFlags &= ~MOVE_RESULT_SUPER_EFFECTIVE;
|
||||
*moveResultFlags &= ~MOVE_RESULT_NOT_VERY_EFFECTIVE;
|
||||
BattleScriptPushCursor();
|
||||
gBattlescriptCurrInstr = BattleScript_OneHitKOMsg;
|
||||
BattleScriptCall(BattleScript_OneHitKOMsg);
|
||||
return;
|
||||
}
|
||||
else if (*moveResultFlags & MOVE_RESULT_STURDIED)
|
||||
{
|
||||
*moveResultFlags &= ~(MOVE_RESULT_STURDIED | MOVE_RESULT_FOE_ENDURED | MOVE_RESULT_FOE_HUNG_ON);
|
||||
BattleScriptPushCursor();
|
||||
gBattlescriptCurrInstr = BattleScript_SturdiedMsg;
|
||||
BattleScriptCall(BattleScript_SturdiedMsg);
|
||||
return;
|
||||
}
|
||||
else if (*moveResultFlags & MOVE_RESULT_FOE_ENDURED)
|
||||
{
|
||||
*moveResultFlags &= ~(MOVE_RESULT_FOE_ENDURED | MOVE_RESULT_FOE_HUNG_ON);
|
||||
BattleScriptPushCursor();
|
||||
gBattlescriptCurrInstr = BattleScript_EnduredMsg;
|
||||
BattleScriptCall(BattleScript_EnduredMsg);
|
||||
return;
|
||||
}
|
||||
else if (*moveResultFlags & MOVE_RESULT_FOE_HUNG_ON)
|
||||
@ -2994,8 +2976,7 @@ static void Cmd_resultmessage(void)
|
||||
gLastUsedItem = gBattleMons[gBattlerTarget].item;
|
||||
gPotentialItemEffectBattler = gBattlerTarget;
|
||||
*moveResultFlags &= ~(MOVE_RESULT_FOE_ENDURED | MOVE_RESULT_FOE_HUNG_ON);
|
||||
BattleScriptPushCursor();
|
||||
gBattlescriptCurrInstr = BattleScript_HangedOnMsg;
|
||||
BattleScriptCall(BattleScript_HangedOnMsg);
|
||||
return;
|
||||
}
|
||||
else if (*moveResultFlags & MOVE_RESULT_FAILED)
|
||||
@ -3005,8 +2986,7 @@ static void Cmd_resultmessage(void)
|
||||
else if (B_AFFECTION_MECHANICS == TRUE && (*moveResultFlags & MOVE_RESULT_FOE_ENDURED_AFFECTION))
|
||||
{
|
||||
*moveResultFlags &= ~MOVE_RESULT_FOE_ENDURED_AFFECTION;
|
||||
BattleScriptPushCursor();
|
||||
gBattlescriptCurrInstr = BattleScript_AffectionBasedEndurance;
|
||||
BattleScriptCall(BattleScript_AffectionBasedEndurance);
|
||||
return;
|
||||
}
|
||||
}
|
||||
@ -4704,10 +4684,9 @@ static void Cmd_dofaintanimation(void)
|
||||
|
||||
if (GetActiveGimmick(battler) == GIMMICK_DYNAMAX)
|
||||
{
|
||||
BattleScriptPushCursor();
|
||||
UndoDynamax(battler);
|
||||
gBattleScripting.battler = battler;
|
||||
gBattlescriptCurrInstr = BattleScript_DynamaxEnds_Ret;
|
||||
BattleScriptCall(BattleScript_DynamaxEnds_Ret);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -5179,9 +5158,8 @@ static void Cmd_getexp(void)
|
||||
PREPARE_MON_NICK_WITH_PREFIX_BUFFER(gBattleTextBuff1, expBattler, *expMonId);
|
||||
PREPARE_BYTE_NUMBER_BUFFER(gBattleTextBuff2, 3, GetMonData(&gPlayerParty[*expMonId], MON_DATA_LEVEL));
|
||||
|
||||
BattleScriptPushCursor();
|
||||
gLeveledUpInBattle |= 1 << *expMonId;
|
||||
gBattlescriptCurrInstr = BattleScript_LevelUp;
|
||||
BattleScriptCall(BattleScript_LevelUp);
|
||||
gBattleStruct->battlerExpReward = T1_READ_32(&gBattleResources->bufferB[expBattler][2]);
|
||||
AdjustFriendship(&gPlayerParty[*expMonId], FRIENDSHIP_EVENT_GROW_LEVEL);
|
||||
|
||||
@ -6087,8 +6065,7 @@ static bool32 TryKnockOffBattleScript(u32 battlerDef)
|
||||
if (GetBattlerAbility(battlerDef) == ABILITY_STICKY_HOLD && IsBattlerAlive(battlerDef))
|
||||
{
|
||||
gBattlerAbility = battlerDef;
|
||||
BattleScriptPushCursor();
|
||||
gBattlescriptCurrInstr = BattleScript_StickyHoldActivates;
|
||||
BattleScriptCall(BattleScript_StickyHoldActivates);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -6111,8 +6088,7 @@ static bool32 TryKnockOffBattleScript(u32 battlerDef)
|
||||
gWishFutureKnock.knockedOffMons[side] |= 1u << gBattlerPartyIndexes[battlerDef];
|
||||
}
|
||||
|
||||
BattleScriptPushCursor();
|
||||
gBattlescriptCurrInstr = BattleScript_KnockedOff;
|
||||
BattleScriptCall(BattleScript_KnockedOff);
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
@ -6225,8 +6201,7 @@ static bool32 HandleMoveEndAbilityBlock(u32 battlerAtk, u32 battlerDef, u32 move
|
||||
StealTargetItem(battlerAtk, battlerDef);
|
||||
gBattleScripting.battler = gBattlerAbility = battlerAtk;
|
||||
gEffectBattler = battlerDef;
|
||||
BattleScriptPushCursor();
|
||||
gBattlescriptCurrInstr = BattleScript_MagicianActivates;
|
||||
BattleScriptCall(BattleScript_MagicianActivates);
|
||||
effect = TRUE;
|
||||
}
|
||||
break;
|
||||
@ -6259,8 +6234,7 @@ static bool32 HandleMoveEndAbilityBlock(u32 battlerAtk, u32 battlerDef, u32 move
|
||||
SET_STATCHANGER(stat, numMonsFainted, FALSE);
|
||||
PREPARE_STAT_BUFFER(gBattleTextBuff1, stat);
|
||||
gBattleScripting.animArg1 = GET_STAT_BUFF_ID(stat) + (numMonsFainted > 1 ? STAT_ANIM_PLUS2 : STAT_ANIM_PLUS1);
|
||||
BattleScriptPushCursor();
|
||||
gBattlescriptCurrInstr = BattleScript_RaiseStatOnFaintingTarget;
|
||||
BattleScriptCall(BattleScript_RaiseStatOnFaintingTarget);
|
||||
effect = TRUE;
|
||||
}
|
||||
}
|
||||
@ -6285,8 +6259,7 @@ static bool32 HandleMoveEndAbilityBlock(u32 battlerAtk, u32 battlerDef, u32 move
|
||||
PREPARE_SPECIES_BUFFER(gBattleTextBuff1, gBattleMons[battlerAtk].species);
|
||||
gBattleStruct->changedSpecies[side][gBattlerPartyIndexes[battlerAtk]] = gBattleMons[battlerAtk].species;
|
||||
gBattleMons[battlerAtk].species = SPECIES_GRENINJA_ASH;
|
||||
BattleScriptPushCursor();
|
||||
gBattlescriptCurrInstr = BattleScript_BattleBondActivatesOnMoveEndAttacker;
|
||||
BattleScriptCall(BattleScript_BattleBondActivatesOnMoveEndAttacker);
|
||||
effect = TRUE;
|
||||
}
|
||||
else
|
||||
@ -6316,8 +6289,7 @@ static bool32 HandleMoveEndAbilityBlock(u32 battlerAtk, u32 battlerDef, u32 move
|
||||
gLastUsedAbility = abilityAtk;
|
||||
gBattlerAbility = battlerAtk;
|
||||
gBattleStruct->partyState[side][gBattlerPartyIndexes[battlerAtk]].battleBondBoost = TRUE;
|
||||
BattleScriptPushCursor();
|
||||
gBattlescriptCurrInstr = BattleScript_EffectBattleBondStatIncrease;
|
||||
BattleScriptCall(BattleScript_EffectBattleBondStatIncrease);
|
||||
effect = TRUE;
|
||||
}
|
||||
}
|
||||
@ -6376,8 +6348,7 @@ static void Cmd_moveend(void)
|
||||
if (gBattleStruct->moveDamage[gBattlerAttacker] == 0)
|
||||
gBattleStruct->moveDamage[gBattlerAttacker] = 1;
|
||||
PREPARE_MOVE_BUFFER(gBattleTextBuff1, MOVE_SPIKY_SHIELD);
|
||||
BattleScriptPushCursor();
|
||||
gBattlescriptCurrInstr = BattleScript_SpikyShieldEffect;
|
||||
BattleScriptCall(BattleScript_SpikyShieldEffect);
|
||||
effect = 1;
|
||||
}
|
||||
break;
|
||||
@ -6392,8 +6363,7 @@ static void Cmd_moveend(void)
|
||||
gBattleScripting.moveEffect = MOVE_EFFECT_ATK_MINUS_1;
|
||||
else
|
||||
gBattleScripting.moveEffect = MOVE_EFFECT_ATK_MINUS_2;
|
||||
BattleScriptPushCursor();
|
||||
gBattlescriptCurrInstr = BattleScript_KingsShieldEffect;
|
||||
BattleScriptCall(BattleScript_KingsShieldEffect);
|
||||
effect = 1;
|
||||
}
|
||||
break;
|
||||
@ -6403,8 +6373,7 @@ static void Cmd_moveend(void)
|
||||
gProtectStructs[gBattlerAttacker].touchedProtectLike = FALSE;
|
||||
gBattleScripting.moveEffect = MOVE_EFFECT_POISON | MOVE_EFFECT_AFFECTS_USER;
|
||||
PREPARE_MOVE_BUFFER(gBattleTextBuff1, MOVE_BANEFUL_BUNKER);
|
||||
BattleScriptPushCursor();
|
||||
gBattlescriptCurrInstr = BattleScript_BanefulBunkerEffect;
|
||||
BattleScriptCall(BattleScript_BanefulBunkerEffect);
|
||||
effect = 1;
|
||||
}
|
||||
break;
|
||||
@ -6414,8 +6383,7 @@ static void Cmd_moveend(void)
|
||||
gProtectStructs[gBattlerAttacker].touchedProtectLike = FALSE;
|
||||
gBattleScripting.moveEffect = MOVE_EFFECT_BURN | MOVE_EFFECT_AFFECTS_USER;
|
||||
PREPARE_MOVE_BUFFER(gBattleTextBuff1, MOVE_BURNING_BULWARK);
|
||||
BattleScriptPushCursor();
|
||||
gBattlescriptCurrInstr = BattleScript_BanefulBunkerEffect;
|
||||
BattleScriptCall(BattleScript_BanefulBunkerEffect);
|
||||
effect = 1;
|
||||
}
|
||||
break;
|
||||
@ -6429,8 +6397,7 @@ static void Cmd_moveend(void)
|
||||
gBattlerAttacker = gBattlerTarget;
|
||||
gBattlerTarget = i; // gBattlerTarget and gBattlerAttacker are swapped in order to activate Defiant, if applicable
|
||||
gBattleScripting.moveEffect = MOVE_EFFECT_DEF_MINUS_2;
|
||||
BattleScriptPushCursor();
|
||||
gBattlescriptCurrInstr = BattleScript_KingsShieldEffect;
|
||||
BattleScriptCall(BattleScript_KingsShieldEffect);
|
||||
effect = 1;
|
||||
}
|
||||
break;
|
||||
@ -6442,8 +6409,7 @@ static void Cmd_moveend(void)
|
||||
gBattlerAttacker = gBattlerTarget;
|
||||
gBattlerTarget = i; // gBattlerTarget and gBattlerAttacker are swapped in order to activate Defiant, if applicable
|
||||
gBattleScripting.moveEffect = MOVE_EFFECT_SPD_MINUS_1;
|
||||
BattleScriptPushCursor();
|
||||
gBattlescriptCurrInstr = BattleScript_KingsShieldEffect;
|
||||
BattleScriptCall(BattleScript_KingsShieldEffect);
|
||||
effect = 1;
|
||||
}
|
||||
break;
|
||||
@ -6460,8 +6426,7 @@ static void Cmd_moveend(void)
|
||||
gBattleMons[gBattlerAttacker].status1 = STATUS1_BURN;
|
||||
BtlController_EmitSetMonData(gBattlerAttacker, B_COMM_TO_CONTROLLER, REQUEST_STATUS_BATTLE, 0, sizeof(gBattleMons[gBattlerAttacker].status1), &gBattleMons[gBattlerAttacker].status1);
|
||||
MarkBattlerForControllerExec(gBattlerAttacker);
|
||||
BattleScriptPushCursor();
|
||||
gBattlescriptCurrInstr = BattleScript_BeakBlastBurn;
|
||||
BattleScriptCall(BattleScript_BeakBlastBurn);
|
||||
effect = 1;
|
||||
}
|
||||
}
|
||||
@ -6483,14 +6448,12 @@ static void Cmd_moveend(void)
|
||||
gBattleStruct->moveDamage[gBattlerAttacker] *= -1;
|
||||
gHitMarker |= HITMARKER_PASSIVE_DAMAGE;
|
||||
gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_ABSORB_OOZE;
|
||||
BattleScriptPushCursor();
|
||||
gBattlescriptCurrInstr = BattleScript_EffectAbsorbLiquidOoze;
|
||||
BattleScriptCall(BattleScript_EffectAbsorbLiquidOoze);
|
||||
}
|
||||
else
|
||||
{
|
||||
gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_ABSORB;
|
||||
BattleScriptPushCursor();
|
||||
gBattlescriptCurrInstr = BattleScript_EffectAbsorb;
|
||||
BattleScriptCall(BattleScript_EffectAbsorb);
|
||||
}
|
||||
}
|
||||
gBattleScripting.moveendState++;
|
||||
@ -6506,8 +6469,7 @@ static void Cmd_moveend(void)
|
||||
&& CompareStat(gBattlerTarget, STAT_ATK, MAX_STAT_STAGE, CMP_LESS_THAN))
|
||||
{
|
||||
SET_STATCHANGER(STAT_ATK, 1, FALSE);
|
||||
BattleScriptPushCursor();
|
||||
gBattlescriptCurrInstr = BattleScript_RageIsBuilding;
|
||||
BattleScriptCall(BattleScript_RageIsBuilding);
|
||||
effect = TRUE;
|
||||
}
|
||||
gBattleScripting.moveendState++;
|
||||
@ -6603,23 +6565,22 @@ static void Cmd_moveend(void)
|
||||
}
|
||||
|
||||
effect = TRUE;
|
||||
BattleScriptPushCursor();
|
||||
if (targetAbility == ABILITY_SUCTION_CUPS)
|
||||
{
|
||||
gBattlescriptCurrInstr = BattleScript_AbilityPreventsPhasingOutRet;
|
||||
BattleScriptCall(BattleScript_AbilityPreventsPhasingOutRet);
|
||||
}
|
||||
else if (gStatuses3[gBattlerTarget] & STATUS3_ROOTED)
|
||||
{
|
||||
gBattlescriptCurrInstr = BattleScript_PrintMonIsRootedRet;
|
||||
BattleScriptCall(BattleScript_PrintMonIsRootedRet);
|
||||
}
|
||||
else if (GetActiveGimmick(gBattlerTarget) == GIMMICK_DYNAMAX)
|
||||
{
|
||||
gBattlescriptCurrInstr = BattleScript_HitSwitchTargetDynamaxed;
|
||||
BattleScriptCall(BattleScript_HitSwitchTargetDynamaxed);
|
||||
}
|
||||
else
|
||||
{
|
||||
gBattleScripting.switchCase = B_SWITCH_HIT;
|
||||
gBattlescriptCurrInstr = BattleScript_TryHitSwitchTarget;
|
||||
BattleScriptCall(BattleScript_TryHitSwitchTarget);
|
||||
}
|
||||
}
|
||||
break;
|
||||
@ -6899,11 +6860,10 @@ static void Cmd_moveend(void)
|
||||
gBattleScripting.multihitString[4]++;
|
||||
if (gMultiHitCounter == 0)
|
||||
{
|
||||
BattleScriptPushCursor();
|
||||
if (GetMoveEffectArg_MoveProperty(gCurrentMove) == MOVE_EFFECT_SCALE_SHOT && !NoAliveMonsForEitherParty())
|
||||
gBattlescriptCurrInstr = BattleScript_ScaleShot;
|
||||
BattleScriptCall(BattleScript_ScaleShot);
|
||||
else
|
||||
gBattlescriptCurrInstr = BattleScript_MultiHitPrintStrings;
|
||||
BattleScriptCall(BattleScript_MultiHitPrintStrings);
|
||||
effect = TRUE;
|
||||
}
|
||||
else
|
||||
@ -6936,8 +6896,7 @@ static void Cmd_moveend(void)
|
||||
}
|
||||
else
|
||||
{
|
||||
BattleScriptPushCursor();
|
||||
gBattlescriptCurrInstr = BattleScript_MultiHitPrintStrings;
|
||||
BattleScriptCall(BattleScript_MultiHitPrintStrings);
|
||||
effect = TRUE;
|
||||
}
|
||||
}
|
||||
@ -6959,8 +6918,7 @@ static void Cmd_moveend(void)
|
||||
gBattleMons[gBattlerTarget].status1 &= ~STATUS1_FREEZE;
|
||||
BtlController_EmitSetMonData(gBattlerTarget, B_COMM_TO_CONTROLLER, REQUEST_STATUS_BATTLE, 0, sizeof(gBattleMons[gBattlerTarget].status1), &gBattleMons[gBattlerTarget].status1);
|
||||
MarkBattlerForControllerExec(gBattlerTarget);
|
||||
BattleScriptPushCursor();
|
||||
gBattlescriptCurrInstr = BattleScript_DefrostedViaFireMove;
|
||||
BattleScriptCall(BattleScript_DefrostedViaFireMove);
|
||||
effect = TRUE;
|
||||
}
|
||||
if (gBattleMons[gBattlerTarget].status1 & STATUS1_FROSTBITE
|
||||
@ -6972,8 +6930,7 @@ static void Cmd_moveend(void)
|
||||
gBattleMons[gBattlerTarget].status1 &= ~STATUS1_FROSTBITE;
|
||||
BtlController_EmitSetMonData(gBattlerTarget, B_COMM_TO_CONTROLLER, REQUEST_STATUS_BATTLE, 0, sizeof(gBattleMons[gBattlerTarget].status1), &gBattleMons[gBattlerTarget].status1);
|
||||
MarkBattlerForControllerExec(gBattlerTarget);
|
||||
BattleScriptPushCursor();
|
||||
gBattlescriptCurrInstr = BattleScript_FrostbiteHealedViaFireMove;
|
||||
BattleScriptCall(BattleScript_FrostbiteHealedViaFireMove);
|
||||
effect = TRUE;
|
||||
}
|
||||
gBattleScripting.moveendState++;
|
||||
@ -7002,8 +6959,7 @@ static void Cmd_moveend(void)
|
||||
if (gBattleStruct->moveDamage[gBattlerAttacker] == 0)
|
||||
gBattleStruct->moveDamage[gBattlerAttacker] = 1;
|
||||
|
||||
BattleScriptPushCursor();
|
||||
gBattlescriptCurrInstr = BattleScript_RecoilIfMiss;
|
||||
BattleScriptCall(BattleScript_RecoilIfMiss);
|
||||
effect = TRUE;
|
||||
}
|
||||
break;
|
||||
@ -7011,8 +6967,7 @@ static void Cmd_moveend(void)
|
||||
if (IsBattlerTurnDamaged(gBattlerTarget) && IsBattlerAlive(gBattlerAttacker))
|
||||
{
|
||||
gBattleStruct->moveDamage[gBattlerAttacker] = max(1, gBattleStruct->moveDamage[gBattlerTarget] * max(1, GetMoveRecoil(gCurrentMove)) / 100);
|
||||
BattleScriptPushCursor();
|
||||
gBattlescriptCurrInstr = BattleScript_MoveEffectRecoil;
|
||||
BattleScriptCall(BattleScript_MoveEffectRecoil);
|
||||
effect = TRUE;
|
||||
}
|
||||
break;
|
||||
@ -7020,8 +6975,7 @@ static void Cmd_moveend(void)
|
||||
if (!IsAbilityOnField(ABILITY_DAMP))
|
||||
{
|
||||
gBattleStruct->moveDamage[gBattlerAttacker] = 0;
|
||||
BattleScriptPushCursor();
|
||||
gBattlescriptCurrInstr = BattleScript_FaintAttackerForExplosion;
|
||||
BattleScriptCall(BattleScript_FaintAttackerForExplosion);
|
||||
effect = TRUE;
|
||||
}
|
||||
break;
|
||||
@ -7032,16 +6986,14 @@ static void Cmd_moveend(void)
|
||||
&& GetBattlerAbility(gBattlerAttacker) != ABILITY_MAGIC_GUARD)
|
||||
{
|
||||
gBattleStruct->moveDamage[gBattlerAttacker] = (GetNonDynamaxMaxHP(gBattlerAttacker) + 1) / 2; // Half of Max HP Rounded UP
|
||||
BattleScriptPushCursor();
|
||||
gBattlescriptCurrInstr = BattleScript_MaxHp50Recoil;
|
||||
BattleScriptCall(BattleScript_MaxHp50Recoil);
|
||||
effect = TRUE;
|
||||
}
|
||||
break;
|
||||
case EFFECT_RAPID_SPIN:
|
||||
if (IsBattlerTurnDamaged(gBattlerTarget))
|
||||
{
|
||||
BattleScriptPushCursor();
|
||||
gBattlescriptCurrInstr = BattleScript_RapidSpinAway;
|
||||
BattleScriptCall(BattleScript_RapidSpinAway);
|
||||
effect = TRUE;
|
||||
}
|
||||
break;
|
||||
@ -7054,8 +7006,7 @@ static void Cmd_moveend(void)
|
||||
{
|
||||
SET_STATCHANGER(STAT_ATK, GetGenConfig(GEN_CONFIG_FELL_STINGER_STAT_RAISE) >= GEN_7 ? 3 : 2, FALSE);
|
||||
PREPARE_STAT_BUFFER(gBattleTextBuff1, STAT_ATK);
|
||||
BattleScriptPushCursor();
|
||||
gBattlescriptCurrInstr = BattleScript_FellStingerRaisesStat;
|
||||
BattleScriptCall(BattleScript_FellStingerRaisesStat);
|
||||
effect = TRUE;
|
||||
}
|
||||
break;
|
||||
@ -7115,8 +7066,7 @@ static void Cmd_moveend(void)
|
||||
gLastUsedItem = gBattleMons[battler].item;
|
||||
effect = TRUE;
|
||||
gBattleStruct->battlerState[battler].usedEjectItem = TRUE;
|
||||
BattleScriptPushCursor();
|
||||
gBattlescriptCurrInstr = BattleScript_EjectButtonActivates;
|
||||
BattleScriptCall(BattleScript_EjectButtonActivates);
|
||||
gAiLogicData->ejectButtonSwitch = TRUE;
|
||||
break; // Only the fastest Eject Button activates
|
||||
}
|
||||
@ -7169,8 +7119,7 @@ static void Cmd_moveend(void)
|
||||
gLastUsedItem = gBattleMons[battler].item;
|
||||
effect = TRUE;
|
||||
gBattleStruct->battlerState[battler].usedEjectItem = TRUE;
|
||||
BattleScriptPushCursor();
|
||||
gBattlescriptCurrInstr = BattleScript_EjectPackActivates;
|
||||
BattleScriptCall(BattleScript_EjectPackActivates);
|
||||
gAiLogicData->ejectPackSwitch = TRUE;
|
||||
break; // Only the fastest Eject item activates
|
||||
}
|
||||
@ -7189,8 +7138,7 @@ static void Cmd_moveend(void)
|
||||
if (GetBattlerHoldEffect(i, TRUE) == HOLD_EFFECT_WHITE_HERB
|
||||
&& RestoreWhiteHerbStats(i))
|
||||
{
|
||||
BattleScriptPushCursor();
|
||||
gBattlescriptCurrInstr = BattleScript_WhiteHerbRet;
|
||||
BattleScriptCall(BattleScript_WhiteHerbRet);
|
||||
effect = TRUE;
|
||||
break;
|
||||
}
|
||||
@ -7232,13 +7180,12 @@ static void Cmd_moveend(void)
|
||||
SaveBattlerAttacker(gBattlerAttacker);
|
||||
gBattleScripting.battler = battler;
|
||||
gEffectBattler = gBattlerAttacker;
|
||||
BattleScriptPushCursor();
|
||||
if (gBattleStruct->commanderActive[gBattlerAttacker] != SPECIES_NONE
|
||||
|| GetBattlerAbility(gBattlerAttacker) == ABILITY_GUARD_DOG
|
||||
|| GetActiveGimmick(gBattlerAttacker) == GIMMICK_DYNAMAX)
|
||||
gBattlescriptCurrInstr = BattleScript_RedCardActivationNoSwitch;
|
||||
BattleScriptCall(BattleScript_RedCardActivationNoSwitch);
|
||||
else
|
||||
gBattlescriptCurrInstr = BattleScript_RedCardActivates;
|
||||
BattleScriptCall(BattleScript_RedCardActivates);
|
||||
break; // Only fastest red card activates
|
||||
}
|
||||
}
|
||||
@ -7281,8 +7228,7 @@ static void Cmd_moveend(void)
|
||||
StealTargetItem(gBattlerTarget, gBattlerAttacker); // Target takes attacker's item
|
||||
|
||||
gEffectBattler = gBattlerAttacker;
|
||||
BattleScriptPushCursor();
|
||||
gBattlescriptCurrInstr = BattleScript_Pickpocket; // Includes sticky hold check to print separate string
|
||||
BattleScriptCall(BattleScript_Pickpocket); // Includes sticky hold check to print separate string
|
||||
effect = TRUE;
|
||||
break; // Pickpocket activates on fastest mon, so exit loop.
|
||||
}
|
||||
@ -7325,12 +7271,11 @@ static void Cmd_moveend(void)
|
||||
|
||||
effect = TRUE;
|
||||
gBattleScripting.battler = battler;
|
||||
BattleScriptPushCursor();
|
||||
|
||||
if (gBattleTypeFlags & BATTLE_TYPE_TRAINER || IsOnPlayerSide(battler))
|
||||
gBattlescriptCurrInstr = BattleScript_EmergencyExit;
|
||||
BattleScriptCall(BattleScript_EmergencyExit);
|
||||
else
|
||||
gBattlescriptCurrInstr = BattleScript_EmergencyExitWild;
|
||||
BattleScriptCall(BattleScript_EmergencyExitWild);
|
||||
|
||||
break; // Only the fastest Emergency Exit / Wimp Out activates
|
||||
}
|
||||
@ -7348,8 +7293,7 @@ static void Cmd_moveend(void)
|
||||
&& !NoAliveMonsForBattlerSide(gBattlerTarget))
|
||||
{
|
||||
effect = TRUE;
|
||||
BattleScriptPushCursor();
|
||||
gBattlescriptCurrInstr = BattleScript_EffectHitEscape;
|
||||
BattleScriptCall(BattleScript_EffectHitEscape);
|
||||
}
|
||||
gBattleScripting.moveendState++;
|
||||
break;
|
||||
@ -7370,8 +7314,7 @@ static void Cmd_moveend(void)
|
||||
gLastUsedAbility = gBattleMons[BATTLE_PARTNER(i)].ability;
|
||||
gBattleScripting.battler = gBattlerAbility = BATTLE_PARTNER(i);
|
||||
gBattlerAttacker = i;
|
||||
BattleScriptPushCursor();
|
||||
gBattlescriptCurrInstr = BattleScript_SymbiosisActivates;
|
||||
BattleScriptCall(BattleScript_SymbiosisActivates);
|
||||
effect = TRUE;
|
||||
}
|
||||
}
|
||||
@ -8168,15 +8111,14 @@ static void SetDmgHazardsBattlescript(u8 battler, u8 multistringId)
|
||||
gBattleScripting.battler = battler;
|
||||
gBattleCommunication[MULTISTRING_CHOOSER] = multistringId;
|
||||
|
||||
BattleScriptPushCursor();
|
||||
if (gBattlescriptCurrInstr[1] == BS_TARGET)
|
||||
gBattlescriptCurrInstr = BattleScript_DmgHazardsOnTarget;
|
||||
BattleScriptCall(BattleScript_DmgHazardsOnTarget);
|
||||
else if (gBattlescriptCurrInstr[1] == BS_ATTACKER)
|
||||
gBattlescriptCurrInstr = BattleScript_DmgHazardsOnAttacker;
|
||||
BattleScriptCall(BattleScript_DmgHazardsOnAttacker);
|
||||
else if (gBattlescriptCurrInstr[1] == BS_SCRIPTING)
|
||||
gBattlescriptCurrInstr = BattleScript_DmgHazardsOnBattlerScripting;
|
||||
BattleScriptCall(BattleScript_DmgHazardsOnBattlerScripting);
|
||||
else
|
||||
gBattlescriptCurrInstr = BattleScript_DmgHazardsOnFaintedBattler;
|
||||
BattleScriptCall(BattleScript_DmgHazardsOnFaintedBattler);
|
||||
}
|
||||
|
||||
bool32 DoSwitchInAbilities(u32 battler)
|
||||
@ -8208,8 +8150,7 @@ static bool32 DoSwitchInEffectsForBattler(u32 battler)
|
||||
gSpecialStatuses[battler].announceNeutralizingGas = TRUE;
|
||||
gDisableStructs[battler].neutralizingGas = TRUE;
|
||||
gBattlerAbility = battler;
|
||||
BattleScriptPushCursor();
|
||||
gBattlescriptCurrInstr = BattleScript_SwitchInAbilityMsgRet;
|
||||
BattleScriptCall(BattleScript_SwitchInAbilityMsgRet);
|
||||
}
|
||||
// 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.
|
||||
@ -8219,14 +8160,12 @@ static bool32 DoSwitchInEffectsForBattler(u32 battler)
|
||||
gBattlerAttacker = battler;
|
||||
if (gBattleStruct->battlerState[battler].storedHealingWish)
|
||||
{
|
||||
BattleScriptPushCursor();
|
||||
gBattlescriptCurrInstr = BattleScript_HealingWishActivates;
|
||||
BattleScriptCall(BattleScript_HealingWishActivates);
|
||||
gBattleStruct->battlerState[battler].storedHealingWish = FALSE;
|
||||
}
|
||||
else // Lunar Dance
|
||||
{
|
||||
BattleScriptPushCursor();
|
||||
gBattlescriptCurrInstr = BattleScript_LunarDanceActivates;
|
||||
BattleScriptCall(BattleScript_LunarDanceActivates);
|
||||
gBattleStruct->battlerState[battler].storedLunarDance = FALSE;
|
||||
}
|
||||
}
|
||||
@ -8265,8 +8204,7 @@ static bool32 DoSwitchInEffectsForBattler(u32 battler)
|
||||
gSideStatuses[GetBattlerSide(battler)] &= ~SIDE_STATUS_TOXIC_SPIKES;
|
||||
gSideTimers[GetBattlerSide(battler)].toxicSpikesAmount = 0;
|
||||
gBattleScripting.battler = battler;
|
||||
BattleScriptPushCursor();
|
||||
gBattlescriptCurrInstr = BattleScript_ToxicSpikesAbsorbed;
|
||||
BattleScriptCall(BattleScript_ToxicSpikesAbsorbed);
|
||||
}
|
||||
else if (IsBattlerAffectedByHazards(battler, TRUE))
|
||||
{
|
||||
@ -8283,11 +8221,10 @@ static bool32 DoSwitchInEffectsForBattler(u32 battler)
|
||||
BtlController_EmitSetMonData(battler, B_COMM_TO_CONTROLLER, REQUEST_STATUS_BATTLE, 0, sizeof(gBattleMons[battler].status1), &gBattleMons[battler].status1);
|
||||
MarkBattlerForControllerExec(battler);
|
||||
gBattleScripting.battler = battler;
|
||||
BattleScriptPushCursor();
|
||||
if (tspikes == 0)
|
||||
gBattlescriptCurrInstr = BattleScript_ToxicSpikesPoisoned;
|
||||
BattleScriptCall(BattleScript_ToxicSpikesPoisoned);
|
||||
else
|
||||
gBattlescriptCurrInstr = BattleScript_ToxicSpikesBadlyPoisoned;
|
||||
BattleScriptCall(BattleScript_ToxicSpikesBadlyPoisoned);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -8299,8 +8236,7 @@ static bool32 DoSwitchInEffectsForBattler(u32 battler)
|
||||
gDisableStructs[battler].stickyWebDone = TRUE;
|
||||
gBattleScripting.battler = battler;
|
||||
SET_STATCHANGER(STAT_SPEED, 1, TRUE);
|
||||
BattleScriptPushCursor();
|
||||
gBattlescriptCurrInstr = BattleScript_StickyWebOnSwitchIn;
|
||||
BattleScriptCall(BattleScript_StickyWebOnSwitchIn);
|
||||
}
|
||||
else if (!(gDisableStructs[battler].steelSurgeDone)
|
||||
&& (gSideStatuses[GetBattlerSide(battler)] & SIDE_STATUS_STEELSURGE)
|
||||
@ -8318,9 +8254,8 @@ static bool32 DoSwitchInEffectsForBattler(u32 battler)
|
||||
gBattleStruct->zmove.healReplacement = FALSE;
|
||||
gBattleStruct->moveDamage[battler] = -1 * (gBattleMons[battler].maxHP);
|
||||
gBattleScripting.battler = battler;
|
||||
BattleScriptPushCursor();
|
||||
gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_Z_HP_TRAP;
|
||||
gBattlescriptCurrInstr = BattleScript_HealReplacementZMove;
|
||||
BattleScriptCall(BattleScript_HealReplacementZMove);
|
||||
return TRUE;
|
||||
}
|
||||
else
|
||||
@ -9699,8 +9634,7 @@ static void RemoveAllTerrains(void)
|
||||
PREPARE_MOVE_BUFFER(gBattleTextBuff1, move);\
|
||||
*sideStatuses &= ~status; \
|
||||
sideTimer->structField = 0; \
|
||||
BattleScriptPushCursor(); \
|
||||
gBattlescriptCurrInstr = battlescript; \
|
||||
BattleScriptCall(battlescript); \
|
||||
} \
|
||||
else \
|
||||
{ \
|
||||
@ -9741,15 +9675,13 @@ static bool32 TryDefogClear(u32 battlerAtk, bool32 clear)
|
||||
if (gBattleWeather & B_WEATHER_FOG)
|
||||
{
|
||||
gBattleWeather &= ~B_WEATHER_FOG;
|
||||
BattleScriptPushCursor();
|
||||
gBattlescriptCurrInstr = BattleScript_FogEnded_Ret;
|
||||
BattleScriptCall(BattleScript_FogEnded_Ret);
|
||||
return TRUE;
|
||||
}
|
||||
if (B_DEFOG_EFFECT_CLEARING >= GEN_8 && (gFieldStatuses & STATUS_FIELD_TERRAIN_ANY))
|
||||
{
|
||||
RemoveAllTerrains();
|
||||
BattleScriptPushCursor();
|
||||
gBattlescriptCurrInstr = BattleScript_TerrainEnds_Ret;
|
||||
BattleScriptCall(BattleScript_TerrainEnds_Ret);
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
@ -9785,8 +9717,7 @@ static bool32 TryTidyUpClear(u32 battlerAtk, bool32 clear)
|
||||
gBattlerTarget = i;
|
||||
gDisableStructs[i].substituteHP = 0;
|
||||
gBattleMons[i].status2 &= ~STATUS2_SUBSTITUTE;
|
||||
BattleScriptPushCursor();
|
||||
gBattlescriptCurrInstr = BattleScript_SubstituteFade;
|
||||
BattleScriptCall(BattleScript_SubstituteFade);
|
||||
}
|
||||
gBattlerAttacker = saveBattler;
|
||||
return TRUE;
|
||||
@ -10174,16 +10105,15 @@ static void Cmd_various(void)
|
||||
{
|
||||
gLastUsedItem = gBattleMons[gBattlerTarget].item;
|
||||
RecordItemEffectBattle(gBattlerTarget, GetBattlerHoldEffect(gBattlerTarget, FALSE));
|
||||
BattleScriptPushCursor();
|
||||
// If Frisk identifies two mons' items, show the pop-up only once.
|
||||
if (gBattleStruct->friskedAbility)
|
||||
{
|
||||
gBattlescriptCurrInstr = BattleScript_FriskMsg;
|
||||
BattleScriptCall(BattleScript_FriskMsg);
|
||||
}
|
||||
else
|
||||
{
|
||||
gBattleStruct->friskedAbility = TRUE;
|
||||
gBattlescriptCurrInstr = BattleScript_FriskMsgWithPopup;
|
||||
BattleScriptCall(BattleScript_FriskMsgWithPopup);
|
||||
}
|
||||
return;
|
||||
}
|
||||
@ -10624,8 +10554,7 @@ static void Cmd_various(void)
|
||||
{
|
||||
SET_STATCHANGER(STAT_SPATK, 1, FALSE);
|
||||
PREPARE_STAT_BUFFER(gBattleTextBuff1, STAT_SPATK);
|
||||
BattleScriptPushCursor();
|
||||
gBattlescriptCurrInstr = BattleScript_ScriptingAbilityStatRaise;
|
||||
BattleScriptCall(BattleScript_ScriptingAbilityStatRaise);
|
||||
return;
|
||||
}
|
||||
}
|
||||
@ -11172,8 +11101,7 @@ static void Cmd_various(void)
|
||||
VARIOUS_ARGS(const u8 *failInstr);
|
||||
if (GetBattlerHoldEffect(battler, TRUE) == HOLD_EFFECT_ROOM_SERVICE && TryRoomService(battler))
|
||||
{
|
||||
BattleScriptPushCursor();
|
||||
gBattlescriptCurrInstr = BattleScript_ConsumableStatRaiseRet;
|
||||
BattleScriptCall(BattleScript_ConsumableStatRaiseRet);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -14351,50 +14279,43 @@ static void Cmd_rapidspinfree(void)
|
||||
gBattleMons[gBattlerAttacker].status2 &= ~STATUS2_WRAPPED;
|
||||
gBattlerTarget = gBattleStruct->wrappedBy[gBattlerAttacker];
|
||||
PREPARE_MOVE_BUFFER(gBattleTextBuff1, gBattleStruct->wrappedMove[gBattlerAttacker]);
|
||||
BattleScriptPushCursor();
|
||||
gBattlescriptCurrInstr = BattleScript_WrapFree;
|
||||
BattleScriptCall(BattleScript_WrapFree);
|
||||
}
|
||||
else if (gStatuses3[gBattlerAttacker] & STATUS3_LEECHSEED)
|
||||
{
|
||||
gStatuses3[gBattlerAttacker] &= ~STATUS3_LEECHSEED;
|
||||
gStatuses3[gBattlerAttacker] &= ~STATUS3_LEECHSEED_BATTLER;
|
||||
BattleScriptPushCursor();
|
||||
gBattlescriptCurrInstr = BattleScript_LeechSeedFree;
|
||||
BattleScriptCall(BattleScript_LeechSeedFree);
|
||||
}
|
||||
else if (gSideStatuses[atkSide] & SIDE_STATUS_SPIKES)
|
||||
{
|
||||
gSideStatuses[atkSide] &= ~SIDE_STATUS_SPIKES;
|
||||
gSideTimers[atkSide].spikesAmount = 0;
|
||||
BattleScriptPushCursor();
|
||||
gBattlescriptCurrInstr = BattleScript_SpikesFree;
|
||||
BattleScriptCall(BattleScript_SpikesFree);
|
||||
}
|
||||
else if (gSideStatuses[atkSide] & SIDE_STATUS_TOXIC_SPIKES)
|
||||
{
|
||||
gSideStatuses[atkSide] &= ~SIDE_STATUS_TOXIC_SPIKES;
|
||||
gSideTimers[atkSide].toxicSpikesAmount = 0;
|
||||
BattleScriptPushCursor();
|
||||
gBattlescriptCurrInstr = BattleScript_ToxicSpikesFree;
|
||||
BattleScriptCall(BattleScript_ToxicSpikesFree);
|
||||
}
|
||||
else if (gSideStatuses[atkSide] & SIDE_STATUS_STICKY_WEB)
|
||||
{
|
||||
gSideStatuses[atkSide] &= ~SIDE_STATUS_STICKY_WEB;
|
||||
gSideTimers[atkSide].stickyWebAmount = 0;
|
||||
BattleScriptPushCursor();
|
||||
gBattlescriptCurrInstr = BattleScript_StickyWebFree;
|
||||
BattleScriptCall(BattleScript_StickyWebFree);
|
||||
}
|
||||
else if (gSideStatuses[atkSide] & SIDE_STATUS_STEALTH_ROCK)
|
||||
{
|
||||
gSideStatuses[atkSide] &= ~SIDE_STATUS_STEALTH_ROCK;
|
||||
gSideTimers[atkSide].stealthRockAmount = 0;
|
||||
BattleScriptPushCursor();
|
||||
gBattlescriptCurrInstr = BattleScript_StealthRockFree;
|
||||
BattleScriptCall(BattleScript_StealthRockFree);
|
||||
}
|
||||
else if (gSideStatuses[atkSide] & SIDE_STATUS_STEELSURGE)
|
||||
{
|
||||
gSideStatuses[atkSide] &= ~SIDE_STATUS_STEELSURGE;
|
||||
gSideTimers[atkSide].steelsurgeAmount = 0;
|
||||
BattleScriptPushCursor();
|
||||
gBattlescriptCurrInstr = BattleScript_SteelsurgeFree;
|
||||
BattleScriptCall(BattleScript_SteelsurgeFree);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -16686,15 +16607,13 @@ void BS_DoStockpileStatChangesWearOff(void)
|
||||
{
|
||||
SET_STATCHANGER(STAT_DEF, abs(gDisableStructs[battler].stockpileDef), TRUE);
|
||||
gDisableStructs[battler].stockpileDef = 0;
|
||||
BattleScriptPushCursor();
|
||||
gBattlescriptCurrInstr = cmd->statChangeInstr;
|
||||
BattleScriptCall(cmd->statChangeInstr);
|
||||
}
|
||||
else if (gDisableStructs[battler].stockpileSpDef)
|
||||
{
|
||||
SET_STATCHANGER(STAT_SPDEF, abs(gDisableStructs[battler].stockpileSpDef), TRUE);
|
||||
gDisableStructs[battler].stockpileSpDef = 0;
|
||||
BattleScriptPushCursor();
|
||||
gBattlescriptCurrInstr = cmd->statChangeInstr;
|
||||
BattleScriptCall(cmd->statChangeInstr);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -16857,8 +16776,7 @@ void BS_TrySymbiosis(void)
|
||||
gLastUsedAbility = gBattleMons[partner].ability;
|
||||
gBattleScripting.battler = gBattlerAbility = partner;
|
||||
gEffectBattler = battler;
|
||||
BattleScriptPushCursor();
|
||||
gBattlescriptCurrInstr = BattleScript_SymbiosisActivates;
|
||||
BattleScriptCall(BattleScript_SymbiosisActivates);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -17841,14 +17759,12 @@ void BS_TryActivateGulpMissile(void)
|
||||
switch(gBattleMons[gBattlerTarget].species)
|
||||
{
|
||||
case SPECIES_CRAMORANT_GORGING:
|
||||
BattleScriptPushCursor();
|
||||
TryBattleFormChange(gBattlerTarget, FORM_CHANGE_HIT_BY_MOVE);
|
||||
gBattlescriptCurrInstr = BattleScript_GulpMissileGorging;
|
||||
BattleScriptCall(BattleScript_GulpMissileGorging);
|
||||
return;
|
||||
case SPECIES_CRAMORANT_GULPING:
|
||||
BattleScriptPushCursor();
|
||||
TryBattleFormChange(gBattlerTarget, FORM_CHANGE_HIT_BY_MOVE);
|
||||
gBattlescriptCurrInstr = BattleScript_GulpMissileGulping;
|
||||
BattleScriptCall(BattleScript_GulpMissileGulping);
|
||||
return;
|
||||
}
|
||||
}
|
||||
@ -18306,8 +18222,7 @@ void BS_SpectralThiefPrintStats(void)
|
||||
stat,
|
||||
MOVE_EFFECT_CERTAIN | MOVE_EFFECT_AFFECTS_USER, NULL) == STAT_CHANGE_WORKED)
|
||||
{
|
||||
BattleScriptPushCursor();
|
||||
gBattlescriptCurrInstr = BattleScript_StatUpMsg;
|
||||
BattleScriptCall(BattleScript_StatUpMsg);
|
||||
return;
|
||||
}
|
||||
}
|
||||
@ -18688,8 +18603,7 @@ void BS_TryIntimidatEjectpack(void)
|
||||
gBattleScripting.battler = affectedBattler;
|
||||
gLastUsedItem = gBattleMons[affectedBattler].item;
|
||||
RecordItemEffectBattle(affectedBattler, HOLD_EFFECT_EJECT_PACK);
|
||||
BattleScriptPushCursor();
|
||||
gBattlescriptCurrInstr = BattleScript_EjectPackActivate_Ret;
|
||||
BattleScriptCall(BattleScript_EjectPackActivate_Ret);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -141,9 +141,8 @@ u32 BattlePalace_TryEscapeStatus(u8 battler)
|
||||
// Wake up from Uproar
|
||||
gBattleMons[battler].status1 &= ~(STATUS1_SLEEP);
|
||||
gBattleMons[battler].status2 &= ~(STATUS2_NIGHTMARE);
|
||||
BattleScriptPushCursor();
|
||||
gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_WOKE_UP_UPROAR;
|
||||
gBattlescriptCurrInstr = BattleScript_MoveUsedWokeUp;
|
||||
BattleScriptCall(BattleScript_MoveUsedWokeUp);
|
||||
effect = 2;
|
||||
}
|
||||
else
|
||||
@ -171,9 +170,8 @@ u32 BattlePalace_TryEscapeStatus(u8 battler)
|
||||
{
|
||||
// Wake up
|
||||
gBattleMons[battler].status2 &= ~(STATUS2_NIGHTMARE);
|
||||
BattleScriptPushCursor();
|
||||
gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_WOKE_UP;
|
||||
gBattlescriptCurrInstr = BattleScript_MoveUsedWokeUp;
|
||||
BattleScriptCall(BattleScript_MoveUsedWokeUp);
|
||||
effect = 2;
|
||||
}
|
||||
}
|
||||
@ -192,8 +190,7 @@ u32 BattlePalace_TryEscapeStatus(u8 battler)
|
||||
{
|
||||
// Unfreeze
|
||||
gBattleMons[battler].status1 &= ~(STATUS1_FREEZE);
|
||||
BattleScriptPushCursor();
|
||||
gBattlescriptCurrInstr = BattleScript_MoveUsedUnfroze;
|
||||
BattleScriptCall(BattleScript_MoveUsedUnfroze);
|
||||
gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_DEFROSTED;
|
||||
}
|
||||
effect = 2;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user