Fix up end turn scripts plus small documentation (#7758)
This commit is contained in:
parent
9c3fe4c4af
commit
e92598e9e8
@ -4902,7 +4902,7 @@ BattleScript_IceBodyHeal::
|
||||
datahpupdate BS_ATTACKER
|
||||
printstring STRINGID_ICEBODYHPGAIN
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
end3
|
||||
end2
|
||||
|
||||
BattleScript_OverworldStatusStarts::
|
||||
printfromtable gStartingStatusStringIds
|
||||
@ -5918,7 +5918,7 @@ BattleScript_PowerConstruct::
|
||||
handleformchange BS_SCRIPTING, 2
|
||||
printstring STRINGID_POWERCONSTRUCTTRANSFORM
|
||||
waitmessage B_WAIT_TIME_SHORT
|
||||
end3
|
||||
end2
|
||||
|
||||
BattleScript_UltraBurst::
|
||||
flushtextbox
|
||||
@ -5956,7 +5956,11 @@ BattleScript_BattlerFormChangeEnd3::
|
||||
|
||||
BattleScript_BattlerFormChangeEnd3NoPopup::
|
||||
call BattleScript_BattlerFormChangeNoPopup
|
||||
end3
|
||||
end2
|
||||
|
||||
BattleScript_BattlerFormChangeEnd2::
|
||||
call BattleScript_BattlerFormChange
|
||||
end2
|
||||
|
||||
BattleScript_BattlerFormChangeWithStringEnd3::
|
||||
pause 5
|
||||
@ -5987,7 +5991,7 @@ BattleScript_BallFetch::
|
||||
call BattleScript_AbilityPopUp
|
||||
printstring STRINGID_FETCHEDPOKEBALL
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
end3
|
||||
end2
|
||||
|
||||
BattleScript_CudChewActivates::
|
||||
pause B_WAIT_TIME_SHORTEST
|
||||
@ -5995,7 +5999,7 @@ BattleScript_CudChewActivates::
|
||||
setbyte sBERRY_OVERRIDE, 1 @ override the requirements for eating berries
|
||||
consumeberry BS_ATTACKER, FALSE
|
||||
setbyte sBERRY_OVERRIDE, 0
|
||||
end3
|
||||
end2
|
||||
|
||||
BattleScript_ApplyDisguiseFormChangeHPLoss::
|
||||
jumpifgenconfiglowerthan GEN_CONFIG_DISGUISE_HP_LOSS, GEN_8, BattleScript_ApplyDisguiseFormChangeHPLossReturn
|
||||
@ -6564,7 +6568,7 @@ BattleScript_MoodyLower:
|
||||
printfromtable gStatDownStringIds
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
BattleScript_MoodyEnd:
|
||||
end3
|
||||
end2
|
||||
|
||||
BattleScript_EmergencyExit::
|
||||
pause 5
|
||||
@ -6655,7 +6659,7 @@ BattleScript_AbilityHpHeal:
|
||||
|
||||
BattleScript_RainDishActivates::
|
||||
call BattleScript_AbilityHpHeal
|
||||
end3
|
||||
end2
|
||||
|
||||
BattleScript_CheekPouchActivates::
|
||||
copybyte sSAVED_BATTLER, gBattlerAttacker
|
||||
@ -6672,7 +6676,7 @@ BattleScript_PickupActivates::
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
tryrestorehpberry
|
||||
BattleScript_PickupActivatesEnd:
|
||||
end3
|
||||
end2
|
||||
|
||||
BattleScript_HarvestActivates::
|
||||
pause 5
|
||||
@ -6682,7 +6686,7 @@ BattleScript_HarvestActivates::
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
tryrestorehpberry
|
||||
BattleScript_HarvestActivatesEnd:
|
||||
end3
|
||||
end2
|
||||
|
||||
BattleScript_SolarPowerActivates::
|
||||
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_HP_UPDATE
|
||||
@ -6692,7 +6696,7 @@ BattleScript_SolarPowerActivates::
|
||||
printstring STRINGID_SOLARPOWERHPDROP
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
tryfaintmon BS_ATTACKER
|
||||
end3
|
||||
end2
|
||||
|
||||
BattleScript_HealerActivates::
|
||||
call BattleScript_AbilityPopUp
|
||||
@ -6700,7 +6704,7 @@ BattleScript_HealerActivates::
|
||||
updatestatusicon BS_SCRIPTING
|
||||
printstring STRINGID_HEALERCURE
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
end3
|
||||
end2
|
||||
|
||||
BattleScript_SandstreamActivates::
|
||||
pause B_WAIT_TIME_SHORT
|
||||
@ -6725,7 +6729,7 @@ BattleScript_ShedSkinActivates::
|
||||
printstring STRINGID_PKMNSXCUREDYPROBLEM
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
updatestatusicon BS_ATTACKER
|
||||
end3
|
||||
end2
|
||||
|
||||
BattleScript_ActivateWeatherAbilities:
|
||||
saveattacker
|
||||
@ -7089,7 +7093,7 @@ BattleScript_BadDreamsIncrement:
|
||||
destroyabilitypopup
|
||||
pause 15
|
||||
BattleScript_BadDreamsEnd:
|
||||
end3
|
||||
end2
|
||||
BattleScript_BadDreams_ShowPopUp:
|
||||
copybyte gBattlerAbility, gBattlerAttacker
|
||||
call BattleScript_AbilityPopUp
|
||||
@ -7423,6 +7427,11 @@ BattleScript_AttackerAbilityStatRaiseEnd3::
|
||||
restoreattacker
|
||||
end3
|
||||
|
||||
BattleScript_AttackerAbilityStatRaiseEnd2::
|
||||
call BattleScript_AttackerAbilityStatRaise
|
||||
restoreattacker
|
||||
end2
|
||||
|
||||
BattleScript_SwitchInAbilityMsg::
|
||||
call BattleScript_AbilityPopUp
|
||||
printfromtable gSwitchInAbilityStringIds
|
||||
|
||||
@ -277,6 +277,7 @@ extern const u8 BattleScript_MoveStatDrain[];
|
||||
extern const u8 BattleScript_TargetsStatWasMaxedOut[];
|
||||
extern const u8 BattleScript_AttackerAbilityStatRaise[];
|
||||
extern const u8 BattleScript_AttackerAbilityStatRaiseEnd3[];
|
||||
extern const u8 BattleScript_AttackerAbilityStatRaiseEnd2[];
|
||||
extern const u8 BattleScript_PoisonHealActivates[];
|
||||
extern const u8 BattleScript_BadDreamsActivates[];
|
||||
extern const u8 BattleScript_SwitchInAbilityMsg[];
|
||||
@ -365,6 +366,7 @@ extern const u8 BattleScript_IllusionOffAndTerastallization[];
|
||||
extern const u8 BattleScript_DancerActivates[];
|
||||
extern const u8 BattleScript_AftermathDmg[];
|
||||
extern const u8 BattleScript_BattlerFormChange[];
|
||||
extern const u8 BattleScript_BattlerFormChangeEnd2[];
|
||||
extern const u8 BattleScript_BattlerFormChangeEnd3[];
|
||||
extern const u8 BattleScript_AttackerFormChangeWithString[];
|
||||
extern const u8 BattleScript_BattlerFormChangeWithStringEnd3[];
|
||||
|
||||
@ -1530,6 +1530,19 @@ static bool32 HandleEndTurnDynamax(u32 battler)
|
||||
return effect;
|
||||
}
|
||||
|
||||
/*
|
||||
* Various end turn effects that happen after all battlers moved.
|
||||
* Each Case will apply the effects for each battler. Moving to the next case when all battlers are done.
|
||||
* If an effect is going to be applied on a better, the bool effect will be set to TRUE and a script set.
|
||||
* The script is set with `BattleScriptExecute` and should have the ending `end2`
|
||||
Example:
|
||||
BattleScriptExecute(BattleScript_X);
|
||||
|
||||
(in battle_scripts_1.s)
|
||||
BattleScript_X:
|
||||
some commands
|
||||
end2
|
||||
*/
|
||||
static bool32 (*const sEndTurnEffectHandlers[])(u32 battler) =
|
||||
{
|
||||
[ENDTURN_ORDER] = HandleEndTurnOrder,
|
||||
|
||||
@ -4509,7 +4509,7 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32
|
||||
{
|
||||
gBattlerTarget = RandomUniformExcept(RNG_PICKUP, 0, gBattlersCount - 1, CantPickupItem);
|
||||
gLastUsedItem = GetUsedHeldItem(gBattlerTarget);
|
||||
BattleScriptPushCursorAndCallback(BattleScript_PickupActivates);
|
||||
BattleScriptExecute(BattleScript_PickupActivates);
|
||||
effect++;
|
||||
}
|
||||
break;
|
||||
@ -4520,7 +4520,7 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32
|
||||
&& GetItemPocket(GetUsedHeldItem(battler)) == POCKET_BERRIES)
|
||||
{
|
||||
gLastUsedItem = GetUsedHeldItem(battler);
|
||||
BattleScriptPushCursorAndCallback(BattleScript_HarvestActivates);
|
||||
BattleScriptExecute(BattleScript_HarvestActivates);
|
||||
effect++;
|
||||
}
|
||||
break;
|
||||
@ -4531,7 +4531,7 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32
|
||||
&& gBattleMons[battler].volatiles.semiInvulnerable != STATE_UNDERWATER
|
||||
&& !gBattleMons[battler].volatiles.healBlock)
|
||||
{
|
||||
BattleScriptPushCursorAndCallback(BattleScript_IceBodyHeal);
|
||||
BattleScriptExecute(BattleScript_IceBodyHeal);
|
||||
gBattleStruct->moveDamage[battler] = GetNonDynamaxMaxHP(battler) / 16;
|
||||
if (gBattleStruct->moveDamage[battler] == 0)
|
||||
gBattleStruct->moveDamage[battler] = 1;
|
||||
@ -4548,7 +4548,7 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32
|
||||
&& !IsBattlerAtMaxHp(battler)
|
||||
&& !gBattleMons[battler].volatiles.healBlock)
|
||||
{
|
||||
BattleScriptPushCursorAndCallback(BattleScript_RainDishActivates);
|
||||
BattleScriptExecute(BattleScript_RainDishActivates);
|
||||
gBattleStruct->moveDamage[battler] = GetNonDynamaxMaxHP(battler) / (gLastUsedAbility == ABILITY_RAIN_DISH ? 16 : 8);
|
||||
if (gBattleStruct->moveDamage[battler] == 0)
|
||||
gBattleStruct->moveDamage[battler] = 1;
|
||||
@ -4586,7 +4586,7 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32
|
||||
gBattleMons[battler].status1 = 0;
|
||||
gBattleMons[battler].volatiles.nightmare = FALSE;
|
||||
gBattleScripting.battler = battler;
|
||||
BattleScriptPushCursorAndCallback(BattleScript_ShedSkinActivates);
|
||||
BattleScriptExecute(BattleScript_ShedSkinActivates);
|
||||
BtlController_EmitSetMonData(battler, B_COMM_TO_CONTROLLER, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[battler].status1);
|
||||
MarkBattlerForControllerExec(battler);
|
||||
effect++;
|
||||
@ -4597,7 +4597,7 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32
|
||||
{
|
||||
SaveBattlerAttacker(gBattlerAttacker);
|
||||
SET_STATCHANGER(STAT_SPEED, 1, FALSE);
|
||||
BattleScriptPushCursorAndCallback(BattleScript_AttackerAbilityStatRaiseEnd3);
|
||||
BattleScriptExecute(BattleScript_AttackerAbilityStatRaiseEnd2);
|
||||
gBattleScripting.battler = battler;
|
||||
effect++;
|
||||
}
|
||||
@ -4629,7 +4629,7 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32
|
||||
i = RandomUniformExcept(RNG_MOODY_DECREASE, STAT_ATK, statsNum - 1, MoodyCantLowerStat);
|
||||
SET_STATCHANGER2(gBattleScripting.savedStatChanger, i, 1, TRUE);
|
||||
}
|
||||
BattleScriptPushCursorAndCallback(BattleScript_MoodyActivates);
|
||||
BattleScriptExecute(BattleScript_MoodyActivates);
|
||||
effect++;
|
||||
}
|
||||
break;
|
||||
@ -4644,14 +4644,14 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32
|
||||
}
|
||||
break;
|
||||
case ABILITY_BAD_DREAMS:
|
||||
BattleScriptPushCursorAndCallback(BattleScript_BadDreamsActivates);
|
||||
BattleScriptExecute(BattleScript_BadDreamsActivates);
|
||||
effect++;
|
||||
break;
|
||||
case ABILITY_SOLAR_POWER:
|
||||
if (IsBattlerWeatherAffected(battler, B_WEATHER_SUN))
|
||||
{
|
||||
SOLAR_POWER_HP_DROP:
|
||||
BattleScriptPushCursorAndCallback(BattleScript_SolarPowerActivates);
|
||||
BattleScriptExecute(BattleScript_SolarPowerActivates);
|
||||
gBattleStruct->moveDamage[battler] = GetNonDynamaxMaxHP(battler) / 8;
|
||||
if (gBattleStruct->moveDamage[battler] == 0)
|
||||
gBattleStruct->moveDamage[battler] = 1;
|
||||
@ -4664,7 +4664,7 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32
|
||||
&& gBattleMons[gBattleScripting.battler].status1 & STATUS1_ANY
|
||||
&& RandomPercentage(RNG_HEALER, 30))
|
||||
{
|
||||
BattleScriptPushCursorAndCallback(BattleScript_HealerActivates);
|
||||
BattleScriptExecute(BattleScript_HealerActivates);
|
||||
effect++;
|
||||
}
|
||||
break;
|
||||
@ -4677,7 +4677,7 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32
|
||||
if (TryBattleFormChange(battler, FORM_CHANGE_BATTLE_HP_PERCENT))
|
||||
{
|
||||
gBattleScripting.battler = battler;
|
||||
BattleScriptPushCursorAndCallback(BattleScript_BattlerFormChangeEnd3);
|
||||
BattleScriptExecute(BattleScript_BattlerFormChangeEnd2);
|
||||
effect++;
|
||||
}
|
||||
break;
|
||||
@ -4685,7 +4685,7 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32
|
||||
if (TryBattleFormChange(battler, FORM_CHANGE_BATTLE_HP_PERCENT))
|
||||
{
|
||||
gBattleScripting.battler = battler;
|
||||
BattleScriptPushCursorAndCallback(BattleScript_PowerConstruct);
|
||||
BattleScriptExecute(BattleScript_PowerConstruct);
|
||||
effect++;
|
||||
}
|
||||
break;
|
||||
@ -4699,7 +4699,7 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32
|
||||
MarkBattlerForControllerExec(battler);
|
||||
gHasFetchedBall = TRUE;
|
||||
gLastUsedItem = gLastUsedBall;
|
||||
BattleScriptPushCursorAndCallback(BattleScript_BallFetch);
|
||||
BattleScriptExecute(BattleScript_BallFetch);
|
||||
effect++;
|
||||
}
|
||||
break;
|
||||
@ -4709,7 +4709,7 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32
|
||||
&& TryBattleFormChange(battler, FORM_CHANGE_BATTLE_TURN_END))
|
||||
{
|
||||
gBattleScripting.battler = battler;
|
||||
BattleScriptPushCursorAndCallback(BattleScript_BattlerFormChangeEnd3NoPopup);
|
||||
BattleScriptExecute(BattleScript_BattlerFormChangeEnd3NoPopup);
|
||||
effect++;
|
||||
}
|
||||
break;
|
||||
@ -4720,7 +4720,7 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32
|
||||
gDisableStructs[battler].cudChew = FALSE;
|
||||
gLastUsedItem = gBattleStruct->usedHeldItems[gBattlerPartyIndexes[battler]][GetBattlerSide(battler)];
|
||||
gBattleStruct->usedHeldItems[gBattlerPartyIndexes[battler]][GetBattlerSide(battler)] = ITEM_NONE;
|
||||
BattleScriptPushCursorAndCallback(BattleScript_CudChewActivates);
|
||||
BattleScriptExecute(BattleScript_CudChewActivates);
|
||||
effect++;
|
||||
}
|
||||
else if (!gDisableStructs[battler].cudChew && GetItemPocket(GetUsedHeldItem(battler)) == POCKET_BERRIES)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user