peasant: implement "throw baby"

This commit is contained in:
Vince Weaver 2021-11-28 00:55:19 -05:00
parent d2c345dd59
commit e42b13c5bc
7 changed files with 126 additions and 11 deletions

View File

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

View File

@ -835,6 +835,7 @@ lake_west_swim_lake:
ldy #>lake_west_swim_message
jmp finish_parse_message
;================
; throw
;================
@ -844,15 +845,67 @@ lake_west_throw:
cmp #NOUN_BABY
beq lake_west_throw_baby
cmp #NOUN_FEED
beq lake_west_throw_feed
jmp parse_common_unknown
lake_west_throw_baby:
; first see if have baby
lda INVENTORY_1
and #INV1_BABY
beq lake_west_throw_baby_no_baby
; see if in right spot
; TODO:
lda PEASANT_X
lda PEASANT_Y
; see if have soda
lda INVENTORY_2
and #INV2_SODA
bne lake_west_throw_baby_already
; throwing for the first time
lake_west_throw_baby_for_reals:
; do the animation
ldx #<lake_west_throw_baby_message
ldy #>lake_west_throw_baby_message
jsr partial_message_step
; score points
lda #5
jsr score_points
; get soda
lda INVENTORY_2
ora #INV2_SODA
sta INVENTORY_2
ldx #<lake_west_throw_baby_message2
ldy #>lake_west_throw_baby_message2
jmp finish_parse_message
lake_west_throw_baby_already:
ldx #<lake_west_throw_baby_already_message
ldy #>lake_west_throw_baby_already_message
jmp finish_parse_message
lake_west_throw_baby_no_baby:
ldx #<lake_west_throw_baby_no_baby_message
ldy #>lake_west_throw_baby_no_baby_message
jmp finish_parse_message
lake_west_throw_feed:
ldx #<lake_east_throw_feed_too_south_message
ldy #>lake_east_throw_feed_too_south_message
jmp finish_parse_message

View File

@ -38,7 +38,7 @@
; INVENTORY_3 = $A2
.byte INV1_ARROW| INV1_CHICKEN_FEED | INV1_PEBBLES
; INVENTORY_1_GONE = $A3
.byte INV2_TRINKET
.byte INV2_RICHES | INV2_TRINKET
; INVENTORY_2_GONE_= $A4
.byte $00 ; INVENTORY_3_GONE = $A5
.byte 22 ; KERREK_X = $A6

View File

@ -36,7 +36,7 @@
; INVENTORY_3 = $A2
.byte INV1_ARROW|INV1_PEBBLES
; INVENTORY_1_GONE = $A3
.byte INV2_TRINKET
.byte INV2_RICHES | INV2_TRINKET
; INVENTORY_2_GONE_= $A4
.byte $00 ; INVENTORY_3_GONE = $A5
.byte 22 ; KERREK_X = $A6

View File

@ -0,0 +1,46 @@
; SAVE1 -- After getting the sub
.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 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_BOW | INV1_MONSTER_MASK | INV1_PEBBLES
; INVENTORY_1 = $A0
.byte INV2_RICHES|INV2_MEATBALL_SUB | INV2_TRINKET
; INVENTORY_2 = $A1
.byte INV3_SHIRT|INV3_MAP
; INVENTORY_3 = $A2
.byte INV1_ARROW|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

@ -38,7 +38,7 @@
; INVENTORY_3 = $A2
.byte INV1_ARROW| INV1_CHICKEN_FEED | INV1_PEBBLES
; INVENTORY_1_GONE = $A3
.byte INV2_TRINKET
.byte INV2_RICHES | INV2_TRINKET
; INVENTORY_2_GONE_= $A4
.byte $00 ; INVENTORY_3_GONE = $A5
.byte 22 ; KERREK_X = $A6

View File

@ -380,25 +380,40 @@ lake_west_skip_stones_message:
.byte "but you can't reach from",13
.byte "here.",0
; TODO
; +5 POINTS
; + throw baby
.byte "Something tells you this is a good idea and you lob the little one into the lake.",0
.byte "You won't be arrested after all! The little guy has resurfaced safely, carrying an old bottle of soda. You take the soda and stow your swaddling buddy for takeoff.",0
lake_west_throw_baby_message:
.byte "Something tells you this is",13
.byte "a good idea and you lob the",13
.byte "little one into the lake.",0
lake_west_throw_baby_message2:
.byte "You won't be arrested after",13
.byte "all! The little guy has",13
.byte "resurfaced safely,",13
.byte "carrying an old bottle of",13
.byte "soda. You take the soda and",13
.byte "stow your swaddling buddy",13
.byte "for takeoff.",0
; + throw baby (before getting the baby)
lake_west_throw_baby_message:
lake_west_throw_baby_no_baby_message:
.byte "I think you misread the",13
.byte "walkthrough on GameFAQs.",13
.byte "You gotta get the baby",13
.byte "first.",0
; TODO
; + throw baby (after getting the soda)
.byte "Baby Dashing is a little waterlogged from the toss, and you read his soft gurgling to mean that there's no more soda left.",0
lake_west_throw_baby_already_message:
.byte "Baby Dashing is a little",13
.byte "waterlogged from the last",13
.byte "toss, and you read his soft",13
.byte "gurgling to mean that",13
.byte "there's no more soda left.",0
; + throw feed (at south side)
;.byte "Maybe try again from the center of the lake. Looks deeper there.",0
; + throw baby (not in right spot)
; same as lake_east_throw_feed_too_south_message:
;==================