diff --git a/still_alive/ending.s b/still_alive/ending.s index 0f09c9da..a894c6c5 100644 --- a/still_alive/ending.s +++ b/still_alive/ending.s @@ -199,8 +199,6 @@ jo_draw: ; IF KO=1 THEN KY=KY-KV:KV=KV-4.5 - - ;==================================== ; Portal Collision Detection ;==================================== @@ -208,11 +206,65 @@ jo_draw: ; 203 IF KO=0 GOTO 206 ; 204 IF KX>BX-12 AND KXBY-6 THEN SCALE=1:KX=GX:KY=GY+6 ; 205 IF KX>GX-12 AND KXGY-6 THEN SCALE=1:KX=BX:KY=BY+6 - ; ' Portal/Blob - ; 206 IF L=1 OR JO=0 GOTO 210 - ; 207 IF JX>BX-12 AND JXBY-6 THEN SCALE=2:XDRAW 6 AT JX,JY:JX=GX:JY=GY-6:JA=-JA:XDRAW 6 AT JX,JY - ; 208 IF JX>GX-12 AND JXGY-6 THEN SCALE=2:XDRAW 6 AT JX,JY:JX=BX:JY=BY-6:JA=-JA:XDRAW 6 AT JX,JY + ; Portal/Fireball + + lda JO + beq done_portal_fireball ; IF L=1 OR JO=0 GOTO 210 + + ; Check blue + + lda BXL + sec + sbc #12 + cmp JX + bcs no_b_fb ; IF JX>BX-12 AND + + lda BXL + clc + adc #12 + cmp JX + bcc no_b_fb ; JXBY-6 THEN + + jsr draw_j ; SCALE=2:XDRAW 6 AT JX,JY + + lda GXL + sta JX ; JX=GX + + lda GY + sec + sbc #6 + sta JY ; JY=GY-6 + + lda JA + eor #$FF + clc + adc #$1 + sta JA ; JA=-JA + + jsr draw_j ; XDRAW 6 AT JX,JY + +no_b_fb: + + ; 207 IF JX>BX-12 AND JXBY-6 THEN SCALE=2:XDRAW 6 AT JX,JY:JX=GX:JY=GY-6:JA=-JA:XDRAW 6 AT JX,JY + +no_o_fb: + + + ; 208 IF JX>GX-12 AND JXGY-6 THEN SCALE=2:XDRAW 6 AT JX,JY:JX=BX:JY=BY-6:JA=-JA:XDRAW 6 AT JX,JY +done_portal_fireball: ;===================================== ; Wall Collision Detection @@ -263,7 +315,7 @@ jo_not_up: cmp #85 bcs jo_no_hit - jmp explosion + jmp hit_glados jo_no_hit: @@ -660,6 +712,50 @@ loop4: rts + ;=============================== + ; hit glados + ;=============================== +hit_glados: + ; 3000 HTAB 3:VTAB 21:PRINT " Nice job breaking it, hero. " + + ldy #10 +boom_loop: + sty TEMPY + + lda #110 + sta JX + lda #60 + sta JY + jsr draw_j ; XDRAW 7 AT 110,60 + bit $C030 ; V=PEEK(-16336) + lda #130 + sta JX + jsr draw_j ; XDRAW 7 AT 130,60 + lda #85 + sta JY + jsr draw_j ; XDRAW 7 AT 130,85 + bit $C030 ; V=PEEK(-16336) + lda #110 + sta JX + jsr draw_j ; XDRAW 7 AT 110,85 + lda #120 + sta JX + jsr draw_j ; XDRAW 7 AT 120,85 + bit $C030 ; V=PEEK(-16336) + + ldy TEMPY + dey + bne boom_loop + + lda #$ff + sta JO ; JO=-1 + + + ; Release the orb + lda #1 + sta KO ; KO=1 + + rts