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 (jump in hay)
+ 2 (fall in mud puddle)
+ 2 (give trinket to brothers)
======
50 points
52 points
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:
; TODO
lda CURRENT_NOUN
cmp #NOUN_TRINKET
beq archery_give_trinket
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
;================
@ -551,12 +596,18 @@ archery_talk:
; only talk if close
lda PEASANT_X
cmp #23
bcc archery_talk_too_far
bcs archery_talk_close
; check Y too?
; probably less than $7D?
; actual game will walk you in if close
; 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
cmp #NOUN_MAN
@ -569,10 +620,60 @@ archery_talk:
beq archery_talk_mendelev
cmp #NOUN_ARCHER
beq archery_talk_mendelev
cmp #NOUN_DONGOLEV
beq archery_talk_dongolev
cmp #NOUN_NONE
beq archery_talk_mendelev
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:
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
ldy #>archery_talk_mendelev_message
jsr partial_message_step
@ -606,10 +707,7 @@ archer_score_points:
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
; + talk (after talking to him before) NOT IN WIKI
archery_talk_mendelev_between_message:
.byte 34,"Tell my bro I said 'haldo'",13
.byte "if you see him,",34," he says",13
.byte "and goes back to pouting.",0
@ -222,6 +223,7 @@ archery_talk_mendelev3_message:
; + talk (after dongolev back, before minigame)
; talk mendelev, dongolev, brothers, guy, dude, man
; (have arrow, not sure if that matters)
archery_talk_before_minigame_message:
.byte 34,"Haldo!",34," say the brothers.",13
.byte 34,"Test your skill! Give us",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 "you need!",34,0
; + talk (after trinket, before minigame) same as "play game"
; + talk (after beating the minigame)
; talk mendelev, dongolev, brothers, guy, dude, man
archery_talk_after_minigame_message:
.byte 34,"Go away!",34," says Dongolev.",13
.byte 34,"We're arguing about who's",13
.byte "hotter,",34," adds Mendelev.",0
; + 2 POINTS
; + give super trinket
archery_give_trinket_message:
.byte 34,"That'll work,",34," says",13
.byte "Mendelev. Just hit 3",13
.byte "bullseyes and you win the",13
@ -274,14 +280,22 @@ archery_talk_mendelev3_message:
;.byte "back when your shipment",13
;.byte "comes in.",0
.byte 34,"But since you gave us this",13
.byte "trinket, and you obviously",13
.byte "don't have a prayer of",13
.byte "winning, you can play again",13
.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 "brothers. ",34,"Get 3 bullseyes",13
.byte "this time and you'll win",13