public void OnUpdate()
    {
        var lgt = GameObject.FindObjectOfType <LevelGridType>();

        if (lgt == null)
        {
            // That is not a playable level so no need to runn things
            return;
        }

        // Early Update
        if (player.isDead)
        {
            owner.SetState(new LevelLost(owner));
            return;
        }

        if (GameStateManager.Instance.objectivesQueue.OnUpdate())
        {
            owner.SetState(new LevelWon(owner));
            return;
        }

        // Update
        TurnManager.Instance.OnUpdate();

        foreach (var actor in GameStateManager.Instance.AllActors)
        {
            actor.OnUpdate();
        }


        // Late Update
        TurnManager.Instance.OnLateUpdate();

        HandleInput();
    }
Beispiel #2
0
    public void OnUpdate()
    {
        // If animation ready to load level
        if (loadingScreen.finAppearAnim && shouldLoadScene)
        {
            shouldLoadScene = false;
            SceneManager.LoadScene(GameStateManager.Instance.sceneIndex);
        }

        if (loadingSceneFinished)
        {
            loadingSceneFinished = false;
            loadingScreen.EndLoadingScreen();
        }

        // When animation finished
        if (loadingScreen.finDisappearAnim)
        {
            // Unbind sceneListener
            SceneManager.sceneLoaded -= OnSceneLoaded;
            owner.SetState(new LevelRunning(owner));
        }
    }