Exemple #1
0
        /// <summary>
        /// Message sent as a response to clients move. It contains information about the robot- his current position, current state,
        /// health condition, consequence of the move etc.
        /// It carries also information about the current pay and total pay of all robots in this round.
        /// In case of invalid move or timeout, Message invalid is sent to the client
        /// </summary>
        /// <param name="oSender"></param>
        /// <param name="oEventArgs">
        /// </param>
        void cl_GamePlayMessageReciveEvent(object oSender, MessageRecivedArgs oEventArgs)
        {
            Position _myLocalPosition = null;

            lock (m_SyncObject)
            {
                _currentMap      = oEventArgs.Map;
                _myLocalPosition = oEventArgs.response.MyPosition;
            }
            _myBigItem    = oEventArgs.response.HasBigItem;
            _mySmallItems = oEventArgs.response.SmallItemNumber;
            _history.Last().Consequence  = oEventArgs.response.Consequence;
            _history.Last().MyCurrentPay = oEventArgs.response.MyCurrentPay;
            _history.Last().MyTotalPay   = oEventArgs.response.TotalPay;
            _myScore += oEventArgs.response.MyCurrentPay;
            if (oEventArgs.response.ServerState == ServerState.WOUNDED)
            {
                this.HealthPoints--;
            }
            if (oEventArgs.response.ServerState == ServerState.HEALED)
            {
                this.HealthPoints = 5;
            }
            EventLog.WriteMessageToLog(logFilePath, "Game Message recived with: current round: " + _currentRoundNumber.ToString() + "; local position: " + _myLocalPosition.ToString() +
                                       "; has big item: " + _myBigItem.ToString() + "; small item number " + _mySmallItems.ToString() + "; Consequence of move: " + oEventArgs.response.Consequence.ToString() +
                                       "; my current pay: " + oEventArgs.response.MyCurrentPay.ToString() + "; total pay: " + oEventArgs.response.TotalPay.ToString());


            Dispatcher.Invoke(() => roundTextBox.Text   = (oEventArgs.response.RoundNumber + 1).ToString());
            Dispatcher.Invoke(() => scoreTextBox.Text   = _myScore.ToString());
            Dispatcher.Invoke(() => MessageTextBox.Text = oEventArgs.response.Message);
            lock (m_SyncObject)
                Dispatcher.Invoke(() => repaintMap(_myLocalPosition));
            //Thread.Sleep(new TimeSpan(0,0,2));
        }
Exemple #2
0
        void cl_GamePlayMessageReciveEvent(object oSender, MessageRecivedArgs oEventArgs)
        {
            currentMap   = oEventArgs.Map;
            myPosition   = oEventArgs.response.MyPosition;
            myBigItem    = oEventArgs.response.HasBigItem;
            mySmallItems = oEventArgs.response.SmallItemNumber;
            myPoints    += oEventArgs.response.MyCurrentPay;
            Dispatcher.Invoke(() => roundTextBox.Text = oEventArgs.response.RoundNumber.ToString());
            Dispatcher.Invoke(() => scoreTextBox.Text = myPoints.ToString());

            Dispatcher.Invoke(() => repaintMap());
            //Thread.Sleep(new TimeSpan(0,0,2));
        }