From fea2cc6839ec3ee17940a2dea69622dc6f4deabf Mon Sep 17 00:00:00 2001 From: historia <[not public]> Date: Wed, 16 Sep 2026 21:35:55 -0400 Subject: fix: unify crafting ingredient resolution; fix superheat alternatives, quantity gates, and dropped combine byproducts --- internal/game/act_talk.go | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) (limited to 'internal/game/act_talk.go') 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 } } -- cgit v1.2.3