Files
galaxy-game/internal/game/cmd_science.go
T
2026-01-12 19:30:50 +02:00

39 lines
1.1 KiB
Go

package game
import (
"github.com/iliadenisov/galaxy/internal/controller"
"github.com/iliadenisov/galaxy/internal/model/game"
)
func CreateScience(configure func(*controller.Param), race, typeName string, drive, weapons, shields, cargo float64) (err error) {
control(configure, func(c *controller.Controller) {
c.ExecuteGame(func(r controller.Repo, g *game.Game) {
err = createScience(r, g, race, typeName, drive, weapons, shields, cargo)
})
})
return
}
func createScience(r controller.Repo, g *game.Game, race, typeName string, d, w, s, c float64) error {
if err := g.CreateScience(race, typeName, d, w, s, c); err != nil {
return err
}
return r.SaveState(g)
}
func DeleteScience(configure func(*controller.Param), race, typeName string) (err error) {
control(configure, func(c *controller.Controller) {
c.ExecuteGame(func(r controller.Repo, g *game.Game) {
err = deleteScience(r, g, race, typeName)
})
})
return
}
func deleteScience(r controller.Repo, g *game.Game, race, typeName string) error {
if err := g.DeleteScience(race, typeName); err != nil {
return err
}
return r.SaveState(g)
}