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 (talk to knight once have belt, robe, and on fire)
+ 7 (get riches from jhonka) + 7 (get riches from jhonka)
+ 5 (throw baby) + 5 (throw baby)
+ 5 (deploy baby)
====== ======
91 points 96 points
deaths/endings implemented deaths/endings implemented

View File

@ -858,6 +858,13 @@ lake_west_throw_baby:
and #INV1_BABY and #INV1_BABY
beq lake_west_throw_baby_no_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 ; see if in right spot
; TODO: ; TODO:
lda PEASANT_X lda PEASANT_X

View File

@ -43,6 +43,10 @@ ned_cottage_verb_table:
.word ned_cottage_use-1 .word ned_cottage_use-1
.byte VERB_TRY .byte VERB_TRY
.word ned_cottage_try-1 .word ned_cottage_try-1
.byte VERB_PUT
.word ned_cottage_put-1
.byte VERB_CLOSE
.word ned_cottage_close-1
.byte 0 .byte 0
;================ ;================
@ -62,6 +66,35 @@ ned_cottage_climb_fence:
ldy #>ned_cottage_climb_fence_message ldy #>ned_cottage_climb_fence_message
jmp finish_parse_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 ; knock
;================ ;================
@ -117,10 +150,21 @@ ned_cottage_open:
jmp parse_common_unknown jmp parse_common_unknown
ned_cottage_open_door: 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 ldx #<ned_cottage_open_door_message
ldy #>ned_cottage_open_door_message ldy #>ned_cottage_open_door_message
jmp finish_parse_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 ; push/pull
;================ ;================
@ -225,6 +269,7 @@ ned_cottage_rock_moved:
ned_cottage_deploy: ned_cottage_deploy:
ned_cottage_drop: ned_cottage_drop:
ned_cottage_use: ned_cottage_use:
ned_cottage_put:
lda CURRENT_NOUN lda CURRENT_NOUN
cmp #NOUN_BABY cmp #NOUN_BABY
@ -233,10 +278,67 @@ ned_cottage_use:
jmp parse_common_unknown jmp parse_common_unknown
ned_cottage_baby: 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 ldx #<ned_cottage_baby_before_message
ldy #>ned_cottage_baby_before_message ldy #>ned_cottage_baby_before_message
jmp finish_parse_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 ; break/kick/punch
@ -340,10 +442,22 @@ ned_cottage_look_at_rock:
jmp finish_parse_message jmp finish_parse_message
ned_cottage_look_at_hole: 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 ldx #<ned_cottage_look_hole_message
ldy #>ned_cottage_look_hole_message ldy #>ned_cottage_look_hole_message
jmp finish_parse_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 $20 ; SCORE_TENSONES= $9F
.byte INV1_ARROW | INV1_BABY | INV1_KERREK_BELT | INV1_CHICKEN_FEED | INV1_BOW | INV1_MONSTER_MASK | INV1_PEBBLES | INV1_PILLS .byte INV1_ARROW | INV1_BABY | INV1_KERREK_BELT | INV1_CHICKEN_FEED | INV1_BOW | INV1_MONSTER_MASK | INV1_PEBBLES | INV1_PILLS
; INVENTORY_1 = $A0 ; INVENTORY_1 = $A0
.byte INV2_RICHES|INV2_MEATBALL_SUB | INV2_TRINKET .byte INV2_RICHES| INV2_SODA | INV2_MEATBALL_SUB | INV2_TRINKET
; INVENTORY_2 = $A1 ; INVENTORY_2 = $A1
.byte INV3_SHIRT|INV3_MAP .byte INV3_SHIRT|INV3_MAP
; INVENTORY_3 = $A2 ; 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 .byte "How? There's no knob.",0
; + open door (after baby opens) ; + open door (after baby opens)
ned_cottage_open_door_after_baby_message:
.byte "It's already open. Since",13 .byte "It's already open. Since",13
.byte "this is an adventure game",13 .byte "this is an adventure game",13
.byte "we're gonna proffer you",13 .byte "we're gonna proffer you",13
@ -33,10 +34,12 @@ ned_cottage_open_door_message:
; + pull door ; + pull door
; + push door ; + push door
; same even when open
ned_cottage_push_door_message: ned_cottage_push_door_message:
.byte "It doesn't budge, man.",0 .byte "It doesn't budge, man.",0
; + knock ; + knock
; same even when open
ned_cottage_knock_door_message: 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
@ -78,6 +81,7 @@ ned_cottage_look_hole_message:
.byte "appears to be empty.",0 .byte "appears to be empty.",0
; + look hole (after deploying baby) ; + look hole (after deploying baby)
ned_cottage_look_hole_after_message:
.byte "There is no baby here, but",13 .byte "There is no baby here, but",13
.byte "there's an open door on the",13 .byte "there's an open door on the",13
.byte "other side of the room. If",13 .byte "other side of the room. If",13
@ -130,9 +134,13 @@ ned_cottage_try_message:
.byte "nothing.",0 .byte "nothing.",0
;+5 POINTS ;+5 POINTS
; + deploy baby
; + put baby into the hole ; + put baby into the hole
ned_cottage_deploy_baby_message:
.byte "Deploying Q-Baby...",0 .byte "Deploying Q-Baby...",0
; animation
ned_cottage_deploy_baby_message2:
.byte "Way to go, baby! It got the",13 .byte "Way to go, baby! It got the",13
.byte "cottage door opened and",13 .byte "cottage door opened and",13
.byte "headed off to a new life.",13 .byte "headed off to a new life.",13
@ -145,6 +153,7 @@ ned_cottage_try_message:
.byte "building better cottages",13 .byte "building better cottages",13
.byte "for a better tomorrow.",0 .byte "for a better tomorrow.",0
ned_cottage_deploy_baby_message3:
.byte "You grow apart and the",13 .byte "You grow apart and the",13
.byte "letters from him become",13 .byte "letters from him become",13
.byte "fewer and fewer. He",13 .byte "fewer and fewer. He",13
@ -153,15 +162,19 @@ ned_cottage_try_message:
.byte "never being there.",0 .byte "never being there.",0
; + deploy/drop/use baby (before baby) ; + deploy/drop/use baby (before baby)
ned_cottage_baby_before_message: ned_cottage_baby_nobaby_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
; + deploy/drop/use baby (before moving stone) ; + 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) ; + deploy/drop/use baby (after baby left)
ned_cottage_baby_gone_message:
.byte "Li'l P.B. has moved on, and",13 .byte "Li'l P.B. has moved on, and",13
.byte "the door seems to be",13 .byte "the door seems to be",13
.byte "open... I can't see why",13 .byte "open... I can't see why",13
@ -169,10 +182,12 @@ ned_cottage_baby_before_message:
.byte "over again.",0 .byte "over again.",0
; + close door (before baby opens) ; + close door (before baby opens)
ned_cottage_close_door_before_message:
.byte "Already done. That was",13 .byte "Already done. That was",13
.byte "easy!",0 .byte "easy!",0
; + close door (after baby opens) ; + close door (after baby opens)
ned_cottage_close_door_after_message:
.byte "You can't. That baby really",13 .byte "You can't. That baby really",13
.byte "wrenched it open good.",0 .byte "wrenched it open good.",0