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

90 lines
3.4 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_NEQ, BTLVAR_SIDE_EFFECT_TYPE, SIDE_EFFECT_TYPE_HELD_ITEM, _022
CheckAbility CHECK_HAVE, BTLSCR_SIDE_EFFECT_MON, ABILITY_OWN_TEMPO, _100
CompareMonDataToValue OPCODE_FLAG_SET, BTLSCR_SIDE_EFFECT_MON, BATTLEMON_VOLATILE_STATUS, VOLATILE_CONDITION_CONFUSION, _100
CompareVarToValue OPCODE_FLAG_SET, BTLVAR_SIDE_CONDITIONS_EFFECT_MON, SIDE_CONDITION_SAFEGUARD, _100
GoTo _076
_022:
CheckIgnorableAbility CHECK_HAVE, BTLSCR_SIDE_EFFECT_MON, ABILITY_OWN_TEMPO, _141
CompareVarToValue OPCODE_EQU, BTLVAR_SIDE_EFFECT_TYPE, SIDE_EFFECT_TYPE_MOVE_EFFECT, _076
CompareVarToValue OPCODE_NEQ, BTLVAR_SIDE_EFFECT_TYPE, SIDE_EFFECT_TYPE_INDIRECT, _042
CheckIgnorableAbility CHECK_HAVE, BTLSCR_SIDE_EFFECT_MON, ABILITY_SHIELD_DUST, _101
_042:
CompareVarToValue OPCODE_NEQ, BTLVAR_SIDE_EFFECT_TYPE, SIDE_EFFECT_TYPE_DIRECT, _049
PrintAttackMessage
Wait
_049:
CheckSubstitute BTLSCR_SIDE_EFFECT_MON, _101
CompareMonDataToValue OPCODE_FLAG_SET, BTLSCR_SIDE_EFFECT_MON, BATTLEMON_VOLATILE_STATUS, VOLATILE_CONDITION_CONFUSION, _128
CompareVarToValue OPCODE_FLAG_SET, BTLVAR_MOVE_STATUS_FLAGS, MOVE_STATUS_MISSED|MOVE_STATUS_SEMI_INVULNERABLE, _101
CompareVarToValue OPCODE_FLAG_SET, BTLVAR_SIDE_CONDITIONS_EFFECT_MON, SIDE_CONDITION_SAFEGUARD, _167
CompareVarToValue OPCODE_NEQ, BTLVAR_SIDE_EFFECT_TYPE, SIDE_EFFECT_TYPE_DIRECT, _076
PlayMoveAnimation BTLSCR_ATTACKER
Wait
_076:
PlayBattleAnimation BTLSCR_SIDE_EFFECT_MON, BATTLE_ANIMATION_CONFUSED
Wait
Random 3, 2
UpdateMonDataFromVar OPCODE_FLAG_ON, BTLSCR_SIDE_EFFECT_MON, BATTLEMON_VOLATILE_STATUS, BTLVAR_CALC_TEMP
CompareVarToValue OPCODE_EQU, BTLVAR_SIDE_EFFECT_TYPE, SIDE_EFFECT_TYPE_MOVE_EFFECT, _185
// {0} became confused!
PrintMessage pl_msg_00000368_00156, TAG_NICKNAME, BTLSCR_SIDE_EFFECT_MON
Wait
WaitButtonABTime 30
_100:
End
_101:
CompareVarToValue OPCODE_EQU, BTLVAR_SIDE_EFFECT_TYPE, SIDE_EFFECT_TYPE_INDIRECT, _185
WaitButtonABTime 30
GetCurrentMoveData MOVEATTRIBUTE_RANGE
CompareVarToValue OPCODE_EQU, BTLVAR_CALC_TEMP, 0x00000004, _124
CompareVarToValue OPCODE_EQU, BTLVAR_CALC_TEMP, 0x00000008, _124
Call BATTLE_SUBSCRIPT_BUT_IT_FAILED
GoTo _185
_124:
Call BATTLE_SUBSCRIPT_MOVE_FAIL_MISSED
GoTo _185
_128:
CompareVarToValue OPCODE_EQU, BTLVAR_SIDE_EFFECT_TYPE, SIDE_EFFECT_TYPE_INDIRECT, _185
WaitButtonABTime 30
// {0} is already confused!
PrintMessage pl_msg_00000368_00159, TAG_NICKNAME, BTLSCR_SIDE_EFFECT_MON
GoTo _178
_141:
CompareVarToValue OPCODE_EQU, BTLVAR_SIDE_EFFECT_TYPE, SIDE_EFFECT_TYPE_INDIRECT, _185
CompareVarToValue OPCODE_EQU, BTLVAR_SIDE_EFFECT_TYPE, SIDE_EFFECT_TYPE_HELD_ITEM, _185
CompareVarToValue OPCODE_EQU, BTLVAR_SIDE_EFFECT_TYPE, SIDE_EFFECT_TYPE_MOVE_EFFECT, _185
PrintAttackMessage
Wait
WaitButtonABTime 30
// {0}s {1} prevents confusion!
PrintMessage pl_msg_00000368_00653, TAG_NICKNAME_ABILITY, BTLSCR_SIDE_EFFECT_MON, BTLSCR_SIDE_EFFECT_MON
GoTo _178
_167:
CompareVarToValue OPCODE_EQU, BTLVAR_SIDE_EFFECT_TYPE, SIDE_EFFECT_TYPE_INDIRECT, _185
WaitButtonABTime 30
// {0} is protected by Safeguard!
PrintMessage pl_msg_00000368_00200, TAG_NICKNAME, BTLSCR_SIDE_EFFECT_MON
_178:
Wait
WaitButtonABTime 30
UpdateVar OPCODE_FLAG_ON, BTLVAR_MOVE_STATUS_FLAGS, MOVE_STATUS_NO_MORE_WORK
_185:
End