From d819b1d26df427ca69ca2374aeb00ec4c0d57e01 Mon Sep 17 00:00:00 2001 From: scawful Date: Thu, 28 Nov 2024 19:49:10 -0500 Subject: [PATCH] Add recoiling behavior to a variety of custom sprites --- Sprites/Bosses/wolfos.asm | 2 +- Sprites/Enemies/anti_kirby.asm | 2 +- Sprites/Enemies/booki.asm | 1 + Sprites/Enemies/darknut.asm | 2 ++ Sprites/Enemies/goriya.asm | 2 ++ Sprites/Enemies/puffstool.asm | 4 ++-- Sprites/Enemies/sea_urchin.asm | 2 +- Sprites/Enemies/thunder_ghost.asm | 2 +- 8 files changed, 11 insertions(+), 6 deletions(-) diff --git a/Sprites/Bosses/wolfos.asm b/Sprites/Bosses/wolfos.asm index e909a13..c158c55 100644 --- a/Sprites/Bosses/wolfos.asm +++ b/Sprites/Bosses/wolfos.asm @@ -90,7 +90,7 @@ Wolfos_Move: + JSL Sprite_PlayerCantPassThrough JSL Sprite_BounceFromTileCollision - + JSL Sprite_CheckIfRecoiling JSL Sprite_Move JSR Wolfos_DecideAction RTS diff --git a/Sprites/Enemies/anti_kirby.asm b/Sprites/Enemies/anti_kirby.asm index 42a04bf..82c1c72 100644 --- a/Sprites/Enemies/anti_kirby.asm +++ b/Sprites/Enemies/anti_kirby.asm @@ -80,7 +80,7 @@ Sprite_AntiKirby_Main: + JSL Sprite_DamageFlash_Long - + JSL Sprite_CheckIfRecoiling LDA.w SprAction, X JSL UseImplicitRegIndexedLocalJumpTable diff --git a/Sprites/Enemies/booki.asm b/Sprites/Enemies/booki.asm index 069b02b..00375c1 100644 --- a/Sprites/Enemies/booki.asm +++ b/Sprites/Enemies/booki.asm @@ -120,6 +120,7 @@ Sprite_Booki_Move: JSL Sprite_BounceFromTileCollision JSL Sprite_PlayerCantPassThrough JSL Sprite_DamageFlash_Long + JSL Sprite_CheckIfRecoiling JSL Sprite_IsToRightOfPlayer : CPY.b #$01 : BNE .ToRight LDA.b #$01 : STA.w SprMiscC, X diff --git a/Sprites/Enemies/darknut.asm b/Sprites/Enemies/darknut.asm index ff4635c..352a7e8 100644 --- a/Sprites/Enemies/darknut.asm +++ b/Sprites/Enemies/darknut.asm @@ -86,6 +86,8 @@ Sprite_Darknut_Main: JSL Sprite_PlayerCantPassThrough JSL Sprite_DamageFlash_Long + JSL Sprite_CheckIfRecoiling + LDA.w SprTimerA, X : BEQ + LDA.b #$40 : STA.w SprTimerD, X + diff --git a/Sprites/Enemies/goriya.asm b/Sprites/Enemies/goriya.asm index ec9c599..b769361 100644 --- a/Sprites/Enemies/goriya.asm +++ b/Sprites/Enemies/goriya.asm @@ -195,6 +195,8 @@ Sprite_Goriya_Move: JSL Sprite_CheckDamageToPlayer JSL Sprite_CheckDamageFromPlayer + JSL Sprite_CheckIfRecoiling + JSR Goriya_HandleTileCollision LDA.w SprTimerD, X : BNE ++ diff --git a/Sprites/Enemies/puffstool.asm b/Sprites/Enemies/puffstool.asm index 3b534a1..2c22572 100644 --- a/Sprites/Enemies/puffstool.asm +++ b/Sprites/Enemies/puffstool.asm @@ -56,7 +56,7 @@ Sprite_Puffstool_Prep: RTL .health - db $04, $08, $1A, $20 + db $04, $08, $0A, $10 } ; ========================================================= @@ -85,7 +85,7 @@ Sprite_Puffstool_Main: JSL Sprite_BounceOffWall JSL Sprite_DamageFlash_Long JSL ThrownSprite_TileAndSpriteInteraction_long - + JSL Sprite_CheckIfRecoiling JSL Sprite_CheckDamageFromPlayer : BCC .no_dano %GotoAction(1) %SetTimerA($60) diff --git a/Sprites/Enemies/sea_urchin.asm b/Sprites/Enemies/sea_urchin.asm index b2d69c2..2d4db8a 100644 --- a/Sprites/Enemies/sea_urchin.asm +++ b/Sprites/Enemies/sea_urchin.asm @@ -6,7 +6,7 @@ !NbrTiles = 04 ; Number of tiles used in a frame !Harmless = 00 ; 00 = Sprite is Harmful, 01 = Sprite is Harmless !HVelocity = 00 ; Is your sprite going super fast? put 01 if it is -!Health = 04 ; Number of Health the sprite have +!Health = 06 ; Number of Health the sprite have !Damage = 04 ; (08 is a whole heart), 04 is half heart !DeathAnimation = 00 ; 00 = normal death, 01 = no death animation !ImperviousAll = 00 ; 00 = Can be attack, 01 = attack will clink on it diff --git a/Sprites/Enemies/thunder_ghost.asm b/Sprites/Enemies/thunder_ghost.asm index f291dec..1e475ae 100644 --- a/Sprites/Enemies/thunder_ghost.asm +++ b/Sprites/Enemies/thunder_ghost.asm @@ -128,7 +128,7 @@ Sprite_ThunderGhost_Move: JSL Sprite_BounceFromTileCollision JSL Sprite_PlayerCantPassThrough JSL Sprite_DamageFlash_Long - + JSL Sprite_CheckIfRecoiling JSL GetRandomInt : AND #$7F : BNE ++ JSR SpawnLightningAttack ++