示例#1
0
    private void CreateRandomArmy()
    {
        if (_size < UnitsData.TypesCount)
        {
            return;
        }

        int part      = _size / UnitsData.TypesCount;
        int remainder = _size - (part * UnitsData.TypesCount);

        int[] parts  = new int[UnitsData.TypesCount];
        int   random = 0;

        for (int i = 0; i < parts.Length; i++)
        {
            parts[i] += part;

            random    = Random.Range(-part / 2, part / 2);
            parts[i] += random;

            if (i + 1 < parts.Length)
            {
                parts[i + 1] -= random;
            }
            else
            {
                parts[i - 1] -= random;
            }
        }

        parts[Random.Range(0, UnitsData.TypesCount)] += remainder;

        _army = new Army(troopCount, troopSprite);

        buttonAttack.gameObject.SetActive(true);

        for (byte i = 0; i < UnitsData.TypesCount; i++)
        {
            if (parts[i] > 0)
            {
                _army.AddTroop(parts[i], i);
            }
        }

        Castle.Instance.UpdateSoldiersCount(_army.UnitsCount);

        inputField.text = "0";
        _size           = 0;

        buttonCreateArmy.gameObject.SetActive(false);
        buttonDisbandArmy.gameObject.SetActive(true);
    }