/// <summary> /// Возвращает массив всех юнитов на базе /// </summary> /// <param name="BaseID"></param> /// <returns></returns> public static IEnumerable <Unit> GetBaseUnits(int BaseID) => SquadManager.GetInstanceUnits("bas" + BaseID.ToString());
/// <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); } }