public static GameMap FromSimpleMap(StrategyGame game, SimpleGameMap map, bool preview = false) { var m = new GameMap(game) { Name = map.Name, Sectors = map.Sectors.Select(_ => new MapSector(game, _.Id, GameMaps.SectorNames.NextString, _.MapPosition) { StartingSector = _.StartingSectorTeam }).ToList() }; m.Wormholes = map.WormholeIds.Select(_ => new Wormhole(game, m.Sectors[_.FromSectorId], m.Sectors[_.ToSectorId])).ToList(); if (preview) { foreach (var s in m.Sectors) { s.SetVisibleToTeam(0, true); if (s.StartingSector > 0) { s.Colour1 = new SolidBrush(Color.FromArgb(GameSettings.DefaultTeamColours[s.StartingSector - 1])); } } foreach (var w in m.Wormholes) { w.SetVisibleToTeam(1, true); } } m.InitialiseMap(); return(m); }
public SimpleGameMap ToSimpleMap() { var m = new SimpleGameMap(Name); foreach (var s in Sectors) { m.Sectors.Add(new SimpleMapSector(s.Id, s.MapPosition) { StartingSectorTeam = s.StartingSector }); } foreach (var w in Wormholes) { var s1 = w.Sector1.Id; var s2 = w.Sector2.Id; if (!m.WormholeIds.Any(_ => (_.FromSectorId == s1 || _.ToSectorId == s1) && (_.FromSectorId == s2 || _.ToSectorId == s2))) { m.WormholeIds.Add(new WormholeId(s1, s2)); } } return(m); }