From 185e598a2e3272e83cd569198e24abf717ff3e67 Mon Sep 17 00:00:00 2001 From: Martha Schilling Date: Wed, 3 Jan 2024 21:41:24 +0000 Subject: [PATCH] PureRGB move enhancements + Nasty Plot and Fake Tears animation fix Just a bit more to go! Added improved animations for the following moves, mostly taken from Vortiene's PureRGB hack: - Struggle (user now shakes before attacking) - Fire Punch (added sound effects) - Ice Punch (added sound effects) - ThunderPunch (added sound effects) - Swords Dance (increased duration by adding an unused subanimation) - Fairy Wind (changed sound effect) - Jump Kick (much more detailed, user's sprite dips down before attacking, and the hit is carried upwards) - Rolling Kick (user now shakes before attacking) - Thrash (user now shakes before attacking) - Iron Head (changed sound effect) - Poison Sting (added new graphic that looks like a needle being fired at the opponent) - Twineedle (added new graphic that looks like a pair of stingers being fired at the opponent) - Pin Missile (added new graphic that looks like a needle being fired at the opponent) - Hydro Pump (the first half of the attack now looks more like a blast of water instead of two rising colums of water) - Ice Beam (screen briefly brightens when used, added sound effects) - Blizzard (added sound effects) - Aurora Beam (screen briefly brightens when used) - Submission (much more detailed animation that shows the user falling back to the ground after the attack) - Draining Kiss (added Lovely Kiss' animation to the first half of the attack so it wasn't a clone of Absorb) - Growth (increased duration by adding more subanimations) - PoisonPowder (the palettes temporarily darken slightly when used) - Stun Spore (the screen temporarily lights up slightly when used) - Sleep Powder (the screen temporarily lights up slightly when used) - Dragon Rage (increased duration by adding more subanimations) - Rock Throw (changed sound effect slightly) - Agility (user now shakes when used) - Night Shade (the screen inverts colours temporarily when used) - Recover (changed sound effect slightly) - Focus Energy (reused its unused animation) - Egg Bomb and Magnet Bomb (sound effect changed) - Spike Cannon (added new graphic that looks like a needle being fired at the opponent) - Amnesia and Nasty Plot (completely new animation that doesn't reuse the confused animation) - Kinesis (completely new animation, looks more like a psychic move now) - Hi Jump Kick (much more detailed, user's sprite jumps up before attacking, then lands afterwards) - Dream Eater (changed sound effect, now has HP drain animation - Sky Attack (changed sound effect and subanimation) - Dazzling Gleam (the screen now turns wavy like Psychic after the initial flash) - Hyper Fang (the screen flashes for a moment when the attack lands) - Tri Attack (added the fire, ice and electric elements present in later animations, but note that the move still has no secondary effect) - Fake Tears (completely new animation that involves the user literally shaking and crying) --- README.md | 11 +- constants/move_animation_constants.asm | 8 + constants/move_constants.asm | 2 + constants/music_constants.asm | 1 + crysaudio/sfx.asm | 21 +++ crysaudio/sfx_pointers_red.asm | 1 + data/battle_anims/frame_blocks.asm | 5 + data/battle_anims/subanimations.asm | 49 ++++++ data/moves/animations.asm | 224 ++++++++++++++++++++----- data/moves/sfx.asm | 4 +- engine/battle/animations.asm | 14 +- main.asm | 4 +- 12 files changed, 295 insertions(+), 49 deletions(-) diff --git a/README.md b/README.md index a9f3f5fa..855d2203 100644 --- a/README.md +++ b/README.md @@ -169,6 +169,7 @@ QoL Enhancements - Various moves have had their animations altered to be less intensive for photosensitive individuals, including every animation that was dimmed on the 3DS (Most notably Blizzard and Thunderbolt). This was done with the aim of also improving the move's animations overall, so some look a little flashier. - Full list includes Body Slam, Glare, Disable, Blizzard, BubbleBeam, Confusion, Dream Eater, Explosion, Guillotine, Hyper Beam, Mega Kick, Mega Punch, Psychic, Reflect, Rock Slide, Selfdestruct, Spore, and Thunderbolt. - PureRGB's AI enhancements are ported over; said hack was made by Vortiene. In general, it isn't as stupid as it was before. + - PureRGB's move animation enhancements are also ported over, making several moves look better and more detailed than before. - Bag capacity is increased from 20 to 30 items. - Pokemon Box capacity is now 280 Pokemon with 14 boxes. - Exp. All now works like the modern Exp. Share, giving all party members max exp. It also only has one message, though it does still take time to calculate all the exp being thrown around. It'll take around 3 seconds to calculate, sort of like saving. Oh, and it's a Key Item now, so you can't sell it by accident. @@ -259,7 +260,7 @@ and more! Known Bugs ==== -- Fake Tears and Nasty Plot don't quite look right when done from the opponent's side. +- The new AI (possibly bugged?) behaves quite oddly, such as using Recover at full HP, spamming status-inflicting moves like Lovely Kiss, neglecting supereffective moves, setting up multiple Reflects, etc. Evolution Methods for new Pokemon ==== @@ -365,7 +366,8 @@ If you use our implementations of anything at all, it is encouraged to submit Pu * Albatross - Many of the new sprites used in the hack (A significant number of post-Gen 1 evolutions, all regional variants, Meltan and Carapthor lines, etc.) * LuciShrimp - Mewtwo & FireRed/LeafGreen Legendary custom battle music; Area Zero map theme for Mt. Moon Crater. * jojobear13 & Mateo - DV/StatExp display, move deleter, & move relearner functionality from Shin Pokered, followed [this guide](https://github.com/jojobear13/shinpokered/blob/master/how%20to%20guides/how%20to%20add%20the%20move%20relearner%26deleter.txt). Tweaks were made to make it compatible with the pokered version we worked off of. Thanks specifically to Mateo's Red++ for the ferry system! Jojobear also provided bug fixes! -* thornAvery - Various bug fixes, notably to text speed errors. +* thornAvery - Various bug fixes, notably to text speed errors, as well as making the Battle Tent a lot more functional. +* LadyMisticus - Bug fixes and minor adjustments, and made a well-documented spreadsheet for the hack that details every Pokemon's stats, movepools and locations, plus more! * pret et al - Pokémon Red and Blue Disassembly Project, many tutorials helped us! * ausma - Showdown Mod assistance * Paulluxx - Showdown Mod assistance @@ -374,13 +376,12 @@ If you use our implementations of anything at all, it is encouraged to submit Pu * Frrf - Assisting with the development of the Pikachu / Eevee Mode + 5 Starters scenes in Oak's Lab, debugging. * erosunica - Assistance with developing Celadon University & Citrine City, plus sources for various subjects. * Chatot4444 - Assisting with gym scaling code. -* Enigami - Reworking the Battle Tent's RestoreTeam code to make it work properly. -* LadyMisticus - Made a well-documented spreadsheet for the hack that details every Pokemon's stats, movepools and locations, plus more! +* Enigami - Reworking the Battle Tent's RestoreTeam code to make it work properly. * HeadBoiSkye - Helped with writing NPC dialogue and Pokédex entries for new Pokémon such as Gyopin. * ZumiIsawhat? - Restorations of prototype OST. * FrenchOrange - Reconstructions of various overworld prototype sprites. * Helix Chamber (RacieBeep & Orchid) - Prototype Pokémon sprites. Precise credits are available [here](https://cdn.discordapp.com/attachments/1014321591657709569/1015347305483878521/unknown.png) and below. -* Vortiene/Vortyne - Reused a bit of code from their pureRGB hack, including their Trainer AI and Pokedex stats page. Assisted in bug fixes. Used their sprite sheet generator. +* Vortiene/Vortyne - Reused a bit of code from their pureRGB hack, including their Trainer AI, move animations and Pokedex stats page. Assisted in bug fixes. Used their sprite sheet generator. * Pigu-A, RevoSucks, walle303 - Contributors to Pokemon Anniversary Red's repository, where we reused the Green/FemC sprites and the Battle Tent. * Rangi - Reused a bit of code from their Red* / Blue* hack to make HMs usable in the overworld, and generally being an amazing individual. * BGVC - Composed the original 4-channel version of the unused Koukan (trading) music. diff --git a/constants/move_animation_constants.asm b/constants/move_animation_constants.asm index e44c11f8..a16cdaff 100644 --- a/constants/move_animation_constants.asm +++ b/constants/move_animation_constants.asm @@ -137,6 +137,13 @@ DEF FIRST_SE_ID EQU const_value const SUBANIM_0_STAR_HIGH const SUBANIM_0_FAKE_TEARS const SUBANIM_0_STAR_ASCENDING + const SUBANIM_AMNESIA + const SUBANIM_AMNESIA1 + const SUBANIM_AMNESIA_ENEMY + const SUBANIM_AMNESIA1_ENEMY + const SUBANIM_0_PIN_JAB + const SUBANIM_0_PIN_MISSILE + const SUBANIM_0_BARB_JAB DEF NUM_SUBANIMS EQU const_value ; types of subanimations @@ -273,6 +280,7 @@ DEF NUM_SUBANIMS EQU const_value const FRAMEBLOCK_77 const FRAMEBLOCK_78 const FRAMEBLOCK_79 + const FRAMEBLOCK_7A DEF NUM_FRAMEBLOCKS EQU const_value ; base coordinates that are part of subanimations diff --git a/constants/move_constants.asm b/constants/move_constants.asm index e9da8670..2a7625b6 100644 --- a/constants/move_constants.asm +++ b/constants/move_constants.asm @@ -234,5 +234,7 @@ DEF NUM_ATTACKS EQU const_value - 1 const HIDEPIC_ANIM ; monster disappears const ROCK_ANIM ; throw rock const BAIT_ANIM ; throw bait + const AMNESIA_ENEMY_ANIM + const FAKE_TEARS_ENEMY_ANIM DEF NUM_ATTACK_ANIMS EQU const_value - 1 diff --git a/constants/music_constants.asm b/constants/music_constants.asm index cf463bad..40a645eb 100644 --- a/constants/music_constants.asm +++ b/constants/music_constants.asm @@ -170,6 +170,7 @@ const SFX_FAINT_FALL const SFX_BATTLE_09 const SFX_POUND + const SFX_ICE const SFX_BATTLE_0B const SFX_BATTLE_0C const SFX_BATTLE_0D diff --git a/crysaudio/sfx.asm b/crysaudio/sfx.asm index 83dd5f6d..fb8dae9e 100644 --- a/crysaudio/sfx.asm +++ b/crysaudio/sfx.asm @@ -254,6 +254,11 @@ Sfx_Pound: channel_count 1 channel 8, Sfx_Pound_Ch8 +SFX_Ice:: + channel_count 2 + channel 5, SFX_Ice_Ch5 + channel 8, SFX_Ice_Ch8 ; PureRGBnote: ADDED: new sound effect for ice moves + Sfx_MovePuzzlePiece: channel_count 1 channel 8, Sfx_MovePuzzlePiece_Ch8 @@ -4734,6 +4739,22 @@ Sfx_Psychic_Ch8: noise_note 15, 12, 2, 16 sound_ret +SFX_Ice_Ch5: + duty_cycle 3 + square_note 5, 14, 1, 1792 + square_note 3, 14, 1, 1920 + square_note 15, 15, 1, 1999 + square_note 1, 0, 1, 1984 + sound_loop 2, SFX_Ice_Ch5 + sound_ret + +SFX_Ice_Ch8: + noise_note 15, 8, 1, 34 + square_note 1, 0, 1, 1 + square_note 1, 0, 1, 1 + sound_loop 2, SFX_Ice_Ch8 + sound_ret + Sfx_Screech_Ch5: duty_cycle 2 square_note 15, 15, -7, 2016 diff --git a/crysaudio/sfx_pointers_red.asm b/crysaudio/sfx_pointers_red.asm index 4e4eba07..614eafc0 100644 --- a/crysaudio/sfx_pointers_red.asm +++ b/crysaudio/sfx_pointers_red.asm @@ -55,6 +55,7 @@ SFX: dba SFX_Faint_Fall dba SFX_Battle_09 dba SFX_Pound + dba SFX_Ice dba SFX_Battle_0B dba SFX_Battle_0C dba SFX_Battle_0D diff --git a/data/battle_anims/frame_blocks.asm b/data/battle_anims/frame_blocks.asm index 549c1c3c..1b203df8 100644 --- a/data/battle_anims/frame_blocks.asm +++ b/data/battle_anims/frame_blocks.asm @@ -122,6 +122,7 @@ FrameBlockPointers: dw FrameBlock77 dw FrameBlock78 dw FrameBlock79 + dw FrameBlock7a assert_table_length NUM_FRAMEBLOCKS FrameBlock01: @@ -1232,6 +1233,10 @@ FrameBlock79: db 1 ; # dbsprite 0, 0, 0, 0, $4e, 0 +FrameBlock7a: + db 1 ; # + dbsprite 0, 0, 0, 0, $1f, 0 + INCLUDE "data/battle_anims/base_coords.asm" FrameBlock00: diff --git a/data/battle_anims/subanimations.asm b/data/battle_anims/subanimations.asm index 9a502bcb..9952cb2b 100644 --- a/data/battle_anims/subanimations.asm +++ b/data/battle_anims/subanimations.asm @@ -88,6 +88,13 @@ SubanimationPointers: dw Subanim_0StarHigh dw Subanim_0FakeTears dw Subanim_0StarAscending ; Uppercut + dw SubanimationAmnesia + dw SubanimationAmnesia1 + dw SubanimationAmnesiaEnemy + dw SubanimationAmnesia1Enemy + dw Subanim_0PinJab + dw Subanim_0PinMissile + dw Subanim_0BarbJab assert_table_length NUM_SUBANIMS ; format: @@ -974,4 +981,46 @@ Subanim_0FakeTears: db FRAMEBLOCK_15, BASECOORD_98, FRAMEBLOCKMODE_00 db FRAMEBLOCK_16, BASECOORD_98, FRAMEBLOCKMODE_00 db FRAMEBLOCK_16, BASECOORD_98, FRAMEBLOCKMODE_00 + +SubanimationAmnesia: + subanim SUBANIMTYPE_COORDFLIP, 2 + db FRAMEBLOCK_52, BASECOORD_72, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_52, BASECOORD_77, FRAMEBLOCKMODE_00 + +SubanimationAmnesia1: + subanim SUBANIMTYPE_HVFLIP, 2 + db FRAMEBLOCK_39, BASECOORD_72, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_38, BASECOORD_72, FRAMEBLOCKMODE_00 + +SubanimationAmnesiaEnemy: + subanim SUBANIMTYPE_NORMAL, 2 + db FRAMEBLOCK_52, BASECOORD_01, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_52, BASECOORD_00, FRAMEBLOCKMODE_00 + +SubanimationAmnesia1Enemy: + subanim SUBANIMTYPE_NORMAL, 2 + db FRAMEBLOCK_39, BASECOORD_01, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_38, BASECOORD_01, FRAMEBLOCKMODE_00 + +Subanim_0PinJab: + subanim SUBANIMTYPE_HVFLIP, 5 + db FRAMEBLOCK_7A, BASECOORD_30, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_7A, BASECOORD_40, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_7A, BASECOORD_41, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_7A, BASECOORD_42, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_7A, BASECOORD_21, FRAMEBLOCKMODE_00 + +Subanim_0PinMissile: + subanim SUBANIMTYPE_HVFLIP, 3 + db FRAMEBLOCK_7A, BASECOORD_41, FRAMEBLOCKMODE_02 + db FRAMEBLOCK_7A, BASECOORD_42, FRAMEBLOCKMODE_02 + db FRAMEBLOCK_7A, BASECOORD_21, FRAMEBLOCKMODE_00 + +Subanim_0BarbJab: + subanim SUBANIMTYPE_HVFLIP, 4 + db FRAMEBLOCK_6D, BASECOORD_4E, FRAMEBLOCKMODE_02 + db FRAMEBLOCK_6D, BASECOORD_42, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_6D, BASECOORD_23, FRAMEBLOCKMODE_02 + db FRAMEBLOCK_6D, BASECOORD_21, FRAMEBLOCKMODE_02 + diff --git a/data/moves/animations.asm b/data/moves/animations.asm index 4aee11f0..6814fa90 100644 --- a/data/moves/animations.asm +++ b/data/moves/animations.asm @@ -225,6 +225,8 @@ AttackAnimationPointers: dw HidePicAnim dw ThrowRockAnim dw ThrowBaitAnim + dw AmnesiaEnemyAnim + dw FakeTearsEnemyAnim assert_table_length NUM_ATTACK_ANIMS dw ZigZagScreenAnim @@ -255,7 +257,12 @@ ZigZagScreenAnim: db -1 ; end PoundAnim: + battle_anim POUND, SUBANIM_0_STAR_TWICE, 0, 8 + db -1 ; end + StruggleAnim: + battle_anim AMNESIA, SE_SHAKE_BACK_AND_FORTH + battle_anim NO_MOVE, SE_RESET_MON_POSITION battle_anim POUND, SUBANIM_0_STAR_TWICE, 0, 8 db -1 ; end @@ -292,18 +299,20 @@ PayDayAnim: FirePunchAnim: battle_anim FIRE_PUNCH, SUBANIM_0_STAR_THRICE, 0, 6 - battle_anim NO_MOVE, SUBANIM_1_FLAMES, 1, 6 + battle_anim NO_MOVE, SE_DELAY_ANIMATION_10 + battle_anim FLAMETHROWER, SUBANIM_1_FLAMES, 1, 6 db -1 ; end IcePunchAnim: battle_anim ICE_PUNCH, SUBANIM_0_STAR_THRICE, 0, 6 - battle_anim NO_MOVE, SUBANIM_0_ICE_RISE, 0, 16 + battle_anim ROCK_THROW, SUBANIM_0_ICE_RISE, 0, 16 db -1 ; end ThunderPunchAnim: battle_anim THUNDERPUNCH, SUBANIM_0_STAR_THRICE, 0, 6 battle_anim NO_MOVE, SE_DARK_SCREEN_PALETTE - battle_anim NO_MOVE, SUBANIM_1_LIGHTNING, 1, 6 + battle_anim NO_MOVE, SE_DELAY_ANIMATION_10 + battle_anim SKY_ATTACK, SUBANIM_1_LIGHTNING, 1, 6 battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE db -1 ; end @@ -330,6 +339,7 @@ SwordsDanceAnim: battle_anim SWORDS_DANCE, SUBANIM_1_SWORDS_CIRCLING, 1, 6 battle_anim SWORDS_DANCE, SUBANIM_1_SWORDS_CIRCLING, 1, 6 battle_anim SWORDS_DANCE, SUBANIM_1_SWORDS_CIRCLING, 1, 6 + battle_anim DOUBLE_TEAM, SE_SHOOT_MANY_BALLS_UPWARD db -1 ; end CutAnim: @@ -338,6 +348,9 @@ CutAnim: db -1 ; end FairyWindAnim: + battle_anim WHIRLWIND, SUBANIM_1_TORNADO, 1, 6 + db -1 ; end + GustAnim: battle_anim GUST, SUBANIM_1_TORNADO, 1, 6 battle_anim NO_MOVE, SUBANIM_0_STAR_THRICE, 0, 6 @@ -388,12 +401,19 @@ MegaKickAnim: db -1 ; end JumpKickAnim: - battle_anim JUMP_KICK, SUBANIM_1_STAR_BIG_MOVING, 1, 6 + battle_anim NO_MOVE, SE_SLIDE_MON_DOWN + battle_anim BUBBLE, SE_SHOW_MON_PIC + battle_anim NO_MOVE, SE_DELAY_ANIMATION_10 + battle_anim NO_MOVE, SE_DELAY_ANIMATION_10 + battle_anim JUMP_KICK, SUBANIM_0_STAR_ASCENDING, 0, 8 db -1 ; end RollingKickAnim: + battle_anim GROWTH, SE_SHAKE_BACK_AND_FORTH + battle_anim NO_MOVE, SE_MOVE_MON_HORIZONTALLY battle_anim ROLLING_KICK, SE_DARK_SCREEN_FLASH battle_anim NO_MOVE, SUBANIM_1_STAR_BIG_MOVING, 1, 6 + battle_anim NO_MOVE, SE_RESET_MON_POSITION db -1 ; end SandAttackAnim: @@ -446,10 +466,22 @@ TakeDownAnim: db -1 ; end ThrashAnim: - battle_anim THRASH, SUBANIM_1_STAR_BIG_MOVING, 1, 6 + battle_anim GROWTH, SE_SHAKE_BACK_AND_FORTH + battle_anim NO_MOVE, SE_MOVE_MON_HORIZONTALLY + battle_anim THRASH, SE_DARK_SCREEN_FLASH + battle_anim NO_MOVE, SUBANIM_1_STAR_BIG_MOVING, 1, 6 + battle_anim NO_MOVE, SE_RESET_MON_POSITION db -1 ; end IronHeadAnim: + battle_anim FLASH, SE_LIGHT_SCREEN_PALETTE + battle_anim NO_MOVE, SUBANIM_0_CIRCLES_CENTERING, 0, 6 + battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE + battle_anim NO_MOVE, SE_MOVE_MON_HORIZONTALLY + battle_anim DOUBLE_EDGE, SE_DARK_SCREEN_FLASH + battle_anim NO_MOVE, SE_RESET_MON_POSITION + db -1 ; end + DoubleEdgeAnim: battle_anim LEECH_SEED, SE_LIGHT_SCREEN_PALETTE battle_anim NO_MOVE, SUBANIM_0_CIRCLES_CENTERING, 0, 6 @@ -470,15 +502,23 @@ TailWhipAnim: db -1 ; end PoisonStingAnim: + battle_anim NO_MOVE, SUBANIM_0_PIN_JAB, 0, 1 battle_anim POISON_STING, SUBANIM_0_STAR, 0, 6 db -1 ; end TwineedleAnim: - battle_anim TWINEEDLE, SUBANIM_0_STAR_TWICE, 0, 5 - battle_anim TWINEEDLE, SUBANIM_0_STAR_TWICE, 0, 5 + battle_anim NO_MOVE, SE_MOVE_MON_HORIZONTALLY + battle_anim NO_MOVE, SUBANIM_0_BARB_JAB, 0, 1 + battle_anim TWINEEDLE, SUBANIM_0_STAR_TWICE, 0, 3 + battle_anim NO_MOVE, SE_RESET_MON_POSITION + battle_anim NO_MOVE, SUBANIM_0_BARB_JAB, 0, 1 + battle_anim TWINEEDLE, SUBANIM_0_STAR_TWICE, 0, 3 db -1 ; end PinMissileAnim: + battle_anim POISON_STING, SUBANIM_0_PIN_MISSILE, 0, 1 + battle_anim POISON_STING, SUBANIM_0_PIN_MISSILE, 0, 1 + battle_anim PIN_MISSILE, SUBANIM_0_STAR_TWICE, 0, 1 battle_anim PIN_MISSILE, SUBANIM_0_STAR_TWICE, 0, 3 db -1 ; end @@ -552,7 +592,10 @@ WaterGunAnim: db -1 ; end HydroPumpAnim: - battle_anim HYDRO_PUMP, SUBANIM_0_WATER_COLUMNS, 0, 6 + battle_anim SCRATCH, SE_MOVE_MON_HORIZONTALLY + battle_anim SCRATCH, SE_RESET_MON_POSITION + battle_anim NO_MOVE, SE_DELAY_ANIMATION_10 + battle_anim SKULL_BASH, SUBANIM_0_BEAM, 0, 3 battle_anim HYDRO_PUMP, SUBANIM_0_WATER_COLUMNS, 0, 6 db -1 ; end @@ -562,19 +605,22 @@ SurfAnim: db -1 ; end IceBeamAnim: + battle_anim CONFUSE_RAY, SE_LIGHT_SCREEN_PALETTE + battle_anim NO_MOVE, SE_DELAY_ANIMATION_10 battle_anim ICE_BEAM, SUBANIM_0_BEAM, 0, 3 - battle_anim NO_MOVE, SUBANIM_0_ICE_RISE, 0, 16 + battle_anim ROCK_THROW, SUBANIM_0_ICE_RISE, 0, 16 + battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE db -1 ; end PowderSnowAnim: - battle_anim BLIZZARD, SUBANIM_0_CIRCLES_FALLING, 0, 6 - battle_anim NO_MOVE, SUBANIM_0_ICE_RISE, 0, 16 + battle_anim LEECH_SEED, SUBANIM_0_CIRCLES_FALLING, 0, 6 + battle_anim ROCK_THROW, SUBANIM_0_ICE_RISE, 0, 16 db -1 ; end BlizzardAnim: battle_anim NO_MOVE, SE_DARK_SCREEN_PALETTE battle_anim BLIZZARD, SUBANIM_0_ICE_FALL, 0, 4 - battle_anim NO_MOVE, SUBANIM_0_ICE_RISE, 0, 16 + battle_anim ROCK_THROW, SUBANIM_0_ICE_RISE, 0, 16 battle_anim NO_MOVE, SE_DARK_SCREEN_FLASH battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE ;battle_anim HYDRO_PUMP, SUBANIM_0_ICE_FALL, 0, 4 so for some reason, this causes hydro pump's proper sound to play when you use crysaudio. Instead of all this jank, now we're having the ice rise like Ice Beam. If you're using crysaudio and have problems with this, here's your solution. @@ -590,9 +636,12 @@ BubbleBeamAnim: db -1 ; end AuroraBeamAnim: - battle_anim AURORA_BEAM, SUBANIM_0_BEAM, 0, 3 + battle_anim BUBBLE, SE_LIGHT_SCREEN_PALETTE + battle_anim NO_MOVE, SE_DELAY_ANIMATION_10 + battle_anim AURORA_BEAM, SUBANIM_0_BEAM, 0, 2 battle_anim NO_MOVE, SE_DELAY_ANIMATION_10 battle_anim NO_MOVE, SE_DELAY_ANIMATION_10 + battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE db -1 ; end HyperBeamAnim: @@ -611,8 +660,21 @@ DrillPeckAnim: battle_anim DRILL_PECK, SUBANIM_1_STAR_BIG_MOVING, 1, 6 db -1 ; end -BrutalSwingAnim: SubmissionAnim: + battle_anim SUBMISSION, SE_MOVE_MON_HORIZONTALLY + battle_anim NO_MOVE, SUBANIM_0_STAR_TWICE, 0, 6 + battle_anim NO_MOVE, SE_DELAY_ANIMATION_10 + battle_anim NO_MOVE, SE_DELAY_ANIMATION_10 + battle_anim NO_MOVE, SE_RESET_MON_POSITION + battle_anim REST, SE_SLIDE_MON_DOWN + battle_anim NO_MOVE, SE_SHOW_MON_PIC + battle_anim NO_MOVE, SE_LIGHT_SCREEN_PALETTE + battle_anim NO_MOVE, SUBANIM_0_CIRCLE_1_SQUARE_CLOSING, 1, 1 + battle_anim NO_MOVE, SE_DARK_SCREEN_FLASH + battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE + db -1 ; end + +BrutalSwingAnim: battle_anim SUBMISSION, SE_SLIDE_MON_OFF battle_anim NO_MOVE, SUBANIM_0_STAR_TWICE, 0, 6 battle_anim NO_MOVE, SE_SHOW_MON_PIC @@ -651,6 +713,13 @@ StrengthAnim: db -1 ; end DrainingKissAnim: + battle_anim LOVELY_KISS, SUBANIM_0_HEART_1_MUSIC, 0, 6 + battle_anim ABSORB, SE_LIGHT_SCREEN_PALETTE + battle_anim NO_MOVE, SUBANIM_0_CIRCLES_1_SQUARES_CENTERING_ENEMY, 0, 6 + battle_anim NO_MOVE, SUBANIM_0_CIRCLE_1_SQUARE_TOSS_BACK, 0, 6 + battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE + db -1 ; end + AbsorbAnim: battle_anim ABSORB, SE_LIGHT_SCREEN_PALETTE battle_anim NO_MOVE, SUBANIM_0_CIRCLES_1_SQUARES_CENTERING_ENEMY, 0, 6 @@ -674,8 +743,11 @@ LeechSeedAnim: GrowthAnim: battle_anim GROWTH, SE_LIGHT_SCREEN_PALETTE - battle_anim NO_MOVE, SE_SPIRAL_BALLS_INWARD + battle_anim NO_MOVE, SUBANIM_0_CIRCLES_CENTERING, 0, 2 + battle_anim NO_MOVE, SUBANIM_0_CIRCLES_CENTERING, 0, 2 + battle_anim NO_MOVE, SUBANIM_0_CIRCLES_CENTERING, 0, 2 battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE + battle_anim MIMIC, SE_SHOOT_MANY_BALLS_UPWARD db -1 ; end RazorLeafAnim: @@ -690,15 +762,22 @@ SolarBeamAnim: db -1 ; end PoisonPowderAnim: + battle_anim NO_MOVE, SE_DARKEN_MON_PALETTE battle_anim POISONPOWDER, SUBANIM_0_CIRCLES_FALLING, 0, 6 + battle_anim POISONPOWDER, SE_RESET_SCREEN_PALETTE db -1 ; end StunSporeAnim: + battle_anim NO_MOVE, SE_LIGHT_SCREEN_PALETTE + battle_anim STUN_SPORE, SE_DELAY_ANIMATION_10 + battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE battle_anim STUN_SPORE, SUBANIM_0_CIRCLES_FALLING, 0, 6 db -1 ; end SleepPowderAnim: + battle_anim NO_MOVE, SE_LIGHT_SCREEN_PALETTE battle_anim SLEEP_POWDER, SUBANIM_0_CIRCLES_FALLING, 0, 6 + battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE db -1 ; end PetalDanceAnim: @@ -713,9 +792,11 @@ StringShotAnim: DragonRageAnim: battle_anim DRAGON_RAGE, SUBANIM_1_FLAME_BEAM, 1, 6 + battle_anim NO_MOVE, SUBANIM_1_FLAME_BEAM, 1, 3 + battle_anim NO_MOVE, SUBANIM_1_FLAME_BEAM, 1, 3 + battle_anim NO_MOVE, SUBANIM_1_FLAME_BEAM, 1, 3 battle_anim NO_MOVE, SUBANIM_1_FLAME_COLUMN_1, 1, 6 battle_anim NO_MOVE, SUBANIM_1_FLAME_COLUMN_2, 1, 6 - battle_anim NO_MOVE, SUBANIM_1_FLAME_COLUMN_3, 1, 6 db -1 ; end FireSpinAnim: @@ -752,7 +833,7 @@ ThunderAnim: db -1 ; end RockThrowAnim: - battle_anim ROCK_THROW, SUBANIM_0_ROCKS_FALL_ENEMY, 0, 4 + battle_anim VICEGRIP, SUBANIM_0_ROCKS_FALL_ENEMY, 0, 4 db -1 ; end EarthquakeAnim: @@ -798,8 +879,8 @@ MeditateAnim: db -1 ; end AgilityAnim: - battle_anim AGILITY, SE_LIGHT_SCREEN_PALETTE - battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE + battle_anim AGILITY, SE_SHAKE_BACK_AND_FORTH + battle_anim BARRIER, SE_SHOW_MON_PIC db -1 ; end FeintAttackAnim: @@ -820,7 +901,9 @@ TeleportAnim: NightShadeAnim: battle_anim CONFUSION, SE_FLASH_SCREEN_LONG + battle_anim NO_MOVE, SE_DARK_SCREEN_PALETTE battle_anim NO_MOVE, SE_WAVY_SCREEN + battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE db -1 ; end MimicAnim: @@ -846,9 +929,9 @@ DoubleTeamAnim: db -1 ; end RecoverAnim: - battle_anim RECOVER, SE_BLINK_MON + battle_anim CONFUSE_RAY, SE_BLINK_MON battle_anim NO_MOVE, SE_LIGHT_SCREEN_PALETTE - battle_anim NO_MOVE, SE_SPIRAL_BALLS_INWARD + battle_anim RECOVER, SE_SPIRAL_BALLS_INWARD battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE db -1 ; end @@ -891,7 +974,6 @@ ConfuseRayAnim: battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE db -1 ; end -;ShelterAnim: WithdrawAnim: battle_anim DEFENSE_CURL, SE_LIGHT_SCREEN_PALETTE battle_anim NO_MOVE, SE_SLIDE_MON_DOWN @@ -933,7 +1015,9 @@ ReflectAnim: db -1 ; end FocusEnergyAnim: - battle_anim FOCUS_ENERGY, SE_SPIRAL_BALLS_INWARD + battle_anim FOCUS_ENERGY, SE_LIGHT_SCREEN_PALETTE + battle_anim NO_MOVE, SE_SHOOT_MANY_BALLS_UPWARD + battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE db -1 ; end BideAnim: @@ -960,8 +1044,9 @@ SelfdestructAnim: MagnetBombAnim: EggBombAnim: - battle_anim EGG_BOMB, SUBANIM_1_CIRCLE_BLACK_TOSS, 1, 4 + battle_anim BARRAGE, SUBANIM_1_CIRCLE_BLACK_TOSS, 1, 4 battle_anim EGG_BOMB, SUBANIM_1_EXPLOSION_SMALL_ENEMY, 1, 4 + battle_anim NO_MOVE, SE_DARK_SCREEN_FLASH db -1 ; end LickAnim: @@ -1013,7 +1098,10 @@ SkullBashAnim: db -1 ; end SpikeCannonAnim: - battle_anim SPIKE_CANNON, SUBANIM_1_STAR_BIG_MOVING, 1, 4 + battle_anim SWIFT, SUBANIM_0_PIN_JAB, 0, 1 + battle_anim SPIKE_CANNON, SUBANIM_1_STAR_BIG_MOVING, 1, 3 + battle_anim SWIFT, SUBANIM_0_PIN_JAB, 0, 1 + battle_anim SPIKE_CANNON, SUBANIM_1_STAR_BIG_MOVING, 1, 3 db -1 ; end ConstrictAnim: @@ -1024,12 +1112,14 @@ ConstrictAnim: NastyPlotAnim: AmnesiaAnim: - battle_anim AMNESIA, SUBANIM_0_STATUS_CONFUSED, 0, 8 - battle_anim AMNESIA, SUBANIM_0_STATUS_CONFUSED, 0, 8 + battle_anim MEGA_DRAIN, SUBANIM_AMNESIA1, 1, 2 + battle_anim KINESIS, SUBANIM_AMNESIA, 0, 16 + battle_anim DOUBLE_TEAM, SE_SHOOT_MANY_BALLS_UPWARD db -1 ; end KinesisAnim: - battle_anim KINESIS, SUBANIM_0_STAR_TWICE, 0, 8 + battle_anim RAZOR_LEAF, SE_WAVY_SCREEN + battle_anim KINESIS, SE_DARK_SCREEN_FLASH db -1 ; end SoftboiledAnim: @@ -1042,7 +1132,15 @@ SoftboiledAnim: db -1 ; end HiJumpKickAnim: - battle_anim HI_JUMP_KICK, SUBANIM_1_STAR_BIG_MOVING, 1, 6 + battle_anim NO_MOVE, SE_SQUISH_MON_PIC + battle_anim HI_JUMP_KICK, SE_SHOOT_BALLS_UPWARD + battle_anim NO_MOVE, SE_DELAY_ANIMATION_10 + battle_anim NO_MOVE, SE_DELAY_ANIMATION_10 + battle_anim NO_MOVE, SE_DELAY_ANIMATION_10 + battle_anim TAKE_DOWN, SUBANIM_0_STAR_ASCENDING, 1, 6 + battle_anim NO_MOVE, SE_DARK_SCREEN_FLASH + battle_anim NO_MOVE, SE_SLIDE_MON_DOWN + battle_anim NO_MOVE, SE_SHOW_MON_PIC db -1 ; end GlareAnim: @@ -1052,9 +1150,11 @@ GlareAnim: db -1 ; end DreamEaterAnim: - battle_anim DREAM_EATER, SE_FLASH_SCREEN_LONG - battle_anim DREAM_EATER, SE_DARK_SCREEN_PALETTE - battle_anim DREAM_EATER, SUBANIM_0_STAR_THRICE, 0, 8 + battle_anim HYPNOSIS, SE_FLASH_SCREEN_LONG + battle_anim NO_MOVE, SE_DARK_SCREEN_PALETTE + battle_anim NO_MOVE, SUBANIM_0_STAR_THRICE, 0, 8 + battle_anim HYPNOSIS, SUBANIM_0_CIRCLES_1_SQUARES_CENTERING_ENEMY, 0, 6 + battle_anim NO_MOVE, SUBANIM_0_CIRCLE_1_SQUARE_TOSS_BACK, 0, 6 battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE db -1 ; end @@ -1084,8 +1184,8 @@ LovelyKissAnim: SkyAttackAnim: battle_anim SKY_ATTACK, SE_SQUISH_MON_PIC battle_anim NO_MOVE, SE_SHOOT_BALLS_UPWARD - battle_anim HI_JUMP_KICK, SUBANIM_1_STAR_BIG_MOVING, 1, 6 - battle_anim NO_MOVE, SE_SHOW_MON_PIC + battle_anim GLARE, SUBANIM_1_EXPLOSION_SMALL_ENEMY, 0, 6 + battle_anim BARRIER, SE_SHOW_MON_PIC db -1 ; end TransformAnim: @@ -1109,12 +1209,17 @@ DizzyPunchAnim: SporeAnim: battle_anim SPORE, SUBANIM_0_CIRCLES_FALLING, 0, 6 db -1 ; end - -DazzleGleamAnim: + FlashAnim: battle_anim GLARE, SE_DARK_SCREEN_FLASH battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE db -1 ; end + +DazzleGleamAnim: + battle_anim GLARE, SE_DARK_SCREEN_FLASH + battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE + battle_anim DOUBLE_TEAM, SE_WAVY_SCREEN + db -1 ; end PsywaveAnim: battle_anim SUPERSONIC, SUBANIM_0_SOUND_WAVE, 0, 6 @@ -1162,6 +1267,7 @@ RockSlideAnim: HyperFangAnim: battle_anim HYPER_FANG, SUBANIM_0_STAR_THRICE, 0, 6 + battle_anim NO_MOVE, SE_DARK_SCREEN_FLASH db -1 ; end SharpenAnim: @@ -1179,10 +1285,19 @@ ConversionAnim: db -1 ; end MirrorShotAnim: -TriAttackAnim: battle_anim TRI_ATTACK, SE_DARK_SCREEN_FLASH battle_anim NO_MOVE, SUBANIM_1_TRIANGLE_TOSS, 1, 6 battle_anim NO_MOVE, SE_DARK_SCREEN_FLASH + +TriAttackAnim: + battle_anim TRI_ATTACK, SUBANIM_1_TRIANGLE_TOSS, 1, 6 + battle_anim FLAMETHROWER, SUBANIM_1_FLAME_COLUMN_3, 1, 4 + battle_anim NO_MOVE, SE_LIGHT_SCREEN_PALETTE + battle_anim PAY_DAY, SUBANIM_0_ICE_RISE, 0, 2 + battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE + battle_anim NO_MOVE, SE_DARK_SCREEN_PALETTE + battle_anim THUNDER, SUBANIM_1_LIGHTNING, 1, 4 + battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE db -1 ; end SuperFangAnim: @@ -1206,11 +1321,21 @@ SmartStrikeAnim: battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE battle_anim SLASH, SUBANIM_0_HORN_JAB_TWICE, 0, 6 battle_anim NO_MOVE, SUBANIM_1_STAR_BIG, 1, 6 - ;battle_anim SCRATCH, SUBANIM_0_SCRATCHES, 0, 6 db -1 ; end FakeTearsAnim: - battle_anim WATER_GUN, SUBANIM_0_FAKE_TEARS, 0, 6 + battle_anim AMNESIA, SE_MOVE_MON_HORIZONTALLY + battle_anim NO_MOVE, SE_DELAY_ANIMATION_10 + battle_anim NO_MOVE, SE_RESET_MON_POSITION + battle_anim NO_MOVE, SE_DELAY_ANIMATION_10 + battle_anim AMNESIA, SE_MOVE_MON_HORIZONTALLY + battle_anim NO_MOVE, SE_DELAY_ANIMATION_10 + battle_anim NO_MOVE, SE_RESET_MON_POSITION + battle_anim ROAR, SUBANIM_1_SHOUT, 1, 6 + battle_anim NO_MOVE, SUBANIM_1_SHOUT, 1, 6 + battle_anim NO_MOVE, SE_DARKEN_MON_PALETTE + battle_anim NO_MOVE, SE_SHAKE_ENEMY_HUD + battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE db -1 ; end FalseSurrenderAnim: @@ -1367,3 +1492,24 @@ ThrowRockAnim: ThrowBaitAnim: battle_anim BARRAGE, SUBANIM_0_SAFARI_BAIT, 0, 3 db -1 ; end + +AmnesiaEnemyAnim: + battle_anim MEGA_DRAIN, SUBANIM_AMNESIA1_ENEMY, 1, 2 + battle_anim KINESIS, SUBANIM_AMNESIA_ENEMY, 0, 16 + battle_anim DOUBLE_TEAM, SE_SHOOT_MANY_BALLS_UPWARD + db -1 ; end + +FakeTearsEnemyAnim: + battle_anim AMNESIA, SE_MOVE_MON_HORIZONTALLY + battle_anim NO_MOVE, SE_DELAY_ANIMATION_10 + battle_anim NO_MOVE, SE_RESET_MON_POSITION + battle_anim NO_MOVE, SE_DELAY_ANIMATION_10 + battle_anim AMNESIA, SE_MOVE_MON_HORIZONTALLY + battle_anim NO_MOVE, SE_DELAY_ANIMATION_10 + battle_anim NO_MOVE, SE_RESET_MON_POSITION + battle_anim ROAR, SUBANIM_1_SHOUT, 1, 6 + battle_anim NO_MOVE, SUBANIM_1_SHOUT, 1, 6 + battle_anim NO_MOVE, SE_DARKEN_MON_PALETTE + battle_anim NO_MOVE, SE_SHAKE_SCREEN + battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE + db -1 ; end diff --git a/data/moves/sfx.asm b/data/moves/sfx.asm index 8f735c0c..c959ea83 100644 --- a/data/moves/sfx.asm +++ b/data/moves/sfx.asm @@ -88,7 +88,7 @@ MoveSoundTable: db SFX_BATTLE_2F, $20, $80 ; THUNDERBOLT db SFX_BATTLE_2E, $12, $60 ; THUNDER_WAVE db SFX_BATTLE_26, $00, $80 ; THUNDER - db SFX_BATTLE_14, $01, $e0 ; ROCK_THROW + db SFX_ICE, $01, $e0 ; ROCK_THROW db SFX_BATTLE_29, $0f, $e0 ; EARTHQUAKE db SFX_BATTLE_29, $11, $20 ; FISSURE db SFX_DAMAGE, $10, $40 ; DIG @@ -180,7 +180,7 @@ MoveSoundTable: db SFX_BATTLE_0B, $01, $80 ; BULLET_PUNCH db SFX_BATTLE_29, $e8, $ff ; MIRROR_SHOT db SFX_NOT_VERY_EFFECTIVE, $09, $ff ; SMART_STRIKE - db SFX_BATTLE_24, $30, $60 ; FAKE_TEARS + db SFX_BATTLE_0B, $00, $c0 ; FAKE_TEARS db SFX_BATTLE_20, $00, $60 ; FALSE_SURRENDER db SFX_NOT_VERY_EFFECTIVE, $11, $ff ; KOWTOW_CLEAVE db SFX_BATTLE_37, $10, $60 ; DISARMING_VOICE diff --git a/engine/battle/animations.asm b/engine/battle/animations.asm index 498575ac..49022da5 100644 --- a/engine/battle/animations.asm +++ b/engine/battle/animations.asm @@ -429,7 +429,15 @@ ShareMoveAnimations: ld a, [wAnimationID] cp AMNESIA - ld b, CONF_ANIM + ld b, AMNESIA_ENEMY_ANIM + jr z, .replaceAnim + + cp NASTY_PLOT + ld b, AMNESIA_ENEMY_ANIM + jr z, .replaceAnim + + cp FAKE_TEARS + ld b, FAKE_TEARS_ENEMY_ANIM jr z, .replaceAnim cp REST @@ -2232,6 +2240,10 @@ IsCryMove: jr z, .CryMove cp ROAR jr z, .CryMove + cp FAKE_TEARS + jr z, .CryMove + cp FAKE_TEARS_ENEMY_ANIM + jr z, .CryMove and a ; clear carry ret .CryMove diff --git a/main.asm b/main.asm index 005c056e..84324740 100644 --- a/main.asm +++ b/main.asm @@ -355,11 +355,11 @@ INCLUDE "engine/overworld/dust_smoke.asm" INCLUDE "data/moves/animations.asm" INCLUDE "data/battle_anims/subanimations.asm" INCLUDE "data/battle_anims/frame_blocks.asm" -INCLUDE "engine/movie/evolution.asm" -INCLUDE "engine/overworld/elevator.asm" SECTION "Engine Spillover", ROMX +INCLUDE "engine/movie/evolution.asm" +INCLUDE "engine/overworld/elevator.asm" INCLUDE "engine/menus/item_descriptions.asm" INCLUDE "engine/items/tm_prices.asm" INCLUDE "engine/overworld/ferry_script.asm"