/// <summary> /// Gets the total quantity for each type of unit. /// </summary> /// <returns>The total quantity.</returns> public int GetUnitTotalQuantity() { CombatUnitManagerMetaData data = CombatUnitManagerMetaData.Load(); _unitTypeAndNumber = data.GetAllUnit(); int retVal = 0; foreach (CombatUnitType unitType in _unitTypeAndNumber.Keys) { retVal += _unitTypeAndNumber[unitType]; } return(retVal); }
/// <summary> /// Gets the type of the unit quantity for unit type. /// Return 0 if can't find unit type /// </summary> /// <returns>The unit quantity for type.</returns> /// <param name="type">Type.</param> public int GetUnitQuantityForType(CombatUnitType type) { CombatUnitManagerMetaData data = CombatUnitManagerMetaData.Load(); _unitTypeAndNumber = data.GetAllUnit(); foreach (CombatUnitType unitType in _unitTypeAndNumber.Keys) { if (type == unitType) { return(_unitTypeAndNumber[unitType]); } } return(0); }
/// <summary> /// Updates combat unit manager. /// </summary> void UpdateCombatUnitManager() { CombatUnitManagerMetaData data = CombatUnitManagerMetaData.Load(true); maxCombatUnit = data.maxCombatUnit; currentCombatUnit = data.CurrentCombatUnit; _unitTypeAndNumber = data.GetAllUnit(); if ((data.producingUnit) && (_task == null)) { _task = ProduceUnitTask.CreateTask(data.producingUnitType, data.producingAmount, OnProducingUnitComplete, OnTimeLeftToComplete, data.producingDuration); TaskManager.Instance.AddTask(_task); } else { _task = null; } }
/// <summary> /// Gets the current produced number of combat unit. /// Filter true will filt out unit type that current number is 0 /// </summary> /// <returns>The avaliable combat unit number.</returns> /// <param name="filter">If set to <c>true</c> filter.</param> public Dictionary <CombatUnit, int> GetAvaliableCombatUnitNumber(bool filter = true) { CombatUnitManagerMetaData data = CombatUnitManagerMetaData.Load(false); Dictionary <CombatUnitType, int> dic = data.GetAllUnit(filter); Dictionary <CombatUnit, int> retDic = new Dictionary <CombatUnit, int>(); //keep combat unit defination order for (int i = 0; i < combatUnitInfo.Count; i++) { if (dic.ContainsKey(combatUnitInfo[i].unitType)) { retDic.Add(combatUnitInfo[i], dic[combatUnitInfo[i].unitType]); } } return(retDic); }