diff options
Diffstat (limited to 'data')
-rw-r--r-- | data/battle_anim.s | 665 | ||||
-rw-r--r-- | data/battle_message.s | 309 | ||||
-rw-r--r-- | data/battle_scripts_1.s | 4946 | ||||
-rw-r--r-- | data/battle_scripts_2.s | 246 | ||||
-rw-r--r-- | data/link_rfu_3.s | 573 |
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 |