Beyond_Beyaan.Data_Managers.MasterTechnologyManager.GetRandomizedForceFieldTechs C# (CSharp) Метод

GetRandomizedForceFieldTechs() публичный Метод

public GetRandomizedForceFieldTechs ( ) : List
Результат List
        public List<Technology> GetRandomizedForceFieldTechs()
        {
            while (true)
            {
                //Must include at least one planetary shield tech, and at least one tech from each tier
                List<Technology> randomList = new List<Technology>();
                for (int i = 0; i < 10; i++)
                {
                    bool hasAtLeastOneTierTech = false;
                    List<Technology> randomTierList = new List<Technology>();
                    while (!hasAtLeastOneTierTech)
                    {
                        randomTierList = new List<Technology>();
                        foreach (var tech in ForceFieldTechs)
                        {
                            if (tech.TechLevel == 1 && i == 0)
                            {
                                //Include starting levels if on first tier
                                randomTierList.Add(tech);
                            }
                            else if (tech.TechLevel > (i * 5) && tech.TechLevel <= (i + 1) * 5 && _gameMain.Random.Next(100) < 50)
                            {
                                randomTierList.Add(tech);
                                hasAtLeastOneTierTech = true;
                            }
                        }
                    }
                    randomList.AddRange(randomTierList);
                }
                foreach (var tech in randomList)
                {
                    if (tech.PlanetaryShield > 0)
                    {
                        return randomList;
                    }
                }
            }
        }