コード例 #1
0
    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);
    }
コード例 #2
0
 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;
 }
コード例 #3
0
    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);
    }