Dictionary <Pos, StatsVision> GetPosViewVision() { Dictionary <Pos, Dictionary <Player, eVisibility> > visibility = new Dictionary <Pos, Dictionary <Player, eVisibility> >(); List <Player> players = _game._playerSystem._players; foreach (Pos p in _game._locations.Keys) { visibility[p] = new Dictionary <Player, eVisibility>(); foreach (Player player in players) { visibility[p][player] = eVisibility.Unexplored; } } foreach (Pos p in _game._locations.Keys) { HomelandsStructure structure = _game._locations[p]._structure; if (structure != null) { List <HomelandsLocation> visibleLocations = structure.GetLocationsInRadius(eRadius.Vision); foreach (HomelandsLocation location in visibleLocations) { visibility[location._pos][structure._owner] = eVisibility.Visible; } } } Dictionary <Pos, StatsVision> visionStats = new Dictionary <Pos, StatsVision>(); foreach (Pos p in visibility.Keys) { visionStats[p] = new StatsVision(visibility[p]); } return(visionStats); }
public Stats(Pos pos, StatsVision vision, StatsControl control, StatsBuild build, StatsExtraction extraction, StatsMilitary military) { _pos = pos; _vision = vision; _control = control; _build = build; _extraction = extraction; _military = military; }
public List <Stats> GetPosViews() { List <Stats> views = new List <Stats>(); Dictionary <Pos, StatsVision> vision = GetPosViewVision(); Dictionary <Pos, StatsControl> control = GetPosViewControl(); Dictionary <Pos, StatsBuild> build = GetPosViewBuild(); Dictionary <Pos, StatsExtraction> extraction = GetPosViewExtraction(); Dictionary <Pos, StatsMilitary> military = GetPosViewMilitary(); foreach (Pos p in _game._locations.Keys) { StatsVision v = vision.ContainsKey(p) ? vision[p] : new StatsVision(new Dictionary <Player, eVisibility>()); StatsControl c = control.ContainsKey(p) ? control[p] : new StatsControl(new Dictionary <Player, bool>()); StatsBuild b = build.ContainsKey(p) ? build[p] : new StatsBuild(new Dictionary <Player, dStructurePlacement>()); StatsExtraction e = extraction.ContainsKey(p) ? extraction[p] : new StatsExtraction(new Dictionary <Player, float>()); StatsMilitary m = military.ContainsKey(p) ? military[p] : new StatsMilitary(new Dictionary <Player, float>()); Stats view = new Stats(p, v, c, b, e, m); views.Add(view); } return(views); }