pokeplatinum/res/battle/scripts/subscripts/subscript_fall_asleep.s
2024-07-16 12:01:40 -07:00

154 lines
6.2 KiB
ArmAsm
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#include "macros/btlcmd.inc"
.data
_000:
CompareVarToValue OPCODE_EQU, BTLVAR_SIDE_EFFECT_TYPE, SIDE_EFFECT_TYPE_DISOBEDIENCE, _147
CompareVarToValue OPCODE_NEQ, BTLVAR_SIDE_EFFECT_TYPE, SIDE_EFFECT_TYPE_MOVE_EFFECT, _055
CheckAbility CHECK_HAVE, BTLSCR_SIDE_EFFECT_MON, ABILITY_INSOMNIA, _202
CheckAbility CHECK_HAVE, BTLSCR_SIDE_EFFECT_MON, ABILITY_VITAL_SPIRIT, _202
CheckIgnoreWeather _031
CompareVarToValue OPCODE_FLAG_NOT, BTLVAR_FIELD_CONDITIONS, FIELD_CONDITION_SUNNY, _031
CheckAbility CHECK_HAVE, BTLSCR_SIDE_EFFECT_MON, ABILITY_LEAF_GUARD, _202
_031:
CompareMonDataToValue OPCODE_FLAG_SET, BTLSCR_SIDE_EFFECT_MON, BATTLEMON_STATUS, MON_CONDITION_SLEEP, _274
CheckAbility CHECK_HAVE, BTLSCR_SIDE_EFFECT_MON, ABILITY_SOUNDPROOF, _047
CompareVarToValue OPCODE_FLAG_SET, BTLVAR_FIELD_CONDITIONS, FIELD_CONDITION_UPROAR, _292
_047:
CompareMonDataToValue OPCODE_NEQ, BTLSCR_SIDE_EFFECT_MON, BATTLEMON_STATUS, MON_CONDITION_NONE, _237
GoTo _147
_055:
CheckIgnorableAbility CHECK_HAVE, BTLSCR_SIDE_EFFECT_MON, ABILITY_INSOMNIA, _202
CheckIgnorableAbility CHECK_HAVE, BTLSCR_SIDE_EFFECT_MON, ABILITY_VITAL_SPIRIT, _202
CheckIgnoreWeather _077
CompareVarToValue OPCODE_FLAG_NOT, BTLVAR_FIELD_CONDITIONS, FIELD_CONDITION_SUNNY, _077
CheckIgnorableAbility CHECK_HAVE, BTLSCR_SIDE_EFFECT_MON, ABILITY_LEAF_GUARD, _202
_077:
CompareVarToValue OPCODE_NEQ, BTLVAR_SIDE_EFFECT_TYPE, SIDE_EFFECT_TYPE_INDIRECT, _087
CheckIgnorableAbility CHECK_HAVE, BTLSCR_SIDE_EFFECT_MON, ABILITY_SHIELD_DUST, _237
_087:
CompareVarToValue OPCODE_NEQ, BTLVAR_SIDE_EFFECT_TYPE, SIDE_EFFECT_TYPE_DIRECT, _094
PrintAttackMessage
Wait
_094:
CompareVarToValue OPCODE_EQU, BTLVAR_SIDE_EFFECT_TYPE, SIDE_EFFECT_TYPE_ABILITY, _102
CheckSubstitute BTLSCR_SIDE_EFFECT_MON, _237
_102:
CompareMonDataToValue OPCODE_FLAG_SET, BTLSCR_SIDE_EFFECT_MON, BATTLEMON_STATUS, MON_CONDITION_SLEEP, _274
CheckAbility CHECK_HAVE, BTLSCR_SIDE_EFFECT_MON, ABILITY_SOUNDPROOF, _118
CompareVarToValue OPCODE_FLAG_SET, BTLVAR_FIELD_CONDITIONS, FIELD_CONDITION_UPROAR, _292
_118:
CompareMonDataToValue OPCODE_NEQ, BTLSCR_SIDE_EFFECT_MON, BATTLEMON_STATUS, MON_CONDITION_NONE, _237
CompareVarToValue OPCODE_EQU, BTLVAR_SIDE_EFFECT_TYPE, SIDE_EFFECT_TYPE_ABILITY, _147
CompareVarToValue OPCODE_FLAG_SET, BTLVAR_MOVE_STATUS_FLAGS, MOVE_STATUS_MISSED|MOVE_STATUS_SEMI_INVULNERABLE, _237
CompareVarToValue OPCODE_FLAG_SET, BTLVAR_SIDE_CONDITIONS_EFFECT_MON, SIDE_CONDITION_SAFEGUARD, _319
CompareVarToValue OPCODE_NEQ, BTLVAR_SIDE_EFFECT_TYPE, SIDE_EFFECT_TYPE_DIRECT, _147
PlayMoveAnimation BTLSCR_ATTACKER
Wait
_147:
PlayBattleAnimation BTLSCR_SIDE_EFFECT_MON, BATTLE_ANIMATION_ASLEEP
Wait
Random 3, 2
UpdateMonDataFromVar OPCODE_FLAG_ON, BTLSCR_SIDE_EFFECT_MON, BATTLEMON_STATUS, BTLVAR_CALC_TEMP
CompareVarToValue OPCODE_EQU, BTLVAR_SIDE_EFFECT_TYPE, SIDE_EFFECT_TYPE_ABILITY, _170
// {0} fell asleep!
PrintMessage pl_msg_00000368_00047, TAG_NICKNAME, BTLSCR_SIDE_EFFECT_MON
GoTo _176
_170:
// {0}s {1} made {2} fall asleep!
PrintMessage pl_msg_00000368_00050, TAG_NICKNAME_ABILITY_NICKNAME, BTLSCR_MSG_TEMP, BTLSCR_MSG_BATTLER_TEMP, BTLSCR_SIDE_EFFECT_MON
_176:
Wait
WaitButtonABTime 30
SetHealthbarStatus BTLSCR_SIDE_EFFECT_MON, BATTLE_ANIMATION_ASLEEP
Wait
CompareMonDataToValue OPCODE_FLAG_SET, BTLSCR_SIDE_EFFECT_MON, BATTLEMON_MOVE_EFFECTS_MASK, MOVE_EFFECT_SEMI_INVULNERABLE, _193
UnlockMoveChoice BTLSCR_SIDE_EFFECT_MON
GoTo _201
_193:
UnlockMoveChoice BTLSCR_SIDE_EFFECT_MON
UpdateVarFromVar OPCODE_SET, BTLVAR_MSG_BATTLER_TEMP, BTLVAR_SIDE_EFFECT_MON
Call BATTLE_SUBSCRIPT_VANISH_OFF
_201:
End
_202:
CompareVarToValue OPCODE_EQU, BTLVAR_SIDE_EFFECT_TYPE, SIDE_EFFECT_TYPE_INDIRECT, _337
CompareVarToValue OPCODE_EQU, BTLVAR_SIDE_EFFECT_TYPE, SIDE_EFFECT_TYPE_ABILITY, _337
CompareVarToValue OPCODE_EQU, BTLVAR_SIDE_EFFECT_TYPE, SIDE_EFFECT_TYPE_MOVE_EFFECT, _221
PrintAttackMessage
Wait
WaitButtonABTime 30
_221:
// {0} stayed awake because of its {1}!
PrintMessage pl_msg_00000368_00329, TAG_NICKNAME_ABILITY, BTLSCR_SIDE_EFFECT_MON, BTLSCR_SIDE_EFFECT_MON
GoTo _330
// {0}s {1} suppressed {2}s {3}!
PrintMessage pl_msg_00000368_00727, TAG_NICKNAME_ABILITY_NICKNAME_ABILITY, BTLSCR_SIDE_EFFECT_MON, BTLSCR_SIDE_EFFECT_MON, BTLSCR_MSG_TEMP, BTLSCR_MSG_BATTLER_TEMP
GoTo _330
_237:
CompareVarToValue OPCODE_EQU, BTLVAR_SIDE_EFFECT_TYPE, SIDE_EFFECT_TYPE_INDIRECT, _337
CompareVarToValue OPCODE_EQU, BTLVAR_SIDE_EFFECT_TYPE, SIDE_EFFECT_TYPE_ABILITY, _337
CompareVarToValue OPCODE_EQU, BTLVAR_SIDE_EFFECT_TYPE, SIDE_EFFECT_TYPE_MOVE_EFFECT, _337
WaitButtonABTime 30
GetCurrentMoveData MOVEATTRIBUTE_RANGE
CompareVarToValue OPCODE_EQU, BTLVAR_CALC_TEMP, 0x00000004, _270
CompareVarToValue OPCODE_EQU, BTLVAR_CALC_TEMP, 0x00000008, _270
Call BATTLE_SUBSCRIPT_BUT_IT_FAILED
GoTo _337
_270:
Call BATTLE_SUBSCRIPT_MOVE_FAIL_MISSED
GoTo _337
_274:
CompareVarToValue OPCODE_EQU, BTLVAR_SIDE_EFFECT_TYPE, SIDE_EFFECT_TYPE_INDIRECT, _337
CompareVarToValue OPCODE_EQU, BTLVAR_SIDE_EFFECT_TYPE, SIDE_EFFECT_TYPE_ABILITY, _337
WaitButtonABTime 30
// {0} is already asleep!
PrintMessage pl_msg_00000368_00057, TAG_NICKNAME, BTLSCR_SIDE_EFFECT_MON
GoTo _330
_292:
CompareVarToValue OPCODE_EQU, BTLVAR_SIDE_EFFECT_TYPE, SIDE_EFFECT_TYPE_INDIRECT, _337
CompareMonDataToValue OPCODE_FLAG_SET, BTLSCR_SIDE_EFFECT_MON, BATTLEMON_VOLATILE_STATUS, VOLATILE_CONDITION_UPROAR, _311
WaitButtonABTime 30
// But the uproar kept {0} awake!
PrintMessage pl_msg_00000368_00326, TAG_NICKNAME, BTLSCR_SIDE_EFFECT_MON
GoTo _330
_311:
WaitButtonABTime 30
// But {0} cant sleep in an uproar!
PrintMessage pl_msg_00000368_00323, TAG_NICKNAME, BTLSCR_SIDE_EFFECT_MON
GoTo _330
_319:
CompareVarToValue OPCODE_EQU, BTLVAR_SIDE_EFFECT_TYPE, SIDE_EFFECT_TYPE_INDIRECT, _337
WaitButtonABTime 30
// {0} is protected by Safeguard!
PrintMessage pl_msg_00000368_00200, TAG_NICKNAME, BTLSCR_SIDE_EFFECT_MON
_330:
Wait
WaitButtonABTime 30
UpdateVar OPCODE_FLAG_ON, BTLVAR_MOVE_STATUS_FLAGS, MOVE_STATUS_NO_MORE_WORK
_337:
End