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)
+ 10 (get belt)
+ 5 (kill kerrek)
+ 7 (talk to knight once have belt, robe, and on fire)
======
72 points
79 points
deaths/endings implemented

View File

@ -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
ldy #>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
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"

View File

@ -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:

View File

@ -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