/// <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)); }
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)); }