diff options
| author | historia <[not public]> | 2026-09-16 21:35:55 -0400 |
|---|---|---|
| committer | historia <[not public]> | 2026-09-16 21:35:55 -0400 |
| commit | fea2cc6839ec3ee17940a2dea69622dc6f4deabf (patch) | |
| tree | 9d893525ca20d2cc920e9e866f84f71b605d8ae9 /internal/game/act_talk.go | |
| parent | 35ddd0ad2215760bb1d3dc7724480f179ea33fa6 (diff) | |
| download | thehouseoficarus-fea2cc6839ec3ee17940a2dea69622dc6f4deabf.tar.gz | |
fix: unify crafting ingredient resolution; fix superheat alternatives, quantity gates, and dropped combine byproducts
Diffstat (limited to 'internal/game/act_talk.go')
| -rw-r--r-- | internal/game/act_talk.go | 30 |
1 files changed, 15 insertions, 15 deletions
diff --git a/internal/game/act_talk.go b/internal/game/act_talk.go index dfa7b94..ef3c6e5 100644 --- a/internal/game/act_talk.go +++ b/internal/game/act_talk.go @@ -65,7 +65,7 @@ func (g *Game) handleNodeAction(sess *net.Session, na *behavior.Step) (intercept if td, ok := p.Action.Data.(*behavior.TalkData); ok && td.StealGuard { guardMob := g.findGuardInRoom(p.RoomID, "guard") if guardMob != nil { - sess.State = net.StateGame + sess.SetState(net.StateGame) g.cancelAction(p) guardMob.Protected = false g.startCombat(sess, p, guardMob) @@ -103,7 +103,7 @@ func (g *Game) showTalkNode(sess *net.Session, node behavior.TalkNode) { } td.SeqIndex = 1 if td.SeqIndex < len(node.Messages) { - sess.State = net.StateTalkSequence + sess.SetState(net.StateTalkSequence) sess.Write(g.colorize(sess, "dialog_options", "[enter to continue]\n")) return } @@ -119,7 +119,7 @@ func (g *Game) showTalkNode(sess *net.Session, node behavior.TalkNode) { for i, opt := range visible { sess.WriteLine(fmt.Sprintf(" %d. %s", i+1, g.expandDialogTags(sess, g.resolveColor(sess, "dialog_options"), opt.Text))) } - sess.State = net.StateTalk + sess.SetState(net.StateTalk) g.reprompt(sess) return } @@ -138,7 +138,7 @@ func (g *Game) showTalkNode(sess *net.Session, node behavior.TalkNode) { } } - sess.State = net.StateGame + sess.SetState(net.StateGame) g.writePrompt(sess) } @@ -159,7 +159,7 @@ func (g *Game) finishSequence(sess *net.Session, node behavior.TalkNode) { for i, opt := range visible { sess.WriteLine(fmt.Sprintf(" %d. %s", i+1, g.expandDialogTags(sess, g.resolveColor(sess, "dialog_options"), opt.Text))) } - sess.State = net.StateTalk + sess.SetState(net.StateTalk) g.reprompt(sess) return } @@ -175,13 +175,13 @@ func (g *Game) finishSequence(sess *net.Session, node behavior.TalkNode) { } g.cancelAction(sess.Player) - sess.State = net.StateGame + sess.SetState(net.StateGame) } func (g *Game) handleTalkInput(sess *net.Session, input string) { p := sess.Player if p == nil || p.Action == nil || p.Action.Type != behavior.TypeTalk { - sess.State = net.StateGame + sess.SetState(net.StateGame) g.writePrompt(sess) return } @@ -193,17 +193,17 @@ func (g *Game) handleTalkInput(sess *net.Session, input string) { td, ok := p.Action.Data.(*behavior.TalkData) if !ok || td.Cfg == nil { g.cancelAction(p) - sess.State = net.StateGame + sess.SetState(net.StateGame) g.writePrompt(sess) return } input = strings.TrimSpace(input) - if input == "" && sess.State != net.StateTalkSequence { + if input == "" && sess.State() != net.StateTalkSequence { input = "1" } - if sess.State == net.StateTalkSequence { + if sess.State() == net.StateTalkSequence { _, ok := td.Cfg.Nodes[td.Node] if !ok { td.CancelTalk = true @@ -270,14 +270,14 @@ func (g *Game) advanceTalk(sess *net.Session, p *player.Player) { td, ok := p.Action.Data.(*behavior.TalkData) if !ok || td.Cfg == nil { g.cancelAction(p) - sess.State = net.StateGame + sess.SetState(net.StateGame) return } if td.CancelTalk { sess.WriteLine("You leave the conversation.") g.cancelAction(p) - sess.State = net.StateGame + sess.SetState(net.StateGame) return } @@ -286,7 +286,7 @@ func (g *Game) advanceTalk(sess *net.Session, p *player.Player) { node, ok := td.Cfg.Nodes[td.Node] if !ok { g.cancelAction(p) - sess.State = net.StateGame + sess.SetState(net.StateGame) return } dialogSpec := g.resolveColor(sess, "dialog") @@ -301,7 +301,7 @@ func (g *Game) advanceTalk(sess *net.Session, p *player.Player) { g.finishSequence(sess, node) return } - sess.State = net.StateTalkSequence + sess.SetState(net.StateTalkSequence) sess.Write("[enter to continue]\n") return } @@ -325,7 +325,7 @@ func (g *Game) advanceTalk(sess *net.Session, p *player.Player) { } } g.cancelAction(p) - sess.State = net.StateGame + sess.SetState(net.StateGame) return } } |
