-
Notifications
You must be signed in to change notification settings - Fork 806
/
animations.asm
4826 lines (4499 loc) · 131 KB
/
animations.asm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
BattleAnimations::
; entries correspond to constants/move_constants.asm
table_width 2, BattleAnimations
dw BattleAnim_Dummy
dw BattleAnim_Pound
dw BattleAnim_KarateChop
dw BattleAnim_Doubleslap
dw BattleAnim_CometPunch
dw BattleAnim_MegaPunch
dw BattleAnim_PayDay
dw BattleAnim_FirePunch
dw BattleAnim_IcePunch
dw BattleAnim_Thunderpunch
dw BattleAnim_Scratch
dw BattleAnim_Vicegrip
dw BattleAnim_Guillotine
dw BattleAnim_RazorWind
dw BattleAnim_SwordsDance
dw BattleAnim_Cut
dw BattleAnim_Gust
dw BattleAnim_WingAttack
dw BattleAnim_Whirlwind
dw BattleAnim_Fly
dw BattleAnim_Bind
dw BattleAnim_Slam
dw BattleAnim_VineWhip
dw BattleAnim_Stomp
dw BattleAnim_DoubleKick
dw BattleAnim_MegaKick
dw BattleAnim_JumpKick
dw BattleAnim_RollingKick
dw BattleAnim_SandAttack
dw BattleAnim_Headbutt
dw BattleAnim_HornAttack
dw BattleAnim_FuryAttack
dw BattleAnim_HornDrill
dw BattleAnim_Tackle
dw BattleAnim_BodySlam
dw BattleAnim_Wrap
dw BattleAnim_TakeDown
dw BattleAnim_Thrash
dw BattleAnim_DoubleEdge
dw BattleAnim_TailWhip
dw BattleAnim_PoisonSting
dw BattleAnim_Twineedle
dw BattleAnim_PinMissile
dw BattleAnim_Leer
dw BattleAnim_Bite
dw BattleAnim_Growl
dw BattleAnim_Roar
dw BattleAnim_Sing
dw BattleAnim_Supersonic
dw BattleAnim_Sonicboom
dw BattleAnim_Disable
dw BattleAnim_Acid
dw BattleAnim_Ember
dw BattleAnim_Flamethrower
dw BattleAnim_Mist
dw BattleAnim_WaterGun
dw BattleAnim_HydroPump
dw BattleAnim_Surf
dw BattleAnim_IceBeam
dw BattleAnim_Blizzard
dw BattleAnim_Psybeam
dw BattleAnim_Bubblebeam
dw BattleAnim_AuroraBeam
dw BattleAnim_HyperBeam
dw BattleAnim_Peck
dw BattleAnim_DrillPeck
dw BattleAnim_Submission
dw BattleAnim_LowKick
dw BattleAnim_Counter
dw BattleAnim_SeismicToss
dw BattleAnim_Strength
dw BattleAnim_Absorb
dw BattleAnim_MegaDrain
dw BattleAnim_LeechSeed
dw BattleAnim_Growth
dw BattleAnim_RazorLeaf
dw BattleAnim_Solarbeam
dw BattleAnim_Poisonpowder
dw BattleAnim_StunSpore
dw BattleAnim_SleepPowder
dw BattleAnim_PetalDance
dw BattleAnim_StringShot
dw BattleAnim_DragonRage
dw BattleAnim_FireSpin
dw BattleAnim_Thundershock
dw BattleAnim_Thunderbolt
dw BattleAnim_ThunderWave
dw BattleAnim_Thunder
dw BattleAnim_RockThrow
dw BattleAnim_Earthquake
dw BattleAnim_Fissure
dw BattleAnim_Dig
dw BattleAnim_Toxic
dw BattleAnim_Confusion
dw BattleAnim_PsychicM
dw BattleAnim_Hypnosis
dw BattleAnim_Meditate
dw BattleAnim_Agility
dw BattleAnim_QuickAttack
dw BattleAnim_Rage
dw BattleAnim_Teleport
dw BattleAnim_NightShade
dw BattleAnim_Mimic
dw BattleAnim_Screech
dw BattleAnim_DoubleTeam
dw BattleAnim_Recover
dw BattleAnim_Harden
dw BattleAnim_Minimize
dw BattleAnim_Smokescreen
dw BattleAnim_ConfuseRay
dw BattleAnim_Withdraw
dw BattleAnim_DefenseCurl
dw BattleAnim_Barrier
dw BattleAnim_LightScreen
dw BattleAnim_Haze
dw BattleAnim_Reflect
dw BattleAnim_FocusEnergy
dw BattleAnim_Bide
dw BattleAnim_Metronome
dw BattleAnim_MirrorMove
dw BattleAnim_Selfdestruct
dw BattleAnim_EggBomb
dw BattleAnim_Lick
dw BattleAnim_Smog
dw BattleAnim_Sludge
dw BattleAnim_BoneClub
dw BattleAnim_FireBlast
dw BattleAnim_Waterfall
dw BattleAnim_Clamp
dw BattleAnim_Swift
dw BattleAnim_SkullBash
dw BattleAnim_SpikeCannon
dw BattleAnim_Constrict
dw BattleAnim_Amnesia
dw BattleAnim_Kinesis
dw BattleAnim_Softboiled
dw BattleAnim_HiJumpKick
dw BattleAnim_Glare
dw BattleAnim_DreamEater
dw BattleAnim_PoisonGas
dw BattleAnim_Barrage
dw BattleAnim_LeechLife
dw BattleAnim_LovelyKiss
dw BattleAnim_SkyAttack
dw BattleAnim_Transform
dw BattleAnim_Bubble
dw BattleAnim_DizzyPunch
dw BattleAnim_Spore
dw BattleAnim_Flash
dw BattleAnim_Psywave
dw BattleAnim_Splash
dw BattleAnim_AcidArmor
dw BattleAnim_Crabhammer
dw BattleAnim_Explosion
dw BattleAnim_FurySwipes
dw BattleAnim_Bonemerang
dw BattleAnim_Rest
dw BattleAnim_RockSlide
dw BattleAnim_HyperFang
dw BattleAnim_Sharpen
dw BattleAnim_Conversion
dw BattleAnim_TriAttack
dw BattleAnim_SuperFang
dw BattleAnim_Slash
dw BattleAnim_Substitute
dw BattleAnim_Struggle
dw BattleAnim_Sketch
dw BattleAnim_TripleKick
dw BattleAnim_Thief
dw BattleAnim_SpiderWeb
dw BattleAnim_MindReader
dw BattleAnim_Nightmare
dw BattleAnim_FlameWheel
dw BattleAnim_Snore
dw BattleAnim_Curse
dw BattleAnim_Flail
dw BattleAnim_Conversion2
dw BattleAnim_Aeroblast
dw BattleAnim_CottonSpore
dw BattleAnim_Reversal
dw BattleAnim_Spite
dw BattleAnim_PowderSnow
dw BattleAnim_Protect
dw BattleAnim_MachPunch
dw BattleAnim_ScaryFace
dw BattleAnim_FaintAttack
dw BattleAnim_SweetKiss
dw BattleAnim_BellyDrum
dw BattleAnim_SludgeBomb
dw BattleAnim_MudSlap
dw BattleAnim_Octazooka
dw BattleAnim_Spikes
dw BattleAnim_ZapCannon
dw BattleAnim_Foresight
dw BattleAnim_DestinyBond
dw BattleAnim_PerishSong
dw BattleAnim_IcyWind
dw BattleAnim_Detect
dw BattleAnim_BoneRush
dw BattleAnim_LockOn
dw BattleAnim_Outrage
dw BattleAnim_Sandstorm
dw BattleAnim_GigaDrain
dw BattleAnim_Endure
dw BattleAnim_Charm
dw BattleAnim_Rollout
dw BattleAnim_FalseSwipe
dw BattleAnim_Swagger
dw BattleAnim_MilkDrink
dw BattleAnim_Spark
dw BattleAnim_FuryCutter
dw BattleAnim_SteelWing
dw BattleAnim_MeanLook
dw BattleAnim_Attract
dw BattleAnim_SleepTalk
dw BattleAnim_HealBell
dw BattleAnim_Return
dw BattleAnim_Present
dw BattleAnim_Frustration
dw BattleAnim_Safeguard
dw BattleAnim_PainSplit
dw BattleAnim_SacredFire
dw BattleAnim_Magnitude
dw BattleAnim_Dynamicpunch
dw BattleAnim_Megahorn
dw BattleAnim_Dragonbreath
dw BattleAnim_BatonPass
dw BattleAnim_Encore
dw BattleAnim_Pursuit
dw BattleAnim_RapidSpin
dw BattleAnim_SweetScent
dw BattleAnim_IronTail
dw BattleAnim_MetalClaw
dw BattleAnim_VitalThrow
dw BattleAnim_MorningSun
dw BattleAnim_Synthesis
dw BattleAnim_Moonlight
dw BattleAnim_HiddenPower
dw BattleAnim_CrossChop
dw BattleAnim_Twister
dw BattleAnim_RainDance
dw BattleAnim_SunnyDay
dw BattleAnim_Crunch
dw BattleAnim_MirrorCoat
dw BattleAnim_PsychUp
dw BattleAnim_Extremespeed
dw BattleAnim_Ancientpower
dw BattleAnim_ShadowBall
dw BattleAnim_FutureSight
dw BattleAnim_RockSmash
dw BattleAnim_Whirlpool
dw BattleAnim_BeatUp
assert_table_length NUM_ATTACKS + 1
dw BattleAnim_Dummy
dw BattleAnim_Dummy
dw BattleAnim_Dummy
dw BattleAnim_SweetScent2
assert_table_length $100
; $100
dw BattleAnim_ThrowPokeBall
dw BattleAnim_SendOutMon
dw BattleAnim_ReturnMon
dw BattleAnim_Confused
dw BattleAnim_Slp
dw BattleAnim_Brn
dw BattleAnim_Psn
dw BattleAnim_Sap
dw BattleAnim_Frz
dw BattleAnim_Par
dw BattleAnim_InLove
dw BattleAnim_InSandstorm
dw BattleAnim_InNightmare
dw BattleAnim_InWhirlpool
dw BattleAnim_Miss
dw BattleAnim_EnemyDamage
dw BattleAnim_EnemyStatDown
dw BattleAnim_PlayerStatDown
dw BattleAnim_PlayerDamage
dw BattleAnim_Wobble
dw BattleAnim_Shake
dw BattleAnim_HitConfusion
assert_table_length NUM_BATTLE_ANIMS + 1
BattleAnim_Dummy:
BattleAnim_MirrorMove:
anim_ret
BattleAnim_SweetScent2:
anim_2gfx BATTLE_ANIM_GFX_FLOWER, BATTLE_ANIM_GFX_MISC
anim_obj BATTLE_ANIM_OBJ_FLOWER, 64, 96, $2
anim_wait 2
anim_obj BATTLE_ANIM_OBJ_FLOWER, 64, 80, $2
anim_wait 64
anim_obj BATTLE_ANIM_OBJ_COTTON, 136, 40, $15
anim_obj BATTLE_ANIM_OBJ_COTTON, 136, 40, $2a
anim_obj BATTLE_ANIM_OBJ_COTTON, 136, 40, $3f
anim_bgeffect BATTLE_BG_EFFECT_CYCLE_OBPALS_GRAY_AND_YELLOW, $0, $2, $0
anim_wait 128
anim_ret
BattleAnim_ThrowPokeBall:
anim_if_param_equal NO_ITEM, .TheTrainerBlockedTheBall
anim_if_param_equal MASTER_BALL, .MasterBall
anim_if_param_equal ULTRA_BALL, .UltraBall
anim_if_param_equal GREAT_BALL, .GreatBall
; any other ball
anim_2gfx BATTLE_ANIM_GFX_POKE_BALL, BATTLE_ANIM_GFX_SMOKE
anim_sound 6, 2, SFX_THROW_BALL
anim_obj BATTLE_ANIM_OBJ_POKE_BALL, 68, 92, $40
anim_wait 36
anim_obj BATTLE_ANIM_OBJ_POKE_BALL, 136, 65, $0
anim_setobj $2, $7
anim_wait 16
anim_sound 0, 1, SFX_BALL_POOF
anim_obj BATTLE_ANIM_OBJ_BALL_POOF, 136, 64, $10
anim_wait 16
anim_jump .Shake
.TheTrainerBlockedTheBall:
anim_2gfx BATTLE_ANIM_GFX_POKE_BALL, BATTLE_ANIM_GFX_HIT
anim_sound 6, 2, SFX_THROW_BALL
anim_obj BATTLE_ANIM_OBJ_POKE_BALL_BLOCKED, 64, 92, $20
anim_wait 20
anim_obj BATTLE_ANIM_OBJ_HIT_YFIX, 112, 40, $0
anim_wait 32
anim_ret
.UltraBall:
anim_2gfx BATTLE_ANIM_GFX_POKE_BALL, BATTLE_ANIM_GFX_SMOKE
anim_sound 6, 2, SFX_THROW_BALL
anim_obj BATTLE_ANIM_OBJ_POKE_BALL, 68, 92, $40
anim_wait 36
anim_obj BATTLE_ANIM_OBJ_POKE_BALL, 136, 65, $0
anim_setobj $2, $7
anim_wait 16
anim_sound 0, 1, SFX_BALL_POOF
anim_obj BATTLE_ANIM_OBJ_BALL_POOF, 136, 64, $10
anim_wait 16
anim_jump .Shake
.GreatBall:
anim_2gfx BATTLE_ANIM_GFX_POKE_BALL, BATTLE_ANIM_GFX_SMOKE
anim_sound 6, 2, SFX_THROW_BALL
anim_obj BATTLE_ANIM_OBJ_POKE_BALL, 68, 92, $40
anim_wait 36
anim_obj BATTLE_ANIM_OBJ_POKE_BALL, 136, 65, $0
anim_setobj $2, $7
anim_wait 16
anim_sound 0, 1, SFX_BALL_POOF
anim_obj BATTLE_ANIM_OBJ_BALL_POOF, 136, 64, $10
anim_wait 16
anim_jump .Shake
.MasterBall:
anim_3gfx BATTLE_ANIM_GFX_POKE_BALL, BATTLE_ANIM_GFX_SMOKE, BATTLE_ANIM_GFX_SPEED
anim_sound 6, 2, SFX_THROW_BALL
anim_obj BATTLE_ANIM_OBJ_POKE_BALL, 64, 92, $20
anim_wait 36
anim_obj BATTLE_ANIM_OBJ_POKE_BALL, 136, 65, $0
anim_setobj $2, $7
anim_wait 16
anim_sound 0, 1, SFX_BALL_POOF
anim_obj BATTLE_ANIM_OBJ_BALL_POOF, 136, 64, $10
anim_wait 24
anim_sound 0, 1, SFX_MASTER_BALL
anim_obj BATTLE_ANIM_OBJ_MASTER_BALL_SPARKLE, 136, 56, $30
anim_obj BATTLE_ANIM_OBJ_MASTER_BALL_SPARKLE, 136, 56, $31
anim_obj BATTLE_ANIM_OBJ_MASTER_BALL_SPARKLE, 136, 56, $32
anim_obj BATTLE_ANIM_OBJ_MASTER_BALL_SPARKLE, 136, 56, $33
anim_obj BATTLE_ANIM_OBJ_MASTER_BALL_SPARKLE, 136, 56, $34
anim_obj BATTLE_ANIM_OBJ_MASTER_BALL_SPARKLE, 136, 56, $35
anim_obj BATTLE_ANIM_OBJ_MASTER_BALL_SPARKLE, 136, 56, $36
anim_obj BATTLE_ANIM_OBJ_MASTER_BALL_SPARKLE, 136, 56, $37
anim_wait 64
.Shake:
anim_bgeffect BATTLE_BG_EFFECT_RETURN_MON, $0, BG_EFFECT_TARGET, $0
anim_wait 8
anim_incobj 2
anim_wait 16
anim_sound 0, 1, SFX_CHANGE_DEX_MODE
anim_incobj 1
anim_wait 32
anim_sound 0, 1, SFX_BALL_BOUNCE
anim_wait 32
anim_wait 32
anim_wait 32
anim_wait 8
anim_setvar $0
.Loop:
anim_wait 48
anim_checkpokeball
anim_if_var_equal $1, .Click
anim_if_var_equal $2, .BreakFree
anim_incobj 1
anim_sound 0, 1, SFX_BALL_WOBBLE
anim_jump .Loop
.Click:
anim_keepsprites
anim_ret
.BreakFree:
anim_setobj $1, $b
anim_sound 0, 1, SFX_BALL_POOF
anim_obj BATTLE_ANIM_OBJ_BALL_POOF, 136, 64, $10
anim_wait 2
anim_bgeffect BATTLE_BG_EFFECT_ENTER_MON, $0, BG_EFFECT_TARGET, $0
anim_wait 32
anim_ret
BattleAnim_SendOutMon:
anim_if_param_equal $0, .Normal
anim_if_param_equal $1, .Shiny
anim_if_param_equal $2, .Unknown
anim_1gfx BATTLE_ANIM_GFX_SMOKE
anim_call BattleAnim_TargetObj_1Row
anim_bgeffect BATTLE_BG_EFFECT_BETA_SEND_OUT_MON2, $0, BG_EFFECT_USER, $0
anim_sound 0, 0, SFX_BALL_POOF
anim_obj BATTLE_ANIM_OBJ_BETA_BALL_POOF, 48, 96, $0
anim_bgeffect BATTLE_BG_EFFECT_ENTER_MON, $0, BG_EFFECT_USER, $0
anim_wait 128
anim_wait 4
anim_call BattleAnim_ShowMon_0
anim_ret
.Unknown:
anim_1gfx BATTLE_ANIM_GFX_SMOKE
anim_call BattleAnim_TargetObj_1Row
anim_bgeffect BATTLE_BG_EFFECT_BETA_SEND_OUT_MON1, $0, BG_EFFECT_USER, $0
anim_wait 1
anim_bgeffect BATTLE_BG_EFFECT_SHOW_MON, $0, BG_EFFECT_USER, $0
anim_wait 4
anim_sound 0, 0, SFX_BALL_POOF
anim_obj BATTLE_ANIM_OBJ_BETA_BALL_POOF, 48, 96, $0
anim_incbgeffect BATTLE_BG_EFFECT_BETA_SEND_OUT_MON1
anim_wait 96
anim_incbgeffect BATTLE_BG_EFFECT_BETA_SEND_OUT_MON1
anim_call BattleAnim_ShowMon_0
anim_ret
.Shiny:
anim_1gfx BATTLE_ANIM_GFX_SPEED
anim_bgeffect BATTLE_BG_EFFECT_FLASH_INVERTED, $0, $4, $3
anim_bgeffect BATTLE_BG_EFFECT_CYCLE_OBPALS_GRAY_AND_YELLOW, $0, $2, $0
anim_sound 0, 0, SFX_SHINE
anim_obj BATTLE_ANIM_OBJ_SHINY, 48, 96, $0
anim_wait 4
anim_sound 0, 0, SFX_SHINE
anim_obj BATTLE_ANIM_OBJ_SHINY, 48, 96, $8
anim_wait 4
anim_sound 0, 0, SFX_SHINE
anim_obj BATTLE_ANIM_OBJ_SHINY, 48, 96, $10
anim_wait 4
anim_sound 0, 0, SFX_SHINE
anim_obj BATTLE_ANIM_OBJ_SHINY, 48, 96, $18
anim_wait 4
anim_sound 0, 0, SFX_SHINE
anim_obj BATTLE_ANIM_OBJ_SHINY, 48, 96, $20
anim_wait 4
anim_sound 0, 0, SFX_SHINE
anim_obj BATTLE_ANIM_OBJ_SHINY, 48, 96, $28
anim_wait 4
anim_sound 0, 0, SFX_SHINE
anim_obj BATTLE_ANIM_OBJ_SHINY, 48, 96, $30
anim_wait 4
anim_sound 0, 0, SFX_SHINE
anim_obj BATTLE_ANIM_OBJ_SHINY, 48, 96, $38
anim_wait 32
anim_ret
.Normal:
anim_1gfx BATTLE_ANIM_GFX_SMOKE
anim_sound 0, 0, SFX_BALL_POOF
anim_obj BATTLE_ANIM_OBJ_BALL_POOF, 44, 96, $0
anim_wait 4
anim_bgeffect BATTLE_BG_EFFECT_ENTER_MON, $0, BG_EFFECT_USER, $0
anim_wait 32
anim_ret
BattleAnim_ReturnMon:
anim_sound 0, 0, SFX_BALL_POOF
BattleAnimSub_Return:
anim_bgeffect BATTLE_BG_EFFECT_RETURN_MON, $0, BG_EFFECT_USER, $0
anim_wait 32
anim_ret
BattleAnim_Confused:
anim_1gfx BATTLE_ANIM_GFX_STATUS
anim_sound 0, 0, SFX_KINESIS
anim_obj BATTLE_ANIM_OBJ_CHICK, 44, 56, $15
anim_obj BATTLE_ANIM_OBJ_CHICK, 44, 56, $aa
anim_obj BATTLE_ANIM_OBJ_CHICK, 44, 56, $bf
anim_wait 96
anim_ret
BattleAnim_Slp:
anim_1gfx BATTLE_ANIM_GFX_STATUS
anim_sound 0, 0, SFX_TAIL_WHIP
.loop
anim_obj BATTLE_ANIM_OBJ_ASLEEP, 64, 80, $0
anim_wait 40
anim_loop 3, .loop
anim_wait 32
anim_ret
BattleAnim_Brn:
anim_1gfx BATTLE_ANIM_GFX_FIRE
.loop
anim_sound 0, 0, SFX_BURN
anim_obj BATTLE_ANIM_OBJ_BURNED, 56, 88, $10
anim_wait 4
anim_loop 3, .loop
anim_wait 6
anim_ret
BattleAnim_Psn:
anim_1gfx BATTLE_ANIM_GFX_POISON
anim_sound 0, 0, SFX_POISON
anim_obj BATTLE_ANIM_OBJ_SKULL, 64, 56, $0
anim_wait 8
anim_sound 0, 0, SFX_POISON
anim_obj BATTLE_ANIM_OBJ_SKULL, 48, 56, $0
anim_wait 8
anim_ret
BattleAnim_Sap:
anim_1gfx BATTLE_ANIM_GFX_CHARGE
anim_sound 6, 3, SFX_WATER_GUN
anim_obj BATTLE_ANIM_OBJ_ABSORB, 128, 48, $2
anim_wait 6
anim_sound 6, 3, SFX_WATER_GUN
anim_obj BATTLE_ANIM_OBJ_ABSORB, 136, 64, $3
anim_wait 6
anim_sound 6, 3, SFX_WATER_GUN
anim_obj BATTLE_ANIM_OBJ_ABSORB, 136, 32, $4
anim_wait 16
anim_ret
BattleAnim_Frz:
anim_1gfx BATTLE_ANIM_GFX_ICE
anim_obj BATTLE_ANIM_OBJ_FROZEN, 44, 110, $0
anim_sound 0, 0, SFX_SHINE
anim_wait 16
anim_sound 0, 0, SFX_SHINE
anim_wait 16
anim_ret
BattleAnim_Par:
anim_1gfx BATTLE_ANIM_GFX_STATUS
anim_bgeffect BATTLE_BG_EFFECT_CYCLE_OBPALS_GRAY_AND_YELLOW, $0, $2, $0
anim_sound 0, 0, SFX_THUNDERSHOCK
anim_obj BATTLE_ANIM_OBJ_PARALYZED, 20, 88, $42
anim_obj BATTLE_ANIM_OBJ_PARALYZED, 76, 88, $c2
anim_wait 128
anim_ret
BattleAnim_InLove:
anim_1gfx BATTLE_ANIM_GFX_OBJECTS
anim_sound 0, 0, SFX_LICK
anim_obj BATTLE_ANIM_OBJ_HEART, 64, 76, $0
anim_wait 32
anim_sound 0, 0, SFX_LICK
anim_obj BATTLE_ANIM_OBJ_HEART, 36, 72, $0
anim_wait 32
anim_ret
BattleAnim_InSandstorm:
anim_1gfx BATTLE_ANIM_GFX_POWDER
anim_obj BATTLE_ANIM_OBJ_SANDSTORM, 88, 0, $0
anim_wait 8
anim_obj BATTLE_ANIM_OBJ_SANDSTORM, 72, 0, $1
anim_wait 8
anim_obj BATTLE_ANIM_OBJ_SANDSTORM, 56, 0, $2
.loop
anim_sound 0, 1, SFX_MENU
anim_wait 8
anim_loop 6, .loop
anim_wait 8
anim_ret
BattleAnim_InNightmare:
anim_1gfx BATTLE_ANIM_GFX_ANGELS
anim_sound 0, 0, SFX_BUBBLEBEAM
anim_obj BATTLE_ANIM_OBJ_IN_NIGHTMARE, 68, 80, $0
anim_wait 40
anim_ret
BattleAnim_InWhirlpool:
anim_1gfx BATTLE_ANIM_GFX_WIND
anim_bgeffect BATTLE_BG_EFFECT_WHIRLPOOL, $0, $0, $0
anim_sound 0, 1, SFX_SURF
.loop
anim_obj BATTLE_ANIM_OBJ_GUST, 132, 72, $0
anim_wait 6
anim_loop 6, .loop
anim_incbgeffect BATTLE_BG_EFFECT_WHIRLPOOL
anim_wait 1
anim_ret
BattleAnim_HitConfusion:
anim_1gfx BATTLE_ANIM_GFX_HIT
anim_sound 0, 0, SFX_POUND
anim_obj BATTLE_ANIM_OBJ_HIT, 44, 96, $0
anim_wait 16
anim_ret
BattleAnim_Miss:
anim_ret
BattleAnim_EnemyDamage:
.loop
anim_bgeffect BATTLE_BG_EFFECT_HIDE_MON, $0, BG_EFFECT_TARGET, $0
anim_wait 5
anim_bgeffect BATTLE_BG_EFFECT_SHOW_MON, $0, BG_EFFECT_TARGET, $0
anim_wait 5
anim_loop 3, .loop
anim_ret
BattleAnim_EnemyStatDown:
anim_call BattleAnim_UserObj_1Row
anim_bgeffect BATTLE_BG_EFFECT_VIBRATE_MON, $0, BG_EFFECT_TARGET, $0
anim_wait 40
anim_call BattleAnim_ShowMon_1
anim_wait 1
anim_ret
BattleAnim_PlayerStatDown:
anim_call BattleAnim_UserObj_1Row
anim_bgeffect BATTLE_BG_EFFECT_WOBBLE_PLAYER, $0, $0, $0
anim_wait 40
anim_call BattleAnim_ShowMon_1
anim_wait 1
anim_ret
BattleAnim_PlayerDamage:
anim_bgeffect BATTLE_BG_EFFECT_SHAKE_SCREEN_Y, $20, $2, $20
anim_wait 40
anim_ret
BattleAnim_Wobble:
anim_bgeffect BATTLE_BG_EFFECT_WOBBLE_SCREEN, $0, $0, $0
anim_wait 40
anim_ret
BattleAnim_Shake:
anim_bgeffect BATTLE_BG_EFFECT_SHAKE_SCREEN_X, $20, $2, $40
anim_wait 40
anim_ret
BattleAnim_Pound:
anim_1gfx BATTLE_ANIM_GFX_HIT
anim_sound 0, 1, SFX_POUND
anim_obj BATTLE_ANIM_OBJ_PALM, 136, 56, $0
anim_wait 6
anim_obj BATTLE_ANIM_OBJ_HIT_YFIX, 136, 56, $0
anim_wait 16
anim_ret
BattleAnim_KarateChop:
anim_1gfx BATTLE_ANIM_GFX_HIT
anim_sound 0, 1, SFX_KARATE_CHOP
anim_obj BATTLE_ANIM_OBJ_PALM, 136, 40, $0
anim_wait 6
anim_obj BATTLE_ANIM_OBJ_HIT_YFIX, 136, 40, $0
anim_wait 6
anim_sound 0, 1, SFX_KARATE_CHOP
anim_obj BATTLE_ANIM_OBJ_PALM, 136, 44, $0
anim_wait 6
anim_obj BATTLE_ANIM_OBJ_HIT_YFIX, 136, 44, $0
anim_wait 6
anim_sound 0, 1, SFX_KARATE_CHOP
anim_obj BATTLE_ANIM_OBJ_PALM, 136, 48, $0
anim_wait 6
anim_obj BATTLE_ANIM_OBJ_HIT_YFIX, 136, 48, $0
anim_wait 16
anim_ret
BattleAnim_Doubleslap:
anim_1gfx BATTLE_ANIM_GFX_HIT
anim_if_param_equal $1, .alternate
anim_sound 0, 1, SFX_DOUBLESLAP
anim_obj BATTLE_ANIM_OBJ_PALM, 144, 48, $0
anim_wait 6
anim_obj BATTLE_ANIM_OBJ_HIT_YFIX, 144, 48, $0
anim_wait 8
anim_ret
.alternate:
anim_sound 0, 1, SFX_DOUBLESLAP
anim_obj BATTLE_ANIM_OBJ_PALM, 120, 48, $0
anim_wait 6
anim_obj BATTLE_ANIM_OBJ_HIT_YFIX, 120, 48, $0
anim_wait 8
anim_ret
BattleAnim_CometPunch:
anim_1gfx BATTLE_ANIM_GFX_HIT
anim_if_param_equal $1, .alternate
anim_sound 0, 1, SFX_COMET_PUNCH
anim_obj BATTLE_ANIM_OBJ_PUNCH, 144, 48, $0
anim_wait 6
anim_obj BATTLE_ANIM_OBJ_HIT_YFIX, 144, 48, $0
anim_wait 8
anim_ret
.alternate:
anim_sound 0, 1, SFX_COMET_PUNCH
anim_obj BATTLE_ANIM_OBJ_PUNCH, 120, 64, $0
anim_wait 6
anim_obj BATTLE_ANIM_OBJ_HIT_YFIX, 120, 64, $0
anim_wait 8
anim_ret
BattleAnim_MegaPunch:
anim_1gfx BATTLE_ANIM_GFX_HIT
anim_bgeffect BATTLE_BG_EFFECT_SHAKE_SCREEN_X, $40, $2, $0
anim_wait 48
anim_bgeffect BATTLE_BG_EFFECT_FLASH_INVERTED, $0, $8, $3
.loop
anim_sound 0, 1, SFX_MEGA_PUNCH
anim_obj BATTLE_ANIM_OBJ_PUNCH, 136, 56, $0
anim_obj BATTLE_ANIM_OBJ_HIT_BIG_YFIX, 136, 56, $0
anim_wait 6
anim_obj BATTLE_ANIM_OBJ_PUNCH, 136, 56, $0
anim_wait 6
anim_loop 3, .loop
anim_ret
BattleAnim_Stomp:
anim_1gfx BATTLE_ANIM_GFX_HIT
anim_sound 0, 1, SFX_STOMP
anim_obj BATTLE_ANIM_OBJ_KICK, 136, 40, $0
anim_wait 6
anim_obj BATTLE_ANIM_OBJ_HIT_YFIX, 136, 40, $0
anim_wait 6
anim_sound 0, 1, SFX_STOMP
anim_obj BATTLE_ANIM_OBJ_KICK, 136, 44, $0
anim_wait 6
anim_obj BATTLE_ANIM_OBJ_HIT_YFIX, 136, 44, $0
anim_wait 6
anim_sound 0, 1, SFX_STOMP
anim_obj BATTLE_ANIM_OBJ_KICK, 136, 48, $0
anim_wait 6
anim_obj BATTLE_ANIM_OBJ_HIT_YFIX, 136, 48, $0
anim_wait 16
anim_ret
BattleAnim_DoubleKick:
anim_1gfx BATTLE_ANIM_GFX_HIT
anim_if_param_equal $1, .alternate
anim_sound 0, 1, SFX_DOUBLE_KICK
anim_obj BATTLE_ANIM_OBJ_KICK, 144, 48, $0
anim_wait 6
anim_obj BATTLE_ANIM_OBJ_HIT_YFIX, 144, 48, $0
anim_wait 8
anim_ret
.alternate:
anim_sound 0, 1, SFX_DOUBLE_KICK
anim_obj BATTLE_ANIM_OBJ_KICK, 120, 64, $0
anim_wait 6
anim_obj BATTLE_ANIM_OBJ_HIT_YFIX, 120, 64, $0
anim_wait 8
anim_ret
BattleAnim_JumpKick:
anim_1gfx BATTLE_ANIM_GFX_HIT
anim_if_param_equal $1, .alternate
anim_sound 0, 1, SFX_JUMP_KICK
anim_obj BATTLE_ANIM_OBJ_KICK, 112, 72, $0
anim_obj BATTLE_ANIM_OBJ_KICK, 100, 60, $0
anim_setobj $1, $2
anim_setobj $2, $2
anim_wait 24
anim_sound 0, 1, SFX_DOUBLE_KICK
anim_obj BATTLE_ANIM_OBJ_HIT, 136, 48, $0
anim_wait 16
anim_ret
.alternate:
anim_wait 8
anim_sound 0, 0, SFX_DOUBLE_KICK
anim_obj BATTLE_ANIM_OBJ_HIT, 44, 88, $0
anim_wait 16
anim_ret
BattleAnim_HiJumpKick:
anim_1gfx BATTLE_ANIM_GFX_HIT
anim_bgeffect BATTLE_BG_EFFECT_SHAKE_SCREEN_X, $40, $2, $0
anim_if_param_equal $1, .alternate
anim_wait 32
anim_sound 0, 1, SFX_JUMP_KICK
anim_obj BATTLE_ANIM_OBJ_KICK, 112, 72, $0
anim_setobj $1, $2
anim_wait 16
anim_sound 0, 1, SFX_DOUBLE_KICK
anim_obj BATTLE_ANIM_OBJ_HIT, 136, 48, $0
anim_wait 16
anim_ret
.alternate:
anim_wait 16
anim_sound 0, 0, SFX_DOUBLE_KICK
anim_obj BATTLE_ANIM_OBJ_HIT, 44, 88, $0
anim_wait 16
anim_ret
BattleAnim_RollingKick:
anim_1gfx BATTLE_ANIM_GFX_HIT
anim_sound 0, 1, SFX_DOUBLE_KICK
anim_obj BATTLE_ANIM_OBJ_KICK, 112, 56, $0
anim_setobj $1, $3
anim_wait 12
anim_obj BATTLE_ANIM_OBJ_HIT_YFIX, 136, 48, $0
anim_wait 16
anim_ret
BattleAnim_MegaKick:
anim_1gfx BATTLE_ANIM_GFX_HIT
anim_bgeffect BATTLE_BG_EFFECT_SHAKE_SCREEN_X, $40, $2, $0
anim_wait 67
anim_bgeffect BATTLE_BG_EFFECT_FLASH_INVERTED, $0, $8, $3
.loop
anim_sound 0, 1, SFX_MEGA_KICK
anim_obj BATTLE_ANIM_OBJ_KICK, 136, 56, $0
anim_obj BATTLE_ANIM_OBJ_HIT_BIG_YFIX, 136, 56, $0
anim_wait 6
anim_obj BATTLE_ANIM_OBJ_KICK, 136, 56, $0
anim_wait 6
anim_loop 3, .loop
anim_ret
BattleAnim_HyperFang:
anim_1gfx BATTLE_ANIM_GFX_HIT
anim_bgeffect BATTLE_BG_EFFECT_SHAKE_SCREEN_X, $20, $1, $0
anim_sound 0, 1, SFX_BITE
anim_obj BATTLE_ANIM_OBJ_FANG, 136, 56, $0
anim_wait 6
anim_obj BATTLE_ANIM_OBJ_HIT_YFIX, 136, 56, $0
anim_wait 16
anim_ret
BattleAnim_SuperFang:
anim_1gfx BATTLE_ANIM_GFX_HIT
anim_bgeffect BATTLE_BG_EFFECT_SHAKE_SCREEN_X, $40, $2, $0
anim_wait 48
anim_bgeffect BATTLE_BG_EFFECT_FLASH_INVERTED, $0, $8, $3
.loop
anim_sound 0, 1, SFX_BITE
anim_obj BATTLE_ANIM_OBJ_FANG, 136, 56, $0
anim_obj BATTLE_ANIM_OBJ_HIT_BIG_YFIX, 136, 56, $0
anim_wait 6
anim_obj BATTLE_ANIM_OBJ_FANG, 136, 56, $0
anim_wait 6
anim_loop 3, .loop
anim_ret
BattleAnim_Ember:
anim_1gfx BATTLE_ANIM_GFX_FIRE
anim_sound 6, 2, SFX_EMBER
anim_obj BATTLE_ANIM_OBJ_EMBER, 64, 96, $12
anim_wait 4
anim_sound 6, 2, SFX_EMBER
anim_obj BATTLE_ANIM_OBJ_EMBER, 64, 100, $14
anim_wait 4
anim_sound 6, 2, SFX_EMBER
anim_obj BATTLE_ANIM_OBJ_EMBER, 64, 84, $13
anim_wait 16
anim_incobj 1
anim_incobj 2
anim_incobj 3
anim_sound 0, 1, SFX_EMBER
anim_obj BATTLE_ANIM_OBJ_EMBER, 120, 68, $30
anim_obj BATTLE_ANIM_OBJ_EMBER, 132, 68, $30
anim_obj BATTLE_ANIM_OBJ_EMBER, 144, 68, $30
anim_wait 32
anim_ret
BattleAnim_FirePunch:
anim_2gfx BATTLE_ANIM_GFX_HIT, BATTLE_ANIM_GFX_FIRE
anim_obj BATTLE_ANIM_OBJ_PUNCH_SHAKE, 136, 56, $43
anim_call BattleAnimSub_Fire
anim_wait 16
anim_ret
BattleAnim_FireSpin:
anim_1gfx BATTLE_ANIM_GFX_FIRE
.loop
anim_sound 6, 2, SFX_EMBER
anim_obj BATTLE_ANIM_OBJ_FIRE_SPIN, 64, 88, $4
anim_wait 2
anim_sound 6, 2, SFX_EMBER
anim_obj BATTLE_ANIM_OBJ_FIRE_SPIN, 64, 96, $3
anim_wait 2
anim_sound 6, 2, SFX_EMBER
anim_obj BATTLE_ANIM_OBJ_FIRE_SPIN, 64, 88, $3
anim_wait 2
anim_sound 6, 2, SFX_EMBER
anim_obj BATTLE_ANIM_OBJ_FIRE_SPIN, 64, 96, $4
anim_wait 2
anim_loop 2, .loop
anim_wait 96
anim_ret
BattleAnim_DragonRage:
anim_1gfx BATTLE_ANIM_GFX_FIRE
.loop
anim_sound 6, 2, SFX_EMBER
anim_obj BATTLE_ANIM_OBJ_DRAGON_RAGE, 64, 92, $0
anim_wait 3
anim_loop 16, .loop
anim_wait 64
anim_ret
BattleAnim_Flamethrower:
anim_1gfx BATTLE_ANIM_GFX_FIRE
anim_sound 6, 2, SFX_EMBER
anim_obj BATTLE_ANIM_OBJ_FLAMETHROWER, 64, 92, $3
anim_wait 2
anim_obj BATTLE_ANIM_OBJ_FLAMETHROWER, 75, 86, $5
anim_wait 2
anim_obj BATTLE_ANIM_OBJ_FLAMETHROWER, 85, 81, $7
anim_wait 2
anim_obj BATTLE_ANIM_OBJ_FLAMETHROWER, 96, 76, $9
anim_wait 2
anim_obj BATTLE_ANIM_OBJ_FLAMETHROWER, 106, 71, $b
anim_wait 2
anim_obj BATTLE_ANIM_OBJ_FLAMETHROWER, 116, 66, $c
anim_wait 2
anim_obj BATTLE_ANIM_OBJ_FLAMETHROWER, 126, 61, $a
anim_wait 2
anim_obj BATTLE_ANIM_OBJ_FLAMETHROWER, 136, 56, $8
anim_wait 16
.loop
anim_sound 0, 1, SFX_EMBER
anim_wait 16
anim_loop 6, .loop
anim_wait 16
anim_ret
BattleAnim_FireBlast:
anim_1gfx BATTLE_ANIM_GFX_FIRE
.loop1
anim_sound 6, 2, SFX_EMBER
anim_obj BATTLE_ANIM_OBJ_FIRE_BLAST, 64, 92, $7
anim_wait 6
anim_loop 10, .loop1
.loop2
anim_sound 0, 1, SFX_EMBER
anim_wait 8
anim_loop 10, .loop2
anim_incobj 1
anim_incobj 2
anim_incobj 3
anim_incobj 4
anim_incobj 5
anim_incobj 6
anim_incobj 7
anim_incobj 8
anim_incobj 9
anim_incobj 10
anim_wait 2
.loop3
anim_sound 0, 1, SFX_EMBER
anim_obj BATTLE_ANIM_OBJ_FIRE_BLAST, 136, 56, $1
anim_obj BATTLE_ANIM_OBJ_FIRE_BLAST, 136, 56, $2
anim_obj BATTLE_ANIM_OBJ_FIRE_BLAST, 136, 56, $3
anim_obj BATTLE_ANIM_OBJ_FIRE_BLAST, 136, 56, $4
anim_obj BATTLE_ANIM_OBJ_FIRE_BLAST, 136, 56, $5
anim_wait 16
anim_loop 2, .loop3
anim_wait 32
anim_ret
BattleAnim_IcePunch:
anim_2gfx BATTLE_ANIM_GFX_HIT, BATTLE_ANIM_GFX_ICE
anim_obj BATTLE_ANIM_OBJ_PUNCH_SHAKE, 136, 56, $43
anim_call BattleAnimSub_Ice
anim_wait 32
anim_ret
BattleAnim_IceBeam:
anim_1gfx BATTLE_ANIM_GFX_ICE
.loop
anim_sound 6, 2, SFX_SHINE
anim_obj BATTLE_ANIM_OBJ_ICE_BEAM, 64, 92, $4
anim_wait 4
anim_loop 5, .loop
anim_obj BATTLE_ANIM_OBJ_ICE_BUILDUP, 136, 74, $10
.loop2
anim_sound 6, 2, SFX_SHINE
anim_obj BATTLE_ANIM_OBJ_ICE_BEAM, 64, 92, $4
anim_wait 4
anim_loop 15, .loop2
anim_wait 48
anim_sound 0, 1, SFX_SHINE
anim_wait 8