func (self *Phase) State() (result *state.State, err error) { parsedOrders, err := orders.ParseAll(self.Orders) if err != nil { return } units := map[dip.Province]dip.Unit{} for prov, unit := range self.Units { units[prov] = unit } orders := map[dip.Nation]map[dip.Province][]string{} for nat, ord := range self.Orders { orders[nat] = ord } supplyCenters := map[dip.Province]dip.Nation{} for prov, nat := range self.SupplyCenters { supplyCenters[prov] = nat } dislodgeds := map[dip.Province]dip.Unit{} for prov, unit := range self.Dislodgeds { dislodgeds[prov] = unit } dislodgers := map[dip.Province]dip.Province{} for k, v := range self.Dislodgers { dislodgers[k] = v } bounces := map[dip.Province]map[dip.Province]bool{} for prov, b := range self.Bounces { bounces[prov] = b } result = classical.Blank(classical.Phase( self.Year, self.Season, self.Type, )).Load( units, supplyCenters, dislodgeds, dislodgers, bounces, parsedOrders, ) return }
func init() { for _, variant := range OrderedVariants { Variants[variant.Name] = variant } } var Variants = map[string]Variant{} var OrderedVariants = []Variant{ Variant{ Name: Classical, Start: classical.Start, Blank: classical.Blank, BlankStart: func() (result *state.State, err error) { result = classical.Blank(classical.Phase(1900, cla.Fall, cla.Adjustment)) return }, ParseOrders: orders.ParseAll, ParseOrder: orders.Parse, Graph: start.Graph(), Phase: classical.Phase, OrderTypes: orders.OrderTypes(), Nations: cla.Nations, PhaseTypes: cla.PhaseTypes, Seasons: cla.Seasons, UnitTypes: cla.UnitTypes, }, Variant{ Name: FleetRome, Graph: start.Graph(),