diff --git a/games/peasant/TODO b/games/peasant/TODO index 013abad1..efd9bab5 100644 --- a/games/peasant/TODO +++ b/games/peasant/TODO @@ -66,6 +66,10 @@ Peasantry: + Hook up responses when mud is wet - Archery + Archer animations + + Hook up minigame + + Hook up getting points + + Hook up dialog changes + + Hook up stuff that happens after Dongolev is back - River/Rock + River animation - Mountain Pass diff --git a/games/peasant/parse_input.s b/games/peasant/parse_input.s index 718a2995..b3b458e2 100644 --- a/games/peasant/parse_input.s +++ b/games/peasant/parse_input.s @@ -899,6 +899,7 @@ noun_lookup: .byte "STONE",NOUN_STONE|$80 .byte "IN HAY",NOUN_IN_HAY|$80 .byte "PUDDLE",NOUN_PUDDLE|$80 +.byte "MENDELEV",NOUN_MENDELEV|$80 .byte $00 diff --git a/games/peasant/peasant2.s b/games/peasant/peasant2.s index 0492e387..d7481d1a 100644 --- a/games/peasant/peasant2.s +++ b/games/peasant/peasant2.s @@ -264,14 +264,14 @@ map_priority_hi: verb_tables_low: .byte hay_bale_verb_table ; 5 -- haystack .byte >puddle_verb_table ; 6 -- puddle - .byte >river_stone_verb_table ; 7 -- archery + .byte >archery_verb_table ; 7 -- archery .byte >river_stone_verb_table ; 8 -- river .byte >mountain_pass_verb_table ; 9 -- knight diff --git a/games/peasant/peasant2_actions.s b/games/peasant/peasant2_actions.s index a486e972..e5e75250 100644 --- a/games/peasant/peasant2_actions.s +++ b/games/peasant/peasant2_actions.s @@ -217,6 +217,203 @@ puddle_look_at_rock: jmp finish_parse_message + ;======================= + ;======================= + ;======================= + ; Archery + ;======================= + ;======================= + ;======================= + +archery_verb_table: + .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 + .byte 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 + + 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 + jsr partial_message_step + + ldx #archery_talk_mendelev2_message + jsr partial_message_step + + ; add 1 point to score + ; make noise + ; but after the below somehow? + + ldx #archery_talk_mendelev3_message + jmp finish_parse_message + + +archery_talk_too_far: + ldx #archery_talk_far_message + jmp finish_parse_message + + + ;======================= ;======================= ;======================= diff --git a/games/peasant/text/peasant2.inc b/games/peasant/text/peasant2.inc index 68a41b7a..e4314505 100644 --- a/games/peasant/text/peasant2.inc +++ b/games/peasant/text/peasant2.inc @@ -104,6 +104,7 @@ puddle_get_rock_message: ;=============== ; + look +archery_look_message: .byte "You've come across some",13 .byte "kind of shooting gallery.",13 .byte "There's a depressed",13 @@ -111,28 +112,41 @@ puddle_get_rock_message: .byte "there.",0 ; + look archer (before speaking to Mendelev) +archery_look_at_archer_message: .byte "He looks depressed. He",13 .byte "keeps sighing all",13 .byte "obviously like he wants you",13 .byte "to ask about it.",0 -; + look archer (before saying haldo to Dongolev) -.byte "He looks depressed. Jeez, who invited the fun sponge?",0 +; + look archer (after talk but before saying haldo to Dongolev) +.byte "He looks depressed. Jeez,",13 +.byte "who invited the fun sponge?",0 ; + look archer(s)/(anything not covered elsewhere) (after saying haldo to Dongolev) .byte "You've come across some kind of shooting gallery. A pair of twin brothers seem to be running the place.",0 ; + look target +archery_look_at_target_message: .byte "Hey, they had those same",13 .byte "targets at Peasant Scout",13 .byte "Camp!",0 ; + look desk +archery_look_at_desk_message: .byte "It says 'archery' on it. My",13 .byte "wife's drunk.",0 -; POINTS +2 -; + talk man (you walk over) [ note, did verify the quotes here] +; + talk (while away from or behind the desk) +archery_talk_far_message: +.byte "Why don't you saddle up to",13 +.byte "the front of the table",13 +.byte "there, cowboy?",0 + + +; POINTS +1 +; + talk {nothing}/man/guy/dude/archer/Mendelev +; (you walk over) [ note, did verify the quotes here] +archery_talk_mendelev_message: .byte 34,"Oh, hi. I'm Mendelev,",34,13 .byte "says the archer. ",34,"I used to",13 .byte "run a shooting range here",13 @@ -142,8 +156,12 @@ puddle_get_rock_message: .byte "in a Jhonka's age. If you",13 .byte "ever run into him, tell him",13 .byte "I said 'haldo'.",0 + +archery_talk_mendelev2_message: .byte 34,"You mean 'hello,'",34," you",13 .byte "ask?",0 + +archery_talk_mendelev3_message: .byte 34,"Oh, um. No. Shut up. I",13 .byte "said 'haldo' and I meant",13 .byte "'haldo.' Tell him I said",13 @@ -177,16 +195,19 @@ puddle_get_rock_message: .byte "HALDO!!",0 ; + play game (before saying haldo to Dongolev) +archery_play_game_message: .byte "The gallery's not open and",13 .byte "you got no bow or arrows,",13 .byte "Cupid.",0 ; + get/take/steal target +archery_get_target_message: .byte "No. Those will fall on you",13 .byte "and more than likely kill",13 .byte "you.",0 ; + get/take/steal arrow +archery_get_arrow_message: .byte "They have ",34,"RANGE",34," printed",13 .byte "on them, so it would be",13 .byte "kind of embarrassing to have",13 @@ -194,9 +215,6 @@ puddle_get_rock_message: .byte "Also, that guy over there",13 .byte "is giving you the evil eye.",0 -; + talk (while away from or behind the desk) -.byte "Why don't you saddle up to the front of the table there, cowboy?",0 - ; + talk (after talking to him before) NOT IN WIKI .byte 34,"Tell my bro I said 'haldo'",13 .byte "if you see him,",34," he says",13 diff --git a/games/peasant/tokens.inc b/games/peasant/tokens.inc index 71c0edb7..e6165022 100644 --- a/games/peasant/tokens.inc +++ b/games/peasant/tokens.inc @@ -175,5 +175,6 @@ NOUN_RIVER = 96 NOUN_STONE = 97 NOUN_IN_HAY = 98 NOUN_PUDDLE = 99 +NOUN_MENDELEV = 100 ; -NOUN_UNKNOWN = 100 +NOUN_UNKNOWN = 101