peasant: more hooking up archery

This commit is contained in:
Vince Weaver 2021-11-18 00:49:27 -05:00
parent 355d0c34a3
commit 24e90d57e0
4 changed files with 122 additions and 9 deletions

View File

@ -183,8 +183,9 @@ POINTS IMPLEMENTED: (in order of implementation)
+ 3 (say haldo to dongolev) + 3 (say haldo to dongolev)
+ 3 (jump in hay) + 3 (jump in hay)
+ 2 (fall in mud puddle) + 2 (fall in mud puddle)
+ 2 (give trinket to brothers)
====== ======
50 points 52 points
deaths/endings implemented deaths/endings implemented

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

@ -447,10 +447,55 @@ archery_get_arrow:
;================ ;================
archery_give: archery_give:
; TODO lda CURRENT_NOUN
cmp #NOUN_TRINKET
beq archery_give_trinket
jmp parse_common_give jmp parse_common_give
archery_give_trinket:
; only if dongolev there
lda GAME_STATE_0
and #HALDO_TO_DONGOLEV
beq archery_no_give
lda GAME_STATE_0
and #TRINKET_GIVEN
bne archery_give_trinket_again
lda INVENTORY_2
and #INV2_TRINKET
bne archery_give_trinket_first
; otherwise, default
archery_no_give:
jmp parse_common_give
archery_give_trinket_first:
; score 2 points
lda #2
jsr score_points
ldx #<archery_give_trinket_message
ldy #>archery_give_trinket_message
jsr partial_message_step
jmp do_archery_game
archery_give_trinket_again:
ldx #<archery_give_trinket_again_message
ldy #>archery_give_trinket_again_message
jmp finish_parse_message
do_archery_game:
; play game?
rts
;================ ;================
; haldo ; haldo
;================ ;================
@ -551,12 +596,18 @@ archery_talk:
; only talk if close ; only talk if close
lda PEASANT_X lda PEASANT_X
cmp #23 cmp #23
bcc archery_talk_too_far bcs archery_talk_close
; check Y too? ; check Y too?
; probably less than $7D? ; probably less than $7D?
; actual game will walk you in if close ; actual game will walk you in if close
; will it work from beind? ; will it work from beind?
archery_talk_too_far:
ldx #<archery_talk_far_message
ldy #>archery_talk_far_message
jmp finish_parse_message
archery_talk_close:
lda CURRENT_NOUN lda CURRENT_NOUN
cmp #NOUN_MAN cmp #NOUN_MAN
@ -569,10 +620,60 @@ archery_talk:
beq archery_talk_mendelev beq archery_talk_mendelev
cmp #NOUN_ARCHER cmp #NOUN_ARCHER
beq archery_talk_mendelev beq archery_talk_mendelev
cmp #NOUN_DONGOLEV
beq archery_talk_dongolev
cmp #NOUN_NONE
beq archery_talk_mendelev
jmp parse_common_unknown jmp parse_common_unknown
archery_talk_dongolev:
lda GAME_STATE_0
and #HALDO_TO_DONGOLEV
bne archery_yes_dongolev
jmp parse_common_talk
archery_talk_mendelev: archery_talk_mendelev:
lda GAME_STATE_0
and #TALKED_TO_MENDELEV
beq archery_no_mendelev_yet
lda GAME_STATE_0
and #HALDO_TO_DONGOLEV
beq archery_yes_mendelev_no_dongolev
archery_yes_dongolev:
; three options, before trinket, after trinket, after minigame
lda GAME_STATE_0
and #ARROW_BEATEN
bne archery_after_minigame
lda GAME_STATE_0
and #TRINKET_GIVEN
bne archery_after_trinket
archery_before_trinket:
ldx #<archery_talk_before_minigame_message
ldy #>archery_talk_before_minigame_message
jmp finish_parse_message
archery_after_trinket:
jmp archery_play_game
archery_after_minigame:
ldx #<archery_talk_after_minigame_message
ldy #>archery_talk_after_minigame_message
jmp finish_parse_message
archery_yes_mendelev_no_dongolev:
ldx #<archery_talk_mendelev_between_message
ldy #>archery_talk_mendelev_between_message
jmp finish_parse_message
archery_no_mendelev_yet:
ldx #<archery_talk_mendelev_message ldx #<archery_talk_mendelev_message
ldy #>archery_talk_mendelev_message ldy #>archery_talk_mendelev_message
jsr partial_message_step jsr partial_message_step
@ -606,10 +707,7 @@ archer_score_points:
rts rts
archery_talk_too_far:
ldx #<archery_talk_far_message
ldy #>archery_talk_far_message
jmp finish_parse_message
;======================= ;=======================

View File

@ -215,6 +215,7 @@ archery_talk_mendelev3_message:
.byte "'haldo.'",34,0 .byte "'haldo.'",34,0
; + talk (after talking to him before) NOT IN WIKI ; + talk (after talking to him before) NOT IN WIKI
archery_talk_mendelev_between_message:
.byte 34,"Tell my bro I said 'haldo'",13 .byte 34,"Tell my bro I said 'haldo'",13
.byte "if you see him,",34," he says",13 .byte "if you see him,",34," he says",13
.byte "and goes back to pouting.",0 .byte "and goes back to pouting.",0
@ -222,6 +223,7 @@ archery_talk_mendelev3_message:
; + talk (after dongolev back, before minigame) ; + talk (after dongolev back, before minigame)
; talk mendelev, dongolev, brothers, guy, dude, man ; talk mendelev, dongolev, brothers, guy, dude, man
; (have arrow, not sure if that matters) ; (have arrow, not sure if that matters)
archery_talk_before_minigame_message:
.byte 34,"Haldo!",34," say the brothers.",13 .byte 34,"Haldo!",34," say the brothers.",13
.byte 34,"Test your skill! Give us",13 .byte 34,"Test your skill! Give us",13
.byte "the right super item from",13 .byte "the right super item from",13
@ -229,14 +231,18 @@ archery_talk_mendelev3_message:
.byte "give it as many tries as",13 .byte "give it as many tries as",13
.byte "you need!",34,0 .byte "you need!",34,0
; + talk (after trinket, before minigame) same as "play game"
; + talk (after beating the minigame) ; + talk (after beating the minigame)
; talk mendelev, dongolev, brothers, guy, dude, man ; talk mendelev, dongolev, brothers, guy, dude, man
archery_talk_after_minigame_message:
.byte 34,"Go away!",34," says Dongolev.",13 .byte 34,"Go away!",34," says Dongolev.",13
.byte 34,"We're arguing about who's",13 .byte 34,"We're arguing about who's",13
.byte "hotter,",34," adds Mendelev.",0 .byte "hotter,",34," adds Mendelev.",0
; + 2 POINTS ; + 2 POINTS
; + give super trinket ; + give super trinket
archery_give_trinket_message:
.byte 34,"That'll work,",34," says",13 .byte 34,"That'll work,",34," says",13
.byte "Mendelev. Just hit 3",13 .byte "Mendelev. Just hit 3",13
.byte "bullseyes and you win the",13 .byte "bullseyes and you win the",13
@ -274,14 +280,22 @@ archery_talk_mendelev3_message:
;.byte "back when your shipment",13 ;.byte "back when your shipment",13
;.byte "comes in.",0 ;.byte "comes in.",0
.byte 34,"But since you gave us this",13 .byte 34,"But since you gave us this",13
.byte "trinket, and you obviously",13 .byte "trinket, and you obviously",13
.byte "don't have a prayer of",13 .byte "don't have a prayer of",13
.byte "winning, you can play again",13 .byte "winning, you can play again",13
.byte "whenever you want.",34,0 .byte "whenever you want.",34,0
; play game
; give trinket (already gave) not in wiki
archery_give_trinket_again_message:
.byte "You already gave them the",13
.byte "trinket. Fortunately, you",13
.byte "have an open invitation to",13
.byte "humiliate yourself at the",13
.byte "range.",0
; play game, talk
.byte 34,"Haldo again!",34," say the",13 .byte 34,"Haldo again!",34," say the",13
.byte "brothers. ",34,"Get 3 bullseyes",13 .byte "brothers. ",34,"Get 3 bullseyes",13
.byte "this time and you'll win",13 .byte "this time and you'll win",13