pokeplatinum/res/battle/scripts/subscripts/subscript_exchange_abilities.s
2024-07-16 12:01:40 -07:00

51 lines
2.8 KiB
ArmAsm

#include "macros/btlcmd.inc"
.data
_000:
CompareVarToValue OPCODE_FLAG_SET, BTLVAR_MOVE_STATUS_FLAGS, MOVE_STATUS_MISSED|MOVE_STATUS_SEMI_INVULNERABLE, _156
CompareMonDataToValue OPCODE_EQU, BTLSCR_ATTACKER, BATTLEMON_ABILITY, ABILITY_WONDER_GUARD, _156
CompareMonDataToValue OPCODE_EQU, BTLSCR_DEFENDER, BATTLEMON_ABILITY, ABILITY_WONDER_GUARD, _156
CompareMonDataToValue OPCODE_EQU, BTLSCR_ATTACKER, BATTLEMON_ABILITY, ABILITY_MULTITYPE, _156
CompareMonDataToValue OPCODE_EQU, BTLSCR_DEFENDER, BATTLEMON_ABILITY, ABILITY_MULTITYPE, _156
CompareMonDataToValue OPCODE_EQU, BTLSCR_ATTACKER, BATTLEMON_HELD_ITEM, ITEM_GRISEOUS_ORB, _156
CompareMonDataToValue OPCODE_EQU, BTLSCR_DEFENDER, BATTLEMON_HELD_ITEM, ITEM_GRISEOUS_ORB, _156
CompareMonDataToValue OPCODE_NEQ, BTLSCR_ATTACKER, BATTLEMON_ABILITY, ABILITY_NONE, _052
CompareMonDataToValue OPCODE_EQU, BTLSCR_DEFENDER, BATTLEMON_ABILITY, ABILITY_NONE, _156
_052:
Call BATTLE_SUBSCRIPT_ATTACK_MESSAGE_AND_ANIMATION
UpdateVarFromVar OPCODE_SET, BTLVAR_SCRIPT_TEMP, BTLVAR_TOTAL_TURNS
UpdateVar OPCODE_BITWISE_AND, BTLVAR_SCRIPT_TEMP, 1
UpdateMonDataFromVar OPCODE_SET, BTLSCR_ATTACKER, BATTLEMON_TRUANT, BTLVAR_SCRIPT_TEMP
UpdateMonDataFromVar OPCODE_SET, BTLSCR_DEFENDER, BATTLEMON_TRUANT, BTLVAR_SCRIPT_TEMP
UpdateMonDataFromVar OPCODE_GET, BTLSCR_ATTACKER, BATTLEMON_ABILITY, BTLVAR_CALC_TEMP
UpdateMonDataFromVar OPCODE_GET, BTLSCR_DEFENDER, BATTLEMON_ABILITY, BTLVAR_SCRIPT_TEMP
UpdateMonDataFromVar OPCODE_SET, BTLSCR_ATTACKER, BATTLEMON_ABILITY, BTLVAR_SCRIPT_TEMP
UpdateMonDataFromVar OPCODE_SET, BTLSCR_DEFENDER, BATTLEMON_ABILITY, BTLVAR_CALC_TEMP
CompareVarToValue OPCODE_NEQ, BTLVAR_SCRIPT_TEMP, 112, _120
UpdateVarFromVar OPCODE_SET, BTLVAR_SCRIPT_TEMP, BTLVAR_TOTAL_TURNS
UpdateVar OPCODE_ADD, BTLVAR_SCRIPT_TEMP, 1
UpdateMonDataFromVar OPCODE_SET, BTLSCR_ATTACKER, BATTLEMON_SLOW_START_TURN_NUMBER, BTLVAR_SCRIPT_TEMP
UpdateMonData OPCODE_SET, BTLSCR_ATTACKER, BATTLEMON_SLOW_START_ANNOUNCED, 0
UpdateMonData OPCODE_SET, BTLSCR_ATTACKER, BATTLEMON_SLOW_START_FINISHED, 0
_120:
CompareVarToValue OPCODE_NEQ, BTLVAR_CALC_TEMP, 0x00000070, _148
UpdateVarFromVar OPCODE_SET, BTLVAR_SCRIPT_TEMP, BTLVAR_TOTAL_TURNS
UpdateVar OPCODE_ADD, BTLVAR_SCRIPT_TEMP, 1
UpdateMonDataFromVar OPCODE_SET, BTLSCR_DEFENDER, BATTLEMON_SLOW_START_TURN_NUMBER, BTLVAR_SCRIPT_TEMP
UpdateMonData OPCODE_SET, BTLSCR_DEFENDER, BATTLEMON_SLOW_START_ANNOUNCED, 0
UpdateMonData OPCODE_SET, BTLSCR_DEFENDER, BATTLEMON_SLOW_START_FINISHED, 0
_148:
// {0} swapped abilities with its target!
PrintMessage pl_msg_00000368_00559, TAG_NICKNAME, BTLSCR_ATTACKER
Wait
WaitButtonABTime 30
End
_156:
UpdateVar OPCODE_FLAG_ON, BTLVAR_MOVE_STATUS_FLAGS, MOVE_STATUS_FAILED
End