mirror of
https://github.com/pret/pokeheartgold.git
synced 2026-05-20 10:48:10 -05:00
121 lines
4.6 KiB
ArmAsm
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
|