Esempio n. 1
0
 /// <summary>
 /// Возвращает массив всех юнитов на базе
 /// </summary>
 /// <param name="BaseID"></param>
 /// <returns></returns>
 public static IEnumerable <Unit> GetBaseUnits(int BaseID) => SquadManager.GetInstanceUnits("bas" + BaseID.ToString());
Esempio n. 2
0
        /// <summary>
        /// Управляет созданием юнитов
        /// </summary>
        /// <param name="obj"></param>
        /// <returns></returns>
        public static string MakeUnit(BaseAction obj)
        {
            if (CheckInput(obj) != "success")
            {
                return(CheckInput(obj));
            }
            try
            {
                if (IsOwner(obj.baseid, obj.token) && obj.result != null)
                {
                    if (HasBaseStructure(obj.baseid, "aircraftsComplex") == null)
                    {
                        return("noAircrafts");
                    }

                    if (!CanAfford(obj.baseid, obj.result))
                    {
                        return("notenoughresources");
                    }

                    var population = HasBaseStructure(obj.baseid, "lifeComplex");
                    if (population == null)
                    {
                        return("noLifeComplex");
                    }
                    ProceedActions.Log("Event", $"Игрок покупает юнит. На базе максимум популяции" +
                                       $" {ItemsVars.GetPopulation(population.Level)} и уже {GetBaseUnitsCount(obj.baseid)} юнитов создано");
                    if (ItemsVars.GetPopulation(population.Level) <= GetBaseUnitsCount(obj.baseid))
                    {
                        return("populationLimit");
                    }

                    ProceedActions.DoBuyItem(obj.baseid, obj.result);

                    var u = SquadManager.GetUnit("bas" + obj.baseid.ToString(), obj.result);

                    using (var db = new Entities())
                    {
                        if (u == null)
                        {
                            db.Units.Add(new Unit {
                                Instance = "bas" + obj.baseid.ToString(), Type = obj.result, Count = 1
                            });
                        }
                        else
                        {
                            ProceedActions.Log("Event", $"В инстансе {obj.baseid.ToString()} {u.Count} юнитов типа {obj.result}");
                            var unit = db.Units.FirstOrDefault(o => o.Instance == u.Instance && o.Type == u.Type);
                            unit.Count++;
                        }
                        db.SaveChanges();
                    }

                    const string result = "success";
                    return(result);
                }
                else
                {
                    const string result = "notanowner";
                    return(result);
                }
            }
            catch (Exception ex)
            {
                ProceedActions.Log("Exception", $"Исключение: {ex.Message}, функция BaseManager.MakeUnit");
                return("Error#Exception: " + ex.Message);
            }
        }