public void StartGame(bool showCountdown = true) { stateChangeListener = stateChangeListenerFactory.Get(); for (var i = 0; i < sPlayerData.Count; i++) { var data = sPlayerData[i]; var player = data.player; player.eId = i; if (string.IsNullOrEmpty(data.displayName)) { player.eDisplayName = "P" + (i + 1); } else { player.eDisplayName = data.displayName; } player.eTeam = data.team; player.eLives = startingLives; player.eDamage = startingDamage; data.positionSampler = new ManualCacheSampler <Vector2>(.25f, () => { stateChangeListener.PlayerPositionChanged(i, player.transform.position); }); } InitializePlayers(); StartCoroutine(StartGameWhenPlayersReady(showCountdown)); }
IEnumerator WaitForPlayersToSync() { yield return(new WaitWhile(() => sPlayerData.Count(d => d.player.eId == 0) > 1)); yield return(new WaitUntil(() => sPlayerData.Any(d => d.player.hasAuthority))); cPlayerId = sPlayerData.First(d => d.player.hasAuthority).player.eId; stateChangeListener = stateChangeListenerFactory.Get(); foreach (var pd in sPlayerData) { stateChangeListener.LifeChanged(pd.player.eId, pd.player.eLives); stateChangeListener.DamageChanged(pd.player.eId, pd.player.eDamage); } InitializePlayers(); }
public ListenStateChangeListener(IStateChangeListener listener) { this.listener = listener; NetworkController.clientConnectionToServer.RegisterHandler(NetworkMessages.StateChangeBroadcast, OnStateChanged); }
public void Add(IStateChangeListener listener) { listeners.Add(listener); }
public void RegisterStateChangeListener(IStateChangeListener listener) { this.screenChangeListener = listener; //listener.StateChanged(currentScreen); }