74 lines
1.7 KiB
NASM
74 lines
1.7 KiB
NASM
;================================================================================
|
|
StartCuccoStorm:
|
|
;STA $FFFFFF
|
|
PHA : PHX : PHY : PHP
|
|
SEP #$30 ; set 8-bit accumulator & index registers
|
|
LDA $1B : BNE .done ; skip if indoors
|
|
|
|
LDY.b #$0A
|
|
LDA.b #$0B : JSL Sprite_SpawnDynamically_arbitrary : BMI .done ; spawn a chicken
|
|
JSL Sprite_SetSpawnedCoords
|
|
LDA.b #$24 : STA $0DA0, Y ; turn it into an attack chicken
|
|
LDA.b #$01 : STA $0DB0, Y
|
|
|
|
.done
|
|
PLP : PLY : PLX : PLA
|
|
RTL
|
|
;================================================================================
|
|
SpawnAngryCucco:
|
|
TXA : EOR $1A : AND.b #$0F : ORA $1B : BNE .spawn_delay
|
|
|
|
LDA.b #$0B
|
|
LDY.b #$0A
|
|
|
|
JSL Sprite_SpawnDynamically_arbitrary : BMI .spawn_failed
|
|
|
|
PHX
|
|
|
|
TYX
|
|
|
|
LDA.b #$1E : JSL Sound_SetSfx3PanLong
|
|
|
|
PLX
|
|
|
|
LDA.b #$01 : STA $0DB0, Y
|
|
|
|
PHX
|
|
|
|
JSL GetRandomInt : STA $0F : AND.b #$02 : BEQ .vertical_entry_point
|
|
|
|
LDA $0F : ADC $E2 : STA $0D10, Y
|
|
LDA $E3 : ADC.b #$00 : STA $0D30, Y
|
|
|
|
LDA $0F : AND.b #$01 : TAX
|
|
|
|
LDA $9F3C, X : ADC $E8 : STA $0D00, Y
|
|
LDA $E9 : ADC.b #$00 : STA $0D20, Y
|
|
|
|
BRA .set_velocity
|
|
|
|
.vertical_entry_point
|
|
|
|
LDA $0F : ADC $E8 : STA $0D00, Y
|
|
LDA $E9 : ADC.b #$00 : STA $0D20, Y
|
|
|
|
LDA $0F : AND.b #$01 : TAX
|
|
|
|
LDA $9F3C, X : ADC $E2 : STA $0D10, Y
|
|
LDA $E3 : ADC.b #$00 : STA $0D30, Y
|
|
|
|
.set_velocity
|
|
|
|
TYX
|
|
|
|
LDA.b #$20 : JSL Sprite_ApplySpeedTowardsPlayerLong
|
|
|
|
PLX
|
|
|
|
LDA.b #$30 : JSL Sound_SetSfx2PanLong
|
|
|
|
.spawn_failed
|
|
.spawn_delay
|
|
|
|
RTL
|
|
;================================================================================ |