39 lines
1.2 KiB
Go
39 lines
1.2 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(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)
|
|
}
|