fix electric/misty terrain interactions with yawn/rest failures
This commit is contained in:
parent
aa475ab300
commit
845e333ba1
3 changed files with 24 additions and 5 deletions
|
@ -2118,14 +2118,14 @@ BattleScript_TerrainPreventsEnd2::
|
||||||
waitmessage B_WAIT_TIME_LONG
|
waitmessage B_WAIT_TIME_LONG
|
||||||
end2
|
end2
|
||||||
|
|
||||||
BattleScript_ElectricTerrainPrevents:
|
BattleScript_ElectricTerrainPrevents::
|
||||||
pause B_WAIT_TIME_SHORT
|
pause B_WAIT_TIME_SHORT
|
||||||
printstring STRINGID_ELECTRICTERRAINPREVENTS
|
printstring STRINGID_ELECTRICTERRAINPREVENTS
|
||||||
waitmessage B_WAIT_TIME_LONG
|
waitmessage B_WAIT_TIME_LONG
|
||||||
orhalfword gMoveResultFlags, MOVE_RESULT_FAILED
|
orhalfword gMoveResultFlags, MOVE_RESULT_FAILED
|
||||||
goto BattleScript_MoveEnd
|
goto BattleScript_MoveEnd
|
||||||
|
|
||||||
BattleScript_MistyTerrainPrevents:
|
BattleScript_MistyTerrainPrevents::
|
||||||
pause B_WAIT_TIME_SHORT
|
pause B_WAIT_TIME_SHORT
|
||||||
printstring STRINGID_MISTYTERRAINPREVENTS
|
printstring STRINGID_MISTYTERRAINPREVENTS
|
||||||
waitmessage B_WAIT_TIME_LONG
|
waitmessage B_WAIT_TIME_LONG
|
||||||
|
@ -2698,7 +2698,6 @@ BattleScript_EffectRest::
|
||||||
jumpifability BS_ATTACKER, ABILITY_COMATOSE, BattleScript_RestIsAlreadyAsleep
|
jumpifability BS_ATTACKER, ABILITY_COMATOSE, BattleScript_RestIsAlreadyAsleep
|
||||||
jumpifcantmakeasleep BattleScript_RestCantSleep
|
jumpifcantmakeasleep BattleScript_RestCantSleep
|
||||||
trysetrest BattleScript_AlreadyAtFullHp
|
trysetrest BattleScript_AlreadyAtFullHp
|
||||||
jumpifterrainaffected BS_ATTACKER, (STATUS_FIELD_ELECTRIC_TERRAIN | STATUS_FIELD_MISTY_TERRAIN), BattleScript_ButItFailed
|
|
||||||
pause B_WAIT_TIME_SHORT
|
pause B_WAIT_TIME_SHORT
|
||||||
printfromtable gRestUsedStringIds
|
printfromtable gRestUsedStringIds
|
||||||
waitmessage B_WAIT_TIME_LONG
|
waitmessage B_WAIT_TIME_LONG
|
||||||
|
@ -4593,8 +4592,6 @@ BattleScript_EffectYawn::
|
||||||
jumpifability BS_TARGET, ABILITY_VITAL_SPIRIT, BattleScript_PrintBankAbilityMadeIneffective
|
jumpifability BS_TARGET, ABILITY_VITAL_SPIRIT, BattleScript_PrintBankAbilityMadeIneffective
|
||||||
jumpifability BS_TARGET, ABILITY_INSOMNIA, BattleScript_PrintBankAbilityMadeIneffective
|
jumpifability BS_TARGET, ABILITY_INSOMNIA, BattleScript_PrintBankAbilityMadeIneffective
|
||||||
jumpifability BS_TARGET, ABILITY_COMATOSE, BattleScript_PrintBankAbilityMadeIneffective
|
jumpifability BS_TARGET, ABILITY_COMATOSE, BattleScript_PrintBankAbilityMadeIneffective
|
||||||
jumpifterrainaffected BS_TARGET, STATUS_FIELD_ELECTRIC_TERRAIN, BattleScript_ElectricTerrainPrevents
|
|
||||||
jumpifterrainaffected BS_TARGET, STATUS_FIELD_MISTY_TERRAIN, BattleScript_MistyTerrainPrevents
|
|
||||||
jumpifflowerveil BattleScript_FlowerVeilProtects
|
jumpifflowerveil BattleScript_FlowerVeilProtects
|
||||||
jumpifleafguard BattleScript_LeafGuardProtects
|
jumpifleafguard BattleScript_LeafGuardProtects
|
||||||
jumpifshieldsdown BS_TARGET, BattleScript_LeafGuardProtects
|
jumpifshieldsdown BS_TARGET, BattleScript_LeafGuardProtects
|
||||||
|
|
|
@ -374,5 +374,7 @@ extern const u8 BattleScript_BattlerGotOverItsInfatuation[];
|
||||||
extern const u8 BattleScript_Pickpocket[];
|
extern const u8 BattleScript_Pickpocket[];
|
||||||
extern const u8 BattleScript_StickyBarbTransfer[];
|
extern const u8 BattleScript_StickyBarbTransfer[];
|
||||||
extern const u8 BattleScript_TerrainPreventsEnd2[];
|
extern const u8 BattleScript_TerrainPreventsEnd2[];
|
||||||
|
extern const u8 BattleScript_MistyTerrainPrevents[];
|
||||||
|
extern const u8 BattleScript_ElectricTerrainPrevents[];
|
||||||
|
|
||||||
#endif // GUARD_BATTLE_SCRIPTS_H
|
#endif // GUARD_BATTLE_SCRIPTS_H
|
||||||
|
|
|
@ -8800,6 +8800,14 @@ static void Cmd_trysetrest(void)
|
||||||
{
|
{
|
||||||
gBattlescriptCurrInstr = failJump;
|
gBattlescriptCurrInstr = failJump;
|
||||||
}
|
}
|
||||||
|
else if (IsBattlerTerrainAffected(gBattlerTarget, STATUS_FIELD_ELECTRIC_TERRAIN))
|
||||||
|
{
|
||||||
|
gBattlescriptCurrInstr = BattleScript_ElectricTerrainPrevents;
|
||||||
|
}
|
||||||
|
else if (IsBattlerTerrainAffected(gBattlerTarget, STATUS_FIELD_MISTY_TERRAIN))
|
||||||
|
{
|
||||||
|
gBattlescriptCurrInstr = BattleScript_MistyTerrainPrevents;
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (gBattleMons[gBattlerTarget].status1 & ((u8)(~STATUS1_SLEEP)))
|
if (gBattleMons[gBattlerTarget].status1 & ((u8)(~STATUS1_SLEEP)))
|
||||||
|
@ -11438,6 +11446,18 @@ static void Cmd_setyawn(void)
|
||||||
{
|
{
|
||||||
gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
|
gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
|
||||||
}
|
}
|
||||||
|
else if (IsBattlerTerrainAffected(gBattlerTarget, STATUS_FIELD_ELECTRIC_TERRAIN))
|
||||||
|
{
|
||||||
|
// When Yawn is used while Electric Terrain is set and drowsiness is set from Yawn being used against target in the previous turn:
|
||||||
|
// "But it failed" will display first.
|
||||||
|
gBattlescriptCurrInstr = BattleScript_ElectricTerrainPrevents;
|
||||||
|
}
|
||||||
|
else if (IsBattlerTerrainAffected(gBattlerTarget, STATUS_FIELD_MISTY_TERRAIN))
|
||||||
|
{
|
||||||
|
// When Yawn is used while Misty Terrain is set and drowsiness is set from Yawn being used against target in the previous turn:
|
||||||
|
// "But it failed" will display first.
|
||||||
|
gBattlescriptCurrInstr = BattleScript_MistyTerrainPrevents;
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
gStatuses3[gBattlerTarget] |= STATUS3_YAWN_TURN(2);
|
gStatuses3[gBattlerTarget] |= STATUS3_YAWN_TURN(2);
|
||||||
|
|
Loading…
Reference in a new issue