Exemple #1
0
        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));
        }
Exemple #2
0
        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();
        }
Exemple #3
0
 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);
 }