diff --git a/constants/battle_anim_constants.asm b/constants/battle_anim_constants.asm index bf6b45e..0960fa5 100644 --- a/constants/battle_anim_constants.asm +++ b/constants/battle_anim_constants.asm @@ -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) diff --git a/data/battle_anims/objects.asm b/data/battle_anims/objects.asm index 84ea638..cdabe0e 100644 --- a/data/battle_anims/objects.asm +++ b/data/battle_anims/objects.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 diff --git a/data/moves/animations.asm b/data/moves/animations.asm index bf9c1d7..489e667 100644 --- a/data/moves/animations.asm +++ b/data/moves/animations.asm @@ -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 diff --git a/engine/battle_anims/functions.asm b/engine/battle_anims/functions.asm index 3374342..19704ce 100644 --- a/engine/battle_anims/functions.asm +++ b/engine/battle_anims/functions.asm @@ -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 diff --git a/maps/DebugRoom.asm b/maps/DebugRoom.asm index 0a5f9ec..a437eb8 100644 --- a/maps/DebugRoom.asm +++ b/maps/DebugRoom.asm @@ -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