Пример #1
0
        public BattleDetails CheckBattleDetails(BattleDetails battleDetailsOriginal, out int minTeamPlayers, out int maxTeamPlayers)
        {
            minTeamPlayers = 1;
            maxTeamPlayers = 8;
            BattleDetails battleDetails;

            if (battleDetailsOriginal != null)
            {
                battleDetails = (BattleDetails)battleDetailsOriginal.Clone();
            }
            else
            {
                battleDetails = new BattleDetails();
            }

            foreach (var line in rules)
            {
                var    args = line.Split(' ');
                string key  = args[0];
                string val  = Utils.Glue(args, 1);

                if (key == "min_players_per_allyteam")
                {
                    minTeamPlayers = int.Parse(val);
                }
                if (key == "max_players_per_allyteam")
                {
                    maxTeamPlayers = int.Parse(val);
                }
                if (key == "startpos")
                {
                    if (val != "any")
                    {
                        battleDetails.StartPos = (BattleStartPos)int.Parse(val);
                    }
                }
            }
            return(battleDetails);
        }
Пример #2
0
        public BattleDetails CheckBattleDetails(BattleDetails battleDetailsOriginal, out int minTeamPlayers, out int maxTeamPlayers)
        {
            minTeamPlayers = 1;
            maxTeamPlayers = 8;
            BattleDetails battleDetails;

            if (battleDetailsOriginal != null)
            {
                battleDetails = (BattleDetails)battleDetailsOriginal.Clone();
            }
            else
            {
                battleDetails = new BattleDetails();
            }

            foreach (var line in rules)
            {
                var    args = line.Split(' ');
                string key  = args[0];
                string val  = Utils.Glue(args, 1);

                if (key == "min_players_per_allyteam")
                {
                    minTeamPlayers = int.Parse(val);
                }
                if (key == "max_players_per_allyteam")
                {
                    maxTeamPlayers = int.Parse(val);
                }
                if (key == "startpos")
                {
                    if (val != "any")
                    {
                        battleDetails.StartPos = (BattleStartPos)int.Parse(val);
                    }
                }
                if (key == "gamemode")
                {
                    if (val != "any")
                    {
                        battleDetails.EndCondition = (BattleEndCondition)int.Parse(val);
                    }
                }
                if (key == "dgun")
                {
                    if (val != "any")
                    {
                        battleDetails.LimitDgun = int.Parse(val);
                    }
                }
                if (key == "ghost")
                {
                    if (val != "any")
                    {
                        battleDetails.GhostedBuildings = int.Parse(val);
                    }
                }
                if (key == "diminish")
                {
                    if (val != "any")
                    {
                        battleDetails.DiminishingMM = int.Parse(val);
                    }
                }
                if (key == "metal")
                {
                    if (val != "any")
                    {
                        int min = int.Parse(args[1]);
                        int max = int.Parse(args[2]);
                        if (battleDetails.StartingMetal < min)
                        {
                            battleDetails.StartingMetal = min;
                        }
                        if (battleDetails.StartingMetal > max)
                        {
                            battleDetails.StartingMetal = max;
                        }
                    }
                }
                if (key == "energy")
                {
                    if (val != "any")
                    {
                        int min = int.Parse(args[1]);
                        int max = int.Parse(args[2]);
                        if (battleDetails.StartingEnergy < min)
                        {
                            battleDetails.StartingEnergy = min;
                        }
                        if (battleDetails.StartingEnergy > max)
                        {
                            battleDetails.StartingEnergy = max;
                        }
                    }
                }

                if (key == "units")
                {
                    if (val != "any")
                    {
                        int min = int.Parse(args[1]);
                        int max = int.Parse(args[2]);
                        if (battleDetails.MaxUnits < min)
                        {
                            battleDetails.MaxUnits = min;
                        }
                        if (battleDetails.MaxUnits > max)
                        {
                            battleDetails.MaxUnits = max;
                        }
                    }
                }
            }
            return(battleDetails);
        }