make deku scrub enemy harmless, pea shot harmful

This commit is contained in:
scawful
2024-07-02 19:16:47 -04:00
parent 3919a0dc7b
commit b7d1b531e1

View File

@@ -3,7 +3,7 @@
!SPRID = $14 ; The sprite ID you are overwriting (HEX) !SPRID = $14 ; The sprite ID you are overwriting (HEX)
!NbrTiles = 03 ; Number of tiles used in a frame !NbrTiles = 03 ; Number of tiles used in a frame
!Harmless = 00 ; 00 = Sprite is Harmful, 01 = Sprite is Harmless !Harmless = 01 ; 00 = Sprite is Harmful, 01 = Sprite is Harmless
!HVelocity = 00 ; Is your sprite going super fast? put 01 if it is !HVelocity = 00 ; Is your sprite going super fast? put 01 if it is
!Health = 08 ; Number of Health the sprite have !Health = 08 ; Number of Health the sprite have
!Damage = 04 ; (08 is a whole heart), 04 is half heart !Damage = 04 ; (08 is a whole heart), 04 is half heart
@@ -33,17 +33,17 @@
Sprite_DekuScrubEnemy_Long: Sprite_DekuScrubEnemy_Long:
{ {
PHB : PHK : PLB PHB : PHK : PLB
JSR Sprite_DekuScrubEnemy_Draw ; Call the draw code JSR Sprite_DekuScrubEnemy_Draw ; Call the draw code
JSL Sprite_CheckActive ; Check if game is not paused JSL Sprite_CheckActive ; Check if game is not paused
BCC .SpriteIsNotActive ; Skip Main code is sprite is innactive BCC .SpriteIsNotActive ; Skip Main code is sprite is innactive
JSR Sprite_DekuScrubEnemy_Main ; Call the main sprite code JSR Sprite_DekuScrubEnemy_Main ; Call the main sprite code
.SpriteIsNotActive .SpriteIsNotActive
PLB ; Get back the databank we stored previously PLB ; Get back the databank we stored previously
RTL ; Go back to original code RTL ; Go back to original code
} }
; ========================================================= ; =========================================================
@@ -258,70 +258,70 @@ DekuScrub_GiveRandomPrize:
CheckForPeaShotRedirect: CheckForPeaShotRedirect:
{ {
LDA.w SprX, X : STA.b $00 LDA.w SprX, X : STA.b $00
LDA.w SprXH, X : STA.b $08 LDA.w SprXH, X : STA.b $08
LDA.b #$04 : STA.b $02 LDA.b #$04 : STA.b $02
STZ $03 STZ $03
LDA.w SprY, X : STA.b $01 LDA.w SprY, X : STA.b $01
LDA.w SprYH, X : STA.b $09 LDA.w SprYH, X : STA.b $09
PHX PHX
LDA.w Offspring1_Id : TAX LDA.w Offspring1_Id : TAX
JSL Sprite_SetupHitBox JSL Sprite_SetupHitBox
PLX PLX
JSL CheckIfHitBoxesOverlap : BCC .no_dano JSL CheckIfHitBoxesOverlap : BCC .no_dano
%GotoAction(3) %GotoAction(3)
RTS RTS
.no_dano .no_dano
; If the pea shot and deku scrub hitboxes intersect ; If the pea shot and deku scrub hitboxes intersect
; We will go to recoil ; We will go to recoil
PHX PHX
LDA.w Offspring1_Id : TAX LDA.w Offspring1_Id : TAX
JSL Sprite_SetupHitBox JSL Sprite_SetupHitBox
PLX PLX
JSL CheckIfHitBoxesOverlap : BCC .not_done2 JSL CheckIfHitBoxesOverlap : BCC .not_done2
%GotoAction(3) %GotoAction(3)
RTS RTS
.not_done2 .not_done2
RTS RTS
} }
SpawnPeaShot: SpawnPeaShot:
{ {
LDA.b #$14 LDA.b #$14
JSL Sprite_SpawnDynamically : BMI .return ;89 JSL Sprite_SpawnDynamically : BMI .return ;89
LDA.b #$01 : STA $0E30, Y LDA.b #$01 : STA $0E30, Y
LDA.b #$06 : STA $0D80, Y LDA.b #$06 : STA $0D80, Y
LDA.b #$20 : STA.w SprPrize, Y LDA.b #$20 : STA.w SprPrize, Y
LDA.b #$02 : STA.w SprMiscC, Y LDA.b #$02 : STA.w SprMiscC, Y
PHX PHX
; Spawn Location ; Spawn Location
REP #$20 REP #$20
LDA $0FD8 LDA $0FD8
SEP #$20 SEP #$20
STA.w SprX, Y : XBA : STA.w SprXH, Y STA.w SprX, Y : XBA : STA.w SprXH, Y
REP #$20 REP #$20
LDA $0FDA : CLC : ADC.w #$000C LDA $0FDA : CLC : ADC.w #$000C
SEP #$20 SEP #$20
STA.w SprY, Y : XBA : STA.w SprYH, Y STA.w SprY, Y : XBA : STA.w SprYH, Y
TYX TYX
STZ $0D70, X STZ $0D70, X
LDA #$10 : STA.w SprYSpeed, X LDA #$10 : STA.w SprYSpeed, X
STA.w SprYRound, X STA.w SprYRound, X
STX.w Offspring1_Id STX.w Offspring1_Id
PLX PLX
.return .return
RTS RTS