summaryrefslogtreecommitdiff
path: root/data
diff options
context:
space:
mode:
authorPikalaxALT <PikalaxALT@users.noreply.github.com>2019-11-07 11:23:15 -0500
committerGitHub <noreply@github.com>2019-11-07 11:23:15 -0500
commitd833c0ba01594468195d3a5dac843cedba8af9eb (patch)
treeaf24f4ab930dd8eac94cc2c1a5afb5464739e474 /data
parent994b9cdbadc21d2db257015953f67cb4023e2450 (diff)
parent2b521f243a74c0d49a589c879769ce59de8202e4 (diff)
Merge pull request #144 from PikalaxALT/dism_more_data
Dump battle scripts and several rfu3 strings
Diffstat (limited to 'data')
-rw-r--r--data/battle_anim.s665
-rw-r--r--data/battle_message.s309
-rw-r--r--data/battle_scripts_1.s4946
-rw-r--r--data/battle_scripts_2.s246
-rw-r--r--data/link_rfu_3.s573
5 files changed, 6066 insertions, 673 deletions
diff --git a/data/battle_anim.s b/data/battle_anim.s
index c166708a2..472ea2710 100644
--- a/data/battle_anim.s
+++ b/data/battle_anim.s
@@ -1,3 +1,5 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
.section .rodata
.align 2
gOamData_83AC9C8::
@@ -217,28 +219,673 @@ gOamData_83ACC00::
.4byte 0xc0008700, 0x00000800
gUnknown_83ACC08:: @ 83ACC08
- .incbin "baserom.gba", 0x3ACC08, 0x440
+ obj_tiles gFile_graphics_battle_anims_sprites_000_sheet, 0x0200, 10000
+ obj_tiles gFile_graphics_battle_anims_sprites_001_sheet, 0x0300, 10001
+ obj_tiles gFile_graphics_battle_anims_sprites_002_sheet, 0x0200, 10002
+ obj_tiles gFile_graphics_battle_anims_sprites_003_sheet, 0x0100, 10003
+ obj_tiles gFile_graphics_battle_anims_sprites_004_sheet, 0x0200, 10004
+ obj_tiles gFile_graphics_battle_anims_sprites_005_sheet, 0x0400, 10005
+ obj_tiles gFile_graphics_battle_anims_sprites_006_sheet, 0x0180, 10006
+ obj_tiles gFile_graphics_battle_anims_sprites_007_sheet, 0x0800, 10007
+ obj_tiles gFile_graphics_battle_anims_sprites_008_sheet, 0x0020, 10008
+ obj_tiles gFile_graphics_battle_anims_sprites_009_sheet, 0x0400, 10009
+ obj_tiles gFile_graphics_battle_anims_sprites_010_sheet, 0x1200, 10010
+ obj_tiles gFile_graphics_battle_anims_sprites_011_sheet, 0x0180, 10011
+ obj_tiles gFile_graphics_battle_anims_sprites_012_sheet, 0x0080, 10012
+ obj_tiles gFile_graphics_battle_anims_sprites_013_sheet, 0x0080, 10013
+ obj_tiles gFile_graphics_battle_anims_sprites_014_sheet, 0x0280, 10014
+ obj_tiles gFile_graphics_battle_anims_sprites_015_sheet, 0x0080, 10015
+ obj_tiles gFile_graphics_battle_anims_sprites_016_sheet, 0x0100, 10016
+ obj_tiles gFile_graphics_battle_anims_sprites_017_sheet, 0x0020, 10017
+ obj_tiles gFile_graphics_battle_anims_sprites_018_sheet, 0x0080, 10018
+ obj_tiles gFile_graphics_battle_anims_sprites_019_sheet, 0x0400, 10019
+ obj_tiles gFile_graphics_battle_anims_sprites_020_sheet, 0x0200, 10020
+ obj_tiles gFile_graphics_battle_anims_sprites_021_sheet, 0x0a00, 10021
+ obj_tiles gFile_graphics_battle_anims_sprites_021_sheet, 0x0a00, 10022
+ obj_tiles gFile_graphics_battle_anims_sprites_023_sheet, 0x0380, 10023
+ obj_tiles gFile_graphics_battle_anims_sprites_024_sheet, 0x0300, 10024
+ obj_tiles gFile_graphics_battle_anims_sprites_025_sheet, 0x0a00, 10025
+ obj_tiles gFile_graphics_battle_anims_sprites_026_sheet, 0x0a00, 10026
+ obj_tiles gFile_graphics_battle_anims_sprites_027_sheet, 0x0a00, 10027
+ obj_tiles gFile_graphics_battle_anims_sprites_028_sheet, 0x0a00, 10028
+ obj_tiles gFile_graphics_battle_anims_sprites_029_sheet, 0x0a00, 10029
+ obj_tiles gFile_graphics_battle_anims_sprites_030_sheet, 0x0a00, 10030
+ obj_tiles gFile_graphics_battle_anims_sprites_031_sheet, 0x0e00, 10031
+ obj_tiles gFile_graphics_battle_anims_sprites_032_sheet, 0x0380, 10032
+ obj_tiles gFile_graphics_battle_anims_sprites_033_sheet, 0x1000, 10033
+ obj_tiles gFile_graphics_battle_anims_sprites_034_sheet, 0x0800, 10034
+ obj_tiles gFile_graphics_battle_anims_sprites_035_sheet, 0x0a00, 10035
+ obj_tiles gFile_graphics_battle_anims_sprites_036_sheet, 0x0800, 10036
+ obj_tiles gFile_graphics_battle_anims_sprites_037_sheet, 0x0a00, 10037
+ obj_tiles gFile_graphics_battle_anims_sprites_038_sheet, 0x0a00, 10038
+ obj_tiles gFile_graphics_battle_anims_sprites_039_sheet, 0x0a00, 10039
+ obj_tiles gFile_graphics_battle_anims_sprites_040_sheet, 0x0a00, 10040
+ obj_tiles gFile_graphics_battle_anims_sprites_041_sheet, 0x0a00, 10041
+ obj_tiles gFile_graphics_battle_anims_sprites_042_sheet, 0x0a00, 10042
+ obj_tiles gFile_graphics_battle_anims_sprites_043_sheet, 0x0a00, 10043
+ obj_tiles gFile_graphics_battle_anims_sprites_044_sheet, 0x0a00, 10044
+ obj_tiles gFile_graphics_battle_anims_sprites_045_sheet, 0x0a00, 10045
+ obj_tiles gFile_graphics_battle_anims_sprites_046, 0x1000, 10046
+ obj_tiles gFile_graphics_battle_anims_sprites_046, 0x1000, 10047
+ obj_tiles gFile_graphics_battle_anims_sprites_048_sheet, 0x1000, 10048
+ obj_tiles gFile_graphics_battle_anims_sprites_048_sheet, 0x1000, 10049
+ obj_tiles gFile_graphics_battle_anims_sprites_050_sheet, 0x0200, 10050
+ obj_tiles gFile_graphics_battle_anims_sprites_051_sheet, 0x0200, 10051
+ obj_tiles gFile_graphics_battle_anims_sprites_052_sheet, 0x0200, 10052
+ obj_tiles gFile_graphics_battle_anims_sprites_053_sheet, 0x0800, 10053
+ obj_tiles gFile_graphics_battle_anims_sprites_054_sheet, 0x0080, 10054
+ obj_tiles gFile_graphics_battle_anims_sprites_055_sheet, 0x0200, 10055
+ obj_tiles gFile_graphics_battle_anims_sprites_056_sheet, 0x1000, 10056
+ obj_tiles gFile_graphics_battle_anims_sprites_057_sheet, 0x0180, 10057
+ obj_tiles gFile_graphics_battle_anims_sprites_058_sheet, 0x0c00, 10058
+ obj_tiles gFile_graphics_battle_anims_sprites_059_sheet, 0x0100, 10059
+ obj_tiles gFile_graphics_battle_anims_sprites_060_sheet, 0x0040, 10060
+ obj_tiles gFile_graphics_battle_anims_sprites_061_sheet, 0x0180, 10061
+ obj_tiles gFile_graphics_battle_anims_sprites_062_sheet, 0x0800, 10062
+ obj_tiles gFile_graphics_battle_anims_sprites_063_sheet, 0x0480, 10063
+ obj_tiles gFile_graphics_battle_anims_sprites_064_sheet, 0x0200, 10064
+ obj_tiles gFile_graphics_battle_anims_sprites_065_sheet, 0x0200, 10065
+ obj_tiles gFile_graphics_battle_anims_sprites_066_sheet, 0x0100, 10066
+ obj_tiles gFile_graphics_battle_anims_sprites_065_sheet, 0x0200, 10067
+ obj_tiles gFile_graphics_battle_anims_sprites_065_sheet, 0x0200, 10068
+ obj_tiles gFile_graphics_battle_anims_sprites_065_sheet, 0x0200, 10069
+ obj_tiles gFile_graphics_battle_anims_sprites_070_sheet, 0x0200, 10070
+ obj_tiles gFile_graphics_battle_anims_sprites_071_sheet, 0x0a00, 10071
+ obj_tiles gFile_graphics_battle_anims_sprites_072_sheet, 0x0300, 10072
+ obj_tiles gFile_graphics_battle_anims_sprites_073_sheet, 0x0180, 10073
+ obj_tiles gFile_graphics_battle_anims_sprites_074_sheet, 0x00a0, 10074
+ obj_tiles gFile_graphics_battle_anims_sprites_075_sheet, 0x0700, 10075
+ obj_tiles gFile_graphics_battle_anims_sprites_076_sheet, 0x0400, 10076
+ obj_tiles gFile_graphics_battle_anims_sprites_077_sheet, 0x0200, 10077
+ obj_tiles gFile_graphics_battle_anims_sprites_078_sheet, 0x0300, 10078
+ obj_tiles gFile_graphics_battle_anims_sprites_079_sheet, 0x0c00, 10079
+ obj_tiles gFile_graphics_battle_anims_sprites_080_sheet, 0x0a00, 10080
+ obj_tiles gFile_graphics_battle_anims_sprites_081_sheet, 0x0080, 10081
+ obj_tiles gFile_graphics_battle_anims_sprites_082_sheet, 0x0040, 10082
+ obj_tiles gFile_graphics_battle_anims_sprites_083_sheet, 0x0e00, 10083
+ obj_tiles gFile_graphics_battle_anims_sprites_084_sheet, 0x0e00, 10084
+ obj_tiles gFile_graphics_battle_anims_sprites_085_sheet, 0x0280, 10085
+ obj_tiles gFile_graphics_battle_anims_sprites_086_sheet, 0x0200, 10086
+ obj_tiles gFile_graphics_battle_anims_sprites_087_sheet, 0x0080, 10087
+ obj_tiles gFile_graphics_battle_anims_sprites_088_sheet, 0x00c0, 10088
+ obj_tiles gFile_graphics_battle_anims_sprites_089_sheet, 0x0a00, 10089
+ obj_tiles gFile_graphics_battle_anims_sprites_090_sheet, 0x0200, 10090
+ obj_tiles gFile_graphics_battle_anims_sprites_091_sheet, 0x0180, 10091
+ obj_tiles gFile_graphics_battle_anims_sprites_092_sheet, 0x0080, 10092
+ obj_tiles gFile_graphics_battle_anims_sprites_093_sheet, 0x1000, 10093
+ obj_tiles gFile_graphics_battle_anims_sprites_094_sheet, 0x0a00, 10094
+ obj_tiles gFile_graphics_battle_anims_sprites_095_sheet, 0x0180, 10095
+ obj_tiles gFile_graphics_battle_anims_sprites_096_sheet, 0x0380, 10096
+ obj_tiles gFile_graphics_battle_anims_sprites_097_sheet, 0x0c00, 10097
+ obj_tiles gFile_graphics_battle_anims_sprites_098_sheet, 0x0200, 10098
+ obj_tiles gFile_graphics_battle_anims_sprites_099_sheet, 0x0200, 10099
+ obj_tiles gFile_graphics_battle_anims_sprites_100_sheet, 0x0200, 10100
+ obj_tiles gFile_graphics_battle_anims_sprites_101_sheet, 0x0200, 10101
+ obj_tiles gFile_graphics_battle_anims_sprites_102_sheet, 0x0400, 10102
+ obj_tiles gFile_graphics_battle_anims_sprites_103_sheet, 0x0080, 10103
+ obj_tiles gFile_graphics_battle_anims_sprites_104_sheet, 0x0400, 10104
+ obj_tiles gFile_graphics_battle_anims_sprites_105_sheet, 0x0c00, 10105
+ obj_tiles gFile_graphics_battle_anims_sprites_106_sheet, 0x0200, 10106
+ obj_tiles gFile_graphics_battle_anims_sprites_107_sheet, 0x1000, 10107
+ obj_tiles gFile_graphics_battle_anims_sprites_108_sheet, 0x0a00, 10108
+ obj_tiles gFile_graphics_battle_anims_sprites_109_sheet, 0x0020, 10109
+ obj_tiles gFile_graphics_battle_anims_sprites_110_sheet, 0x0e00, 10110
+ obj_tiles gFile_graphics_battle_anims_sprites_111_sheet, 0x0080, 10111
+ obj_tiles gFile_graphics_battle_anims_sprites_112_sheet, 0x0a00, 10112
+ obj_tiles gFile_graphics_battle_anims_sprites_113_sheet, 0x0400, 10113
+ obj_tiles gFile_graphics_battle_anims_sprites_114_sheet, 0x0200, 10114
+ obj_tiles gFile_graphics_battle_anims_sprites_115_sheet, 0x0700, 10115
+ obj_tiles gFile_graphics_battle_anims_sprites_116_sheet, 0x0800, 10116
+ obj_tiles gFile_graphics_battle_anims_sprites_117_sheet, 0x0a00, 10117
+ obj_tiles gFile_graphics_battle_anims_sprites_118_sheet, 0x0600, 10118
+ obj_tiles gFile_graphics_battle_anims_sprites_119_sheet, 0x0800, 10119
+ obj_tiles gFile_graphics_battle_anims_sprites_120_sheet, 0x0200, 10120
+ obj_tiles gFile_graphics_battle_anims_sprites_121_sheet, 0x0040, 10121
+ obj_tiles gFile_graphics_battle_anims_sprites_122_sheet, 0x0180, 10122
+ obj_tiles gFile_graphics_battle_anims_sprites_123_sheet, 0x0600, 10123
+ obj_tiles gFile_graphics_battle_anims_sprites_124_sheet, 0x0600, 10124
+ obj_tiles gFile_graphics_battle_anims_sprites_125_sheet, 0x0200, 10125
+ obj_tiles gFile_graphics_battle_anims_sprites_126_sheet, 0x0080, 10126
+ obj_tiles gFile_graphics_battle_anims_sprites_127_sheet, 0x0200, 10127
+ obj_tiles gFile_graphics_battle_anims_sprites_128_sheet, 0x0800, 10128
+ obj_tiles gFile_graphics_battle_anims_sprites_129_sheet, 0x0080, 10129
+ obj_tiles gFile_graphics_battle_anims_sprites_130_sheet, 0x0a00, 10130
+ obj_tiles gFile_graphics_battle_anims_sprites_131_sheet, 0x0280, 10131
+ obj_tiles gFile_graphics_battle_anims_sprites_132_sheet, 0x0280, 10132
+ obj_tiles gFile_graphics_battle_anims_sprites_133_sheet, 0x0100, 10133
+ obj_tiles gFile_graphics_battle_anims_sprites_134_sheet, 0x0200, 10134
+ obj_tiles gFile_graphics_battle_anims_sprites_135_sheet, 0x0200, 10135
gUnknown_83AD048:: @ 83AD048
- .incbin "baserom.gba", 0x3AD048, 0x308
+ obj_tiles gFile_graphics_battle_anims_sprites_136_sheet, 0x0020, 10136
+ obj_tiles gFile_graphics_battle_anims_sprites_137_sheet, 0x0a00, 10137
+ obj_tiles gFile_graphics_battle_anims_sprites_138_sheet, 0x0800, 10138
+ obj_tiles gFile_graphics_battle_anims_sprites_139_sheet, 0x0800, 10139
+ obj_tiles gFile_graphics_battle_anims_sprites_140_sheet, 0x00c0, 10140
+ obj_tiles gFile_graphics_battle_anims_sprites_141_sheet, 0x01c0, 10141
+ obj_tiles gFile_graphics_battle_anims_sprites_142_sheet, 0x0100, 10142
+ obj_tiles gFile_graphics_battle_anims_sprites_143_sheet, 0x0800, 10143
+ obj_tiles gFile_graphics_battle_anims_sprites_144_sheet, 0x0200, 10144
+ obj_tiles gFile_graphics_battle_anims_sprites_145_sheet, 0x0800, 10145
+ obj_tiles gFile_graphics_battle_anims_sprites_146_sheet, 0x0180, 10146
+ obj_tiles gFile_graphics_battle_anims_sprites_147_sheet, 0x0180, 10147
+ obj_tiles gFile_graphics_battle_anims_sprites_148_sheet, 0x0200, 10148
+ obj_tiles gFile_graphics_battle_anims_sprites_149_sheet, 0x0200, 10149
+ obj_tiles gFile_graphics_battle_anims_sprites_150_sheet, 0x0180, 10150
+ obj_tiles gFile_graphics_battle_anims_sprites_151_sheet, 0x0400, 10151
+ obj_tiles gFile_graphics_battle_anims_sprites_152_sheet, 0x0080, 10152
+ obj_tiles gFile_graphics_battle_anims_sprites_153_sheet, 0x0100, 10153
+ obj_tiles gFile_graphics_battle_anims_sprites_154_sheet, 0x0100, 10154
+ obj_tiles gFile_graphics_battle_anims_sprites_155_sheet, 0x0140, 10155
+ obj_tiles gFile_graphics_battle_anims_sprites_156_sheet, 0x0800, 10156
+ obj_tiles gFile_graphics_battle_anims_sprites_157_sheet, 0x0200, 10157
+ obj_tiles gFile_graphics_battle_anims_sprites_158_sheet, 0x0100, 10158
+ obj_tiles gFile_graphics_battle_anims_sprites_159_sheet, 0x00a0, 10159
+ obj_tiles gFile_graphics_battle_anims_sprites_160_sheet, 0x0100, 10160
+ obj_tiles gFile_graphics_battle_anims_sprites_161_sheet, 0x0080, 10161
+ obj_tiles gFile_graphics_battle_anims_sprites_162_sheet, 0x0300, 10162
+ obj_tiles gFile_graphics_battle_anims_sprites_163_sheet, 0x0100, 10163
+ obj_tiles gFile_graphics_battle_anims_sprites_163_sheet, 0x0100, 10164
+ obj_tiles gFile_graphics_battle_anims_sprites_163_sheet, 0x0100, 10165
+ obj_tiles gFile_graphics_battle_anims_sprites_166_sheet, 0x0800, 10166
+ obj_tiles gFile_graphics_battle_anims_sprites_166_sheet, 0x0800, 10167
+ obj_tiles gFile_graphics_battle_anims_sprites_166_sheet, 0x0800, 10168
+ obj_tiles gFile_graphics_battle_anims_sprites_166_sheet, 0x0800, 10169
+ obj_tiles gFile_graphics_battle_anims_sprites_166_sheet, 0x0800, 10170
+ obj_tiles gFile_graphics_battle_anims_sprites_171_sheet, 0x0080, 10171
+ obj_tiles gFile_graphics_battle_anims_sprites_144_sheet, 0x0200, 10172
+ obj_tiles gFile_graphics_battle_anims_sprites_173_sheet, 0x0200, 10173
+ obj_tiles gFile_graphics_battle_anims_sprites_174_sheet, 0x0200, 10174
+ obj_tiles gFile_graphics_battle_anims_sprites_175_sheet, 0x0080, 10175
+ obj_tiles gFile_graphics_battle_anims_sprites_176_sheet, 0x0200, 10176
+ obj_tiles gFile_graphics_battle_anims_sprites_177_sheet, 0x0500, 10177
+ obj_tiles gFile_graphics_battle_anims_sprites_178_sheet, 0x0800, 10178
+ obj_tiles gFile_graphics_battle_anims_sprites_179_sheet, 0x0400, 10179
+ obj_tiles gFile_graphics_battle_anims_sprites_180_sheet, 0x0020, 10180
+ obj_tiles gFile_graphics_battle_anims_sprites_181_sheet, 0x0800, 10181
+ obj_tiles gFile_graphics_battle_anims_sprites_182_sheet, 0x0100, 10182
+ obj_tiles gFile_graphics_battle_anims_sprites_183_sheet, 0x0800, 10183
+ obj_tiles gFile_graphics_battle_anims_sprites_184_sheet, 0x0400, 10184
+ obj_tiles gFile_graphics_battle_anims_sprites_185_sheet, 0x0a00, 10185
+ obj_tiles gFile_graphics_battle_anims_sprites_186_sheet, 0x1000, 10186
+ obj_tiles gFile_graphics_battle_anims_sprites_187_sheet, 0x0800, 10187
+ obj_tiles gFile_graphics_battle_anims_sprites_188_sheet, 0x0400, 10188
+ obj_tiles gFile_graphics_battle_anims_sprites_189_sheet, 0x0200, 10189
+ obj_tiles gFile_graphics_battle_anims_sprites_190_sheet, 0x0800, 10190
+ obj_tiles gFile_graphics_battle_anims_sprites_191_sheet, 0x0800, 10191
+ obj_tiles gFile_graphics_battle_anims_sprites_192_sheet, 0x0800, 10192
+ obj_tiles gFile_graphics_battle_anims_sprites_193_sheet, 0x0200, 10193
+ obj_tiles gFile_graphics_battle_anims_sprites_194_sheet, 0x0800, 10194
+ obj_tiles gFile_graphics_battle_anims_sprites_195_sheet, 0x0200, 10195
+ obj_tiles gFile_graphics_battle_anims_sprites_196_sheet, 0x0800, 10196
+ obj_tiles gFile_graphics_battle_anims_sprites_197_sheet, 0x0200, 10197
+ obj_tiles gFile_graphics_battle_anims_sprites_198_sheet, 0x0800, 10198
+ obj_tiles gFile_graphics_battle_anims_sprites_199_sheet, 0x0400, 10199
+ obj_tiles gFile_graphics_battle_anims_sprites_200_sheet, 0x0200, 10200
+ obj_tiles gFile_graphics_battle_anims_sprites_201_sheet, 0x0a80, 10201
+ obj_tiles gFile_graphics_battle_anims_sprites_202_sheet, 0x0600, 10202
+ obj_tiles gFile_graphics_battle_anims_sprites_203_sheet, 0x0800, 10203
+ obj_tiles gFile_graphics_battle_anims_sprites_204_sheet, 0x0200, 10204
+ obj_tiles gFile_graphics_battle_anims_sprites_205_sheet, 0x0600, 10205
+ obj_tiles gFile_graphics_battle_anims_sprites_206_sheet, 0x0800, 10206
+ obj_tiles gFile_graphics_battle_anims_sprites_207_sheet, 0x0180, 10207
+ obj_tiles gFile_graphics_battle_anims_sprites_208_sheet, 0x0800, 10208
+ obj_tiles gFile_graphics_battle_anims_sprites_209_sheet, 0x0800, 10209
+ obj_tiles gFile_graphics_battle_anims_sprites_210_sheet, 0x0080, 10210
+ obj_tiles gFile_graphics_battle_anims_sprites_211_sheet, 0x0080, 10211
+ obj_tiles gFile_graphics_battle_anims_sprites_212_sheet, 0x0800, 10212
+ obj_tiles gFile_graphics_battle_anims_sprites_213_sheet, 0x0800, 10213
+ obj_tiles gFile_graphics_battle_anims_sprites_214_sheet, 0x0600, 10214
+ obj_tiles gFile_graphics_battle_anims_sprites_215_sheet, 0x0600, 10215
+ obj_tiles gFile_graphics_battle_anims_sprites_210_sheet, 0x0080, 10216
+ obj_tiles gFile_graphics_battle_anims_sprites_217_sheet, 0x0080, 10217
+ obj_tiles gFile_graphics_battle_anims_sprites_218_sheet, 0x0180, 10218
+ obj_tiles gFile_graphics_battle_anims_sprites_210_sheet, 0x0080, 10219
+ obj_tiles gFile_graphics_battle_anims_sprites_220_sheet, 0x0200, 10220
+ obj_tiles gFile_graphics_battle_anims_sprites_221_sheet, 0x0400, 10221
+ obj_tiles gFile_graphics_battle_anims_sprites_222_sheet, 0x0a00, 10222
+ obj_tiles gFile_graphics_battle_anims_sprites_223_sheet, 0x0800, 10223
+ obj_tiles gFile_graphics_battle_anims_sprites_224_sheet, 0x0200, 10224
+ obj_tiles gFile_graphics_battle_anims_sprites_225_sheet, 0x0400, 10225
+ obj_tiles gFile_graphics_battle_anims_sprites_226_sheet, 0x0080, 10226
+ obj_tiles gFile_graphics_battle_anims_sprites_227_sheet, 0x0800, 10227
+ obj_tiles gFile_graphics_battle_anims_sprites_228_sheet, 0x0200, 10228
+ obj_tiles gFile_graphics_battle_anims_sprites_229_sheet, 0x0300, 10229
+ obj_tiles gFile_graphics_battle_anims_sprites_230_sheet, 0x0800, 10230
+ obj_tiles gFile_graphics_battle_anims_sprites_231_sheet, 0x0380, 10231
+ obj_tiles gFile_graphics_battle_anims_sprites_232_sheet, 0x0800, 10232
gUnknown_83AD350:: @ 83AD350
- .incbin "baserom.gba", 0x3AD350, 0x120
+ obj_tiles gFile_graphics_battle_anims_sprites_233_sheet, 0x00c0, 10233
+ obj_tiles gFile_graphics_battle_anims_sprites_234_sheet, 0x0800, 10234
+ obj_tiles gFile_graphics_battle_anims_sprites_235_sheet, 0x0060, 10235
+ obj_tiles gFile_graphics_battle_anims_sprites_235_sheet, 0x0060, 10236
+ obj_tiles gFile_graphics_battle_anims_sprites_235_sheet, 0x0060, 10237
+ obj_tiles gFile_graphics_battle_anims_sprites_238_sheet, 0x0080, 10238
+ obj_tiles gFile_graphics_battle_anims_sprites_239_sheet, 0x0180, 10239
+ obj_tiles gFile_graphics_battle_anims_sprites_240_sheet, 0x0180, 10240
+ obj_tiles gFile_graphics_battle_anims_sprites_241_sheet, 0x0200, 10241
+ obj_tiles gFile_graphics_battle_anims_sprites_242_sheet, 0x0200, 10242
+ obj_tiles gFile_graphics_battle_anims_sprites_243_sheet, 0x0020, 10243
+ obj_tiles gFile_graphics_battle_anims_sprites_244_sheet, 0x0400, 10244
+ obj_tiles gFile_graphics_battle_anims_sprites_245_sheet, 0x0600, 10245
+ obj_tiles gFile_graphics_battle_anims_sprites_246_sheet, 0x1000, 10246
+ obj_tiles gFile_graphics_battle_anims_sprites_247_sheet, 0x0400, 10247
+ obj_tiles gFile_graphics_battle_anims_sprites_248_sheet, 0x0020, 10248
+ obj_tiles gFile_graphics_battle_anims_sprites_249_sheet, 0x0080, 10249
+ obj_tiles gFile_graphics_battle_anims_sprites_250_sheet, 0x0800, 10250
+ obj_tiles gFile_graphics_battle_anims_sprites_251_sheet, 0x0080, 10251
+ obj_tiles gFile_graphics_battle_anims_sprites_252_sheet, 0x0200, 10252
+ obj_tiles gFile_graphics_battle_anims_sprites_253_sheet, 0x0400, 10253
+ obj_tiles gFile_graphics_battle_anims_sprites_254_sheet, 0x0200, 10254
+ obj_tiles gFile_graphics_battle_anims_sprites_255_sheet, 0x0200, 10255
+ obj_tiles gFile_graphics_battle_anims_sprites_256_sheet, 0x0800, 10256
+ obj_tiles gFile_graphics_battle_anims_sprites_257_sheet, 0x0280, 10257
+ obj_tiles gFile_graphics_battle_anims_sprites_258_sheet, 0x0200, 10258
+ obj_tiles gFile_graphics_battle_anims_sprites_149_sheet, 0x0200, 10259
+ obj_tiles gFile_graphics_battle_anims_sprites_260_sheet, 0x0400, 10260
+ obj_tiles gFile_graphics_battle_anims_sprites_261_sheet, 0x0200, 10261
+ obj_tiles gFile_graphics_battle_anims_sprites_262_sheet, 0x0200, 10262
+ obj_tiles gFile_graphics_battle_anims_sprites_263_sheet, 0x0080, 10263
+ obj_tiles gFile_graphics_battle_anims_sprites_264_sheet, 0x0020, 10264
+ obj_tiles gFile_graphics_battle_anims_sprites_264_sheet, 0x0020, 10265
+ obj_tiles gFile_graphics_battle_anims_sprites_266_sheet, 0x0080, 10266
+ obj_tiles gFile_graphics_battle_anims_sprites_212_sheet, 0x0800, 10267
+ obj_tiles gFile_graphics_battle_anims_sprites_264_sheet, 0x0020, 10268
gUnknown_83AD470:: @ 83AD470
- .incbin "baserom.gba", 0x3AD470, 0x4E0
+ obj_tiles gFile_graphics_battle_anims_sprites_269_sheet, 0x0080, 10269
+ obj_tiles gFile_graphics_battle_anims_sprites_270_sheet, 0x0400, 10270
+ obj_tiles gFile_graphics_battle_anims_sprites_271_sheet, 0x0080, 10271
+ obj_tiles gFile_graphics_battle_anims_sprites_272_sheet, 0x0800, 10272
+ obj_tiles gFile_graphics_battle_anims_sprites_273_sheet, 0x0020, 10273
+ obj_tiles gFile_graphics_battle_anims_sprites_274_sheet, 0x0800, 10274
+ obj_tiles gFile_graphics_battle_anims_sprites_275_sheet, 0x0800, 10275
+ obj_tiles gFile_graphics_battle_anims_sprites_276_sheet, 0x0800, 10276
+ obj_tiles gFile_graphics_battle_anims_sprites_277_sheet, 0x1000, 10277
+ obj_tiles gFile_graphics_battle_anims_sprites_278_sheet, 0x0800, 10278
+ obj_tiles gFile_graphics_battle_anims_sprites_279_sheet, 0x00a0, 10279
+ obj_tiles gFile_graphics_battle_anims_sprites_280_sheet, 0x0800, 10280
+ obj_tiles gFile_graphics_battle_anims_sprites_281_sheet, 0x0200, 10281
+ obj_tiles gFile_graphics_battle_anims_sprites_282_sheet, 0x0600, 10282
+ obj_tiles gFile_graphics_battle_anims_sprites_283_sheet, 0x0200, 10283
+ obj_tiles gFile_graphics_battle_anims_sprites_284_sheet, 0x0800, 10284
+ obj_tiles gFile_graphics_battle_anims_sprites_285_sheet, 0x0200, 10285
+ obj_tiles gFile_graphics_battle_anims_sprites_183_sheet, 0x0800, 10286
+ obj_tiles gFile_graphics_battle_anims_sprites_056_sheet, 0x1000, 10287
+ obj_tiles gFile_graphics_battle_anims_sprites_163_sheet, 0x0100, 10288
+
+ obj_pal gFile_graphics_battle_anims_sprites_000_palette, 10000
+ obj_pal gFile_graphics_battle_anims_sprites_001_palette, 10001
+ obj_pal gFile_graphics_battle_anims_sprites_002_palette, 10002
+ obj_pal gFile_graphics_battle_anims_sprites_003_palette, 10003
+ obj_pal gFile_graphics_battle_anims_sprites_004_palette, 10004
+ obj_pal gFile_graphics_battle_anims_sprites_005_palette, 10005
+ obj_pal gFile_graphics_battle_anims_sprites_006_palette, 10006
+ obj_pal gFile_graphics_battle_anims_sprites_007_palette, 10007
+ obj_pal gFile_graphics_battle_anims_sprites_008_palette, 10008
+ obj_pal gFile_graphics_battle_anims_sprites_009_palette, 10009
+ obj_pal gFile_graphics_battle_anims_sprites_010_palette, 10010
+ obj_pal gFile_graphics_battle_anims_sprites_011_palette, 10011
+ obj_pal gFile_graphics_battle_anims_sprites_012_palette, 10012
+ obj_pal gFile_graphics_battle_anims_sprites_013_palette, 10013
+ obj_pal gFile_graphics_battle_anims_sprites_014_palette, 10014
+ obj_pal gFile_graphics_battle_anims_sprites_015_palette, 10015
+ obj_pal gFile_graphics_battle_anims_sprites_016_palette, 10016
+ obj_pal gFile_graphics_battle_anims_sprites_016_palette, 10017
+ obj_pal gFile_graphics_battle_anims_sprites_018_palette, 10018
+ obj_pal gFile_graphics_battle_anims_sprites_019_palette, 10019
+ obj_pal gFile_graphics_battle_anims_sprites_020_palette, 10020
+ obj_pal gFile_graphics_battle_anims_sprites_021_palette, 10021
+ obj_pal gFile_graphics_battle_anims_sprites_022_palette, 10022
+ obj_pal gFile_graphics_battle_anims_sprites_023_palette, 10023
+ obj_pal gFile_graphics_battle_anims_sprites_024_palette, 10024
+ obj_pal gFile_graphics_battle_anims_sprites_025_palette, 10025
+ obj_pal gFile_graphics_battle_anims_sprites_026_palette, 10026
+ obj_pal gFile_graphics_battle_anims_sprites_027_palette, 10027
+ obj_pal gFile_graphics_battle_anims_sprites_028_palette, 10028
+ obj_pal gFile_graphics_battle_anims_sprites_029_palette, 10029
+ obj_pal gFile_graphics_battle_anims_sprites_030_palette, 10030
+ obj_pal gFile_graphics_battle_anims_sprites_031_palette, 10031
+ obj_pal gFile_graphics_battle_anims_sprites_032_palette, 10032
+ obj_pal gFile_graphics_battle_anims_sprites_033_palette, 10033
+ obj_pal gFile_graphics_battle_anims_sprites_033_palette, 10034
+ obj_pal gFile_graphics_battle_anims_sprites_033_palette, 10035
+ obj_pal gFile_graphics_battle_anims_sprites_036_palette, 10036
+ obj_pal gFile_graphics_battle_anims_sprites_036_palette, 10037
+ obj_pal gFile_graphics_battle_anims_sprites_038_palette, 10038
+ obj_pal gFile_graphics_battle_anims_sprites_039_palette, 10039
+ obj_pal gFile_graphics_battle_anims_sprites_038_palette, 10040
+ obj_pal gFile_graphics_battle_anims_sprites_038_palette, 10041
+ obj_pal gFile_graphics_battle_anims_sprites_042_palette, 10042
+ obj_pal gFile_graphics_battle_anims_sprites_043_palette, 10043
+ obj_pal gFile_graphics_battle_anims_sprites_044_palette, 10044
+ obj_pal gFile_graphics_battle_anims_sprites_045_palette, 10045
+ obj_pal gFile_graphics_battle_anims_sprites_046_palette, 10046
+ obj_pal gFile_graphics_battle_anims_sprites_047_palette, 10046
+ obj_pal gFile_graphics_battle_anims_sprites_048_palette, 10048
+ obj_pal gFile_graphics_battle_anims_sprites_049_palette, 10049
+ obj_pal gFile_graphics_battle_anims_sprites_050_palette, 10050
+ obj_pal gFile_graphics_battle_anims_sprites_050_palette, 10051
+ obj_pal gFile_graphics_battle_anims_sprites_050_palette, 10052
+ obj_pal gFile_graphics_battle_anims_sprites_026_palette, 10053
+ obj_pal gFile_graphics_battle_anims_sprites_054_palette, 10054
+ obj_pal gFile_graphics_battle_anims_sprites_050_palette, 10055
+ obj_pal gFile_graphics_battle_anims_sprites_056_palette, 10056
+ obj_pal gFile_graphics_battle_anims_sprites_057_palette, 10057
+ obj_pal gFile_graphics_battle_anims_sprites_058_palette, 10058
+ obj_pal gFile_graphics_battle_anims_sprites_059_palette, 10059
+ obj_pal gFile_graphics_battle_anims_sprites_060_palette, 10060
+ obj_pal gFile_graphics_battle_anims_sprites_061_palette, 10061
+ obj_pal gFile_graphics_battle_anims_sprites_062_palette, 10062
+ obj_pal gFile_graphics_battle_anims_sprites_063_palette, 10063
+ obj_pal gFile_graphics_battle_anims_sprites_064_palette, 10064
+ obj_pal gFile_graphics_battle_anims_sprites_065_palette, 10065
+ obj_pal gFile_graphics_battle_anims_sprites_066_palette, 10066
+ obj_pal gFile_graphics_battle_anims_sprites_067_palette, 10067
+ obj_pal gFile_graphics_battle_anims_sprites_068_palette, 10068
+ obj_pal gFile_graphics_battle_anims_sprites_065_palette, 10069
+ obj_pal gFile_graphics_battle_anims_sprites_070_palette, 10070
+ obj_pal gFile_graphics_battle_anims_sprites_070_palette, 10071
+ obj_pal gFile_graphics_battle_anims_sprites_072_palette, 10072
+ obj_pal gFile_graphics_battle_anims_sprites_073_palette, 10073
+ obj_pal gFile_graphics_battle_anims_sprites_074_palette, 10074
+ obj_pal gFile_graphics_battle_anims_sprites_075_palette, 10075
+ obj_pal gFile_graphics_battle_anims_sprites_076_palette, 10076
+ obj_pal gFile_graphics_battle_anims_sprites_076_palette, 10077
+ obj_pal gFile_graphics_battle_anims_sprites_078_palette, 10078
+ obj_pal gFile_graphics_battle_anims_sprites_078_palette, 10079
+ obj_pal gFile_graphics_battle_anims_sprites_080_palette, 10080
+ obj_pal gFile_graphics_battle_anims_sprites_081_palette, 10081
+ obj_pal gFile_graphics_battle_anims_sprites_082_palette, 10082
+ obj_pal gFile_graphics_battle_anims_sprites_083_palette, 10083
+ obj_pal gFile_graphics_battle_anims_sprites_084_palette, 10084
+ obj_pal gFile_graphics_battle_anims_sprites_085_palette, 10085
+ obj_pal gFile_graphics_battle_anims_sprites_086_palette, 10086
+ obj_pal gFile_graphics_battle_anims_sprites_087_palette, 10087
+ obj_pal gFile_graphics_battle_anims_sprites_088_palette, 10088
+ obj_pal gFile_graphics_battle_anims_sprites_089_palette, 10089
+ obj_pal gFile_graphics_battle_anims_sprites_090_palette, 10090
+ obj_pal gFile_graphics_battle_anims_sprites_091_palette, 10091
+ obj_pal gFile_graphics_battle_anims_sprites_092_palette, 10092
+ obj_pal gFile_graphics_battle_anims_sprites_093_palette, 10093
+ obj_pal gFile_graphics_battle_anims_sprites_094_palette, 10094
+ obj_pal gFile_graphics_battle_anims_sprites_095_palette, 10095
+ obj_pal gFile_graphics_battle_anims_sprites_096_palette, 10096
+ obj_pal gFile_graphics_battle_anims_sprites_097_palette, 10097
+ obj_pal gFile_graphics_battle_anims_sprites_094_palette, 10098
+ obj_pal gFile_graphics_battle_anims_sprites_099_palette, 10099
+ obj_pal gFile_graphics_battle_anims_sprites_100_palette, 10100
+ obj_pal gFile_graphics_battle_anims_sprites_101_palette, 10101
+ obj_pal gFile_graphics_battle_anims_sprites_101_palette, 10102
+ obj_pal gFile_graphics_battle_anims_sprites_103_palette, 10103
+ obj_pal gFile_graphics_battle_anims_sprites_104_palette, 10104
+ obj_pal gFile_graphics_battle_anims_sprites_105_palette, 10105
+ obj_pal gFile_graphics_battle_anims_sprites_105_palette, 10106
+ obj_pal gFile_graphics_battle_anims_sprites_107_palette, 10107
+ obj_pal gFile_graphics_battle_anims_sprites_107_palette, 10108
+ obj_pal gFile_graphics_battle_anims_sprites_109_palette, 10109
+ obj_pal gFile_graphics_battle_anims_sprites_109_palette, 10110
+ obj_pal gFile_graphics_battle_anims_sprites_111_palette, 10111
+ obj_pal gFile_graphics_battle_anims_sprites_112_palette, 10112
+ obj_pal gFile_graphics_battle_anims_sprites_113_palette, 10113
+ obj_pal gFile_graphics_battle_anims_sprites_114_palette, 10114
+ obj_pal gFile_graphics_battle_anims_sprites_115_palette, 10115
+ obj_pal gFile_graphics_battle_anims_sprites_116_palette, 10116
+ obj_pal gFile_graphics_battle_anims_sprites_117_palette, 10117
+ obj_pal gFile_graphics_battle_anims_sprites_118_palette, 10118
+ obj_pal gFile_graphics_battle_anims_sprites_119_palette, 10119
+ obj_pal gFile_graphics_battle_anims_sprites_120_palette, 10120
+ obj_pal gFile_graphics_battle_anims_sprites_121_palette, 10121
+ obj_pal gFile_graphics_battle_anims_sprites_122_palette, 10122
+ obj_pal gFile_graphics_battle_anims_sprites_122_palette, 10123
+ obj_pal gFile_graphics_battle_anims_sprites_124_palette, 10124
+ obj_pal gFile_graphics_battle_anims_sprites_125_palette, 10125
+ obj_pal gFile_graphics_battle_anims_sprites_126_palette, 10126
+ obj_pal gFile_graphics_battle_anims_sprites_127_palette, 10127
+ obj_pal gFile_graphics_battle_anims_sprites_128_palette, 10128
+ obj_pal gFile_graphics_battle_anims_sprites_128_palette, 10129
+ obj_pal gFile_graphics_battle_anims_sprites_130_palette, 10130
+ obj_pal gFile_graphics_battle_anims_sprites_130_palette, 10131
+ obj_pal gFile_graphics_battle_anims_sprites_132_palette, 10132
+ obj_pal gFile_graphics_battle_anims_sprites_133_palette, 10133
+ obj_pal gFile_graphics_battle_anims_sprites_133_palette, 10134
+ obj_pal gFile_graphics_battle_anims_sprites_135_palette, 10135
gUnknown_83AD950:: @ 83AD950
- .incbin "baserom.gba", 0x3AD950, 0x308
+ obj_pal gFile_graphics_battle_anims_sprites_136_palette, 10136
+ obj_pal gFile_graphics_battle_anims_sprites_135_palette, 10137
+ obj_pal gFile_graphics_battle_anims_sprites_135_palette, 10138
+ obj_pal gFile_graphics_battle_anims_sprites_139_palette, 10139
+ obj_pal gFile_graphics_battle_anims_sprites_140_palette, 10140
+ obj_pal gFile_graphics_battle_anims_sprites_141_palette, 10141
+ obj_pal gFile_graphics_battle_anims_sprites_141_palette, 10142
+ obj_pal gFile_graphics_battle_anims_sprites_143_palette, 10143
+ obj_pal gFile_graphics_battle_anims_sprites_144_palette, 10144
+ obj_pal gFile_graphics_battle_anims_sprites_139_palette, 10145
+ obj_pal gFile_graphics_battle_anims_sprites_115_palette, 10146
+ obj_pal gFile_graphics_battle_anims_sprites_147_palette, 10147
+ obj_pal gFile_graphics_battle_anims_sprites_148_palette, 10148
+ obj_pal gFile_graphics_battle_anims_sprites_148_palette, 10149
+ obj_pal gFile_graphics_battle_anims_sprites_150_palette, 10150
+ obj_pal gFile_graphics_battle_anims_sprites_150_palette, 10151
+ obj_pal gFile_graphics_battle_anims_sprites_152_palette, 10152
+ obj_pal gFile_graphics_battle_anims_sprites_153_palette, 10153
+ obj_pal gFile_graphics_battle_anims_sprites_154_palette, 10154
+ obj_pal gFile_graphics_battle_anims_sprites_155_palette, 10155
+ obj_pal gFile_graphics_battle_anims_sprites_156_palette, 10156
+ obj_pal gFile_graphics_battle_anims_sprites_157_palette, 10157
+ obj_pal gFile_graphics_battle_anims_sprites_158_palette, 10158
+ obj_pal gFile_graphics_battle_anims_sprites_159_palette, 10159
+ obj_pal gFile_graphics_battle_anims_sprites_160_palette, 10160
+ obj_pal gFile_graphics_battle_anims_sprites_161_palette, 10161
+ obj_pal gFile_graphics_battle_anims_sprites_162_palette, 10162
+ obj_pal gFile_graphics_battle_anims_sprites_163_palette, 10163
+ obj_pal gFile_graphics_battle_anims_sprites_164_palette, 10164
+ obj_pal gFile_graphics_battle_anims_sprites_165_palette, 10165
+ obj_pal gFile_graphics_battle_anims_sprites_166_palette, 10166
+ obj_pal gFile_graphics_battle_anims_sprites_167_palette, 10167
+ obj_pal gFile_graphics_battle_anims_sprites_168_palette, 10168
+ obj_pal gFile_graphics_battle_anims_sprites_169_palette, 10169
+ obj_pal gFile_graphics_battle_anims_sprites_170_palette, 10170
+ obj_pal gFile_graphics_battle_anims_sprites_171_palette, 10171
+ obj_pal gFile_graphics_battle_anims_sprites_172_palette, 10172
+ obj_pal gFile_graphics_battle_anims_sprites_001_palette, 10173
+ obj_pal gFile_graphics_battle_anims_sprites_174_palette, 10174
+ obj_pal gFile_graphics_battle_anims_sprites_175_palette, 10175
+ obj_pal gFile_graphics_battle_anims_sprites_176_palette, 10176
+ obj_pal gFile_graphics_battle_anims_sprites_177_palette, 10177
+ obj_pal gFile_graphics_battle_anims_sprites_178_palette, 10178
+ obj_pal gFile_graphics_battle_anims_sprites_179_palette, 10179
+ obj_pal gFile_graphics_battle_anims_sprites_179_palette, 10180
+ obj_pal gFile_graphics_battle_anims_sprites_179_palette, 10181
+ obj_pal gFile_graphics_battle_anims_sprites_182_palette, 10182
+ obj_pal gFile_graphics_battle_anims_sprites_183_palette, 10183
+ obj_pal gFile_graphics_battle_anims_sprites_184_palette, 10184
+ obj_pal gFile_graphics_battle_anims_sprites_185_palette, 10185
+ obj_pal gFile_graphics_battle_anims_sprites_186_palette, 10186
+ obj_pal gFile_graphics_battle_anims_sprites_187_palette, 10187
+ obj_pal gFile_graphics_battle_anims_sprites_188_palette, 10188
+ obj_pal gFile_graphics_battle_anims_sprites_189_palette, 10189
+ obj_pal gFile_graphics_battle_anims_sprites_190_palette, 10190
+ obj_pal gFile_graphics_battle_anims_sprites_191_palette, 10191
+ obj_pal gFile_graphics_battle_anims_sprites_192_palette, 10192
+ obj_pal gFile_graphics_battle_anims_sprites_193_palette, 10193
+ obj_pal gFile_graphics_battle_anims_sprites_194_palette, 10194
+ obj_pal gFile_graphics_battle_anims_sprites_195_palette, 10195
+ obj_pal gFile_graphics_battle_anims_sprites_196_palette, 10196
+ obj_pal gFile_graphics_battle_anims_sprites_197_palette, 10197
+ obj_pal gFile_graphics_battle_anims_sprites_198_palette, 10198
+ obj_pal gFile_graphics_battle_anims_sprites_199_palette, 10199
+ obj_pal gFile_graphics_battle_anims_sprites_200_palette, 10200
+ obj_pal gFile_graphics_battle_anims_sprites_201_palette, 10201
+ obj_pal gFile_graphics_battle_anims_sprites_202_palette, 10202
+ obj_pal gFile_graphics_battle_anims_sprites_203_palette, 10203
+ obj_pal gFile_graphics_battle_anims_sprites_204_palette, 10204
+ obj_pal gFile_graphics_battle_anims_sprites_205_palette, 10205
+ obj_pal gFile_graphics_battle_anims_sprites_206_palette, 10206
+ obj_pal gFile_graphics_battle_anims_sprites_207_palette, 10207
+ obj_pal gFile_graphics_battle_anims_sprites_167_palette, 10208
+ obj_pal gFile_graphics_battle_anims_sprites_209_palette, 10209
+ obj_pal gFile_graphics_battle_anims_sprites_210_palette, 10210
+ obj_pal gFile_graphics_battle_anims_sprites_211_palette, 10211
+ obj_pal gFile_graphics_battle_anims_sprites_211_palette, 10212
+ obj_pal gFile_graphics_battle_anims_sprites_211_palette, 10213
+ obj_pal gFile_graphics_battle_anims_sprites_064_palette, 10214
+ obj_pal gFile_graphics_battle_anims_sprites_215_palette, 10215
+ obj_pal gFile_graphics_battle_anims_sprites_216_palette, 10216
+ obj_pal gFile_graphics_battle_anims_sprites_217_palette, 10217
+ obj_pal gFile_graphics_battle_anims_sprites_218_palette, 10218
+ obj_pal gFile_graphics_battle_anims_sprites_219_palette, 10219
+ obj_pal gFile_graphics_battle_anims_sprites_220_palette, 10220
+ obj_pal gFile_graphics_battle_anims_sprites_221_palette, 10221
+ obj_pal gFile_graphics_battle_anims_sprites_222_palette, 10222
+ obj_pal gFile_graphics_battle_anims_sprites_223_palette, 10223
+ obj_pal gFile_graphics_battle_anims_sprites_224_palette, 10224
+ obj_pal gFile_graphics_battle_anims_sprites_225_palette, 10225
+ obj_pal gFile_graphics_battle_anims_sprites_226_palette, 10226
+ obj_pal gFile_graphics_battle_anims_sprites_226_palette, 10227
+ obj_pal gFile_graphics_battle_anims_sprites_228_palette, 10228
+ obj_pal gFile_graphics_battle_anims_sprites_229_palette, 10229
+ obj_pal gFile_graphics_battle_anims_sprites_230_palette, 10230
+ obj_pal gFile_graphics_battle_anims_sprites_231_palette, 10231
+ obj_pal gFile_graphics_battle_anims_sprites_231_palette, 10232
gUnknown_83ADC58:: @ 83ADC58
- .incbin "baserom.gba", 0x3ADC58, 0x120
+ obj_pal gFile_graphics_battle_anims_sprites_233_palette, 10233
+ obj_pal gFile_graphics_battle_anims_sprites_234_palette, 10234
+ obj_pal gFile_graphics_battle_anims_sprites_235_palette, 10235
+ obj_pal gFile_graphics_battle_anims_sprites_236_palette, 10236
+ obj_pal gFile_graphics_battle_anims_sprites_237_palette, 10237
+ obj_pal gFile_graphics_battle_anims_sprites_238_palette, 10238
+ obj_pal gFile_graphics_battle_anims_sprites_239_palette, 10239
+ obj_pal gFile_graphics_battle_anims_sprites_240_palette, 10240
+ obj_pal gFile_graphics_battle_anims_sprites_241_palette, 10241
+ obj_pal gFile_graphics_battle_anims_sprites_242_palette, 10242
+ obj_pal gFile_graphics_battle_anims_sprites_243_palette, 10243
+ obj_pal gFile_graphics_battle_anims_sprites_244_palette, 10244
+ obj_pal gFile_graphics_battle_anims_sprites_245_palette, 10245
+ obj_pal gFile_graphics_battle_anims_sprites_245_palette, 10246
+ obj_pal gFile_graphics_battle_anims_sprites_064_palette, 10247
+ obj_pal gFile_graphics_battle_anims_sprites_248_palette, 10248
+ obj_pal gFile_graphics_battle_anims_sprites_249_palette, 10249
+ obj_pal gFile_graphics_battle_anims_sprites_249_palette, 10250
+ obj_pal gFile_graphics_battle_anims_sprites_251_palette, 10251
+ obj_pal gFile_graphics_battle_anims_sprites_252_palette, 10252
+ obj_pal gFile_graphics_battle_anims_sprites_253_palette, 10253
+ obj_pal gFile_graphics_battle_anims_sprites_254_palette, 10254
+ obj_pal gFile_graphics_battle_anims_sprites_255_palette, 10255
+ obj_pal gFile_graphics_battle_anims_sprites_256_palette, 10256
+ obj_pal gFile_graphics_battle_anims_sprites_257_palette, 10257
+ obj_pal gFile_graphics_battle_anims_sprites_258_palette, 10258
+ obj_pal gFile_graphics_battle_anims_sprites_259_palette, 10259
+ obj_pal gFile_graphics_battle_anims_sprites_260_palette, 10260
+ obj_pal gBattleAnimSpritePal_FlyingDirt, 10261
+ obj_pal gFile_graphics_battle_anims_sprites_262_palette, 10262
+ obj_pal gFile_graphics_battle_anims_sprites_263_palette, 10263
+ obj_pal gFile_graphics_battle_anims_sprites_264_palette, 10264
+ obj_pal gFile_graphics_battle_anims_sprites_265_palette, 10265
+ obj_pal gFile_graphics_battle_anims_sprites_266_palette, 10266
+ obj_pal gFile_graphics_battle_anims_sprites_267_palette, 10267
+ obj_pal gFile_graphics_battle_anims_sprites_268_palette, 10268
gUnknown_83ADD78:: @ 83ADD78
- .incbin "baserom.gba", 0x3ADD78, 0xA0
+ obj_pal gFile_graphics_battle_anims_sprites_269_palette, 10269
+ obj_pal gFile_graphics_battle_anims_sprites_270_palette, 10270
+ obj_pal gFile_graphics_battle_anims_sprites_271_palette, 10271
+ obj_pal gFile_graphics_battle_anims_sprites_272_palette, 10272
+ obj_pal gFile_graphics_battle_anims_sprites_272_palette, 10273
+ obj_pal gFile_graphics_battle_anims_sprites_274_palette, 10274
+ obj_pal gFile_graphics_battle_anims_sprites_274_palette, 10275
+ obj_pal gFile_graphics_battle_anims_sprites_274_palette, 10276
+ obj_pal gFile_graphics_battle_anims_sprites_277_palette, 10277
+ obj_pal gFile_graphics_battle_anims_sprites_278_palette, 10278
+ obj_pal gFile_graphics_battle_anims_sprites_279_palette, 10279
+ obj_pal gFile_graphics_battle_anims_sprites_280_palette, 10280
+ obj_pal gFile_graphics_battle_anims_sprites_281_palette, 10281
+ obj_pal gFile_graphics_battle_anims_sprites_282_palette, 10282
+ obj_pal gFile_graphics_battle_anims_sprites_283_palette, 10283
+ obj_pal gFile_graphics_battle_anims_sprites_284_palette, 10284
+ obj_pal gFile_graphics_battle_anims_sprites_285_palette, 10285
+ obj_pal gFile_graphics_battle_anims_sprites_286_palette, 10286
+ obj_pal gFile_graphics_battle_anims_sprites_287_palette, 10287
+ obj_pal gFile_graphics_battle_anims_sprites_288_palette, 10288
gUnknown_83ADE18:: @ 83ADE18
- .incbin "baserom.gba", 0x3ADE18, 0x144
+ .4byte gFile_graphics_battle_anims_backgrounds_00_sheet, gFile_graphics_battle_anims_backgrounds_00_palette, gFile_graphics_battle_anims_backgrounds_00_tilemap
+ .4byte gFile_graphics_battle_anims_backgrounds_00_sheet, gFile_graphics_battle_anims_backgrounds_00_palette, gFile_graphics_battle_anims_backgrounds_00_tilemap
+ .4byte gFile_graphics_battle_anims_backgrounds_02_sheet, gFile_graphics_battle_anims_backgrounds_02_palette, gFile_graphics_battle_anims_backgrounds_02_tilemap
+ .4byte gFile_graphics_battle_anims_backgrounds_03_sheet, gFile_graphics_battle_anims_backgrounds_03_palette, gFile_graphics_battle_anims_backgrounds_03_tilemap
+ .4byte gFile_graphics_battle_anims_backgrounds_04_sheet, gFile_graphics_battle_anims_backgrounds_04_palette, gFile_graphics_battle_anims_backgrounds_04_tilemap
+ .4byte gFile_graphics_battle_anims_backgrounds_04_sheet, gFile_graphics_battle_anims_backgrounds_04_palette, gFile_graphics_battle_anims_backgrounds_05_tilemap
+ .4byte gFile_graphics_battle_anims_backgrounds_04_sheet, gFile_graphics_battle_anims_backgrounds_04_palette, gFile_graphics_battle_anims_backgrounds_06_tilemap
+ .4byte gFile_graphics_battle_anims_backgrounds_07_sheet, gFile_graphics_battle_anims_backgrounds_07_palette, gFile_graphics_battle_anims_backgrounds_07_tilemap
+ .4byte gFile_graphics_battle_anims_backgrounds_07_sheet, gFile_graphics_battle_anims_backgrounds_07_palette, gFile_graphics_battle_anims_backgrounds_08_tilemap
+ .4byte gFile_graphics_battle_anims_backgrounds_09_sheet, gFile_graphics_battle_anims_backgrounds_09_palette, gFile_graphics_battle_anims_backgrounds_09_tilemap
+ .4byte gFile_graphics_battle_anims_backgrounds_09_sheet, gFile_graphics_battle_anims_backgrounds_09_palette, gFile_graphics_battle_anims_backgrounds_10_tilemap
+ .4byte gFile_graphics_battle_anims_backgrounds_11_sheet, gFile_graphics_battle_anims_backgrounds_11_palette, gFile_graphics_battle_anims_backgrounds_11_tilemap
+ .4byte gFile_graphics_battle_anims_backgrounds_12_sheet, gFile_graphics_battle_anims_backgrounds_12_palette, gFile_graphics_battle_anims_backgrounds_12_tilemap
+ .4byte gFile_graphics_battle_anims_backgrounds_12_sheet, gFile_graphics_battle_anims_backgrounds_12_palette, gFile_graphics_battle_anims_backgrounds_13_tilemap
+ .4byte gFile_graphics_battle_anims_backgrounds_12_sheet, gFile_graphics_battle_anims_backgrounds_12_palette, gFile_graphics_battle_anims_backgrounds_14_tilemap
+ .4byte gFile_graphics_battle_anims_backgrounds_15_sheet, gFile_graphics_battle_anims_backgrounds_15_palette, gFile_graphics_battle_anims_backgrounds_15_tilemap
+ .4byte gFile_graphics_battle_anims_backgrounds_16_sheet, gFile_graphics_battle_anims_backgrounds_16_palette, gFile_graphics_battle_anims_backgrounds_16_tilemap
+ .4byte gFile_graphics_battle_anims_backgrounds_17_sheet, gFile_graphics_battle_anims_backgrounds_17_palette, gFile_graphics_battle_anims_backgrounds_17_tilemap
+ .4byte gFile_graphics_battle_anims_backgrounds_07_sheet, gFile_graphics_battle_anims_backgrounds_18_palette, gFile_graphics_battle_anims_backgrounds_07_tilemap
+ .4byte gFile_graphics_battle_anims_backgrounds_07_sheet, gFile_graphics_battle_anims_backgrounds_18_palette, gFile_graphics_battle_anims_backgrounds_08_tilemap
+ .4byte gFile_graphics_battle_anims_backgrounds_20_sheet, gFile_graphics_battle_anims_backgrounds_20_palette, gFile_graphics_battle_anims_backgrounds_20_tilemap
+ .4byte gFile_graphics_battle_anims_backgrounds_21_sheet, gFile_graphics_battle_anims_backgrounds_21_palette, gFile_graphics_battle_anims_backgrounds_21_tilemap
+ .4byte gFile_graphics_battle_anims_backgrounds_09_sheet, gFile_graphics_battle_anims_backgrounds_22_palette, gFile_graphics_battle_anims_backgrounds_09_tilemap
+ .4byte gFile_graphics_battle_anims_backgrounds_09_sheet, gFile_graphics_battle_anims_backgrounds_22_palette, gFile_graphics_battle_anims_backgrounds_10_tilemap
+ .4byte gFile_graphics_battle_anims_backgrounds_04_sheet, gFile_graphics_battle_anims_backgrounds_24_palette, gFile_graphics_battle_anims_backgrounds_04_tilemap
+ .4byte gFile_graphics_battle_anims_backgrounds_04_sheet, gFile_graphics_battle_anims_backgrounds_24_palette, gFile_graphics_battle_anims_backgrounds_05_tilemap
+ .4byte gFile_graphics_battle_anims_backgrounds_04_sheet, gFile_graphics_battle_anims_backgrounds_24_palette, gFile_graphics_battle_anims_backgrounds_06_tilemap
gUnknown_83ADF5C:: @ 83ADF5C
- .incbin "baserom.gba", 0x3ADF5C, 0xC0
+ .4byte ScriptCmd_loadspritegfx
+ .4byte ScriptCmd_unloadspritegfx
+ .4byte ScriptCmd_createsprite
+ .4byte ScriptCmd_createvisualtask
+ .4byte ScriptCmd_delay
+ .4byte sub_8072ACC
+ .4byte nullsub_41
+ .4byte nullsub_42
+ .4byte sub_8072B08
+ .4byte sub_8072C08
+ .4byte sub_8072C30
+ .4byte ScriptCmd_clearmonbg
+ .4byte ScriptCmd_setalpha
+ .4byte ScriptCmd_blendoff
+ .4byte ScriptCmd_call
+ .4byte sub_8073698
+ .4byte ScriptCmd_setarg
+ .4byte ScriptCmd_choosetwoturnanim
+ .4byte ScriptCmd_jumpifmoveturn
+ .4byte ScriptCmd_jump
+ .4byte sub_80737A0
+ .4byte ScriptCmd_restorebg
+ .4byte ScriptCmd_waitbgfadeout
+ .4byte sub_80739F0
+ .4byte ScriptCmd_changebg
+ .4byte ScriptCmd_playsewithpan
+ .4byte ScriptCmd_setpan
+ .4byte ScriptCmd_panse_1B
+ .4byte ScriptCmd_loopsewithpan
+ .4byte ScriptCmd_waitplaysewithpan
+ .4byte ScriptCmd_setbldcnt
+ .4byte ScriptCmd_createsoundtask
+ .4byte ScriptCmd_waitsound
+ .4byte ScriptCmd_jumpargeq
+ .4byte sub_807339C
+ .4byte sub_8073484
+ .4byte sub_80741B8
+ .4byte sub_80737E4
+ .4byte ScriptCmd_panse_26
+ .4byte ScriptCmd_panse_27
+ .4byte sub_80741C8
+ .4byte sub_8074214
+ .4byte sub_807423C
+ .4byte ScriptCmd_invisible
+ .4byte ScriptCmd_visible
+ .4byte sub_8074320
+ .4byte sub_80743C8
+ .4byte sub_8074458
diff --git a/data/battle_message.s b/data/battle_message.s
index b60eee4f0..e6ec14116 100644
--- a/data/battle_message.s
+++ b/data/battle_message.s
@@ -1,5 +1,6 @@
#include "constants/moves.h"
#include "constants/battle.h"
+#include "battle_string_ids.h"
.include "asm/macros.inc"
.include "constants/constants.inc"
.section .rodata
@@ -159,7 +160,7 @@ gUnknown_83FB534:: @ 83FB534
.string "{B_ATK_NAME_WITH_PREFIX} can't escape!$"
gUnknown_83FB545:: @ 83FB545
- .string "Hit {B_BUFF1} timeシsス!$"
+ .string "Hit {B_BUFF1} time(s)!$"
gUnknown_83FB555:: @ 83FB555
.string "{B_EFF_NAME_WITH_PREFIX}\n"
@@ -2173,48 +2174,270 @@ gUnknown_83FDF3C:: @ 83FDF3C
.4byte gUnknown_83FB248
gMissStringIds:: @ 83FE514
- .2byte 0x0017, 0x0018, 0x0159, 0x001a
- .2byte 0x014c, 0x00e2, 0x00e3, 0x0021
- .2byte 0x0112, 0x0165, 0x00e8, 0x00e9
- .2byte 0x00e5, 0x00ed, 0x00f0, 0x00f3
- .2byte 0x00ee, 0x00f4, 0x0066, 0x0067
- .2byte 0x00ef, 0x00f5, 0x00ea, 0x00eb
- .2byte 0x00ec, 0x0065, 0x0098, 0x00e5
- .2byte 0x00e5, 0x004e, 0x0160, 0x004d
- .2byte 0x0161, 0x004f, 0x0068, 0x0069
- .2byte 0x001b, 0x006a, 0x0139, 0x0052
- .2byte 0x0053, 0x0070, 0x0071, 0x0073
- .2byte 0x0074, 0x006c, 0x006e, 0x00f7
- .2byte 0x004c, 0x0075, 0x0076, 0x0077
- .2byte 0x00d5, 0x00d6, 0x003d, 0x0130
- .2byte 0x0145, 0x0146, 0x00d7, 0x00d8
- .2byte 0x003e, 0x0130, 0x0054, 0x0055
- .2byte 0x0056, 0x0057, 0x0058, 0x0059
- .2byte 0x013d, 0x013e, 0x005a, 0x005c
- .2byte 0x005b, 0x005d, 0x005b, 0x0148
- .2byte 0x0061, 0x00e5, 0x0063, 0x00e5
- .2byte 0x007d, 0x00e5, 0x007e, 0x00fb
- .2byte 0x0028, 0x0029, 0x0037, 0x0038
- .2byte 0x0023, 0x0024, 0x002e, 0x002f
- .2byte 0x0031, 0x0032, 0x0035, 0x0036
- .2byte 0x0017, 0x007c, 0x0045, 0x0136
- .2byte 0x002d, 0x0139, 0x013b, 0x013c
- .2byte 0x00fd, 0x00fd, 0x00fd, 0x00fd
- .2byte 0x0142, 0x00a1, 0x014f, 0x0107
- .2byte 0x0108, 0x0109, 0x010a, 0x0110
- .2byte 0x0110, 0x0110, 0x0110, 0x0110
- .2byte 0x0110, 0x0110, 0x0110, 0x0111
- .2byte 0x0110, 0x0110, 0x0110, 0x00f1
- .2byte 0x0110, 0x0110, 0x0110, 0x0116
- .2byte 0x0117, 0x0118, 0x0119, 0x011d
- .2byte 0x011e, 0x011f, 0x0128, 0x0123
- .2byte 0x0126, 0x0125, 0x0124, 0x0127
- .2byte 0x0129, 0x0156, 0x0131, 0x0163
- .2byte 0x016a, 0x00c7, 0x0163, 0x016a
- .2byte 0x00c9, 0x0163, 0x016a, 0x0166
- .2byte 0x0167, 0x0168, 0x00cb, 0x0137
- .2byte 0x016f, 0x0170, 0x0171, 0x0172
- .2byte 0x017e, 0x017e, 0x0180, 0x0181
+ .2byte STRINGID_ATTACKMISSED
+ .2byte STRINGID_PKMNPROTECTEDITSELF
+ .2byte STRINGID_PKMNAVOIDEDATTACK
+ .2byte STRINGID_AVOIDEDDAMAGE
+ .2byte STRINGID_PKMNMAKESGROUNDMISS
+
+gNoEscapeStringIds::
+ .2byte STRINGID_CANTESCAPE
+ .2byte STRINGID_DONTLEAVEBIRCH
+ .2byte STRINGID_PREVENTSESCAPE
+ .2byte STRINGID_CANTESCAPE2
+ .2byte STRINGID_ATTACKERCANTESCAPE
+
+gMoveWeatherChangeStringIds::
+ .2byte STRINGID_STARTEDTORAIN
+ .2byte STRINGID_DOWNPOURSTARTED
+ .2byte STRINGID_BUTITFAILED
+ .2byte STRINGID_SANDSTORMBREWED
+ .2byte STRINGID_SUNLIGHTGOTBRIGHT
+ .2byte STRINGID_STARTEDHAIL
+
+gSandStormHailContinuesStringIds::
+ .2byte STRINGID_SANDSTORMRAGES
+ .2byte STRINGID_HAILCONTINUES
+
+gSandStormHailDmgStringIds::
+ .2byte STRINGID_PKMNBUFFETEDBYSANDSTORM
+ .2byte STRINGID_PKMNPELTEDBYHAIL
+
+gSandStormHailEndStringIds::
+ .2byte STRINGID_SANDSTORMSUBSIDED
+ .2byte STRINGID_HAILSTOPPED
+
+gRainContinuesStringIds::
+ .2byte STRINGID_RAINCONTINUES
+ .2byte STRINGID_DOWNPOURCONTINUES
+ .2byte STRINGID_RAINSTOPPED
+
+gProtectLikeUsedStringIds::
+ .2byte STRINGID_PKMNPROTECTEDITSELF2
+ .2byte STRINGID_PKMNBRACEDITSELF
+ .2byte STRINGID_BUTITFAILED
+
+gReflectLightScreenSafeguardStringIds::
+ .2byte STRINGID_BUTITFAILED
+ .2byte STRINGID_PKMNRAISEDDEF
+ .2byte STRINGID_PKMNRAISEDDEFALITTLE
+ .2byte STRINGID_PKMNRAISEDSPDEF
+ .2byte STRINGID_PKMNRAISEDSPDEFALITTLE
+ .2byte STRINGID_PKMNCOVEREDBYVEIL
+
+gLeechSeedStringIds::
+ .2byte STRINGID_PKMNSEEDED
+ .2byte STRINGID_PKMNEVADEDATTACK
+ .2byte STRINGID_ITDOESNTAFFECT
+ .2byte STRINGID_PKMNSAPPEDBYLEECHSEED
+ .2byte STRINGID_ITSUCKEDLIQUIDOOZE
+
+gRestUsedStringIds::
+ .2byte STRINGID_PKMNWENTTOSLEEP
+ .2byte STRINGID_PKMNSLEPTHEALTHY
+
+gUproarOverTurnStringIds::
+ .2byte STRINGID_PKMNMAKINGUPROAR
+ .2byte STRINGID_PKMNCALMEDDOWN
+
+gStockpileUsedStringIds::
+ .2byte STRINGID_PKMNSTOCKPILED
+ .2byte STRINGID_PKMNCANTSTOCKPILE
+
+gWokeUpStringIds::
+ .2byte STRINGID_PKMNWOKEUP
+ .2byte STRINGID_PKMNWOKEUPINUPROAR
+
+gSwallowFailStringIds::
+ .2byte STRINGID_FAILEDTOSWALLOW
+ .2byte STRINGID_PKMNHPFULL
+
+gUproarAwakeStringIds::
+ .2byte STRINGID_PKMNCANTSLEEPINUPROAR2
+ .2byte STRINGID_UPROARKEPTPKMNAWAKE
+ .2byte STRINGID_PKMNSTAYEDAWAKEUSING
+
+gStatUpStringIds::
+ .2byte STRINGID_PKMNSSTATCHANGED
+ .2byte STRINGID_PKMNSSTATCHANGED2
+ .2byte STRINGID_STATSWONTINCREASE
+ .2byte STRINGID_EMPTYSTRING3
+ .2byte STRINGID_USINGXTHEYOFZN
+ .2byte STRINGID_PKMNUSEDXTOGETPUMPED
+
+gStatDownStringIds::
+ .2byte STRINGID_PKMNSSTATCHANGED3
+ .2byte STRINGID_PKMNSSTATCHANGED4
+ .2byte STRINGID_STATSWONTDECREASE
+ .2byte STRINGID_EMPTYSTRING3
+
+gFirstTurnOfTwoStringIds::
+ .2byte STRINGID_PKMNWHIPPEDWHIRLWIND
+ .2byte STRINGID_PKMNTOOKSUNLIGHT
+ .2byte STRINGID_PKMNLOWEREDHEAD
+ .2byte STRINGID_PKMNISGLOWING
+ .2byte STRINGID_PKMNFLEWHIGH
+ .2byte STRINGID_PKMNDUGHOLE
+ .2byte STRINGID_PKMNHIDUNDERWATER
+ .2byte STRINGID_PKMNSPRANGUP
+
+gWrappedStringIds::
+ .2byte STRINGID_PKMNSQUEEZEDBYBIND
+ .2byte STRINGID_PKMNWRAPPEDBY
+ .2byte STRINGID_PKMNTRAPPEDINVORTEX
+ .2byte STRINGID_PKMNCLAMPED
+ .2byte STRINGID_PKMNTRAPPEDINVORTEX
+ .2byte STRINGID_PKMNTRAPPEDBYSANDTOMB
+
+gMistUsedStringIds::
+ .2byte STRINGID_PKMNSHROUDEDINMIST
+ .2byte STRINGID_BUTITFAILED
+
+gFocusEnergyUsedStringIds::
+ .2byte STRINGID_PKMNGETTINGPUMPED
+ .2byte STRINGID_BUTITFAILED
+
+gTransformUsedStringIds::
+ .2byte STRINGID_PKMNTRANSFORMEDINTO
+ .2byte STRINGID_BUTITFAILED
+
+gSubsituteUsedStringIds::
+ .2byte STRINGID_PKMNMADESUBSTITUTE
+ .2byte STRINGID_TOOWEAKFORSUBSTITUTE
+
+gGotPoisonedStringIds::
+ .2byte STRINGID_PKMNWASPOISONED
+ .2byte STRINGID_PKMNPOISONEDBY
+
+gGotParalyzedStringIds::
+ .2byte STRINGID_PKMNWASPARALYZED
+ .2byte STRINGID_PKMNWASPARALYZEDBY
+
+gFellAsleepStringIds::
+ .2byte STRINGID_PKMNFELLASLEEP
+ .2byte STRINGID_PKMNMADESLEEP
+
+gGotBurnedStringIds::
+ .2byte STRINGID_PKMNWASBURNED
+ .2byte STRINGID_PKMNBURNEDBY
+
+gGotFrozenStringIds::
+ .2byte STRINGID_PKMNWASFROZEN
+ .2byte STRINGID_PKMNFROZENBY
+
+gGotDefrostedStringIds::
+ .2byte STRINGID_PKMNWASDEFROSTED2
+ .2byte STRINGID_PKMNWASDEFROSTEDBY
+
+gKOFailedStringIds::
+ .2byte STRINGID_ATTACKMISSED
+ .2byte STRINGID_PKMNUNAFFECTED
+
+gAttractUsedStringIds::
+ .2byte STRINGID_PKMNFELLINLOVE
+ .2byte STRINGID_PKMNSXINFATUATEDY
+
+gLeechSeedDrainStringIds::
+ .2byte STRINGID_PKMNENERGYDRAINED
+ .2byte STRINGID_ITSUCKEDLIQUIDOOZE
+
+gSportsUsedStringIds::
+ .2byte STRINGID_ELECTRICITYWEAKENED
+ .2byte STRINGID_FIREWEAKENED
+
+gPartyStatusHealStringIds::
+ .2byte STRINGID_BELLCHIMED
+ .2byte STRINGID_BELLCHIMED
+ .2byte STRINGID_BELLCHIMED
+ .2byte STRINGID_BELLCHIMED
+ .2byte STRINGID_SOOTHINGAROMA
+
+gFutureMoveUsedStringIds::
+ .2byte STRINGID_PKMNFORESAWATTACK
+ .2byte STRINGID_PKMNCHOSEXASDESTINY
+
+gBallEscapeStringIds::
+ .2byte STRINGID_PKMNBROKEFREE
+ .2byte STRINGID_ITAPPEAREDCAUGHT
+ .2byte STRINGID_AARGHALMOSTHADIT
+ .2byte STRINGID_SHOOTSOCLOSE
+
+gWeatherContinuesStringIds::
+ .2byte STRINGID_ITISRAINING
+ .2byte STRINGID_ITISRAINING
+ .2byte STRINGID_ITISRAINING
+ .2byte STRINGID_ITISRAINING
+ .2byte STRINGID_ITISRAINING
+ .2byte STRINGID_ITISRAINING
+ .2byte STRINGID_ITISRAINING
+ .2byte STRINGID_ITISRAINING
+ .2byte STRINGID_SANDSTORMISRAGING
+ .2byte STRINGID_ITISRAINING
+ .2byte STRINGID_ITISRAINING
+ .2byte STRINGID_ITISRAINING
+ .2byte STRINGID_SUNLIGHTSTRONG
+ .2byte STRINGID_ITISRAINING
+ .2byte STRINGID_ITISRAINING
+ .2byte STRINGID_ITISRAINING
+
+gInobedientStringIds::
+ .2byte STRINGID_PKMNLOAFING
+ .2byte STRINGID_PKMNWONTOBEY
+ .2byte STRINGID_PKMNTURNEDAWAY
+ .2byte STRINGID_PKMNPRETENDNOTNOTICE
+
+gSafariPokeblockResultStringIds::
+ .2byte STRINGID_PKMNWATCHINGCAREFULLY
+ .2byte STRINGID_PKMNANGRY
+ .2byte STRINGID_PKMNEATING
+
+gTrainerItemCuredStatusStringIds::
+ .2byte STRINGID_PKMNSITEMSNAPPEDOUT
+ .2byte STRINGID_PKMNSITEMCUREDPARALYSIS
+ .2byte STRINGID_PKMNSITEMDEFROSTEDIT
+ .2byte STRINGID_PKMNSITEMHEALEDBURN
+ .2byte STRINGID_PKMNSITEMCUREDPOISON
+ .2byte STRINGID_PKMNSITEMWOKEIT
+
+gBerryEffectStringIds::
+ .2byte STRINGID_PKMNSITEMCUREDPROBLEM
+ .2byte STRINGID_PKMNSITEMNORMALIZEDSTATUS
+
+gBRNPreventionStringIds::
+ .2byte STRINGID_PKMNSXPREVENTSBURNS
+ .2byte STRINGID_PKMNSXPREVENTSYSZ
+ .2byte STRINGID_PKMNSXHADNOEFFECTONY
+
+gPRLZPreventionStringIds::
+ .2byte STRINGID_PKMNPREVENTSPARALYSISWITH
+ .2byte STRINGID_PKMNSXPREVENTSYSZ
+ .2byte STRINGID_PKMNSXHADNOEFFECTONY
+
+gPSNPreventionStringIds::
+ .2byte STRINGID_PKMNPREVENTSPOISONINGWITH
+ .2byte STRINGID_PKMNSXPREVENTSYSZ
+ .2byte STRINGID_PKMNSXHADNOEFFECTONY
+
+gItemSwapStringIds::
+ .2byte STRINGID_PKMNOBTAINEDX
+ .2byte STRINGID_PKMNOBTAINEDX2
+ .2byte STRINGID_PKMNOBTAINEDXYOBTAINEDZ
+
+gFlashFireStringIds::
+ .2byte STRINGID_PKMNRAISEDFIREPOWERWITH
+ .2byte STRINGID_PKMNSXMADEYINEFFECTIVE
+
+gCaughtMonStringIds::
+ .2byte STRINGID_PKMNTRANSFERREDSOMEONESPC
+ .2byte STRINGID_PKMNTRANSFERREDBILLSPC
+ .2byte STRINGID_PKMNBOXSOMEONESPCFULL
+ .2byte STRINGID_PKMNBOXBILLSPCFULL
+
+gDoubleBattleRecallStrings::
+ .2byte STRINGID_TRAINER1MON1COMEBACK
+ .2byte STRINGID_TRAINER1MON1COMEBACK
+ .2byte STRINGID_TRAINER1MON2COMEBACK
+ .2byte STRINGID_TRAINER1MON1AND2COMEBACK
gTrappingMoves:: @ 83FE664
.2byte MOVE_BIND
diff --git a/data/battle_scripts_1.s b/data/battle_scripts_1.s
index 8c049f4e0..b802723b7 100644
--- a/data/battle_scripts_1.s
+++ b/data/battle_scripts_1.s
@@ -1,556 +1,4392 @@
+#include "constants/moves.h"
+#include "constants/battle.h"
+#include "constants/battle_move_effects.h"
+#include "constants/battle_script_commands.h"
+#include "constants/battle_anim.h"
+#include "constants/items.h"
+#include "constants/abilities.h"
+#include "constants/species.h"
+#include "constants/pokemon.h"
+#include "constants/songs.h"
+#include "constants/trainers.h"
+#include "constants/game_stat.h"
+#include "battle_string_ids.h"
+ .include "asm/macros/battle_script.inc"
+@ Define these here since misc_constants.inc conflicts with the C headers
+ .set NULL, 0
+ .set FALSE, 0
+ .set TRUE, 1
.section script_data, "aw", %progbits
-
-gBattleScriptsForMoveEffects:: @ 81D65A8
- .incbin "baserom.gba", 0x1D65A8, 0x388
-
-BattleScript_HitFromCritCalc:: @ 81D6930
- .incbin "baserom.gba", 0x1D6930, 0x1E
-
-BattleScript_MoveEnd:: @ 81D694E
- .incbin "baserom.gba", 0x1D694E, 0x12
-
-BattleScript_MoveMissedPause:: @ 81D6960
- .incbin "baserom.gba", 0x1D6960, 0x271
-
-BattleScript_StatUp:: @ 81D6BD1
- .incbin "baserom.gba", 0x1D6BD1, 0x91
-
-BattleScript_StatDown:: @ 81D6C62
- .incbin "baserom.gba", 0x1D6C62, 0x6E0
-
-BattleScript_MoveUsedMustRecharge:: @ 81D7342
- .incbin "baserom.gba", 0x1D7342, 0xA75
-
-BattleScript_PresentHealTarget:: @ 81D7DB7
- .incbin "baserom.gba", 0x1D7DB7, 0x1A
-
-BattleScript_AlreadyAtFullHp:: @ 81D7DD1
- .incbin "baserom.gba", 0x1D7DD1, 0x21
-
-BattleScript_ButItFailed:: @ 81D7DF2
- .incbin "baserom.gba", 0x1D7DF2, 0x882
-
-BattleScript_FaintAttacker:: @ 81D8674
- .incbin "baserom.gba", 0x1D8674, 0x10
-
-BattleScript_FaintTarget:: @ 81D8684
- .incbin "baserom.gba", 0x1D8684, 0x10
-
-BattleScript_GiveExp:: @ 81D8694
- .incbin "baserom.gba", 0x1D8694, 0x9
-
-BattleScript_HandleFaintedMon:: @ 81D869D
- .incbin "baserom.gba", 0x1D869D, 0x152
-
-BattleScript_LocalTrainerBattleWon:: @ 81D87EF
- .incbin "baserom.gba", 0x1D87EF, 0x14
-
-BattleScript_PayDayMoneyAndPickUpItems:: @ 81D8803
- .incbin "baserom.gba", 0x1D8803, 0x3
-
-BattleScript_LocalBattleLost:: @ 81D8806
- .incbin "baserom.gba", 0x1D8806, 0xC6
-
-BattleScript_LinkBattleWonOrLost:: @ 81D88CC
- .incbin "baserom.gba", 0x1D88CC, 0xB
-
-gUnknown_81D88D7:: @ 81D88D7
- .incbin "baserom.gba", 0x1D88D7, 0x2A
-
-BattleScript_SmokeBallEscape:: @ 81D8901
- .incbin "baserom.gba", 0x1D8901, 0xE
-
-BattleScript_RanAwayUsingMonAbility:: @ 81D890F
- .incbin "baserom.gba", 0x1D890F, 0x7
-
-BattleScript_GotAwaySafely:: @ 81D8916
- .incbin "baserom.gba", 0x1D8916, 0x7
-
-BattleScript_WildMonFled:: @ 81D891D
- .incbin "baserom.gba", 0x1D891D, 0x7
-
-BattleScript_PrintCantRunFromTrainer:: @ 81D8924
- .incbin "baserom.gba", 0x1D8924, 0x16
-
-BattleScript_PrintFailedToRunString:: @ 81D893A
- .incbin "baserom.gba", 0x1D893A, 0x9
-
-BattleScript_PrintCantEscapeFromBattle:: @ 81D8943
- .incbin "baserom.gba", 0x1D8943, 0x6
-
-BattleScript_PrintFullBox:: @ 81D8949
- .incbin "baserom.gba", 0x1D8949, 0x4
-
-BattleScript_ActionSwitch:: @ 81D894D
- .incbin "baserom.gba", 0x1D894D, 0xA4
-
-BattleScript_Pausex20:: @ 81D89F1
- .incbin "baserom.gba", 0x1D89F1, 0x4
-
-BattleScript_LevelUp:: @ 81D89F5
- .incbin "baserom.gba", 0x1D89F5, 0x6F
-
-BattleScript_RainContinuesOrEnds:: @ 81D8A64
- .incbin "baserom.gba", 0x1D8A64, 0x1B
-
-BattleScript_DamagingWeatherContinues:: @ 81D8A7F
- .incbin "baserom.gba", 0x1D8A7F, 0x82
-
-BattleScript_SandStormHailEnds:: @ 81D8B01
- .incbin "baserom.gba", 0x1D8B01, 0x9
-
-BattleScript_SunlightContinues:: @ 81D8B0A
- .incbin "baserom.gba", 0x1D8B0A, 0xE
-
-BattleScript_SunlightFaded:: @ 81D8B18
- .incbin "baserom.gba", 0x1D8B18, 0x7
-
-BattleScript_OverworldWeatherStarts:: @ 81D8B1F
- .incbin "baserom.gba", 0x1D8B1F, 0x13
-
-BattleScript_SideStatusWoreOff:: @ 81D8B32
- .incbin "baserom.gba", 0x1D8B32, 0x11
-
-BattleScript_SafeguardEnds:: @ 81D8B43
- .incbin "baserom.gba", 0x1D8B43, 0xA
-
-BattleScript_LeechSeedTurnDrain:: @ 81D8B4D
- .incbin "baserom.gba", 0x1D8B4D, 0x5C
-
-BattleScript_BideStoringEnergy:: @ 81D8BA9
- .incbin "baserom.gba", 0x1D8BA9, 0xB
-
-BattleScript_BideAttack:: @ 81D8BB4
- .incbin "baserom.gba", 0x1D8BB4, 0x48
-
-BattleScript_BideNoEnergyToAttack:: @ 81D8BFC
- .incbin "baserom.gba", 0x1D8BFC, 0x14
-
-BattleScript_SuccessForceOut:: @ 81D8C10
- .incbin "baserom.gba", 0x1D8C10, 0x2E
-
-BattleScript_MistProtected:: @ 81D8C3E
- .incbin "baserom.gba", 0x1D8C3E, 0xA
-
-BattleScript_RageIsBuilding:: @ 81D8C48
- .incbin "baserom.gba", 0x1D8C48, 0x7
-
-BattleScript_MoveUsedIsDisabled:: @ 81D8C4F
- .incbin "baserom.gba", 0x1D8C4F, 0xB
-
-BattleScript_SelectingDisabledMove:: @ 81D8C5A
- .incbin "baserom.gba", 0x1D8C5A, 0x4
-
-BattleScript_DisabledNoMore:: @ 81D8C5E
- .incbin "baserom.gba", 0x1D8C5E, 0x7
-
-BattleScript_EncoredNoMore:: @ 81D8C65
- .incbin "baserom.gba", 0x1D8C65, 0x7
-
-BattleScript_DestinyBondTakesLife:: @ 81D8C6C
- .incbin "baserom.gba", 0x1D8C6C, 0x1B
-
-BattleScript_SpikesOnAttacker:: @ 81D8C87
- .incbin "baserom.gba", 0x1D8C87, 0x37
-
-BattleScript_SpikesOnTarget:: @ 81D8CBE
- .incbin "baserom.gba", 0x1D8CBE, 0x37
-
-BattleScript_SpikesOnFaintedBattler:: @ 81D8CF5
- .incbin "baserom.gba", 0x1D8CF5, 0x3E
-
-BattleScript_PerishSongTakesLife:: @ 81D8D33
- .incbin "baserom.gba", 0x1D8D33, 0x1B
-
-BattleScript_PerishSongCountGoesDown:: @ 81D8D4E
- .incbin "baserom.gba", 0x1D8D4E, 0x7
-
-BattleScript_AllStatsUp:: @ 81D8D55
- .incbin "baserom.gba", 0x1D8D55, 0x9C
-
-BattleScript_RapidSpinAway:: @ 81D8DF1
- .incbin "baserom.gba", 0x1D8DF1, 0x2
-
-BattleScript_WrapFree:: @ 81D8DF3
- .incbin "baserom.gba", 0x1D8DF3, 0x11
-
-BattleScript_LeechSeedFree:: @ 81D8E04
- .incbin "baserom.gba", 0x1D8E04, 0x7
-
-BattleScript_SpikesFree:: @ 81D8E0B
- .incbin "baserom.gba", 0x1D8E0B, 0x7
-
-BattleScript_MonTookFutureAttack:: @ 81D8E12
- .incbin "baserom.gba", 0x1D8E12, 0x8E
-
-BattleScript_NoMovesLeft:: @ 81D8EA0
- .incbin "baserom.gba", 0x1D8EA0, 0x4
-
-BattleScript_SelectingMoveWithNoPP:: @ 81D8EA4
- .incbin "baserom.gba", 0x1D8EA4, 0x4
-
-BattleScript_NoPPForMove:: @ 81D8EA8
- .incbin "baserom.gba", 0x1D8EA8, 0xF
-
-BattleScript_SelectingTormentedMove:: @ 81D8EB7
- .incbin "baserom.gba", 0x1D8EB7, 0xF
-
-BattleScript_SelectingNotAllowedMoveTaunt:: @ 81D8EC6
- .incbin "baserom.gba", 0x1D8EC6, 0x4
-
-BattleScript_MoveUsedIsTaunted:: @ 81D8ECA
- .incbin "baserom.gba", 0x1D8ECA, 0xB
-
-BattleScript_WishComesTrue:: @ 81D8ED5
- .incbin "baserom.gba", 0x1D8ED5, 0x37
-
-BattleScript_IngrainTurnHeal:: @ 81D8F0C
- .incbin "baserom.gba", 0x1D8F0C, 0x29
-
-BattleScript_AtkDefDown:: @ 81D8F35
- .incbin "baserom.gba", 0x1D8F35, 0x51
-
-BattleScript_KnockedOff:: @ 81D8F86
- .incbin "baserom.gba", 0x1D8F86, 0xE
-
-BattleScript_MoveUsedIsImprisoned:: @ 81D8F94
- .incbin "baserom.gba", 0x1D8F94, 0xB
-
-BattleScript_SelectingImprisonedMove:: @ 81D8F9F
- .incbin "baserom.gba", 0x1D8F9F, 0x4
-
-BattleScript_GrudgeTakesPp:: @ 81D8FA3
- .incbin "baserom.gba", 0x1D8FA3, 0x7
-
-BattleScript_MagicCoatBounce:: @ 81D8FAA
- .incbin "baserom.gba", 0x1D8FAA, 0x18
-
-BattleScript_SnatchedMove:: @ 81D8FC2
- .incbin "baserom.gba", 0x1D8FC2, 0x1B
-
-BattleScript_EnduredMsg:: @ 81D8FDD
- .incbin "baserom.gba", 0x1D8FDD, 0x7
-
-BattleScript_OneHitKOMsg:: @ 81D8FE4
- .incbin "baserom.gba", 0x1D8FE4, 0x7
-
-BattleScript_SAtkDown2:: @ 81D8FEB
- .incbin "baserom.gba", 0x1D8FEB, 0x2A
-
-BattleScript_FocusPunchSetUp:: @ 81D9015
- .incbin "baserom.gba", 0x1D9015, 0x14
-
-BattleScript_MoveUsedIsAsleep:: @ 81D9029
- .incbin "baserom.gba", 0x1D9029, 0xD
-
-BattleScript_MoveUsedWokeUp:: @ 81D9036
- .incbin "baserom.gba", 0x1D9036, 0x14
-
-BattleScript_MonWokeUpInUproar:: @ 81D904A
- .incbin "baserom.gba", 0x1D904A, 0x9
-
-BattleScript_PoisonTurnDmg:: @ 81D9053
- .incbin "baserom.gba", 0x1D9053, 0x22
-
-BattleScript_BurnTurnDmg:: @ 81D9075
- .incbin "baserom.gba", 0x1D9075, 0xB
-
-BattleScript_MoveUsedIsFrozen:: @ 81D9080
- .incbin "baserom.gba", 0x1D9080, 0xD
-
-BattleScript_MoveUsedUnfroze:: @ 81D908D
- .incbin "baserom.gba", 0x1D908D, 0xB
-
-BattleScript_DefrostedViaFireMove:: @ 81D9098
- .incbin "baserom.gba", 0x1D9098, 0x9
-
-BattleScript_MoveUsedIsParalyzed:: @ 81D90A1
- .incbin "baserom.gba", 0x1D90A1, 0x10
-
-BattleScript_MoveUsedFlinched:: @ 81D90B1
- .incbin "baserom.gba", 0x1D90B1, 0xB
-
-BattleScript_PrintUproarOverTurns:: @ 81D90BC
- .incbin "baserom.gba", 0x1D90BC, 0x9
-
-BattleScript_ThrashConfuses:: @ 81D90C5
- .incbin "baserom.gba", 0x1D90C5, 0xE
-
-BattleScript_MoveUsedIsConfused:: @ 81D90D3
- .incbin "baserom.gba", 0x1D90D3, 0x43
-
-BattleScript_MoveUsedIsConfusedNoMore:: @ 81D9116
- .incbin "baserom.gba", 0x1D9116, 0x7
-
-BattleScript_PrintPayDayMoneyString:: @ 81D911D
- .incbin "baserom.gba", 0x1D911D, 0x7
-
-BattleScript_WrapTurnDmg:: @ 81D9124
- .incbin "baserom.gba", 0x1D9124, 0x12
-
-BattleScript_WrapEnds:: @ 81D9136
- .incbin "baserom.gba", 0x1D9136, 0x7
-
-BattleScript_MoveUsedIsInLove:: @ 81D913D
- .incbin "baserom.gba", 0x1D913D, 0xD
-
-BattleScript_MoveUsedIsInLoveCantAttack:: @ 81D914A
- .incbin "baserom.gba", 0x1D914A, 0xB
-
-BattleScript_NightmareTurnDmg:: @ 81D9155
- .incbin "baserom.gba", 0x1D9155, 0x11
-
-BattleScript_CurseTurnDmg:: @ 81D9166
- .incbin "baserom.gba", 0x1D9166, 0x11
-
-BattleScript_TargetPRLZHeal:: @ 81D9177
- .incbin "baserom.gba", 0x1D9177, 0x9
-
-gUnknown_81D9180:: @ 81D9180
- .incbin "baserom.gba", 0x1D9180, 0x12
-
-gUnknown_81D9192:: @ 81D9192
- .incbin "baserom.gba", 0x1D9192, 0xF
-
-gUnknown_81D91A1:: @ 81D91A1
- .incbin "baserom.gba", 0x1D91A1, 0x18
-
-BattleScript_MoveEffectSleep:: @ 81D91B9
- .incbin "baserom.gba", 0x1D91B9, 0xE
-
-BattleScript_YawnMakesAsleep:: @ 81D91C7
- .incbin "baserom.gba", 0x1D91C7, 0xE
-
-BattleScript_MoveEffectPoison:: @ 81D91D5
- .incbin "baserom.gba", 0x1D91D5, 0xF
-
-BattleScript_MoveEffectBurn:: @ 81D91E4
- .incbin "baserom.gba", 0x1D91E4, 0xF
-
-BattleScript_MoveEffectFreeze:: @ 81D91F3
- .incbin "baserom.gba", 0x1D91F3, 0xF
-
-BattleScript_MoveEffectParalysis:: @ 81D9202
- .incbin "baserom.gba", 0x1D9202, 0xF
-
-BattleScript_MoveEffectUproar:: @ 81D9211
- .incbin "baserom.gba", 0x1D9211, 0x7
-
-BattleScript_MoveEffectToxic:: @ 81D9218
- .incbin "baserom.gba", 0x1D9218, 0xD
-
-BattleScript_MoveEffectPayDay:: @ 81D9225
- .incbin "baserom.gba", 0x1D9225, 0x7
-
-BattleScript_MoveEffectWrap:: @ 81D922C
- .incbin "baserom.gba", 0x1D922C, 0x9
-
-BattleScript_MoveEffectConfusion:: @ 81D9235
- .incbin "baserom.gba", 0x1D9235, 0xE
-
-BattleScript_MoveEffectRecoil:: @ 81D9243
- .incbin "baserom.gba", 0x1D9243, 0x2E
-
-BattleScript_ItemSteal:: @ 81D9271
- .incbin "baserom.gba", 0x1D9271, 0xE
-
-BattleScript_DrizzleActivates:: @ 81D927F
- .incbin "baserom.gba", 0x1D927F, 0x14
-
-BattleScript_SpeedBoostActivates:: @ 81D9293
- .incbin "baserom.gba", 0x1D9293, 0xE
-
-BattleScript_TraceActivates:: @ 81D92A1
- .incbin "baserom.gba", 0x1D92A1, 0xA
-
-BattleScript_RainDishActivates:: @ 81D92AB
- .incbin "baserom.gba", 0x1D92AB, 0x14
-
-BattleScript_SandstreamActivates:: @ 81D92BF
- .incbin "baserom.gba", 0x1D92BF, 0x14
-
-BattleScript_ShedSkinActivates:: @ 81D92D3
- .incbin "baserom.gba", 0x1D92D3, 0x25
-
-BattleScript_CastformChange:: @ 81D92F8
- .incbin "baserom.gba", 0x1D92F8, 0xF
-
-BattleScript_IntimidateActivatesEnd3:: @ 81D9307
- .incbin "baserom.gba", 0x1D9307, 0x9
-
-BattleScript_IntimidateActivates:: @ 81D9310
- .incbin "baserom.gba", 0x1D9310, 0x69
-
-BattleScript_DroughtActivates:: @ 81D9379
- .incbin "baserom.gba", 0x1D9379, 0x14
-
-BattleScript_TookAttack:: @ 81D938D
- .incbin "baserom.gba", 0x1D938D, 0x14
-
-BattleScript_SturdyPreventsOHKO:: @ 81D93A1
- .incbin "baserom.gba", 0x1D93A1, 0xE
-
-BattleScript_DampStopsExplosion:: @ 81D93AF
- .incbin "baserom.gba", 0x1D93AF, 0xE
-
-BattleScript_MoveHPDrain_PPLoss:: @ 81D93BD
- .incbin "baserom.gba", 0x1D93BD, 0x1
-
-BattleScript_MoveHPDrain:: @ 81D93BE
- .incbin "baserom.gba", 0x1D93BE, 0x22
-
-BattleScript_MonMadeMoveUseless_PPLoss:: @ 81D93E0
- .incbin "baserom.gba", 0x1D93E0, 0x1
-
-BattleScript_MonMadeMoveUseless:: @ 81D93E1
- .incbin "baserom.gba", 0x1D93E1, 0x15
-
-BattleScript_FlashFireBoost_PPLoss:: @ 81D93F6
- .incbin "baserom.gba", 0x1D93F6, 0x1
-
-BattleScript_FlashFireBoost:: @ 81D93F7
- .incbin "baserom.gba", 0x1D93F7, 0x1F
-
-BattleScript_AbilityNoStatLoss:: @ 81D9416
- .incbin "baserom.gba", 0x1D9416, 0xA
-
-BattleScript_BRNPrevention:: @ 81D9420
- .incbin "baserom.gba", 0x1D9420, 0xC
-
-BattleScript_PRLZPrevention:: @ 81D942C
- .incbin "baserom.gba", 0x1D942C, 0xC
-
-BattleScript_PSNPrevention:: @ 81D9438
- .incbin "baserom.gba", 0x1D9438, 0xC
-
-BattleScript_ObliviousPreventsAttraction:: @ 81D9444
- .incbin "baserom.gba", 0x1D9444, 0xE
-
-BattleScript_FlinchPrevention:: @ 81D9452
- .incbin "baserom.gba", 0x1D9452, 0x1C
-
-BattleScript_SoundproofProtected:: @ 81D946E
- .incbin "baserom.gba", 0x1D946E, 0x10
-
-BattleScript_AbilityNoSpecificStatLoss:: @ 81D947E
- .incbin "baserom.gba", 0x1D947E, 0x10
-
-BattleScript_StickyHoldActivates:: @ 81D948E
- .incbin "baserom.gba", 0x1D948E, 0xE
-
-BattleScript_ColorChangeActivates:: @ 81D949C
- .incbin "baserom.gba", 0x1D949C, 0x7
-
-BattleScript_RoughSkinActivates:: @ 81D94A3
- .incbin "baserom.gba", 0x1D94A3, 0x1B
-
-BattleScript_CuteCharmActivates:: @ 81D94BE
- .incbin "baserom.gba", 0x1D94BE, 0xD
-
-BattleScript_ApplySecondaryEffect:: @ 81D94CB
- .incbin "baserom.gba", 0x1D94CB, 0x3
-
-BattleScript_SynchronizeActivates:: @ 81D94CE
- .incbin "baserom.gba", 0x1D94CE, 0x3
-
-BattleScript_AbilityCuredStatus:: @ 81D94D1
- .incbin "baserom.gba", 0x1D94D1, 0x9
-
-BattleScript_IgnoresWhileAsleep:: @ 81D94DA
- .incbin "baserom.gba", 0x1D94DA, 0x10
-
-BattleScript_IgnoresAndUsesRandomMove:: @ 81D94EA
- .incbin "baserom.gba", 0x1D94EA, 0x8
-
-BattleScript_MoveUsedLoafingAround:: @ 81D94F2
- .incbin "baserom.gba", 0x1D94F2, 0x12
-
-BattleScript_IgnoresAndFallsAsleep:: @ 81D9504
- .incbin "baserom.gba", 0x1D9504, 0x17
-
-BattleScript_IgnoresAndHitsItself:: @ 81D951B
- .incbin "baserom.gba", 0x1D951B, 0xB
-
-BattleScript_SubstituteFade:: @ 81D9526
- .incbin "baserom.gba", 0x1D9526, 0xB
-
-BattleScript_BerryCurePrlzEnd2:: @ 81D9531
- .incbin "baserom.gba", 0x1D9531, 0x6
-
-BattleScript_BerryCureParRet:: @ 81D9537
- .incbin "baserom.gba", 0x1D9537, 0x12
-
-BattleScript_BerryCurePsnEnd2:: @ 81D9549
- .incbin "baserom.gba", 0x1D9549, 0x6
-
-BattleScript_BerryCurePsnRet:: @ 81D954F
- .incbin "baserom.gba", 0x1D954F, 0x12
-
-BattleScript_BerryCureBrnEnd2:: @ 81D9561
- .incbin "baserom.gba", 0x1D9561, 0x6
-
-BattleScript_BerryCureBrnRet:: @ 81D9567
- .incbin "baserom.gba", 0x1D9567, 0x12
-
-BattleScript_BerryCureFrzEnd2:: @ 81D9579
- .incbin "baserom.gba", 0x1D9579, 0x6
-
-BattleScript_BerryCureFrzRet:: @ 81D957F
- .incbin "baserom.gba", 0x1D957F, 0x12
-
-BattleScript_BerryCureSlpEnd2:: @ 81D9591
- .incbin "baserom.gba", 0x1D9591, 0x6
-
-BattleScript_BerryCureSlpRet:: @ 81D9597
- .incbin "baserom.gba", 0x1D9597, 0x12
-
-BattleScript_BerryCureConfusionEnd2:: @ 81D95A9
- .incbin "baserom.gba", 0x1D95A9, 0x6
-
-BattleScript_BerryCureConfusionRet:: @ 81D95AF
- .incbin "baserom.gba", 0x1D95AF, 0x10
-
-BattleScript_BerryCureChosenStatusEnd2:: @ 81D95BF
- .incbin "baserom.gba", 0x1D95BF, 0x6
-
-BattleScript_BerryCureChosenStatusRet:: @ 81D95C5
- .incbin "baserom.gba", 0x1D95C5, 0x14
-
-BattleScript_WhiteHerbEnd2:: @ 81D95D9
- .incbin "baserom.gba", 0x1D95D9, 0x6
-
-BattleScript_WhiteHerbRet:: @ 81D95DF
- .incbin "baserom.gba", 0x1D95DF, 0x10
-
-BattleScript_ItemHealHP_RemoveItem:: @ 81D95EF
- .incbin "baserom.gba", 0x1D95EF, 0x1D
-
-BattleScript_BerryPPHealEnd2:: @ 81D960C
- .incbin "baserom.gba", 0x1D960C, 0x10
-
-BattleScript_ItemHealHP_End2:: @ 81D961C
- .incbin "baserom.gba", 0x1D961C, 0x6
-
-BattleScript_ItemHealHP_Ret:: @ 81D9622
- .incbin "baserom.gba", 0x1D9622, 0x1B
-
-BattleScript_SelectingNotAllowedMoveChoiceItem:: @ 81D963D
- .incbin "baserom.gba", 0x1D963D, 0x4
-
-BattleScript_HangedOnMsg:: @ 81D9641
- .incbin "baserom.gba", 0x1D9641, 0xE
-
-BattleScript_BerryConfuseHealEnd2:: @ 81D964F
- .incbin "baserom.gba", 0x1D964F, 0x2A
-
-BattleScript_BerryStatRaiseEnd2:: @ 81D9679
- .incbin "baserom.gba", 0x1D9679, 0x1B
-
-BattleScript_BerryFocusEnergyEnd2:: @ 81D9694
- .incbin "baserom.gba", 0x1D9694, 0x10
-
-BattleScript_ActionSelectionItemsCantBeUsed:: @ 81D96A4
- .incbin "baserom.gba", 0x1D96A4, 0x4
-
-BattleScript_FlushMessageBox:: @ 81D96A8
- .incbin "baserom.gba", 0x1D96A8, 0x4
+ .align 2
+
+gBattleScriptsForMoveEffects::
+ .4byte BattleScript_EffectHit
+ .4byte BattleScript_EffectSleep
+ .4byte BattleScript_EffectPoisonHit
+ .4byte BattleScript_EffectAbsorb
+ .4byte BattleScript_EffectBurnHit
+ .4byte BattleScript_EffectFreezeHit
+ .4byte BattleScript_EffectParalyzeHit
+ .4byte BattleScript_EffectExplosion
+ .4byte BattleScript_EffectDreamEater
+ .4byte BattleScript_EffectMirrorMove
+ .4byte BattleScript_EffectAttackUp
+ .4byte BattleScript_EffectDefenseUp
+ .4byte BattleScript_EffectHit
+ .4byte BattleScript_EffectSpecialAttackUp
+ .4byte BattleScript_EffectHit
+ .4byte BattleScript_EffectHit
+ .4byte BattleScript_EffectEvasionUp
+ .4byte BattleScript_EffectHit
+ .4byte BattleScript_EffectAttackDown
+ .4byte BattleScript_EffectDefenseDown
+ .4byte BattleScript_EffectSpeedDown
+ .4byte BattleScript_EffectHit
+ .4byte BattleScript_EffectHit
+ .4byte BattleScript_EffectAccuracyDown
+ .4byte BattleScript_EffectEvasionDown
+ .4byte BattleScript_EffectHaze
+ .4byte BattleScript_EffectBide
+ .4byte BattleScript_EffectRampage
+ .4byte BattleScript_EffectRoar
+ .4byte BattleScript_EffectMultiHit
+ .4byte BattleScript_EffectConversion
+ .4byte BattleScript_EffectFlinchHit
+ .4byte BattleScript_EffectRestoreHp
+ .4byte BattleScript_EffectToxic
+ .4byte BattleScript_EffectPayDay
+ .4byte BattleScript_EffectLightScreen
+ .4byte BattleScript_EffectTriAttack
+ .4byte BattleScript_EffectRest
+ .4byte BattleScript_EffectOHKO
+ .4byte BattleScript_EffectRazorWind
+ .4byte BattleScript_EffectSuperFang
+ .4byte BattleScript_EffectDragonRage
+ .4byte BattleScript_EffectTrap
+ .4byte BattleScript_EffectHit
+ .4byte BattleScript_EffectDoubleHit
+ .4byte BattleScript_EffectRecoilIfMiss
+ .4byte BattleScript_EffectMist
+ .4byte BattleScript_EffectFocusEnergy
+ .4byte BattleScript_EffectRecoil
+ .4byte BattleScript_EffectConfuse
+ .4byte BattleScript_EffectAttackUp2
+ .4byte BattleScript_EffectDefenseUp2
+ .4byte BattleScript_EffectSpeedUp2
+ .4byte BattleScript_EffectSpecialAttackUp2
+ .4byte BattleScript_EffectSpecialDefenseUp2
+ .4byte BattleScript_EffectHit
+ .4byte BattleScript_EffectHit
+ .4byte BattleScript_EffectTransform
+ .4byte BattleScript_EffectAttackDown2
+ .4byte BattleScript_EffectDefenseDown2
+ .4byte BattleScript_EffectSpeedDown2
+ .4byte BattleScript_EffectHit
+ .4byte BattleScript_EffectSpecialDefenseDown2
+ .4byte BattleScript_EffectHit
+ .4byte BattleScript_EffectHit
+ .4byte BattleScript_EffectReflect
+ .4byte BattleScript_EffectPoison
+ .4byte BattleScript_EffectParalyze
+ .4byte BattleScript_EffectAttackDownHit
+ .4byte BattleScript_EffectDefenseDownHit
+ .4byte BattleScript_EffectSpeedDownHit
+ .4byte BattleScript_EffectSpecialAttackDownHit
+ .4byte BattleScript_EffectSpecialDefenseDownHit
+ .4byte BattleScript_EffectAccuracyDownHit
+ .4byte BattleScript_EffectHit
+ .4byte BattleScript_EffectSkyAttack
+ .4byte BattleScript_EffectConfuseHit
+ .4byte BattleScript_EffectTwineedle
+ .4byte BattleScript_EffectHit
+ .4byte BattleScript_EffectSubstitute
+ .4byte BattleScript_EffectRecharge
+ .4byte BattleScript_EffectRage
+ .4byte BattleScript_EffectMimic
+ .4byte BattleScript_EffectMetronome
+ .4byte BattleScript_EffectLeechSeed
+ .4byte BattleScript_EffectSplash
+ .4byte BattleScript_EffectDisable
+ .4byte BattleScript_EffectLevelDamage
+ .4byte BattleScript_EffectPsywave
+ .4byte BattleScript_EffectCounter
+ .4byte BattleScript_EffectEncore
+ .4byte BattleScript_EffectPainSplit
+ .4byte BattleScript_EffectSnore
+ .4byte BattleScript_EffectConversion2
+ .4byte BattleScript_EffectLockOn
+ .4byte BattleScript_EffectSketch
+ .4byte BattleScript_EffectHit
+ .4byte BattleScript_EffectSleepTalk
+ .4byte BattleScript_EffectDestinyBond
+ .4byte BattleScript_EffectFlail
+ .4byte BattleScript_EffectSpite
+ .4byte BattleScript_EffectHit
+ .4byte BattleScript_EffectHealBell
+ .4byte BattleScript_EffectHit
+ .4byte BattleScript_EffectTripleKick
+ .4byte BattleScript_EffectThief
+ .4byte BattleScript_EffectMeanLook
+ .4byte BattleScript_EffectNightmare
+ .4byte BattleScript_EffectMinimize
+ .4byte BattleScript_EffectCurse
+ .4byte BattleScript_EffectHit
+ .4byte BattleScript_EffectProtect
+ .4byte BattleScript_EffectSpikes
+ .4byte BattleScript_EffectForesight
+ .4byte BattleScript_EffectPerishSong
+ .4byte BattleScript_EffectSandstorm
+ .4byte BattleScript_EffectProtect
+ .4byte BattleScript_EffectRollout
+ .4byte BattleScript_EffectSwagger
+ .4byte BattleScript_EffectFuryCutter
+ .4byte BattleScript_EffectAttract
+ .4byte BattleScript_EffectReturn
+ .4byte BattleScript_EffectPresent
+ .4byte BattleScript_EffectReturn
+ .4byte BattleScript_EffectSafeguard
+ .4byte BattleScript_EffectThawHit
+ .4byte BattleScript_EffectMagnitude
+ .4byte BattleScript_EffectBatonPass
+ .4byte BattleScript_EffectHit
+ .4byte BattleScript_EffectRapidSpin
+ .4byte BattleScript_EffectSonicboom
+ .4byte BattleScript_EffectHit
+ .4byte BattleScript_EffectMorningSun
+ .4byte BattleScript_EffectMorningSun
+ .4byte BattleScript_EffectMorningSun
+ .4byte BattleScript_EffectHiddenPower
+ .4byte BattleScript_EffectRainDance
+ .4byte BattleScript_EffectSunnyDay
+ .4byte BattleScript_EffectDefenseUpHit
+ .4byte BattleScript_EffectAttackUpHit
+ .4byte BattleScript_EffectAllStatsUpHit
+ .4byte BattleScript_EffectHit
+ .4byte BattleScript_EffectBellyDrum
+ .4byte BattleScript_EffectPsychUp
+ .4byte BattleScript_EffectMirrorCoat
+ .4byte BattleScript_EffectSkullBash
+ .4byte BattleScript_EffectTwister
+ .4byte BattleScript_EffectEarthquake
+ .4byte BattleScript_EffectFutureSight
+ .4byte BattleScript_EffectGust
+ .4byte BattleScript_EffectFlinchMinimizeHit
+ .4byte BattleScript_EffectSolarbeam
+ .4byte BattleScript_EffectThunder
+ .4byte BattleScript_EffectTeleport
+ .4byte BattleScript_EffectBeatUp
+ .4byte BattleScript_EffectSemiInvulnerable
+ .4byte BattleScript_EffectDefenseCurl
+ .4byte BattleScript_EffectSoftboiled
+ .4byte BattleScript_EffectFakeOut
+ .4byte BattleScript_EffectUproar
+ .4byte BattleScript_EffectStockpile
+ .4byte BattleScript_EffectSpitUp
+ .4byte BattleScript_EffectSwallow
+ .4byte BattleScript_EffectHit
+ .4byte BattleScript_EffectHail
+ .4byte BattleScript_EffectTorment
+ .4byte BattleScript_EffectFlatter
+ .4byte BattleScript_EffectWillOWisp
+ .4byte BattleScript_EffectMemento
+ .4byte BattleScript_EffectFacade
+ .4byte BattleScript_EffectFocusPunch
+ .4byte BattleScript_EffectSmellingsalt
+ .4byte BattleScript_EffectFollowMe
+ .4byte BattleScript_EffectNaturePower
+ .4byte BattleScript_EffectCharge
+ .4byte BattleScript_EffectTaunt
+ .4byte BattleScript_EffectHelpingHand
+ .4byte BattleScript_EffectTrick
+ .4byte BattleScript_EffectRolePlay
+ .4byte BattleScript_EffectWish
+ .4byte BattleScript_EffectAssist
+ .4byte BattleScript_EffectIngrain
+ .4byte BattleScript_EffectSuperpower
+ .4byte BattleScript_EffectMagicCoat
+ .4byte BattleScript_EffectRecycle
+ .4byte BattleScript_EffectRevenge
+ .4byte BattleScript_EffectBrickBreak
+ .4byte BattleScript_EffectYawn
+ .4byte BattleScript_EffectKnockOff
+ .4byte BattleScript_EffectEndeavor
+ .4byte BattleScript_EffectEruption
+ .4byte BattleScript_EffectSkillSwap
+ .4byte BattleScript_EffectImprison
+ .4byte BattleScript_EffectRefresh
+ .4byte BattleScript_EffectGrudge
+ .4byte BattleScript_EffectSnatch
+ .4byte BattleScript_EffectLowKick
+ .4byte BattleScript_EffectSecretPower
+ .4byte BattleScript_EffectDoubleEdge
+ .4byte BattleScript_EffectTeeterDance
+ .4byte BattleScript_EffectBurnHit
+ .4byte BattleScript_EffectMudSport
+ .4byte BattleScript_EffectPoisonFang
+ .4byte BattleScript_EffectWeatherBall
+ .4byte BattleScript_EffectOverheat
+ .4byte BattleScript_EffectTickle
+ .4byte BattleScript_EffectCosmicPower
+ .4byte BattleScript_EffectSkyUppercut
+ .4byte BattleScript_EffectBulkUp
+ .4byte BattleScript_EffectPoisonHit
+ .4byte BattleScript_EffectMudSport
+ .4byte BattleScript_EffectCalmMind
+ .4byte BattleScript_EffectDragonDance
+ .4byte BattleScript_EffectCamouflage
+
+BattleScript_EffectHit::
+ jumpifnotmove MOVE_SURF, BattleScript_HitFromAtkCanceler
+ jumpifnostatus3 BS_TARGET, STATUS3_UNDERWATER, BattleScript_HitFromAtkCanceler
+ orword gHitMarker, HITMARKER_IGNORE_UNDERWATER
+ setbyte sDMG_MULTIPLIER, 2
+BattleScript_HitFromAtkCanceler::
+ attackcanceler
+BattleScript_HitFromAccCheck::
+ accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
+BattleScript_HitFromAtkString::
+ attackstring
+ ppreduce
+BattleScript_HitFromCritCalc::
+ critcalc
+ damagecalc
+ typecalc
+ adjustnormaldamage
+BattleScript_HitFromAtkAnimation::
+ attackanimation
+ waitanimation
+ effectivenesssound
+ hitanimation BS_TARGET
+ waitstate
+ healthbarupdate BS_TARGET
+ datahpupdate BS_TARGET
+ critmessage
+ waitmessage 0x40
+ resultmessage
+ waitmessage 0x40
+ seteffectwithchance
+ tryfaintmon BS_TARGET, 0, NULL
+BattleScript_MoveEnd::
+ moveendall
+ end
+
+BattleScript_MakeMoveMissed::
+ orbyte gMoveResultFlags, MOVE_RESULT_MISSED
+BattleScript_PrintMoveMissed::
+ attackstring
+ ppreduce
+BattleScript_MoveMissedPause::
+ pause 0x20
+BattleScript_MoveMissed::
+ effectivenesssound
+ resultmessage
+ waitmessage 0x40
+ goto BattleScript_MoveEnd
+
+BattleScript_EffectSleep::
+ attackcanceler
+ attackstring
+ ppreduce
+ jumpifstatus2 BS_TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed
+ jumpifstatus BS_TARGET, STATUS1_SLEEP, BattleScript_AlreadyAsleep
+ jumpifcantmakeasleep BattleScript_CantMakeAsleep
+ jumpifstatus BS_TARGET, STATUS1_ANY, BattleScript_ButItFailed
+ accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE
+ jumpifsideaffecting BS_TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_SafeguardProtected
+ attackanimation
+ waitanimation
+ setmoveeffect MOVE_EFFECT_SLEEP
+ seteffectprimary
+ goto BattleScript_MoveEnd
+
+BattleScript_AlreadyAsleep::
+ pause 0x20
+ printstring STRINGID_PKMNALREADYASLEEP
+ waitmessage 0x40
+ goto BattleScript_MoveEnd
+
+BattleScript_WasntAffected::
+ pause 0x20
+ printstring STRINGID_PKMNWASNTAFFECTED
+ waitmessage 0x40
+ goto BattleScript_MoveEnd
+
+BattleScript_CantMakeAsleep::
+ pause 0x20
+ printfromtable gUproarAwakeStringIds
+ waitmessage 0x40
+ goto BattleScript_MoveEnd
+
+BattleScript_EffectPoisonHit::
+ setmoveeffect MOVE_EFFECT_POISON
+ goto BattleScript_EffectHit
+
+BattleScript_EffectAbsorb::
+ attackcanceler
+ accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
+ attackstring
+ ppreduce
+ critcalc
+ damagecalc
+ typecalc
+ adjustnormaldamage
+ attackanimation
+ waitanimation
+ effectivenesssound
+ hitanimation BS_TARGET
+ waitstate
+ healthbarupdate BS_TARGET
+ datahpupdate BS_TARGET
+ critmessage
+ waitmessage 0x40
+ resultmessage
+ waitmessage 0x40
+ negativedamage
+ orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
+ jumpifability BS_TARGET, ABILITY_LIQUID_OOZE, BattleScript_AbsorbLiquidOoze
+ setbyte cMULTISTRING_CHOOSER, 0
+ goto BattleScript_AbsorbUpdateHp
+
+BattleScript_AbsorbLiquidOoze::
+ manipulatedamage 0
+ setbyte cMULTISTRING_CHOOSER, 1
+BattleScript_AbsorbUpdateHp::
+ healthbarupdate BS_ATTACKER
+ datahpupdate BS_ATTACKER
+ jumpifmovehadnoeffect BattleScript_AbsorbTryFainting
+ printfromtable gLeechSeedDrainStringIds
+ waitmessage 0x40
+BattleScript_AbsorbTryFainting::
+ tryfaintmon BS_ATTACKER, 0, NULL
+ tryfaintmon BS_TARGET, 0, NULL
+ goto BattleScript_MoveEnd
+
+BattleScript_EffectBurnHit::
+ setmoveeffect MOVE_EFFECT_BURN
+ goto BattleScript_EffectHit
+
+BattleScript_EffectFreezeHit::
+ setmoveeffect MOVE_EFFECT_FREEZE
+ goto BattleScript_EffectHit
+
+BattleScript_EffectParalyzeHit::
+ setmoveeffect MOVE_EFFECT_PARALYSIS
+ goto BattleScript_EffectHit
+
+BattleScript_EffectExplosion::
+ attackcanceler
+ attackstring
+ ppreduce
+ faintifabilitynotdamp
+ setatkhptozero
+ waitstate
+ jumpifbyte CMP_NO_COMMON_BITS, gMoveResultFlags, MOVE_RESULT_MISSED, BattleScript_ExplosionDoAnimStartLoop
+ call BattleScript_PreserveMissedBitDoMoveAnim
+ goto BattleScript_ExplosionLoop
+
+BattleScript_ExplosionDoAnimStartLoop::
+ attackanimation
+ waitanimation
+BattleScript_ExplosionLoop::
+ movevaluescleanup
+ critcalc
+ damagecalc
+ typecalc
+ adjustnormaldamage
+ accuracycheck BattleScript_ExplosionMissed, ACC_CURR_MOVE
+ effectivenesssound
+ hitanimation BS_TARGET
+ waitstate
+ healthbarupdate BS_TARGET
+ datahpupdate BS_TARGET
+ critmessage
+ waitmessage 0x40
+ resultmessage
+ waitmessage 0x40
+ tryfaintmon BS_TARGET, 0, NULL
+ moveendto 16
+ jumpifnexttargetvalid BattleScript_ExplosionLoop
+ tryfaintmon BS_ATTACKER, 0, NULL
+ end
+
+BattleScript_ExplosionMissed::
+ effectivenesssound
+ resultmessage
+ waitmessage 0x40
+ moveendto 16
+ jumpifnexttargetvalid BattleScript_ExplosionLoop
+ tryfaintmon BS_ATTACKER, 0, NULL
+ end
+
+BattleScript_PreserveMissedBitDoMoveAnim::
+ bicbyte gMoveResultFlags, MOVE_RESULT_MISSED
+ attackanimation
+ waitanimation
+ orbyte gMoveResultFlags, MOVE_RESULT_MISSED
+ return
+
+BattleScript_EffectDreamEater::
+ attackcanceler
+ jumpifstatus2 BS_TARGET, STATUS2_SUBSTITUTE, BattleScript_DreamEaterNoEffect
+ jumpifstatus BS_TARGET, STATUS1_SLEEP, BattleScript_DreamEaterWorked
+BattleScript_DreamEaterNoEffect::
+ attackstring
+ ppreduce
+ waitmessage 0x40
+ goto BattleScript_WasntAffected
+
+BattleScript_DreamEaterWorked::
+ accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
+ attackstring
+ ppreduce
+ critcalc
+ damagecalc
+ typecalc
+ adjustnormaldamage
+ attackanimation
+ waitanimation
+ effectivenesssound
+ hitanimation BS_TARGET
+ waitstate
+ healthbarupdate BS_TARGET
+ datahpupdate BS_TARGET
+ critmessage
+ waitmessage 0x40
+ resultmessage
+ waitmessage 0x40
+ negativedamage
+ orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
+ healthbarupdate BS_ATTACKER
+ datahpupdate BS_ATTACKER
+ jumpifmovehadnoeffect BattleScript_DreamEaterTryFaintEnd
+ printstring STRINGID_PKMNDREAMEATEN
+ waitmessage 0x40
+BattleScript_DreamEaterTryFaintEnd::
+ tryfaintmon BS_TARGET, 0, NULL
+ goto BattleScript_MoveEnd
+
+BattleScript_EffectMirrorMove::
+ attackcanceler
+ attackstring
+ pause 0x40
+ trymirrormove
+ ppreduce
+ orbyte gMoveResultFlags, MOVE_RESULT_FAILED
+ printstring STRINGID_MIRRORMOVEFAILED
+ waitmessage 0x40
+ goto BattleScript_MoveEnd
+
+BattleScript_EffectAttackUp::
+ setstatchanger STAT_ATK, 1, FALSE
+ goto BattleScript_EffectStatUp
+
+BattleScript_EffectDefenseUp::
+ setstatchanger STAT_DEF, 1, FALSE
+ goto BattleScript_EffectStatUp
+
+BattleScript_EffectSpecialAttackUp::
+ setstatchanger STAT_SPATK, 1, FALSE
+ goto BattleScript_EffectStatUp
+
+BattleScript_EffectEvasionUp::
+ setstatchanger STAT_EVASION, 1, FALSE
+BattleScript_EffectStatUp::
+ attackcanceler
+BattleScript_EffectStatUpAfterAtkCanceler::
+ attackstring
+ ppreduce
+ statbuffchange STAT_CHANGE_BS_PTR | MOVE_EFFECT_AFFECTS_USER, BattleScript_StatUpEnd
+ jumpifbyte CMP_NOT_EQUAL, cMULTISTRING_CHOOSER, 2, BattleScript_StatUpAttackAnim
+ pause 0x20
+ goto BattleScript_StatUpPrintString
+
+BattleScript_StatUpAttackAnim::
+ attackanimation
+ waitanimation
+BattleScript_StatUpDoAnim::
+ setgraphicalstatchangevalues
+ playanimation BS_ATTACKER, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
+BattleScript_StatUpPrintString::
+ printfromtable gStatUpStringIds
+ waitmessage 0x40
+BattleScript_StatUpEnd::
+ goto BattleScript_MoveEnd
+
+BattleScript_StatUp::
+ playanimation BS_EFFECT_BATTLER, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
+ printfromtable gStatUpStringIds
+ waitmessage 0x40
+ return
+
+BattleScript_EffectAttackDown::
+ setstatchanger STAT_ATK, 1, TRUE
+ goto BattleScript_EffectStatDown
+
+BattleScript_EffectDefenseDown::
+ setstatchanger STAT_DEF, 1, TRUE
+ goto BattleScript_EffectStatDown
+
+BattleScript_EffectSpeedDown::
+ setstatchanger STAT_SPEED, 1, TRUE
+ goto BattleScript_EffectStatDown
+
+BattleScript_EffectAccuracyDown::
+ setstatchanger STAT_ACC, 1, TRUE
+ goto BattleScript_EffectStatDown
+
+BattleScript_EffectEvasionDown::
+ setstatchanger STAT_EVASION, 1, TRUE
+BattleScript_EffectStatDown::
+ attackcanceler
+ jumpifstatus2 BS_TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailedAtkStringPpReduce
+ accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
+ attackstring
+ ppreduce
+ statbuffchange STAT_CHANGE_BS_PTR, BattleScript_StatDownEnd
+ jumpifbyte CMP_LESS_THAN, cMULTISTRING_CHOOSER, 2, BattleScript_StatDownDoAnim
+ jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 3, BattleScript_StatDownEnd
+ pause 0x20
+ goto BattleScript_StatDownPrintString
+
+BattleScript_StatDownDoAnim::
+ attackanimation
+ waitanimation
+ setgraphicalstatchangevalues
+ playanimation BS_TARGET, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
+BattleScript_StatDownPrintString::
+ printfromtable gStatDownStringIds
+ waitmessage 0x40
+BattleScript_StatDownEnd::
+ goto BattleScript_MoveEnd
+
+BattleScript_StatDown::
+ playanimation BS_EFFECT_BATTLER, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
+ printfromtable gStatDownStringIds
+ waitmessage 0x40
+ return
+
+BattleScript_EffectHaze::
+ attackcanceler
+ attackstring
+ ppreduce
+ attackanimation
+ waitanimation
+ normalisebuffs
+ printstring STRINGID_STATCHANGESGONE
+ waitmessage 0x40
+ goto BattleScript_MoveEnd
+
+BattleScript_EffectBide::
+ attackcanceler
+ attackstring
+ ppreduce
+ attackanimation
+ waitanimation
+ orword gHitMarker, HITMARKER_CHARGING
+ setbide
+ goto BattleScript_MoveEnd
+
+BattleScript_EffectRampage::
+ attackcanceler
+ accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
+ attackstring
+ jumpifstatus2 BS_ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_EffectRampage2
+ ppreduce
+BattleScript_EffectRampage2::
+ confuseifrepeatingattackends
+ goto BattleScript_HitFromCritCalc
+
+BattleScript_EffectRoar::
+ attackcanceler
+ attackstring
+ ppreduce
+ jumpifability BS_TARGET, ABILITY_SUCTION_CUPS, BattleScript_AbilityPreventsPhasingOut
+ jumpifstatus3 BS_TARGET, STATUS3_ROOTED, BattleScript_PrintMonIsRooted
+ accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON
+ accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE
+ forcerandomswitch BattleScript_ButItFailed
+
+BattleScript_EffectMultiHit::
+ attackcanceler
+ accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
+ attackstring
+ ppreduce
+ setmultihitcounter 0
+ initmultihitstring
+ setbyte sMULTIHIT_EFFECT, 0
+BattleScript_MultiHitLoop::
+ jumpifhasnohp BS_ATTACKER, BattleScript_MultiHitEnd
+ jumpifhasnohp BS_TARGET, BattleScript_MultiHitPrintStrings
+ jumpifhalfword CMP_EQUAL, gChosenMove, MOVE_SLEEP_TALK, BattleScript_DoMultiHit
+ jumpifstatus BS_ATTACKER, STATUS1_SLEEP, BattleScript_MultiHitPrintStrings
+BattleScript_DoMultiHit::
+ movevaluescleanup
+ copybyte cEFFECT_CHOOSER, sMULTIHIT_EFFECT
+ critcalc
+ damagecalc
+ typecalc
+ jumpifmovehadnoeffect BattleScript_MultiHitNoMoreHits
+ adjustnormaldamage
+ attackanimation
+ waitanimation
+ effectivenesssound
+ hitanimation BS_TARGET
+ waitstate
+ healthbarupdate BS_TARGET
+ datahpupdate BS_TARGET
+ critmessage
+ waitmessage 0x40
+ printstring STRINGID_EMPTYSTRING3
+ waitmessage 1
+ addbyte gBattleScripting + 12, 1
+ moveendto 16
+ jumpifbyte CMP_COMMON_BITS, gMoveResultFlags, MOVE_RESULT_FOE_ENDURED, BattleScript_MultiHitPrintStrings
+ decrementmultihit BattleScript_MultiHitLoop
+ goto BattleScript_MultiHitPrintStrings
+
+BattleScript_MultiHitNoMoreHits::
+ pause 0x20
+BattleScript_MultiHitPrintStrings::
+ resultmessage
+ waitmessage 0x40
+ jumpifmovehadnoeffect BattleScript_MultiHitEnd
+ copyarray gBattleTextBuff1, sMULTIHIT_STRING, 6
+ printstring STRINGID_HITXTIMES
+ waitmessage 0x40
+BattleScript_MultiHitEnd::
+ seteffectwithchance
+ tryfaintmon BS_TARGET, 0, NULL
+ moveendcase 2
+ moveendfrom 4
+ end
+
+BattleScript_EffectConversion::
+ attackcanceler
+ attackstring
+ ppreduce
+ tryconversiontypechange BattleScript_ButItFailed
+ attackanimation
+ waitanimation
+ printstring STRINGID_PKMNCHANGEDTYPE
+ waitmessage 0x40
+ goto BattleScript_MoveEnd
+
+BattleScript_EffectFlinchHit::
+ setmoveeffect MOVE_EFFECT_FLINCH
+ goto BattleScript_EffectHit
+
+BattleScript_EffectRestoreHp::
+ attackcanceler
+ attackstring
+ ppreduce
+ tryhealhalfhealth BattleScript_AlreadyAtFullHp, BS_ATTACKER
+ attackanimation
+ waitanimation
+ orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
+ healthbarupdate BS_ATTACKER
+ datahpupdate BS_ATTACKER
+ printstring STRINGID_PKMNREGAINEDHEALTH
+ waitmessage 0x40
+ goto BattleScript_MoveEnd
+
+BattleScript_EffectToxic::
+ attackcanceler
+ attackstring
+ ppreduce
+ jumpifability BS_TARGET, ABILITY_IMMUNITY, BattleScript_ImmunityProtected
+ jumpifstatus2 BS_TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed
+ jumpifstatus BS_TARGET, STATUS1_POISON, BattleScript_AlreadyPoisoned
+ jumpifstatus BS_TARGET, STATUS1_TOXIC_POISON, BattleScript_AlreadyPoisoned
+ jumpifstatus BS_TARGET, STATUS1_ANY, BattleScript_ButItFailed
+ jumpiftype BS_TARGET, TYPE_POISON, BattleScript_NotAffected
+ jumpiftype BS_TARGET, TYPE_STEEL, BattleScript_NotAffected
+ accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE
+ jumpifsideaffecting BS_TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_SafeguardProtected
+ attackanimation
+ waitanimation
+ setmoveeffect MOVE_EFFECT_TOXIC
+ seteffectprimary
+ resultmessage
+ waitmessage 0x40
+ goto BattleScript_MoveEnd
+
+BattleScript_AlreadyPoisoned::
+ pause 0x40
+ printstring STRINGID_PKMNALREADYPOISONED
+ waitmessage 0x40
+ goto BattleScript_MoveEnd
+
+BattleScript_ImmunityProtected::
+ copybyte gEffectBattler, gBattlerTarget
+ setbyte cMULTISTRING_CHOOSER, 0
+ call BattleScript_PSNPrevention
+ goto BattleScript_MoveEnd
+
+BattleScript_EffectPayDay::
+ setmoveeffect MOVE_EFFECT_PAYDAY
+ goto BattleScript_EffectHit
+
+BattleScript_EffectLightScreen::
+ attackcanceler
+ attackstring
+ ppreduce
+ setlightscreen
+ goto BattleScript_PrintReflectLightScreenSafeguardString
+
+BattleScript_EffectTriAttack::
+ setmoveeffect MOVE_EFFECT_TRI_ATTACK
+ goto BattleScript_EffectHit
+
+BattleScript_EffectRest::
+ attackcanceler
+ attackstring
+ ppreduce
+ jumpifstatus BS_ATTACKER, STATUS1_SLEEP, BattleScript_RestIsAlreadyAsleep
+ jumpifcantmakeasleep BattleScript_RestCantSleep
+ trysetrest BattleScript_AlreadyAtFullHp
+ pause 0x20
+ printfromtable gRestUsedStringIds
+ waitmessage 0x40
+ updatestatusicon BS_ATTACKER
+ waitstate
+ goto BattleScript_PresentHealTarget
+
+BattleScript_RestCantSleep::
+ pause 0x40
+ printfromtable gUproarAwakeStringIds
+ waitmessage 0x40
+ goto BattleScript_MoveEnd
+
+BattleScript_RestIsAlreadyAsleep::
+ pause 0x20
+ printstring STRINGID_PKMNALREADYASLEEP2
+ waitmessage 0x40
+ goto BattleScript_MoveEnd
+
+BattleScript_EffectOHKO::
+ attackcanceler
+ attackstring
+ ppreduce
+ accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON
+ typecalc
+ jumpifmovehadnoeffect BattleScript_HitFromAtkAnimation
+ tryKO BattleScript_KOFail
+ trysetdestinybondtohappen
+ goto BattleScript_HitFromAtkAnimation
+
+BattleScript_KOFail::
+ pause 0x40
+ printfromtable gKOFailedStringIds
+ waitmessage 0x40
+ goto BattleScript_MoveEnd
+
+BattleScript_EffectRazorWind::
+ jumpifstatus2 BS_ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_TwoTurnMovesSecondTurn
+ jumpifword CMP_COMMON_BITS, gHitMarker, HITMARKER_NO_ATTACKSTRING, BattleScript_TwoTurnMovesSecondTurn
+ setbyte sTWOTURN_STRINGID, 0
+ call BattleScriptFirstChargingTurn
+ goto BattleScript_MoveEnd
+
+BattleScript_TwoTurnMovesSecondTurn::
+ attackcanceler
+ setmoveeffect MOVE_EFFECT_CHARGING
+ setbyte sB_ANIM_TURN, 1
+ clearstatusfromeffect BS_ATTACKER
+ orword gHitMarker, HITMARKER_NO_PPDEDUCT
+ jumpifnotmove MOVE_SKY_ATTACK, BattleScript_HitFromAccCheck
+ setmoveeffect MOVE_EFFECT_FLINCH
+ goto BattleScript_HitFromAccCheck
+
+BattleScriptFirstChargingTurn::
+ attackcanceler
+ printstring STRINGID_EMPTYSTRING3
+ ppreduce
+ attackanimation
+ waitanimation
+ orword gHitMarker, HITMARKER_CHARGING
+ setmoveeffect MOVE_EFFECT_CHARGING | MOVE_EFFECT_AFFECTS_USER
+ seteffectprimary
+ copybyte cMULTISTRING_CHOOSER, sTWOTURN_STRINGID
+ printfromtable gFirstTurnOfTwoStringIds
+ waitmessage 0x40
+ return
+
+BattleScript_EffectSuperFang::
+ attackcanceler
+ accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
+ attackstring
+ ppreduce
+ typecalc
+ bicbyte gMoveResultFlags, MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE
+ damagetohalftargethp
+ goto BattleScript_HitFromAtkAnimation
+
+BattleScript_EffectDragonRage::
+ attackcanceler
+ accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
+ attackstring
+ ppreduce
+ typecalc
+ bicbyte gMoveResultFlags, MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE
+ setword gBattleMoveDamage, 40
+ adjustsetdamage
+ goto BattleScript_HitFromAtkAnimation
+
+BattleScript_EffectTrap::
+ jumpifnotmove MOVE_WHIRLPOOL, BattleScript_DoWrapEffect
+ jumpifnostatus3 BS_TARGET, STATUS3_UNDERWATER, BattleScript_DoWrapEffect
+ orword gHitMarker, HITMARKER_IGNORE_UNDERWATER
+ setbyte sDMG_MULTIPLIER, 2
+BattleScript_DoWrapEffect::
+ setmoveeffect MOVE_EFFECT_WRAP
+ goto BattleScript_EffectHit
+
+BattleScript_EffectDoubleHit::
+ attackcanceler
+ accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
+ attackstring
+ ppreduce
+ setmultihitcounter 2
+ initmultihitstring
+ setbyte sMULTIHIT_EFFECT, 0
+ goto BattleScript_MultiHitLoop
+
+BattleScript_EffectRecoilIfMiss::
+ attackcanceler
+ accuracycheck BattleScript_MoveMissedDoDamage, ACC_CURR_MOVE
+ goto BattleScript_HitFromAtkString
+
+BattleScript_MoveMissedDoDamage::
+ attackstring
+ ppreduce
+ pause 0x40
+ resultmessage
+ waitmessage 0x40
+ jumpifbyte CMP_COMMON_BITS, gMoveResultFlags, MOVE_RESULT_DOESNT_AFFECT_FOE, BattleScript_MoveEnd
+ printstring STRINGID_PKMNCRASHED
+ waitmessage 0x40
+ damagecalc
+ typecalc
+ adjustnormaldamage
+ manipulatedamage 1
+ bicbyte gMoveResultFlags, MOVE_RESULT_MISSED
+ orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
+ healthbarupdate BS_ATTACKER
+ datahpupdate BS_ATTACKER
+ tryfaintmon BS_ATTACKER, 0, NULL
+ orbyte gMoveResultFlags, MOVE_RESULT_MISSED
+ goto BattleScript_MoveEnd
+
+BattleScript_EffectMist::
+ attackcanceler
+ attackstring
+ ppreduce
+ setmist
+ attackanimation
+ waitanimation
+ printfromtable gMistUsedStringIds
+ waitmessage 0x40
+ goto BattleScript_MoveEnd
+
+BattleScript_EffectFocusEnergy::
+ attackcanceler
+ attackstring
+ ppreduce
+ jumpifstatus2 BS_ATTACKER, STATUS2_FOCUS_ENERGY, BattleScript_ButItFailed
+ setfocusenergy
+ attackanimation
+ waitanimation
+ printfromtable gFocusEnergyUsedStringIds
+ waitmessage 0x40
+ goto BattleScript_MoveEnd
+
+BattleScript_EffectRecoil::
+ setmoveeffect MOVE_EFFECT_RECOIL_25 | MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN
+ jumpifnotmove MOVE_STRUGGLE, BattleScript_EffectHit
+ incrementgamestat GAME_STAT_USED_STRUGGLE
+ goto BattleScript_EffectHit
+
+BattleScript_EffectConfuse::
+ attackcanceler
+ attackstring
+ ppreduce
+ jumpifability BS_TARGET, ABILITY_OWN_TEMPO, BattleScript_OwnTempoPrevents
+ jumpifstatus2 BS_TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed
+ jumpifstatus2 BS_TARGET, STATUS2_CONFUSION, BattleScript_AlreadyConfused
+ accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE
+ jumpifsideaffecting BS_TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_SafeguardProtected
+ attackanimation
+ waitanimation
+ setmoveeffect MOVE_EFFECT_CONFUSION
+ seteffectprimary
+ resultmessage
+ waitmessage 0x40
+ goto BattleScript_MoveEnd
+
+BattleScript_AlreadyConfused::
+ pause 0x20
+ printstring STRINGID_PKMNALREADYCONFUSED
+ waitmessage 0x40
+ goto BattleScript_MoveEnd
+
+BattleScript_EffectAttackUp2::
+ setstatchanger STAT_ATK, 2, FALSE
+ goto BattleScript_EffectStatUp
+
+BattleScript_EffectDefenseUp2::
+ setstatchanger STAT_DEF, 2, FALSE
+ goto BattleScript_EffectStatUp
+
+BattleScript_EffectSpeedUp2::
+ setstatchanger STAT_SPEED, 2, FALSE
+ goto BattleScript_EffectStatUp
+
+BattleScript_EffectSpecialAttackUp2::
+ setstatchanger STAT_SPATK, 2, FALSE
+ goto BattleScript_EffectStatUp
+
+BattleScript_EffectSpecialDefenseUp2::
+ setstatchanger STAT_SPDEF, 2, FALSE
+ goto BattleScript_EffectStatUp
+
+BattleScript_EffectTransform::
+ attackcanceler
+ attackstring
+ ppreduce
+ transformdataexecution
+ attackanimation
+ waitanimation
+ printfromtable gTransformUsedStringIds
+ waitmessage 0x40
+ goto BattleScript_MoveEnd
+
+BattleScript_EffectAttackDown2::
+ setstatchanger STAT_ATK, 2, TRUE
+ goto BattleScript_EffectStatDown
+
+BattleScript_EffectDefenseDown2::
+ setstatchanger STAT_DEF, 2, TRUE
+ goto BattleScript_EffectStatDown
+
+BattleScript_EffectSpeedDown2::
+ setstatchanger STAT_SPEED, 2, TRUE
+ goto BattleScript_EffectStatDown
+
+BattleScript_EffectSpecialDefenseDown2::
+ setstatchanger STAT_SPDEF, 2, TRUE
+ goto BattleScript_EffectStatDown
+
+BattleScript_EffectReflect::
+ attackcanceler
+ attackstring
+ ppreduce
+ setreflect
+BattleScript_PrintReflectLightScreenSafeguardString::
+ attackanimation
+ waitanimation
+ printfromtable gReflectLightScreenSafeguardStringIds
+ waitmessage 0x40
+ goto BattleScript_MoveEnd
+
+BattleScript_EffectPoison::
+ attackcanceler
+ attackstring
+ ppreduce
+ jumpifability BS_TARGET, ABILITY_IMMUNITY, BattleScript_ImmunityProtected
+ jumpifstatus2 BS_TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed
+ jumpifstatus BS_TARGET, STATUS1_POISON, BattleScript_AlreadyPoisoned
+ jumpifstatus BS_TARGET, STATUS1_TOXIC_POISON, BattleScript_AlreadyPoisoned
+ jumpiftype BS_TARGET, TYPE_POISON, BattleScript_NotAffected
+ jumpiftype BS_TARGET, TYPE_STEEL, BattleScript_NotAffected
+ jumpifstatus BS_TARGET, STATUS1_ANY, BattleScript_ButItFailed
+ accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE
+ jumpifsideaffecting BS_TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_SafeguardProtected
+ attackanimation
+ waitanimation
+ setmoveeffect MOVE_EFFECT_POISON
+ seteffectprimary
+ resultmessage
+ waitmessage 0x40
+ goto BattleScript_MoveEnd
+
+BattleScript_EffectParalyze::
+ attackcanceler
+ attackstring
+ ppreduce
+ jumpifability BS_TARGET, ABILITY_LIMBER, BattleScript_LimberProtected
+ jumpifstatus2 BS_TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed
+ typecalc
+ jumpifmovehadnoeffect BattleScript_ButItFailed
+ jumpifstatus BS_TARGET, STATUS1_PARALYSIS, BattleScript_AlreadyParalyzed
+ jumpifstatus BS_TARGET, STATUS1_ANY, BattleScript_ButItFailed
+ accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE
+ jumpifsideaffecting BS_TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_SafeguardProtected
+ attackanimation
+ waitanimation
+ setmoveeffect MOVE_EFFECT_PARALYSIS
+ seteffectprimary
+ resultmessage
+ waitmessage 0x40
+ goto BattleScript_MoveEnd
+
+BattleScript_AlreadyParalyzed::
+ pause 0x20
+ printstring STRINGID_PKMNISALREADYPARALYZED
+ waitmessage 0x40
+ goto BattleScript_MoveEnd
+
+BattleScript_LimberProtected::
+ copybyte gEffectBattler, gBattlerTarget
+ setbyte cMULTISTRING_CHOOSER, 0
+ call BattleScript_PRLZPrevention
+ goto BattleScript_MoveEnd
+
+BattleScript_EffectAttackDownHit::
+ setmoveeffect MOVE_EFFECT_ATK_MINUS_1
+ goto BattleScript_EffectHit
+
+BattleScript_EffectDefenseDownHit::
+ setmoveeffect MOVE_EFFECT_DEF_MINUS_1
+ goto BattleScript_EffectHit
+
+BattleScript_EffectSpeedDownHit::
+ setmoveeffect MOVE_EFFECT_SPD_MINUS_1
+ goto BattleScript_EffectHit
+
+BattleScript_EffectSpecialAttackDownHit::
+ setmoveeffect MOVE_EFFECT_SP_ATK_MINUS_1
+ goto BattleScript_EffectHit
+
+BattleScript_EffectSpecialDefenseDownHit::
+ setmoveeffect MOVE_EFFECT_SP_DEF_MINUS_1
+ goto BattleScript_EffectHit
+
+BattleScript_EffectAccuracyDownHit::
+ setmoveeffect MOVE_EFFECT_ACC_MINUS_1
+ goto BattleScript_EffectHit
+
+BattleScript_EffectSkyAttack::
+ jumpifstatus2 BS_ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_TwoTurnMovesSecondTurn
+ jumpifword CMP_COMMON_BITS, gHitMarker, HITMARKER_NO_ATTACKSTRING, BattleScript_TwoTurnMovesSecondTurn
+ setbyte sTWOTURN_STRINGID, 3
+ call BattleScriptFirstChargingTurn
+ goto BattleScript_MoveEnd
+
+BattleScript_EffectConfuseHit::
+ setmoveeffect MOVE_EFFECT_CONFUSION
+ goto BattleScript_EffectHit
+
+BattleScript_EffectTwineedle::
+ attackcanceler
+ accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
+ setbyte sMULTIHIT_EFFECT, MOVE_EFFECT_POISON
+ attackstring
+ ppreduce
+ setmultihitcounter 2
+ initmultihitstring
+ goto BattleScript_MultiHitLoop
+
+BattleScript_EffectSubstitute::
+ attackcanceler
+ ppreduce
+ attackstring
+ waitstate
+ jumpifstatus2 BS_ATTACKER, STATUS2_SUBSTITUTE, BattleScript_AlreadyHasSubstitute
+ setsubstitute
+ jumpifbyte CMP_NOT_EQUAL, cMULTISTRING_CHOOSER, 1, BattleScript_SubstituteAnim
+ pause 0x20
+ goto BattleScript_SubstituteString
+
+BattleScript_SubstituteAnim::
+ attackanimation
+ waitanimation
+ healthbarupdate BS_ATTACKER
+ datahpupdate BS_ATTACKER
+BattleScript_SubstituteString::
+ printfromtable gSubsituteUsedStringIds
+ waitmessage 0x40
+ goto BattleScript_MoveEnd
+
+BattleScript_AlreadyHasSubstitute::
+ pause 0x20
+ printstring STRINGID_PKMNHASSUBSTITUTE
+ waitmessage 0x40
+ goto BattleScript_MoveEnd
+
+BattleScript_EffectRecharge::
+ attackcanceler
+ accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
+ setmoveeffect MOVE_EFFECT_RECHARGE | MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN
+ goto BattleScript_HitFromAtkString
+
+BattleScript_MoveUsedMustRecharge::
+ printstring STRINGID_PKMNMUSTRECHARGE
+ waitmessage 0x40
+ goto BattleScript_MoveEnd
+
+BattleScript_EffectRage::
+ attackcanceler
+ accuracycheck BattleScript_RageMiss, ACC_CURR_MOVE
+ setmoveeffect MOVE_EFFECT_RAGE
+ seteffectprimary
+ setmoveeffect 0
+ goto BattleScript_HitFromAtkString
+
+BattleScript_RageMiss::
+ setmoveeffect MOVE_EFFECT_RAGE
+ clearstatusfromeffect BS_ATTACKER
+ goto BattleScript_PrintMoveMissed
+
+BattleScript_EffectMimic::
+ attackcanceler
+ attackstring
+ ppreduce
+ jumpifstatus2 BS_TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed
+ accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON
+ mimicattackcopy BattleScript_ButItFailed
+ attackanimation
+ waitanimation
+ printstring STRINGID_PKMNLEARNEDMOVE2
+ waitmessage 0x40
+ goto BattleScript_MoveEnd
+
+BattleScript_EffectMetronome::
+ attackcanceler
+ attackstring
+ pause 0x20
+ attackanimation
+ waitanimation
+ setbyte sB_ANIM_TURN, 0
+ setbyte sB_ANIM_TARGETS_HIT, 0
+ metronome
+BattleScript_EffectLeechSeed::
+ attackcanceler
+ attackstring
+ pause 0x20
+ ppreduce
+ jumpifstatus2 BS_TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed
+ accuracycheck .+6, ACC_CURR_MOVE
+ setseeded
+ attackanimation
+ waitanimation
+ printfromtable gLeechSeedStringIds
+ waitmessage 0x40
+ goto BattleScript_MoveEnd
+
+BattleScript_EffectSplash::
+ attackcanceler
+ attackstring
+ ppreduce
+ attackanimation
+ waitanimation
+ incrementgamestat GAME_STAT_USED_SPLASH
+ printstring STRINGID_BUTNOTHINGHAPPENED
+ waitmessage 0x40
+ goto BattleScript_MoveEnd
+
+BattleScript_EffectDisable::
+ attackcanceler
+ attackstring
+ ppreduce
+ accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE
+ disablelastusedattack BattleScript_ButItFailed
+ attackanimation
+ waitanimation
+ printstring STRINGID_PKMNMOVEWASDISABLED
+ waitmessage 0x40
+ goto BattleScript_MoveEnd
+
+BattleScript_EffectLevelDamage::
+ attackcanceler
+ accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
+ attackstring
+ ppreduce
+ typecalc
+ bicbyte gMoveResultFlags, MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE
+ dmgtolevel
+ adjustsetdamage
+ goto BattleScript_HitFromAtkAnimation
+
+BattleScript_EffectPsywave::
+ attackcanceler
+ accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
+ attackstring
+ ppreduce
+ typecalc
+ bicbyte gMoveResultFlags, MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE
+ psywavedamageeffect
+ adjustsetdamage
+ goto BattleScript_HitFromAtkAnimation
+
+BattleScript_EffectCounter::
+ attackcanceler
+ counterdamagecalculator BattleScript_ButItFailedAtkStringPpReduce
+ accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
+ attackstring
+ ppreduce
+ typecalc2
+ adjustsetdamage
+ goto BattleScript_HitFromAtkAnimation
+
+BattleScript_EffectEncore::
+ attackcanceler
+ accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
+ attackstring
+ ppreduce
+ trysetencore BattleScript_ButItFailed
+ attackanimation
+ waitanimation
+ printstring STRINGID_PKMNGOTENCORE
+ waitmessage 0x40
+ goto BattleScript_MoveEnd
+
+BattleScript_EffectPainSplit::
+ attackcanceler
+ attackstring
+ ppreduce
+ accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON
+ painsplitdmgcalc BattleScript_ButItFailed
+ attackanimation
+ waitanimation
+ orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
+ healthbarupdate BS_ATTACKER
+ datahpupdate BS_ATTACKER
+ copyword gBattleMoveDamage, sPAINSPLIT_HP
+ healthbarupdate BS_TARGET
+ datahpupdate BS_TARGET
+ printstring STRINGID_SHAREDPAIN
+ waitmessage 0x40
+ goto BattleScript_MoveEnd
+
+BattleScript_EffectSnore::
+ attackcanceler
+ jumpifstatus BS_ATTACKER, STATUS1_SLEEP, BattleScript_SnoreIsAsleep
+ attackstring
+ ppreduce
+ goto BattleScript_ButItFailed
+
+BattleScript_SnoreIsAsleep::
+ jumpifhalfword CMP_EQUAL, gChosenMove, MOVE_SLEEP_TALK, BattleScript_DoSnore
+ printstring STRINGID_PKMNFASTASLEEP
+ waitmessage 0x40
+ statusanimation BS_ATTACKER
+BattleScript_DoSnore::
+ attackstring
+ ppreduce
+ accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE
+ setmoveeffect MOVE_EFFECT_FLINCH
+ goto BattleScript_HitFromCritCalc
+
+BattleScript_EffectConversion2::
+ attackcanceler
+ attackstring
+ ppreduce
+ settypetorandomresistance BattleScript_ButItFailed
+ attackanimation
+ waitanimation
+ printstring STRINGID_PKMNCHANGEDTYPE
+ waitmessage 0x40
+ goto BattleScript_MoveEnd
+
+BattleScript_EffectLockOn::
+ attackcanceler
+ attackstring
+ ppreduce
+ jumpifstatus2 BS_TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed
+ accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE
+ setalwayshitflag
+ attackanimation
+ waitanimation
+ printstring STRINGID_PKMNTOOKAIM
+ waitmessage 0x40
+ goto BattleScript_MoveEnd
+
+BattleScript_EffectSketch::
+ attackcanceler
+ attackstring
+ ppreduce
+ jumpifstatus2 BS_TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed
+ copymovepermanently BattleScript_ButItFailed
+ attackanimation
+ waitanimation
+ printstring STRINGID_PKMNSKETCHEDMOVE
+ waitmessage 0x40
+ goto BattleScript_MoveEnd
+
+BattleScript_EffectSleepTalk::
+ attackcanceler
+ jumpifstatus BS_ATTACKER, STATUS1_SLEEP, BattleScript_SleepTalkIsAsleep
+ attackstring
+ ppreduce
+ goto BattleScript_ButItFailed
+
+BattleScript_SleepTalkIsAsleep::
+ printstring STRINGID_PKMNFASTASLEEP
+ waitmessage 0x40
+ statusanimation BS_ATTACKER
+ attackstring
+ ppreduce
+ orword gHitMarker, HITMARKER_NO_PPDEDUCT
+ trychoosesleeptalkmove BattleScript_SleepTalkUsingMove
+ pause 0x40
+ goto BattleScript_ButItFailed
+
+BattleScript_SleepTalkUsingMove::
+ attackanimation
+ waitanimation
+ setbyte sB_ANIM_TURN, 0
+ setbyte sB_ANIM_TARGETS_HIT, 0
+ jumptocalledmove 1
+BattleScript_EffectDestinyBond::
+ attackcanceler
+ attackstring
+ ppreduce
+ setdestinybond
+ attackanimation
+ waitanimation
+ printstring STRINGID_PKMNTRYINGTOTAKEFOE
+ waitmessage 0x40
+ goto BattleScript_MoveEnd
+
+BattleScript_EffectFlail::
+ remaininghptopower
+ goto BattleScript_EffectHit
+
+BattleScript_EffectSpite::
+ attackcanceler
+ attackstring
+ ppreduce
+ accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE
+ tryspiteppreduce BattleScript_ButItFailed
+ attackanimation
+ waitanimation
+ printstring STRINGID_PKMNREDUCEDPP
+ waitmessage 0x40
+ goto BattleScript_MoveEnd
+
+BattleScript_EffectHealBell::
+ attackcanceler
+ attackstring
+ ppreduce
+ healpartystatus
+ waitstate
+ attackanimation
+ waitanimation
+ printfromtable gPartyStatusHealStringIds
+ waitmessage 0x40
+ jumpifnotmove MOVE_HEAL_BELL, BattleScript_PartyHealEnd
+ jumpifbyte CMP_NO_COMMON_BITS, cMULTISTRING_CHOOSER, 1, BattleScript_CheckHealBellMon2Unaffected
+ printstring STRINGID_PKMNSXBLOCKSY
+ waitmessage 0x40
+BattleScript_CheckHealBellMon2Unaffected::
+ jumpifbyte CMP_NO_COMMON_BITS, cMULTISTRING_CHOOSER, 2, BattleScript_PartyHealEnd
+ printstring STRINGID_PKMNSXBLOCKSY2
+ waitmessage 0x40
+BattleScript_PartyHealEnd::
+ updatestatusicon BS_ATTACKER_WITH_PARTNER
+ waitstate
+ goto BattleScript_MoveEnd
+
+BattleScript_EffectTripleKick::
+ attackcanceler
+ attackstring
+ ppreduce
+ setbyte sTRIPLE_KICK_POWER, 0
+ setbyte gBattleScripting + 19, 0
+ initmultihitstring
+ setmultihit 3
+BattleScript_TripleKickLoop::
+ jumpifhasnohp BS_ATTACKER, BattleScript_TripleKickEnd
+ jumpifhasnohp BS_TARGET, BattleScript_TripleKickNoMoreHits
+ jumpifhalfword CMP_EQUAL, gChosenMove, MOVE_SLEEP_TALK, BattleScript_DoTripleKickAttack
+ jumpifstatus BS_ATTACKER, STATUS1_SLEEP, BattleScript_TripleKickNoMoreHits
+BattleScript_DoTripleKickAttack::
+ accuracycheck BattleScript_TripleKickNoMoreHits, ACC_CURR_MOVE
+ movevaluescleanup
+ addbyte sTRIPLE_KICK_POWER, 10
+ addbyte gBattleScripting + 12, 1
+ copyhword gDynamicBasePower, sTRIPLE_KICK_POWER
+ critcalc
+ damagecalc
+ typecalc
+ adjustnormaldamage
+ jumpifmovehadnoeffect BattleScript_TripleKickNoMoreHits
+ attackanimation
+ waitanimation
+ effectivenesssound
+ hitanimation BS_TARGET
+ waitstate
+ healthbarupdate BS_TARGET
+ datahpupdate BS_TARGET
+ critmessage
+ waitmessage 0x40
+ printstring STRINGID_EMPTYSTRING3
+ waitmessage 1
+ moveendto 16
+ jumpifbyte CMP_COMMON_BITS, gMoveResultFlags, MOVE_RESULT_FOE_ENDURED, BattleScript_TripleKickPrintStrings
+ decrementmultihit BattleScript_TripleKickLoop
+ goto BattleScript_TripleKickPrintStrings
+
+BattleScript_TripleKickNoMoreHits::
+ pause 0x20
+ jumpifbyte CMP_EQUAL, gBattleScripting + 12, 0, BattleScript_TripleKickPrintStrings
+ bicbyte gMoveResultFlags, MOVE_RESULT_MISSED
+BattleScript_TripleKickPrintStrings::
+ resultmessage
+ waitmessage 0x40
+ jumpifbyte CMP_EQUAL, gBattleScripting + 12, 0, BattleScript_TripleKickEnd
+ jumpifbyte CMP_COMMON_BITS, gMoveResultFlags, MOVE_RESULT_DOESNT_AFFECT_FOE, BattleScript_TripleKickEnd
+ copyarray gBattleTextBuff1, sMULTIHIT_STRING, 6
+ printstring STRINGID_HITXTIMES
+ waitmessage 0x40
+BattleScript_TripleKickEnd::
+ seteffectwithchance
+ tryfaintmon BS_TARGET, 0, NULL
+ moveendfrom 14
+ end
+
+BattleScript_EffectThief::
+ setmoveeffect MOVE_EFFECT_STEAL_ITEM
+ goto BattleScript_EffectHit
+
+BattleScript_EffectMeanLook::
+ attackcanceler
+ attackstring
+ ppreduce
+ accuracycheck BattleScript_ButItFailed, NO_ACC_CALC
+ jumpifstatus2 BS_TARGET, STATUS2_ESCAPE_PREVENTION, BattleScript_ButItFailed
+ jumpifstatus2 BS_TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed
+ attackanimation
+ waitanimation
+ setmoveeffect MOVE_EFFECT_PREVENT_ESCAPE
+ seteffectprimary
+ printstring STRINGID_TARGETCANTESCAPENOW
+ waitmessage 0x40
+ goto BattleScript_MoveEnd
+
+BattleScript_EffectNightmare::
+ attackcanceler
+ attackstring
+ ppreduce
+ jumpifstatus2 BS_TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed
+ jumpifstatus2 BS_TARGET, STATUS2_NIGHTMARE, BattleScript_ButItFailed
+ jumpifstatus BS_TARGET, STATUS1_SLEEP, BattleScript_NightmareWorked
+ goto BattleScript_ButItFailed
+
+BattleScript_NightmareWorked::
+ attackanimation
+ waitanimation
+ setmoveeffect MOVE_EFFECT_NIGHTMARE
+ seteffectprimary
+ printstring STRINGID_PKMNFELLINTONIGHTMARE
+ waitmessage 0x40
+ goto BattleScript_MoveEnd
+
+BattleScript_EffectMinimize::
+ attackcanceler
+ setminimize
+ setstatchanger STAT_EVASION, 1, FALSE
+ goto BattleScript_EffectStatUpAfterAtkCanceler
+
+BattleScript_EffectCurse::
+ jumpiftype2 BS_ATTACKER, TYPE_GHOST, BattleScript_GhostCurse
+ attackcanceler
+ attackstring
+ ppreduce
+ jumpifstat BS_ATTACKER, CMP_GREATER_THAN, STAT_SPEED, 0, BattleScript_CurseTrySpeed
+ jumpifstat BS_ATTACKER, CMP_NOT_EQUAL, STAT_ATK, 12, BattleScript_CurseTrySpeed
+ jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_DEF, 12, BattleScript_ButItFailed
+BattleScript_CurseTrySpeed::
+ copybyte gBattlerTarget, gBattlerAttacker
+ setbyte sB_ANIM_TURN, 1
+ attackanimation
+ waitanimation
+ setstatchanger STAT_SPEED, 1, TRUE
+ statbuffchange STAT_CHANGE_BS_PTR | MOVE_EFFECT_AFFECTS_USER, BattleScript_CurseTryAttack
+ printfromtable gStatDownStringIds
+ waitmessage 0x40
+BattleScript_CurseTryAttack::
+ setstatchanger STAT_ATK, 1, FALSE
+ statbuffchange STAT_CHANGE_BS_PTR | MOVE_EFFECT_AFFECTS_USER, BattleScript_CurseTryDefence
+ printfromtable gStatUpStringIds
+ waitmessage 0x40
+BattleScript_CurseTryDefence::
+ setstatchanger STAT_DEF, 1, FALSE
+ statbuffchange STAT_CHANGE_BS_PTR | MOVE_EFFECT_AFFECTS_USER, BattleScript_CurseEnd
+ printfromtable gStatUpStringIds
+ waitmessage 0x40
+BattleScript_CurseEnd::
+ goto BattleScript_MoveEnd
+
+BattleScript_GhostCurse::
+ jumpifbytenotequal gBattlerAttacker, gBattlerTarget, BattleScript_DoGhostCurse
+ getmovetarget BS_ATTACKER
+BattleScript_DoGhostCurse::
+ attackcanceler
+ attackstring
+ ppreduce
+ jumpifstatus2 BS_TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed
+ accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON
+ cursetarget BattleScript_ButItFailed
+ orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
+ setbyte sB_ANIM_TURN, 0
+ attackanimation
+ waitanimation
+ healthbarupdate BS_ATTACKER
+ datahpupdate BS_ATTACKER
+ printstring STRINGID_PKMNLAIDCURSE
+ waitmessage 0x40
+ tryfaintmon BS_ATTACKER, 0, NULL
+ goto BattleScript_MoveEnd
+
+BattleScript_EffectProtect::
+ attackcanceler
+ attackstring
+ ppreduce
+ setprotectlike
+ attackanimation
+ waitanimation
+ printfromtable gProtectLikeUsedStringIds
+ waitmessage 0x40
+ goto BattleScript_MoveEnd
+
+BattleScript_EffectSpikes::
+ attackcanceler
+ trysetspikes BattleScript_ButItFailedAtkStringPpReduce
+ attackstring
+ ppreduce
+ attackanimation
+ waitanimation
+ printstring STRINGID_SPIKESSCATTERED
+ waitmessage 0x40
+ goto BattleScript_MoveEnd
+
+BattleScript_EffectForesight::
+ attackcanceler
+ accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
+ attackstring
+ ppreduce
+ setforesight
+ attackanimation
+ waitanimation
+ printstring STRINGID_PKMNIDENTIFIED
+ waitmessage 0x40
+ goto BattleScript_MoveEnd
+
+BattleScript_EffectPerishSong::
+ attackcanceler
+ attackstring
+ ppreduce
+ trysetperishsong BattleScript_ButItFailed
+ attackanimation
+ waitanimation
+ printstring STRINGID_FAINTINTHREE
+ waitmessage 0x40
+ setbyte sBATTLER, 0
+BattleScript_PerishSongLoop::
+ jumpifability BS_SCRIPTING, ABILITY_SOUNDPROOF, BattleScript_PerishSongNotAffected
+BattleScript_PerishSongLoopIncrement::
+ addbyte sBATTLER, 1
+ jumpifbytenotequal sBATTLER, gBattlersCount, BattleScript_PerishSongLoop
+ goto BattleScript_MoveEnd
+
+BattleScript_PerishSongNotAffected::
+ printstring STRINGID_PKMNSXBLOCKSY2
+ waitmessage 0x40
+ goto BattleScript_PerishSongLoopIncrement
+
+BattleScript_EffectSandstorm::
+ attackcanceler
+ attackstring
+ ppreduce
+ setsandstorm
+ goto BattleScript_MoveWeatherChange
+
+BattleScript_EffectRollout::
+ attackcanceler
+ attackstring
+ jumpifstatus2 BS_ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_RolloutHit
+ ppreduce
+BattleScript_RolloutHit::
+ accuracycheck .+6, ACC_CURR_MOVE
+ typecalc2
+ rolloutdamagecalculation
+ goto BattleScript_HitFromCritCalc
+
+BattleScript_EffectSwagger::
+ attackcanceler
+ jumpifstatus2 BS_TARGET, STATUS2_SUBSTITUTE, BattleScript_MakeMoveMissed
+ accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
+ attackstring
+ ppreduce
+ jumpifconfusedandstatmaxed 1, BattleScript_ButItFailed
+ attackanimation
+ waitanimation
+ setstatchanger STAT_ATK, 2, FALSE
+ statbuffchange STAT_CHANGE_BS_PTR, BattleScript_SwaggerTryConfuse
+ jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 2, BattleScript_SwaggerTryConfuse
+ setgraphicalstatchangevalues
+ playanimation BS_TARGET, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
+ printfromtable gStatUpStringIds
+ waitmessage 0x40
+BattleScript_SwaggerTryConfuse::
+ jumpifability BS_TARGET, ABILITY_OWN_TEMPO, BattleScript_OwnTempoPrevents
+ jumpifsideaffecting BS_TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_SafeguardProtected
+ setmoveeffect MOVE_EFFECT_CONFUSION
+ seteffectprimary
+ goto BattleScript_MoveEnd
+
+BattleScript_EffectFuryCutter::
+ attackcanceler
+ attackstring
+ ppreduce
+ accuracycheck .+6, ACC_CURR_MOVE
+BattleScript_FuryCutterHit::
+ furycuttercalc
+ critcalc
+ damagecalc
+ typecalc
+ jumpifmovehadnoeffect BattleScript_FuryCutterHit
+ adjustnormaldamage
+ goto BattleScript_HitFromAtkAnimation
+
+BattleScript_EffectAttract::
+ attackcanceler
+ attackstring
+ ppreduce
+ accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE
+ tryinfatuating BattleScript_ButItFailed
+ attackanimation
+ waitanimation
+ printstring STRINGID_PKMNFELLINLOVE
+ waitmessage 0x40
+ goto BattleScript_MoveEnd
+
+BattleScript_EffectReturn::
+ attackcanceler
+ accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
+ happinesstodamagecalculation
+ goto BattleScript_HitFromAtkString
+
+BattleScript_EffectPresent::
+ attackcanceler
+ accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
+ attackstring
+ ppreduce
+ typecalc
+ presentdamagecalculation
+BattleScript_EffectSafeguard::
+ attackcanceler
+ attackstring
+ ppreduce
+ setsafeguard
+ goto BattleScript_PrintReflectLightScreenSafeguardString
+
+BattleScript_EffectThawHit::
+ setmoveeffect MOVE_EFFECT_BURN
+ goto BattleScript_EffectHit
+
+BattleScript_EffectMagnitude::
+ attackcanceler
+ attackstring
+ ppreduce
+ selectfirstvalidtarget
+ magnitudedamagecalculation
+ pause 0x20
+ printstring STRINGID_MAGNITUDESTRENGTH
+ waitmessage 0x40
+ goto BattleScript_HitsAllWithUndergroundBonusLoop
+
+BattleScript_EffectBatonPass::
+ attackcanceler
+ attackstring
+ ppreduce
+ jumpifcantswitch BS_ATTACKER | ATK4F_DONT_CHECK_STATUSES, BattleScript_ButItFailed
+ attackanimation
+ waitanimation
+ openpartyscreen BS_ATTACKER, BattleScript_ButItFailed
+ switchoutabilities BS_ATTACKER
+ waitstate
+ switchhandleorder BS_ATTACKER, 2
+ returntoball BS_ATTACKER
+ getswitchedmondata BS_ATTACKER
+ switchindataupdate BS_ATTACKER
+ hpthresholds BS_ATTACKER
+ printstring STRINGID_SWITCHINMON
+ switchinanim BS_ATTACKER, 1
+ waitstate
+ switchineffects BS_ATTACKER
+ goto BattleScript_MoveEnd
+
+BattleScript_EffectRapidSpin::
+ setmoveeffect MOVE_EFFECT_RAPIDSPIN | MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN
+ goto BattleScript_EffectHit
+
+BattleScript_EffectSonicboom::
+ attackcanceler
+ accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
+ attackstring
+ ppreduce
+ typecalc
+ bicbyte gMoveResultFlags, MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE
+ setword gBattleMoveDamage, 20
+ adjustsetdamage
+ goto BattleScript_HitFromAtkAnimation
+
+BattleScript_EffectMorningSun::
+ attackcanceler
+ attackstring
+ ppreduce
+ recoverbasedonsunlight BattleScript_AlreadyAtFullHp
+ goto BattleScript_PresentHealTarget
+
+BattleScript_EffectHiddenPower::
+ attackcanceler
+ hiddenpowercalc
+ goto BattleScript_HitFromAccCheck
+
+BattleScript_EffectRainDance::
+ attackcanceler
+ attackstring
+ ppreduce
+ setrain
+BattleScript_MoveWeatherChange::
+ attackanimation
+ waitanimation
+ printfromtable gMoveWeatherChangeStringIds
+ waitmessage 0x40
+ call BattleScript_HandleWeatherFormChanges
+ goto BattleScript_MoveEnd
+
+BattleScript_EffectSunnyDay::
+ attackcanceler
+ attackstring
+ ppreduce
+ setsunny
+ goto BattleScript_MoveWeatherChange
+
+BattleScript_EffectDefenseUpHit::
+ setmoveeffect MOVE_EFFECT_DEF_PLUS_1 | MOVE_EFFECT_AFFECTS_USER
+ goto BattleScript_EffectHit
+
+BattleScript_EffectAttackUpHit::
+ setmoveeffect MOVE_EFFECT_ATK_PLUS_1 | MOVE_EFFECT_AFFECTS_USER
+ goto BattleScript_EffectHit
+
+BattleScript_EffectAllStatsUpHit::
+ setmoveeffect MOVE_EFFECT_ALL_STATS_UP | MOVE_EFFECT_AFFECTS_USER
+ goto BattleScript_EffectHit
+
+BattleScript_EffectBellyDrum::
+ attackcanceler
+ attackstring
+ ppreduce
+ maxattackhalvehp BattleScript_ButItFailed
+ orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
+ attackanimation
+ waitanimation
+ healthbarupdate BS_ATTACKER
+ datahpupdate BS_ATTACKER
+ printstring STRINGID_PKMNCUTHPMAXEDATTACK
+ waitmessage 0x40
+ goto BattleScript_MoveEnd
+
+BattleScript_EffectPsychUp::
+ attackcanceler
+ attackstring
+ ppreduce
+ copyfoestats BattleScript_ButItFailed
+ attackanimation
+ waitanimation
+ printstring STRINGID_PKMNCOPIEDSTATCHANGES
+ waitmessage 0x40
+ goto BattleScript_MoveEnd
+
+BattleScript_EffectMirrorCoat::
+ attackcanceler
+ mirrorcoatdamagecalculator BattleScript_ButItFailedAtkStringPpReduce
+ accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
+ attackstring
+ ppreduce
+ typecalc2
+ adjustsetdamage
+ goto BattleScript_HitFromAtkAnimation
+
+BattleScript_EffectSkullBash::
+ jumpifstatus2 BS_ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_TwoTurnMovesSecondTurn
+ jumpifword CMP_COMMON_BITS, gHitMarker, HITMARKER_NO_ATTACKSTRING, BattleScript_TwoTurnMovesSecondTurn
+ setbyte sTWOTURN_STRINGID, 2
+ call BattleScriptFirstChargingTurn
+ setstatchanger STAT_DEF, 1, FALSE
+ statbuffchange STAT_CHANGE_BS_PTR | MOVE_EFFECT_AFFECTS_USER, BattleScript_SkullBashEnd
+ jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 2, BattleScript_SkullBashEnd
+ setgraphicalstatchangevalues
+ playanimation BS_ATTACKER, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
+ printfromtable gStatUpStringIds
+ waitmessage 0x40
+BattleScript_SkullBashEnd::
+ goto BattleScript_MoveEnd
+
+BattleScript_EffectTwister::
+ jumpifnostatus3 BS_TARGET, STATUS3_ON_AIR, BattleScript_FlinchEffect
+ orword gHitMarker, HITMARKER_IGNORE_ON_AIR
+ setbyte sDMG_MULTIPLIER, 2
+BattleScript_FlinchEffect::
+ setmoveeffect MOVE_EFFECT_FLINCH
+ goto BattleScript_EffectHit
+
+BattleScript_EffectEarthquake::
+ attackcanceler
+ attackstring
+ ppreduce
+ selectfirstvalidtarget
+BattleScript_HitsAllWithUndergroundBonusLoop::
+ movevaluescleanup
+ jumpifnostatus3 BS_TARGET, STATUS3_UNDERGROUND, BattleScript_HitsAllNoUndergroundBonus
+ orword gHitMarker, HITMARKER_IGNORE_UNDERGROUND
+ setbyte sDMG_MULTIPLIER, 2
+ goto BattleScript_DoHitAllWithUndergroundBonus
+
+BattleScript_HitsAllNoUndergroundBonus::
+ bicword gHitMarker, HITMARKER_IGNORE_UNDERGROUND
+ setbyte sDMG_MULTIPLIER, 1
+BattleScript_DoHitAllWithUndergroundBonus::
+ accuracycheck BattleScript_HitAllWithUndergroundBonusMissed, ACC_CURR_MOVE
+ critcalc
+ damagecalc
+ typecalc
+ adjustnormaldamage
+ attackanimation
+ waitanimation
+ effectivenesssound
+ hitanimation BS_TARGET
+ waitstate
+ healthbarupdate BS_TARGET
+ datahpupdate BS_TARGET
+ critmessage
+ waitmessage 0x40
+ resultmessage
+ waitmessage 0x40
+ printstring STRINGID_EMPTYSTRING3
+ waitmessage 1
+ tryfaintmon BS_TARGET, 0, NULL
+ moveendto 16
+ jumpifnexttargetvalid BattleScript_HitsAllWithUndergroundBonusLoop
+ end
+
+BattleScript_HitAllWithUndergroundBonusMissed::
+ pause 0x20
+ typecalc
+ effectivenesssound
+ resultmessage
+ waitmessage 0x40
+ moveendto 16
+ jumpifnexttargetvalid BattleScript_HitsAllWithUndergroundBonusLoop
+ end
+
+BattleScript_EffectFutureSight::
+ attackcanceler
+ attackstring
+ ppreduce
+ trysetfutureattack BattleScript_ButItFailed
+ attackanimation
+ waitanimation
+ printfromtable gFutureMoveUsedStringIds
+ waitmessage 0x40
+ goto BattleScript_MoveEnd
+
+BattleScript_EffectGust::
+ jumpifnostatus3 BS_TARGET, STATUS3_ON_AIR, BattleScript_EffectHit
+ orword gHitMarker, HITMARKER_IGNORE_ON_AIR
+ setbyte sDMG_MULTIPLIER, 2
+ goto BattleScript_EffectHit
+
+BattleScript_EffectFlinchMinimizeHit::
+ jumpifnostatus3 BS_TARGET, STATUS3_MINIMIZED, BattleScript_FlinchEffect
+ setbyte sDMG_MULTIPLIER, 2
+ goto BattleScript_FlinchEffect
+
+BattleScript_EffectSolarbeam::
+ jumpifabilitypresent ABILITY_CLOUD_NINE, BattleScript_SolarbeamDecideTurn
+ jumpifabilitypresent ABILITY_AIR_LOCK, BattleScript_SolarbeamDecideTurn
+ jumpifhalfword CMP_COMMON_BITS, gBattleWeather, 96, BattleScript_SolarbeamOnFirstTurn
+BattleScript_SolarbeamDecideTurn::
+ jumpifstatus2 BS_ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_TwoTurnMovesSecondTurn
+ jumpifword CMP_COMMON_BITS, gHitMarker, HITMARKER_NO_ATTACKSTRING, BattleScript_TwoTurnMovesSecondTurn
+ setbyte sTWOTURN_STRINGID, 1
+ call BattleScriptFirstChargingTurn
+ goto BattleScript_MoveEnd
+
+BattleScript_SolarbeamOnFirstTurn::
+ orword gHitMarker, HITMARKER_CHARGING
+ setmoveeffect MOVE_EFFECT_CHARGING | MOVE_EFFECT_AFFECTS_USER
+ seteffectprimary
+ ppreduce
+ goto BattleScript_TwoTurnMovesSecondTurn
+
+BattleScript_EffectThunder::
+ setmoveeffect MOVE_EFFECT_PARALYSIS
+ orword gHitMarker, HITMARKER_IGNORE_ON_AIR
+ goto BattleScript_EffectHit
+
+BattleScript_EffectTeleport::
+ attackcanceler
+ attackstring
+ ppreduce
+ jumpifbattletype BATTLE_TYPE_TRAINER, BattleScript_ButItFailed
+ getifcantrunfrombattle BS_ATTACKER
+ jumpifbyte CMP_EQUAL, gBattleCommunication, 1, BattleScript_ButItFailed
+ jumpifbyte CMP_EQUAL, gBattleCommunication, 2, BattleScript_PrintAbilityMadeIneffective
+ attackanimation
+ waitanimation
+ printstring STRINGID_PKMNFLEDFROMBATTLE
+ waitmessage 0x40
+ setbyte gBattleOutcome, B_OUTCOME_PLAYER_TELEPORTED
+ goto BattleScript_MoveEnd
+
+BattleScript_EffectBeatUp::
+ attackcanceler
+ accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
+ attackstring
+ pause 0x20
+ ppreduce
+ setbyte gBattleCommunication, 0
+BattleScript_BeatUpLoop::
+ movevaluescleanup
+ trydobeatup BattleScript_BeatUpEnd, BattleScript_ButItFailed
+ printstring STRINGID_PKMNATTACK
+ critcalc
+ jumpifbyte CMP_NOT_EQUAL, gCritMultiplier, 2, BattleScript_BeatUpAttack
+ manipulatedamage 2
+BattleScript_BeatUpAttack::
+ adjustnormaldamage
+ attackanimation
+ waitanimation
+ effectivenesssound
+ hitanimation BS_TARGET
+ waitstate
+ healthbarupdate BS_TARGET
+ datahpupdate BS_TARGET
+ critmessage
+ waitmessage 0x40
+ resultmessage
+ waitmessage 0x40
+ tryfaintmon BS_TARGET, 0, NULL
+ moveendto 16
+ goto BattleScript_BeatUpLoop
+
+BattleScript_BeatUpEnd::
+ end
+
+BattleScript_EffectSemiInvulnerable::
+ jumpifstatus2 BS_ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_SecondTurnSemiInvulnerable
+ jumpifword CMP_COMMON_BITS, gHitMarker, HITMARKER_NO_ATTACKSTRING, BattleScript_SecondTurnSemiInvulnerable
+ jumpifmove MOVE_FLY, BattleScript_FlyFirstTurn
+ jumpifmove MOVE_DIVE, BattleScript_DiveFirstTurn
+ jumpifmove MOVE_BOUNCE, BattleScript_BounceFirstTurn
+ @ MOVE_DIG
+ setbyte sTWOTURN_STRINGID, 5
+ goto BattleScript_FirstTurnSemiInvulnerable
+
+BattleScript_BounceFirstTurn::
+ setbyte sTWOTURN_STRINGID, 7
+ goto BattleScript_FirstTurnSemiInvulnerable
+
+BattleScript_DiveFirstTurn::
+ setbyte sTWOTURN_STRINGID, 6
+ goto BattleScript_FirstTurnSemiInvulnerable
+
+BattleScript_FlyFirstTurn::
+ setbyte sTWOTURN_STRINGID, 4
+BattleScript_FirstTurnSemiInvulnerable::
+ call BattleScriptFirstChargingTurn
+ setsemiinvulnerablebit
+ goto BattleScript_MoveEnd
+
+BattleScript_SecondTurnSemiInvulnerable::
+ attackcanceler
+ setmoveeffect MOVE_EFFECT_CHARGING
+ setbyte sB_ANIM_TURN, 1
+ clearstatusfromeffect BS_ATTACKER
+ orword gHitMarker, HITMARKER_NO_PPDEDUCT
+ jumpifnotmove MOVE_BOUNCE, BattleScript_SemiInvulnerableTryHit
+ setmoveeffect MOVE_EFFECT_PARALYSIS
+BattleScript_SemiInvulnerableTryHit::
+ accuracycheck BattleScript_SemiInvulnerableMiss, ACC_CURR_MOVE
+ clearsemiinvulnerablebit
+ goto BattleScript_HitFromAtkString
+
+BattleScript_SemiInvulnerableMiss::
+ clearsemiinvulnerablebit
+ goto BattleScript_PrintMoveMissed
+
+BattleScript_EffectDefenseCurl::
+ attackcanceler
+ attackstring
+ ppreduce
+ setdefensecurlbit
+ setstatchanger STAT_DEF, 1, FALSE
+ statbuffchange STAT_CHANGE_BS_PTR | MOVE_EFFECT_AFFECTS_USER, BattleScript_DefenseCurlDoStatUpAnim
+ jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 2, BattleScript_StatUpPrintString
+ attackanimation
+ waitanimation
+BattleScript_DefenseCurlDoStatUpAnim::
+ goto BattleScript_StatUpDoAnim
+
+BattleScript_EffectSoftboiled::
+ attackcanceler
+ attackstring
+ ppreduce
+ tryhealhalfhealth BattleScript_AlreadyAtFullHp, BS_TARGET
+BattleScript_PresentHealTarget::
+ attackanimation
+ waitanimation
+ orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
+ healthbarupdate BS_TARGET
+ datahpupdate BS_TARGET
+ printstring STRINGID_PKMNREGAINEDHEALTH
+ waitmessage 0x40
+ goto BattleScript_MoveEnd
+
+BattleScript_AlreadyAtFullHp::
+ pause 0x20
+ printstring STRINGID_PKMNHPFULL
+ waitmessage 0x40
+ goto BattleScript_MoveEnd
+
+BattleScript_EffectFakeOut::
+ attackcanceler
+ jumpifnotfirstturn BattleScript_ButItFailedAtkStringPpReduce
+ setmoveeffect MOVE_EFFECT_FLINCH | MOVE_EFFECT_CERTAIN
+ goto BattleScript_EffectHit
+
+BattleScript_ButItFailedAtkStringPpReduce::
+ attackstring
+BattleScript_ButItFailedPpReduce::
+ ppreduce
+BattleScript_ButItFailed::
+ pause 0x20
+ orbyte gMoveResultFlags, MOVE_RESULT_FAILED
+ resultmessage
+ waitmessage 0x40
+ goto BattleScript_MoveEnd
+
+BattleScript_NotAffected::
+ pause 0x20
+ orbyte gMoveResultFlags, MOVE_RESULT_DOESNT_AFFECT_FOE
+ resultmessage
+ waitmessage 0x40
+ goto BattleScript_MoveEnd
+
+BattleScript_EffectUproar::
+ attackcanceler
+ accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
+ setmoveeffect MOVE_EFFECT_UPROAR | MOVE_EFFECT_AFFECTS_USER
+ attackstring
+ jumpifstatus2 BS_ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_UproarHit
+ ppreduce
+BattleScript_UproarHit::
+ nop
+ goto BattleScript_HitFromCritCalc
+
+BattleScript_EffectStockpile::
+ attackcanceler
+ attackstring
+ ppreduce
+ stockpile
+ attackanimation
+ waitanimation
+ printfromtable gStockpileUsedStringIds
+ waitmessage 0x40
+ goto BattleScript_MoveEnd
+
+BattleScript_EffectSpitUp::
+ attackcanceler
+ jumpifbyte CMP_EQUAL, gBattleCommunication + 6, 1, BattleScript_SpitUpNoDamage
+ attackstring
+ ppreduce
+ accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
+ stockpiletobasedamage BattleScript_SpitUpFail
+ typecalc
+ adjustsetdamage
+ goto BattleScript_HitFromAtkAnimation
+
+BattleScript_SpitUpFail::
+ pause 0x20
+ printstring STRINGID_FAILEDTOSPITUP
+ waitmessage 0x40
+ goto BattleScript_MoveEnd
+
+BattleScript_SpitUpNoDamage::
+ attackstring
+ ppreduce
+ pause 0x40
+ stockpiletobasedamage BattleScript_SpitUpFail
+ resultmessage
+ waitmessage 0x40
+ goto BattleScript_MoveEnd
+
+BattleScript_EffectSwallow::
+ attackcanceler
+ attackstring
+ ppreduce
+ stockpiletohpheal BattleScript_SwallowFail
+ goto BattleScript_PresentHealTarget
+
+BattleScript_SwallowFail::
+ pause 0x20
+ printfromtable gSwallowFailStringIds
+ waitmessage 0x40
+ goto BattleScript_MoveEnd
+
+BattleScript_EffectHail::
+ attackcanceler
+ attackstring
+ ppreduce
+ sethail
+ goto BattleScript_MoveWeatherChange
+
+BattleScript_EffectTorment::
+ attackcanceler
+ attackstring
+ ppreduce
+ accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE
+ settorment BattleScript_ButItFailed
+ attackanimation
+ waitanimation
+ printstring STRINGID_PKMNSUBJECTEDTOTORMENT
+ waitmessage 0x40
+ goto BattleScript_MoveEnd
+
+BattleScript_EffectFlatter::
+ attackcanceler
+ jumpifstatus2 BS_TARGET, STATUS2_SUBSTITUTE, BattleScript_MakeMoveMissed
+ accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
+ attackstring
+ ppreduce
+ jumpifconfusedandstatmaxed 4, BattleScript_ButItFailed
+ attackanimation
+ waitanimation
+ setstatchanger STAT_SPATK, 1, FALSE
+ statbuffchange STAT_CHANGE_BS_PTR, BattleScript_FlatterTryConfuse
+ jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 2, BattleScript_FlatterTryConfuse
+ setgraphicalstatchangevalues
+ playanimation BS_TARGET, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
+ printfromtable gStatUpStringIds
+ waitmessage 0x40
+BattleScript_FlatterTryConfuse::
+ jumpifability BS_TARGET, ABILITY_OWN_TEMPO, BattleScript_OwnTempoPrevents
+ jumpifsideaffecting BS_TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_SafeguardProtected
+ setmoveeffect MOVE_EFFECT_CONFUSION
+ seteffectprimary
+ goto BattleScript_MoveEnd
+
+BattleScript_EffectWillOWisp::
+ attackcanceler
+ attackstring
+ ppreduce
+ jumpifstatus2 BS_TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed
+ jumpifstatus BS_TARGET, STATUS1_BURN, BattleScript_AlreadyBurned
+ jumpiftype BS_TARGET, TYPE_FIRE, BattleScript_NotAffected
+ jumpifability BS_TARGET, ABILITY_WATER_VEIL, BattleScript_WaterVeilPrevents
+ jumpifstatus BS_TARGET, STATUS1_ANY, BattleScript_ButItFailed
+ accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE
+ jumpifsideaffecting BS_TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_SafeguardProtected
+ attackanimation
+ waitanimation
+ setmoveeffect MOVE_EFFECT_BURN
+ seteffectprimary
+ goto BattleScript_MoveEnd
+
+BattleScript_WaterVeilPrevents::
+ copybyte gEffectBattler, gBattlerTarget
+ setbyte cMULTISTRING_CHOOSER, 0
+ call BattleScript_BRNPrevention
+ goto BattleScript_MoveEnd
+
+BattleScript_AlreadyBurned::
+ pause 0x20
+ printstring STRINGID_PKMNALREADYHASBURN
+ waitmessage 0x40
+ goto BattleScript_MoveEnd
+
+BattleScript_EffectMemento::
+ attackcanceler
+ jumpifbyte CMP_EQUAL, gBattleCommunication + 6, 1, BattleScript_MementoNoReduceStats
+ attackstring
+ ppreduce
+ jumpifattackandspecialattackcannotfall BattleScript_ButItFailed
+ setatkhptozero
+ attackanimation
+ waitanimation
+ jumpifstatus2 BS_TARGET, STATUS2_SUBSTITUTE, BattleScript_MementoSubstituteInvulnerable
+ setbyte sSTAT_ANIM_PLAYED, 0
+ playstatchangeanimation BS_TARGET, BIT_ATK | BIT_SPATK, ATK48_STAT_NEGATIVE | ATK48_STAT_BY_TWO | ATK48_ONLY_MULTIPLE
+ playstatchangeanimation BS_TARGET, BIT_ATK, ATK48_STAT_NEGATIVE | ATK48_STAT_BY_TWO
+ setstatchanger STAT_ATK, 2, TRUE
+ statbuffchange STAT_CHANGE_BS_PTR, BattleScript_MementoSkipStatDown1
+ jumpifbyte CMP_GREATER_THAN, cMULTISTRING_CHOOSER, 1, BattleScript_MementoSkipStatDown1
+ printfromtable gStatDownStringIds
+ waitmessage 0x40
+BattleScript_MementoSkipStatDown1::
+ playstatchangeanimation BS_TARGET, BIT_SPATK, ATK48_STAT_NEGATIVE | ATK48_STAT_BY_TWO
+ setstatchanger STAT_SPATK, 2, TRUE
+ statbuffchange STAT_CHANGE_BS_PTR, BattleScript_MementoSkipStatDown2
+ jumpifbyte CMP_GREATER_THAN, cMULTISTRING_CHOOSER, 1, BattleScript_MementoSkipStatDown2
+ printfromtable gStatDownStringIds
+ waitmessage 0x40
+BattleScript_MementoSkipStatDown2::
+ tryfaintmon BS_ATTACKER, 0, NULL
+ goto BattleScript_MoveEnd
+
+BattleScript_MementoSubstituteInvulnerable::
+ printstring STRINGID_BUTNOEFFECT
+ waitmessage 0x40
+ goto BattleScript_MementoSkipStatDown2
+
+BattleScript_MementoNoReduceStats::
+ attackstring
+ ppreduce
+ jumpifattackandspecialattackcannotfall .+4
+ setatkhptozero
+ pause 0x40
+ effectivenesssound
+ resultmessage
+ waitmessage 0x40
+ tryfaintmon BS_ATTACKER, 0, NULL
+ goto BattleScript_MoveEnd
+
+BattleScript_EffectFacade::
+ jumpifstatus BS_ATTACKER, STATUS1_POISON | STATUS1_PARALYSIS | STATUS1_BURN | STATUS1_TOXIC_POISON, BattleScript_FacadeDoubleDmg
+ goto BattleScript_EffectHit
+
+BattleScript_FacadeDoubleDmg::
+ setbyte sDMG_MULTIPLIER, 2
+ goto BattleScript_EffectHit
+
+BattleScript_EffectFocusPunch::
+ attackcanceler
+ jumpifnodamage BattleScript_HitFromAccCheck
+ ppreduce
+ printstring STRINGID_PKMNLOSTFOCUS
+ waitmessage 0x40
+ goto BattleScript_MoveEnd
+
+BattleScript_EffectSmellingsalt::
+ jumpifstatus2 BS_TARGET, STATUS2_SUBSTITUTE, BattleScript_EffectHit
+ setmoveeffect MOVE_EFFECT_REMOVE_PARALYSIS | MOVE_EFFECT_CERTAIN
+ jumpifstatus BS_TARGET, STATUS1_PARALYSIS, BattleScript_SmellingSaltBuff
+ goto BattleScript_EffectHit
+
+BattleScript_SmellingSaltBuff::
+ setbyte sDMG_MULTIPLIER, 2
+ goto BattleScript_EffectHit
+
+BattleScript_EffectFollowMe::
+ attackcanceler
+ attackstring
+ ppreduce
+ setforcedtarget
+ attackanimation
+ waitanimation
+ printstring STRINGID_PKMNCENTERATTENTION
+ waitmessage 0x40
+ goto BattleScript_MoveEnd
+
+BattleScript_EffectNaturePower::
+ attackcanceler
+ attackstring
+ pause 0x20
+ callterrainattack
+ printstring STRINGID_NATUREPOWERTURNEDINTO
+ waitmessage 0x40
+ return
+
+BattleScript_EffectCharge::
+ attackcanceler
+ attackstring
+ ppreduce
+ setcharge
+ attackanimation
+ waitanimation
+ printstring STRINGID_PKMNCHARGINGPOWER
+ waitmessage 0x40
+ goto BattleScript_MoveEnd
+
+BattleScript_EffectTaunt::
+ attackcanceler
+ attackstring
+ ppreduce
+ accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE
+ settaunt BattleScript_ButItFailed
+ attackanimation
+ waitanimation
+ printstring STRINGID_PKMNFELLFORTAUNT
+ waitmessage 0x40
+ goto BattleScript_MoveEnd
+
+BattleScript_EffectHelpingHand::
+ attackcanceler
+ attackstring
+ ppreduce
+ trysethelpinghand BattleScript_ButItFailed
+ attackanimation
+ waitanimation
+ printstring STRINGID_PKMNREADYTOHELP
+ waitmessage 0x40
+ goto BattleScript_MoveEnd
+
+BattleScript_EffectTrick::
+ attackcanceler
+ attackstring
+ ppreduce
+ jumpifstatus2 BS_TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed
+ accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE
+ tryswapitems BattleScript_ButItFailed
+ attackanimation
+ waitanimation
+ printstring STRINGID_PKMNSWITCHEDITEMS
+ waitmessage 0x40
+ printfromtable gItemSwapStringIds
+ waitmessage 0x40
+ goto BattleScript_MoveEnd
+
+BattleScript_EffectRolePlay::
+ attackcanceler
+ attackstring
+ ppreduce
+ accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON
+ trycopyability BattleScript_ButItFailed
+ attackanimation
+ waitanimation
+ printstring STRINGID_PKMNCOPIEDFOE
+ waitmessage 0x40
+ goto BattleScript_MoveEnd
+
+BattleScript_EffectWish::
+ attackcanceler
+ attackstring
+ ppreduce
+ trywish 0, BattleScript_ButItFailed
+ attackanimation
+ waitanimation
+ goto BattleScript_MoveEnd
+
+BattleScript_EffectAssist::
+ attackcanceler
+ attackstring
+ assistattackselect BattleScript_ButItFailedPpReduce
+ attackanimation
+ waitanimation
+ setbyte sB_ANIM_TURN, 0
+ setbyte sB_ANIM_TARGETS_HIT, 0
+ jumptocalledmove 1
+BattleScript_EffectIngrain::
+ attackcanceler
+ attackstring
+ ppreduce
+ trysetroots BattleScript_ButItFailed
+ attackanimation
+ waitanimation
+ printstring STRINGID_PKMNPLANTEDROOTS
+ waitmessage 0x40
+ goto BattleScript_MoveEnd
+
+BattleScript_EffectSuperpower::
+ setmoveeffect MOVE_EFFECT_ATK_DEF_DOWN | MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN
+ goto BattleScript_EffectHit
+
+BattleScript_EffectMagicCoat::
+ attackcanceler
+ trysetmagiccoat BattleScript_ButItFailedAtkStringPpReduce
+ attackstring
+ ppreduce
+ attackanimation
+ waitanimation
+ printstring STRINGID_PKMNSHROUDEDITSELF
+ waitmessage 0x40
+ goto BattleScript_MoveEnd
+
+BattleScript_EffectRecycle::
+ attackcanceler
+ attackstring
+ ppreduce
+ tryrecycleitem BattleScript_ButItFailed
+ attackanimation
+ waitanimation
+ printstring STRINGID_XFOUNDONEY
+ waitmessage 0x40
+ goto BattleScript_MoveEnd
+
+BattleScript_EffectRevenge::
+ doubledamagedealtifdamaged
+ goto BattleScript_EffectHit
+
+BattleScript_EffectBrickBreak::
+ attackcanceler
+ accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
+ attackstring
+ ppreduce
+ removelightscreenreflect
+ critcalc
+ damagecalc
+ typecalc
+ adjustnormaldamage
+ jumpifbyte CMP_EQUAL, sB_ANIM_TURN, 0, BattleScript_BrickBreakAnim
+ bicbyte gMoveResultFlags, MOVE_RESULT_MISSED | MOVE_RESULT_DOESNT_AFFECT_FOE
+BattleScript_BrickBreakAnim::
+ attackanimation
+ waitanimation
+ jumpifbyte CMP_LESS_THAN, sB_ANIM_TURN, 2, BattleScript_BrickBreakDoHit
+ printstring STRINGID_THEWALLSHATTERED
+ waitmessage 0x40
+BattleScript_BrickBreakDoHit::
+ typecalc2
+ effectivenesssound
+ hitanimation BS_TARGET
+ waitstate
+ healthbarupdate BS_TARGET
+ datahpupdate BS_TARGET
+ critmessage
+ waitmessage 0x40
+ resultmessage
+ waitmessage 0x40
+ seteffectwithchance
+ tryfaintmon BS_TARGET, 0, NULL
+ goto BattleScript_MoveEnd
+
+BattleScript_EffectYawn::
+ attackcanceler
+ attackstring
+ ppreduce
+ jumpifability BS_TARGET, ABILITY_VITAL_SPIRIT, BattleScript_PrintBankAbilityMadeIneffective
+ jumpifability BS_TARGET, ABILITY_INSOMNIA, BattleScript_PrintBankAbilityMadeIneffective
+ jumpifstatus2 BS_TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed
+ jumpifsideaffecting BS_TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_SafeguardProtected
+ accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON
+ jumpifcantmakeasleep BattleScript_ButItFailed
+ setyawn BattleScript_ButItFailed
+ attackanimation
+ waitanimation
+ printstring STRINGID_PKMNWASMADEDROWSY
+ waitmessage 0x40
+ goto BattleScript_MoveEnd
+
+BattleScript_PrintBankAbilityMadeIneffective::
+ copybyte sBATTLER, sBATTLER_WITH_ABILITY
+BattleScript_PrintAbilityMadeIneffective::
+ pause 0x20
+ printstring STRINGID_PKMNSXMADEITINEFFECTIVE
+ waitmessage 0x40
+ goto BattleScript_MoveEnd
+
+BattleScript_EffectKnockOff::
+ setmoveeffect MOVE_EFFECT_KNOCK_OFF
+ goto BattleScript_EffectHit
+
+BattleScript_EffectEndeavor::
+ attackcanceler
+ attackstring
+ ppreduce
+ setdamagetohealthdifference BattleScript_ButItFailed
+ copyword gHpDealt, gBattleMoveDamage
+ accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE
+ typecalc
+ jumpifmovehadnoeffect BattleScript_HitFromAtkAnimation
+ bicbyte gMoveResultFlags, MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE
+ copyword gBattleMoveDamage, gHpDealt
+ adjustsetdamage
+ goto BattleScript_HitFromAtkAnimation
+
+BattleScript_EffectEruption::
+ scaledamagebyhealthratio
+ goto BattleScript_EffectHit
+
+BattleScript_EffectSkillSwap::
+ attackcanceler
+ attackstring
+ ppreduce
+ accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON
+ tryswapabilities BattleScript_ButItFailed
+ attackanimation
+ waitanimation
+ printstring STRINGID_PKMNSWAPPEDABILITIES
+ waitmessage 0x40
+ goto BattleScript_MoveEnd
+
+BattleScript_EffectImprison::
+ attackcanceler
+ attackstring
+ ppreduce
+ tryimprison BattleScript_ButItFailed
+ attackanimation
+ waitanimation
+ printstring STRINGID_PKMNSEALEDOPPONENTMOVE
+ waitmessage 0x40
+ goto BattleScript_MoveEnd
+
+BattleScript_EffectRefresh::
+ attackcanceler
+ attackstring
+ ppreduce
+ cureifburnedparalysedorpoisoned BattleScript_ButItFailed
+ attackanimation
+ waitanimation
+ printstring STRINGID_PKMNSTATUSNORMAL
+ waitmessage 0x40
+ updatestatusicon BS_ATTACKER
+ goto BattleScript_MoveEnd
+
+BattleScript_EffectGrudge::
+ attackcanceler
+ attackstring
+ ppreduce
+ trysetgrudge BattleScript_ButItFailed
+ attackanimation
+ waitanimation
+ printstring STRINGID_PKMNWANTSGRUDGE
+ waitmessage 0x40
+ goto BattleScript_MoveEnd
+
+BattleScript_EffectSnatch::
+ attackcanceler
+ trysetsnatch BattleScript_ButItFailedAtkStringPpReduce
+ attackstring
+ ppreduce
+ attackanimation
+ waitanimation
+ pause 0x20
+ printstring STRINGID_PKMNWAITSFORTARGET
+ waitmessage 0x40
+ goto BattleScript_MoveEnd
+
+BattleScript_EffectLowKick::
+ attackcanceler
+ attackstring
+ ppreduce
+ weightdamagecalculation
+ accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE
+ goto BattleScript_HitFromCritCalc
+
+BattleScript_EffectSecretPower::
+ getsecretpowereffect
+ goto BattleScript_EffectHit
+
+BattleScript_EffectDoubleEdge::
+ setmoveeffect MOVE_EFFECT_RECOIL_33 | MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN
+ goto BattleScript_EffectHit
+
+BattleScript_EffectTeeterDance::
+ attackcanceler
+ attackstring
+ ppreduce
+ setbyte gBattlerTarget, 0
+BattleScript_TeeterDanceLoop::
+ movevaluescleanup
+ setmoveeffect MOVE_EFFECT_CONFUSION
+ jumpifbyteequal gBattlerAttacker, gBattlerTarget, BattleScript_TeeterDanceLoopIncrement
+ jumpifability BS_TARGET, ABILITY_OWN_TEMPO, BattleScript_TeeterDanceOwnTempoPrevents
+ jumpifstatus2 BS_TARGET, STATUS2_SUBSTITUTE, BattleScript_TeeterDanceSubstitutePrevents
+ jumpifstatus2 BS_TARGET, STATUS2_CONFUSION, BattleScript_TeeterDanceAlreadyConfused
+ accuracycheck BattleScript_TeeterDanceMissed, ACC_CURR_MOVE
+ jumpifsideaffecting BS_TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_TeeterDanceSafeguardProtected
+ attackanimation
+ waitanimation
+ seteffectprimary
+ resultmessage
+ waitmessage 0x40
+BattleScript_TeeterDanceLoopIncrement::
+ moveendto 16
+ addbyte gBattlerTarget, 1
+ jumpifbytenotequal gBattlerTarget, gBattlersCount, BattleScript_TeeterDanceLoop
+ end
+
+BattleScript_TeeterDanceOwnTempoPrevents::
+ pause 0x20
+ printstring STRINGID_PKMNPREVENTSCONFUSIONWITH
+ waitmessage 0x40
+ goto BattleScript_TeeterDanceLoopIncrement
+
+BattleScript_TeeterDanceSafeguardProtected::
+ pause 0x20
+ printstring STRINGID_PKMNUSEDSAFEGUARD
+ waitmessage 0x40
+ goto BattleScript_TeeterDanceLoopIncrement
+
+BattleScript_TeeterDanceSubstitutePrevents::
+ pause 0x20
+ printstring STRINGID_BUTITFAILED
+ waitmessage 0x40
+ goto BattleScript_TeeterDanceLoopIncrement
+
+BattleScript_TeeterDanceAlreadyConfused::
+ pause 0x20
+ printstring STRINGID_PKMNALREADYCONFUSED
+ waitmessage 0x40
+ goto BattleScript_TeeterDanceLoopIncrement
+
+BattleScript_TeeterDanceMissed::
+ resultmessage
+ waitmessage 0x40
+ goto BattleScript_TeeterDanceLoopIncrement
+
+BattleScript_EffectMudSport::
+ attackcanceler
+ attackstring
+ ppreduce
+ settypebasedhalvers BattleScript_ButItFailed
+ attackanimation
+ waitanimation
+ printfromtable gSportsUsedStringIds
+ waitmessage 0x40
+ goto BattleScript_MoveEnd
+
+BattleScript_EffectPoisonFang::
+ setmoveeffect MOVE_EFFECT_TOXIC
+ goto BattleScript_EffectHit
+
+BattleScript_EffectWeatherBall::
+ setweatherballtype
+ goto BattleScript_EffectHit
+
+BattleScript_EffectOverheat::
+ setmoveeffect MOVE_EFFECT_SP_ATK_TWO_DOWN | MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN
+ goto BattleScript_EffectHit
+
+BattleScript_EffectTickle::
+ attackcanceler
+ attackstring
+ ppreduce
+ jumpifstat BS_TARGET, CMP_GREATER_THAN, STAT_ATK, 0, BattleScript_TickleDoMoveAnim
+ jumpifstat BS_TARGET, CMP_EQUAL, STAT_DEF, 0, BattleScript_CantLowerMultipleStats
+BattleScript_TickleDoMoveAnim::
+ accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE
+ attackanimation
+ waitanimation
+ setbyte sSTAT_ANIM_PLAYED, 0
+ playstatchangeanimation BS_TARGET, BIT_ATK | BIT_DEF, ATK48_STAT_NEGATIVE | ATK48_ONLY_MULTIPLE
+ playstatchangeanimation BS_TARGET, BIT_ATK, ATK48_STAT_NEGATIVE
+ setstatchanger STAT_ATK, 1, TRUE
+ statbuffchange STAT_CHANGE_BS_PTR, BattleScript_TickleTryLowerDef
+ jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 2, BattleScript_TickleTryLowerDef
+ printfromtable gStatDownStringIds
+ waitmessage 0x40
+BattleScript_TickleTryLowerDef::
+ playstatchangeanimation BS_TARGET, BIT_DEF, ATK48_STAT_NEGATIVE
+ setstatchanger STAT_DEF, 1, TRUE
+ statbuffchange STAT_CHANGE_BS_PTR, BattleScript_TickleEnd
+ jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 2, BattleScript_TickleEnd
+ printfromtable gStatDownStringIds
+ waitmessage 0x40
+BattleScript_TickleEnd::
+ goto BattleScript_MoveEnd
+
+BattleScript_CantLowerMultipleStats::
+ pause 0x20
+ orbyte gMoveResultFlags, MOVE_RESULT_FAILED
+ printstring STRINGID_STATSWONTDECREASE2
+ waitmessage 0x40
+ goto BattleScript_MoveEnd
+
+BattleScript_EffectCosmicPower::
+ attackcanceler
+ attackstring
+ ppreduce
+ jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_DEF, 12, BattleScript_CosmicPowerDoMoveAnim
+ jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_SPDEF, 12, BattleScript_CantRaiseMultipleStats
+BattleScript_CosmicPowerDoMoveAnim::
+ attackanimation
+ waitanimation
+ setbyte sSTAT_ANIM_PLAYED, 0
+ playstatchangeanimation BS_ATTACKER, BIT_DEF | BIT_SPDEF, 0
+ setstatchanger STAT_DEF, 1, FALSE
+ statbuffchange STAT_CHANGE_BS_PTR | MOVE_EFFECT_AFFECTS_USER, BattleScript_CosmicPowerTrySpDef
+ jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 2, BattleScript_CosmicPowerTrySpDef
+ printfromtable gStatUpStringIds
+ waitmessage 0x40
+BattleScript_CosmicPowerTrySpDef::
+ setstatchanger STAT_SPDEF, 1, FALSE
+ statbuffchange STAT_CHANGE_BS_PTR | MOVE_EFFECT_AFFECTS_USER, BattleScript_CosmicPowerEnd
+ jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 2, BattleScript_CosmicPowerEnd
+ printfromtable gStatUpStringIds
+ waitmessage 0x40
+BattleScript_CosmicPowerEnd::
+ goto BattleScript_MoveEnd
+
+BattleScript_EffectSkyUppercut::
+ orword gHitMarker, HITMARKER_IGNORE_ON_AIR
+ goto BattleScript_EffectHit
+
+BattleScript_EffectBulkUp::
+ attackcanceler
+ attackstring
+ ppreduce
+ jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_ATK, 12, BattleScript_BulkUpDoMoveAnim
+ jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_DEF, 12, BattleScript_CantRaiseMultipleStats
+BattleScript_BulkUpDoMoveAnim::
+ attackanimation
+ waitanimation
+ setbyte sSTAT_ANIM_PLAYED, 0
+ playstatchangeanimation BS_ATTACKER, BIT_ATK | BIT_DEF, 0
+ setstatchanger STAT_ATK, 1, FALSE
+ statbuffchange STAT_CHANGE_BS_PTR | MOVE_EFFECT_AFFECTS_USER, BattleScript_BulkUpTryDef
+ jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 2, BattleScript_BulkUpTryDef
+ printfromtable gStatUpStringIds
+ waitmessage 0x40
+BattleScript_BulkUpTryDef::
+ setstatchanger STAT_DEF, 1, FALSE
+ statbuffchange STAT_CHANGE_BS_PTR | MOVE_EFFECT_AFFECTS_USER, BattleScript_BulkUpEnd
+ jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 2, BattleScript_BulkUpEnd
+ printfromtable gStatUpStringIds
+ waitmessage 0x40
+BattleScript_BulkUpEnd::
+ goto BattleScript_MoveEnd
+
+BattleScript_EffectCalmMind::
+ attackcanceler
+ attackstring
+ ppreduce
+ jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_SPATK, 12, BattleScript_CalmMindDoMoveAnim
+ jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_SPDEF, 12, BattleScript_CantRaiseMultipleStats
+BattleScript_CalmMindDoMoveAnim::
+ attackanimation
+ waitanimation
+ setbyte sSTAT_ANIM_PLAYED, 0
+ playstatchangeanimation BS_ATTACKER, BIT_SPATK | BIT_SPDEF, 0
+ setstatchanger STAT_SPATK, 1, FALSE
+ statbuffchange STAT_CHANGE_BS_PTR | MOVE_EFFECT_AFFECTS_USER, BattleScript_CalmMindTrySpDef
+ jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 2, BattleScript_CalmMindTrySpDef
+ printfromtable gStatUpStringIds
+ waitmessage 0x40
+BattleScript_CalmMindTrySpDef::
+ setstatchanger STAT_SPDEF, 1, FALSE
+ statbuffchange STAT_CHANGE_BS_PTR | MOVE_EFFECT_AFFECTS_USER, BattleScript_CalmMindEnd
+ jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 2, BattleScript_CalmMindEnd
+ printfromtable gStatUpStringIds
+ waitmessage 0x40
+BattleScript_CalmMindEnd::
+ goto BattleScript_MoveEnd
+
+BattleScript_CantRaiseMultipleStats::
+ pause 0x20
+ orbyte gMoveResultFlags, MOVE_RESULT_FAILED
+ printstring STRINGID_STATSWONTINCREASE2
+ waitmessage 0x40
+ goto BattleScript_MoveEnd
+
+BattleScript_EffectDragonDance::
+ attackcanceler
+ attackstring
+ ppreduce
+ jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_ATK, 12, BattleScript_DragonDanceDoMoveAnim
+ jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_SPEED, 12, BattleScript_CantRaiseMultipleStats
+BattleScript_DragonDanceDoMoveAnim::
+ attackanimation
+ waitanimation
+ setbyte sSTAT_ANIM_PLAYED, 0
+ playstatchangeanimation BS_ATTACKER, BIT_ATK | BIT_SPEED, 0
+ setstatchanger STAT_ATK, 1, FALSE
+ statbuffchange STAT_CHANGE_BS_PTR | MOVE_EFFECT_AFFECTS_USER, BattleScript_DragonDanceTrySpeed
+ jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 2, BattleScript_DragonDanceTrySpeed
+ printfromtable gStatUpStringIds
+ waitmessage 0x40
+BattleScript_DragonDanceTrySpeed::
+ setstatchanger STAT_SPEED, 1, FALSE
+ statbuffchange STAT_CHANGE_BS_PTR | MOVE_EFFECT_AFFECTS_USER, BattleScript_DragonDanceEnd
+ jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 2, BattleScript_DragonDanceEnd
+ printfromtable gStatUpStringIds
+ waitmessage 0x40
+BattleScript_DragonDanceEnd::
+ goto BattleScript_MoveEnd
+
+BattleScript_EffectCamouflage::
+ attackcanceler
+ attackstring
+ ppreduce
+ settypetoterrain BattleScript_ButItFailed
+ attackanimation
+ waitanimation
+ printstring STRINGID_PKMNCHANGEDTYPE
+ waitmessage 0x40
+ goto BattleScript_MoveEnd
+
+BattleScript_FaintAttacker::
+ playfaintcry BS_ATTACKER
+ pause 0x40
+ dofaintanimation BS_ATTACKER
+ cleareffectsonfaint BS_ATTACKER
+ printstring STRINGID_ATTACKERFAINTED
+ printstring STRINGID_EMPTYSTRING3
+ return
+
+BattleScript_FaintTarget::
+ playfaintcry BS_TARGET
+ pause 0x40
+ dofaintanimation BS_TARGET
+ cleareffectsonfaint BS_TARGET
+ printstring STRINGID_TARGETFAINTED
+ printstring STRINGID_EMPTYSTRING3
+ return
+
+BattleScript_GiveExp::
+ setbyte sGIVEEXP_STATE, 0
+ getexp BS_TARGET
+ end2
+
+BattleScript_HandleFaintedMon::
+ atk24 BattleScript_LinkBattleHandleFaint
+ jumpifbyte CMP_NOT_EQUAL, gBattleOutcome, 0, BattleScript_FaintedMonEnd
+ jumpifbattletype BATTLE_TYPE_TRAINER, BattleScript_FaintedMonTryChooseAnother
+ jumpifword CMP_NO_COMMON_BITS, gHitMarker, HITMARKER_PLAYER_FAINTED, BattleScript_FaintedMonTryChooseAnother
+ printstring STRINGID_USENEXTPKMN
+ setbyte gBattleCommunication, 0
+ yesnobox
+ jumpifbyte CMP_EQUAL, gBattleCommunication + 1, 0, BattleScript_FaintedMonTryChooseAnother
+ jumpifplayerran BattleScript_FaintedMonEnd
+ printstring STRINGID_CANTESCAPE2
+BattleScript_FaintedMonTryChooseAnother::
+ openpartyscreen BS_FAINTED, BattleScript_FaintedMonEnd
+ switchhandleorder BS_FAINTED, 2
+ jumpifnotbattletype BATTLE_TYPE_TRAINER, BattleScript_FaintedMonChooseAnother
+ jumpifbattletype BATTLE_TYPE_LINK, BattleScript_FaintedMonChooseAnother
+ jumpifbattletype BATTLE_TYPE_BATTLE_TOWER, BattleScript_FaintedMonChooseAnother
+ jumpifbattletype BATTLE_TYPE_DOUBLE, BattleScript_FaintedMonChooseAnother
+ jumpifword CMP_COMMON_BITS, gHitMarker, HITMARKER_PLAYER_FAINTED, BattleScript_FaintedMonChooseAnother
+ jumpifbyte CMP_EQUAL, sBATTLE_STYLE, 1, BattleScript_FaintedMonChooseAnother
+ jumpifcantswitch BS_PLAYER1, BattleScript_FaintedMonChooseAnother
+ printstring STRINGID_ENEMYABOUTTOSWITCHPKMN
+ setbyte gBattleCommunication, 0
+ yesnobox
+ jumpifbyte CMP_EQUAL, gBattleCommunication + 1, 1, BattleScript_FaintedMonChooseAnother
+ setatktoplayer0
+ openpartyscreen BS_ATTACKER | OPEN_PARTY_ALLOW_CANCEL, BattleScript_FaintedMonChooseAnother
+ switchhandleorder BS_ATTACKER, 2
+ jumpifbyte CMP_EQUAL, gBattleCommunication, 6, BattleScript_FaintedMonChooseAnother
+ atknameinbuff1
+ resetintimidatetracebits BS_ATTACKER
+ hpthresholds2 BS_ATTACKER
+ printstring STRINGID_RETURNMON
+ switchoutabilities BS_ATTACKER
+ waitstate
+ returnatktoball
+ waitstate
+ drawpartystatussummary BS_ATTACKER
+ getswitchedmondata BS_ATTACKER
+ switchindataupdate BS_ATTACKER
+ hpthresholds BS_ATTACKER
+ printstring STRINGID_SWITCHINMON
+ hidepartystatussummary BS_ATTACKER
+ switchinanim BS_ATTACKER, 0
+ waitstate
+ switchineffects BS_ATTACKER
+ resetsentmonsvalue
+BattleScript_FaintedMonChooseAnother::
+ drawpartystatussummary BS_FAINTED
+ getswitchedmondata BS_FAINTED
+ switchindataupdate BS_FAINTED
+ hpthresholds BS_FAINTED
+ printstring STRINGID_SWITCHINMON
+ hidepartystatussummary BS_FAINTED
+ switchinanim BS_FAINTED, 0
+ waitstate
+ various7 BS_ATTACKER
+ switchineffects BS_FAINTED
+ jumpifbattletype BATTLE_TYPE_DOUBLE, BattleScript_FaintedMonEnd
+ cancelallactions
+BattleScript_FaintedMonEnd::
+ end2
+
+BattleScript_LinkBattleHandleFaint::
+ openpartyscreen BS_UNKNOWN_5, .+4
+ switchhandleorder BS_FAINTED, 0
+ openpartyscreen BS_UNKNOWN_6, BattleScript_LinkBattleFaintedMonEnd
+ switchhandleorder BS_FAINTED, 0
+BattleScript_LinkBattleFaintedMonLoop::
+ switchhandleorder BS_FAINTED, 2
+ drawpartystatussummary BS_FAINTED
+ getswitchedmondata BS_FAINTED
+ switchindataupdate BS_FAINTED
+ hpthresholds BS_FAINTED
+ printstring STRINGID_SWITCHINMON
+ hidepartystatussummary BS_FAINTED
+ switchinanim BS_FAINTED, 0
+ waitstate
+ switchineffects 5
+ jumpifbytenotequal gBattlerFainted, gBattlersCount, BattleScript_LinkBattleFaintedMonLoop
+BattleScript_LinkBattleFaintedMonEnd::
+ end2
+
+BattleScript_LocalTrainerBattleWon::
+ printstring STRINGID_PLAYERDEFEATEDTRAINER1
+ trainerslidein BS_ATTACKER
+ waitstate
+ printstring STRINGID_TRAINER1LOSETEXT
+ getmoneyreward .+4
+ printstring STRINGID_PLAYERGOTMONEY
+ waitmessage 0x40
+BattleScript_PayDayMoneyAndPickUpItems::
+ givepaydaymoney
+ pickup
+ end2
+
+BattleScript_LocalBattleLost::
+ jumpifbattletype BATTLE_TYPE_TRAINER_TOWER, BattleScript_BattleTowerLost
+ jumpifbattletype BATTLE_TYPE_EREADER_TRAINER, BattleScript_EReaderOrSecretBaseTrainerEnd
+ jumpifhalfword CMP_EQUAL, gTrainerBattleOpponent_A, TRAINER_SECRET_BASE, BattleScript_EReaderOrSecretBaseTrainerEnd
+ jumpifbyte CMP_NOT_EQUAL, cMULTISTRING_CHOOSER, 0, BattleScript_RivalBattleLost
+BattleScript_LocalBattleLostPrintWhiteOut::
+ jumpifbattletype BATTLE_TYPE_TRAINER, BattleScript_LocalBattleLostEnd
+ printstring STRINGID_PLAYERWHITEOUT
+ waitmessage 0x40
+ getmoneyreward BattleScript_LocalBattleLostPrintTrainersWinText
+ printstring STRINGID_PLAYERWHITEOUT2
+ waitmessage 0x40
+ goto BattleScript_EReaderOrSecretBaseTrainerEnd
+
+BattleScript_LocalBattleLostEnd::
+ printstring STRINGID_PLAYERLOSTAGAINSTENEMYTRAINER
+ waitmessage 0x40
+ getmoneyreward BattleScript_LocalBattleLostPrintTrainersWinText
+ printstring STRINGID_PLAYERPAIDPRIZEMONEY
+ waitmessage 0x40
+BattleScript_EReaderOrSecretBaseTrainerEnd::
+ end2
+
+BattleScript_LocalBattleLostPrintTrainersWinText::
+ printstring STRINGID_PLAYERWHITEDOUT
+ waitmessage 0x40
+ end2
+
+BattleScript_RivalBattleLost::
+ jumpifhasnohp BS_ATTACKER, BattleScript_RivalBattleLostSkipMonRecall
+ printstring STRINGID_TRAINER1MON1COMEBACK
+ waitmessage 0x40
+ returnatktoball
+ waitstate
+BattleScript_RivalBattleLostSkipMonRecall::
+ trainerslidein BS_ATTACKER
+ waitstate
+ printstring STRINGID_TRAINER1WINTEXT
+ jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 2, BattleScript_LocalBattleLostPrintWhiteOut
+ end2
+
+BattleScript_BattleTowerLost::
+ various8 BS_ATTACKER
+ jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0, BattleScript_BattleTowerLostLostSkipMonRecall
+ printfromtable gDoubleBattleRecallStrings
+ waitmessage 0x40
+ returnopponentmon1toball BS_ATTACKER
+ waitstate
+ returnopponentmon2toball BS_ATTACKER
+ waitstate
+BattleScript_BattleTowerLostLostSkipMonRecall::
+ trainerslidein BS_ATTACKER
+ waitstate
+ printstring STRINGID_TRAINER1WINTEXT
+ jumpifnotbattletype BATTLE_TYPE_DOUBLE, BattleScript_BattleTowerLostLostSkipDouble
+ printstring STRINGID_TRAINER2NAME
+BattleScript_BattleTowerLostLostSkipDouble::
+ end2
+
+BattleScript_LinkBattleWonOrLost::
+ printstring STRINGID_BATTLEEND
+ waitmessage 0x40
+ atk57
+ waitmessage 0x40
+ end2
+
+BattleScript_BattleTowerTrainerBattleWon::
+ printstring STRINGID_PLAYERDEFEATEDTRAINER1
+ trainerslidein BS_ATTACKER
+ waitstate
+ jumpifnotbattletype BATTLE_TYPE_TRAINER_TOWER, BattleScript_BattleTowerEtcTrainerBattleWonSkipText
+ printstring STRINGID_TRAINER1LOSETEXT
+ jumpifnotbattletype BATTLE_TYPE_DOUBLE, BattleScript_BattleTowerEtcTrainerBattleWonSkipText
+ printstring STRINGID_TRAINER2CLASS
+BattleScript_BattleTowerEtcTrainerBattleWonSkipText::
+ pickup
+ end2
+
+BattleScript_SmokeBallEscape::
+ playanimation BS_ATTACKER, B_ANIM_SMOKEBALL_ESCAPE, NULL
+ printstring STRINGID_PKMNFLEDUSINGITS
+ waitmessage 0x40
+ end2
+
+BattleScript_RanAwayUsingMonAbility::
+ printstring STRINGID_PKMNFLEDUSING
+ waitmessage 0x40
+ end2
+
+BattleScript_GotAwaySafely::
+ printstring STRINGID_GOTAWAYSAFELY
+ waitmessage 0x40
+ end2
+
+BattleScript_WildMonFled::
+ printstring STRINGID_WILDPKMNFLED
+ waitmessage 0x40
+ end2
+
+BattleScript_PrintCantRunFromTrainer::
+ jumpifbattletype BATTLE_TYPE_FIRST_BATTLE, BattleScript_LeftoverBirchString
+ printstring STRINGID_NORUNNINGFROMTRAINERS
+ end2
+
+BattleScript_LeftoverBirchString::
+ printstring STRINGID_DONTLEAVEBIRCH
+ end2
+
+BattleScript_PrintFailedToRunString::
+ printfromtable gNoEscapeStringIds
+ waitmessage 0x40
+ end2
+
+BattleScript_PrintCantEscapeFromBattle::
+ printselectionstringfromtable gNoEscapeStringIds
+ endselectionscript
+
+BattleScript_PrintFullBox::
+ printselectionstring STRINGID_BOXISFULL
+ endselectionscript
+
+BattleScript_ActionSwitch::
+ hpthresholds2 BS_ATTACKER
+ printstring STRINGID_RETURNMON
+ setbyte sDMG_MULTIPLIER, 2
+ jumpifbattletype BATTLE_TYPE_DOUBLE, BattleScript_PursuitSwitchCheckTwice
+ setmultihit 1
+ goto BattleScript_PursuitSwitchLoop
+
+BattleScript_PursuitSwitchCheckTwice::
+ setmultihit 2
+BattleScript_PursuitSwitchLoop::
+ jumpifnopursuitswitchdmg BattleScript_DoSwitchOut
+ swapattackerwithtarget
+ trysetdestinybondtohappen
+ call BattleScript_PursuitDmgOnSwitchOut
+ swapattackerwithtarget
+BattleScript_DoSwitchOut::
+ decrementmultihit BattleScript_PursuitSwitchLoop
+ switchoutabilities BS_ATTACKER
+ waitstate
+ returnatktoball
+ waitstate
+ drawpartystatussummary BS_ATTACKER
+ switchhandleorder BS_ATTACKER, 1
+ getswitchedmondata BS_ATTACKER
+ switchindataupdate BS_ATTACKER
+ hpthresholds BS_ATTACKER
+ printstring STRINGID_SWITCHINMON
+ hidepartystatussummary BS_ATTACKER
+ switchinanim BS_ATTACKER, 0
+ waitstate
+ switchineffects BS_ATTACKER
+ moveendcase 4
+ moveendcase 15
+ end2
+
+BattleScript_PursuitDmgOnSwitchOut::
+ pause 0x20
+ attackstring
+ ppreduce
+ critcalc
+ damagecalc
+ typecalc
+ adjustnormaldamage
+ attackanimation
+ waitanimation
+ effectivenesssound
+ hitanimation BS_TARGET
+ waitstate
+ healthbarupdate BS_TARGET
+ datahpupdate BS_TARGET
+ critmessage
+ waitmessage 0x40
+ resultmessage
+ waitmessage 0x40
+ tryfaintmon BS_TARGET, 0, NULL
+ moveendfromto 3, 6
+ various4 BS_TARGET
+ jumpifbyte CMP_EQUAL, gBattleCommunication, 0, BattleScript_PursuitSwitchRivalSkip
+ setbyte sGIVEEXP_STATE, 0
+ getexp BS_TARGET
+BattleScript_PursuitSwitchRivalSkip::
+ return
+
+BattleScript_Pausex20::
+ pause 0x20
+ return
+
+BattleScript_LevelUp::
+ fanfare MUS_FANFA1
+ printstring STRINGID_PKMNGREWTOLV
+ setbyte sLVLBOX_STATE, 0
+ drawlvlupbox
+ handlelearnnewmove BattleScript_LearnedNewMove, BattleScript_LearnMoveReturn, 1
+ goto BattleScript_AskToLearnMove
+
+BattleScript_LearnMoveLoop::
+ handlelearnnewmove BattleScript_LearnedNewMove, BattleScript_LearnMoveReturn, 0
+BattleScript_AskToLearnMove::
+ buffermovetolearn
+ printstring STRINGID_TRYTOLEARNMOVE1
+ printstring STRINGID_TRYTOLEARNMOVE2
+ printstring STRINGID_TRYTOLEARNMOVE3
+ waitstate
+ setbyte sLEARNMOVE_STATE, 0
+ yesnoboxlearnmove BattleScript_ForgotAndLearnedNewMove
+ printstring STRINGID_STOPLEARNINGMOVE
+ waitstate
+ setbyte sLEARNMOVE_STATE, 0
+ yesnoboxstoplearningmove BattleScript_AskToLearnMove
+ printstring STRINGID_DIDNOTLEARNMOVE
+ goto BattleScript_LearnMoveLoop
+
+BattleScript_ForgotAndLearnedNewMove::
+ printstring STRINGID_123POOF
+ printstring STRINGID_PKMNFORGOTMOVE
+ printstring STRINGID_ANDELLIPSIS
+BattleScript_LearnedNewMove::
+ buffermovetolearn
+ fanfare MUS_FANFA1
+ printstring STRINGID_PKMNLEARNEDMOVE
+ waitmessage 0x40
+ updatechoicemoveonlvlup BS_ATTACKER
+ goto BattleScript_LearnMoveLoop
+
+BattleScript_LearnMoveReturn::
+ return
+
+BattleScript_RainContinuesOrEnds::
+ printfromtable gRainContinuesStringIds
+ waitmessage 0x40
+ jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 2, BattleScript_RainContinuesOrEndsEnd
+ playanimation BS_ATTACKER, B_ANIM_RAIN_CONTINUES, NULL
+BattleScript_RainContinuesOrEndsEnd::
+ end2
+
+BattleScript_DamagingWeatherContinues::
+ printfromtable gSandStormHailContinuesStringIds
+ waitmessage 0x40
+ playanimation2 BS_ATTACKER, sB_ANIM_ARG1, NULL
+ setbyte gBattleCommunication, 0
+BattleScript_DamagingWeatherLoop::
+ copyarraywithindex gBattlerAttacker, gBattlerByTurnOrder, gBattleCommunication, 1
+ weatherdamage
+ jumpifword CMP_EQUAL, gBattleMoveDamage, NULL, BattleScript_DamagingWeatherContinuesEnd
+ printfromtable gSandStormHailDmgStringIds
+ waitmessage 0x40
+ orword gHitMarker, HITMARKER_x20 | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 | HITMARKER_GRUDGE
+ effectivenesssound
+ hitanimation BS_ATTACKER
+ healthbarupdate BS_ATTACKER
+ datahpupdate BS_ATTACKER
+ tryfaintmon BS_ATTACKER, 0, NULL
+ atk24 .+4
+BattleScript_DamagingWeatherContinuesEnd::
+ jumpifbyte CMP_NOT_EQUAL, gBattleOutcome, 0, BattleScript_WeatherDamageEndedBattle
+ addbyte gBattleCommunication, 1
+ jumpifbytenotequal gBattleCommunication, gBattlersCount, BattleScript_DamagingWeatherLoop
+BattleScript_WeatherDamageEndedBattle::
+ bicword gHitMarker, HITMARKER_x20 | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 | HITMARKER_GRUDGE
+ end2
+
+BattleScript_SandStormHailEnds::
+ printfromtable gSandStormHailEndStringIds
+ waitmessage 0x40
+ end2
+
+BattleScript_SunlightContinues::
+ printstring STRINGID_SUNLIGHTSTRONG
+ waitmessage 0x40
+ playanimation BS_ATTACKER, B_ANIM_SUN_CONTINUES, NULL
+ end2
+
+BattleScript_SunlightFaded::
+ printstring STRINGID_SUNLIGHTFADED
+ waitmessage 0x40
+ end2
+
+BattleScript_OverworldWeatherStarts::
+ printfromtable gWeatherContinuesStringIds
+ waitmessage 0x40
+ playanimation2 BS_ATTACKER, sB_ANIM_ARG1, NULL
+ end3
+
+BattleScript_SideStatusWoreOff::
+ printstring STRINGID_PKMNSXWOREOFF
+ waitmessage 0x40
+ end2
+
+BattleScript_SafeguardProtected::
+ pause 0x20
+ printstring STRINGID_PKMNUSEDSAFEGUARD
+ waitmessage 0x40
+ end2
+
+BattleScript_SafeguardEnds::
+ pause 0x20
+ printstring STRINGID_PKMNSAFEGUARDEXPIRED
+ waitmessage 0x40
+ end2
+
+BattleScript_LeechSeedTurnDrain::
+ playanimation BS_ATTACKER, B_ANIM_LEECH_SEED_DRAIN, sB_ANIM_ARG1
+ orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000
+ healthbarupdate BS_ATTACKER
+ datahpupdate BS_ATTACKER
+ copyword gBattleMoveDamage, gHpDealt
+ jumpifability BS_ATTACKER, ABILITY_LIQUID_OOZE, BattleScript_LeechSeedLiquidOoze
+ manipulatedamage 0
+ setbyte cMULTISTRING_CHOOSER, 3
+ goto BattleScript_LeechSeedTurnPrintAndUpdateHp
+
+BattleScript_LeechSeedLiquidOoze::
+ setbyte cMULTISTRING_CHOOSER, 4
+BattleScript_LeechSeedTurnPrintAndUpdateHp::
+ orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000
+ healthbarupdate BS_TARGET
+ datahpupdate BS_TARGET
+ printfromtable gLeechSeedStringIds
+ waitmessage 0x40
+ tryfaintmon BS_ATTACKER, 0, NULL
+ tryfaintmon BS_TARGET, 0, NULL
+ end2
+
+BattleScript_BideStoringEnergy::
+ printstring STRINGID_PKMNSTORINGENERGY
+ waitmessage 0x40
+ goto BattleScript_MoveEnd
+
+BattleScript_BideAttack::
+ attackcanceler
+ setmoveeffect MOVE_EFFECT_CHARGING
+ clearstatusfromeffect BS_ATTACKER
+ printstring STRINGID_PKMNUNLEASHEDENERGY
+ waitmessage 0x40
+ accuracycheck BattleScript_MoveMissed, ACC_CURR_MOVE
+ typecalc
+ bicbyte gMoveResultFlags, MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE
+ copyword gBattleMoveDamage, sBIDE_DMG
+ adjustsetdamage
+ setbyte sB_ANIM_TURN, 1
+ attackanimation
+ waitanimation
+ effectivenesssound
+ hitanimation BS_TARGET
+ waitstate
+ healthbarupdate BS_TARGET
+ datahpupdate BS_TARGET
+ resultmessage
+ waitmessage 0x40
+ tryfaintmon BS_TARGET, 0, NULL
+ goto BattleScript_MoveEnd
+
+BattleScript_BideNoEnergyToAttack::
+ attackcanceler
+ setmoveeffect MOVE_EFFECT_CHARGING
+ clearstatusfromeffect BS_ATTACKER
+ printstring STRINGID_PKMNUNLEASHEDENERGY
+ waitmessage 0x40
+ goto BattleScript_ButItFailed
+
+BattleScript_SuccessForceOut::
+ attackanimation
+ waitanimation
+ switchoutabilities BS_TARGET
+ returntoball BS_TARGET
+ waitstate
+ jumpifbattletype BATTLE_TYPE_TRAINER, BattleScript_TrainerBattleForceOut
+ setbyte gBattleOutcome, B_OUTCOME_PLAYER_TELEPORTED
+ finishaction
+BattleScript_TrainerBattleForceOut::
+ getswitchedmondata BS_TARGET
+ switchindataupdate BS_TARGET
+ switchinanim BS_TARGET, 0
+ waitstate
+ printstring STRINGID_PKMNWASDRAGGEDOUT
+ switchineffects BS_TARGET
+ goto BattleScript_MoveEnd
+
+BattleScript_MistProtected::
+ pause 0x20
+ printstring STRINGID_PKMNPROTECTEDBYMIST
+ waitmessage 0x40
+ return
+
+BattleScript_RageIsBuilding::
+ printstring STRINGID_PKMNRAGEBUILDING
+ waitmessage 0x40
+ return
+
+BattleScript_MoveUsedIsDisabled::
+ printstring STRINGID_PKMNMOVEISDISABLED
+ waitmessage 0x40
+ goto BattleScript_MoveEnd
+
+BattleScript_SelectingDisabledMove::
+ printselectionstring STRINGID_PKMNMOVEISDISABLED
+ endselectionscript
+
+BattleScript_DisabledNoMore::
+ printstring STRINGID_PKMNMOVEDISABLEDNOMORE
+ waitmessage 0x40
+ end2
+
+BattleScript_EncoredNoMore::
+ printstring STRINGID_PKMNENCOREENDED
+ waitmessage 0x40
+ end2
+
+BattleScript_DestinyBondTakesLife::
+ printstring STRINGID_PKMNTOOKFOE
+ waitmessage 0x40
+ orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000
+ healthbarupdate BS_ATTACKER
+ datahpupdate BS_ATTACKER
+ tryfaintmon BS_ATTACKER, 0, NULL
+ return
+
+BattleScript_SpikesOnAttacker::
+ orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000
+ healthbarupdate BS_ATTACKER
+ datahpupdate BS_ATTACKER
+ call BattleScript_PrintHurtBySpikes
+ tryfaintmon BS_ATTACKER, 0, NULL
+ tryfaintmon BS_ATTACKER, 1, BattleScript_SpikesOnAttackerFainted
+ return
+
+BattleScript_SpikesOnAttackerFainted::
+ setbyte sGIVEEXP_STATE, 0
+ getexp BS_ATTACKER
+ moveendall
+ goto BattleScript_HandleFaintedMon
+
+BattleScript_SpikesOnTarget::
+ orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000
+ healthbarupdate BS_TARGET
+ datahpupdate BS_TARGET
+ call BattleScript_PrintHurtBySpikes
+ tryfaintmon BS_TARGET, 0, NULL
+ tryfaintmon BS_TARGET, 1, BattleScript_SpikesOnTargetFainted
+ return
+
+BattleScript_SpikesOnTargetFainted::
+ setbyte sGIVEEXP_STATE, 0
+ getexp BS_TARGET
+ moveendall
+ goto BattleScript_HandleFaintedMon
+
+BattleScript_SpikesOnFaintedBattler::
+ orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000
+ healthbarupdate BS_FAINTED
+ datahpupdate BS_FAINTED
+ call BattleScript_PrintHurtBySpikes
+ tryfaintmon BS_FAINTED, 0, NULL
+ tryfaintmon BS_FAINTED, 1, BattleScript_SpikesOnFaintedBattlerFainted
+ return
+
+BattleScript_SpikesOnFaintedBattlerFainted::
+ setbyte sGIVEEXP_STATE, 0
+ getexp BS_FAINTED
+ moveendall
+ goto BattleScript_HandleFaintedMon
+
+BattleScript_PrintHurtBySpikes::
+ printstring STRINGID_PKMNHURTBYSPIKES
+ waitmessage 0x40
+ return
+
+BattleScript_PerishSongTakesLife::
+ printstring STRINGID_PKMNPERISHCOUNTFELL
+ waitmessage 0x40
+ orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000
+ healthbarupdate BS_ATTACKER
+ datahpupdate BS_ATTACKER
+ tryfaintmon BS_ATTACKER, 0, NULL
+ end2
+
+BattleScript_PerishSongCountGoesDown::
+ printstring STRINGID_PKMNPERISHCOUNTFELL
+ waitmessage 0x40
+ end2
+
+BattleScript_AllStatsUp::
+ jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_ATK, 12, BattleScript_AllStatsUpAtk
+ jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_DEF, 12, BattleScript_AllStatsUpAtk
+ jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_SPEED, 12, BattleScript_AllStatsUpAtk
+ jumpifstat BS_ATTACKER, CMP_LESS_THAN, STAT_SPATK, 12, BattleScript_AllStatsUpAtk
+ jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_SPDEF, 12, BattleScript_AllStatsUpRet
+BattleScript_AllStatsUpAtk::
+ setbyte sSTAT_ANIM_PLAYED, 0
+ playstatchangeanimation BS_ATTACKER, BIT_ATK | BIT_DEF | BIT_SPEED | BIT_SPATK | BIT_SPDEF, 0
+ setstatchanger STAT_ATK, 1, FALSE
+ statbuffchange STAT_CHANGE_BS_PTR | MOVE_EFFECT_AFFECTS_USER, BattleScript_AllStatsUpDef
+ printfromtable gStatUpStringIds
+ waitmessage 0x40
+BattleScript_AllStatsUpDef::
+ setstatchanger STAT_DEF, 1, FALSE
+ statbuffchange STAT_CHANGE_BS_PTR | MOVE_EFFECT_AFFECTS_USER, BattleScript_AllStatsUpSpeed
+ printfromtable gStatUpStringIds
+ waitmessage 0x40
+BattleScript_AllStatsUpSpeed::
+ setstatchanger STAT_SPEED, 1, FALSE
+ statbuffchange STAT_CHANGE_BS_PTR | MOVE_EFFECT_AFFECTS_USER, BattleScript_AllStatsUpSpAtk
+ printfromtable gStatUpStringIds
+ waitmessage 0x40
+BattleScript_AllStatsUpSpAtk::
+ setstatchanger STAT_SPATK, 1, FALSE
+ statbuffchange STAT_CHANGE_BS_PTR | MOVE_EFFECT_AFFECTS_USER, BattleScript_AllStatsUpSpDef
+ printfromtable gStatUpStringIds
+ waitmessage 0x40
+BattleScript_AllStatsUpSpDef::
+ setstatchanger STAT_SPDEF, 1, FALSE
+ statbuffchange STAT_CHANGE_BS_PTR | MOVE_EFFECT_AFFECTS_USER, BattleScript_AllStatsUpRet
+ printfromtable gStatUpStringIds
+ waitmessage 0x40
+BattleScript_AllStatsUpRet::
+ return
+
+BattleScript_RapidSpinAway::
+ rapidspinfree
+ return
+
+BattleScript_WrapFree::
+ printstring STRINGID_PKMNGOTFREE
+ waitmessage 0x40
+ copybyte gBattlerTarget, sBATTLER
+ return
+
+BattleScript_LeechSeedFree::
+ printstring STRINGID_PKMNSHEDLEECHSEED
+ waitmessage 0x40
+ return
+
+BattleScript_SpikesFree::
+ printstring STRINGID_PKMNBLEWAWAYSPIKES
+ waitmessage 0x40
+ return
+
+BattleScript_MonTookFutureAttack::
+ printstring STRINGID_PKMNTOOKATTACK
+ waitmessage 0x40
+ jumpifbyte CMP_NOT_EQUAL, cMULTISTRING_CHOOSER, 0, BattleScript_CheckDoomDesireMiss
+ accuracycheck BattleScript_FutureAttackMiss, MOVE_FUTURE_SIGHT
+ goto BattleScript_FutureAttackAnimate
+
+BattleScript_CheckDoomDesireMiss::
+ accuracycheck BattleScript_FutureAttackMiss, MOVE_DOOM_DESIRE
+BattleScript_FutureAttackAnimate::
+ adjustnormaldamage2
+ jumpifbyte CMP_NOT_EQUAL, cMULTISTRING_CHOOSER, 0, BattleScript_FutureHitAnimDoomDesire
+ playanimation BS_ATTACKER, B_ANIM_FUTURE_SIGHT_HIT, NULL
+ goto BattleScript_DoFutureAttackHit
+
+BattleScript_FutureHitAnimDoomDesire::
+ playanimation BS_ATTACKER, B_ANIM_DOOM_DESIRE_HIT, NULL
+BattleScript_DoFutureAttackHit::
+ effectivenesssound
+ hitanimation BS_TARGET
+ waitstate
+ healthbarupdate BS_TARGET
+ datahpupdate BS_TARGET
+ resultmessage
+ waitmessage 0x40
+ tryfaintmon BS_TARGET, 0, NULL
+ atk24 .+4
+ moveendcase 0
+ moveendfromto 11, 14
+ setbyte gMoveResultFlags, 0
+ end2
+
+BattleScript_FutureAttackMiss::
+ pause 0x20
+ setbyte gMoveResultFlags, 0
+ orbyte gMoveResultFlags, MOVE_RESULT_FAILED
+ resultmessage
+ waitmessage 0x40
+ setbyte gMoveResultFlags, 0
+ end2
+
+BattleScript_NoMovesLeft::
+ printselectionstring STRINGID_PKMNHASNOMOVESLEFT
+ endselectionscript
+
+BattleScript_SelectingMoveWithNoPP::
+ printselectionstring STRINGID_NOPPLEFT
+ endselectionscript
+
+BattleScript_NoPPForMove::
+ attackstring
+ pause 0x20
+ printstring STRINGID_BUTNOPPLEFT
+ waitmessage 0x40
+ goto BattleScript_MoveEnd
+
+BattleScript_SelectingTormentedMove::
+ printselectionstring STRINGID_PKMNCANTUSEMOVETORMENT
+ endselectionscript
+
+ printstring STRINGID_PKMNCANTUSEMOVETORMENT
+ waitmessage 0x40
+ goto BattleScript_MoveEnd
+
+BattleScript_SelectingNotAllowedMoveTaunt::
+ printselectionstring STRINGID_PKMNCANTUSEMOVETAUNT
+ endselectionscript
+
+BattleScript_MoveUsedIsTaunted::
+ printstring STRINGID_PKMNCANTUSEMOVETAUNT
+ waitmessage 0x40
+ goto BattleScript_MoveEnd
+
+BattleScript_WishComesTrue::
+ trywish 1, BattleScript_WishButFullHp
+ playanimation BS_TARGET, B_ANIM_WISH_HEAL, NULL
+ printstring STRINGID_PKMNWISHCAMETRUE
+ waitmessage 0x40
+ orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
+ healthbarupdate BS_TARGET
+ datahpupdate BS_TARGET
+ printstring STRINGID_PKMNREGAINEDHEALTH
+ waitmessage 0x40
+ end2
+
+BattleScript_WishButFullHp::
+ printstring STRINGID_PKMNWISHCAMETRUE
+ waitmessage 0x40
+ pause 0x20
+ printstring STRINGID_PKMNHPFULL
+ waitmessage 0x40
+ end2
+
+BattleScript_IngrainTurnHeal::
+ playanimation BS_ATTACKER, B_ANIM_INGRAIN_HEAL, NULL
+ printstring STRINGID_PKMNABSORBEDNUTRIENTS
+ waitmessage 0x40
+ orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
+ healthbarupdate BS_ATTACKER
+ datahpupdate BS_ATTACKER
+ end2
+
+BattleScript_PrintMonIsRooted::
+ pause 0x20
+ printstring STRINGID_PKMNANCHOREDITSELF
+ waitmessage 0x40
+ goto BattleScript_MoveEnd
+
+BattleScript_AtkDefDown::
+ setbyte sSTAT_ANIM_PLAYED, 0
+ playstatchangeanimation BS_ATTACKER, BIT_ATK | BIT_DEF, ATK48_STAT_NEGATIVE | ATK48_ONLY_MULTIPLE | ATK48_DONT_CHECK_LOWER
+ playstatchangeanimation BS_ATTACKER, BIT_ATK, ATK48_STAT_NEGATIVE | ATK48_DONT_CHECK_LOWER
+ setstatchanger STAT_ATK, 1, TRUE
+ statbuffchange STAT_CHANGE_BS_PTR | MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN, BattleScript_AtkDefDownAtkFail
+ jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 2, BattleScript_AtkDefDownAtkFail
+ printfromtable gStatDownStringIds
+ waitmessage 0x40
+BattleScript_AtkDefDownAtkFail::
+ playstatchangeanimation BS_ATTACKER, BIT_DEF, ATK48_STAT_NEGATIVE | ATK48_DONT_CHECK_LOWER
+ setstatchanger STAT_DEF, 1, TRUE
+ statbuffchange STAT_CHANGE_BS_PTR | MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN, BattleScript_AtkDefDownDefFail
+ jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 2, BattleScript_AtkDefDownDefFail
+ printfromtable gStatDownStringIds
+ waitmessage 0x40
+BattleScript_AtkDefDownDefFail::
+ return
+
+BattleScript_KnockedOff::
+ playanimation BS_TARGET, B_ANIM_ITEM_KNOCKOFF, NULL
+ printstring STRINGID_PKMNKNOCKEDOFF
+ waitmessage 0x40
+ return
+
+BattleScript_MoveUsedIsImprisoned::
+ printstring STRINGID_PKMNCANTUSEMOVESEALED
+ waitmessage 0x40
+ goto BattleScript_MoveEnd
+
+BattleScript_SelectingImprisonedMove::
+ printselectionstring STRINGID_PKMNCANTUSEMOVESEALED
+ endselectionscript
+
+BattleScript_GrudgeTakesPp::
+ printstring STRINGID_PKMNLOSTPPGRUDGE
+ waitmessage 0x40
+ return
+
+BattleScript_MagicCoatBounce::
+ attackstring
+ ppreduce
+ pause 0x20
+ printstring STRINGID_PKMNMOVEBOUNCED
+ waitmessage 0x40
+ orword gHitMarker, HITMARKER_ATTACKSTRING_PRINTED | HITMARKER_NO_PPDEDUCT | HITMARKER_x800000
+ setmagiccoattarget BS_ATTACKER
+ return
+
+BattleScript_SnatchedMove::
+ attackstring
+ ppreduce
+ snatchsetbattlers
+ playanimation BS_TARGET, B_ANIM_SNATCH_MOVE, NULL
+ printstring STRINGID_PKMNSNATCHEDMOVE
+ waitmessage 0x40
+ orword gHitMarker, HITMARKER_ATTACKSTRING_PRINTED | HITMARKER_NO_PPDEDUCT | HITMARKER_x800000
+ swapattackerwithtarget
+ return
+
+BattleScript_EnduredMsg::
+ printstring STRINGID_PKMNENDUREDHIT
+ waitmessage 0x40
+ return
+
+BattleScript_OneHitKOMsg::
+ printstring STRINGID_ONEHITKO
+ waitmessage 0x40
+ return
+
+BattleScript_SAtkDown2::
+ setbyte sSTAT_ANIM_PLAYED, 0
+ playstatchangeanimation BS_ATTACKER, BIT_SPATK, ATK48_STAT_NEGATIVE | ATK48_STAT_BY_TWO | ATK48_DONT_CHECK_LOWER
+ setstatchanger STAT_SPATK, 2, TRUE
+ statbuffchange STAT_CHANGE_BS_PTR | MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN, BattleScript_SAtkDown2End
+ jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 2, BattleScript_SAtkDown2End
+ printfromtable gStatDownStringIds
+ waitmessage 0x40
+BattleScript_SAtkDown2End::
+ return
+
+BattleScript_FocusPunchSetUp::
+ printstring STRINGID_EMPTYSTRING3
+ waitmessage 1
+ playanimation BS_ATTACKER, B_ANIM_FOCUS_PUNCH_SETUP, NULL
+ printstring STRINGID_PKMNTIGHTENINGFOCUS
+ waitmessage 0x40
+ end2
+
+BattleScript_MoveUsedIsAsleep::
+ printstring STRINGID_PKMNFASTASLEEP
+ waitmessage 0x40
+ statusanimation BS_ATTACKER
+ goto BattleScript_MoveEnd
+
+BattleScript_MoveUsedWokeUp::
+ bicword gHitMarker, HITMARKER_x10
+ printfromtable gWokeUpStringIds
+ waitmessage 0x40
+ updatestatusicon BS_ATTACKER
+ return
+
+BattleScript_MonWokeUpInUproar::
+ printstring STRINGID_PKMNWOKEUPINUPROAR
+ waitmessage 0x40
+ updatestatusicon BS_ATTACKER
+ end2
+
+BattleScript_PoisonTurnDmg::
+ printstring STRINGID_PKMNHURTBYPOISON
+ waitmessage 0x40
+BattleScript_DoStatusTurnDmg::
+ statusanimation BS_ATTACKER
+BattleScript_DoTurnDmg::
+ orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000
+ healthbarupdate BS_ATTACKER
+ datahpupdate BS_ATTACKER
+ tryfaintmon BS_ATTACKER, 0, NULL
+ atk24 .+4
+ end2
+
+BattleScript_BurnTurnDmg::
+ printstring STRINGID_PKMNHURTBYBURN
+ waitmessage 0x40
+ goto BattleScript_DoStatusTurnDmg
+
+BattleScript_MoveUsedIsFrozen::
+ printstring STRINGID_PKMNISFROZEN
+ waitmessage 0x40
+ statusanimation BS_ATTACKER
+ goto BattleScript_MoveEnd
+
+BattleScript_MoveUsedUnfroze::
+ printfromtable gGotDefrostedStringIds
+ waitmessage 0x40
+ updatestatusicon BS_ATTACKER
+ return
+
+BattleScript_DefrostedViaFireMove::
+ printstring STRINGID_PKMNWASDEFROSTED
+ waitmessage 0x40
+ updatestatusicon BS_TARGET
+ return
+
+BattleScript_MoveUsedIsParalyzed::
+ printstring STRINGID_PKMNISPARALYZED
+ waitmessage 0x40
+ statusanimation BS_ATTACKER
+ cancelmultiturnmoves BS_ATTACKER
+ goto BattleScript_MoveEnd
+
+BattleScript_MoveUsedFlinched::
+ printstring STRINGID_PKMNFLINCHED
+ waitmessage 0x40
+ goto BattleScript_MoveEnd
+
+BattleScript_PrintUproarOverTurns::
+ printfromtable gUproarOverTurnStringIds
+ waitmessage 0x40
+ end2
+
+BattleScript_ThrashConfuses::
+ chosenstatusanimation BS_ATTACKER, 1, STATUS2_CONFUSION
+ printstring STRINGID_PKMNFATIGUECONFUSION
+ waitmessage 0x40
+ end2
+
+BattleScript_MoveUsedIsConfused::
+ printstring STRINGID_PKMNISCONFUSED
+ waitmessage 0x40
+ status2animation BS_ATTACKER, STATUS2_CONFUSION
+ jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0, BattleScript_MoveUsedIsConfusedRet
+BattleScript_DoSelfConfusionDmg::
+ cancelmultiturnmoves BS_ATTACKER
+ adjustnormaldamage2
+ printstring STRINGID_ITHURTCONFUSION
+ waitmessage 0x40
+ effectivenesssound
+ hitanimation BS_ATTACKER
+ waitstate
+ orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000
+ healthbarupdate BS_ATTACKER
+ datahpupdate BS_ATTACKER
+ resultmessage
+ waitmessage 0x40
+ tryfaintmon BS_ATTACKER, 0, NULL
+ goto BattleScript_MoveEnd
+
+BattleScript_MoveUsedIsConfusedRet::
+ return
+
+BattleScript_MoveUsedIsConfusedNoMore::
+ printstring STRINGID_PKMNHEALEDCONFUSION
+ waitmessage 0x40
+ return
+
+BattleScript_PrintPayDayMoneyString::
+ printstring STRINGID_PKMNPICKEDUPITEM
+ waitmessage 0x40
+ return
+
+BattleScript_WrapTurnDmg::
+ playanimation BS_ATTACKER, B_ANIM_TURN_TRAP, sB_ANIM_ARG1
+ printstring STRINGID_PKMNHURTBY
+ waitmessage 0x40
+ goto BattleScript_DoTurnDmg
+
+BattleScript_WrapEnds::
+ printstring STRINGID_PKMNFREEDFROM
+ waitmessage 0x40
+ end2
+
+BattleScript_MoveUsedIsInLove::
+ printstring STRINGID_PKMNINLOVE
+ waitmessage 0x40
+ status2animation BS_ATTACKER, STATUS2_INFATUATION
+ return
+
+BattleScript_MoveUsedIsInLoveCantAttack::
+ printstring STRINGID_PKMNIMMOBILIZEDBYLOVE
+ waitmessage 0x40
+ goto BattleScript_MoveEnd
+
+BattleScript_NightmareTurnDmg::
+ printstring STRINGID_PKMNLOCKEDINNIGHTMARE
+ waitmessage 0x40
+ status2animation BS_ATTACKER, STATUS2_NIGHTMARE
+ goto BattleScript_DoTurnDmg
+
+BattleScript_CurseTurnDmg::
+ printstring STRINGID_PKMNAFFLICTEDBYCURSE
+ waitmessage 0x40
+ status2animation BS_ATTACKER, STATUS2_CURSED
+ goto BattleScript_DoTurnDmg
+
+BattleScript_TargetPRLZHeal::
+ printstring STRINGID_PKMNHEALEDPARALYSIS
+ waitmessage 0x40
+ updatestatusicon BS_TARGET
+ return
+
+BattleScript_TooScaredToMove::
+ printstring STRINGID_MONTOOSCAREDTOMOVE
+ waitmessage 0x40
+ playanimation BS_ATTACKER, B_ANIM_MON_SCARED, NULL
+ goto BattleScript_MoveEnd
+
+BattleScript_GhostGetOutGetOut::
+ printstring STRINGID_GHOSTGETOUTGETOUT
+ playanimation BS_ATTACKER, B_ANIM_GHOST_GET_OUT, NULL
+ goto BattleScript_MoveEnd
+
+BattleScript_SilphScopeUnveiled::
+ pause 0x20
+ printstring STRINGID_SILPHSCOPEUNVEILED
+ waitstate
+ playanimation BS_OPPONENT1, B_ANIM_SILPH_SCOPED, NULL
+ pause 0x20
+ printstring STRINGID_GHOSTWASMAROWAK
+ waitmessage 0x40
+ end2
+
+BattleScript_MoveEffectSleep::
+ statusanimation BS_EFFECT_BATTLER
+ printfromtable gFellAsleepStringIds
+ waitmessage 0x40
+BattleScript_UpdateEffectStatusIconRet::
+ updatestatusicon BS_EFFECT_BATTLER
+ waitstate
+ return
+
+BattleScript_YawnMakesAsleep::
+ statusanimation BS_EFFECT_BATTLER
+ printstring STRINGID_PKMNFELLASLEEP
+ waitmessage 0x40
+ updatestatusicon BS_EFFECT_BATTLER
+ waitstate
+ makevisible BS_EFFECT_BATTLER
+ end2
+
+BattleScript_MoveEffectPoison::
+ statusanimation BS_EFFECT_BATTLER
+ printfromtable gGotPoisonedStringIds
+ waitmessage 0x40
+ goto BattleScript_UpdateEffectStatusIconRet
+
+BattleScript_MoveEffectBurn::
+ statusanimation BS_EFFECT_BATTLER
+ printfromtable gGotBurnedStringIds
+ waitmessage 0x40
+ goto BattleScript_UpdateEffectStatusIconRet
+
+BattleScript_MoveEffectFreeze::
+ statusanimation BS_EFFECT_BATTLER
+ printfromtable gGotFrozenStringIds
+ waitmessage 0x40
+ goto BattleScript_UpdateEffectStatusIconRet
+
+BattleScript_MoveEffectParalysis::
+ statusanimation BS_EFFECT_BATTLER
+ printfromtable gGotParalyzedStringIds
+ waitmessage 0x40
+ goto BattleScript_UpdateEffectStatusIconRet
+
+BattleScript_MoveEffectUproar::
+ printstring STRINGID_PKMNCAUSEDUPROAR
+ waitmessage 0x40
+ return
+
+BattleScript_MoveEffectToxic::
+ statusanimation BS_EFFECT_BATTLER
+ printstring STRINGID_PKMNBADLYPOISONED
+ waitmessage 0x40
+ goto BattleScript_UpdateEffectStatusIconRet
+
+BattleScript_MoveEffectPayDay::
+ printstring STRINGID_COINSSCATTERED
+ waitmessage 0x40
+ return
+
+BattleScript_MoveEffectWrap::
+ printfromtable gWrappedStringIds
+ waitmessage 0x40
+ return
+
+BattleScript_MoveEffectConfusion::
+ chosenstatusanimation BS_EFFECT_BATTLER, 1, STATUS2_CONFUSION
+ printstring STRINGID_PKMNWASCONFUSED
+ waitmessage 0x40
+ return
+
+BattleScript_MoveEffectRecoil::
+ jumpifmove MOVE_STRUGGLE, BattleScript_DoRecoil
+ jumpifability BS_ATTACKER, ABILITY_ROCK_HEAD, BattleScript_RecoilEnd
+BattleScript_DoRecoil::
+ orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000
+ healthbarupdate BS_ATTACKER
+ datahpupdate BS_ATTACKER
+ printstring STRINGID_PKMNHITWITHRECOIL
+ waitmessage 0x40
+ tryfaintmon BS_ATTACKER, 0, NULL
+BattleScript_RecoilEnd::
+ return
+
+BattleScript_ItemSteal::
+ playanimation BS_TARGET, B_ANIM_ITEM_STEAL, NULL
+ printstring STRINGID_PKMNSTOLEITEM
+ waitmessage 0x40
+ return
+
+BattleScript_DrizzleActivates::
+ pause 0x20
+ printstring STRINGID_PKMNMADEITRAIN
+ waitstate
+ playanimation BS_BATTLER_0, B_ANIM_RAIN_CONTINUES, NULL
+ call BattleScript_HandleWeatherFormChanges
+ end3
+
+BattleScript_SpeedBoostActivates::
+ playanimation BS_ATTACKER, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
+ printstring STRINGID_PKMNRAISEDSPEED
+ waitmessage 0x40
+ end3
+
+BattleScript_TraceActivates::
+ pause 0x20
+ printstring STRINGID_PKMNTRACED
+ waitmessage 0x40
+ end3
+
+BattleScript_RainDishActivates::
+ printstring STRINGID_PKMNSXRESTOREDHPALITTLE2
+ waitmessage 0x40
+ orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
+ healthbarupdate BS_ATTACKER
+ datahpupdate BS_ATTACKER
+ end3
+
+BattleScript_SandstreamActivates::
+ pause 0x20
+ printstring STRINGID_PKMNSXWHIPPEDUPSANDSTORM
+ waitstate
+ playanimation BS_BATTLER_0, B_ANIM_SANDSTORM_CONTINUES, NULL
+ call BattleScript_HandleWeatherFormChanges
+ end3
+
+BattleScript_ShedSkinActivates::
+ printstring STRINGID_PKMNSXCUREDYPROBLEM
+ waitmessage 0x40
+ updatestatusicon BS_ATTACKER
+ end3
+
+BattleScript_HandleWeatherFormChanges::
+ setbyte sBATTLER, 0
+BattleScript_WeatherFormChangesLoop::
+ trycastformdatachange
+ addbyte sBATTLER, 1
+ jumpifbytenotequal sBATTLER, gBattlersCount, BattleScript_WeatherFormChangesLoop
+ return
+
+BattleScript_CastformChange::
+ call BattleScript_DoCastformChangeAnim
+ end3
+
+BattleScript_DoCastformChangeAnim::
+ docastformchangeanimation
+ waitstate
+ printstring STRINGID_PKMNTRANSFORMED
+ waitmessage 0x40
+ return
+
+BattleScript_IntimidateActivatesEnd3::
+ call BattleScript_DoIntimidateActivationAnim
+ end3
+
+BattleScript_DoIntimidateActivationAnim::
+ pause 0x20
+BattleScript_IntimidateActivates::
+ setbyte gBattlerTarget, 0
+ setstatchanger STAT_ATK, 1, TRUE
+BattleScript_IntimidateActivationAnimLoop::
+ trygetintimidatetarget BattleScript_IntimidateEnd
+ jumpifstatus2 BS_TARGET, STATUS2_SUBSTITUTE, BattleScript_IntimidateFail
+ jumpifability BS_TARGET, ABILITY_CLEAR_BODY, BattleScript_IntimidateAbilityFail
+ jumpifability BS_TARGET, ABILITY_HYPER_CUTTER, BattleScript_IntimidateAbilityFail
+ jumpifability BS_TARGET, ABILITY_WHITE_SMOKE, BattleScript_IntimidateAbilityFail
+ statbuffchange STAT_CHANGE_BS_PTR | STAT_CHANGE_NOT_PROTECT_AFFECTED, BattleScript_IntimidateFail
+ jumpifbyte CMP_GREATER_THAN, cMULTISTRING_CHOOSER, 1, BattleScript_IntimidateFail
+ setgraphicalstatchangevalues
+ playanimation BS_TARGET, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
+ printstring STRINGID_PKMNCUTSATTACKWITH
+ waitmessage 0x40
+BattleScript_IntimidateFail::
+ addbyte gBattlerTarget, 1
+ goto BattleScript_IntimidateActivationAnimLoop
+
+BattleScript_IntimidateEnd::
+ return
+
+BattleScript_IntimidateAbilityFail::
+ pause 0x20
+ printstring STRINGID_PREVENTEDFROMWORKING
+ waitmessage 0x40
+ goto BattleScript_IntimidateFail
+
+BattleScript_DroughtActivates::
+ pause 0x20
+ printstring STRINGID_PKMNSXINTENSIFIEDSUN
+ waitstate
+ playanimation BS_BATTLER_0, B_ANIM_SUN_CONTINUES, NULL
+ call BattleScript_HandleWeatherFormChanges
+ end3
+
+BattleScript_TookAttack::
+ attackstring
+ pause 0x20
+ printstring STRINGID_PKMNSXTOOKATTACK
+ waitmessage 0x40
+ orword gHitMarker, HITMARKER_ATTACKSTRING_PRINTED
+ return
+
+BattleScript_SturdyPreventsOHKO::
+ pause 0x20
+ printstring STRINGID_PKMNPROTECTEDBY
+ pause 0x40
+ goto BattleScript_MoveEnd
+
+BattleScript_DampStopsExplosion::
+ pause 0x20
+ printstring STRINGID_PKMNPREVENTSUSAGE
+ pause 0x40
+ goto BattleScript_MoveEnd
+
+BattleScript_MoveHPDrain_PPLoss::
+ ppreduce
+BattleScript_MoveHPDrain::
+ attackstring
+ pause 0x20
+ orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
+ healthbarupdate BS_TARGET
+ datahpupdate BS_TARGET
+ printstring STRINGID_PKMNRESTOREDHPUSING
+ waitmessage 0x40
+ orbyte gMoveResultFlags, MOVE_RESULT_DOESNT_AFFECT_FOE
+ goto BattleScript_MoveEnd
+
+BattleScript_MonMadeMoveUseless_PPLoss::
+ ppreduce
+BattleScript_MonMadeMoveUseless::
+ attackstring
+ pause 0x20
+ printstring STRINGID_PKMNSXMADEYUSELESS
+ waitmessage 0x40
+ orbyte gMoveResultFlags, MOVE_RESULT_DOESNT_AFFECT_FOE
+ goto BattleScript_MoveEnd
+
+BattleScript_FlashFireBoost_PPLoss::
+ ppreduce
+BattleScript_FlashFireBoost::
+ attackstring
+ pause 0x20
+ printfromtable gFlashFireStringIds
+ waitmessage 0x40
+ goto BattleScript_MoveEnd
+
+BattleScript_AbilityPreventsPhasingOut::
+ pause 0x20
+ printstring STRINGID_PKMNANCHORSITSELFWITH
+ waitmessage 0x40
+ goto BattleScript_MoveEnd
+
+BattleScript_AbilityNoStatLoss::
+ pause 0x20
+ printstring STRINGID_PKMNPREVENTSSTATLOSSWITH
+ waitmessage 0x40
+ return
+
+BattleScript_BRNPrevention::
+ pause 0x20
+ printfromtable gBRNPreventionStringIds
+ waitmessage 0x40
+ return
+
+BattleScript_PRLZPrevention::
+ pause 0x20
+ printfromtable gPRLZPreventionStringIds
+ waitmessage 0x40
+ return
+
+BattleScript_PSNPrevention::
+ pause 0x20
+ printfromtable gPSNPreventionStringIds
+ waitmessage 0x40
+ return
+
+BattleScript_ObliviousPreventsAttraction::
+ pause 0x20
+ printstring STRINGID_PKMNPREVENTSROMANCEWITH
+ waitmessage 0x40
+ goto BattleScript_MoveEnd
+
+BattleScript_FlinchPrevention::
+ pause 0x20
+ printstring STRINGID_PKMNSXPREVENTSFLINCHING
+ waitmessage 0x40
+ goto BattleScript_MoveEnd
+
+BattleScript_OwnTempoPrevents::
+ pause 0x20
+ printstring STRINGID_PKMNPREVENTSCONFUSIONWITH
+ waitmessage 0x40
+ goto BattleScript_MoveEnd
+
+BattleScript_SoundproofProtected::
+ attackstring
+ ppreduce
+ pause 0x20
+ printstring STRINGID_PKMNSXBLOCKSY
+ waitmessage 0x40
+ goto BattleScript_MoveEnd
+
+BattleScript_AbilityNoSpecificStatLoss::
+ pause 0x20
+ printstring STRINGID_PKMNSXPREVENTSYLOSS
+ waitmessage 0x40
+ setbyte cMULTISTRING_CHOOSER, 3
+ return
+
+BattleScript_StickyHoldActivates::
+ pause 0x20
+ printstring STRINGID_PKMNSXMADEYINEFFECTIVE
+ waitmessage 0x40
+ goto BattleScript_MoveEnd
+
+BattleScript_ColorChangeActivates::
+ printstring STRINGID_PKMNCHANGEDTYPEWITH
+ waitmessage 0x40
+ return
+
+BattleScript_RoughSkinActivates::
+ orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000
+ healthbarupdate BS_ATTACKER
+ datahpupdate BS_ATTACKER
+ printstring STRINGID_PKMNHURTSWITH
+ waitmessage 0x40
+ tryfaintmon BS_ATTACKER, 0, NULL
+ return
+
+BattleScript_CuteCharmActivates::
+ status2animation BS_ATTACKER, STATUS2_INFATUATION
+ printstring STRINGID_PKMNSXINFATUATEDY
+ waitmessage 0x40
+ return
+
+BattleScript_ApplySecondaryEffect::
+ waitstate
+ seteffectsecondary
+ return
+
+BattleScript_SynchronizeActivates::
+ waitstate
+ seteffectprimary
+ return
+
+BattleScript_AbilityCuredStatus::
+ printstring STRINGID_PKMNSXCUREDITSYPROBLEM
+ waitmessage 0x40
+ updatestatusicon BS_SCRIPTING
+ return
+
+BattleScript_IgnoresWhileAsleep::
+ printstring STRINGID_PKMNIGNORESASLEEP
+ waitmessage 0x40
+ moveendto 16
+ end
+
+BattleScript_IgnoresAndUsesRandomMove::
+ printstring STRINGID_PKMNIGNOREDORDERS
+ waitmessage 0x40
+ jumptocalledmove 0
+BattleScript_MoveUsedLoafingAround::
+ printfromtable gInobedientStringIds
+ waitmessage 0x40
+ moveendto 16
+ end
+
+BattleScript_IgnoresAndFallsAsleep::
+ printstring STRINGID_PKMNBEGANTONAP
+ waitmessage 0x40
+ setmoveeffect MOVE_EFFECT_SLEEP | MOVE_EFFECT_AFFECTS_USER
+ seteffectprimary
+ moveendto 16
+ end
+
+BattleScript_IgnoresAndHitsItself::
+ printstring STRINGID_PKMNWONTOBEY
+ waitmessage 0x40
+ goto BattleScript_DoSelfConfusionDmg
+
+BattleScript_SubstituteFade::
+ playanimation BS_TARGET, B_ANIM_SUBSTITUTE_FADE, NULL
+ printstring STRINGID_PKMNSUBSTITUTEFADED
+ return
+
+BattleScript_BerryCurePrlzEnd2::
+ call BattleScript_BerryCureParRet
+ end2
+
+BattleScript_BerryCureParRet::
+ playanimation BS_SCRIPTING, B_ANIM_ITEM_EFFECT, NULL
+ printstring STRINGID_PKMNSITEMCUREDPARALYSIS
+ waitmessage 0x40
+ updatestatusicon BS_SCRIPTING
+ removeitem BS_SCRIPTING
+ return
+
+BattleScript_BerryCurePsnEnd2::
+ call BattleScript_BerryCurePsnRet
+ end2
+
+BattleScript_BerryCurePsnRet::
+ playanimation BS_SCRIPTING, B_ANIM_ITEM_EFFECT, NULL
+ printstring STRINGID_PKMNSITEMCUREDPOISON
+ waitmessage 0x40
+ updatestatusicon BS_SCRIPTING
+ removeitem BS_SCRIPTING
+ return
+
+BattleScript_BerryCureBrnEnd2::
+ call BattleScript_BerryCureBrnRet
+ end2
+
+BattleScript_BerryCureBrnRet::
+ playanimation BS_SCRIPTING, B_ANIM_ITEM_EFFECT, NULL
+ printstring STRINGID_PKMNSITEMHEALEDBURN
+ waitmessage 0x40
+ updatestatusicon BS_SCRIPTING
+ removeitem BS_SCRIPTING
+ return
+
+BattleScript_BerryCureFrzEnd2::
+ call BattleScript_BerryCureFrzRet
+ end2
+
+BattleScript_BerryCureFrzRet::
+ playanimation BS_SCRIPTING, B_ANIM_ITEM_EFFECT, NULL
+ printstring STRINGID_PKMNSITEMDEFROSTEDIT
+ waitmessage 0x40
+ updatestatusicon BS_SCRIPTING
+ removeitem BS_SCRIPTING
+ return
+
+BattleScript_BerryCureSlpEnd2::
+ call BattleScript_BerryCureSlpRet
+ end2
+
+BattleScript_BerryCureSlpRet::
+ playanimation BS_SCRIPTING, B_ANIM_ITEM_EFFECT, NULL
+ printstring STRINGID_PKMNSITEMWOKEIT
+ waitmessage 0x40
+ updatestatusicon BS_SCRIPTING
+ removeitem BS_SCRIPTING
+ return
+
+BattleScript_BerryCureConfusionEnd2::
+ call BattleScript_BerryCureConfusionRet
+ end2
+
+BattleScript_BerryCureConfusionRet::
+ playanimation BS_SCRIPTING, B_ANIM_ITEM_EFFECT, NULL
+ printstring STRINGID_PKMNSITEMSNAPPEDOUT
+ waitmessage 0x40
+ removeitem BS_SCRIPTING
+ return
+
+BattleScript_BerryCureChosenStatusEnd2::
+ call BattleScript_BerryCureChosenStatusRet
+ end2
+
+BattleScript_BerryCureChosenStatusRet::
+ playanimation BS_SCRIPTING, B_ANIM_ITEM_EFFECT, NULL
+ printfromtable gBerryEffectStringIds
+ waitmessage 0x40
+ updatestatusicon BS_SCRIPTING
+ removeitem BS_SCRIPTING
+ return
+
+BattleScript_WhiteHerbEnd2::
+ call BattleScript_WhiteHerbRet
+ end2
+
+BattleScript_WhiteHerbRet::
+ playanimation BS_SCRIPTING, B_ANIM_ITEM_EFFECT, NULL
+ printstring STRINGID_PKMNSITEMRESTOREDSTATUS
+ waitmessage 0x40
+ removeitem BS_SCRIPTING
+ return
+
+BattleScript_ItemHealHP_RemoveItem::
+ playanimation BS_ATTACKER, B_ANIM_ITEM_EFFECT, NULL
+ printstring STRINGID_PKMNSITEMRESTOREDHEALTH
+ waitmessage 0x40
+ orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
+ healthbarupdate BS_ATTACKER
+ datahpupdate BS_ATTACKER
+ removeitem BS_ATTACKER
+ end2
+
+BattleScript_BerryPPHealEnd2::
+ playanimation BS_ATTACKER, B_ANIM_ITEM_EFFECT, NULL
+ printstring STRINGID_PKMNSITEMRESTOREDPP
+ waitmessage 0x40
+ removeitem BS_ATTACKER
+ end2
+
+BattleScript_ItemHealHP_End2::
+ call BattleScript_ItemHealHP_Ret
+ end2
+
+BattleScript_ItemHealHP_Ret::
+ playanimation BS_ATTACKER, B_ANIM_ITEM_EFFECT, NULL
+ printstring STRINGID_PKMNSITEMRESTOREDHPALITTLE
+ waitmessage 0x40
+ orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
+ healthbarupdate BS_ATTACKER
+ datahpupdate BS_ATTACKER
+ return
+
+BattleScript_SelectingNotAllowedMoveChoiceItem::
+ printselectionstring STRINGID_ITEMALLOWSONLYYMOVE
+ endselectionscript
+
+BattleScript_HangedOnMsg::
+ playanimation BS_TARGET, B_ANIM_HANGED_ON, NULL
+ printstring STRINGID_PKMNHUNGONWITHX
+ waitmessage 0x40
+ return
+
+BattleScript_BerryConfuseHealEnd2::
+ playanimation BS_ATTACKER, B_ANIM_ITEM_EFFECT, NULL
+ printstring STRINGID_PKMNSITEMRESTOREDHEALTH
+ waitmessage 0x40
+ orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
+ healthbarupdate BS_ATTACKER
+ datahpupdate BS_ATTACKER
+ printstring STRINGID_FORXCOMMAYZ
+ waitmessage 0x40
+ setmoveeffect MOVE_EFFECT_CONFUSION | MOVE_EFFECT_AFFECTS_USER
+ seteffectprimary
+ removeitem BS_ATTACKER
+ end2
+
+BattleScript_BerryStatRaiseEnd2::
+ playanimation BS_ATTACKER, B_ANIM_ITEM_EFFECT, NULL
+ statbuffchange STAT_CHANGE_BS_PTR | MOVE_EFFECT_AFFECTS_USER, .+4
+ setbyte cMULTISTRING_CHOOSER, 4
+ call BattleScript_StatUp
+ removeitem BS_ATTACKER
+ end2
+
+BattleScript_BerryFocusEnergyEnd2::
+ playanimation BS_ATTACKER, B_ANIM_ITEM_EFFECT, NULL
+ printstring STRINGID_PKMNUSEDXTOGETPUMPED
+ waitmessage 0x40
+ removeitem BS_ATTACKER
+ end2
+
+BattleScript_ActionSelectionItemsCantBeUsed::
+ printselectionstring STRINGID_ITEMSCANTBEUSEDNOW
+ endselectionscript
+
+BattleScript_FlushMessageBox::
+ printstring STRINGID_EMPTYSTRING3
+ return
diff --git a/data/battle_scripts_2.s b/data/battle_scripts_2.s
index 199fd0c78..288b0438d 100644
--- a/data/battle_scripts_2.s
+++ b/data/battle_scripts_2.s
@@ -1,28 +1,238 @@
+#include "constants/moves.h"
+#include "constants/battle.h"
+#include "constants/battle_move_effects.h"
+#include "constants/battle_script_commands.h"
+#include "constants/battle_anim.h"
+#include "constants/items.h"
+#include "constants/abilities.h"
+#include "constants/species.h"
+#include "constants/pokemon.h"
+#include "constants/songs.h"
+#include "constants/game_stat.h"
+#include "battle_string_ids.h"
+ .include "asm/macros/battle_script.inc"
+@ Define these here since misc_constants.inc conflicts with the C headers
+ .set NULL, 0
+ .set FALSE, 0
+ .set TRUE, 1
.section script_data, "aw", %progbits
+ .align 2
-gBattlescriptsForBallThrow:: @ 81D99B0
- .incbin "baserom.gba", 0x1D99B0, 0x34
+gBattlescriptsForBallThrow::
+ .4byte BattleScript_ThrowBall
+ .4byte BattleScript_ThrowBall
+ .4byte BattleScript_ThrowBall
+ .4byte BattleScript_ThrowBall
+ .4byte BattleScript_ThrowBall
+ .4byte BattleScript_ThrowSafariBall
+ .4byte BattleScript_ThrowBall
+ .4byte BattleScript_ThrowBall
+ .4byte BattleScript_ThrowBall
+ .4byte BattleScript_ThrowBall
+ .4byte BattleScript_ThrowBall
+ .4byte BattleScript_ThrowBall
+ .4byte BattleScript_ThrowBall
-gBattlescriptsForUsingItem:: @ 81D99E4
- .incbin "baserom.gba", 0x1D99E4, 0x18
+gBattlescriptsForUsingItem::
+ .4byte BattleScript_PlayerUseItem
+ .4byte BattleScript_AIUseFullRestoreOrHpHeal
+ .4byte BattleScript_AIUseFullRestoreOrHpHeal
+ .4byte BattleScript_AIUseStatRestore
+ .4byte BattleScript_AIUseXstat
+ .4byte BattleScript_AIUseGuardSpec
-gBattlescriptsForRunningByItem:: @ 81D99FC
- .incbin "baserom.gba", 0x1D99FC, 0x8
+gBattlescriptsForRunningByItem::
+ .4byte BattleScript_UseFluffyTail
+ .4byte BattleScript_UsePokeFlute
-gBattlescriptsForSafariActions:: @ 81D9A04
- .incbin "baserom.gba", 0x1D9A04, 0x3E
+gBattlescriptsForSafariActions::
+ .4byte BattleScript_WatchesCarefully
+ .4byte BattleScript_ThrowRock
+ .4byte BattleScript_ThrowBait
+ .4byte BattleScript_LeftoverWallyPrepToThrow
-BattleScript_SuccessBallThrow:: @ 81D9A42
- .incbin "baserom.gba", 0x1D9A42, 0x46
+BattleScript_ThrowBall::
+ jumpifbattletype BATTLE_TYPE_OLD_MAN_TUTORIAL, BattleScript_OldManThrowBall
+ jumpifbattletype BATTLE_TYPE_POKEDUDE, BattleScript_PokedudeThrowBall
+ printstring STRINGID_PLAYERUSEDITEM
+ handleballthrow
-gUnknown_81D9A88:: @ 81D9A88
- .incbin "baserom.gba", 0x1D9A88, 0xB
+BattleScript_OldManThrowBall::
+ printstring STRINGID_OLDMANUSEDITEM
+ handleballthrow
-BattleScript_ShakeBallThrow:: @ 81D9A93
- .incbin "baserom.gba", 0x1D9A93, 0x2E
+BattleScript_PokedudeThrowBall::
+ printstring STRINGID_POKEDUDEUSED
+ handleballthrow
-BattleScript_TrainerBallBlock:: @ 81D9AC1
- .incbin "baserom.gba", 0x1D9AC1, 0x10
+BattleScript_ThrowSafariBall::
+ printstring STRINGID_PLAYERUSEDITEM
+ updatestatusicon BS_ATTACKER
+ handleballthrow
-BattleScript_GhostBallDodge:: @ 81D9AD1
- .incbin "baserom.gba", 0x1D9AD1, 0x123
+BattleScript_SuccessBallThrow::
+ jumpifhalfword CMP_EQUAL, gLastUsedItem, ITEM_SAFARI_BALL, BattleScript_SafariNoIncGameStat
+ incrementgamestat GAME_STAT_POKEMON_CAPTURES
+BattleScript_SafariNoIncGameStat::
+ printstring STRINGID_GOTCHAPKMNCAUGHT
+ trysetcaughtmondexflags BattleScript_CaughtPokemonSkipNewDex
+ printstring STRINGID_PKMNDATAADDEDTODEX
+ waitstate
+ setbyte gBattleCommunication, 0
+ displaydexinfo
+BattleScript_CaughtPokemonSkipNewDex::
+ printstring STRINGID_GIVENICKNAMECAPTURED
+ waitstate
+ setbyte gBattleCommunication, 0
+ trygivecaughtmonnick BattleScript_CaughtPokemonSkipNickname
+ givecaughtmon
+ printfromtable gCaughtMonStringIds
+ waitmessage 64
+ goto BattleScript_CaughtPokemonDone
+
+BattleScript_CaughtPokemonSkipNickname::
+ givecaughtmon
+BattleScript_CaughtPokemonDone::
+ setbyte gBattleOutcome, B_OUTCOME_CAUGHT
+ finishturn
+
+BattleScript_OldMan_Pokedude_CaughtMessage::
+ printstring STRINGID_GOTCHAPKMNCAUGHT2
+ setbyte gBattleOutcome, B_OUTCOME_CAUGHT
+ atk57
+ finishturn
+
+BattleScript_ShakeBallThrow::
+ printfromtable gBallEscapeStringIds
+ waitmessage 64
+ jumpifnotbattletype BATTLE_TYPE_SAFARI, BattleScript_CatchFailEnd
+ jumpifbyte CMP_NOT_EQUAL, gNumSafariBalls, 0, BattleScript_CatchFailEnd
+ printstring STRINGID_OUTOFSAFARIBALLS
+ waitmessage 64
+ setbyte gBattleOutcome, B_OUTCOME_NO_SAFARI_BALLS
+BattleScript_CatchFailEnd::
+ finishaction
+
+BattleScript_TrainerBallBlock::
+ waitmessage 64
+ printstring STRINGID_TRAINERBLOCKEDBALL
+ waitmessage 64
+ printstring STRINGID_DONTBEATHIEF
+ waitmessage 64
+ finishaction
+
+BattleScript_GhostBallDodge::
+ waitmessage 64
+ printstring STRINGID_ITDODGEDBALL
+ waitmessage 64
+ finishaction
+
+BattleScript_PlayerUseItem::
+ moveendcase 15
+ end
+
+BattleScript_AIUseFullRestoreOrHpHeal::
+ printstring STRINGID_EMPTYSTRING3
+ pause 48
+ playse SE_KAIFUKU
+ printstring STRINGID_TRAINER1USEDITEM
+ waitmessage 64
+ useitemonopponent
+ orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
+ healthbarupdate BS_ATTACKER
+ datahpupdate BS_ATTACKER
+ printstring STRINGID_PKMNSITEMRESTOREDHEALTH
+ waitmessage 64
+ updatestatusicon BS_ATTACKER
+ moveendcase 15
+ finishaction
+
+BattleScript_AIUseStatRestore::
+ printstring STRINGID_EMPTYSTRING3
+ pause 48
+ playse SE_KAIFUKU
+ printstring STRINGID_TRAINER1USEDITEM
+ waitmessage 64
+ useitemonopponent
+ printfromtable gTrainerItemCuredStatusStringIds
+ waitmessage 64
+ updatestatusicon BS_ATTACKER
+ moveendcase 15
+ finishaction
+
+BattleScript_AIUseXstat::
+ printstring STRINGID_EMPTYSTRING3
+ pause 48
+ playse SE_KAIFUKU
+ printstring STRINGID_TRAINER1USEDITEM
+ waitmessage 64
+ useitemonopponent
+ printfromtable gStatUpStringIds
+ waitmessage 64
+ moveendcase 15
+ finishaction
+
+BattleScript_AIUseGuardSpec::
+ printstring STRINGID_EMPTYSTRING3
+ pause 48
+ playse SE_KAIFUKU
+ printstring STRINGID_TRAINER1USEDITEM
+ waitmessage 64
+ useitemonopponent
+ printfromtable gMistUsedStringIds
+ waitmessage 64
+ moveendcase 15
+ finishaction
+
+BattleScript_UseFluffyTail::
+ playse SE_NIGERU
+ setbyte gBattleOutcome, B_OUTCOME_RAN
+ finishturn
+
+BattleScript_UsePokeFlute::
+ checkpokeflute BS_ATTACKER
+ jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 1, BattleScript_PokeFluteWakeUp
+ printstring STRINGID_POKEFLUTECATCHY
+ waitmessage 64
+ goto BattleScript_PokeFluteEnd
+
+BattleScript_PokeFluteWakeUp::
+ printstring STRINGID_POKEFLUTE
+ waitmessage 64
+ fanfare MUS_POKEFUE
+ waitfanfare BS_ATTACKER
+ printstring STRINGID_MONHEARINGFLUTEAWOKE
+ waitmessage 64
+ updatestatusicon BS_PLAYER2
+ waitstate
+BattleScript_PokeFluteEnd::
+ finishaction
+
+BattleScript_WatchesCarefully::
+ printfromtable gSafariPokeblockResultStringIds
+ waitmessage 64
+ playanimation BS_OPPONENT1, B_ANIM_SAFARI_REACTION, NULL
+ end2
+
+BattleScript_ThrowRock::
+ printstring STRINGID_THREWROCK
+ waitmessage 64
+ playanimation BS_ATTACKER, B_ANIM_ROCK_THROW, NULL
+ end2
+
+BattleScript_ThrowBait::
+ printstring STRINGID_THREWBAIT
+ waitmessage 64
+ playanimation BS_ATTACKER, B_ANIM_BAIT_THROW, NULL
+ end2
+
+BattleScript_LeftoverWallyPrepToThrow::
+ printstring STRINGID_RETURNMON
+ waitmessage 64
+ returnatktoball
+ waitstate
+ trainerslidein BS_TARGET
+ waitstate
+ printstring STRINGID_YOUTHROWABALLNOWRIGHT
+ waitmessage 64
+ end2
diff --git a/data/link_rfu_3.s b/data/link_rfu_3.s
index 9235d4b62..88a72d660 100644
--- a/data/link_rfu_3.s
+++ b/data/link_rfu_3.s
@@ -208,148 +208,625 @@ gUnknown_8457C20:: @ 8457C20
.incbin "baserom.gba", 0x457C20, 0x28
gUnknown_8457C48:: @ 8457C48
- .incbin "baserom.gba", 0x457C48, 0x5C
+ .string "The other TRAINER showed\n"
+ .string "you their TRAINER CARD.\p"
+ .string "Would you like to show your\n"
+ .string "TRAINER CARD?$"
+ .align 2
gUnknown_8457CA4:: @ 8457CA4
- .incbin "baserom.gba", 0x457CA4, 0x54
+ .string "The other TRAINER challenges you\n"
+ .string "to battle.\p"
+ .string "Will you accept the battle\n"
+ .string "challenge?$"
+ .align 2
gUnknown_8457CF8:: @ 8457CF8
- .incbin "baserom.gba", 0x457CF8, 0x4C
+ .string "The other TRAINER invites you\n"
+ .string "to chat.\p"
+ .string "Will you accept the chat\n"
+ .string "invitation?$"
+ .align 2
gUnknown_8457D44:: @ 8457D44
- .incbin "baserom.gba", 0x457D44, 0x74
+ .string "There is an offer to trade your\n"
+ .string "registered Lv. {DYNAMIC 0} {DYNAMIC 1}\p"
+ .string "in exchange for a\n"
+ .string "Lv. {DYNAMIC 2} {DYNAMIC 3}.\p"
+ .string "Will you accept this trade\n"
+ .string "offer?$"
+ .align 2
gUnknown_8457DB8:: @ 8457DB8
- .incbin "baserom.gba", 0x457DB8, 0x54
+ .string "There is an offer to trade your\n"
+ .string "registered EGG.\l"
+ .string "Will you accept this trade offer?$"
+ .align 2
gUnknown_8457E0C:: @ 8457E0C
- .incbin "baserom.gba", 0x457E0C, 0x1C
+ .string "The chat has been dropped.\p$"
gUnknown_8457E28:: @ 8457E28
- .incbin "baserom.gba", 0x457E28, 0x1C
+ .string "You declined the offer.\p$"
+ .align 2
gUnknown_8457E44:: @ 8457E44
- .incbin "baserom.gba", 0x457E44, 0x1C
+ .string "You declined the offer.\p$"
+ .align 2
gUnknown_8457E60:: @ 8457E60
- .incbin "baserom.gba", 0x457E60, 0x120
+ .string "The chat was ended.\p$"
+ .align 2
+
+gUnknown_8457E78::
+ .4byte gUnknown_8457C48
+ .4byte gUnknown_8457CA4
+ .4byte gUnknown_8457CF8
+ .4byte gUnknown_8457D44
+
+ .align 2
+gUnknown_8457E88::
+ .string "Oh, hey! We're in a chat right now.\n"
+ .string "Want to join us?$"
+ .align 2
+gUnknown_8457EC0::
+ .string "{STR_VAR_1}: Hey, {PLAYER}!\n"
+ .string "We're having a chat right now.\l"
+ .string "Want to join us?$"
+
+ .align 2
+gUnknown_8457F00::
+ .string "Oh, hi! We're having a chat now.\n"
+ .string "Would you like to join us?$"
+
+ .align 2
+gUnknown_8457F3C::
+ .string "{STR_VAR_1}: Oh, hi, {PLAYER}!\n"
+ .string "We're having a chat now.\l"
+ .string "Would you like to join us?$"
+
+ .align 2
gUnknown_8457F80:: @ 8457F80
- .incbin "baserom.gba", 0x457F80, 0x10
+ .4byte gUnknown_8457E88
+ .4byte gUnknown_8457F00
+ .4byte gUnknown_8457EC0
+ .4byte gUnknown_8457F3C
gUnknown_8457F90:: @ 8457F90
- .incbin "baserom.gba", 0x457F90, 0x164
+ .string "……\n"
+ .string "The TRAINER appears to be busy…\p$"
+
+ .align 2
+gUnknown_8457FB4::
+ .string "A battle, huh?\n"
+ .string "All right, just give me some time.$"
+
+ .align 2
+gUnknown_8457FE8::
+ .string "You want to chat, huh?\n"
+ .string "Sure, just wait a little.$"
+
+ .align 2
+gUnknown_845801C::
+ .string "Sure thing! As my “Greetings,”\n"
+ .string "here's my TRAINER CARD.$"
+ .align 2
+gUnknown_8458054::
+ .string "A battle? Of course, but I need\n"
+ .string "time to get ready.$"
+
+ .align 2
+gUnknown_8458088::
+ .string "Did you want to chat?\n"
+ .string "Okay, but please wait a moment.$"
+
+ .align 2
+gUnknown_84580C0::
+ .string "As my introduction, I'll show you\n"
+ .string "my TRAINER CARD.$"
+
+ .align 2
gUnknown_84580F4:: @ 84580F4
- .incbin "baserom.gba", 0x4580F4, 0x13C
+ .4byte gUnknown_8457FB4
+ .4byte gUnknown_8457FE8
+ .4byte 0
+ .4byte gUnknown_845801C
+ .4byte gUnknown_8458054
+ .4byte gUnknown_8458088
+ .4byte 0
+ .4byte gUnknown_84580C0
+ .align 2
+ .incbin "baserom.gba", 0x458114, 0x18
+
+ .align 2
+gUnknown_845812C::
+ .string "Thanks for waiting!\n"
+ .string "Let's get our battle started!{PAUSE 60}$"
+
+ .align 2
+gUnknown_8458164::
+ .string "All right!\n"
+ .string "Let's chat!{PAUSE 60}$"
+
+ .align 2
+gUnknown_8458180::
+ .string "Sorry I made you wait!\n"
+ .string "Let's get started!{PAUSE 60}$"
+
+ .align 2
+gUnknown_84581B0::
+ .string "Sorry I made you wait!\n"
+ .string "Let's chat.{PAUSE 60}$"
+
+ .align 2
+gUnknown_84581D8::
+ .string "The trade will be started.{PAUSE 60}$"
+
+ .align 2
+gUnknown_84581F8::
+ .string "The battle will be started.{PAUSE 60}$"
+
+ .align 2
+gUnknown_8458218::
+ .string "Entering the chat…{PAUSE 60}$"
+
+ .align 2
gUnknown_8458230:: @ 8458230
- .incbin "baserom.gba", 0x458230, 0xE4
+ .4byte gUnknown_84581F8
+ .4byte gUnknown_8458218
+ .4byte gUnknown_84581D8
+ .4byte gUnknown_84581F8
+ .4byte gUnknown_8458218
+ .4byte gUnknown_84581D8
+ .4byte gUnknown_845812C
+ .4byte gUnknown_8458164
+ .4byte gUnknown_84581D8
+ .4byte gUnknown_8458180
+ .4byte gUnknown_84581B0
+ .4byte gUnknown_84581D8
+
+gUnknown_8458260::
+ .string "Sorry! My POKéMON don't seem to\n"
+ .string "be feeling too well right now.\l"
+ .string "Let me battle you another time.\p$"
+
+gUnknown_84582C0::
+ .string "I'm terribly sorry, but my POKéMON\n"
+ .string "aren't feeling well…\p"
+ .string "Let's battle another time.\p$"
gUnknown_8458314:: @ 8458314
- .incbin "baserom.gba", 0x458314, 0xA0
+ .4byte gUnknown_8458260
+ .4byte gUnknown_84582C0
+ .align 2
+gUnknown_845831C::
+ .string "Huh? My TRAINER CARD…\n"
+ .string "Where'd it go now?\l"
+ .string "Sorry! I'll show you another time!\p$"
+
+ .align 2
+gUnknown_845836C::
+ .string "Oh? Now where did I put my\n"
+ .string "TRAINER CARD?…\l"
+ .string "Sorry! I'll show you later!\p$"
+
+ .align 2
gUnknown_84583B4:: @ 84583B4
- .incbin "baserom.gba", 0x4583B4, 0x78
+ .4byte gUnknown_845831C
+ .4byte gUnknown_845836C
+ .align 2
+gUnknown_84583BC::
+ .string "If you want to do something with\n"
+ .string "me, just give me a shout!\p$"
+ .align 2
+gUnknown_84583F8::
+ .string "If you want to do something with\n"
+ .string "me, don't be shy.\p$"
+
+ .align 2
gUnknown_845842C:: @ 845842C
- .incbin "baserom.gba", 0x45842C, 0x8
+ .4byte gUnknown_84583BC
+ .4byte gUnknown_84583F8
gUnknown_8458434:: @ 8458434
- .incbin "baserom.gba", 0x458434, 0x48
+ .string "Whoops! Sorry, but I have to do\n"
+ .string "something else.\l"
+ .string "Another time, okay?\p$"
+ .align 2
gUnknown_845847C:: @ 845847C
- .incbin "baserom.gba", 0x45847C, 0x44
+ .string "If you want to battle, you need\n"
+ .string "two POKéMON that are below\l"
+ .string "Lv. 30.\p$"
gUnknown_84584C0:: @ 84584C0
- .incbin "baserom.gba", 0x4584C0, 0x88
+ .string "For a battle, you need two\n"
+ .string "POKéMON that are below Lv. 30.\p$"
+ .align 2
+gUnknown_84584FC::
+ .string "Oh, all right.\n"
+ .string "Come see me anytime, okay?\p$"
+
+ .align 2
+gUnknown_8458528::
+ .string "Oh…\n"
+ .string "Please come by anytime.\p$"
+
+ .align 2
gUnknown_8458548:: @ 8458548
- .incbin "baserom.gba", 0x458548, 0xA0
+ .4byte gUnknown_84584FC
+ .4byte gUnknown_8458528
+ .align 2
+gUnknown_8458550::
+ .string "Oh, sorry!\n"
+ .string "I just can't right this instant.\l"
+ .string "Let's chat another time.\p$"
+
+ .align 2
+gUnknown_8458598::
+ .string "Oh, I'm sorry.\n"
+ .string "I have too much to do right now.\l"
+ .string "Let's chat some other time.\p$"
+
+ .align 2
gUnknown_84585E8:: @ 84585E8
- .incbin "baserom.gba", 0x4585E8, 0x170
+ .4byte gUnknown_8458550
+ .4byte gUnknown_8458598
+
+ .align 2
+gUnknown_84585F0::
+ .string "Whoa!\n"
+ .string "I can tell you're pretty tough!\p$"
+
+ .align 2
+gUnknown_8458618::
+ .string "You used that move?\n"
+ .string "That's good strategy!\p$"
+
+ .align 2
+gUnknown_8458644::
+ .string "Way to go!\n"
+ .string "That was an eye-opener!\p$"
+
+ .align 2
+gUnknown_8458668::
+ .string "Oh! How could you use that\n"
+ .string "POKéMON in that situation?\p$"
+
+ .align 2
+gUnknown_84586A0::
+ .string "That POKéMON…\n"
+ .string "It's been raised really well!\p$"
+
+ .align 2
+gUnknown_84586D0::
+ .string "That's it!\n"
+ .string "This is the right move now!\p$"
+
+ .align 2
+gUnknown_84586F8::
+ .string "That's awesome!\n"
+ .string "You can battle that way?\p$"
+
+ .align 2
+gUnknown_8458724::
+ .string "You have exquisite timing for\n"
+ .string "switching POKéMON!\p$"
+ .align 2
gUnknown_8458758:: @ 8458758
- .incbin "baserom.gba", 0x458758, 0x164
+ .4byte gUnknown_84585F0
+ .4byte gUnknown_8458618
+ .4byte gUnknown_8458644
+ .4byte gUnknown_8458668
+ .4byte gUnknown_84586A0
+ .4byte gUnknown_84586D0
+ .4byte gUnknown_84586F8
+ .4byte gUnknown_8458724
+
+ .align 2
+gUnknown_8458778::
+ .string "Oh, I see!\n"
+ .string "This is educational!\p$"
+
+ .align 2
+gUnknown_845879C::
+ .string "Don't say anything funny anymore!\n"
+ .string "I'm sore from laughing!\p$"
+ .align 2
+gUnknown_84587D8::
+ .string "Oh?\n"
+ .string "Something like that happened.\p$"
+
+ .align 2
+gUnknown_84587FC::
+ .string "Hmhm… What?\n"
+ .string "So is this what you're saying?\p$"
+
+ .align 2
+gUnknown_8458828::
+ .string "Is that right?\n"
+ .string "I didn't know that.\p$"
+
+ .align 2
+gUnknown_845884C::
+ .string "Ahaha!\n"
+ .string "What is that about?\p$"
+
+ .align 2
+gUnknown_8458868::
+ .string "Yes, that's exactly it!\n"
+ .string "That's what I meant.\p$"
+
+ .align 2
+gUnknown_8458898::
+ .string "In other words…\n"
+ .string "Yes! That's right!\p$"
+
+ .align 2
gUnknown_84588BC:: @ 84588BC
- .incbin "baserom.gba", 0x4588BC, 0xF0
+ .4byte gUnknown_8458778
+ .4byte gUnknown_845879C
+ .4byte gUnknown_84587D8
+ .4byte gUnknown_84587FC
+ .4byte gUnknown_8458828
+ .4byte gUnknown_845884C
+ .4byte gUnknown_8458868
+ .4byte gUnknown_8458898
+
+ .align 2
+gUnknown_84588DC::
+ .string "I'm just showing my TRAINER CARD\n"
+ .string "as my way of greeting.\p$"
+ .align 2
+gUnknown_8458918::
+ .string "I hope I get to know you better!\p$"
+
+ .align 2
+gUnknown_845893C::
+ .string "We're showing each other our\n"
+ .string "TRAINER CARDS to get acquainted.\p$"
+
+ .align 2
+gUnknown_845897C::
+ .string "Glad to meet you.\n"
+ .string "Please don't be a stranger!\p$"
+
+ .align 2
gUnknown_84589AC:: @ 84589AC
- .incbin "baserom.gba", 0x4589AC, 0xCC
+ .4byte gUnknown_84588DC
+ .4byte gUnknown_8458918
+ .4byte gUnknown_845893C
+ .4byte gUnknown_845897C
+
+ .align 2
+gUnknown_84589BC::
+ .string "Yeahah!\n"
+ .string "I really wanted this POKéMON!\p$"
+
+ .align 2
+gUnknown_84589E4::
+ .string "Finally, a trade got me that\n"
+ .string "POKéMON I'd wanted a long time.\p$"
+ .align 2
+gUnknown_8458A24::
+ .string "I'm trading POKéMON right now.\p$"
+
+ .align 2
+gUnknown_8458A44::
+ .string "I finally got that POKéMON I\n"
+ .string "wanted in a trade!\p$"
+
+ .align 2
gUnknown_8458A78:: @ 8458A78
- .incbin "baserom.gba", 0x458A78, 0x20
+ .4byte gUnknown_84589BC
+ .4byte gUnknown_84589E4
+ .4byte NULL
+ .4byte NULL
+ .4byte gUnknown_8458A24
+ .4byte gUnknown_8458A44
+ .4byte NULL
+ .4byte NULL
gUnknown_8458A98:: @ 8458A98
- .incbin "baserom.gba", 0x458A98, 0x20
+ .string "{STR_VAR_1} checked the\n"
+ .string "TRADING BOARD.\p$"
+ .align 2
gUnknown_8458AB8:: @ 8458AB8
- .incbin "baserom.gba", 0x458AB8, 0x8C
+ .string "Welcome to the TRADING BOARD.\p"
+ .string "You may register your POKéMON\n"
+ .string "and offer it up for a trade.\p"
+ .string "Would you like to register one of\n"
+ .string "your POKéMON?$"
+ .align 2
gUnknown_8458B44:: @ 8458B44
- .incbin "baserom.gba", 0x458B44, 0x190
+ .string "This TRADING BOARD is used for\n"
+ .string "offering a POKéMON for a trade.\p"
+ .string "All you need to do is register a\n"
+ .string "POKéMON for a trade.\p"
+ .string "Another TRAINER may offer a party\n"
+ .string "POKéMON in return for the trade.\p"
+ .string "We hope you will register POKéMON\n"
+ .string "and trade them with many, many\l"
+ .string "other TRAINERS.\p"
+ .string "Would you like to register one of\n"
+ .string "your POKéMON?$"
+ .align 2
+ .incbin "baserom.gba", 0x00458c80, 0x31
+
+ .align 2
+ .incbin "baserom.gba", 0x00458cb4, 0x20
+
+ .align 2
gUnknown_8458CD4:: @ 8458CD4
- .incbin "baserom.gba", 0x458CD4, 0x48
+ .string "Please choose the type of POKéMON\n"
+ .string "that you would like in the trade.\n$"
+ .align 2
gUnknown_8458D1C:: @ 8458D1C
- .incbin "baserom.gba", 0x458D1C, 0x38
+ .string "Which of your party POKéMON will\n"
+ .string "you offer in trade?\p$"
+ .align 2
gUnknown_8458D54:: @ 8458D54
- .incbin "baserom.gba", 0x458D54, 0x24
+ .string "Registration has been canceled.\p$"
+ .align 2
gUnknown_8458D78:: @ 8458D78
- .incbin "baserom.gba", 0x458D78, 0x24
+ .string "Registration has been completed.\p$"
+ .align 2
gUnknown_8458D9C:: @ 8458D9C
- .incbin "baserom.gba", 0x458D9C, 0x20
+ .string "The trade has been canceled.\p$"
+ .align 2
gUnknown_8458DBC:: @ 8458DBC
- .incbin "baserom.gba", 0x458DBC, 0x2C
+ .string "Cancel the registration of your\n"
+ .string "Lv. {STR_VAR_2} {STR_VAR_1}?$"
+ .align 2
gUnknown_8458DE8:: @ 8458DE8
- .incbin "baserom.gba", 0x458DE8, 0x28
+ .string "Cancel the registration of your\n"
+ .string "EGG?$"
+ .align 2
gUnknown_8458E10:: @ 8458E10
- .incbin "baserom.gba", 0x458E10, 0x60
+ .string "The registration has been canceled.\p$"
+
+ .align 2
+ .incbin "baserom.gba", 0x00458e38, 0x38
gUnknown_8458E70:: @ 8458E70
- .incbin "baserom.gba", 0x458E70, 0x60
+ .string "Would you like to ask {STR_VAR_1} to\n"
+ .string "make a trade?$"
+
+ .align 2
+ .incbin "baserom.gba", 0x00458e9c, 0x34
gUnknown_8458ED0:: @ 8458ED0
- .incbin "baserom.gba", 0x458ED0, 0x34
+ .string "You don't have a {STR_VAR_2}-type\n"
+ .string "POKéMON that {STR_VAR_1} wants.\p$"
+ .align 2
gUnknown_8458F04:: @ 8458F04
- .incbin "baserom.gba", 0x458F04, 0x98
+ .string "You don't have an EGG that\n"
+ .string "{STR_VAR_1} wants.\p$"
+ .align 2
+ .string "{STR_VAR_1} can't make a trade for\n"
+ .string "your POKéMON right now.\p$"
+ .align 2
+ .string "You can't make a trade for\n"
+ .string "{STR_VAR_1}'s POKéMON right now.\p$"
+ .incbin "baserom.gba", 0x00458f94, 0x8
gUnknown_8458F9C:: @ 8458F9C
- .incbin "baserom.gba", 0x458F9C, 0x20
+ .string "Your trade offer was rejected.\p$"
gUnknown_8458FBC:: @ 8458FBC
- .incbin "baserom.gba", 0x458FBC, 0xC
+ .string "EGG TRADE$"
+ .align 2
gUnknown_8458FC8:: @ 8458FC8
- .incbin "baserom.gba", 0x458FC8, 0x1C
+ .string "{DPAD_UPDOWN}CHOOSE {A_BUTTON}JOIN {B_BUTTON}CANCEL$"
+ .align 2
gUnknown_8458FE4:: @ 8458FE4
- .incbin "baserom.gba", 0x458FE4, 0x1D4
+ .string "Please choose a TRAINER.$"
+ .align 2
+gUnknown_8459000::
+ .string "Please choose a TRAINER for\n"
+ .string "a SINGLE BATTLE.$"
+
+ .align 2
+gUnknown_8459030::
+ .string "Please choose a TRAINER for\n"
+ .string "a DOUBLE BATTLE.$"
+
+ .align 2
+gUnknown_8459060::
+ .string "Please choose the LEADER\n"
+ .string "for a MULTI BATTLE.$"
+
+ .align 2
+gUnknown_8459090::
+ .string "Please choose the TRAINER to\n"
+ .string "trade with.$"
+
+ .align 2
+gUnknown_84590BC::
+ .string "Please choose the TRAINER who is\n"
+ .string "sharing WONDER CARDS.$"
+
+ .align 2
+gUnknown_84590F4::
+ .string "Please choose the TRAINER who is\n"
+ .string "sharing WONDER NEWS.$"
+
+ .align 2
+gUnknown_845912C::
+ .string "Jump with mini POKéMON!\n"
+ .string "Please choose the LEADER.$"
+
+ .align 2
+gUnknown_8459160::
+ .string "BERRY CRUSH!\n"
+ .string "Please choose the LEADER.$"
+
+ .align 2
+gUnknown_8459188::
+ .string "DODRIO BERRY-PICKING!\n"
+ .string "Please choose the LEADER.$"
+
+ .align 2
gUnknown_84591B8:: @ 84591B8
- .incbin "baserom.gba", 0x4591B8, 0x24
+ .4byte gUnknown_8459000
+ .4byte gUnknown_8459030
+ .4byte gUnknown_8459060
+ .4byte gUnknown_8459090
+ .4byte gUnknown_845912C
+ .4byte gUnknown_8459160
+ .4byte gUnknown_8459188
+ .4byte gUnknown_84590BC
+ .4byte gUnknown_84590F4
+ .align 2
gUnknown_84591DC:: @ 84591DC
- .incbin "baserom.gba", 0x4591DC, 0x5C
+ .string "Searching for a WIRELESS\n"
+ .string "COMMUNICATION SYSTEM. Wait...$"
+
+ .align 2
+ .incbin "baserom.gba", 0x00459214, 0x24
gUnknown_8459238:: @ 8459238
- .incbin "baserom.gba", 0x459238, 0x18
+ .string "Awaiting {STR_VAR_1}'s response…$"
gUnknown_8459250:: @ 8459250
- .incbin "baserom.gba", 0x459250, 0x3C
+ .string "{STR_VAR_1} has been asked to register\n"
+ .string "you as a member. Please wait.$"
gUnknown_845928C:: @ 845928C
- .incbin "baserom.gba", 0x45928C, 0xB0
+ .string "Awaiting a response from the\n"
+ .string "WIRELESS COMMUNICATION SYSTEM.$"
+ .incbin "baserom.gba", 0x004592c8, 0x20
+ .string "No CARDS appear to be shared \n"
+ .string "right now.$"
+ .align 2
+ .string "No NEWS appears to be shared\n"
+ .string "right now.$"
gUnknown_845933C:: @ 845933C
.incbin "baserom.gba", 0x45933C, 0x3C