peasant: handle the various knight variations

This commit is contained in:
Vince Weaver 2021-11-27 01:01:00 -05:00
parent 1caf3034d8
commit 237d2254c5
4 changed files with 95 additions and 9 deletions

View File

@ -190,8 +190,9 @@ POINTS IMPLEMENTED: (in order of implementation)
+ 3 (win archery game) + 3 (win archery game)
+ 10 (get belt) + 10 (get belt)
+ 5 (kill kerrek) + 5 (kill kerrek)
+ 7 (talk to knight once have belt, robe, and on fire)
====== ======
72 points 79 points
deaths/endings implemented deaths/endings implemented

View File

@ -1051,6 +1051,18 @@ talk_to_knight:
jsr partial_message_step jsr partial_message_step
knight_skip_text: 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 ldx #<talk_knight_third_message
ldy #>talk_knight_third_message ldy #>talk_knight_third_message
jsr partial_message_step jsr partial_message_step
@ -1087,5 +1099,50 @@ knight_skip_text:
knight_skip_text2: knight_skip_text2:
jmp finish_parse_message 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
ldy #>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
ldy #>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
ldy #>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
ldy #>talk_knight_after_robe_belt_fire_message
jsr partial_message_step
ldx #<talk_knight_after_robe_belt_fire_message2
ldy #>talk_knight_after_robe_belt_fire_message2
jmp finish_parse_message
.include "dialog_peasant2.inc" .include "dialog_peasant2.inc"

View File

@ -546,7 +546,10 @@ talk_knight_fifth_message:
.byte "Type SAVE or LOAD to save",13 .byte "Type SAVE or LOAD to save",13
.byte "or load your game. Duh.",0 .byte "or load your game. Duh.",0
; + talk knight (with kerrek's belt) ; + talk knight (with kerrek's belt)
; starts here, this alone
talk_knight_after_belt_message:
.byte "Frankly, Matthew",13 .byte "Frankly, Matthew",13
.byte "Broderick, you sure stink",13 .byte "Broderick, you sure stink",13
.byte "like a peasant. But you",13 .byte "like a peasant. But you",13
@ -555,17 +558,42 @@ talk_knight_fifth_message:
.byte "FIRE like a peasant.",0 .byte "FIRE like a peasant.",0
; + talk knight (with ned's robe, on fire or not) ; + 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) ; + 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 ; + 7 POINTS
; + talk knight (after have all three) ; + talk knight (after have robe, belt, and on fire)
.byte "Lookin good, Mr. Peasant. Good luck with ol' Beefy Arm up there.",0 talk_knight_after_robe_belt_fire_message:
.byte "This is it! You can finally get revenge on Trogdor! Nice work so far, stupid!",0 .byte "Lookin good, Mr. Peasant.",13
.byte "Please insert floppy disk 2 into Drive B and press enter.",0 .byte "Good luck with ol' Beefy",13
.byte "Disk read error. Please insert floppy disk 2 into Drive B and press enter.",0 .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 ; + ask about fire
knight_ask_fire_message: knight_ask_fire_message:

View File

@ -137,7 +137,7 @@ GAME_STATE_1 = $98
FISH_FED=$01 ; also implies man gone and inn open FISH_FED=$01 ; also implies man gone and inn open
PUDDLE_WET=$02 PUDDLE_WET=$02
IN_HAY_BALE=$04 IN_HAY_BALE=$04
JHONKA_OUT=$08 ; JHONKA_OUT=$08 ; implied by KERREK_STATE & $0f !=0
RAINING=$10 RAINING=$10
NIGHT=$20 NIGHT=$20
POT_ON_HEAD=$40 POT_ON_HEAD=$40