public void SetSquadInfo(string squadNm) { RealBattleUnit RBU = null; RBU = ResourceController.instance.currentArmy.Find(x => x.specialName == squadNm); if (RBU != null) { squadImage.sprite = RBU.bu.getUnitSprite; squadName.text = squadNm; squadStatus.text = "Статус: " + RBU.curStatus.ToString(); squadNumber.text = "Численность: " + RBU.curAmount.ToString(); squadHP.text = "HP: " + RBU.bu.getUnitHP.ToString(); squadSpeed.text = "Скорость: " + RBU.bu.getUnitSpeed.ToString(); squadParams.text = "LA: " + RBU.bu.getUnitParams.x.ToString() + " HD: " + RBU.bu.getUnitParams.y.ToString() + " LD: " + RBU.bu.getUnitParams.z.ToString() + " HD: " + RBU.bu.getUnitParams.w.ToString(); // Заполняем список имеющихся бонусов данного отряда string bInfo = ""; for (int i = 0; i < RBU.GetCurrBonuses.Count; ++i) { bInfo = bInfo + RBU.GetCurrBonuses[i].unitBonus.getBonusName + ": " + RBU.GetCurrBonuses[i].currnetCount.ToString() + "\n"; } squadBonuses.text = bInfo; } }
public void RemoveExistingBattleUnit(string specName) { RealBattleUnit rbu = buildingUnits.Find(x => x.specialName == specName); buildingUnits.Remove(rbu); UpdateMyRealUnits(); //numOfSquads = buildingUnits.Count; }
public void UnderstaffBattleUnit(string origName, int numProd, int buildNum) // Уникальное имя боевого подразделения, сколько юнитов нужно добрать { int ind = ResourceController.instance.currentArmy.FindIndex(x => x.specialName == origName); ResourceController.instance.currentArmy[ind].curStatus = ResourceController.SquadStatus.onReqruit; RealBattleUnit RBU = ResourceController.instance.currentArmy.Find(x => x.specialName == origName); CreateNewSquadTask(origName, numProd, RBU.bu.getUnitRecruitTime, buildNum); }
public void DeleteArmy(string armyName) { RealBattleUnit RBU = null; RBU = currentArmy.Find(x => x.specialName == armyName); if (RBU != null) { int buildNum = RBU.buildNum; int ind = currentUnitBuildings.FindIndex(x => x.buildNum == buildNum); int ind2 = currentArmy.FindIndex(x => x.specialName == armyName); currentArmy.RemoveAt(ind2); //currentArmy.Remove(RBU); currentUnitBuildings[ind].RemoveExistingBattleUnit(armyName); } }
public void AddUnitsToArmy(string armyNum, int num) { // Тут надо разобраться - открывать новое подразделение, или добавлять произведенные войска к текущему подразделению RealBattleUnit RBU = null; RBU = currentArmy.Find(x => x.specialName == armyNum); if (RBU == null) // Принципиально новое подразделение появилось { // ................. } else // Таковое уже есть { int ind = currentArmy.FindIndex(x => x.specialName == armyNum); currentArmy[ind].AddUnits(num); currentArmy[ind].curStatus = ResourceController.SquadStatus.onFree; int indd = currentUnitBuildings.FindIndex(x => x.buildNum == currentArmy[ind].buildNum); currentUnitBuildings[indd].UpdateMyRealUnits(); } }
// ОБРАБОТКА ДЕЙСТВИЙ С ОТРЯДАМИ ЮНИТОВ public void CreateNewBattleUnit(string unitName, int numToProd, int buildNum, ref UnitBuilding build) // Имя боевого юнита, ссылка на здание { // Подыскиваем подходящий BattleUnit SO BattleUnit BU = ResourceController.instance.allBattleUnits.Find(x => x.getUnitName == unitName); // Имя подразделения придумываем сами (!!!) string specName = ResourceController.instance.GetEteSquadName(unitName); RealBattleUnit RBU = new RealBattleUnit(specName); // Здесь в качестве ссылки должно даваться уникальное имя подразделения (!!! не unitName !!!) RBU.bu = BU; RBU.buildNum = build.buildNum; RBU.curAmount = 0; RBU.curStatus = ResourceController.SquadStatus.onReqruit; build.AddNewBattleUnit(RBU); ResourceController.instance.AddNewArmy(RBU); // Запускаем в производство это подразделение CreateNewSquadTask(specName, Mathf.Min(RBU.bu.getUnitAmount, numToProd), RBU.bu.getUnitRecruitTime, buildNum); }
// ОТРАБОТКА ДЕЙСТВИЙ С ВОЙСКАМИ public void AddNewArmy(RealBattleUnit rbu) { currentArmy.Add(rbu); }
public void AddNewBattleUnit(RealBattleUnit RBU) { buildingUnits.Add(RBU); numOfSquads = buildingUnits.Count; }