Bees in beemode only target enemies they can actually affect
This commit is contained in:
@@ -2836,6 +2836,15 @@ BRA + : NOP #15 : +
|
||||
org $1EB5E8 ; bank_1E.asm@9387 (LDA #$03 : STA $0D80, X)
|
||||
JSL ArrghusBoing
|
||||
;--------------------------------------------------------------------------------
|
||||
org $1EDFAF ; bank_1E.asm@16607 (.next_sprite)
|
||||
JSL BeeCheckTarget
|
||||
BCS .bee_valid_target
|
||||
BRA .bee_unsuitable_target
|
||||
NOP #48
|
||||
.bee_unsuitable_target
|
||||
skip 11
|
||||
.bee_valid_target
|
||||
;--------------------------------------------------------------------------------
|
||||
|
||||
;================================================================================
|
||||
; Variable Ganon Vulnerability
|
||||
|
||||
@@ -515,3 +515,73 @@ ArrghusBoing:
|
||||
; what we wrote over
|
||||
LDA.b #$03
|
||||
STA.w $0D80, X
|
||||
RTL
|
||||
;--------------------------------------------------------------------------------
|
||||
BeeCheckTarget:
|
||||
CPY.w $0FA0
|
||||
BEQ .unsuitable_target
|
||||
|
||||
LDA.w $0DD0,Y
|
||||
CMP.b #$09
|
||||
BCC .unsuitable_target
|
||||
|
||||
LDA.w $0F00,Y
|
||||
BNE .unsuitable_target
|
||||
|
||||
; in bee-mode skip targets that the bee can't hurt
|
||||
LDA.l SpecialWeapons : CMP.b #$06 : BNE +
|
||||
JSR BeeCheckDamage
|
||||
CMP.b #$00 : BEQ .unsuitable_target
|
||||
+
|
||||
|
||||
LDA.w $0E40,Y
|
||||
BMI .potential_target
|
||||
|
||||
LDA.w $0F20,Y
|
||||
CMP.w $0F20,X
|
||||
BNE .unsuitable_target
|
||||
|
||||
LDA.w $0F60,Y
|
||||
AND.b #$40
|
||||
BEQ +
|
||||
LDA.l SpecialWeapons : CMP.b #$06 : BNE .unsuitable_target
|
||||
; in bee mode, allow targetting anti-fairies, bunny beams, and keese
|
||||
LDA.w $0E20,Y
|
||||
CMP.b #$15 : BEQ + ; anti-fairy
|
||||
CMP.b #$6F : BEQ + ; keese
|
||||
CMP.b #$D1 : BEQ + ; bunny beam
|
||||
BRA .unsuitable_target
|
||||
+
|
||||
|
||||
LDA.w $0BA0,Y
|
||||
BEQ .valid_target
|
||||
BRA .unsuitable_target
|
||||
|
||||
.potential_target
|
||||
LDA.w $0EB0,X
|
||||
BEQ .unsuitable_target
|
||||
|
||||
LDA.w $0CD2,Y
|
||||
AND.b #$40
|
||||
BNE .valid_target
|
||||
|
||||
.unsuitable_target
|
||||
CLC : RTL
|
||||
|
||||
.valid_target
|
||||
SEC : RTL
|
||||
;--------------------------------------------------------------------------------
|
||||
BeeCheckDamage:
|
||||
PHX : PHP
|
||||
REP #$20
|
||||
LDA.w $0E20,Y : AND.w #$00FF
|
||||
ASL #4
|
||||
SEP #$20
|
||||
ORA.w $0ED0,X
|
||||
REP #$30
|
||||
TAX
|
||||
SEP #$20
|
||||
JSL LookupDamageLevel
|
||||
SEP #$10
|
||||
PLP : PLX
|
||||
RTS
|
||||
|
||||
Reference in New Issue
Block a user