Example #1
0
        public String Connect(Guid playerId)
        {
            //TODO: Check duplicates
            var    callback = OperationContext.Current.GetCallbackChannel <IGameServiceCallback>();
            String session  = OperationContext.Current.SessionId;

            CServerPlayer player = _players.Single(p => p.PlayerInfo.Id == playerId);

            player.Callback = callback;
            player.Session  = session;
            player.Status   = EGameStatus.PlayerSelecting;
            return(session);
        }
Example #2
0
        public void SelectHero(CHeroBase hero)
        {
            CServerPlayer player = GetPlayer();

            player.Hero   = hero;
            player.Status = EGameStatus.PlayerSelected;
            if (_players.All(p => p.Status == EGameStatus.PlayerSelected))
            {
                var  i   = 0;
                CMap map = _serverMap.GetMap();
                foreach (CServerPlayer playerCallback in _players)
                {
                    i++;
                    _serverMap.Spawn(playerCallback.Hero, i, i);
                }

                foreach (CServerPlayer playerCallback in _players)
                {
                    playerCallback.Callback.GameHasStarted(map, playerCallback.Hero);
                }

                StartNewRound();
            }
        }