peasant: more hooking up of Trogdor

This commit is contained in:
Vince Weaver 2021-12-14 00:41:58 -05:00
parent 1ebfddbfbc
commit 7a23da4520
7 changed files with 145 additions and 11 deletions

View File

@ -650,7 +650,7 @@ DIALOG_TROGDOR.LZSA: dialog_trogdor
dialog_trogdor: dialog_trogdor.o
ld65 -o dialog_trogdor dialog_trogdor.o -C ../../linker_scripts/apple2_d000.inc
dialog_trogdor.o: dialog_trogdor.s text/cliff.inc
dialog_trogdor.o: dialog_trogdor.s text/trogdor.inc
ca65 -o dialog_trogdor.o dialog_trogdor.s -l dialog_trogdor.lst
###

View File

@ -205,8 +205,9 @@ POINTS IMPLEMENTED: (in order of implementation)
+ 3 (wear robe)
+ 2 (get grease)
+ 10 (catch on fire)
+ 7 (throw sword at trogdor)
======
122 points
129 points
deaths/endings implemented

View File

@ -842,6 +842,7 @@ verb_lookup:
.byte "SHOW",VERB_SHOW|$80
.byte "SIT",VERB_SIT|$80
.byte "SKIP",VERB_SKIP|$80
.byte "SLAY",VERB_SLAY|$80
.byte "SLEEP",VERB_SLEEP|$80
.byte "SMELL",VERB_SMELL|$80
.byte "SNIFF",VERB_SNIFF|$80
@ -1033,6 +1034,7 @@ noun_lookup_again:
.byte "DOING",NOUN_DOING_SPROINGS|$80
.byte "DONGOLEV",NOUN_DONGOLEV|$80
.byte "DOOR",NOUN_DOOR|$80
.byte "DRAGON",NOUN_DRAGON|$80
.byte "DRAWER",NOUN_DRAWER|$80
.byte "DRESSER",NOUN_DRESSER|$80
.byte "DUDE",NOUN_DUDE|$80

View File

@ -10,13 +10,22 @@
.byte "Maybe next time don't get",13
.byte "too close.",0
; + (enter Trogdor's cave)
trogdor_entry_message:
.byte "The beaded curtain slams",13
.byte "shut behind you. There's no",13
.byte "turning back now.",0
; + look
trogdor_look_message:
.byte "You're in a giant cavern",13
.byte "which houses a giant",13
.byte "dragon. You didn't shrink",13
.byte "or anything.",0
; + look dragon/trogdor (while he's asleep)
trogdor_look_trogdor_message:
.byte "Holy crap! Trogdor's way",13
.byte "bigger in person than he",13
.byte "looks in most tapestries",13
@ -25,12 +34,8 @@
.byte "cottage doesn't seem so bad",13
.byte "anymore.",0
; + (enter Trogdor's cave)
.byte "The beaded curtain slams",13
.byte "shut behind you. There's no",13
.byte "turning back now.",0
; + wake up trogdor
trogdor_wake_message:
.byte 34,"Troggie...",34,", you murmur.",13
.byte 34,"Troggie, wake up it's time",13
.byte "for Burnination school.",34,13
@ -38,16 +43,20 @@
; + attack trogdor (when he's asleep)
; + kill / slay trogdor (while Trogdor's asleep, in his lair)
trogdor_attack_message:
.byte "Like how?",0
; + talk trogdor (while he's asleep)
trogdor_talk_message:
.byte "You yell some choice",13
.byte "expletives at Trogdor but",13
.byte "he doesn't wake up. There's",13
.byte "a cool echo, though.",0
; +7 POINTS
; + throw sword
trogdor_throw_sword_message:
.byte "This is it! You hurl the",13
.byte "Trog-Sword with all your",13
.byte "might at the sleeping",13
@ -55,11 +64,13 @@
; walks over, throws, animation
trogdor_throw_sword_message2:
.byte "Now you've done it!",13
.byte "Trogdor's awake and the",13
.byte "Trog-Sword doesn't seem to",13
.byte "be doing a whole lot.",0
trogdor_throw_sword_message3:
.byte "Your legs lock in fear,",13
.byte "your eyes glaze over and",13
.byte "you wish for some Depeasant",13
@ -67,6 +78,7 @@
.byte "you think you hear Trogdor",13
.byte "whimpering!",0
trogdor_throw_sword_message4:
.byte "Aw crap, that's you",13
.byte "whimpering. At least your",13
.byte "voice still works, I guess.",0

View File

@ -76,7 +76,8 @@ VERB_HIDE = 74
VERB_MOVE = 75
VERB_CUT = 76
VERB_SAY = 77
VERB_ALL_DONE = 78 ; not a verb, but indicating end, must be last
VERB_SLAY = 78
VERB_ALL_DONE = 79 ; not a verb, but indicating end, must be last
NOUN_NONE = 0
;
@ -198,5 +199,6 @@ NOUN_SHIRT = 115
NOUN_SHIELD = 116
NOUN_SWORD = 117
NOUN_HELM = 118
NOUN_DRAGON = 119
;
NOUN_UNKNOWN = 119
NOUN_UNKNOWN = 120

View File

@ -109,6 +109,13 @@ new_location:
jsr update_top
;===========================
; intro message
ldx #<trogdor_entry_message
ldy #>trogdor_entry_message
jsr finish_parse_message
game_loop:
; jsr move_peasant

View File

@ -1,3 +1,5 @@
.include "tokens.inc"
;=======================
;=======================
;=======================
@ -7,11 +9,119 @@
;=======================
trogdor_inner_verb_table:
; .byte VERB_LOOK
; .word cliff_base_look-1
.byte VERB_ATTACK
.word trogdor_attack-1
.byte VERB_KILL
.word trogdor_attack-1
.byte VERB_SLAY
.word trogdor_attack-1
.byte VERB_LOOK
.word trogdor_look-1
.byte VERB_WAKE
.word trogdor_wake-1
.byte VERB_TALK
.word trogdor_talk-1
.byte VERB_THROW
.word trogdor_throw-1
.byte 0
trogdor_look:
lda CURRENT_NOUN
cmp #NOUN_NONE
beq trogdor_look_at
cmp #NOUN_DRAGON
beq trogdor_look_trogdor
cmp #NOUN_TROGDOR
beq trogdor_look_trogdor
jmp parse_common_look
trogdor_look_at:
ldx #<trogdor_look_message
ldy #>trogdor_look_message
jmp finish_parse_message
trogdor_look_trogdor:
ldx #<trogdor_look_trogdor_message
ldy #>trogdor_look_trogdor_message
jmp finish_parse_message
trogdor_wake:
lda CURRENT_NOUN
cmp #NOUN_DRAGON
beq trogdor_wake_trogdor
cmp #NOUN_TROGDOR
beq trogdor_wake_trogdor
jmp parse_common_unknown
trogdor_wake_trogdor:
ldx #<trogdor_wake_message
ldy #>trogdor_wake_message
jmp finish_parse_message
trogdor_attack:
lda CURRENT_NOUN
cmp #NOUN_DRAGON
beq trogdor_attack_trogdor
cmp #NOUN_TROGDOR
beq trogdor_attack_trogdor
jmp parse_common_unknown
trogdor_attack_trogdor:
ldx #<trogdor_attack_message
ldy #>trogdor_attack_message
jmp finish_parse_message
trogdor_talk:
lda CURRENT_NOUN
cmp #NOUN_DRAGON
beq trogdor_talk_trogdor
cmp #NOUN_TROGDOR
beq trogdor_talk_trogdor
jmp parse_common_talk
trogdor_talk_trogdor:
ldx #<trogdor_talk_message
ldy #>trogdor_talk_message
jmp finish_parse_message
trogdor_throw:
lda CURRENT_NOUN
cmp #NOUN_SWORD
beq trogdor_throw_sword
jmp parse_common_unknown
trogdor_throw_sword:
ldx #<trogdor_throw_sword_message
ldy #>trogdor_throw_sword_message
jsr partial_message_step
lda #7
jsr score_points
ldx #<trogdor_throw_sword_message2
ldy #>trogdor_throw_sword_message2
jsr partial_message_step
ldx #<trogdor_throw_sword_message3
ldy #>trogdor_throw_sword_message3
jsr partial_message_step
ldx #<trogdor_throw_sword_message4
ldy #>trogdor_throw_sword_message4
jmp finish_parse_message
trogdor_cave: