예제 #1
0
    Dictionary <Pos, StatsMilitary> GetPosViewMilitary()
    {
        Dictionary <Pos, Dictionary <Player, float> > military = new Dictionary <Pos, Dictionary <Player, float> >();
        List <Player> players = _game._playerSystem._players;

        foreach (Pos p in _game._locations.Keys)
        {
            military[p] = new Dictionary <Player, float>();
            foreach (Player player in players)
            {
                military[p][player] = 0f;
            }
        }
        foreach (Pos p in _game._locations.Keys)
        {
            HomelandsStructure structure = _game._locations[p]._structure;
            if (structure != null)
            {
                List <HomelandsLocation> visibleLocations = structure.GetLocationsInRadius(eRadius.Military);
                foreach (HomelandsLocation location in visibleLocations)
                {
                    military[location._pos][structure._owner] += 1f;
                }
            }
        }
        Dictionary <Pos, StatsMilitary> militaryStats = new Dictionary <Pos, StatsMilitary>();

        foreach (Pos p in military.Keys)
        {
            militaryStats[p] = new StatsMilitary(military[p]);
        }
        return(militaryStats);
    }
예제 #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);
    }