package game import ( "github.com/iliadenisov/galaxy/internal/controller" "github.com/iliadenisov/galaxy/internal/model/game" ) func DeclareWar(configure func(*controller.Param), from, to string) (err error) { control(configure, func(c *controller.Controller) { c.ExecuteGame(func(r controller.Repo, g *game.Game) { err = updateRelation(c, r, g, from, to, game.RelationWar) }) }) return } func DeclarePeace(configure func(*controller.Param), from, to string) (err error) { control(configure, func(c *controller.Controller) { c.ExecuteGame(func(r controller.Repo, g *game.Game) { err = updateRelation(c, r, g, from, to, game.RelationPeace) }) }) return } func updateRelation(c *controller.Controller, r controller.Repo, g *game.Game, hostRace, opponentRace string, rel game.Relation) error { if err := c.UpdateRelation(hostRace, opponentRace, rel); err != nil { return err } return r.SaveLastState(g) }