From f4b5e1d2f5cf500e71fc741767d3552c18a93dc7 Mon Sep 17 00:00:00 2001 From: Llinos Evans <36418502+PlagueVonKarma@users.noreply.github.com> Date: Sat, 25 Nov 2023 16:57:55 +0000 Subject: [PATCH] Add Uppercut Misty's worst nightmare. FIGHTING type 55 Power 15 PP 80 Accuracy Effect: Flinch (30% chance) Learned by Hitmonchan, Machop, and Mankey at L1. Primeape, Machoke, and Machamp have it in their L1 learnsets as well. Learned by Carapthor at L10 as an evolution move. Also part of its L1 learnset. --- constants/move_animation_constants.asm | 1 + constants/move_constants.asm | 3 ++- data/battle_anims/subanimations.asm | 8 ++++++++ data/moves/animations.asm | 5 +++++ data/moves/moves.asm | 1 + data/moves/names.asm | 1 + data/moves/sfx.asm | 1 + data/pokemon/base_stats/carapthor.asm | 2 +- data/pokemon/base_stats/hitmonchan.asm | 2 +- data/pokemon/base_stats/machamp.asm | 2 +- data/pokemon/base_stats/machoke.asm | 2 +- data/pokemon/base_stats/machop.asm | 2 +- data/pokemon/base_stats/mankey.asm | 2 +- data/pokemon/base_stats/primeape.asm | 2 +- data/pokemon/evos_moves.asm | 1 + engine/debug/debug_menu.asm | 16 ++++++++-------- 16 files changed, 35 insertions(+), 16 deletions(-) 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