Exemple #1
0
        private void manageInfluence(GraphicModel.SolarSystem ss)
        {
            double influence = 10.0;
            int    level     = 2;

            if (ss.hasstatsion)
            {
                influence *= 6;
                level      = 1;
            }

            switch (ss.sovlevel)
            {
            case 0: influence *= 0.5;
                break;

            case 2: influence *= 1.1;
                break;

            case 3:
                influence *= 1.2;
                break;

            case 4:
                influence *= 1.4;
                break;

            case 5:
                influence *= 1.6;
                break;
            }

            Alliance al;

            if (alliances.ContainsKey(ss.allianceid))
            {
                al = alliances[ss.allianceid];
            }
            else

            {
                al = null;
            }
            addInfluence(ss, influence, al, level, new List <GraphicModel.SolarSystem>());
        }
Exemple #2
0
        private void addInfluence(GraphicModel.SolarSystem ss, double value, Alliance al, int level, List <GraphicModel.SolarSystem> set)
        {
            ss.addInfluence(al, value);
            if (!systemsSov.AsParallel().Any(p => p.systemid == ss.systemid))
            {
                systemsSov.Add(ss);
            }

            if (level >= 4)
            {
                return;
            }
            var arr = jumpsTable[ss.systemid];

            foreach (var s in arr)
            {
                if (set.Contains(s))
                {
                    continue;
                }
                set.Add(s);
                addInfluence(s, value * 0.3, al, level + 1, set);
            }
        }