mirror of
https://github.com/thornAvery/jep-hack.git
synced 2025-09-16 18:20:50 +12:00
Anims for Uppercut, Coin Hurl, and Strong Arm
Uppercut reimagines KEP's clusterfuck of an animation, reversing Karate Chop and then reworking the sounds Coin Hurl works like the Poke Ball toss, and then spits out coins on-hit. Looks sort of like Acid in practice. This was weirdly complicated to implement as I had to disentangle the throw animation from the Poke Ball toss in Game Freak fashion. Strong Arm does the "metal" starting animation, then does its best Rollout into DynamicPunch impression.
This commit is contained in:
parent
6919fa5fe3
commit
1f0cc46814
|
@ -218,6 +218,7 @@ DEF BATTLEANIM_BASE_TILE EQU 7 * 7 ; Maximum size of a pokemon picture
|
|||
const ANIM_OBJ_PLAYERHEAD_1ROW
|
||||
const ANIM_OBJ_ENEMYFEET_2ROW
|
||||
const ANIM_OBJ_PLAYERHEAD_2ROW
|
||||
const ANIM_OBJ_COIN_HURL
|
||||
DEF NUM_ANIM_OBJS EQU const_value
|
||||
|
||||
; DoBattleAnimFrame arguments (see engine/battle_anims/functions.asm)
|
||||
|
@ -302,6 +303,7 @@ DEF NUM_ANIM_OBJS EQU const_value
|
|||
const BATTLEANIMFUNC_ANCIENT_POWER
|
||||
const BATTLEANIMFUNC_ROCK_SMASH
|
||||
const BATTLEANIMFUNC_COTTON
|
||||
const BATTLEANIMFUNC_COINHURL
|
||||
DEF NUM_BATTLEANIMFUNCS EQU const_value
|
||||
|
||||
; BattleAnimFrameData indexes (see data/battle_anims/framesets.asm)
|
||||
|
|
|
@ -395,4 +395,6 @@ BattleAnimObjects:
|
|||
battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_B7, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_ENEMY, ANIM_GFX_PLAYERHEAD
|
||||
; ANIM_OBJ_PLAYERHEAD_2ROW
|
||||
battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_B8, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_PLAYER, ANIM_GFX_ENEMYFEET
|
||||
; ANIM_OBJ_COIN_HURL - just the Poke Ball toss but with Pay Day's gfx chucked in
|
||||
battleanimobj ABSOLUTE_X, $ff, BATTLEANIMFRAMESET_75, BATTLEANIMFUNC_COINHURL, PAL_BATTLE_OB_BROWN, ANIM_GFX_STATUS
|
||||
assert_table_length NUM_ANIM_OBJS
|
||||
|
|
|
@ -283,14 +283,14 @@ BattleAnimations::
|
|||
dw BattleAnim_RockSlash
|
||||
dw BattleAnim_CrossCutter
|
||||
dw BattleAnim_Megaphone
|
||||
dw BattleAnim_Wind_Ride ; Mystic Ice - to be changed, all new anims here are temp
|
||||
dw BattleAnim_Wind_Ride ; Mystic Ice - to be changed, all new anims here are temp. Wind Ride's animation fits Mystic Ice but may want some touch-ups. It's buggy.
|
||||
dw BattleAnim_Splash ; Bounce
|
||||
dw BattleAnim_Flash ; Bright Moss
|
||||
dw BattleAnim_PayDay ; Coin Hurl
|
||||
dw BattleAnim_CoinHurl ; Coin Hurl
|
||||
dw BattleAnim_RockSmash ; Uproot
|
||||
dw BattleAnim_Psybeam ; Synchronize
|
||||
dw BattleAnim_Rollout ; Strong Arm (I want it to look like Arm Thrust in ADV!)
|
||||
dw BattleAnim_MegaPunch ; Uppercut (replicate the KEP one!!)
|
||||
dw BattleAnim_StrongArm
|
||||
dw BattleAnim_Uppercut
|
||||
dw BattleAnim_WaterGun ; uhhh
|
||||
dw BattleAnim_Wind_Ride ; Wind Ride but real
|
||||
dw BattleAnim_Flash ; Dazzling Gleam
|
||||
|
@ -1334,7 +1334,7 @@ BattleAnim_RazorWind:
|
|||
anim_wait 24
|
||||
anim_ret
|
||||
|
||||
BattleAnim_Sonicboom_JP: ; unreferenced
|
||||
BattleAnim_Sonicboom:
|
||||
anim_2gfx ANIM_GFX_WHIP, ANIM_GFX_HIT
|
||||
.loop
|
||||
anim_sound 3, 0, SFX_RAZOR_WIND
|
||||
|
@ -1359,7 +1359,6 @@ BattleAnim_Sonicboom_JP: ; unreferenced
|
|||
anim_ret
|
||||
|
||||
BattleAnim_Gust:
|
||||
BattleAnim_Sonicboom:
|
||||
anim_2gfx ANIM_GFX_WIND, ANIM_GFX_HIT
|
||||
.loop
|
||||
anim_sound 0, 1, SFX_RAZOR_WIND
|
||||
|
@ -4705,7 +4704,7 @@ BattleAnim_Wind_Ride:
|
|||
anim_sound 0, 1, SFX_MEGA_KICK
|
||||
anim_obj ANIM_OBJ_HIT_BIG_YFIX, 136, 56, $0
|
||||
anim_bgeffect ANIM_BG_SHOW_MON, $0, BG_EFFECT_USER, $0
|
||||
anim_wait 32
|
||||
anim_wait 32 ; something causes the tip of the back sprite to disappear
|
||||
anim_ret
|
||||
|
||||
|
||||
|
@ -4898,6 +4897,73 @@ BattleAnimSub_Glimmer2:
|
|||
anim_wait 16
|
||||
anim_ret
|
||||
|
||||
; Splices the "metal" animation, Tackle, and DynamicPunch, using the Spark SFX from Rollout.
|
||||
BattleAnim_StrongArm:
|
||||
anim_1gfx ANIM_GFX_REFLECT
|
||||
anim_obp0 $0
|
||||
anim_sound 0, 0, SFX_RAGE
|
||||
anim_call BattleAnim_TargetObj_1Row
|
||||
anim_call BattleAnimSub_Metallic
|
||||
anim_call BattleAnim_ShowMon_0
|
||||
anim_1gfx ANIM_GFX_HIT
|
||||
anim_resetobp0
|
||||
anim_sound 0, 0, SFX_SPARK
|
||||
anim_call BattleAnim_TargetObj_1Row
|
||||
anim_bgeffect ANIM_BG_TACKLE, $0, BG_EFFECT_USER, $0
|
||||
anim_wait 4
|
||||
anim_sound 0, 1, SFX_MEGA_PUNCH
|
||||
anim_obj ANIM_OBJ_HIT_BIG, 136, 40, $0
|
||||
anim_wait 8
|
||||
anim_2gfx ANIM_GFX_HIT, ANIM_GFX_EXPLOSION
|
||||
anim_resetobp0
|
||||
anim_obj ANIM_OBJ_PUNCH_SHAKE, 136, 56, $43
|
||||
anim_wait 16
|
||||
anim_bgeffect ANIM_BG_SHAKE_SCREEN_X, $e, $4, $0
|
||||
anim_call BattleAnim_ShowMon_0
|
||||
anim_ret
|
||||
|
||||
; Made in virtually the same way to KEP, reversing Karate Chop's animation.
|
||||
; Difference here is using Comet Punch's SFX, not repeating it, having the Punch icon, and having a lower low and higher high in its arc. Karate Chop changed lots in GSC!
|
||||
BattleAnim_Uppercut:
|
||||
anim_1gfx ANIM_GFX_HIT
|
||||
anim_sound 0, 1, SFX_COMET_PUNCH
|
||||
anim_obj ANIM_OBJ_PUNCH, 136, 52, $0
|
||||
anim_obj ANIM_OBJ_HIT_YFIX, 136, 52, $0
|
||||
anim_wait 3
|
||||
anim_obj ANIM_OBJ_PUNCH, 136, 48, $0
|
||||
anim_obj ANIM_OBJ_HIT_YFIX, 136, 48, $0
|
||||
anim_wait 3
|
||||
anim_obj ANIM_OBJ_PUNCH, 136, 44, $0
|
||||
anim_obj ANIM_OBJ_HIT_YFIX, 136, 44, $0
|
||||
anim_wait 3
|
||||
anim_obj ANIM_OBJ_PUNCH, 136, 40, $0
|
||||
anim_obj ANIM_OBJ_HIT_YFIX, 136, 40, $0
|
||||
anim_wait 3
|
||||
anim_obj ANIM_OBJ_PUNCH, 136, 36, $0
|
||||
anim_obj ANIM_OBJ_HIT_YFIX, 136, 36, $0
|
||||
anim_wait 16
|
||||
anim_ret
|
||||
|
||||
; Takes the Poke Ball throw code, applies it to the Pay Day coins, then spits out coins on hit.
|
||||
BattleAnim_CoinHurl:
|
||||
anim_2gfx ANIM_GFX_HIT, ANIM_GFX_STATUS
|
||||
anim_sound 6, 2, SFX_PAY_DAY
|
||||
anim_obj ANIM_OBJ_COIN_HURL, 68, 92, $40
|
||||
anim_wait 4
|
||||
anim_sound 6, 2, SFX_PAY_DAY
|
||||
anim_obj ANIM_OBJ_COIN_HURL, 68, 92, $40
|
||||
anim_wait 4
|
||||
anim_sound 6, 2, SFX_PAY_DAY
|
||||
anim_obj ANIM_OBJ_COIN_HURL, 68, 92, $40
|
||||
anim_wait 28
|
||||
anim_obj ANIM_OBJ_PAY_DAY, 110, 76, $1
|
||||
anim_wait 2
|
||||
anim_obj ANIM_OBJ_PAY_DAY, 120, 66, $1
|
||||
anim_wait 2
|
||||
anim_obj ANIM_OBJ_PAY_DAY, 130, 86, $1
|
||||
anim_wait 64
|
||||
anim_ret
|
||||
|
||||
BattleAnim_TargetObj_1Row:
|
||||
anim_battlergfx_2row
|
||||
anim_bgeffect ANIM_BG_BATTLEROBJ_1ROW, $0, BG_EFFECT_TARGET, $0
|
||||
|
|
|
@ -94,6 +94,7 @@ DoBattleAnimFrame:
|
|||
dw BattleAnimFunction_AncientPower
|
||||
dw BattleAnimFunction_RockSmash
|
||||
dw BattleAnimFunction_Cotton
|
||||
dw BattleAnimFunction_CoinHurl
|
||||
assert_table_length NUM_BATTLEANIMFUNCS
|
||||
|
||||
BattleAnimFunction_Null:
|
||||
|
@ -273,6 +274,23 @@ BattleAnimFunction_MoveFromUserToTargetAndDisappear:
|
|||
call DeinitBattleAnimation
|
||||
ret
|
||||
|
||||
; Poke Ball animation function without the jumptable and palchoice
|
||||
; managed to finish this by freak accident tbh it's nice tho
|
||||
BattleAnimFunction_CoinHurl:
|
||||
call BattleAnimFunction_ThrowFromUserToTarget
|
||||
ret c
|
||||
ld hl, BATTLEANIMSTRUCT_YOFFSET
|
||||
add hl, bc
|
||||
ld a, [hl]
|
||||
ld hl, BATTLEANIMSTRUCT_YCOORD
|
||||
add hl, bc
|
||||
add [hl]
|
||||
ld [hl], a
|
||||
ld a, BATTLEANIMFRAMESET_75
|
||||
call ReinitBattleAnimFrameset
|
||||
call DeinitBattleAnimation
|
||||
ret
|
||||
|
||||
BattleAnimFunction_PokeBall:
|
||||
call BattleAnim_AnonJumptable
|
||||
.anon_dw
|
||||
|
|
|
@ -8,12 +8,12 @@ DebugRoom_MapScripts:
|
|||
|
||||
DebugPokemon1Script:
|
||||
opentext
|
||||
getmonname STRING_BUFFER_3, PIKACHU
|
||||
getmonname STRING_BUFFER_3, PERSIAN
|
||||
writetext ReceivedDebugPokemonText
|
||||
playsound SFX_CAUGHT_MON
|
||||
waitsfx
|
||||
promptbutton
|
||||
givepoke PIKACHU, 24, POISON_STONE
|
||||
givepoke PERSIAN, 90, TM_ROCK_SMASH
|
||||
closetext
|
||||
end
|
||||
|
||||
|
|
Loading…
Reference in a new issue