From 94a06fbbe682701ca4d4bd2a70cd74d8df29c932 Mon Sep 17 00:00:00 2001 From: historia <[not public]> Date: Thu, 25 Jun 2026 00:44:47 -0400 Subject: refactor: replaced map[string]any with typed structs for Data --- internal/game/action_fletch.go | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) (limited to 'internal/game/action_fletch.go') diff --git a/internal/game/action_fletch.go b/internal/game/action_fletch.go index 27746c4..53346a2 100644 --- a/internal/game/action_fletch.go +++ b/internal/game/action_fletch.go @@ -112,22 +112,26 @@ func (g *Game) startTimedFletch(sess *net.Session, p *player.Player, item *objec Type: "fletch", TargetID: item.ID, TargetName: item.Name, - Data: map[string]any{ - "item_id": item.ID, - "phase": 0, - "wait": craft.Wait, - "remaining": count, + Data: &action.FletchData{ + ItemID: item.ID, + Phase: 0, + Wait: craft.Wait, + Remaining: count, }, WaitLeft: engine.ToTicks(1), } - p.BackgroundActionState = &ActionState{Type: ActionFletching, TargetName: item.Name} } func (g *Game) advanceFletch(sess *net.Session, p *player.Player) { - itemID, _ := p.BackgroundAction.Data["item_id"].(string) - phase, _ := p.BackgroundAction.Data["phase"].(int) - wait, _ := p.BackgroundAction.Data["wait"].(float64) - remaining, _ := p.BackgroundAction.Data["remaining"].(int) + data, ok := p.BackgroundAction.Data.(*action.FletchData) + if !ok { + g.cancelBgAction(p) + return + } + itemID := data.ItemID + phase := data.Phase + wait := data.Wait + remaining := data.Remaining item := g.loadCraftItem(itemID) if item == nil { @@ -137,7 +141,7 @@ func (g *Game) advanceFletch(sess *net.Session, p *player.Player) { c := item.FirstCraft() if phase == 0 { - p.BackgroundAction.Data["phase"] = 1 + data.Phase = 1 p.BackgroundAction.WaitLeft = engine.ToTicks(wait) return } @@ -192,7 +196,7 @@ func (g *Game) advanceFletch(sess *net.Session, p *player.Player) { if remaining > 0 { remaining-- - p.BackgroundAction.Data["remaining"] = remaining + data.Remaining = remaining if remaining <= 0 { sess.WriteLine("You've finished fletching.") g.cancelBgAction(p) -- cgit v1.2.3