peasant4: work on ned's hut

This commit is contained in:
Vince Weaver 2021-10-22 16:46:31 -04:00
parent e7fa3f0b04
commit ae64926183
4 changed files with 181 additions and 229 deletions

View File

@ -691,6 +691,7 @@ verb_lookup:
.byte "ATTACK",VERB_ATTACK|$80 .byte "ATTACK",VERB_ATTACK|$80
.byte "HUG",VERB_HUG|$80 .byte "HUG",VERB_HUG|$80
.byte "HIDE",VERB_HIDE|$80 .byte "HIDE",VERB_HIDE|$80
.byte "MOVE",VERB_MOVE|$80
.byte $00 .byte $00
@ -901,6 +902,7 @@ noun_lookup:
.byte "IN HAY",NOUN_IN_HAY|$80 .byte "IN HAY",NOUN_IN_HAY|$80
.byte "PUDDLE",NOUN_PUDDLE|$80 .byte "PUDDLE",NOUN_PUDDLE|$80
.byte "MENDELEV",NOUN_MENDELEV|$80 .byte "MENDELEV",NOUN_MENDELEV|$80
.byte "BLEED",NOUN_BLEED|$80
.byte $00 .byte $00

View File

@ -1,310 +1,239 @@
.include "tokens.inc" .include "tokens.inc"
.if 0
;======================= ;=======================
;======================= ;=======================
;======================= ;=======================
; Gary the Horse ; Ned's Cottage
;======================= ;=======================
;======================= ;=======================
;======================= ;=======================
gary_verb_table: ned_cottage_verb_table:
.byte VERB_BREAK
.word gary_break-1
.byte VERB_CLIMB .byte VERB_CLIMB
.word gary_climb-1 .word ned_cottage_climb-1
.byte VERB_FEED .byte VERB_DEPLOY
.word gary_feed-1 .word ned_cottage_deploy-1
.byte VERB_DROP
.word ned_cottage_drop-1
.byte VERB_GET .byte VERB_GET
.word gary_get-1 .word ned_cottage_get-1
.byte VERB_JUMP .byte VERB_JUMP
.word gary_jump-1 .word ned_cottage_jump-1
.byte VERB_KICK .byte VERB_KNOCK
.word gary_kick-1 .word ned_cottage_knock-1
.byte VERB_KILL
.word gary_kill-1
.byte VERB_LOOK .byte VERB_LOOK
.word gary_look-1 .word ned_cottage_look-1
.byte VERB_PET .byte VERB_MOVE
.word gary_pet-1 .word ned_cottage_move-1
.byte VERB_PUNCH .byte VERB_OPEN
.word gary_punch-1 .word ned_cottage_open-1
.byte VERB_SIT .byte VERB_USE
.word gary_sit-1 .word ned_cottage_use-1
.byte VERB_RIDE
.word gary_ride-1
.byte VERB_SCARE
.word gary_scare-1
.byte VERB_TALK
.word gary_talk-1
.byte VERB_WEAR
.word gary_wear-1
.byte 0 .byte 0
;================ ;================
; break ; climb/jump
;================ ;================
gary_sit: ned_cottage_jump:
gary_break: ned_cottage_climb:
lda CURRENT_NOUN
cmp #NOUN_STUMP
beq gary_sit_stump
jmp parse_common_unknown
gary_sit_stump:
jmp gary_look_at_stump
;================
; climb
;================
gary_jump:
gary_climb:
lda CURRENT_NOUN lda CURRENT_NOUN
cmp #NOUN_FENCE cmp #NOUN_FENCE
beq gary_climb_fence beq ned_cottage_climb_fence
jmp parse_common_unknown jmp parse_common_unknown
gary_climb_fence: ned_cottage_climb_fence:
ldx #<gary_climb_fence_message ldx #<ned_cottage_climb_fence_message
ldy #>gary_climb_fence_message ldy #>ned_cottage_climb_fence_message
jmp finish_parse_message jmp finish_parse_message
;================ ;================
; feed ; knock
;================ ;================
gary_feed: ned_cottage_knock:
lda CURRENT_NOUN lda CURRENT_NOUN
cmp #NOUN_GARY cmp #NOUN_BLEED
beq gary_feed_horse beq ned_cottage_knock_door_bleed
cmp #NOUN_HORSE cmp #NOUN_DOOR
beq gary_feed_horse beq ned_cottage_knock_door
cmp #NOUN_NONE
beq ned_cottage_knock_door
jmp parse_common_unknown jmp parse_common_unknown
gary_feed_horse: ned_cottage_knock_door:
ldx #<gary_feed_horse_message ldx #<ned_cottage_knock_door_message
ldy #>gary_feed_horse_message ldy #>ned_cottage_knock_door_message
jmp finish_parse_message jmp finish_parse_message
ned_cottage_knock_door_bleed:
lda GAME_STATE_2
and #KNUCKLES_BLEED
beq not_bleeding
bleeding:
ldx #<ned_cottage_knock_door_bleed_message2
ldy #>ned_cottage_knock_door_bleed_message2
jmp finish_parse_message
not_bleeding:
lda GAME_STATE_2
ora #KNUCKLES_BLEED
sta GAME_STATE_2
ldx #<ned_cottage_knock_door_bleed_message
ldy #>ned_cottage_knock_door_bleed_message
jmp finish_parse_message
;================
; open
;================
ned_cottage_open:
lda CURRENT_NOUN
cmp #NOUN_DOOR
beq ned_cottage_open_door
cmp #NOUN_NONE
beq ned_cottage_open_door
jmp parse_common_unknown
ned_cottage_open_door:
ldx #<ned_cottage_open_door_message
ldy #>ned_cottage_open_door_message
jmp finish_parse_message
;================
; push/pull
;================
ned_cottage_push:
ned_cottage_pull:
lda CURRENT_NOUN
cmp #NOUN_DOOR
beq ned_cottage_push_door
jmp parse_common_unknown
ned_cottage_push_door:
ldx #<ned_cottage_push_door_message
ldy #>ned_cottage_push_door_message
jmp finish_parse_message
;================ ;================
; get ; get
;================ ;================
gary_get: ned_cottage_get:
ned_cottage_move:
lda CURRENT_NOUN lda CURRENT_NOUN
cmp #NOUN_FLIES cmp #NOUN_ROCK
beq gary_get_flies beq ned_cottage_rock
; else "probably wish" message ; else "probably wish" message
jmp parse_common_get jmp parse_common_get
gary_get_flies: ned_cottage_rock:
ldx #<gary_get_flies_message ldx #<ned_cottage_get_rock_message
ldy #>gary_get_flies_message ldy #>ned_cottage_get_rock_message
jmp finish_parse_message jmp finish_parse_message
;=================== ;================
; kick/kill/punch ; deploy/drop/use baby
;=================== ;================
ned_cottage_deploy:
gary_kick: ned_cottage_drop:
gary_kill: ned_cottage_use:
gary_punch:
lda CURRENT_NOUN lda CURRENT_NOUN
cmp #NOUN_GARY cmp #NOUN_BABY
beq kick_gary beq ned_cottage_baby
cmp #NOUN_HORSE
beq kick_gary
cmp #NOUN_FLIES
beq kick_flies
cmp #NOUN_STUMP
beq kick_stump
jmp parse_common_unknown jmp parse_common_unknown
kick_gary: ned_cottage_baby:
; TODO: this kills you ldx #<ned_cottage_baby_before_message
ldx #<gary_kick_horse_message ldy #>ned_cottage_baby_before_message
ldy #>gary_kick_horse_message
jsr partial_message_step
ldx #<gary_kick_horse_message2
ldy #>gary_kick_horse_message2
jmp finish_parse_message jmp finish_parse_message
kick_flies:
ldx #<gary_kick_flies_message ;===================
ldy #>gary_kick_flies_message ; break/kick/punch
;===================
ned_cottage_break:
ned_cottage_kick:
ned_cottage_punch:
lda CURRENT_NOUN
cmp #NOUN_DOOR
beq kick_cottage
jmp parse_common_unknown
kick_cottage:
ldx #<ned_cottage_break_door_message
ldy #>ned_cottage_break_door_message
jmp finish_parse_message jmp finish_parse_message
kick_stump:
ldx #<gary_kick_stump_message
ldy #>gary_kick_stump_message
jmp finish_parse_message
;================= ;=================
; look ; look
;================= ;=================
gary_look: ned_cottage_look:
lda CURRENT_NOUN lda CURRENT_NOUN
cmp #NOUN_FENCE cmp #NOUN_FENCE
beq gary_look_at_fence beq ned_cottage_look_at_fence
cmp #NOUN_FLIES cmp #NOUN_COTTAGE
beq gary_look_at_flies beq ned_cottage_look_at_cottage
cmp #NOUN_GARY cmp #NOUN_ROCK
beq gary_look_at_horse beq ned_cottage_look_at_rock
cmp #NOUN_HORSE cmp #NOUN_HOLE
beq gary_look_at_horse beq ned_cottage_look_at_hole
cmp #NOUN_STUMP
beq gary_look_at_stump
cmp #NOUN_NONE cmp #NOUN_NONE
beq gary_look_at beq ned_cottage_look_at
jmp parse_common_look jmp parse_common_look
gary_look_at: ned_cottage_look_at:
ldx #<gary_look_message ldx #<ned_cottage_look_message
ldy #>gary_look_message ldy #>ned_cottage_look_message
jmp finish_parse_message jmp finish_parse_message
gary_look_at_fence: ned_cottage_look_at_cottage:
ldx #<gary_look_fence_message ldx #<ned_cottage_look_cottage_message
ldy #>gary_look_fence_message ldy #>ned_cottage_look_cottage_message
jmp finish_parse_message jmp finish_parse_message
gary_look_at_flies: ned_cottage_look_at_fence:
ldx #<gary_look_flies_message ldx #<ned_cottage_look_fence_message
ldy #>gary_look_flies_message ldy #>ned_cottage_look_fence_message
jmp finish_parse_message jmp finish_parse_message
gary_look_at_gary: ned_cottage_look_at_rock:
gary_look_at_horse: ldx #<ned_cottage_look_rock_message
ldx #<gary_look_horse_message ldy #>ned_cottage_look_rock_message
ldy #>gary_look_horse_message
jmp finish_parse_message jmp finish_parse_message
gary_look_at_stump: ned_cottage_look_at_hole:
ldx #<gary_look_stump_message ldx #<ned_cottage_look_hole_message
ldy #>gary_look_stump_message ldy #>ned_cottage_look_hole_message
jmp finish_parse_message
;================
; pet
;================
gary_pet:
lda CURRENT_NOUN
cmp #NOUN_GARY
beq gary_pet_horse
cmp #NOUN_HORSE
beq gary_pet_horse
jmp parse_common_unknown
gary_pet_horse:
ldx #<gary_pet_horse_message
ldy #>gary_pet_horse_message
jmp finish_parse_message
;================
; ride
;================
gary_ride:
lda CURRENT_NOUN
cmp #NOUN_GARY
beq gary_ride_horse
cmp #NOUN_HORSE
beq gary_ride_horse
jmp parse_common_unknown
gary_ride_horse:
ldx #<gary_ride_horse_message
ldy #>gary_ride_horse_message
jmp finish_parse_message
;================
; scare
;================
gary_scare:
lda CURRENT_NOUN
cmp #NOUN_GARY
beq gary_scare_horse
cmp #NOUN_HORSE
beq gary_scare_horse
jmp parse_common_unknown
; FIXME: randomly pick from 3 choices
gary_scare_horse:
ldx #<gary_scare_horse_message1
ldy #>gary_scare_horse_message1
jmp finish_parse_message jmp finish_parse_message
;================ .if 0
; talk
;================
gary_talk:
lda CURRENT_NOUN
cmp #NOUN_GARY
beq gary_talk_horse
cmp #NOUN_HORSE
beq gary_talk_horse
cmp #NOUN_STUMP
beq gary_look_at_stump
cmp #NOUN_NONE
beq gary_talk_horse
jmp parse_common_talk
gary_talk_horse:
ldx #<gary_talk_message
ldy #>gary_talk_message
jmp finish_parse_message
;===================
; wear mask
;===================
gary_wear:
lda CURRENT_NOUN
cmp #NOUN_MASK
beq wear_mask
jmp parse_common_unknown
wear_mask:
jmp parse_common_unknown
;======================= ;=======================
;======================= ;=======================

View File

@ -4,6 +4,7 @@
;==================================== ;====================================
; + look ; + look
ned_cottage_look_message:
.byte "There's a run-of-the-mill",13 .byte "There's a run-of-the-mill",13
.byte "non-burninated",13 .byte "non-burninated",13
.byte "thatched-roof cottage",13 .byte "thatched-roof cottage",13
@ -11,6 +12,7 @@
.byte "a little shoddy.",0 .byte "a little shoddy.",0
; + look cottage ; + look cottage
ned_cottage_look_cottage_message:
.byte "A run-of-the-mill,",13 .byte "A run-of-the-mill,",13
.byte "non-burninated",13 .byte "non-burninated",13
.byte "thatched-roof cottage",13 .byte "thatched-roof cottage",13
@ -18,6 +20,7 @@
.byte "little shoddy.",0 .byte "little shoddy.",0
; + open door ; + open door
ned_cottage_open_door_message:
.byte "How? There's no knob.",0 .byte "How? There's no knob.",0
; + open door (after baby opens) ; + open door (after baby opens)
@ -25,33 +28,46 @@
; + pull door ; + pull door
; + push door ; + push door
ned_cottage_push_door_message:
.byte "It doesn't budge, man.",0 .byte "It doesn't budge, man.",0
; + knock ; + knock
ned_cottage_knock_door_message:
.byte "You could knock until your",13 .byte "You could knock until your",13
.byte "knuckles bleed. Nobody's",13 .byte "knuckles bleed. Nobody's",13
.byte "home.",0 .byte "home.",0
; + knock until knuckles bleed ; + knock until knuckles bleed
ned_cottage_knock_door_bleed_message:
.byte "You knock for about 4 hours",13 .byte "You knock for about 4 hours",13
.byte "until your knuckles are raw",13 .byte "until your knuckles are raw",13
.byte "and bloody. That was fun!",0 .byte "and bloody. That was fun!",0
; + knock until knuckles bleed (again) ; + knock until knuckles bleed (again)
ned_cottage_knock_door_bleed_message2:
.byte "You done that already. A",13 .byte "You done that already. A",13
.byte "great time was had by all.",0 .byte "great time was had by all.",0
; + break door ; + break door
; + kick door ; + kick door
; + punch door ; + punch door
ned_cottage_break_door_message:
.byte "Violence is not the answer.",0 .byte "Violence is not the answer.",0
; + look fence ; + look fence
ned_cottage_look_fence_message:
.byte "A standard peasant fence.",13 .byte "A standard peasant fence.",13
.byte "Trogdor makes milk's meat",13 .byte "Trogdor makes milk's meat",13
.byte "outta these things.",0 .byte "outta these things.",0
; + look hole (before deploying baby) ; + climb/jump fence
ned_cottage_climb_fence_message:
.byte "No, you have business to",13
.byte "attend to here in",13
.byte "Peasantry.",0
; + look hole (before deploying baby) (even if rock not moved yet)
ned_cottage_look_hole_message:
.byte "You peer into the tiny",13 .byte "You peer into the tiny",13
.byte "opening. The cottage",13 .byte "opening. The cottage",13
.byte "appears to be empty.",0 .byte "appears to be empty.",0
@ -60,6 +76,7 @@
.byte "There is no baby here, but there's an open door on the other side of the room. If you could only get to it somehow!",0 .byte "There is no baby here, but there's an open door on the other side of the room. If you could only get to it somehow!",0
; + look rock (before removing it) ; + look rock (before removing it)
ned_cottage_look_rock_message:
.byte "There appears to be a loose",13 .byte "There appears to be a loose",13
.byte "stone towards the back of",13 .byte "stone towards the back of",13
.byte "the cottage.",0 .byte "the cottage.",0
@ -69,6 +86,7 @@
; + get rock +2 POINTS ; + get rock +2 POINTS
; + move rock ; + move rock
ned_cottage_get_rock_message:
.byte "You slide the stone over to",13 .byte "You slide the stone over to",13
.byte "reveal a little hole. If",13 .byte "reveal a little hole. If",13
.byte "only you could cut off your",13 .byte "only you could cut off your",13
@ -104,6 +122,7 @@
.byte "You grow apart and the letters from him become fewer and fewer. He develops a severe mead problem and blames you for never being there.",0 .byte "You grow apart and the letters from him become fewer and fewer. He develops a severe mead problem and blames you for never being there.",0
; + deploy/drop/use baby (before baby) ; + deploy/drop/use baby (before baby)
ned_cottage_baby_before_message:
.byte "Swell idea, but is you",13 .byte "Swell idea, but is you",13
.byte "ain't my baby? I.e. you",13 .byte "ain't my baby? I.e. you",13
.byte "ain't got one?",0 .byte "ain't got one?",0

View File

@ -72,7 +72,8 @@ VERB_HELP = 70
VERB_ATTACK = 71 VERB_ATTACK = 71
VERB_HUG = 72 VERB_HUG = 72
VERB_HIDE = 73 VERB_HIDE = 73
VERB_ALL_DONE = 74 ; not a verb, but indicating end, must be last VERB_MOVE = 74
VERB_ALL_DONE = 75 ; not a verb, but indicating end, must be last
NOUN_NONE = 0 NOUN_NONE = 0
; ;
@ -176,5 +177,6 @@ NOUN_STONE = 97
NOUN_IN_HAY = 98 NOUN_IN_HAY = 98
NOUN_PUDDLE = 99 NOUN_PUDDLE = 99
NOUN_MENDELEV = 100 NOUN_MENDELEV = 100
NOUN_BLEED = 101
; ;
NOUN_UNKNOWN = 101 NOUN_UNKNOWN = 102