Exemple #1
0
    private IEnumerator <float> ReplenishFoodCoroutine()
    {
        var queuedAction = new QueuedPetActions();

        queuedActions.Enqueue(queuedAction);
        yield return(Timing.WaitUntilDone(queuedAction));

        FoodLevel = 100;
        _animator.SetTrigger(FOOD_ANIMATOR_TRIGGER);
        FMODUnity.RuntimeManager.PlayOneShot(EatingSFX, transform.position);
    }
Exemple #2
0
    private IEnumerator <float> HandleOilLevel()
    {
        var oilNextWait = 0f;

        while (!GameOver)
        {
            SetTimer(ref oilNextWait, OIL_TIME_MIN, OIL_TIME_MAX);
            yield return(Timing.WaitForSeconds(oilNextWait));

            OilLevel -= OIL_CHANGE_STEP;

            var queuedAction = new QueuedPetActions();
            queuedActions.Enqueue(queuedAction);
            yield return(Timing.WaitUntilDone(queuedAction));

            CheckIfGameOver();
            yield return(Timing.WaitForSeconds(0.5f));

            HandleOilToPlayer();
        }
    }
Exemple #3
0
    private IEnumerator <float> HandleFoodLevel()
    {
        var foodNextWait = 0f;

        while (!GameOver)
        {
            SetTimer(ref foodNextWait, FOOD_CHANGE_TIME_MIN, FOOD_CHANGE_TIME_MAX);
            yield return(Timing.WaitForSeconds(foodNextWait));

            FoodLevel -= FOOD_CHANGE_STEP;

            var queuedAction = new QueuedPetActions();
            queuedActions.Enqueue(queuedAction);
            yield return(Timing.WaitUntilDone(queuedAction));

            CheckIfGameOver();
            yield return(Timing.WaitForSeconds(0.5f));

            HandleFoodToPlayer();
        }
    }