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;
}
}