diff --git a/constants/move_animation_constants.asm b/constants/move_animation_constants.asm index e09b9f3d..e44c11f8 100644 --- a/constants/move_animation_constants.asm +++ b/constants/move_animation_constants.asm @@ -136,6 +136,7 @@ DEF FIRST_SE_ID EQU const_value const SUBANIM_0_SAFARI_BAIT const SUBANIM_0_STAR_HIGH const SUBANIM_0_FAKE_TEARS + const SUBANIM_0_STAR_ASCENDING DEF NUM_SUBANIMS EQU const_value ; types of subanimations diff --git a/constants/move_constants.asm b/constants/move_constants.asm index 49ed557f..dc978f58 100644 --- a/constants/move_constants.asm +++ b/constants/move_constants.asm @@ -190,7 +190,8 @@ const KOWTOW_CLEAVE ; b6 const DISARMING_VOICE ; b7 const NASTY_PLOT ; b8 - const STRUGGLE ; formerly a5, now b9 + const UPPERCUT ; b9 + const STRUGGLE ; formerly a5, now c0 DEF NUM_ATTACKS EQU const_value - 1 ; Moves do double duty as animation identifiers. diff --git a/data/battle_anims/subanimations.asm b/data/battle_anims/subanimations.asm index a1169072..9a502bcb 100644 --- a/data/battle_anims/subanimations.asm +++ b/data/battle_anims/subanimations.asm @@ -87,6 +87,7 @@ SubanimationPointers: dw Subanim_0SafariBait dw Subanim_0StarHigh dw Subanim_0FakeTears + dw Subanim_0StarAscending ; Uppercut assert_table_length NUM_SUBANIMS ; format: @@ -256,6 +257,13 @@ Subanim_0StarDescending: db FRAMEBLOCK_01, BASECOORD_18, FRAMEBLOCKMODE_00 db FRAMEBLOCK_01, BASECOORD_1D, FRAMEBLOCKMODE_00 +Subanim_0StarAscending: + subanim SUBANIMTYPE_HFLIP, 4 + db FRAMEBLOCK_01, BASECOORD_1D, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_01, BASECOORD_18, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_01, BASECOORD_11, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_01, BASECOORD_0B, FRAMEBLOCKMODE_00 + Subanim_1FlameColumn1: subanim SUBANIMTYPE_HFLIP, 3 db FRAMEBLOCK_0C, BASECOORD_20, FRAMEBLOCKMODE_00 diff --git a/data/moves/animations.asm b/data/moves/animations.asm index c4dfb2bb..363725eb 100644 --- a/data/moves/animations.asm +++ b/data/moves/animations.asm @@ -184,6 +184,7 @@ AttackAnimationPointers: dw KowtowCleaveAnim dw DisarmingVoiceAnim dw NastyPlotAnim + dw UppercutAnim dw StruggleAnim assert_table_length NUM_ATTACKS dw ShowPicAnim @@ -261,6 +262,10 @@ KarateChopAnim: battle_anim KARATE_CHOP, SUBANIM_0_STAR_DESCENDING, 0, 8 db -1 ; end +UppercutAnim: + battle_anim UPPERCUT, SUBANIM_0_STAR_ASCENDING, 0, 8 + db -1 ; end + DoubleSlapAnim: battle_anim DOUBLESLAP, SUBANIM_0_STAR_TWICE, 0, 5 battle_anim DOUBLESLAP, SUBANIM_0_STAR_TWICE, 0, 5 diff --git a/data/moves/moves.asm b/data/moves/moves.asm index 34890a49..799eef53 100644 --- a/data/moves/moves.asm +++ b/data/moves/moves.asm @@ -195,5 +195,6 @@ Moves: move KOWTOW_CLEAVE, SWIFT_EFFECT, 85, DARK, 100, 10 move DISARMING_VOICE, SWIFT_EFFECT, 40, FAIRY, 100, 10 move NASTY_PLOT, SPECIAL_UP2_EFFECT, 0, DARK, 100, 10 + move UPPERCUT, FLINCH_SIDE_EFFECT2, 55, FIGHTING, 80, 15 move STRUGGLE, RECOIL_EFFECT, 50, NORMAL, 100, 10 assert_table_length NUM_ATTACKS diff --git a/data/moves/names.asm b/data/moves/names.asm index 4b90d361..6cdb1677 100644 --- a/data/moves/names.asm +++ b/data/moves/names.asm @@ -184,5 +184,6 @@ MoveNames:: ; 12chr limit li "KOWTOWCLEAVE" li "DISARMVOICE" li "NASTY PLOT" + li "UPPERCUT" li "STRUGGLE" assert_list_length NUM_ATTACKS diff --git a/data/moves/sfx.asm b/data/moves/sfx.asm index 3ad3c71a..018a85a3 100644 --- a/data/moves/sfx.asm +++ b/data/moves/sfx.asm @@ -185,6 +185,7 @@ MoveSoundTable: db SFX_NOT_VERY_EFFECTIVE, $11, $ff ; KOWTOW_CLEAVE db SFX_BATTLE_37, $10, $60 ; DISARMING_VOICE db SFX_BATTLE_09, $e8, $10 ; NASTY_PLOT + db SFX_SUPER_EFFECTIVE, $00, $e0 ; UPPERCUT db SFX_BATTLE_0B, $00, $80 ; STRUGGLE assert_table_length NUM_ATTACKS diff --git a/data/pokemon/base_stats/carapthor.asm b/data/pokemon/base_stats/carapthor.asm index 5e857b4e..4ed854f0 100644 --- a/data/pokemon/base_stats/carapthor.asm +++ b/data/pokemon/base_stats/carapthor.asm @@ -10,7 +10,7 @@ INCBIN "gfx/pokemon/front/carapthor.pic", 0, 1 ; sprite dimensions dw CarapthorPicFront, CarapthorPicBack - db COMET_PUNCH, NO_MOVE, NO_MOVE, NO_MOVE ; level 1 learnset + db COMET_PUNCH, UPPERCUT, NO_MOVE, NO_MOVE ; level 1 learnset db GROWTH_MEDIUM_FAST ; growth rate ; tm/hm learnset diff --git a/data/pokemon/base_stats/hitmonchan.asm b/data/pokemon/base_stats/hitmonchan.asm index ef28aad6..c602ef02 100644 --- a/data/pokemon/base_stats/hitmonchan.asm +++ b/data/pokemon/base_stats/hitmonchan.asm @@ -10,7 +10,7 @@ INCBIN "gfx/pokemon/front/hitmonchan.pic", 0, 1 ; sprite dimensions dw HitmonchanPicFront, HitmonchanPicBack - db COMET_PUNCH, AGILITY, NO_MOVE, NO_MOVE ; level 1 learnset + db COMET_PUNCH, AGILITY, UPPERCUT, NO_MOVE ; level 1 learnset db GROWTH_MEDIUM_FAST ; growth rate ; tm/hm learnset diff --git a/data/pokemon/base_stats/machamp.asm b/data/pokemon/base_stats/machamp.asm index 41e80d74..94e4e560 100644 --- a/data/pokemon/base_stats/machamp.asm +++ b/data/pokemon/base_stats/machamp.asm @@ -10,7 +10,7 @@ INCBIN "gfx/pokemon/front/machamp.pic", 0, 1 ; sprite dimensions dw MachampPicFront, MachampPicBack - db KARATE_CHOP, LOW_KICK, LEER, NO_MOVE ; level 1 learnset + db KARATE_CHOP, LOW_KICK, LEER, UPPERCUT ; level 1 learnset db GROWTH_MEDIUM_SLOW ; growth rate ; tm/hm learnset diff --git a/data/pokemon/base_stats/machoke.asm b/data/pokemon/base_stats/machoke.asm index e33e3789..e2480725 100644 --- a/data/pokemon/base_stats/machoke.asm +++ b/data/pokemon/base_stats/machoke.asm @@ -10,7 +10,7 @@ INCBIN "gfx/pokemon/front/machoke.pic", 0, 1 ; sprite dimensions dw MachokePicFront, MachokePicBack - db KARATE_CHOP, LOW_KICK, LEER, NO_MOVE ; level 1 learnset + db KARATE_CHOP, LOW_KICK, LEER, UPPERCUT ; level 1 learnset db GROWTH_MEDIUM_SLOW ; growth rate ; tm/hm learnset diff --git a/data/pokemon/base_stats/machop.asm b/data/pokemon/base_stats/machop.asm index 1b70b5d1..700e68e4 100644 --- a/data/pokemon/base_stats/machop.asm +++ b/data/pokemon/base_stats/machop.asm @@ -10,7 +10,7 @@ INCBIN "gfx/pokemon/front/machop.pic", 0, 1 ; sprite dimensions dw MachopPicFront, MachopPicBack - db KARATE_CHOP, NO_MOVE, NO_MOVE, NO_MOVE ; level 1 learnset + db KARATE_CHOP, UPPERCUT, NO_MOVE, NO_MOVE ; level 1 learnset db GROWTH_MEDIUM_SLOW ; growth rate ; tm/hm learnset diff --git a/data/pokemon/base_stats/mankey.asm b/data/pokemon/base_stats/mankey.asm index 07cad4e1..2c81d268 100644 --- a/data/pokemon/base_stats/mankey.asm +++ b/data/pokemon/base_stats/mankey.asm @@ -10,7 +10,7 @@ INCBIN "gfx/pokemon/front/mankey.pic", 0, 1 ; sprite dimensions dw MankeyPicFront, MankeyPicBack - db SCRATCH, LEER, NO_MOVE, NO_MOVE ; level 1 learnset + db SCRATCH, LEER, UPPERCUT, NO_MOVE ; level 1 learnset db GROWTH_MEDIUM_FAST ; growth rate ; tm/hm learnset diff --git a/data/pokemon/base_stats/primeape.asm b/data/pokemon/base_stats/primeape.asm index a45c79d3..0eef4f50 100644 --- a/data/pokemon/base_stats/primeape.asm +++ b/data/pokemon/base_stats/primeape.asm @@ -10,7 +10,7 @@ INCBIN "gfx/pokemon/front/primeape.pic", 0, 1 ; sprite dimensions dw PrimeapePicFront, PrimeapePicBack - db SCRATCH, LEER, KARATE_CHOP, FURY_SWIPES ; level 1 learnset + db SCRATCH, LEER, UPPERCUT, KARATE_CHOP ; level 1 learnset db GROWTH_MEDIUM_FAST ; growth rate ; tm/hm learnset diff --git a/data/pokemon/evos_moves.asm b/data/pokemon/evos_moves.asm index 306580f1..a40e1b1b 100644 --- a/data/pokemon/evos_moves.asm +++ b/data/pokemon/evos_moves.asm @@ -2834,6 +2834,7 @@ CarapthorEvosMoves: ; Evolutions db 0 ; Learnset + db 10, UPPERCUT db 12, COMET_PUNCH db 16, PIN_MISSILE db 20, DEFENSE_CURL diff --git a/engine/debug/debug_menu.asm b/engine/debug/debug_menu.asm index 16875a60..ad0a8eb5 100644 --- a/engine/debug/debug_menu.asm +++ b/engine/debug/debug_menu.asm @@ -108,9 +108,9 @@ TestBattle: ld [hl], a ; Player's Pokemon. - ld a, MEW + ld a, MANKEY ld [wcf91], a - ld a, 100 + ld a, 10 ld [wCurEnemyLVL], a xor a ld [wMonDataLocation], a @@ -120,19 +120,19 @@ TestBattle: ; This function gives you a way to waste a turn, never know when you'll need it. ; Alternatively, add a move to test. ld hl, wPartyMon1Moves - ld a, POISON_STING ; Something super weak + ld a, UPPERCUT ; Something super weak ld [hli], a - ld a, LEECH_SEED ; Test new failure text + ld a, KARATE_CHOP ; Test new failure text ld [hli], a - ld a, FISSURE ; Something that'll miss easily + ld a, LOW_KICK ; Something that'll miss easily ld [hli], a - ld a, SPLASH ; Skip turn + ld a, LEER ; Skip turn ld [hli], a ; Opponent's Pokemon. - ld a, ARTICUNO ; Test new theme + ld a, MANKEY ; Test new theme ld [wCurOpponent], a - ld a, 100 ; Set the level you want here. + ld a, 10 ; Set the level you want here. ld [wCurEnemyLVL], a predef InitOpponent