예제 #1
0
        public static GameState Deserialize(XmlNode xml)
        {
            GameState state = new GameState();

            state.Blocks = BlockList.Deserialize(xml.SelectSingleNode("BlockList"));
            state.Effects = EffectList.Deserialize(xml.SelectSingleNode("EffectList"));
            state.Projectiles = ProjectileList.Deserialize(xml.SelectSingleNode("ProjectileList"));
            state.Units = UnitList.Deserialize(xml.SelectSingleNode("UnitList"));

            return state;
        }
예제 #2
0
        public void WaitForOppent()
        {
            while (true)
            {
                XmlNode tempState = DataService.GetRefreshedData(_currentGameId, _playerId);
                while (tempState == null)
                {
                    Thread.Sleep(100);
                }

                _gameState = GameState.Deserialize(tempState);
                _messages.Remove("Waiting for opponent");

                _inPlanningMode = false;
                _remainingPlayTime = 5000;

                break;
            }
        }
예제 #3
0
        private void JoinGame()
        {
            if (_gameState != null && !DataService.NeedsTurn(_currentGameId, _playerId, CurrentTeam))
            {
                WaitThread = new Thread(WaitForOppent);
                WaitThread.Start();

                return;
            }

            var tempState = DataService.GetState(_currentGameId, _playerId);

            if (tempState == null)
            {
                return;
            }

            _gameState = GameState.Deserialize(tempState);

            CurrentTeam = DataService.GetTeam(_currentGameId, _playerId);

            ToggleMenuMode(false);
        }