aboutsummaryrefslogtreecommitdiff
path: root/internal/game/action_fletch.go
diff options
context:
space:
mode:
authorhistoria <[not public]>2026-06-21 01:05:35 -0400
committerhistoria <[not public]>2026-06-21 01:05:35 -0400
commitc36c1dc0c65e65b4d6ee53df6bbcc3a860eb6e4b (patch)
treeea5b796d7b8ce6ae422b30542e0da97e818207e8 /internal/game/action_fletch.go
parent470bc5bd99b793e46305310b5fbeb3068eba45f1 (diff)
downloadthehouseoficarus-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.go39
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
}