mist: nibel: add trap

This commit is contained in:
Vince Weaver 2020-08-19 00:31:49 -04:00
parent bf268f5ce6
commit 9eb3bac9d5
5 changed files with 138 additions and 1 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 916 B

After

Width:  |  Height:  |  Size: 8.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 14 KiB

View File

@ -528,7 +528,10 @@ location27:
.word $0000 ; east bg
.word $0000 ; west bg
.byte BG_NORTH|BG_SOUTH
.byte $ff
.byte DIRECTION_S ; special exit
.byte 12,29 ; special x
.byte 20,34 ; special y
.word touch_trap-1 ; special function
; NIBEL_SHACK_ENTRANCE -- entranceway of the weird shack
location28:

View File

@ -81,6 +81,8 @@ game_loop:
beq animate_viewer
cmp #NIBEL_SHACK_ENTRANCE
beq animate_projector
cmp #NIBEL_SHACK_CENTER
beq animate_trap
jmp nothing_special
@ -96,6 +98,10 @@ animate_projector:
jsr draw_projection
jmp nothing_special
animate_trap:
jsr draw_trap
jmp nothing_special
animate_viewer:
lda ANIMATE_FRAME
beq nothing_special

View File

@ -1,9 +1,137 @@
draw_gate_animation_s:
lda DIRECTION
cmp #DIRECTION_S
bne done_gate_s
lda ANIMATE_FRAME
beq done_gate_s
done_gate_s:
rts
draw_gate_animation_n:
lda DIRECTION
cmp #DIRECTION_N
bne done_gate_n
lda ANIMATE_FRAME
beq done_gate_n
done_gate_n:
rts
;=================================
; it's a trap
;=================================
touch_trap:
lda #1
sta ANIMATE_FRAME
lda #0
sta FRAMEL
rts
draw_trap:
lda DIRECTION
cmp #DIRECTION_S
bne done_draw_trap
lda ANIMATE_FRAME
beq done_draw_trap
asl
tay
lda trap_animation,Y
sta INL
lda trap_animation+1,Y
sta INH
lda #13
sta XPOS
lda #18
sta YPOS
jsr put_sprite_crop
lda FRAMEL
and #$7
bne done_draw_trap
inc ANIMATE_FRAME
lda ANIMATE_FRAME
cmp #12
bne done_draw_trap
lda #0
sta ANIMATE_FRAME
done_draw_trap:
rts
trap_animation:
.word empty_sprite
.word trap_sprite1
.word trap_sprite2
.word trap_sprite3
.word trap_sprite4
.word trap_sprite4
.word trap_sprite3
.word trap_sprite3
.word trap_sprite2
.word trap_sprite2
.word trap_sprite1
.word trap_sprite1
trap_sprite1:
.byte 15,7
.byte $88,$00,$00,$00,$00,$00,$88,$88,$88,$00,$99,$88,$88,$88,$00
.byte $08,$00,$00,$00,$00,$00,$88,$88,$88,$00,$99,$88,$88,$88,$00
.byte $00,$11,$20,$11,$20,$11,$28,$11,$28,$11,$29,$11,$28,$11,$00
.byte $12,$72,$72,$72,$72,$72,$72,$02,$72,$72,$72,$72,$72,$21,$20
.byte $01,$77,$77,$77,$77,$57,$55,$55,$55,$57,$77,$77,$07,$02,$11
.byte $10,$00,$17,$77,$15,$55,$15,$55,$15,$55,$15,$77,$10,$00,$12
.byte $21,$20,$21,$27,$21,$25,$21,$20,$21,$25,$21,$27,$21,$20,$21
trap_sprite2:
.byte 15,7
.byte $88,$00,$00,$00,$00,$00,$88,$88,$88,$00,$99,$88,$88,$88,$00
.byte $08,$00,$00,$00,$00,$00,$88,$88,$88,$00,$99,$88,$88,$88,$00
.byte $00,$11,$17,$77,$70,$71,$28,$11,$28,$71,$79,$77,$17,$88,$00
.byte $12,$02,$07,$07,$77,$77,$72,$02,$72,$77,$77,$07,$07,$78,$20
.byte $77,$77,$70,$70,$00,$50,$55,$55,$55,$50,$00,$70,$71,$77,$77
.byte $77,$77,$17,$77,$17,$77,$15,$55,$15,$77,$17,$77,$17,$77,$77
.byte $27,$27,$21,$27,$21,$27,$21,$20,$21,$27,$21,$27,$21,$27,$27
trap_sprite3:
.byte 15,7
.byte $88,$00,$00,$10,$00,$00,$88,$88,$88,$00,$99,$18,$88,$88,$00
.byte $08,$00,$77,$10,$00,$00,$88,$88,$88,$00,$99,$18,$77,$78,$00
.byte $00,$77,$77,$70,$00,$01,$28,$11,$28,$01,$09,$77,$77,$77,$70
.byte $72,$77,$77,$77,$70,$00,$02,$02,$02,$00,$70,$77,$77,$77,$77
.byte $77,$77,$77,$77,$77,$70,$00,$55,$00,$70,$77,$77,$77,$77,$77
.byte $77,$77,$17,$77,$17,$77,$10,$55,$10,$77,$17,$77,$17,$77,$77
.byte $27,$27,$21,$27,$21,$27,$21,$20,$21,$27,$21,$27,$21,$27,$27
trap_sprite4:
.byte 15,7
.byte $88,$00,$00,$50,$55,$55,$55,$11,$55,$55,$55,$58,$88,$88,$00
.byte $08,$00,$75,$77,$77,$77,$77,$88,$77,$77,$77,$77,$75,$58,$00
.byte $00,$77,$77,$77,$77,$77,$77,$11,$77,$77,$77,$77,$77,$77,$50
.byte $72,$77,$77,$77,$77,$77,$77,$02,$77,$77,$77,$77,$77,$77,$55
.byte $77,$77,$77,$77,$77,$77,$77,$55,$77,$77,$77,$77,$77,$77,$55
.byte $77,$77,$17,$77,$17,$77,$17,$55,$17,$77,$17,$77,$17,$77,$77
.byte $27,$27,$21,$27,$21,$27,$21,$20,$21,$27,$21,$27,$21,$27,$27
close_rts:
rts