feat: produce on planets, unload on routes

This commit is contained in:
Ilia Denisov
2026-01-21 23:01:33 +02:00
parent 7e73601bce
commit 9825e05c0e
10 changed files with 319 additions and 60 deletions
+12
View File
@@ -1,6 +1,7 @@
package controller
import (
"fmt"
"slices"
"github.com/google/uuid"
@@ -86,3 +87,14 @@ func (c *Cache) raceScience(ri int) []game.Science {
c.validateRaceIndex(ri)
return c.g.Race[ri].Sciences
}
func (c *Cache) mustScience(ri int, id uuid.UUID) *game.Science {
c.validateRaceIndex(ri)
r := &c.g.Race[ri]
i := slices.IndexFunc(r.Sciences, func(s game.Science) bool { return s.ID == id })
if i < 0 {
panic(fmt.Sprintf("science not found for race=%q id=%v", r.Name, id))
}
return &c.g.Race[ri].Sciences[i]
}