From e7f99c2d05a3f4d920eaf3cd3ccbaff4c8a5098d Mon Sep 17 00:00:00 2001 From: Vince Weaver Date: Fri, 18 Jan 2019 12:00:25 -0500 Subject: [PATCH] ootw: slug byte makes you vanish! --- ootw/ootw_cavern.s | 42 +++++++++++++++++++++++++++++++++++------- 1 file changed, 35 insertions(+), 7 deletions(-) diff --git a/ootw/ootw_cavern.s b/ootw/ootw_cavern.s index 2e3e6233..167b883c 100644 --- a/ootw/ootw_cavern.s +++ b/ootw/ootw_cavern.s @@ -75,11 +75,6 @@ ootw_cavern: ;============================ cavern_loop: - ; check keyboard - - jsr handle_keypress_cavern - - ;========================== ; check for earthquake @@ -141,11 +136,29 @@ shake_shake: done_shake: + ;=============== + ; handle slug death + + lda SLUGDEATH + beq still_alive + + + jmp just_slugs + +still_alive: + + ;=============== + ; check keyboard + + jsr handle_keypress_cavern + ;=============== ; draw physicist jsr draw_physicist +just_slugs: + ;=============== ; draw slugs @@ -353,9 +366,24 @@ draw_slugs: lda slugg0_out beq slug_done ; don't draw if not there - inc slugg0_gait - lda slugg0_gait + ; see if attack + lda PHYSICIST_X + sec + sbc slugg0_x ; -2 to +2 + clc + adc #2 + and #$fc + bne no_attack +attack: + lda #$1 + sta SLUGDEATH + ; FIXME: make slug stand up + +no_attack: + inc slugg0_gait ; increment slug gait counter + + lda slugg0_gait ; only move every 64 frames and #$3f cmp #$00 bne slug_no_move