peasant: can deploy baby at Ned's cottage

This commit is contained in:
Vince Weaver 2021-11-28 01:59:53 -05:00
parent e42b13c5bc
commit c23087b057
6 changed files with 187 additions and 4 deletions

View File

@ -193,8 +193,9 @@ POINTS IMPLEMENTED: (in order of implementation)
+ 7 (talk to knight once have belt, robe, and on fire)
+ 7 (get riches from jhonka)
+ 5 (throw baby)
+ 5 (deploy baby)
======
91 points
96 points
deaths/endings implemented

View File

@ -858,6 +858,13 @@ lake_west_throw_baby:
and #INV1_BABY
beq lake_west_throw_baby_no_baby
; next see if baby gone
lda INVENTORY_1_GONE
and #INV1_BABY
bne lake_west_throw_baby_no_baby
; see if in right spot
; TODO:
lda PEASANT_X

View File

@ -43,6 +43,10 @@ ned_cottage_verb_table:
.word ned_cottage_use-1
.byte VERB_TRY
.word ned_cottage_try-1
.byte VERB_PUT
.word ned_cottage_put-1
.byte VERB_CLOSE
.word ned_cottage_close-1
.byte 0
;================
@ -62,6 +66,35 @@ ned_cottage_climb_fence:
ldy #>ned_cottage_climb_fence_message
jmp finish_parse_message
;================
; close
;================
ned_cottage_close:
lda CURRENT_NOUN
cmp #NOUN_DOOR
beq ned_cottage_close_door
jmp parse_common_unknown
ned_cottage_close_door:
; see if baby gone
lda INVENTORY_1_GONE
and #INV1_BABY
bne ned_cottage_close_door_after
ned_cottage_close_door_before:
ldx #<ned_cottage_close_door_before_message
ldy #>ned_cottage_close_door_before_message
jmp finish_parse_message
ned_cottage_close_door_after:
ldx #<ned_cottage_close_door_after_message
ldy #>ned_cottage_close_door_after_message
jmp finish_parse_message
;================
; knock
;================
@ -117,10 +150,21 @@ ned_cottage_open:
jmp parse_common_unknown
ned_cottage_open_door:
; see if baby was deployed
lda INVENTORY_1_GONE
and #INV1_BABY
bne ned_cottage_open_door_after_baby
ned_cottage_open_door_before_baby:
ldx #<ned_cottage_open_door_message
ldy #>ned_cottage_open_door_message
jmp finish_parse_message
ned_cottage_open_door_after_baby:
ldx #<ned_cottage_open_door_after_baby_message
ldy #>ned_cottage_open_door_after_baby_message
jmp finish_parse_message
;================
; push/pull
;================
@ -225,6 +269,7 @@ ned_cottage_rock_moved:
ned_cottage_deploy:
ned_cottage_drop:
ned_cottage_use:
ned_cottage_put:
lda CURRENT_NOUN
cmp #NOUN_BABY
@ -233,10 +278,67 @@ ned_cottage_use:
jmp parse_common_unknown
ned_cottage_baby:
; see if have baby
lda INVENTORY_1
and #INV1_BABY
beq ned_cottage_baby_nobaby
; see if baby gone
lda INVENTORY_1_GONE
and #INV1_BABY
bne ned_cottage_baby_gone
; check_if_rock_moved
lda GAME_STATE_2
and #COTTAGE_ROCK_MOVED
beq ned_cottage_baby_before
; see if baby was deployed
lda INVENTORY_1_GONE
and #INV1_BABY
bne ned_cottage_baby_gone
ned_cottage_baby_deploy:
; actually deploy baby
ldx #<ned_cottage_deploy_baby_message
ldy #>ned_cottage_deploy_baby_message
jsr partial_message_step
; add points
lda #5
jsr score_points
; baby is gone
lda INVENTORY_1_GONE
ora #INV1_BABY
sta INVENTORY_1_GONE
ldx #<ned_cottage_deploy_baby_message2
ldy #>ned_cottage_deploy_baby_message2
jsr partial_message_step
ldx #<ned_cottage_deploy_baby_message3
ldy #>ned_cottage_deploy_baby_message3
jmp finish_parse_message
ned_cottage_baby_before: ; before rock
ldx #<ned_cottage_baby_before_message
ldy #>ned_cottage_baby_before_message
jmp finish_parse_message
ned_cottage_baby_nobaby:
ldx #<ned_cottage_baby_nobaby_message
ldy #>ned_cottage_baby_nobaby_message
jmp finish_parse_message
ned_cottage_baby_gone:
ldx #<ned_cottage_baby_gone_message
ldy #>ned_cottage_baby_gone_message
jmp finish_parse_message
;===================
; break/kick/punch
@ -340,10 +442,22 @@ ned_cottage_look_at_rock:
jmp finish_parse_message
ned_cottage_look_at_hole:
; see if baby was deployed
lda INVENTORY_1_GONE
and #INV1_BABY
bne ned_cottage_look_at_hole_after
ned_cottage_look_at_hole_before:
ldx #<ned_cottage_look_hole_message
ldy #>ned_cottage_look_hole_message
jmp finish_parse_message
ned_cottage_look_at_hole_after:
ldx #<ned_cottage_look_hole_after_message
ldy #>ned_cottage_look_hole_after_message
jmp finish_parse_message
;=======================
;=======================

View File

@ -32,7 +32,7 @@
.byte $20 ; SCORE_TENSONES= $9F
.byte INV1_ARROW | INV1_BABY | INV1_KERREK_BELT | INV1_CHICKEN_FEED | INV1_BOW | INV1_MONSTER_MASK | INV1_PEBBLES | INV1_PILLS
; INVENTORY_1 = $A0
.byte INV2_RICHES|INV2_MEATBALL_SUB | INV2_TRINKET
.byte INV2_RICHES| INV2_SODA | INV2_MEATBALL_SUB | INV2_TRINKET
; INVENTORY_2 = $A1
.byte INV3_SHIRT|INV3_MAP
; INVENTORY_3 = $A2

View File

@ -0,0 +1,46 @@
; SAVE1 -- After getting the pills
.include "zp.inc"
; want to load this to address $90
;
.byte LOAD_PEASANT4 ; WHICH_LOAD = $90
.byte 10 ; PEASANT_X = $91
.byte 100 ; PEASANT_Y = $92
.byte PEASANT_DIR_UP ; PEASANT_DIR = $93
.byte 0 ; MAP_X = $94
.byte 1 ; MAP_Y = $95
.byte LOCATION_OUTSIDE_LADY ; MAP_LOCATION = $96
.byte TALKED_TO_MENDELEV | HALDO_TO_DONGOLEV | ARROW_BEATEN| GARY_SCARED | TRINKET_GIVEN | LADY_GONE
; BABY_IN_WELL | BUCKET_DOWN_WELL
; GAME_STATE_0 = $97
.byte FISH_FED | PUDDLE_WET
; RAINING
; FISH_FED | IN_HAY_BALE | NIGHT | POT_ON_HEAD | WEARING_ROBE
; GAME_STATE_1 = $98
.byte TALKED_TO_KNIGHT
; ON_FIRE | COTTAGE_ROCK_MOVED | KNUCKLES_BLEED
; DRESSER_OPEN | COVERED_IN_MUD | GOT_MUDDY_ALREADY
; GAME_STATE_2 = $99
.byte $00 ; NED_STATUS = $9A
.byte BUSH_1_SEARCHED | BUSH_2_SEARCHED | BUSH_3_SEARCHED | BUSH_4_SEARCHED
; BUSH_STATUS = $9B
.byte KERREK_ROW1 | KERREK_DECOMPOSING ; KERREK_STATE = $9C
.byte $00 ; ARROW_SCORE = $9D
.byte $00 ; SCORE_HUNDREDS= $9E
.byte $20 ; SCORE_TENSONES= $9F
.byte INV1_ARROW | INV1_BABY | INV1_KERREK_BELT | INV1_CHICKEN_FEED | INV1_BOW | INV1_MONSTER_MASK | INV1_PEBBLES | INV1_PILLS
; INVENTORY_1 = $A0
.byte INV2_RICHES| INV2_SODA | INV2_MEATBALL_SUB | INV2_TRINKET
; INVENTORY_2 = $A1
.byte INV3_SHIRT|INV3_MAP
; INVENTORY_3 = $A2
.byte INV1_ARROW| INV1_CHICKEN_FEED | INV1_PEBBLES
; INVENTORY_1_GONE = $A3
.byte INV2_RICHES | INV2_TRINKET
; INVENTORY_2_GONE_= $A4
.byte $00 ; INVENTORY_3_GONE = $A5
.byte 22 ; KERREK_X = $A6
.byte 76 ; KERREK_Y = $A7

View File

@ -25,6 +25,7 @@ ned_cottage_open_door_message:
.byte "How? There's no knob.",0
; + open door (after baby opens)
ned_cottage_open_door_after_baby_message:
.byte "It's already open. Since",13
.byte "this is an adventure game",13
.byte "we're gonna proffer you",13
@ -33,10 +34,12 @@ ned_cottage_open_door_message:
; + pull door
; + push door
; same even when open
ned_cottage_push_door_message:
.byte "It doesn't budge, man.",0
; + knock
; same even when open
ned_cottage_knock_door_message:
.byte "You could knock until your",13
.byte "knuckles bleed. Nobody's",13
@ -78,6 +81,7 @@ ned_cottage_look_hole_message:
.byte "appears to be empty.",0
; + look hole (after deploying baby)
ned_cottage_look_hole_after_message:
.byte "There is no baby here, but",13
.byte "there's an open door on the",13
.byte "other side of the room. If",13
@ -130,9 +134,13 @@ ned_cottage_try_message:
.byte "nothing.",0
;+5 POINTS
; + deploy baby
; + put baby into the hole
ned_cottage_deploy_baby_message:
.byte "Deploying Q-Baby...",0
; animation
ned_cottage_deploy_baby_message2:
.byte "Way to go, baby! It got the",13
.byte "cottage door opened and",13
.byte "headed off to a new life.",13
@ -145,6 +153,7 @@ ned_cottage_try_message:
.byte "building better cottages",13
.byte "for a better tomorrow.",0
ned_cottage_deploy_baby_message3:
.byte "You grow apart and the",13
.byte "letters from him become",13
.byte "fewer and fewer. He",13
@ -153,15 +162,19 @@ ned_cottage_try_message:
.byte "never being there.",0
; + deploy/drop/use baby (before baby)
ned_cottage_baby_before_message:
ned_cottage_baby_nobaby_message:
.byte "Swell idea, but is you",13
.byte "ain't my baby? I.e. you",13
.byte "ain't got one?",0
; + deploy/drop/use baby (before moving stone)
.byte "Use the baby where? You haven't anywhere inconsiderate to stuff 'm.",0
ned_cottage_baby_before_message:
.byte "Use the baby where? You",13
.byte "haven't anywhere",13
.byte "inconsiderate to stuff'm.",0
; + deploy/drop/use baby (after baby left)
ned_cottage_baby_gone_message:
.byte "Li'l P.B. has moved on, and",13
.byte "the door seems to be",13
.byte "open... I can't see why",13
@ -169,10 +182,12 @@ ned_cottage_baby_before_message:
.byte "over again.",0
; + close door (before baby opens)
ned_cottage_close_door_before_message:
.byte "Already done. That was",13
.byte "easy!",0
; + close door (after baby opens)
ned_cottage_close_door_after_message:
.byte "You can't. That baby really",13
.byte "wrenched it open good.",0