peasant: hook up feeding the fish actions

This commit is contained in:
Vince Weaver 2021-10-29 01:28:16 -04:00
parent bef6200f28
commit b46102c4e0
3 changed files with 260 additions and 11 deletions

View File

@ -173,8 +173,9 @@ POINTS IMPLEMENTED: (in order of implementation)
+ 5 (give riches)
+ 5 (give baby) [inn]
+ 3 (get room)
+ 2 (feed fish)
======
29 points
31 points
deaths implemented

View File

@ -197,6 +197,22 @@ cottage_take:
jmp parse_common_get
cottage_get_map:
lda INVENTORY_3
and #INV3_MAP
beq actually_get_map
already_have_map:
ldx #<cottage_get_map_already_message
ldy #>cottage_get_map_already_message
jmp finish_parse_message
actually_get_map:
; actually get map
lda INVENTORY_3
ora #INV3_MAP
sta INVENTORY_3
ldx #<cottage_get_map_message
ldy #>cottage_get_map_message
jmp finish_parse_message
@ -231,6 +247,12 @@ cottage_look_at_cottage:
jsr partial_message_step
lda INVENTORY_3
and #INV3_MAP
beq cottage_look_map_still_there
rts
cottage_look_map_still_there:
ldx #<cottage_look_at_cottage_message_map
ldy #>cottage_look_at_cottage_message_map
@ -300,7 +322,7 @@ lake_west_get_pebbles:
bne lake_west_yes_pebbles
lake_west_no_pebbles:
; FIXME: only if standing on them
; TODO: only if standing on them
; pick up pebbles
lda INVENTORY_1
@ -355,10 +377,24 @@ lake_west_look_at_lake:
jmp finish_parse_message
lake_west_look_at_sand:
lda INVENTORY_1
and #INV1_PEBBLES
bne look_sand_pebbles_gone
lda INVENTORY_1_GONE
and #INV1_PEBBLES
bne look_sand_pebbles_gone
look_sand_pebbles_there:
ldx #<lake_west_look_at_sand_message
ldy #>lake_west_look_at_sand_message
jmp finish_parse_message
look_sand_pebbles_gone:
ldx #<lake_west_look_at_sand_after_message
ldy #>lake_west_look_at_sand_after_message
jmp finish_parse_message
lake_west_look_at_bush:
ldx #<lake_west_look_at_bush_message
ldy #>lake_west_look_at_bush_message
@ -477,11 +513,30 @@ lake_east_look:
jmp parse_common_look
lake_east_look_at_lake:
lda GAME_STATE_1
and #FISH_FED
beq look_at_lake_man_there
ldx #<lake_east_look_at_lake_message_man_gone
ldy #>lake_east_look_at_lake_message_man_gone
jmp finish_parse_message
look_at_lake_man_there:
ldx #<lake_east_look_at_lake_message
ldy #>lake_east_look_at_lake_message
jmp finish_parse_message
lake_east_look_at_man:
lda GAME_STATE_1
and #FISH_FED
beq look_at_man_hes_there
; not there, so can't see him
jmp parse_common_look
look_at_man_hes_there:
ldx #<lake_east_look_at_man_message
ldy #>lake_east_look_at_man_message
jmp finish_parse_message
@ -495,9 +550,18 @@ lake_east_look_at_sand:
ldy #>lake_east_look_at_sand_message2
jmp finish_parse_message
lake_east_look_at_boat:
lda GAME_STATE_1
and #FISH_FED
beq look_at_boat_hes_there
; not there, so can't see him
ldx #<lake_east_look_at_boat_gone_message
ldy #>lake_east_look_at_boat_gone_message
jmp finish_parse_message
look_at_boat_hes_there:
ldx #<lake_east_look_at_boat_message
ldy #>lake_east_look_at_boat_message
jmp finish_parse_message
@ -523,6 +587,16 @@ lake_east_talk:
jmp parse_common_talk
lake_east_talk_to_man:
lda GAME_STATE_1
and #FISH_FED
beq talk_hes_there
ldx #<lake_east_talk_man_after_message
ldy #>lake_east_talk_man_after_message
jmp finish_parse_message
talk_hes_there:
ldx #<lake_east_talk_man_message
ldy #>lake_east_talk_man_message
jmp finish_parse_message
@ -542,17 +616,87 @@ lake_east_throw:
bne lake_east_throw_default
lake_east_throw_feed:
ldx #<lake_east_throw_feed_message
ldy #>lake_east_throw_feed_message
; check if have feed
lda INVENTORY_1
and #INV1_CHICKEN_FEED
bne do_have_feed
dont_have_feed:
ldx #<lake_east_throw_feed_none_message
ldy #>lake_east_throw_feed_none_message
jmp finish_parse_message
do_have_feed:
; check if too far south
lda PEASANT_Y
cmp #$80
bcs throw_feed_too_south ; bge
; check if man still there
lda GAME_STATE_1
and #FISH_FED
beq throw_feed_hes_there
; he's not there
ldx #<lake_east_throw_feed_already_message
ldy #>lake_east_throw_feed_already_message
jmp finish_parse_message
throw_feed_hes_there:
; actually throw feed
ldx #<lake_east_throw_feed_message
ldy #>lake_east_throw_feed_message
jsr partial_message_step
; feed fish
lda GAME_STATE_1
ora #FISH_FED
sta GAME_STATE_1
; no longer have feed
lda INVENTORY_1_GONE
ora #INV1_CHICKEN_FEED
sta INVENTORY_1_GONE
; add 2 points to score
lda #2
jsr score_points
ldx #<lake_east_throw_feed2_message
ldy #>lake_east_throw_feed2_message
jmp finish_parse_message
throw_feed_too_south:
ldx #<lake_east_throw_feed_too_south_message
ldy #>lake_east_throw_feed_too_south_message
jmp finish_parse_message
; throw anything but feed
lake_east_throw_default:
lda GAME_STATE_1
and #FISH_FED
beq lake_east_throw_feed_man_default
; not there
ldx #<lake_east_throw_default_gone_message
ldy #>lake_east_throw_default_gone_message
jmp finish_parse_message
lake_east_throw_feed_man_default:
ldx #<lake_east_throw_default_message
ldy #>lake_east_throw_default_message
jmp finish_parse_message
;=======================
;=======================
;=======================
@ -587,10 +731,18 @@ outside_inn_get:
jmp parse_common_get
inn_note_get:
lda GAME_STATE_1
and #FISH_FED
bne inn_get_note_no_note
ldx #<outside_inn_note_get_message
ldy #>outside_inn_note_get_message
jmp finish_parse_message
inn_get_note_no_note:
jmp inn_note_no_note
;================
; knock
;================
@ -605,6 +757,16 @@ outside_inn_knock:
jmp parse_common_unknown
inn_door_knock:
lda GAME_STATE_1
and #FISH_FED
beq inn_knock_locked
ldx #<outside_inn_door_knock_message
ldy #>outside_inn_door_knock_message
jmp finish_parse_message
inn_knock_locked:
ldx #<outside_inn_door_knock_locked_message
ldy #>outside_inn_door_knock_locked_message
jmp finish_parse_message
@ -623,6 +785,19 @@ outside_inn_open:
jmp parse_common_unknown
inn_door_open:
lda GAME_STATE_1
and #FISH_FED
beq inn_open_locked
lda #LOCATION_INSIDE_INN
jsr update_map_location
ldx #<outside_inn_door_open_message
ldy #>outside_inn_door_open_message
jmp finish_parse_message
inn_open_locked:
ldx #<outside_inn_door_open_locked_message
ldy #>outside_inn_door_open_locked_message
jmp finish_parse_message
@ -673,6 +848,16 @@ inn_look:
jmp finish_parse_message
inn_door_look:
lda GAME_STATE_1
and #FISH_FED
bne inn_door_no_note
ldx #<outside_inn_door_look_note_message
ldy #>outside_inn_door_look_note_message
jmp finish_parse_message
inn_door_no_note:
ldx #<outside_inn_door_look_message
ldy #>outside_inn_door_look_message
jmp finish_parse_message
@ -688,10 +873,19 @@ inn_window_look:
jmp finish_parse_message
inn_note_look:
lda GAME_STATE_1
and #FISH_FED
bne inn_note_no_note
ldx #<outside_inn_note_look_message
ldy #>outside_inn_note_look_message
jmp finish_parse_message
inn_note_no_note:
ldx #<outside_inn_note_look_gone_message
ldy #>outside_inn_note_look_gone_message
jmp finish_parse_message
.include "dialog_peasant3.inc"

View File

@ -2,6 +2,7 @@
; Jhonka cave
;=============
; TODO
; + Type any command other than "yes" or "no" after the Jhonka asks if you stole the riches
.byte "Just answer him, yes or no, you fool!",0
@ -11,12 +12,15 @@ jhonka_look_at_message:
.byte "a little door with a little",13
.byte "note on it.",0
; TODO
; + look (kerrek dead, before riches)
.byte "There's a disgusting little Jhonka hopping around outside a little cave.A fat pile of riches lies next to him.",0
; TODO
; + look (after kerrek dead, after take riches)
.byte "There's a disgusting little Jhonka hopping around outside a little cave.",0
; TODO
; + look club/turkey leg (when he's outside)
.byte "Turkey leg or no, it looks like the Jhonka's been gnawing on it.",0
@ -31,42 +35,54 @@ jhonka_look_at_fence_message:
.byte "Trogdor makes milk's meat",13
.byte "outta these things.",0
; TODO
; + look jhonka (when he's outside)
.byte "The Jhonka is gray and grody. He's got a cromagnon forehead and jaw with a pair of wicked incisors. He sports an old loin-cheese cloth and carries either a big club or one of those roasted turkey legs you got at the Ren Fest.",0
; TODO
; + look/read note (before killing Kerrek) [ will walk to it if far away]
jhonka_read_note_message:
.byte "It says ",34,"scared of kerrek.",13
.byte "go way. -j",34,0
; TODO
; + (walk in haystack)
.byte "Hey, nice disguise! The Jhonka doesn't seem to notice you.",0
; TODO
; + steal riches
.byte "Oh OH! A stiff breeze blew all the hay and, surprisingly, the mud off of you! ",34,"You take my riches?!",34," growls the Jhonka.",0
; TODO
; + 7 POINTS
; + no
.byte 34,"Okay. Lemme know if you see riches anywhere,",34," he grunts and goes back to his hopping. You smooth talker, you.",0
; TODO
; + ask about fire
.byte "Burninator make fire! Barbecue all peasants!",0
; TODO
; + ask about Jhonka
.byte 34,"The Kerrek is dead!",34," he cries and hops around some more. You wonder how someone this primitive could have made that much dough.",0
; TODO
; + ask about naked ned (or) robe
.byte 34,"Filthy naked peasant! Stay away from my cave-hole!",34," Who's he calling naked? HE'S the one wearing the string bikini.",0
; TODO
; + ask about smell
.byte 34,"Kerrek smell! Now Kerrek dead!",34," screeches the Jhonka. So you can infer from this that all smells are dead? You always sucked at the analytical questions.",0
; TODO
; + ask about trogdor
.byte 34,"All hail Burninator! Trogdor Number One! Beat Peasant Tech!",34," says the grimy Jhonka.",0
; TODO
; + ask about (unknown)
.byte "Jhonka don't know nothing bout that!",0
; TODO
; + yes (to the Jhonka when he asks you about his riches)
.byte "'I KILL YOU!!' screams the Jhonka.",0
; {The Jhonka clubs you to death} (Warning: Obviously, you will die.)
@ -79,6 +95,7 @@ jhonka_open_door_message:
.byte "too. Those things are hard",13
.byte "core.",0
; TODO
; + knock (while he's inside) [ will walk over]
jhonka_knock_message1:
.byte "A gravelly voice inside",13
@ -96,9 +113,11 @@ jhonka_knock_message1:
.byte "A gravelly voice inside",13
.byte "yells, 'GO WAY!'",0
; TODO
; + kill jhonka (outside)
.byte "No way! Jhonka's are born scrappers. He may be little, but he'll crawl ya.",0
; TODO
; + get club (when he's out)
.byte "Now there's a surefire way to get yourself killed.",0
@ -108,9 +127,11 @@ jhonka_get_note_message:
.byte "to the door with a",13
.byte "wondrously whimsical spell.",0
; TODO
; + give riches (before jumping in hay)
.byte "The Jhonka will see you! And rip out your jugular with his teeth or something equally horrible.",0
; TODO
; + talk jhonka (while inside the hay)
.byte "Not now! You'll blow your cover!",0
@ -138,6 +159,7 @@ cottage_look_at_cottage_message:
.byte "trinkets, your flasks and",13
.byte "scrolls, your goblets and",13
.byte "staffs! BURNINATED!!",0
; (And then, if you haven't taken the map yet:)
cottage_look_at_cottage_message_map:
.byte "Looks like there's a piece",13
@ -158,6 +180,7 @@ cottage_get_map_message:
.byte "to check the map.",0
; + get map (if you already have it)
cottage_get_map_already_message:
.byte "Yeah but like you already",13
.byte "map the took, guy!",0
@ -184,7 +207,10 @@ lake_west_look_at_sand_message:
.byte "sand.",0
; + look sand (after pebbles)
.byte "Remember those pebbles on the beach? Man, those were good times.",0
lake_west_look_at_sand_after_message:
.byte "Remember those pebbles on",13
.byte "the beach? Man, those were",13
.byte "good times.",0
; + look bush
lake_west_look_at_bush_message:
@ -227,9 +253,11 @@ lake_west_skip_stones_message:
.byte "You decide to save yourself",13
.byte "the embarrassment.",0
; TODO
; + get pebbles/rocks (from too far)
.byte "You do your best Mr. Fantastic impression, but you can't reach from 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
@ -242,11 +270,12 @@ lake_west_throw_baby_message:
.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
; + throw feed (at south side)
.byte "Maybe try again from the center of the lake. Looks deeper there.",0
;.byte "Maybe try again from the center of the lake. Looks deeper there.",0
;==================
@ -286,7 +315,10 @@ lake_east_look_at_boat_message:
.byte "dinghy!",34,0
; + look boat/dinghy (after he is gone)
.byte "It was loaned out to the Fishing Challenge videogame.",0
lake_east_look_at_boat_gone_message:
.byte "It was loaned out to the",13
.byte "Fishing Challenge",13
.byte "videogame.",0
; + talk man (before throwing chicken feed in lake)
lake_east_talk_man_message:
@ -297,20 +329,30 @@ lake_east_talk_man_message:
.byte "wrong bait...",34," he says,",13
.byte "suggestively.",0
; + talk man (after throwing chicken feed in lake) WIKI IS WRONG
lake_east_talk_man_after_message:
.byte "He DEFINITELY can't hear",13 ; [sic] actual game has 'here' here
.byte "you from here. He's in the",13
.byte "INN.",0
; + throw feed (at south side)
lake_east_throw_feed_too_south_message:
.byte "Maybe try again from the",13
.byte "center of the lake. Looks",13
.byte "deeper there.",0
; +2 POINTS
; + throw chicken feed
lake_east_throw_feed_message:
.byte "You toss the feed into the",13
.byte "lake. You shed a tear for",13
.byte "each one. ",34,"Goodbye, Monty",34,13
.byte "you sniff. ",34,"Bye Delga,",13
.byte "Rasputin. Farewell,",13
.byte "Combledon!",34," and so forth.",0
; throw two handfulls, fish animation
lake_east_throw_feed2_message:
.byte "Woah! That crotchety old",13
.byte "man just caught a pantload",13
.byte "of fish! ",34,"Now I can get",13
@ -323,11 +365,12 @@ lake_east_talk_man_message:
.byte "animate.",0
; + throw feed (before getting the feed)
lake_east_throw_feed_message:
lake_east_throw_feed_none_message:
.byte "You have nothing with which",13
.byte "to do that ... with.",0
; + throw feed (after throwing the feed) (The repetition is probably just a goof.)
lake_east_throw_feed_already_message:
.byte "You already fed the fish.",13
.byte "Let's get moving here,",13
.byte "people!You already fed the",13
@ -342,6 +385,7 @@ lake_east_throw_default_message:
.byte "volume.",0
; + throw (anything when fisherman gone)
lake_east_throw_default_gone_message:
.byte "You already fed the fish.",13
.byte "Let's get moving, here,",13
.byte "people!",0
@ -358,10 +402,14 @@ outside_inn_look_message:
.byte "entire screen.",0
; + look door
outside_inn_door_look_message:
outside_inn_door_look_note_message:
.byte "Just a door. A door with a",13
.byte "note on it.",0
; + look door (after fish fed)
outside_inn_door_look_message:
.byte "Just a door.",0
; + look inn
outside_inn_inn_look_message:
.byte "Looks okay from out here.",13
@ -386,8 +434,13 @@ outside_inn_note_look_message:
.byte "like that grog coozie your",13
.byte "cousin got you.",0
; + get/look/read note (after feed in lake)
outside_inn_note_look_gone_message:
.byte "The note is gone.",0
; + open
; + open door (after old man)
outside_inn_door_open_message:
.byte "You open the door and step",13
.byte "inside the inn.",0
@ -400,6 +453,7 @@ outside_inn_door_knock_locked_message:
.byte "No answer.",0
; + knock (open)
outside_inn_door_knock_message:
.byte "Just open it, man!",0
; + get note