From 1e7bf4d727c74a5e379b84f7bfde398cfc04f74d Mon Sep 17 00:00:00 2001 From: scawful Date: Fri, 13 Dec 2024 10:16:39 -0500 Subject: [PATCH] Update MagicBean to check for GoodBee hitbox overlap --- Sprites/NPCs/bean_vendor.asm | 31 +++++++++++++++++++++++-------- 1 file changed, 23 insertions(+), 8 deletions(-) diff --git a/Sprites/NPCs/bean_vendor.asm b/Sprites/NPCs/bean_vendor.asm index 993848d..f01309d 100644 --- a/Sprites/NPCs/bean_vendor.asm +++ b/Sprites/NPCs/bean_vendor.asm @@ -58,7 +58,11 @@ Sprite_BeanVendor_Prep: LDA.b #$80 : STA.w SprDefl, X ; Persist in dungeons LDA.b #$40 : STA.w SprTimerA, X LDA.w SprSubtype, X : STA.w SprAction, X + LDA.b $8A : CMP.b #$00 : BNE + + LDA.l MagicBeanProg : BNE .in_progress + STZ.w SprState, X + .in_progress ; Sprite is the flower on ranch map LDA.b #$04 : STA.w SprAction, X + @@ -70,14 +74,8 @@ Sprite_BeanVendor_Prep: Sprite_BeanVendor_Main: { - LDA.w SprAction, X - JSL UseImplicitRegIndexedLocalJumpTable - - dw BeanVendor - dw MagicBean - dw SpawnMagicBean - dw PlayerSaidNo - dw MagicBean_RanchFlower + %SpriteJumpTable(BeanVendor, MagicBean, SpawnMagicBean, + PlayerSaidNo, MagicBean_RanchFlower) ; 0x00 - Bean Vendor BeanVendor: @@ -185,6 +183,23 @@ Sprite_BeanVendor_Main: MagicBean_RanchFlower: { LDA.b #$04 : STA.w SprFrame, X + + ; Check for the good bee + LDA.l MagicBeanProg : AND.b #$02 : BEQ + + LDA.b #$B2 : STA.b $00 + ; bee sprite ID + JSL Sprite_CheckForPresence : BCC + + PHX + LDA.b $02 : TAX + JSL Sprite_SetupHitBox + PLX + JSL Sprite_SetupHitBox_Alt + JSL CheckIfHitboxesOverlap : BCC + + LDA.l MagicBeanProg + ORA.l #$02 : STA.l MagicBeanProg + ; Set a timer and maybe a jingle effect? + + + JSL ThrownSprite_TileAndSpriteInteraction_long RTS }