diff --git a/games/peasant/cliff.s b/games/peasant/cliff.s index 7cbf419f..8da6abfa 100644 --- a/games/peasant/cliff.s +++ b/games/peasant/cliff.s @@ -63,11 +63,11 @@ new_location: sbc #LOCATION_BASE tax -; lda verb_tables_low,X -; sta INL -; lda verb_tables_hi,X -; sta INH -; jsr load_custom_verb_table + lda verb_tables_low,X + sta INL + lda verb_tables_hi,X + sta INH + jsr load_custom_verb_table @@ -245,8 +245,15 @@ map_priority_hi: .byte >outer_priority_lzsa verb_tables_low: + .byte cliff_base_verb_table + .byte >cliff_heights_verb_table + .byte >cave_outer_verb_table + cliff_text_lzsa: diff --git a/games/peasant/cliff_actions.s b/games/peasant/cliff_actions.s index a86bbdd6..ee8f2f65 100644 --- a/games/peasant/cliff_actions.s +++ b/games/peasant/cliff_actions.s @@ -3,438 +3,248 @@ ;======================= ;======================= ;======================= - ; Hidden Glen + ; cliff base ;======================= ;======================= ;======================= -hidden_glen_verb_table: -.if 0 - .byte VERB_ENTER - .word hay_bale_enter-1 - .byte VERB_GET - .word hay_bale_get-1 - .byte VERB_JUMP - .word hay_bale_jump-1 - .byte VERB_HIDE - .word hay_bale_hide-1 - .byte VERB_HUG - .word hay_bale_hug-1 +cliff_base_verb_table: .byte VERB_LOOK - .word hay_bale_look-1 - .byte VERB_STEAL - .word hay_bale_steal-1 - .byte VERB_TAKE - .word hay_bale_take-1 -.endif + .word cliff_base_look-1 + .byte VERB_CLIMB + .word cliff_base_climb-1 .byte 0 -.if 0 - - ;================ - ; get - ;================ -hay_bale_get: -hay_bale_steal: -hay_bale_take: - lda CURRENT_NOUN - - cmp #NOUN_HAY - beq hay_get_hay - - ; else "probably wish" message - - jmp parse_common_get - -hay_get_hay: - ldx #hay_get_hay_message - jmp finish_parse_message ;================= ; look ;================= -hay_bale_look: +cliff_base_look: lda CURRENT_NOUN - - cmp #NOUN_HAY - beq hay_look_at_hay - cmp #NOUN_IN_HAY - beq hay_look_in_hay - cmp #NOUN_TREE - beq hay_look_at_tree - cmp #NOUN_FENCE - beq hay_look_at_fence - - cmp #NOUN_NONE - beq hay_look_at + beq cliff_base_look_at jmp parse_common_look -hay_look_at: - ldx #hay_look_message +cliff_base_look_at: + ldx #cliff_base_look_message jmp finish_parse_message -hay_look_at_hay: - ldx #hay_look_at_hay_message - jmp finish_parse_message - -hay_look_in_hay: - ldx #hay_look_in_hay_message - jmp finish_parse_message - -hay_look_at_tree: - ldx #hay_look_at_tree_message - jmp finish_parse_message - -hay_look_at_fence: - ldx #hay_look_at_fence_message - jmp finish_parse_message - - - ;=================== - ; enter hay - ;=================== - -hay_bale_enter: -hay_bale_jump: -hay_bale_hide: - - lda CURRENT_NOUN - - cmp #NOUN_HAY - beq enter_hay - - jmp parse_common_unknown - -enter_hay: - ldx #hay_enter_hay_clean_message - jmp finish_parse_message - - ;=================== - ; hug tree - ;=================== - -hay_bale_hug: - - lda CURRENT_NOUN - - cmp #NOUN_TREE - beq hug_tree - - jmp parse_common_unknown - -hug_tree: - ldx #hay_hug_tree_message - jmp finish_parse_message -.endif - - - ;======================= - ;======================= - ;======================= - ; Inside Lady Cottage - ;======================= - ;======================= - ;======================= - -inside_cottage_verb_table: -.if 0 - .byte VERB_GET - .word puddle_get-1 - .byte VERB_TAKE - .word puddle_take-1 - .byte VERB_STEAL - .word puddle_steal-1 - .byte VERB_LOOK - .word puddle_look-1 -.endif - .byte 0 -.if 0 - - ;================ - ; get - ;================ -puddle_get: -puddle_steal: -puddle_take: - lda CURRENT_NOUN - - cmp #NOUN_ROCK - beq puddle_get_rock - cmp #NOUN_STONE - beq puddle_get_rock - - - ; else "probably wish" message - - jmp parse_common_get - -puddle_get_rock: - ldx #puddle_get_rock_message - jmp finish_parse_message ;================= - ; look + ; climb ;================= -puddle_look: +cliff_base_climb: lda CURRENT_NOUN - - cmp #NOUN_ROCK - beq puddle_look_at_rock - cmp #NOUN_STONE - beq puddle_look_at_rock - cmp #NOUN_MUD - beq puddle_look_at_mud - cmp #NOUN_PUDDLE - beq puddle_look_at_mud + cmp #NOUN_CLIFF + beq cliff_base_do_climb cmp #NOUN_NONE - beq puddle_look_at - - jmp parse_common_look - -puddle_look_at: - ldx #puddle_look_at_message - jmp finish_parse_message - -puddle_look_at_mud: - ldx #puddle_look_mud_message - jmp finish_parse_message - -puddle_look_at_rock: - ldx #puddle_get_rock_message - jmp finish_parse_message - -.endif - ;======================= - ;======================= - ;======================= - ; Inside Ned Cottage - ;======================= - ;======================= - ;======================= - -inside_nn_verb_table: -.if 0 - .byte VERB_ASK - .word archery_ask-1 - .byte VERB_GET - .word archery_get-1 - .byte VERB_GIVE - .word archery_give-1 - .byte VERB_HALDO - .word archery_haldo-1 - .byte VERB_LOOK - .word archery_look-1 - .byte VERB_PLAY - .word archery_play-1 - .byte VERB_STEAL - .word archery_steal-1 - .byte VERB_TALK - .word archery_talk-1 - .byte VERB_TAKE - .word archery_take-1 -.endif - .byte 0 -.if 0 - - ;================ - ; ask - ;================ -archery_ask: - - ; TODO - - jmp parse_common_ask - - - ;================ - ; get - ;================ -archery_get: -archery_steal: -archery_take: - lda CURRENT_NOUN - - cmp #NOUN_TARGET - beq archery_get_target - cmp #NOUN_ARROW - beq archery_get_arrow - - ; else "probably wish" message - - jmp parse_common_get - -archery_get_target: - ldx #archery_get_target_message - jmp finish_parse_message - -archery_get_arrow: - ldx #archery_get_arrow_message - jmp finish_parse_message - - ;================ - ; give - ;================ -archery_give: - - ; TODO - - jmp parse_common_give - - ;================ - ; haldo - ;================ -archery_haldo: - - ; TODO - - jmp parse_common_haldo - - - - ;================= - ; look - ;================= - -archery_look: - - lda CURRENT_NOUN - - cmp #NOUN_DESK - beq archery_look_at_desk - cmp #NOUN_TARGET - beq archery_look_at_target - cmp #NOUN_ARCHER - beq archery_look_at_archer - cmp #NOUN_NONE - beq archery_look_at - - jmp parse_common_look - -archery_look_at: - ldx #archery_look_message - jmp finish_parse_message - -archery_look_at_archer: - ldx #archery_look_at_archer_message - jmp finish_parse_message - -archery_look_at_target: - ldx #archery_look_at_target_message - jmp finish_parse_message - -archery_look_at_desk: - ldx #archery_look_at_desk_message - jmp finish_parse_message - - - ;================ - ; play - ;================ -archery_play: - lda CURRENT_NOUN - - cmp #NOUN_GAME - beq archery_play_game + beq cliff_base_do_climb jmp parse_common_unknown -archery_play_game: - ldx #archery_play_game_message - jmp finish_parse_message - - ;================ - ; talk - ;================ -archery_talk: - - ; only talk if close - lda PEASANT_X - cmp #23 - bcc archery_talk_too_far - ; check Y too? - ; probably less than $7D? - ; actual game will walk you in if close - ; will it work from beind? - - lda CURRENT_NOUN - - cmp #NOUN_MAN - beq archery_talk_mendelev - cmp #NOUN_GUY - beq archery_talk_mendelev - cmp #NOUN_DUDE - beq archery_talk_mendelev - cmp #NOUN_MENDELEV - beq archery_talk_mendelev - cmp #NOUN_ARCHER - beq archery_talk_mendelev - - jmp parse_common_unknown - -archery_talk_mendelev: - ldx #archery_talk_mendelev_message +cliff_base_do_climb: + ldx #cliff_base_climb_message jsr partial_message_step - ldx #archery_talk_mendelev2_message - jsr partial_message_step - - ldx #archery_talk_mendelev3_message - jsr finish_parse_message - - ; add 1 point to score if don't have mask or trinket - ; add 2 points otherwise - - lda INVENTORY_2 - and #INV2_TRINKET - bne archer_2_points - - lda INVENTORY_1 - and #INV1_MONSTER_MASK - bne archer_2_points - -archer_1_point: - lda #1 - bne archer_score_points ; bra -archer_2_points: - lda #2 -archer_score_points: - jsr score_points - - rts - -archery_talk_too_far: - ldx #archery_talk_far_message + ldx #cliff_base_climb2_message jmp finish_parse_message -.endif + + ;======================= + ;======================= + ;======================= + ; Cliff Heights + ;======================= + ;======================= + ;======================= + +cliff_heights_verb_table: + .byte VERB_GET + .word cliff_heights_get-1 + .byte VERB_TAKE + .word cliff_heights_get-1 + .byte VERB_STEAL + .word cliff_heights_get-1 + .byte VERB_CLIMB + .word cliff_heights_climb-1 + .byte VERB_LOOK + .word cliff_heights_look-1 + .byte 0 + + ;================ + ; climb + ;================ +cliff_heights_climb: + + lda CURRENT_NOUN + + cmp #NOUN_CLIFF + beq cliff_heights_do_climb + cmp #NOUN_NONE + beq cliff_heights_do_climb + + jmp parse_common_unknown + +cliff_heights_do_climb: + ldx #cliff_heights_climb_message + jmp finish_parse_message -.include "dialog_inside.inc" + ;================ + ; get + ;================ +cliff_heights_get: +cliff_heights_steal: +cliff_heights_take: + lda CURRENT_NOUN + + cmp #NOUN_BONE + beq cliff_heights_get_bone + cmp #NOUN_SKULL + beq cliff_heights_get_bone + + ; else "probably wish" message + + jmp parse_common_get + +cliff_heights_get_bone: + ldx #cliff_heights_get_bone_message + jmp finish_parse_message + + ;================= + ; look + ;================= + +cliff_heights_look: + + lda CURRENT_NOUN + + cmp #NOUN_LIGHTNING + beq cliff_heights_look_at_lightning + cmp #NOUN_CAVE + beq cliff_heights_look_at_cave + cmp #NOUN_BONE + beq cliff_heights_look_at_bone + cmp #NOUN_SKULL + beq cliff_heights_look_at_bone + cmp #NOUN_NONE + beq cliff_heights_look_at + + jmp parse_common_look + +cliff_heights_look_at: + ldx #cliff_heights_look_at_message + jmp finish_parse_message + +cliff_heights_look_at_bone: + ldx #cliff_heights_look_bone_message + jmp finish_parse_message + +cliff_heights_look_at_cave: + ldx #cliff_heights_look_cave_message + jmp finish_parse_message + +cliff_heights_look_at_lightning: + ldx #cliff_heights_look_lightning_message + jmp finish_parse_message + + + ;======================= + ;======================= + ;======================= + ; Trogdor Cave Outer + ;======================= + ;======================= + ;======================= + +cave_outer_verb_table: + .byte VERB_CLIMB + .word cave_outer_climb-1 + .byte VERB_LOOK + .word cave_outer_look-1 + .byte 0 + + ;================= + ; look + ;================= + +cave_outer_look: + + lda CURRENT_NOUN + + cmp #NOUN_BEADS + beq cave_outer_look_at_curtain + cmp #NOUN_CURTAIN + beq cave_outer_look_at_curtain + cmp #NOUN_DOOR + beq cave_outer_look_at_door + cmp #NOUN_SKELETON + beq cave_outer_look_at_skeleton + cmp #NOUN_OPENINGS + beq cave_outer_look_at_openings + cmp #NOUN_NONE + beq cave_outer_look_at + + jmp parse_common_look + +cave_outer_look_at: + ldx #cave_outer_look_message + jmp finish_parse_message + +cave_outer_look_at_curtain: + ldx #cave_outer_look_curtain_message + jmp finish_parse_message + +cave_outer_look_at_door: + ldx #cave_outer_look_door_message + jmp finish_parse_message + +cave_outer_look_at_openings: + ldx #cave_outer_look_openings_message + jmp finish_parse_message + +cave_outer_look_at_skeleton: + ldx #cave_outer_look_skeleton_message + jmp finish_parse_message + + + ;================ + ; climb + ;================ +cave_outer_climb: + + lda CURRENT_NOUN + + cmp #NOUN_CLIFF + beq cave_outer_do_climb + cmp #NOUN_NONE + beq cave_outer_do_climb + + jmp parse_common_unknown + +cave_outer_do_climb: + ldx #cave_outer_climb_message + jmp finish_parse_message + + + +.include "dialog_cliff.inc" diff --git a/games/peasant/parse_input.s b/games/peasant/parse_input.s index 67179615..7d1df99f 100644 --- a/games/peasant/parse_input.s +++ b/games/peasant/parse_input.s @@ -840,7 +840,7 @@ noun_lookup: .byte "COLD",NOUN_COLD|$80 .byte "COTTAGE",NOUN_COTTAGE|$80 .byte "CRANK",NOUN_CRANK|$80 -.byte "CURTAINS",NOUN_CURTAINS|$80 +.byte "CURTAIN",NOUN_CURTAIN|$80 .byte "DAN",NOUN_DAN|$80 .byte "DESK",NOUN_DESK|$80 .byte "DINGHY",NOUN_DINGHY|$80 diff --git a/games/peasant/text/cliff.inc b/games/peasant/text/cliff.inc index cfb971bf..e020cabf 100644 --- a/games/peasant/text/cliff.inc +++ b/games/peasant/text/cliff.inc @@ -3,6 +3,7 @@ ;============ ; + look +cliff_base_look_message: .byte "You're at the base of a",13 .byte "very climbable cliff that",13 .byte "leads to Trogdor's",13 @@ -13,6 +14,7 @@ ; +3 POINTS (maybe at the top?) ; + climb (walks to center of cliff) +cliff_base_climb_message: .byte "With a new determination",13 .byte "you dig your fingers into",13 .byte "the cliff face and begin to",13 @@ -20,6 +22,7 @@ .byte "mountain like you were in a",13 .byte "sports drink commercial.",0 +cliff_base_climb2_message: .byte "The mountain starts",13 .byte "rumbling and big loose",13 .byte "boulders start tumblin",13 @@ -30,7 +33,8 @@ ; Cliff ;============= -; (Hit by rock or pterodactyl when climbing the cliff) — {You fall to the ground and lie in a heap} +; (Hit by rock or pterodactyl when climbing the cliff) +; {You fall to the ground and lie in a heap} .byte "Oops! You climbed real bad. You knew that you were AVOIDING the rocks, right? Not collecting them. Anyways, nice try. You dead. Thanks for playing.",0 ;=================== @@ -43,32 +47,38 @@ .byte "with those arrow keys.",0 ; + look +cliff_heights_look_at_message: .byte "Wow! It sure gets creepy",13 .byte "fast around here! What with",13 .byte "all the lightning and the",13 .byte "scary cave entrances.",0 ; + look bone/skull +cliff_heights_look_bone_message: .byte "You can't be sure but you",13 .byte "think those are dead person",13 .byte "bones.",0 ; + look cave +cliff_heights_look_cave_message: .byte "The cave entrance beckons",13 .byte "to you like a hot mutton",13 .byte "sandwich might.",0 ; + look lightning +cliff_heights_look_lightning_message: .byte "Scary. Like Auntie",13 .byte "Gerelda's crow's feet.",0 ; + climb cliff (at top) +cliff_heights_climb_message: .byte "They don't show how the",13 .byte "sports-drink people get",13 .byte "down from the cliff. You've",13 .byte "no idea how to start.",0 ; + get/take/steal bone/skull +cliff_heights_get_bone_message: .byte "Eww. No. Grody. You're",13 .byte "grody. No. Eww.",0 @@ -86,6 +96,7 @@ .byte "I think he wants something from your inventory. Or you could just tell him ",34,"take the quiz",34,0 ; + look +cave_outer_look_message: .byte "There are 3 openings with a",13 .byte "little cliff in front of",13 .byte "each. A beaded curtain",13 @@ -93,6 +104,7 @@ .byte "far wall.",0 ; + look curtain/beads +cave_outer_look_curtain_message: .byte "That thing's awesome. You",13 .byte "always wanted one for your",13 .byte "dorm room but your roommate",13 @@ -100,15 +112,18 @@ .byte "no.",0 ; + look door +cave_outer_look_door_message: .byte "A wicked beaded curtain",13 .byte "hangs in the doorway.",0 ; + look openings +cave_outer_look_openings_message: .byte "They're mysterious and out",13 .byte "of reach. Like girls were",13 .byte "to you in high school.",0 ; + look skeleton +cave_outer_look_skeleton_message: .byte "You can't be sure but you",13 .byte "think those are dead person",13 .byte "bones.",0 @@ -139,55 +154,7 @@ .byte "The fabled Trog-Sword is yours. You now have the means to strike down Trogdor. Good luck, peasant.",0 ; + climb cliff +cave_outer_climb_message: .byte "Nope. It's too sheer.",0 -;=================================== -; Trogdor's Posh Lair / Inner Cave -;=================================== - -; Type any command other than "Talk" or "Talk Trogdor" after Trogdor wakes up -.byte "Trogdor is awake and a couple seconds from a Rather Dashing BBQ. Might as well say your peace with him.",0 - -; (Walk too close to Trogdor while he's asleep) -; {Trogdor burninates you without waking up} -.byte "Yow. Looks like you got a little too close. You dead. Maybe next time don't get too close.",0 - -; + look -.byte "You're in a giant cavern which houses a giant dragon. You didn't shrink or anything.",0 - -; + look trogdor (while he's asleep) -.byte "Holy crap! Trogdor's way bigger in person than he looks in most tapestries you've seen. All of the sudden, losing your cottage doesn't seem so bad anymore.",0 - -; + look trogdor (when he's awake) -.byte "Trogdor is looming menacingly over you with a tiny wee sword stuck in his belly. He looks like he's gonna kill you really soon.",0 - -; + (enter Trogdor's cave) -.byte "the beaded curtain slams shut behind you. There's no turning back now.",0 - -; +7 POINTS -; + throw sword -.byte "This is it! You hurl the Trog-Sword with all your might at the sleeping Burninator.",0 -.byte "Now you've done it! Trogdor's awake and the Trog-Sword doesn't seem to be doing a whole lot.",0 -.byte "Your legs lock in fear, your eyes glaze over and you wish for some Depeasant adult undergarments. But you think you hear Trogdor whimpering!",0 -.byte "Aw crap, that's you whimpering. At least your voice still works, I guess.",0 - -; +10 POINTS -; + talk trogdor -.byte "You scream that your name is Rather Dashing and that Trogdor burninated your cottage and you're here for revenge!",0 -.byte 34,"Sup, mortal,",34," booms Trogdor. ",34,"I really appreciate you making the effort to come all the way up here and vanquish me and all. But, I'm kinda indestructible.",34,0 -.byte 34,"Yeah, I can't be killed. I'm surprised nobody mentioned that to you. I'll admit though, you've gotten farther than anybody else ever has. I bet they'll make a statue or something in honor of you somewheres.",34,0 -.byte 34,"I can honestly say it'll be a pleasure and an honor to burninate you, Rather Dashing.",34,0 -.byte "Aw that sure was nice of him!",0 -.byte "Congratulations! You've won! No one can kill Trogdor but you came closer than anybody ever! Way to go!",0 - -; + wake up trogdor -.byte "'Troggie...', you murmur. 'Troggie, wake up it's time for Burnination school.' He's not budging.",0 - -; + attack trogdor (when he's asleep) -; + kill / slay trogdor (while Trogdor's asleep, in his lair) -.byte "Like how?",0 - -; + talk trogdor (while he's asleep) -.byte "You yell some choice expletives at Trogdor but he doesn't wake up. There's a cool echo, though.",0 - diff --git a/games/peasant/text/trogdor.inc b/games/peasant/text/trogdor.inc new file mode 100644 index 00000000..f01dfe8a --- /dev/null +++ b/games/peasant/text/trogdor.inc @@ -0,0 +1,49 @@ +;=================================== +; Trogdor's Posh Lair / Inner Cave +;=================================== + +; Type any command other than "Talk" or "Talk Trogdor" after Trogdor wakes up +.byte "Trogdor is awake and a couple seconds from a Rather Dashing BBQ. Might as well say your peace with him.",0 + +; (Walk too close to Trogdor while he's asleep) +; {Trogdor burninates you without waking up} +.byte "Yow. Looks like you got a little too close. You dead. Maybe next time don't get too close.",0 + +; + look +.byte "You're in a giant cavern which houses a giant dragon. You didn't shrink or anything.",0 + +; + look trogdor (while he's asleep) +.byte "Holy crap! Trogdor's way bigger in person than he looks in most tapestries you've seen. All of the sudden, losing your cottage doesn't seem so bad anymore.",0 + +; + look trogdor (when he's awake) +.byte "Trogdor is looming menacingly over you with a tiny wee sword stuck in his belly. He looks like he's gonna kill you really soon.",0 + +; + (enter Trogdor's cave) +.byte "the beaded curtain slams shut behind you. There's no turning back now.",0 + +; +7 POINTS +; + throw sword +.byte "This is it! You hurl the Trog-Sword with all your might at the sleeping Burninator.",0 +.byte "Now you've done it! Trogdor's awake and the Trog-Sword doesn't seem to be doing a whole lot.",0 +.byte "Your legs lock in fear, your eyes glaze over and you wish for some Depeasant adult undergarments. But you think you hear Trogdor whimpering!",0 +.byte "Aw crap, that's you whimpering. At least your voice still works, I guess.",0 + +; +10 POINTS +; + talk trogdor +.byte "You scream that your name is Rather Dashing and that Trogdor burninated your cottage and you're here for revenge!",0 +.byte 34,"Sup, mortal,",34," booms Trogdor. ",34,"I really appreciate you making the effort to come all the way up here and vanquish me and all. But, I'm kinda indestructible.",34,0 +.byte 34,"Yeah, I can't be killed. I'm surprised nobody mentioned that to you. I'll admit though, you've gotten farther than anybody else ever has. I bet they'll make a statue or something in honor of you somewheres.",34,0 +.byte 34,"I can honestly say it'll be a pleasure and an honor to burninate you, Rather Dashing.",34,0 +.byte "Aw that sure was nice of him!",0 +.byte "Congratulations! You've won! No one can kill Trogdor but you came closer than anybody ever! Way to go!",0 + +; + wake up trogdor +.byte "'Troggie...', you murmur. 'Troggie, wake up it's time for Burnination school.' He's not budging.",0 + +; + attack trogdor (when he's asleep) +; + kill / slay trogdor (while Trogdor's asleep, in his lair) +.byte "Like how?",0 + +; + talk trogdor (while he's asleep) +.byte "You yell some choice expletives at Trogdor but he doesn't wake up. There's a cool echo, though.",0 + diff --git a/games/peasant/tokens.inc b/games/peasant/tokens.inc index 33f39080..53555ba5 100644 --- a/games/peasant/tokens.inc +++ b/games/peasant/tokens.inc @@ -98,7 +98,7 @@ NOUN_CLUB = 17 NOUN_COLD = 18 NOUN_COTTAGE = 19 NOUN_CRANK = 20 -NOUN_CURTAINS = 21 +NOUN_CURTAIN = 21 NOUN_DAN = 22 NOUN_DESK = 23 NOUN_DINGHY = 24