Beispiel #1
0
        /// <summary>
        /// Move the caller to the specified position
        /// </summary>
        /// <param name="position"></param>
        public void UpdatePosition(Vector2 position, EPlayerDirection direction)
        {
            ServerPlayerModel candidate = ServiceProvider.GetPlayerService().GetPlayer(Context.ConnectionId);

            if (candidate == null) return;

            bool success = ServiceProvider.GetPlayerService().TryMovePlayerTo(Context.ConnectionId, position, direction);
            if (!success) return;
            string login = candidate.Pseudo;

            // Notify all the connected players that a player moved
            var players = ServiceProvider.GetPlayerService().GetAllPlayersServer();
            object newPos = new { Pseudo = login, Position = position, Direction = direction };
            for (int i = 0; i < players.Count; i++)
            {
                if (players[i].SignalRId == Context.ConnectionId) continue;

                Clients.Client(players[i].SignalRId).playerMoved(newPos);
            }
        }
Beispiel #2
0
 /// <summary>
 /// Try to move a player to a specified location
 /// </summary>
 /// <param name="player"></param>
 /// <param name="to"></param>
 /// <param name="direction"></param>
 /// <returns></returns>
 public bool TryMovePlayerTo(string connectionId, Vector2 to, EPlayerDirection direction)
 {
     return MovePlayerTo(connectionId, to, direction);
 }
Beispiel #3
0
 /// <summary>
 /// Move a given user to the specified destination (using the signalR connection Id)
 /// </summary>
 /// <param name="connectionId"></param>
 /// <param name="to"></param>
 public bool MovePlayerTo(string connectionId, Vector2 to, EPlayerDirection direction)
 {
     lock (Players)
     {
         ServerPlayerModel p = GetPlayer(connectionId);
         if (p == null)
             return false;
         p.Position = to;
         p.Direction = direction;
         return true;
     }
 }
Beispiel #4
0
 /// <summary>
 /// Try to move a player to a specified location
 /// </summary>
 /// <param name="player"></param>
 /// <param name="to"></param>
 /// <param name="direction"></param>
 /// <returns></returns>
 public bool TryMovePlayerTo(ServerPlayerModel player, Vector2 to, EPlayerDirection direction)
 {
     return MovePlayerTo(player, to, direction);
 }
Beispiel #5
0
 /// <summary>
 /// Move a given user to the specified destination
 /// </summary>
 /// <param name="player"></param>
 /// <param name="to"></param>
 public bool MovePlayerTo(ServerPlayerModel player, Vector2 to, EPlayerDirection direction)
 {
     return MovePlayerTo(player.SignalRId, to, direction);
 }