diff --git a/games/peasant/NOTES b/games/peasant/NOTES index b8ff24ac..25e39077 100644 --- a/games/peasant/NOTES +++ b/games/peasant/NOTES @@ -190,8 +190,9 @@ POINTS IMPLEMENTED: (in order of implementation) + 3 (win archery game) + 10 (get belt) + 5 (kill kerrek) ++ 7 (talk to knight once have belt, robe, and on fire) ====== - 72 points + 79 points deaths/endings implemented diff --git a/games/peasant/peasant2_actions.s b/games/peasant/peasant2_actions.s index c417eb36..da368813 100644 --- a/games/peasant/peasant2_actions.s +++ b/games/peasant/peasant2_actions.s @@ -1051,6 +1051,18 @@ talk_to_knight: jsr partial_message_step knight_skip_text: + ; see if have belt + lda INVENTORY_1 + and #INV1_KERREK_BELT + bne knight_kerrek_belt + + ; see if have robe + lda GAME_STATE_1 + and #WEARING_ROBE + bne knight_robe + + ; else, have nothing + ldx #talk_knight_third_message jsr partial_message_step @@ -1087,5 +1099,50 @@ knight_skip_text: knight_skip_text2: jmp finish_parse_message +knight_kerrek_belt: + ; see if also have robe + lda GAME_STATE_1 + and #WEARING_ROBE + bne knight_belt_robe + + ldx #talk_knight_after_belt_message + jmp finish_parse_message + +knight_robe: + ; see if also have belt + lda INVENTORY_1 + and #INV1_KERREK_BELT + bne knight_belt_robe + + ldx #talk_knight_after_robe_message + jmp finish_parse_message + +knight_belt_robe: + ; see if also on fire + lda GAME_STATE_2 + and #ON_FIRE + bne knight_belt_fire + + ldx #talk_knight_after_robe_and_belt_message + jmp finish_parse_message + +knight_belt_fire: + ; TODO: move knight, open path + + ; score points + lda #7 + jsr score_points + + ldx #talk_knight_after_robe_belt_fire_message + jsr partial_message_step + + ldx #talk_knight_after_robe_belt_fire_message2 + jmp finish_parse_message + .include "dialog_peasant2.inc" diff --git a/games/peasant/text/peasant2.inc b/games/peasant/text/peasant2.inc index 4b8fe13f..3603df9a 100644 --- a/games/peasant/text/peasant2.inc +++ b/games/peasant/text/peasant2.inc @@ -546,7 +546,10 @@ talk_knight_fifth_message: .byte "Type SAVE or LOAD to save",13 .byte "or load your game. Duh.",0 + ; + talk knight (with kerrek's belt) +; starts here, this alone +talk_knight_after_belt_message: .byte "Frankly, Matthew",13 .byte "Broderick, you sure stink",13 .byte "like a peasant. But you",13 @@ -555,17 +558,42 @@ talk_knight_fifth_message: .byte "FIRE like a peasant.",0 ; + talk knight (with ned's robe, on fire or not) -.byte "My dear Adso, you are dressed well but you don't STINK and you're not ON FIRE. Let us instead exercise our brains and try to solve this tantalizing conundrum.",0 +talk_knight_after_robe_message: ; guessed at spacing +.byte "My dear Adso, you are",13 +.byte "dressed well but you don't",13 +.byte "STINK and you're not ON",13 +.byte "FIRE. Let us instead",13 +.byte "exercise our brains and",13 +.byte "try to solve this",13 +.byte "tantalizing conundrum.",0 ; + talk knight (after acquiring Kerrek's belt and Naked Ned's robe) -.byte "Almost there, Dirk the Daring. You stink like a peasant and you dress like one too. But you're clearly still not ON FIRE.",0 +talk_knight_after_robe_and_belt_message: +.byte "Almost there, Dirk the",13 +.byte "Daring. You stink like a",13 +.byte "peasant and you dress like",13 +.byte "one too. But you're clearly",13 +.byte "still not ON FIRE.",0 ; + 7 POINTS -; + talk knight (after have all three) -.byte "Lookin good, Mr. Peasant. Good luck with ol' Beefy Arm up there.",0 -.byte "This is it! You can finally get revenge on Trogdor! Nice work so far, stupid!",0 -.byte "Please insert floppy disk 2 into Drive B and press enter.",0 -.byte "Disk read error. Please insert floppy disk 2 into Drive B and press enter.",0 +; + talk knight (after have robe, belt, and on fire) +talk_knight_after_robe_belt_fire_message: +.byte "Lookin good, Mr. Peasant.",13 +.byte "Good luck with ol' Beefy",13 +.byte "Arm up there.",0 + +talk_knight_after_robe_belt_fire_message2: +.byte "This is it! You can finally",13 +.byte "get revenge on Trogdor! Nice",13 +.byte "work so far, stupid!",0 + +; Not included, would probably just confuse people +;.byte "Please insert floppy disk 2",13 +;.byte "into Drive B and press enter.",0 + +;.byte "Disk read error. Please insert",13 +;.byte "floppy disk 2 into Drive B and",13 +;.byte "press enter.",0 ; + ask about fire knight_ask_fire_message: diff --git a/games/peasant/zp.inc b/games/peasant/zp.inc index 918dc590..5c805e3b 100644 --- a/games/peasant/zp.inc +++ b/games/peasant/zp.inc @@ -137,7 +137,7 @@ GAME_STATE_1 = $98 FISH_FED=$01 ; also implies man gone and inn open PUDDLE_WET=$02 IN_HAY_BALE=$04 - JHONKA_OUT=$08 +; JHONKA_OUT=$08 ; implied by KERREK_STATE & $0f !=0 RAINING=$10 NIGHT=$20 POT_ON_HEAD=$40