mirror of
https://github.com/pret/pokeplatinum.git
synced 2026-07-04 00:51:34 -05:00
122 lines
4.3 KiB
ArmAsm
122 lines
4.3 KiB
ArmAsm
#include "macros/btlcmd.inc"
|
|
|
|
.data
|
|
|
|
_000:
|
|
Call BATTLE_SUBSCRIPT_PUSH_ATTACKER_AND_DEFENDER
|
|
|
|
_001:
|
|
TryPursuit _238
|
|
UpdateVar OPCODE_SET, BTLVAR_POWER_MULTI, 20
|
|
CalcCrit
|
|
CalcDamage
|
|
ApplyTypeEffectiveness
|
|
UpdateVar OPCODE_FLAG_OFF, BTLVAR_BATTLE_CTX_STATUS, SYSCTL_SKIP_ATTACK_MESSAGE
|
|
UpdateVar OPCODE_FLAG_OFF, BTLVAR_BATTLE_CTX_STATUS, SYSCTL_PLAYED_MOVE_ANIMATION
|
|
PrintAttackMessage
|
|
Wait
|
|
CompareVarToValue OPCODE_FLAG_SET, BTLVAR_MOVE_STATUS_FLAGS, MOVE_STATUS_DID_NOT_HIT, _154
|
|
PlayMoveAnimation BTLSCR_ATTACKER
|
|
Wait
|
|
CheckSubstitute BTLSCR_DEFENDER, _108
|
|
UpdateVarFromVar OPCODE_SET, BTLVAR_SCRIPT_TEMP, BTLVAR_DAMAGE
|
|
UpdateVar OPCODE_MUL, BTLVAR_SCRIPT_TEMP, -1
|
|
CompareMonDataToVar OPCODE_LTE, BTLSCR_DEFENDER, BATTLEMON_CUR_HP, BTLVAR_SCRIPT_TEMP, _051
|
|
UpdateVarFromVar OPCODE_SET, BTLVAR_ATTACKER_SHELL_BELL_DAMAGE_DEALT, BTLVAR_DAMAGE
|
|
GoTo _060
|
|
|
|
_051:
|
|
UpdateMonDataFromVar OPCODE_GET, BTLSCR_DEFENDER, BATTLEMON_CUR_HP, BTLVAR_ATTACKER_SHELL_BELL_DAMAGE_DEALT
|
|
UpdateVar OPCODE_MUL, BTLVAR_ATTACKER_SHELL_BELL_DAMAGE_DEALT, -1
|
|
|
|
_060:
|
|
UpdateVarFromVar OPCODE_SET, BTLVAR_HP_CALC_TEMP, BTLVAR_DAMAGE
|
|
UpdateVarFromVar OPCODE_SET, BTLVAR_DEFENDER_PHYSICAL_DAMAGE_TAKEN, BTLVAR_DAMAGE
|
|
UpdateVarFromVar OPCODE_SET, BTLVAR_MSG_BATTLER_TEMP, BTLVAR_DEFENDER
|
|
CheckHoldOnWith1HP BTLSCR_MSG_TEMP
|
|
Call BATTLE_SUBSCRIPT_UPDATE_HP
|
|
Call BATTLE_SUBSCRIPT_CRITICAL_HIT
|
|
Call BATTLE_SUBSCRIPT_MOVE_FOLLOWUP_MESSAGE
|
|
CompareMonDataToValue OPCODE_EQU, BTLSCR_DEFENDER, BATTLEMON_CUR_HP, 0, _166
|
|
TriggerAbilityOnHit _090
|
|
CallFromVar BTLVAR_SCRIPT_TEMP
|
|
|
|
_090:
|
|
TriggerHeldItemOnHit _094
|
|
CallFromVar BTLVAR_SCRIPT_TEMP
|
|
|
|
_094:
|
|
UpdateVar OPCODE_FLAG_ON, BTLVAR_BATTLE_CTX_STATUS, SYSCTL_MOVE_HIT
|
|
TriggerHeldItemOnPivotMove _102
|
|
CallFromVar BTLVAR_SCRIPT_TEMP
|
|
|
|
_102:
|
|
UpdateVar OPCODE_FLAG_OFF, BTLVAR_BATTLE_CTX_STATUS, SYSCTL_MOVE_HIT
|
|
GoTo _158
|
|
|
|
_108:
|
|
UpdateVarFromVar OPCODE_SET, BTLVAR_SCRIPT_TEMP, BTLVAR_DAMAGE
|
|
UpdateVar OPCODE_MUL, BTLVAR_SCRIPT_TEMP, -1
|
|
CompareMonDataToVar OPCODE_LTE, BTLSCR_DEFENDER, BATTLEMON_SUBSTITUTE_HP, BTLVAR_SCRIPT_TEMP, _128
|
|
UpdateVarFromVar OPCODE_SET, BTLVAR_ATTACKER_SHELL_BELL_DAMAGE_DEALT, BTLVAR_DAMAGE
|
|
GoTo _142
|
|
|
|
_128:
|
|
UpdateMonData OPCODE_FLAG_OFF, BTLSCR_DEFENDER, BATTLEMON_VOLATILE_STATUS, VOLATILE_CONDITION_SUBSTITUTE
|
|
UpdateMonDataFromVar OPCODE_GET, BTLSCR_DEFENDER, BATTLEMON_SUBSTITUTE_HP, BTLVAR_ATTACKER_SHELL_BELL_DAMAGE_DEALT
|
|
UpdateVar OPCODE_MUL, BTLVAR_ATTACKER_SHELL_BELL_DAMAGE_DEALT, -1
|
|
|
|
_142:
|
|
UpdateVarFromVar OPCODE_SET, BTLVAR_MSG_BATTLER_TEMP, BTLVAR_DEFENDER
|
|
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, BTLVAR_MOVE_TEMP, BTLVAR_CURRENT_MOVE
|
|
GoTo _001
|
|
|
|
_166:
|
|
Call BATTLE_SUBSCRIPT_FAINT_CHECK_DESTINY_BOND
|
|
TriggerAbilityOnHit _172
|
|
CallFromVar BTLVAR_SCRIPT_TEMP
|
|
|
|
_172:
|
|
TriggerHeldItemOnHit _176
|
|
CallFromVar BTLVAR_SCRIPT_TEMP
|
|
|
|
_176:
|
|
UpdateVar OPCODE_FLAG_ON, BTLVAR_BATTLE_CTX_STATUS, SYSCTL_MOVE_HIT
|
|
TriggerHeldItemOnPivotMove _184
|
|
CallFromVar BTLVAR_SCRIPT_TEMP
|
|
|
|
_184:
|
|
UpdateVar OPCODE_FLAG_OFF, BTLVAR_BATTLE_CTX_STATUS, SYSCTL_MOVE_HIT
|
|
UpdateVarFromVar OPCODE_SET, BTLVAR_SCRIPT_TEMP, BTLVAR_FAINTED_MON
|
|
UpdateVar OPCODE_SET, BTLVAR_FAINTED_MON, BATTLER_PLAYER_SLOT_1
|
|
UpdateVarFromVar OPCODE_SET, BTLVAR_CALC_TEMP, BTLVAR_BATTLE_CTX_STATUS_2
|
|
UpdateVar OPCODE_RIGHT_SHIFT, BTLVAR_CALC_TEMP, 0x0000001C
|
|
UpdateVar OPCODE_FLAG_OFF, BTLVAR_BATTLE_CTX_STATUS_2, SYSCTL_PAYOUT_EXP
|
|
|
|
_208:
|
|
CompareVarToValue OPCODE_FLAG_NOT, BTLVAR_CALC_TEMP, 0x00000001, _215
|
|
Call BATTLE_SUBSCRIPT_GRANT_EXP
|
|
|
|
_215:
|
|
UpdateVar OPCODE_ADD, BTLVAR_FAINTED_MON, BATTLER_ENEMY_SLOT_1
|
|
UpdateVar OPCODE_RIGHT_SHIFT, BTLVAR_CALC_TEMP, 0x00000001
|
|
CompareVarToValue OPCODE_NEQ, BTLVAR_CALC_TEMP, 0x00000000, _208
|
|
// BUG: Acid Rain (see docs/bugs_and_glitches.md)
|
|
UpdateVarFromVar OPCODE_SUB_TO_ZERO, BTLVAR_FIELD_CONDITIONS, BTLVAR_SCRIPT_TEMP
|
|
Call BATTLE_SUBSCRIPT_POP_ATTACKER_AND_DEFENDER
|
|
UpdateVarFromVar OPCODE_GET, BTLVAR_MOVE_TEMP, BTLVAR_CURRENT_MOVE
|
|
|
|
_238:
|
|
End
|