public void LaunchGame(GameData gameData, string localPlayerName) { OhHellGameLoadParams loadParams = new OhHellGameLoadParams(gameData, LoadMainMenu, localPlayerName); sceneFactory.LoadScene <OhHellGameState>(OnSceneLoaded, loadParams); }
public void Load(Action onLoadedCallback, object passedParams) { onLoaded = onLoadedCallback; OhHellGameLoadParams loadParams = (OhHellGameLoadParams)passedParams; gameData = loadParams.GameData; localPlayer = gameData.GetPlayerByName(loadParams.LocalPlayerName); Service.EventManager.AddListener(EventId.RoundBegun, OnRoundBegun); Service.EventManager.AddListener(EventId.RemoteCardPlayed, OnRemoteCardPlayed); Service.EventManager.AddListener(EventId.RemoteTurnEnded, OnRemoteTurnEnded); Service.EventManager.AddListener(EventId.RemoteRoundEnded, OnRemoteRoundEnded); Service.EventManager.AddListener(EventId.GameEnded, OnGameEnded); Service.EventManager.AddListener(EventId.LocalBidPlaced, OnLocalBidPlaced); Service.EventManager.AddListener(EventId.RemoteBidPlaced, OnRemoteBidPlaced); Service.EventManager.AddListener(EventId.OnShowScoresClicked, ShowScores); Service.EventManager.AddListener(EventId.BidAdjusted, AdjustBid); Transform gameUiLayer = GameObject.Find("GameUILayer").transform; gameUi = GameObject.Instantiate( Resources.Load <GameObject>("GameScreen"), gameUiLayer); gameUi.SetActive(false); gameScreen = gameUi.GetComponent <GameScreen>(); if (gameData.IsLaunched) { // Joined a game in progress. SyncGameState(() => { seenActionIndex = gameData.CurrentActionIndex; onLoaded(); }); } else { // Joined a newly launched game. if (localPlayer.IsHost) { gameData.CurrentDealerIndex = gameData.Players.IndexOf(localPlayer); gameData.IsLaunched = true; DealCards(); Service.WebRequests.SetGameState(gameData, (response) => { TableRoundBeginAction beginRoundAction = new TableRoundBeginAction(); beginRoundAction.IsRoundBegun = true; Service.WebRequests.SendGameAction(gameData, beginRoundAction, (beginResponse) => { onLoaded(); }); }); } else { SyncGameState(() => { onLoaded(); }); } } }