diff options
| author | historia <[not public]> | 2026-06-21 01:05:35 -0400 |
|---|---|---|
| committer | historia <[not public]> | 2026-06-21 01:05:35 -0400 |
| commit | c36c1dc0c65e65b4d6ee53df6bbcc3a860eb6e4b (patch) | |
| tree | ea5b796d7b8ce6ae422b30542e0da97e818207e8 /internal/game/action_fletch.go | |
| parent | 470bc5bd99b793e46305310b5fbeb3068eba45f1 (diff) | |
| download | thehouseoficarus-c36c1dc0c65e65b4d6ee53df6bbcc3a860eb6e4b.tar.gz | |
Added %i, %n, %b to production skill messages to consistent color inputs, item names, and byproducts
Diffstat (limited to 'internal/game/action_fletch.go')
| -rw-r--r-- | internal/game/action_fletch.go | 39 |
1 files changed, 25 insertions, 14 deletions
diff --git a/internal/game/action_fletch.go b/internal/game/action_fletch.go index 52de86b..a8571ea 100644 --- a/internal/game/action_fletch.go +++ b/internal/game/action_fletch.go @@ -82,7 +82,12 @@ func (g *Game) doInstantFletch(sess *net.Session, p *player.Player, item *object g.AccountStore.SaveCharacter(p) - msg := fmt.Sprintf("You fletch %d %s.", totalOutput, item.Name) + outDef, _ := g.ItemStore.Load(item.ID) + outputName := item.Name + if outDef != nil { + outputName = g.itemColorize(sess, outDef, outDef.Name) + } + msg := fmt.Sprintf("You fletch %d %s.", totalOutput, outputName) if p.OptionBool("xp_drops") && c.XP > 0 { totalXP := c.XP * batches abbr := player.SkillAbbr[skill] @@ -92,6 +97,19 @@ func (g *Game) doInstantFletch(sess *net.Session, p *player.Player, item *object } func (g *Game) startTimedFletch(sess *net.Session, p *player.Player, item *object.ItemDef, count int) { + craft := item.FirstCraft() + + startMsg := g.resolveCraftMessage(sess, craft.StartMessage, "You begin fletching %i1.", craft, item.ID, nil, p.HasItem) + + sess.WriteLine(startMsg) + + broadcastName := item.Name + if def, _ := g.ItemStore.Load(item.ID); def != nil { + broadcastName = def.Name + } + g.broadcastAction(sess, "%s starts fletching.", p.Name) + _ = broadcastName + p.BackgroundAction = &action.Action{ Type: "fletch", TargetID: item.ID, @@ -99,16 +117,12 @@ func (g *Game) startTimedFletch(sess *net.Session, p *player.Player, item *objec Data: map[string]any{ "item_id": item.ID, "phase": 0, - "wait": item.FirstCraft().Wait, + "wait": craft.Wait, "remaining": count, }, WaitLeft: engine.ToTicks(1), } p.BackgroundActionState = &ActionState{Type: ActionFletching, TargetName: item.Name} - - g.broadcastAction(sess, "\n%s starts fletching.", p.Name) - - sess.WriteLine(fmt.Sprintf("\nYou begin fletching %s.", item.Name)) } func (g *Game) advanceFletch(sess *net.Session, p *player.Player) { @@ -132,7 +146,7 @@ func (g *Game) advanceFletch(sess *net.Session, p *player.Player) { tmpItem := &object.ItemDef{Craft: object.CraftList{*c}} if !g.canDoFletchItem(p, tmpItem) { - sess.WriteLine("\nYou've run out of fletching materials.") + sess.WriteLine("You've run out of fletching materials.") g.cancelBgAction(p) return } @@ -160,7 +174,7 @@ func (g *Game) advanceFletch(sess *net.Session, p *player.Player) { craftConsumeAll(c, p.HasItem, p.RemoveItem) freeSlot := p.FirstFreeSlot() if freeSlot == -1 { - sess.WriteLine("\nYour inventory is too full!") + sess.WriteLine("Your inventory is too full!") g.cancelBgAction(p) return } @@ -172,10 +186,7 @@ func (g *Game) advanceFletch(sess *net.Session, p *player.Player) { } g.AccountStore.SaveCharacter(p) - msg := c.Message - if msg == "" { - msg = fmt.Sprintf("You fletch %s.", item.Name) - } + msg := g.resolveCraftMessage(sess, c.Message, "You fletch a %n.", c, item.ID, nil, p.HasItem) if p.OptionBool("xp_drops") && c.XP > 0 { abbr := player.SkillAbbr[skill] msg += g.colorize(sess, "xp", fmt.Sprintf(" (+%dxp %s)", c.XP, abbr)) @@ -186,14 +197,14 @@ func (g *Game) advanceFletch(sess *net.Session, p *player.Player) { remaining-- p.BackgroundAction.Data["remaining"] = remaining if remaining <= 0 { - sess.WriteLine("\nYou've finished fletching.") + sess.WriteLine("You've finished fletching.") g.cancelBgAction(p) return } } if !g.canContinueProduction(p, item) { - sess.WriteLine("\nYou've run out of fletching materials.") + sess.WriteLine("You've run out of fletching materials.") g.cancelBgAction(p) return } |
