ootw: mess with slug sprites

This commit is contained in:
Vince Weaver 2019-01-18 15:03:44 -05:00
parent 0d4ada4bcd
commit d0fd308971
3 changed files with 169 additions and 11 deletions

View File

@ -390,19 +390,33 @@ no_keypress_c:
; draw slugs
;==================================
; outstate 0=dead 1=normal 2=dieing 3=falling
slugg0_out: .byte 1
slugg0_attack: .byte 0
slugg0_x: .byte 30
slugg0_dir: .byte $ff
slugg0_gait: .byte 0
; ___ _-_
slugg1_out: .byte 1
slugg1_x: .byte 30
slugg1_dir: .byte $ff
slugg1_gait: .byte 0
slugg2_out: .byte 1
slugg2_x: .byte 30
slugg2_dir: .byte $ff
slugg2_gait: .byte 0
draw_slugs:
lda slugg0_out
beq slug_done ; don't draw if not there
bne check_attack ; don't draw if not there
jmp slug_done
check_attack:
;==================
; see if attack
lda PHYSICIST_X
@ -413,7 +427,12 @@ draw_slugs:
and #$fc
bne no_attack
attack:
; FIXME: make slug stand up if in range
;=================
; start an attack
lda #1
sta slugg0_attack
lda SLUGDEATH ; don't re-attack if already dead
bne no_attack
@ -448,6 +467,39 @@ slug_move:
slug_no_move:
;===============================
;===============================
; DRAW SLUG
;===============================
;===============================
; if exploding
;==============
; if attacking
;==============
lda slugg0_attack
beq slug_normal
slug_attacking:
lda slugg0_gait
and #$70
lsr
lsr
lsr
tax
lda slug_attack_progression,X
sta INL
lda slug_attack_progression+1,X
sta INH
jmp slug_selected
;==============
; if normal
;==============
slug_normal:
lda slugg0_gait
and #$20
beq slug_squinched
@ -465,13 +517,17 @@ slug_squinched:
lda #>slug2
sta INH
;================
; end slug normal
;================
slug_selected:
lda slugg0_x
sta XPOS
lda #34
lda #30
sec
sbc EARTH_OFFSET
sta YPOS

View File

@ -288,19 +288,121 @@ ripple4:
; going left
slug1:
.byte $4,$2
.byte $4,$4
.byte $aa,$aa,$aa,$aa
.byte $aa,$aa,$aa,$aa
.byte $aa,$aa,$aa,$aa
.byte $0a,$0a,$0a,$0a
slug2:
.byte $4,$2
.byte $4,$4
.byte $aa,$aa,$aa,$aa
.byte $aa,$aa,$aa,$aa
.byte $aa,$aa,$aa,$aa
.byte $0a,$a0,$0a,$aa
slug_attack:
.byte $4,$2
slug_die_progression:
.word slug_die1
.word slug_die2
.word slug_die3
.word slug_die4
slug_die1:
.byte $4,$4
.byte $aa,$aa,$aa,$aa
.byte $aa,$aa,$aa,$aa
.byte $aa,$aa,$0a,$aa
.byte $aa,$aa,$0a,$aa
slug_die2:
.byte $4,$4
.byte $aa,$aa,$aa,$aa
.byte $aa,$aa,$0a,$aa
.byte $aa,$aa,$aa,$0a
.byte $aa,$aa,$aa,$0a
slug_die3:
.byte $5,$4
.byte $aa,$aa,$aa,$aa,$aa
.byte $aa,$aa,$aa,$a0,$aa
.byte $aa,$aa,$aa,$aa,$a0
.byte $aa,$aa,$aa,$aa,$aa
slug_die4:
.byte $5,$4
.byte $aa,$aa,$aa,$aa,$aa
.byte $aa,$aa,$aa,$aa,$aa
.byte $aa,$aa,$aa,$a0,$aa
.byte $aa,$aa,$aa,$aa,$aa
slug_attack_progression:
.word slug_attack0
.word slug_attack1
.word slug_attack2
.word slug_attack3
.word slug_attack4
.word slug_attack5
.word slug_attack6
.word slug_attack7
slug_attack0:
.byte $4,$4
.byte $aa,$aa,$00,$aa
.byte $aa,$aa,$00,$aa
.byte $aa,$aa,$00,$aa
.byte $aa,$aa,$00,$aa
slug_attack1:
.byte $4,$4
.byte $aa,$aa,$aa,$aa
.byte $00,$aa,$aa,$aa
.byte $aa,$00,$aa,$aa
.byte $aa,$aa,$00,$aa
slug_attack2:
.byte $4,$4
.byte $aa,$aa,$aa,$aa
.byte $aa,$aa,$aa,$aa
.byte $aa,$aa,$aa,$aa
.byte $00,$00,$00,$aa
slug_attack3:
.byte $4,$4
.byte $aa,$aa,$aa,$aa
.byte $aa,$aa,$00,$aa
.byte $aa,$00,$aa,$aa
.byte $00,$aa,$aa,$aa
slug_attack4:
.byte $4,$4
.byte $aa,$aa,$aa,$aa
.byte $00,$aa,$aa,$aa
.byte $00,$aa,$aa,$aa
.byte $00,$aa,$aa,$aa
slug_attack5:
.byte $4,$4
.byte $aa,$aa,$aa,$aa
.byte $00,$aa,$aa,$aa
.byte $aa,$00,$aa,$aa
.byte $aa,$aa,$00,$aa
slug_attack6:
.byte $4,$4
.byte $aa,$aa,$aa,$aa
.byte $aa,$aa,$aa,$aa
.byte $aa,$aa,$aa,$aa
.byte $00,$00,$00,$aa
slug_attack7:
.byte $4,$4
.byte $aa,$aa,$aa,$aa
.byte $00,$aa,$00,$aa
.byte $aa,$00,$aa,$aa
.byte $00,$aa,$aa,$aa
;=======================

View File

@ -51,7 +51,7 @@ sluggy_loop:
jsr page_flip
ldx #3
ldx #2
long_delay:
lda #250
jsr WAIT
@ -122,7 +122,7 @@ leg_loop:
jsr page_flip
ldx #5
ldx #4
long_delay2:
lda #250
jsr WAIT