peasant: can now find the trinket

This commit is contained in:
Vince Weaver 2021-11-18 23:54:25 -05:00
parent 37a908ee66
commit 719468727d
6 changed files with 217 additions and 33 deletions

View File

@ -35,6 +35,7 @@ peasant2 18302
17100 -- move parse_input high and move p2 strings back in 17100 -- move parse_input high and move p2 strings back in
17368 -- use lookup table for next room (and other changes) 17368 -- use lookup table for next room (and other changes)
17780 -- size as of the switch to dictionary word lookup 17780 -- size as of the switch to dictionary word lookup
18012 -- hook up more of archery
partial save, can we fit in 4k? partial save, can we fit in 4k?
102 lines ; inventory was 115? 102 lines ; inventory was 115?
@ -184,8 +185,9 @@ POINTS IMPLEMENTED: (in order of implementation)
+ 3 (jump in hay) + 3 (jump in hay)
+ 2 (fall in mud puddle) + 2 (fall in mud puddle)
+ 2 (give trinket to brothers) + 2 (give trinket to brothers)
+ 2 (get super trinket)
====== ======
52 points 54 points
deaths/endings implemented deaths/endings implemented

View File

@ -702,6 +702,7 @@ verb_lookup:
.byte "SAVE",VERB_SAVE|$80 .byte "SAVE",VERB_SAVE|$80
.byte "SAY",VERB_SAY|$80 .byte "SAY",VERB_SAY|$80
.byte "SCARE",VERB_SCARE|$80 .byte "SCARE",VERB_SCARE|$80
.byte "SEARCH",VERB_SEARCH|$80
.byte "SHOOT",VERB_SHOOT|$80 .byte "SHOOT",VERB_SHOOT|$80
.byte "SHOW",VERB_SHOW|$80 .byte "SHOW",VERB_SHOW|$80
.byte "SIT",VERB_SIT|$80 .byte "SIT",VERB_SIT|$80

View File

@ -447,6 +447,12 @@ lady_cottage_verb_table:
.word lady_cottage_knock-1 .word lady_cottage_knock-1
.byte VERB_OPEN .byte VERB_OPEN
.word lady_cottage_open-1 .word lady_cottage_open-1
.byte VERB_GET
.word lady_cottage_get-1
.byte VERB_TAKE
.word lady_cottage_get-1
.byte VERB_SEARCH
.word lady_cottage_search-1
.byte 0 .byte 0
;================= ;=================
@ -550,7 +556,171 @@ lady_cottage_open_door:
rts rts
;================
; get
;================
lady_cottage_get:
lda CURRENT_NOUN
cmp #NOUN_BERRIES
beq lady_cottage_handle_berries
jmp parse_common_get
;================
; search
;================
lady_cottage_search:
lda CURRENT_NOUN
cmp #NOUN_BUSH
beq lady_cottage_handle_berries
jmp parse_common_unknown
;===================
; handle the bushes
;===================
lady_cottage_handle_berries:
lda BUSH_STATUS
cmp #$f
bne try_bushes
already_got_trinket:
ldx #<lady_cottage_already_trinket_message
ldy #>lady_cottage_already_trinket_message
jmp finish_parse_message
try_bushes:
; sort of a quadrant
; walks you over to the one in the quadrant
lda PEASANT_X
cmp #15
bcc left_bush
right_bush:
lda PEASANT_Y
cmp #$6D
bcc handle_bush4
bcs handle_bush3
left_bush:
lda PEASANT_Y
cmp #$6D
bcc handle_bush2
bcs handle_bush1
; bottom left
handle_bush1:
lda BUSH_STATUS
and #BUSH_1_SEARCHED
bne bush_already_searched
lda BUSH_STATUS
ora #BUSH_1_SEARCHED
bne actually_search_bush ; bra
; top left
handle_bush2:
lda BUSH_STATUS
and #BUSH_2_SEARCHED
bne bush_already_searched
lda BUSH_STATUS
ora #BUSH_2_SEARCHED
bne actually_search_bush ; bra
; bottom right
handle_bush3:
lda BUSH_STATUS
and #BUSH_3_SEARCHED
bne bush_already_searched
lda BUSH_STATUS
ora #BUSH_3_SEARCHED
bne actually_search_bush ; bra
; top right
handle_bush4:
lda BUSH_STATUS
and #BUSH_4_SEARCHED
bne bush_already_searched
lda BUSH_STATUS
ora #BUSH_4_SEARCHED
; bne actually_search_bush ; bra
actually_search_bush:
sta BUSH_STATUS
tax
lda bush_count_lookup,X
cmp #1
beq searched_1_bush
cmp #2
beq searched_2_bush
cmp #3
beq searched_3_bush
searched_4_bush:
; add 2 points to score
lda #2
jsr score_points
; get trinket
lda INVENTORY_2
ora #INV2_TRINKET
sta INVENTORY_2
ldx #<lady_cottage_searched_4_bushes_message
ldy #>lady_cottage_searched_4_bushes_message
jmp finish_parse_message
searched_1_bush:
ldx #<lady_cottage_searched_1_bush_message
ldy #>lady_cottage_searched_1_bush_message
jmp finish_parse_message
searched_2_bush:
ldx #<lady_cottage_searched_2_bushes_message
ldy #>lady_cottage_searched_2_bushes_message
jmp finish_parse_message
searched_3_bush:
ldx #<lady_cottage_searched_3_bushes_message
ldy #>lady_cottage_searched_3_bushes_message
jmp finish_parse_message
bush_already_searched:
ldx #<lady_cottage_already_searched_message
ldy #>lady_cottage_already_searched_message
jmp finish_parse_message
; probably a better way to do this?
bush_count_lookup:
.byte $00 ; 0000
.byte $01 ; 0001
.byte $01 ; 0010
.byte $02 ; 0011
.byte $01 ; 0100
.byte $02 ; 0101
.byte $02 ; 0110
.byte $03 ; 0111
.byte $01 ; 1000
.byte $02 ; 1001
.byte $02 ; 1010
.byte $03 ; 1011
.byte $02 ; 1100
.byte $03 ; 1101
.byte $03 ; 1110
.byte $04 ; 1111
;======================= ;=======================

View File

@ -265,23 +265,27 @@ lady_cottage_look_at_bushes_message:
; walks to nearest? ; walks to nearest?
; + get berries (first bush) [walks to lower left] ; + get berries (first bush) [walks to lower left]
lady_cottage_searched_1_bush_message:
.byte "You reach into the bush to",13 .byte "You reach into the bush to",13
.byte "snag some berries but",13 .byte "snag some berries but",13
.byte "they all just squish in",13 .byte "they all just squish in",13
.byte "your hand.",0 .byte "your hand.",0
; + get berries (second bush) [left] ; + get berries (second bush) [left]
lady_cottage_searched_2_bushes_message:
.byte "Man, nothing in this bush",13 .byte "Man, nothing in this bush",13
.byte "but squished berries",13 .byte "but squished berries",13
.byte "either.",0 .byte "either.",0
; + get berries (third bush) ; + get berries (third bush)
lady_cottage_searched_3_bushes_message:
.byte "Too bad you don't want any",13 .byte "Too bad you don't want any",13
.byte "squished berries, cuz hey:",13 .byte "squished berries, cuz hey:",13
.byte "jackpot!",0 .byte "jackpot!",0
; +2 POINTS ; +2 POINTS
; + get berries (fourth bush) ; + get berries (fourth bush)
lady_cottage_searched_4_bushes_message:
.byte "You reach into the bush to",13 .byte "You reach into the bush to",13
.byte "snag you some berries but",13 .byte "snag you some berries but",13
.byte "instead find a Super",13 .byte "instead find a Super",13
@ -293,6 +297,7 @@ lady_cottage_look_at_bushes_message:
; + get berries (same twice) ; + get berries (same twice)
; + search bush (same twice) ; + search bush (same twice)
lady_cottage_already_searched_message:
.byte "You already searched that",13 .byte "You already searched that",13
.byte "bush. It was okay. Nothing",13 .byte "bush. It was okay. Nothing",13
.byte "to write home about... oh,",13 .byte "to write home about... oh,",13
@ -301,6 +306,7 @@ lady_cottage_look_at_bushes_message:
; + search bush (already found trinket) ; + search bush (already found trinket)
; + get berries (already found trinket) ; + get berries (already found trinket)
lady_cottage_already_trinket_message:
.byte "You've searched your fill",13 .byte "You've searched your fill",13
.byte "of berry bushes for this",13 .byte "of berry bushes for this",13
.byte "game. If you want to search",13 .byte "game. If you want to search",13

View File

@ -45,37 +45,38 @@ VERB_RIDE = 43
VERB_RING = 44 VERB_RING = 44
VERB_SAVE = 45 VERB_SAVE = 45
VERB_SCARE = 46 VERB_SCARE = 46
VERB_SHOOT = 47 VERB_SEARCH = 47
VERB_SHOW = 48 VERB_SHOOT = 48
VERB_SIT = 49 VERB_SHOW = 49
VERB_SKIP = 50 VERB_SIT = 50
VERB_SLEEP = 51 VERB_SKIP = 51
VERB_SMELL = 52 VERB_SLEEP = 52
VERB_SNIFF = 53 VERB_SMELL = 53
VERB_STEAL = 54 VERB_SNIFF = 54
VERB_SWIM = 55 VERB_STEAL = 55
VERB_TAKE = 56 VERB_SWIM = 56
VERB_TALK = 57 VERB_TAKE = 57
VERB_THIS = 58 VERB_TALK = 58
VERB_THROW = 59 VERB_THIS = 59
VERB_TRY = 60 VERB_THROW = 60
VERB_TURN = 61 VERB_TRY = 61
VERB_USE = 62 VERB_TURN = 62
VERB_VERSION = 63 VERB_USE = 63
VERB_WAKE = 64 VERB_VERSION = 64
VERB_WEAR = 65 VERB_WAKE = 65
VERB_WHAT = 66 VERB_WEAR = 66
VERB_WHERE = 67 VERB_WHAT = 67
VERB_WHY = 68 VERB_WHERE = 68
VERB_YES = 69 VERB_WHY = 69
VERB_HELP = 70 VERB_YES = 70
VERB_ATTACK = 71 VERB_HELP = 71
VERB_HUG = 72 VERB_ATTACK = 72
VERB_HIDE = 73 VERB_HUG = 73
VERB_MOVE = 74 VERB_HIDE = 74
VERB_CUT = 75 VERB_MOVE = 75
VERB_SAY = 76 VERB_CUT = 76
VERB_ALL_DONE = 77 ; not a verb, but indicating end, must be last VERB_SAY = 77
VERB_ALL_DONE = 78 ; not a verb, but indicating end, must be last
NOUN_NONE = 0 NOUN_NONE = 0
; ;

View File

@ -147,7 +147,11 @@ GAME_STATE_2 = $99
NED_STATUS = $9A NED_STATUS = $9A
BUSH_STATUS = $9B ; status of bush search BUSH_STATUS = $9B ; status of bush search
BUSH_1_SEARCHED = $01
BUSH_2_SEARCHED = $02
BUSH_3_SEARCHED = $04
BUSH_4_SEARCHED = $08
KERREK_STATE = $9C KERREK_STATE = $9C
KERREK_ALIVE = $00 KERREK_ALIVE = $00
KERREK_DEAD = $01 KERREK_DEAD = $01