Ejemplo n.º 1
0
    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;
        }
    }
Ejemplo n.º 2
0
    public void RemoveExistingBattleUnit(string specName)
    {
        RealBattleUnit rbu = buildingUnits.Find(x => x.specialName == specName);

        buildingUnits.Remove(rbu);
        UpdateMyRealUnits();
        //numOfSquads = buildingUnits.Count;
    }
Ejemplo n.º 3
0
    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);
    }
Ejemplo n.º 4
0
    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);
        }
    }
Ejemplo n.º 5
0
    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();
        }
    }
Ejemplo n.º 6
0
    // ОБРАБОТКА ДЕЙСТВИЙ С ОТРЯДАМИ ЮНИТОВ

    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);
    }
Ejemplo n.º 7
0
    // ОТРАБОТКА ДЕЙСТВИЙ С ВОЙСКАМИ

    public void AddNewArmy(RealBattleUnit rbu)
    {
        currentArmy.Add(rbu);
    }
Ejemplo n.º 8
0
 public void AddNewBattleUnit(RealBattleUnit RBU)
 {
     buildingUnits.Add(RBU);
     numOfSquads = buildingUnits.Count;
 }