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

63 lines
4.4 KiB
ArmAsm

.include "macros/btlcmd.inc"
.data
_000:
CompareVarToValue OPCODE_FLAG_SET, BSCRIPT_VAR_MOVE_STATUS_FLAGS, MOVE_STATUS_MISSED|MOVE_STATUS_SEMI_INVULNERABLE, _198
Call BATTLE_SUBSCRIPT_ATTACK_MESSAGE_AND_ANIMATION
UpdateMonDataFromVar OPCODE_GET, BATTLER_CATEGORY_ATTACKER, BMON_DATA_STAT_CHANGE_ATK, BSCRIPT_VAR_CALC_TEMP
UpdateMonDataFromVar OPCODE_GET, BATTLER_CATEGORY_DEFENDER, BMON_DATA_STAT_CHANGE_ATK, BSCRIPT_VAR_TEMP_DATA
UpdateMonDataFromVar OPCODE_SET, BATTLER_CATEGORY_ATTACKER, BMON_DATA_STAT_CHANGE_ATK, BSCRIPT_VAR_TEMP_DATA
UpdateMonDataFromVar OPCODE_SET, BATTLER_CATEGORY_DEFENDER, BMON_DATA_STAT_CHANGE_ATK, BSCRIPT_VAR_CALC_TEMP
UpdateMonDataFromVar OPCODE_GET, BATTLER_CATEGORY_ATTACKER, BMON_DATA_STAT_CHANGE_DEF, BSCRIPT_VAR_CALC_TEMP
UpdateMonDataFromVar OPCODE_GET, BATTLER_CATEGORY_DEFENDER, BMON_DATA_STAT_CHANGE_DEF, BSCRIPT_VAR_TEMP_DATA
UpdateMonDataFromVar OPCODE_SET, BATTLER_CATEGORY_ATTACKER, BMON_DATA_STAT_CHANGE_DEF, BSCRIPT_VAR_TEMP_DATA
UpdateMonDataFromVar OPCODE_SET, BATTLER_CATEGORY_DEFENDER, BMON_DATA_STAT_CHANGE_DEF, BSCRIPT_VAR_CALC_TEMP
UpdateMonDataFromVar OPCODE_GET, BATTLER_CATEGORY_ATTACKER, BMON_DATA_STAT_CHANGE_SPATK, BSCRIPT_VAR_CALC_TEMP
UpdateMonDataFromVar OPCODE_GET, BATTLER_CATEGORY_DEFENDER, BMON_DATA_STAT_CHANGE_SPATK, BSCRIPT_VAR_TEMP_DATA
UpdateMonDataFromVar OPCODE_SET, BATTLER_CATEGORY_ATTACKER, BMON_DATA_STAT_CHANGE_SPATK, BSCRIPT_VAR_TEMP_DATA
UpdateMonDataFromVar OPCODE_SET, BATTLER_CATEGORY_DEFENDER, BMON_DATA_STAT_CHANGE_SPATK, BSCRIPT_VAR_CALC_TEMP
UpdateMonDataFromVar OPCODE_GET, BATTLER_CATEGORY_ATTACKER, BMON_DATA_STAT_CHANGE_SPDEF, BSCRIPT_VAR_CALC_TEMP
UpdateMonDataFromVar OPCODE_GET, BATTLER_CATEGORY_DEFENDER, BMON_DATA_STAT_CHANGE_SPDEF, BSCRIPT_VAR_TEMP_DATA
UpdateMonDataFromVar OPCODE_SET, BATTLER_CATEGORY_ATTACKER, BMON_DATA_STAT_CHANGE_SPDEF, BSCRIPT_VAR_TEMP_DATA
UpdateMonDataFromVar OPCODE_SET, BATTLER_CATEGORY_DEFENDER, BMON_DATA_STAT_CHANGE_SPDEF, BSCRIPT_VAR_CALC_TEMP
UpdateMonDataFromVar OPCODE_GET, BATTLER_CATEGORY_ATTACKER, BMON_DATA_STAT_CHANGE_SPEED, BSCRIPT_VAR_CALC_TEMP
UpdateMonDataFromVar OPCODE_GET, BATTLER_CATEGORY_DEFENDER, BMON_DATA_STAT_CHANGE_SPEED, BSCRIPT_VAR_TEMP_DATA
UpdateMonDataFromVar OPCODE_SET, BATTLER_CATEGORY_ATTACKER, BMON_DATA_STAT_CHANGE_SPEED, BSCRIPT_VAR_TEMP_DATA
UpdateMonDataFromVar OPCODE_SET, BATTLER_CATEGORY_DEFENDER, BMON_DATA_STAT_CHANGE_SPEED, BSCRIPT_VAR_CALC_TEMP
UpdateMonDataFromVar OPCODE_GET, BATTLER_CATEGORY_ATTACKER, BMON_DATA_STAT_CHANGE_ACC, BSCRIPT_VAR_CALC_TEMP
UpdateMonDataFromVar OPCODE_GET, BATTLER_CATEGORY_DEFENDER, BMON_DATA_STAT_CHANGE_ACC, BSCRIPT_VAR_TEMP_DATA
UpdateMonDataFromVar OPCODE_SET, BATTLER_CATEGORY_ATTACKER, BMON_DATA_STAT_CHANGE_ACC, BSCRIPT_VAR_TEMP_DATA
UpdateMonDataFromVar OPCODE_SET, BATTLER_CATEGORY_DEFENDER, BMON_DATA_STAT_CHANGE_ACC, BSCRIPT_VAR_CALC_TEMP
UpdateMonDataFromVar OPCODE_GET, BATTLER_CATEGORY_ATTACKER, BMON_DATA_STAT_CHANGE_EVASION, BSCRIPT_VAR_CALC_TEMP
UpdateMonDataFromVar OPCODE_GET, BATTLER_CATEGORY_DEFENDER, BMON_DATA_STAT_CHANGE_EVASION, BSCRIPT_VAR_TEMP_DATA
UpdateMonDataFromVar OPCODE_SET, BATTLER_CATEGORY_ATTACKER, BMON_DATA_STAT_CHANGE_EVASION, BSCRIPT_VAR_TEMP_DATA
UpdateMonDataFromVar OPCODE_SET, BATTLER_CATEGORY_DEFENDER, BMON_DATA_STAT_CHANGE_EVASION, BSCRIPT_VAR_CALC_TEMP
UpdateMonDataFromVar OPCODE_GET, BATTLER_CATEGORY_ATTACKER, BMON_DATA_STATUS2, BSCRIPT_VAR_CALC_TEMP
UpdateMonDataFromVar OPCODE_GET, BATTLER_CATEGORY_DEFENDER, BMON_DATA_STATUS2, BSCRIPT_VAR_TEMP_DATA
CompareVarToValue OPCODE_FLAG_SET, BSCRIPT_VAR_CALC_TEMP, 0x00100000, _168
UpdateMonData OPCODE_FLAG_OFF, BATTLER_CATEGORY_DEFENDER, BMON_DATA_STATUS2, STATUS2_FOCUS_ENERGY
GoTo _173
_168:
UpdateMonData OPCODE_FLAG_ON, BATTLER_CATEGORY_DEFENDER, BMON_DATA_STATUS2, STATUS2_FOCUS_ENERGY
_173:
CompareVarToValue OPCODE_FLAG_SET, BSCRIPT_VAR_TEMP_DATA, BATTLE_STATUS2_20, _185
UpdateMonData OPCODE_FLAG_OFF, BATTLER_CATEGORY_ATTACKER, BMON_DATA_STATUS2, STATUS2_FOCUS_ENERGY
GoTo _190
_185:
UpdateMonData OPCODE_FLAG_ON, BATTLER_CATEGORY_ATTACKER, BMON_DATA_STATUS2, STATUS2_FOCUS_ENERGY
_190:
// {0} switched stat changes with the target!
PrintMessage msg_0197_01024, TAG_NICKNAME, BATTLER_CATEGORY_ATTACKER
Wait
WaitButtonABTime 30
End
_198:
UpdateVar OPCODE_FLAG_ON, BSCRIPT_VAR_MOVE_STATUS_FLAGS, MOVE_STATUS_FAILED
End