_root.StateChange C# (CSharp) Method

StateChange() private static method

private static StateChange ( GameState, old, GameState, now ) : void
old GameState,
now GameState,
return void
    private static void StateChange(GameState old, GameState now)
    {
        Debug.Log("State has changed from " + old.ToString() + " to " + now.ToString());
        foreach(StateChangeListener scl in stateChangeListeners) {
            scl.gameStateChanged(old, now);
        }
        switch (now)
        {
            case(GameState.READY):
                LevelController.main.resetLevel();
                SpawnReadyCards();
                if (go.GetComponent<ReadyManager>()==null)
                    go.AddComponent<ReadyManager>();
                go.transform.position = spawnPos;
                break;
            case(GameState.PLAYING):
                PlayerManager.PrepPlayers();
                break;
            case(GameState.RESTART):
                PlayerManager.CleanUpAllPlayers();
                eggLogic.Reset();
                delayPlay = true;
                break;
            case(GameState.LOSE):
            case(GameState.WIN):
                TinderBox.TinderBoxAPI.GameOver();
                break;
            case(GameState.QUIT):
                PlayerManager.CleanUpAllPlayers();
                eggLogic.Reset();
                delayReady = true;
                break;
        }
        switch (old)
        {
            case(GameState.READY):
                ReadyLogic[] scripts = FindObjectsOfType<ReadyLogic>();
                foreach (ReadyLogic script in scripts)
                {
                    script.RemoveReadyCard();
                }
                Destroy(go.GetComponent<ReadyManager>());
                break;
            case(GameState.PLAYING):
                PlayerManager.CleanUpAllPlayers();
                break;
            case (GameState.LOSE):
                go.GetComponent<GameEndManager>().despawnCards();
                break;
        }
    }