mirror of
https://github.com/pret/pokeheartgold.git
synced 2026-05-20 02:38:10 -05:00
90 lines
3.6 KiB
ArmAsm
90 lines
3.6 KiB
ArmAsm
.include "macros/btlcmd.inc"
|
||
|
||
.data
|
||
|
||
_000:
|
||
CompareVarToValue OPCODE_NEQ, BSCRIPT_VAR_SIDE_EFFECT_TYPE, SIDE_EFFECT_TYPE_HELD_ITEM, _022
|
||
CheckAbility CHECK_OPCODE_HAVE, BATTLER_CATEGORY_SIDE_EFFECT_MON, ABILITY_OWN_TEMPO, _100
|
||
CompareMonDataToValue OPCODE_FLAG_SET, BATTLER_CATEGORY_SIDE_EFFECT_MON, BMON_DATA_STATUS2, STATUS2_CONFUSION, _100
|
||
CompareVarToValue OPCODE_FLAG_SET, BSCRIPT_VAR_SIDE_CONDITION_STAT_CHANGE, SIDE_CONDITION_SAFEGUARD, _100
|
||
GoTo _076
|
||
|
||
_022:
|
||
CheckIgnorableAbility CHECK_OPCODE_HAVE, BATTLER_CATEGORY_SIDE_EFFECT_MON, ABILITY_OWN_TEMPO, _141
|
||
CompareVarToValue OPCODE_EQU, BSCRIPT_VAR_SIDE_EFFECT_TYPE, SIDE_EFFECT_TYPE_MOVE_EFFECT, _076
|
||
CompareVarToValue OPCODE_NEQ, BSCRIPT_VAR_SIDE_EFFECT_TYPE, SIDE_EFFECT_TYPE_INDIRECT, _042
|
||
CheckIgnorableAbility CHECK_OPCODE_HAVE, BATTLER_CATEGORY_SIDE_EFFECT_MON, ABILITY_SHIELD_DUST, _101
|
||
|
||
_042:
|
||
CompareVarToValue OPCODE_NEQ, BSCRIPT_VAR_SIDE_EFFECT_TYPE, SIDE_EFFECT_TYPE_DIRECT, _049
|
||
PrintAttackMessage
|
||
Wait
|
||
|
||
_049:
|
||
CheckSubstitute BATTLER_CATEGORY_SIDE_EFFECT_MON, _101
|
||
CompareMonDataToValue OPCODE_FLAG_SET, BATTLER_CATEGORY_SIDE_EFFECT_MON, BMON_DATA_STATUS2, STATUS2_CONFUSION, _128
|
||
CompareVarToValue OPCODE_FLAG_SET, BSCRIPT_VAR_MOVE_STATUS_FLAGS, MOVE_STATUS_MISSED|MOVE_STATUS_SEMI_INVULNERABLE, _101
|
||
CompareVarToValue OPCODE_FLAG_SET, BSCRIPT_VAR_SIDE_CONDITION_STAT_CHANGE, SIDE_CONDITION_SAFEGUARD, _167
|
||
CompareVarToValue OPCODE_NEQ, BSCRIPT_VAR_SIDE_EFFECT_TYPE, SIDE_EFFECT_TYPE_DIRECT, _076
|
||
PlayMoveAnimation BATTLER_CATEGORY_ATTACKER
|
||
Wait
|
||
|
||
_076:
|
||
PlayBattleAnimation BATTLER_CATEGORY_SIDE_EFFECT_MON, BATTLE_ANIMATION_CONFUSED
|
||
Wait
|
||
Random 3, 2
|
||
UpdateMonDataFromVar OPCODE_FLAG_ON, BATTLER_CATEGORY_SIDE_EFFECT_MON, BMON_DATA_STATUS2, BSCRIPT_VAR_CALC_TEMP
|
||
CompareVarToValue OPCODE_EQU, BSCRIPT_VAR_SIDE_EFFECT_TYPE, SIDE_EFFECT_TYPE_MOVE_EFFECT, _185
|
||
// {0} became confused!
|
||
PrintMessage msg_0197_00156, TAG_NICKNAME, BATTLER_CATEGORY_SIDE_EFFECT_MON
|
||
Wait
|
||
WaitButtonABTime 30
|
||
|
||
_100:
|
||
End
|
||
|
||
_101:
|
||
CompareVarToValue OPCODE_EQU, BSCRIPT_VAR_SIDE_EFFECT_TYPE, SIDE_EFFECT_TYPE_INDIRECT, _185
|
||
WaitButtonABTime 30
|
||
GetCurrentMoveData MOVE_ATTRIBUTE_RANGE
|
||
CompareVarToValue OPCODE_EQU, BSCRIPT_VAR_CALC_TEMP, 0x00000004, _124
|
||
CompareVarToValue OPCODE_EQU, BSCRIPT_VAR_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, BSCRIPT_VAR_SIDE_EFFECT_TYPE, SIDE_EFFECT_TYPE_INDIRECT, _185
|
||
WaitButtonABTime 30
|
||
// {0} is already confused!
|
||
PrintMessage msg_0197_00159, TAG_NICKNAME, BATTLER_CATEGORY_SIDE_EFFECT_MON
|
||
GoTo _178
|
||
|
||
_141:
|
||
CompareVarToValue OPCODE_EQU, BSCRIPT_VAR_SIDE_EFFECT_TYPE, SIDE_EFFECT_TYPE_INDIRECT, _185
|
||
CompareVarToValue OPCODE_EQU, BSCRIPT_VAR_SIDE_EFFECT_TYPE, SIDE_EFFECT_TYPE_HELD_ITEM, _185
|
||
CompareVarToValue OPCODE_EQU, BSCRIPT_VAR_SIDE_EFFECT_TYPE, SIDE_EFFECT_TYPE_MOVE_EFFECT, _185
|
||
PrintAttackMessage
|
||
Wait
|
||
WaitButtonABTime 30
|
||
// {0}’s {1} prevents confusion!
|
||
PrintMessage msg_0197_00653, TAG_NICKNAME_ABILITY, BATTLER_CATEGORY_SIDE_EFFECT_MON, BATTLER_CATEGORY_SIDE_EFFECT_MON
|
||
GoTo _178
|
||
|
||
_167:
|
||
CompareVarToValue OPCODE_EQU, BSCRIPT_VAR_SIDE_EFFECT_TYPE, SIDE_EFFECT_TYPE_INDIRECT, _185
|
||
WaitButtonABTime 30
|
||
// {0} is protected by Safeguard!
|
||
PrintMessage msg_0197_00200, TAG_NICKNAME, BATTLER_CATEGORY_SIDE_EFFECT_MON
|
||
|
||
_178:
|
||
Wait
|
||
WaitButtonABTime 30
|
||
UpdateVar OPCODE_FLAG_ON, BSCRIPT_VAR_MOVE_STATUS_FLAGS, MOVE_STATUS_NO_MORE_WORK
|
||
|
||
_185:
|
||
End
|