Exemple #1
0
    public void _Conclude()
    {
        BasicCanvas.enabled      = true;
        TaxCanvas.enabled        = false;
        FamilyFeedCanvas.enabled = false;
        ConclusionCanvas.enabled = true;

        TimeManager.FreezeTime();

        // The remain
        remainedWheat.text = GameDataManager.CurrentWheat.ToString();
        remainedOat.text   = GameDataManager.CurrentOat.ToString();

        // Taxes
        var wholeTax = wheatSlider.maxValue + oatSlider.maxValue;
        var paidTax  = paidWheat + paidOat;

        if (wholeTax * 0.5f > paidTax)
        {
            EventManager.Instance.taxEvasionTimes++;
        }

        paidWheat *= -1;
        paidOat   *= -1;
        ChangeColor(wheatTax, paidWheat);
        ChangeColor(oatTax, paidOat);
        wheatTax.text = paidWheat.ToString();
        oatTax.text   = paidOat.ToString();
        GameDataManager.CurrentWheat += paidWheat;
        GameDataManager.CurrentOat   += paidOat;
        GameDataManager.CurrentWheat += forcedPaidWheat;
        GameDataManager.CurrentOat   += forcedPaidOat;


        // Family consumption
        var list = FamilyManager.FamilyMembers;

        for (int i = 0; i < list.Count; i++)
        {
            list[i].hunger = requiredFoods[i] - gavedFoods[i];
        }

        wheatForFamily *= -1;
        ChangeColor(tendFamily, wheatForFamily);
        tendFamily.text = wheatForFamily.ToString();
        GameDataManager.CurrentWheat += wheatForFamily;

        // Animal consumption
        var animalConsumption = 0;

        for (int i = 0; i < GameDatabase.Instance.animalList.Count; i++)
        {
            animalConsumption += Mathf.CeilToInt(GameDatabase.Instance.animalList[i].requiredOat * GameDataManager.GetAnimalNumber(i));
        }
        animalConsumption =
            Mathf.RoundToInt(
                animalConsumption *
                GameDataManager.GameValues[GameValueType.OatConsumptionRate]);
        if (animalConsumption > GameDataManager.CurrentOat)
        {
            GameDataManager.CurrentAnimalHunger += Mathf.CeilToInt((animalConsumption - GameDataManager.CurrentOat));
            GameDataManager.GameValues[GameValueType.AnimalHungryDays]++;
            animalConsumption = GameDataManager.CurrentOat;
        }
        else
        {
            GameDataManager.CurrentAnimalHunger = 0;
            GameDataManager.GameValues[GameValueType.AnimalHungryDays] = 0;
        }
        animalConsumption *= -1;
        ChangeColor(tendAnimal, animalConsumption);
        tendAnimal.text             = animalConsumption.ToString();
        GameDataManager.CurrentOat += animalConsumption;

        // Milk
        GameDataManager.GameValues[GameValueType.Milks] += GameDataManager.GameValues[GameValueType.NumberOfOx] * GameDatabase.Instance.animalList[0].ProvidedFood;

        // Events
        var wDiff = forcedPaidWheat;
        var oDiff = forcedPaidOat;

        ChangeColor(eventWheat, wDiff);
        ChangeColor(eventOat, oDiff);
        eventWheat.text = wDiff.ToString();
        eventOat.text   = oDiff.ToString();

        finalWheat.text = GameDataManager.CurrentWheat.ToString();
        finalOat.text   = GameDataManager.CurrentOat.ToString();
    }