peasant: kerrek: have look more or less working

this was more trouble than you'd think
This commit is contained in:
Vince Weaver 2021-11-21 15:13:30 -05:00
parent 9b09cb0f93
commit e44e962971
2 changed files with 221 additions and 53 deletions

View File

@ -205,49 +205,179 @@ kerrek_shoot:
kerrek_look:
; first see if kerrek is on screen
lda KERREK_STATE
bpl kerrek_look_not_there
kerrek_look_there:
; check if there and alive
lda KERREK_STATE
and #$f
bne kerrek_look_there_dead
kerrek_look_there_alive:
; see what we're looking at
lda CURRENT_NOUN
cmp #NOUN_BELT
beq kerrek_look_belt_alive
; kerrek was there and alive
kerrek_look_there_alive_everything_else:
ldx #<kerrek_look_kerrek_message
ldy #>kerrek_look_kerrek_message
jmp finish_parse_message
kerrek_look_belt_alive:
ldx #<kerrek_look_belt_alive_message
ldy #>kerrek_look_belt_alive_message
jmp finish_parse_message
kerrek_look_there_dead:
; kerrek was there and dead
; already masked off
cmp #KERREK_DEAD
beq kerrek_look_there_dead_dead
cmp #KERREK_DECOMPOSING
beq kerrek_look_there_dead_decomposing
; cmp #KERREK_SKELETON
;============================
; look, kerrek is a skeleton
;============================
; here is kerrek a skeleton
kerrek_look_there_dead_bones:
lda CURRENT_NOUN
cmp #NOUN_BONE
beq kerrek_look_there_dead_bones_bones
cmp #NOUN_KERREK
beq kerrek_look_there_dead_bones_kerrek
kerrek_look_there_dead_bones_default:
; typed "look" after kerrek a skeleton
ldx #<kerrek_look_kerrek_bones_message
ldy #>kerrek_look_kerrek_bones_message
jmp finish_parse_message
kerrek_look_there_dead_bones_kerrek:
; typed "look kerrek" after kerrek a skeleton
ldx #<kerrek_look_bones_kerrek_message
ldy #>kerrek_look_bones_kerrek_message
jmp finish_parse_message
kerrek_look_there_dead_bones_bones:
; typed "look bones" after kerrek a skeleton
ldx #<kerrek_look_bones_message
ldy #>kerrek_look_bones_message
jmp finish_parse_message
;==============================
; look, kerrek is freshly dead
;==============================
kerrek_look_there_dead_dead:
lda CURRENT_NOUN
cmp #NOUN_KERREK
beq kerrek_look_there_dead_look_kerrek
; typed "look" when kerrek just killed
kerrek_look_there_dead_look:
ldx #<kerrek_look_dead_message
ldy #>kerrek_look_dead_message
jmp finish_parse_message
; typed "look kerrek" when kerrek just killed
kerrek_look_there_dead_look_kerrek:
; see if belt there
lda INVENTORY_1
and #INV1_KERREK_BELT
bne kerrek_look_there_dead_look_kerrek_no_belt
kerrek_look_there_dead_look_kerrek_belt:
ldx #<kerrek_look_kerrek_dead_message
ldy #>kerrek_look_kerrek_dead_message
jmp finish_parse_message
kerrek_look_there_dead_look_kerrek_no_belt:
ldx #<kerrek_look_kerrek_dead_nobelt_message
ldy #>kerrek_look_kerrek_dead_nobelt_message
jmp finish_parse_message
;==============================
; look, kerrek is decomposing
;==============================
; here if kerrek is in decompsing state
kerrek_look_there_dead_decomposing:
lda CURRENT_NOUN
cmp #NOUN_KERREK
beq kerrek_look_there_dead_decomposing_kerrek
; here if "look" when decomposing
ldx #<kerrek_look_decomposing_message
ldy #>kerrek_look_decomposing_message
jmp finish_parse_message
kerrek_look_there_dead_decomposing_kerrek:
; here if "look kerrek" when decomposing
ldx #<kerrek_look_kerrek_decomposing_message
ldy #>kerrek_look_kerrek_decomposing_message
jmp finish_parse_message
;==============================
; look, kerrek is not there
;==============================
kerrek_look_not_there:
lda CURRENT_NOUN
cmp #NOUN_FOOTPRINTS
beq kerrek_look_footprints
cmp #NOUN_TRACKS
beq kerrek_look_tracks
beq kerrek_look_footprints
cmp #NOUN_NONE
beq kerrek_look_at
jmp parse_common_look
; check if alive elsewhere
kerrek_look_at:
lda KERREK_STATE
bmi kerrek_look_none_kerrek
kerrek_look_none_no_kerrek:
lda KERREK_STATE
and #$f
beq kerrek_look_none_kerrek_alive
kerrek_look_none_kerrek_dead:
ldx #<kerrek_look_no_dead_kerrek_message
ldy #>kerrek_look_no_dead_kerrek_message
jmp finish_parse_message
bne kerrek_look_not_there_dead
kerrek_look_not_there_alive:
kerrek_look_none_kerrek_alive:
ldx #<kerrek_look_no_kerrek_message
ldy #>kerrek_look_no_kerrek_message
jmp finish_parse_message
kerrek_look_none_kerrek:
ldx #<kerrek_look_kerrek_message
ldy #>kerrek_look_kerrek_message
kerrek_look_not_there_dead:
ldx #<kerrek_look_no_dead_kerrek_message
ldy #>kerrek_look_no_dead_kerrek_message
jmp finish_parse_message
kerrek_look_tracks:
kerrek_look_footprints:
lda KERREK_STATE
bpl kerrek_look_none_kerrek
ldx #<kerrek_look_footprints_message
ldy #>kerrek_look_footprints_message
jmp finish_parse_message

View File

@ -88,10 +88,7 @@
; look
;==================
; + look (no Kerrek, kerrek dead)
kerrek_look_no_dead_kerrek_message:
.byte "There are large hoof prints",13
.byte "in the the grass here.",0
; + look (no Kerrek)
kerrek_look_no_kerrek_message:
@ -100,13 +97,12 @@ kerrek_look_no_kerrek_message:
.byte "it smells like a public",13
.byte "latrine.",0
; + look (living Kerrek)
; + look footprints/tracks (living Kerrek)
kerrek_look_kerrek_message:
.byte "It's the Kerrek, you moron!",13
.byte "Get outta here!",0
; + look (no Kerrek, kerrek dead)
kerrek_look_no_dead_kerrek_message:
.byte "There are large hoof prints",13
.byte "in the the grass here.",0
; + look footprints/tracks (Kerrek not present)
; + look footprints/tracks (no Kerrek)
kerrek_look_footprints_message:
.byte "If you weren't a simpleton",13
.byte "you might think these were",13
@ -114,51 +110,93 @@ kerrek_look_footprints_message:
.byte "you are a simpleton, you",13
.byte "just go, ",34,"Yay! Piggies!",34,0
;==========================
; alive
;==========================
; + look [anything] (living Kerrek there) kerrek_there && alive
; + look footprints/tracks (living Kerrek there)
kerrek_look_kerrek_message:
.byte "It's the Kerrek, you moron!",13
.byte "Get outta here!",0
; + look belt (still alive)
kerrek_look_belt_alive_message:
.byte "Yecch. I wouldn't touch",13
.byte "that unless it was, like,",13
.byte "an important quest item or",13
.byte "something.",0
;==========================
; dead form but belt there
;==========================
; + look (dead Kerrek)
kerrek_look_dead_message:
.byte "There are large hoof prints",13
.byte "in the grass here.",13
.byte "There is a large",13
.byte "Kerrek-shaped mound on the",13
.byte "grass.",0
; + look kerrek (immediately after killing him)
kerrek_look_kerrek_dead_message:
.byte "He dead. And the only thing",13
.byte "of value on him is his",13
.byte "stinky belt buckle.",0
;==========================
; dead form but belt taken
;==========================
; + look (see above)
; + look kerrek (immediately after taking the belt)
kerrek_look_kerrek_dead_nobelt_message:
.byte "He dead.",0
;==================
; decomposing form
;==================
; + look (rotting Kerrek)
kerrek_look_decomposing_message:
.byte "There are large hoof prints",13
.byte "in the grass here. Part",13
.byte "of the ground looks just",13
.byte "like a rotting kerrek.",0
; + look (skeletal Kerrek)
.byte "There are large hoof prints",13
.byte "in the grass here.",13
.byte "Looks like someone left",13
.byte "their spare bones here.",0
; + look belt (still alive)
.byte "Yecch. I wouldn't touch",13
.byte "that unless it was, like,",13
.byte "an important quest item or",13
.byte "something.",0
; + look kerrek (immediately after killing him)
.byte "He dead. And the only thing",13
.byte "of value on him is his",13
.byte "stinky belt buckle.",0
; + look kerrek (immediately after taking the belt)
.byte "He dead.",0
; + look kerrek (while he's decomposing)
kerrek_look_kerrek_decomposing_message:
.byte "He dead. You didn't think",13
.byte "he could have smelled any",13
.byte "worse? Well, guess what: He",13
.byte "smells worse.",0
;==================
; skeleton form
;==================
; + look (skeletal Kerrek)
kerrek_look_kerrek_bones_message:
.byte "There are large hoof prints",13
.byte "in the grass here.",13
.byte "Looks like someone left",13
.byte "their spare bones here.",0
; + look kerrek (when he's all bones)
kerrek_look_bones_kerrek_message:
.byte "He dead. He wasn't fat, he",13
.byte "was just big boned! Poor",13
.byte "pig-man.",0
; + look bones (skips the "he dead." part?)
kerrek_look_bones_message:
.byte "He wasn't fat, he was just",13
.byte "big boned! Poor pig-man.",0