pokeheartgold/files/battledata/script/subscript/subscript_0153_Pursuit.s
2024-03-07 09:23:13 -05:00

121 lines
4.6 KiB
ArmAsm

.include "macros/btlcmd.inc"
.data
_000:
Call BATTLE_SUBSCRIPT_PUSH_ATTACKER_AND_DEFENDER
_001:
TryPursuit _238
UpdateVar OPCODE_SET, BSCRIPT_VAR_POWER_MULTI, 20
CalcCrit
CalcDamage
ApplyTypeEffectiveness
UpdateVar OPCODE_FLAG_OFF, BSCRIPT_VAR_BATTLE_STATUS, BATTLE_STATUS_NO_ATTACK_MESSAGE
UpdateVar OPCODE_FLAG_OFF, BSCRIPT_VAR_BATTLE_STATUS, BATTLE_STATUS_MOVE_ANIMATIONS_OFF
PrintAttackMessage
Wait
CompareVarToValue OPCODE_FLAG_SET, BSCRIPT_VAR_MOVE_STATUS_FLAGS, MOVE_STATUS_DID_NOT_HIT, _154
PlayMoveAnimation BATTLER_CATEGORY_ATTACKER
Wait
CheckSubstitute BATTLER_CATEGORY_DEFENDER, _108
UpdateVarFromVar OPCODE_SET, BSCRIPT_VAR_TEMP_DATA, BSCRIPT_VAR_DAMAGE
UpdateVar OPCODE_MUL, BSCRIPT_VAR_TEMP_DATA, -1
CompareMonDataToVar OPCODE_LTE, BATTLER_CATEGORY_DEFENDER, BMON_DATA_HP, BSCRIPT_VAR_TEMP_DATA, _051
UpdateVarFromVar OPCODE_SET, BSCRIPT_VAR_ATTACKER_SHELL_BELL_DAMAGE_DEALT, BSCRIPT_VAR_DAMAGE
GoTo _060
_051:
UpdateMonDataFromVar OPCODE_GET, BATTLER_CATEGORY_DEFENDER, BMON_DATA_HP, BSCRIPT_VAR_ATTACKER_SHELL_BELL_DAMAGE_DEALT
UpdateVar OPCODE_MUL, BSCRIPT_VAR_ATTACKER_SHELL_BELL_DAMAGE_DEALT, -1
_060:
UpdateVarFromVar OPCODE_SET, BSCRIPT_VAR_HP_CALC, BSCRIPT_VAR_DAMAGE
UpdateVarFromVar OPCODE_SET, BSCRIPT_VAR_PHYSICAL_DAMAGE_TAKEN, BSCRIPT_VAR_DAMAGE
UpdateVarFromVar OPCODE_SET, BSCRIPT_VAR_MSG_BATTLER_TEMP, BSCRIPT_VAR_BATTLER_TARGET
CheckHoldOnWith1HP BATTLER_CATEGORY_MSG_TEMP
Call BATTLE_SUBSCRIPT_UPDATE_HP
Call BATTLE_SUBSCRIPT_CRITICAL_HIT
Call BATTLE_SUBSCRIPT_MOVE_FOLLOWUP_MESSAGE
CompareMonDataToValue OPCODE_EQU, BATTLER_CATEGORY_DEFENDER, BMON_DATA_HP, 0, _166
TriggerAbilityOnHit _090
CallFromVar BSCRIPT_VAR_TEMP_DATA
_090:
TriggerHeldItemOnHit _094
CallFromVar BSCRIPT_VAR_TEMP_DATA
_094:
UpdateVar OPCODE_FLAG_ON, BSCRIPT_VAR_BATTLE_STATUS, BATTLE_STATUS_MOVE_SUCCESSFUL
TriggerHeldItemOnPivotMove _102
CallFromVar BSCRIPT_VAR_TEMP_DATA
_102:
UpdateVar OPCODE_FLAG_OFF, BSCRIPT_VAR_BATTLE_STATUS, BATTLE_STATUS_MOVE_SUCCESSFUL
GoTo _158
_108:
UpdateVarFromVar OPCODE_SET, BSCRIPT_VAR_TEMP_DATA, BSCRIPT_VAR_DAMAGE
UpdateVar OPCODE_MUL, BSCRIPT_VAR_TEMP_DATA, -1
CompareMonDataToVar OPCODE_LTE, BATTLER_CATEGORY_DEFENDER, BMON_DATA_SUBSTITUTE_HP, BSCRIPT_VAR_TEMP_DATA, _128
UpdateVarFromVar OPCODE_SET, BSCRIPT_VAR_ATTACKER_SHELL_BELL_DAMAGE_DEALT, BSCRIPT_VAR_DAMAGE
GoTo _142
_128:
UpdateMonData OPCODE_FLAG_OFF, BATTLER_CATEGORY_DEFENDER, BMON_DATA_STATUS2, STATUS2_SUBSTITUTE
UpdateMonDataFromVar OPCODE_GET, BATTLER_CATEGORY_DEFENDER, BMON_DATA_SUBSTITUTE_HP, BSCRIPT_VAR_ATTACKER_SHELL_BELL_DAMAGE_DEALT
UpdateVar OPCODE_MUL, BSCRIPT_VAR_ATTACKER_SHELL_BELL_DAMAGE_DEALT, -1
_142:
UpdateVarFromVar OPCODE_SET, BSCRIPT_VAR_MSG_BATTLER_TEMP, BSCRIPT_VAR_BATTLER_TARGET
Call BATTLE_SUBSCRIPT_HIT_SUBSTITUTE
Call BATTLE_SUBSCRIPT_CRITICAL_HIT
Call BATTLE_SUBSCRIPT_MOVE_FOLLOWUP_MESSAGE
GoTo _158
_154:
WaitButtonABTime 15
Call BATTLE_SUBSCRIPT_MISSED
_158:
Call BATTLE_SUBSCRIPT_POP_ATTACKER_AND_DEFENDER
UpdateVarFromVar OPCODE_GET, BSCRIPT_VAR_MOVE_NO_TEMP, BSCRIPT_VAR_MOVE_NO_CUR
GoTo _001
_166:
Call BATTLE_SUBSCRIPT_FAINT_CHECK_DESTINY_BOND
TriggerAbilityOnHit _172
CallFromVar BSCRIPT_VAR_TEMP_DATA
_172:
TriggerHeldItemOnHit _176
CallFromVar BSCRIPT_VAR_TEMP_DATA
_176:
UpdateVar OPCODE_FLAG_ON, BSCRIPT_VAR_BATTLE_STATUS, BATTLE_STATUS_MOVE_SUCCESSFUL
TriggerHeldItemOnPivotMove _184
CallFromVar BSCRIPT_VAR_TEMP_DATA
_184:
UpdateVar OPCODE_FLAG_OFF, BSCRIPT_VAR_BATTLE_STATUS, BATTLE_STATUS_MOVE_SUCCESSFUL
UpdateVarFromVar OPCODE_SET, BSCRIPT_VAR_TEMP_DATA, BSCRIPT_VAR_BATTLER_FAINTED
UpdateVar OPCODE_SET, BSCRIPT_VAR_BATTLER_FAINTED, BATTLER_PLAYER
UpdateVarFromVar OPCODE_SET, BSCRIPT_VAR_CALC_TEMP, BSCRIPT_VAR_BATTLE_STATUS_2
UpdateVar OPCODE_RIGHT_SHIFT, BSCRIPT_VAR_CALC_TEMP, 0x0000001C
UpdateVar OPCODE_FLAG_OFF, BSCRIPT_VAR_BATTLE_STATUS_2, BATTLE_STATUS2_EXP_GAIN
_208:
CompareVarToValue OPCODE_FLAG_NOT, BSCRIPT_VAR_CALC_TEMP, 0x00000001, _215
Call BATTLE_SUBSCRIPT_GRANT_EXP
_215:
UpdateVar OPCODE_ADD, BSCRIPT_VAR_BATTLER_FAINTED, BATTLER_ENEMY
UpdateVar OPCODE_RIGHT_SHIFT, BSCRIPT_VAR_CALC_TEMP, 0x00000001
CompareVarToValue OPCODE_NEQ, BSCRIPT_VAR_CALC_TEMP, 0x00000000, _208
UpdateVarFromVar OPCODE_SUB_TO_ZERO, BSCRIPT_VAR_FIELD_CONDITION, BSCRIPT_VAR_TEMP_DATA
Call BATTLE_SUBSCRIPT_POP_ATTACKER_AND_DEFENDER
UpdateVarFromVar OPCODE_GET, BSCRIPT_VAR_MOVE_NO_TEMP, BSCRIPT_VAR_MOVE_NO_CUR
_238:
End