Пример #1
0
 private void SendPlayerMessageToRemoteSpectator(PlayerMessage message, Player player)
 {
     if (!player.IsRemote) return;
     try
     {
         var messageMessage = new PlayerMessageMessage { PlayerID = player.ID, Message = message };
         NetworkEngine.GetGameClientConnection(player.ConnectionID).Send(messageMessage);
     }
     catch (InvalidOperationException)
     {
         // The connection of the player doesn't exist any more. Just don't send the message then.
     }
 }
Пример #2
0
 private void HandlePlayerMessageMessageOnClient(PlayerMessageMessage mess)
 {
     if (mess.AllPlayers) throw new NotImplementedException("Client cannot broadcast player text messages");
     var player = Game.DataEngine.Players.First(plr => plr.ID == mess.PlayerID);
     if (player != null) player.Messages.Add(mess.Message);
 }
Пример #3
0
 private void HandlePlayerMessageMessageOnServer(PlayerMessageMessage mess)
 {
     if (mess.AllPlayers)
     {
         var otherPlayers = Game.DataEngine.Players.Where(plr => plr.ConnectionID != mess.ConnectionID);
         foreach (var player in otherPlayers) player.Messages.Add(mess.Message);
     }
     else
     {
         var player = Game.DataEngine.Players.FirstOrDefault(plr => plr.ID == mess.PlayerID);
         if (player != null)
         {
             if (player.IsRemote)
                 Game.NetworkEngine.GetGameClientConnection(player.ConnectionID).Send(mess);
             else
                 HandlePlayerMessageMessageOnClient(mess);
         }
     }
 }
Пример #4
0
 private void SendMessages()
 {
     if (_nextEventType == EventType.ARENA_FINISH && _arenaTimeoutMessages.Any() && Now + _arenaTimeoutMessages[0] >= _nextEvent)
     {
         var text = "Arena will change in " + _arenaTimeoutMessages[0].ToDurationString("day", "hour", "minute", "second", usePlurals: true);
         foreach (var plr in Game.DataEngine.Players)
         {
             if (!plr.IsRemote) continue;
             var message = new PlayerMessageMessage { Message = new PlayerMessage(text, PlayerMessage.DEFAULT_COLOR), };
             message.PlayerID = plr.ID;
             Game.NetworkEngine.GetGameClientConnection(plr.ConnectionID).Send(message);
         }
         _arenaTimeoutMessages.RemoveAt(0);
     }
 }