diff --git a/games/peasant/NOTES b/games/peasant/NOTES index a080d8e4..0d658402 100644 --- a/games/peasant/NOTES +++ b/games/peasant/NOTES @@ -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 diff --git a/games/peasant/peasant3_actions.s b/games/peasant/peasant3_actions.s index 62c62359..6d6e848e 100644 --- a/games/peasant/peasant3_actions.s +++ b/games/peasant/peasant3_actions.s @@ -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 + 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 jmp finish_parse_message +lake_west_throw_baby_already: + ldx #lake_west_throw_baby_already_message + jmp finish_parse_message +lake_west_throw_baby_no_baby: + ldx #lake_west_throw_baby_no_baby_message + jmp finish_parse_message + + +lake_west_throw_feed: + ldx #lake_east_throw_feed_too_south_message + jmp finish_parse_message diff --git a/games/peasant/save1.s b/games/peasant/save1.s index 2324b134..5de20d9d 100644 --- a/games/peasant/save1.s +++ b/games/peasant/save1.s @@ -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 diff --git a/games/peasant/saves/save1_12_baby.s b/games/peasant/saves/save1_12_baby.s index a0cbe9d8..031bab91 100644 --- a/games/peasant/saves/save1_12_baby.s +++ b/games/peasant/saves/save1_12_baby.s @@ -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 diff --git a/games/peasant/saves/save1_13_sub.s b/games/peasant/saves/save1_13_sub.s new file mode 100644 index 00000000..ff44c5e7 --- /dev/null +++ b/games/peasant/saves/save1_13_sub.s @@ -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 + diff --git a/games/peasant/saves/save1_15_pills.s b/games/peasant/saves/save1_15_pills.s index 2324b134..5de20d9d 100644 --- a/games/peasant/saves/save1_15_pills.s +++ b/games/peasant/saves/save1_15_pills.s @@ -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 diff --git a/games/peasant/text/peasant3.inc b/games/peasant/text/peasant3.inc index eb6aec80..7c9da97b 100644 --- a/games/peasant/text/peasant3.inc +++ b/games/peasant/text/peasant3.inc @@ -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: ;==================