From 153acb7f644d755c45533b7c5311e3ffa47e8973 Mon Sep 17 00:00:00 2001 From: historia <[not public]> Date: Fri, 18 Sep 2026 05:31:09 -0400 Subject: fix: harden engine across casino, economy, concurrency, security, and content --- internal/game/act_clean.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'internal/game/act_clean.go') diff --git a/internal/game/act_clean.go b/internal/game/act_clean.go index 2872173..3525475 100644 --- a/internal/game/act_clean.go +++ b/internal/game/act_clean.go @@ -71,7 +71,10 @@ func (g *Game) advanceClean(sess *net.Session, p *player.Player) { } g.saveCharacter(p) - msg := g.resolveCraftMessage(sess, craft.SuccessMessage, "You clean the %i1.", craft, matchItem.ID, nil, p.HasItem) + // The grimy herb's slot was just overwritten with the clean product, so + // p.HasItem is false for it: resolve %i1 from the exact item consumed. + msg := g.resolveCraftMessage(sess, craft.SuccessMessage, "You clean the %i1.", craft, matchItem.ID, nil, + func(id string) bool { return id == consumeID }) if p.OptionBool("xp_drops") && craft.XP > 0 { msg += g.formatXpDropSingle(sess, p, player.Pharmacy, craft.XP) } -- cgit v1.2.3