aboutsummaryrefslogtreecommitdiff
path: root/internal/game/action_fletch.go
diff options
context:
space:
mode:
authorhistoria <[not public]>2026-06-25 00:44:47 -0400
committerhistoria <[not public]>2026-06-25 00:44:47 -0400
commit94a06fbbe682701ca4d4bd2a70cd74d8df29c932 (patch)
treeeb49fb1893e61092138164d419e863ee3fe0d1e2 /internal/game/action_fletch.go
parent15b7e221b799ef107dec44ecdb294026dfd3d059 (diff)
downloadthehouseoficarus-94a06fbbe682701ca4d4bd2a70cd74d8df29c932.tar.gz
refactor: replaced map[string]any with typed structs for Data
Diffstat (limited to 'internal/game/action_fletch.go')
-rw-r--r--internal/game/action_fletch.go28
1 files changed, 16 insertions, 12 deletions
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)