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(c, r, g, race, typeName, drive, weapons, shields, cargo) }) }) return } func createScience(c *controller.Controller, r controller.Repo, g *game.Game, race, typeName string, drive, weapons, shields, cargo float64) error { if err := c.CreateScience(race, typeName, drive, weapons, shields, cargo); err != nil { return err } return r.SaveLastState(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(c, r, g, race, typeName) }) }) return } func deleteScience(c *controller.Controller, r controller.Repo, g *game.Game, race, typeName string) error { if err := c.DeleteScience(race, typeName); err != nil { return err } return r.SaveLastState(g) }