Exemplo n.º 1
0
        public async Task SendDistressSignal(ClientModels.SendDistressSignalMessage message)
        {
            var player = _playerService.GetPlayerInfoByApiKey(message.ApiKey);

            DistressSignal signal = new DistressSignal()
            {
                Player         = player,
                SignalLocation = _mapper.Map <ClientModels.Location, Location>(message.Location),
                Time           = DateTime.UtcNow,
            };

            _distressSignalService.AddDistressSignal(signal);

            var newMessage = new ClientModels.DistressSignalReceivedMessage()
            {
                Location   = _mapper.Map <Location, ClientModels.Location>((Location)signal.SignalLocation),
                PlayerName = signal.Player.Name,
            };

            var inRange = await _playerService.GetPlayersInRangeAsync(signal.SignalLocation, 100);

            if (inRange != null)
            {
                foreach (var contact in inRange)
                {
                    if (contact.ApiKey != signal.Player.ApiKey) // Avoid sending the distress signal to the player who sent it
                    {
                        await Clients.Client(contact.ConnectionId).SendAsync("DistressSignalReceived", newMessage);
                    }
                }
            }

            await Clients.Caller.SendAsync("DistressSignalCreated", newMessage);
        }
Exemplo n.º 2
0
 private void _serverService_DistressSignalReceived(object sender, DistressSignal distressSignal)
 {
     this.Dispatcher.Invoke(() =>
     {
         _model.ReceivedDistressSignals.Add(distressSignal);
     });
 }
Exemplo n.º 3
0
 private void serverService_DistressSignalCreated(object sender, DistressSignal e)
 {
     this.Dispatcher.Invoke(() =>
     {
         _model.SentDistressSignals.Add(e);
     });
 }
Exemplo n.º 4
0
 public void AddDistressSignal(DistressSignal distressSignal)
 {
     _distressSignals.Add(distressSignal);
     if (distressSignal.Player.DistressSignals == null)
     {
         distressSignal.Player.DistressSignals = new List <IDistressSignal>();
     }
     distressSignal.Player.DistressSignals.ToList().Add(distressSignal);
 }
Exemplo n.º 5
0
        private void _server_DistressSignalCreated(object sender, DistressSignalReceivedMessage e)
        {
            var ds = new DistressSignal()
            {
                Player         = _playerState.PlayerInfo,
                SignalLocation = e.Location,
                Time           = DateTime.Now,
            };

            DistressSignalCreated?.Invoke(this, ds);
        }
Exemplo n.º 6
0
        private void server_OnDistressSignal(object sender, DistressSignalReceivedMessage e)
        {
            var ds = new DistressSignal()
            {
                Player = new Player {
                    Name = e.PlayerName
                },
                SignalLocation = e.Location,
                Time           = DateTime.Now,
            };

            _playerState.ReceivedDistressSignals.Add(ds);

            DistressSignalReceived?.Invoke(this, ds);
        }