Update MagicBean to check for GoodBee hitbox overlap

This commit is contained in:
scawful
2024-12-13 10:16:39 -05:00
parent 71f0471014
commit 1e7bf4d727

View File

@@ -58,7 +58,11 @@ Sprite_BeanVendor_Prep:
LDA.b #$80 : STA.w SprDefl, X ; Persist in dungeons LDA.b #$80 : STA.w SprDefl, X ; Persist in dungeons
LDA.b #$40 : STA.w SprTimerA, X LDA.b #$40 : STA.w SprTimerA, X
LDA.w SprSubtype, X : STA.w SprAction, X LDA.w SprSubtype, X : STA.w SprAction, X
LDA.b $8A : CMP.b #$00 : BNE + 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 ; Sprite is the flower on ranch map
LDA.b #$04 : STA.w SprAction, X LDA.b #$04 : STA.w SprAction, X
+ +
@@ -70,14 +74,8 @@ Sprite_BeanVendor_Prep:
Sprite_BeanVendor_Main: Sprite_BeanVendor_Main:
{ {
LDA.w SprAction, X %SpriteJumpTable(BeanVendor, MagicBean, SpawnMagicBean,
JSL UseImplicitRegIndexedLocalJumpTable PlayerSaidNo, MagicBean_RanchFlower)
dw BeanVendor
dw MagicBean
dw SpawnMagicBean
dw PlayerSaidNo
dw MagicBean_RanchFlower
; 0x00 - Bean Vendor ; 0x00 - Bean Vendor
BeanVendor: BeanVendor:
@@ -185,6 +183,23 @@ Sprite_BeanVendor_Main:
MagicBean_RanchFlower: MagicBean_RanchFlower:
{ {
LDA.b #$04 : STA.w SprFrame, X 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 JSL ThrownSprite_TileAndSpriteInteraction_long
RTS RTS
} }