Beispiel #1
0
    private void UseSuitcaseOnClient(NetworkMessage message)
    {
        NetworkDefaultMessage defaultMessage = message.ReadMessage <NetworkDefaultMessage>();
        int networkPlayerId = int.Parse(defaultMessage.inputs[0]);

        OnSuitcaseOpened(networkPlayerId);
    }
Beispiel #2
0
    private void UseHoleOnClient(NetworkMessage message)
    {
        NetworkDefaultMessage defaultMessage = message.ReadMessage <NetworkDefaultMessage>();
        int networkPlayerId = int.Parse(defaultMessage.inputs[0]);

        OnUseHole(networkPlayerId, defaultMessage.inputs[1]);
    }
Beispiel #3
0
    private void UseItemOnClient(NetworkMessage message)
    {
        NetworkDefaultMessage defaultMessage = message.ReadMessage <NetworkDefaultMessage>();
        int networkPlayerId = int.Parse(defaultMessage.inputs[0]);

        OnPlayInteraction(networkPlayerId, defaultMessage.inputs[1], defaultMessage.inputs[2]);
    }
Beispiel #4
0
    private void TryToSayHoleOnServer(NetworkMessage message)
    {
        NetworkDefaultMessage defaultMessage = message.ReadMessage <NetworkDefaultMessage>();
        PlayerData            __playerData   = playersManager.FindPlayerById(int.Parse(defaultMessage.inputs[0]));
        string __message = defaultMessage.inputs[1];

        if (__playerData.currentRoom.roomID != 0 && __playerData.currentRoom.roomID != 4)
        {
            message.conn.Send(MessageConstants.MESSAGE,
                              new NetworkConsoleMessage(__playerData.id,
                                                        "There is no hole in the room.",
                                                        MessageColor.RED));
        }
        else
        {
            int __targetRoomId = 0;
            if (__playerData.currentRoom.roomID == 0)
            {
                __targetRoomId = 4;
            }
            foreach (PlayerData playerInRoom in roomsManager.FindRoomById(__targetRoomId).playersInRoom)
            {
                if (playerInRoom.id != __playerData.id)
                {
                    if (connections.ContainsKey(playerInRoom.id))
                    {
                        connections[playerInRoom.id].Send(MessageConstants.MESSAGE,
                                                          new NetworkConsoleMessage(__playerData.id,
                                                                                    __playerData.playerName + " says from the hole: " + __message,
                                                                                    MessageColor.WHITE));
                    }
                }
            }
        }
    }
Beispiel #5
0
    private void TryToWhisperOnServer(NetworkMessage message)
    {
        NetworkDefaultMessage defaultMessage = message.ReadMessage <NetworkDefaultMessage>();
        PlayerData            __playerData   = playersManager.FindPlayerById(int.Parse(defaultMessage.inputs[0]));
        string __target  = defaultMessage.inputs[1];
        string __message = defaultMessage.inputs[2];

        bool __messageSend = false;

        foreach (PlayerData playerInRoom in __playerData.currentRoom.playersInRoom)
        {
            if (connections.ContainsKey(playerInRoom.id) && playerInRoom.playerName == __target)
            {
                connections[playerInRoom.id].Send(MessageConstants.MESSAGE,
                                                  new NetworkConsoleMessage(__playerData.id,
                                                                            __playerData.playerName + " whispers: " + __message,
                                                                            MessageColor.GREEN));
                __messageSend = true;
                message.conn.Send(MessageConstants.MESSAGE,
                                  new NetworkConsoleMessage(__playerData.id,
                                                            "You whispers to " + __target + ": " + __message,
                                                            MessageColor.GREEN));
                __messageSend = true;
            }
        }
        if (!__messageSend)
        {
            message.conn.Send(MessageConstants.MESSAGE,
                              new NetworkConsoleMessage(__playerData.id,
                                                        "There is nobody in the room with this name.",
                                                        MessageColor.RED));
        }
    }
Beispiel #6
0
    private void TryToUseHoleOnServer(NetworkMessage message)
    {
        NetworkDefaultMessage defaultMessage   = message.ReadMessage <NetworkDefaultMessage>();
        NetworkConnection     clientConnection = message.conn;

        PlayerData __playerData = playersManager.FindPlayerById(int.Parse(defaultMessage.inputs[0]));
        string     __sourceName = defaultMessage.inputs[1];

        //Player don't have the item
        if (!__playerData.HasItem(__sourceName))
        {
            clientConnection.Send(MessageConstants.MESSAGE,
                                  new NetworkConsoleMessage(__playerData.id,
                                                            playersManager.GetMessageWhenPlayerDontHaveItem(),
                                                            MessageColor.RED));
        }
        //There is no target item on the room
        else if (__playerData.currentRoom.roomID != 0 && __playerData.currentRoom.roomID != 4)
        {
            clientConnection.Send(MessageConstants.MESSAGE,
                                  new NetworkConsoleMessage(__playerData.id,
                                                            "Server says: There is no hole in the room",
                                                            MessageColor.RED));
        }
        //The items exist
        else
        {
            Item __source = __playerData.GetItem(__sourceName);

            //Source can't be used
            if (!__source.isTransferable)
            {
                clientConnection.Send(MessageConstants.MESSAGE,
                                      new NetworkConsoleMessage(__playerData.id,
                                                                itemsManager.GetMessageWhenItemCantBeTransfered(),
                                                                MessageColor.RED));
            }
            else
            {
                NetworkServer.SendToAll(MessageConstants.USE_HOLE, new NetworkDefaultMessage(new[] { __playerData.id.ToString(), __sourceName }));
                //Only send messages to player in same room
                foreach (PlayerData playerInRoom in playersManager.players)
                {
                    if (playerInRoom.currentRoom.roomID == 0 || playerInRoom.currentRoom.roomID == 4)
                    {
                        connections[playerInRoom.id].Send(MessageConstants.MESSAGE,
                                                          new NetworkConsoleMessage(__playerData.id,
                                                                                    itemsManager.GetMessageWhenSomeoneSendItem(playerInRoom.playerName, __sourceName),
                                                                                    MessageColor.LIGHT_BLUE));
                    }
                }
            }
        }
    }
Beispiel #7
0
    private void TryToUseSuitcaseOnServer(NetworkMessage message)
    {
        NetworkDefaultMessage defaultMessage   = message.ReadMessage <NetworkDefaultMessage>();
        NetworkConnection     clientConnection = message.conn;

        PlayerData __playerData = playersManager.FindPlayerById(int.Parse(defaultMessage.inputs[0]));
        string     __password   = defaultMessage.inputs[1];
        long       __result     = 0;

        //Player is not on the Office
        if (__playerData.currentRoom != roomsManager.rooms[1])
        {
            clientConnection.Send(MessageConstants.MESSAGE,
                                  new NetworkConsoleMessage(__playerData.id,
                                                            itemsManager.GetMessageWhenItemNotFound(),
                                                            MessageColor.RED));
        }
        //Valid password
        else if (long.TryParse(__password, out __result))
        {
            //Right password
            if (__result == 895402763152)
            {
                NetworkServer.SendToAll(MessageConstants.USE_SUITCASE, new NetworkDefaultMessage(new[] { __playerData.id.ToString() }));
                //Only send messages to player in same room
                foreach (PlayerData playerInRoom in __playerData.currentRoom.playersInRoom)
                {
                    if (connections.ContainsKey(playerInRoom.id) && playerInRoom.id != __playerData.id)
                    {
                        connections[playerInRoom.id].Send(MessageConstants.MESSAGE,
                                                          new NetworkConsoleMessage(__playerData.id,
                                                                                    itemsManager.GetMessageWhenSomeoneUsedSuitcase(playerInRoom.playerName),
                                                                                    MessageColor.LIGHT_BLUE));
                    }
                }
            }
            //Wrong password
            else
            {
                clientConnection.Send(MessageConstants.MESSAGE,
                                      new NetworkConsoleMessage(__playerData.id,
                                                                itemsManager.GetMessageWhenWrondPassword(),
                                                                MessageColor.RED));
            }
        }
        //Invalid password
        else
        {
            clientConnection.Send(MessageConstants.MESSAGE,
                                  new NetworkConsoleMessage(__playerData.id,
                                                            itemsManager.GetMessageWhenInvalidPassword(),
                                                            MessageColor.RED));
        }
    }
Beispiel #8
0
    private void MoveOnClient(NetworkMessage message)
    {
        NetworkDefaultMessage defaultMessage = message.ReadMessage <NetworkDefaultMessage>();

        int networkPlayerId = int.Parse(defaultMessage.inputs[0]);

        PlayerData    playerData    = playersManager.FindPlayerById(networkPlayerId);
        CardinalPoint cardinalPoint = (CardinalPoint)int.Parse(defaultMessage.inputs[1]);

        roomsManager.MoveToRoom(playerData, cardinalPoint, playersManager.activePlayer.id == networkPlayerId);
    }
Beispiel #9
0
    private void TryToGetItemOnServer(NetworkMessage message)
    {
        NetworkDefaultMessage defaultMessage = message.ReadMessage <NetworkDefaultMessage>();
        PlayerData            __playerData   = playersManager.FindPlayerById(int.Parse(defaultMessage.inputs[0]));
        string __itemName = defaultMessage.inputs[1];

        //If room have item
        if (__playerData.currentRoom.HasItem(__itemName))
        {
            Item __item = __playerData.currentRoom.GetItem(__itemName);
            if (__item.isPickable)
            {
                NetworkServer.SendToAll(MessageConstants.GET, new NetworkDefaultMessage(new[] { __playerData.id.ToString(), __itemName }));
                //Only send messages to player in same room
                foreach (PlayerData playerInRoom in __playerData.currentRoom.playersInRoom)
                {
//<<<<<<< HEAD
//                    if (playerInRoom.id == 0) continue;
//                    NetworkServer.SendToClient(playerInRoom.id,
//                                                MessageConstants.MESSAGE,
//                                                new NetworkConsoleMessage(__playerData.id,
//                                                                            itemsManager.GetMessageWhenSomeonePickedItem(__playerData.playerName,
//                                                                                                                        __item.GetFullName()),
//                                                MessageColor.LIGHT_BLUE));
//=======
                    if (connections.ContainsKey(playerInRoom.id) && playerInRoom.id != __playerData.id)
                    {
                        connections[playerInRoom.id].Send(MessageConstants.MESSAGE,
                                                          new NetworkConsoleMessage(__playerData.id,
                                                                                    itemsManager.GetMessageWhenSomeonePickedItem(__playerData.playerName, __item.GetFullName()),
                                                                                    MessageColor.LIGHT_BLUE));
                    }
//>>>>>>> origin/Gabriel
                }
            }
            //Item not pickable
            else
            {
                NetworkServer.SendToClient(__playerData.id,
                                           MessageConstants.MESSAGE,
                                           new NetworkConsoleMessage(__playerData.id, itemsManager.GetMessageWhenItemCantBePicked(),
                                                                     MessageColor.RED));
            }
        }
        //Room don't have item
        else
        {
            NetworkServer.SendToClient(__playerData.id,
                                       MessageConstants.MESSAGE,
                                       new NetworkConsoleMessage(__playerData.id, roomsManager.GetMessageWhenRoomDontHaveItem(),
                                                                 MessageColor.RED));
        }
    }
Beispiel #10
0
    private void TryToMoveOnServer(NetworkMessage message)
    {
        NetworkDefaultMessage defaultMessage = message.ReadMessage <NetworkDefaultMessage>();

        PlayerData    playerData    = playersManager.FindPlayerById(int.Parse(defaultMessage.inputs[0]));
        CardinalPoint cardinalPoint = (CardinalPoint)int.Parse(defaultMessage.inputs[1]);

        NetworkConnection clientConnection = message.conn;

        if (roomsManager.CheckDirectionNotExists(playerData, cardinalPoint))
        {
            clientConnection.Send(MessageConstants.MESSAGE, new NetworkConsoleMessage(playerData.id, roomsManager.GetMessageWhenDirectionNotExists(), MessageColor.RED));
        }
        else if (roomsManager.CheckIfRoomIsLocked(playerData, cardinalPoint))
        {
            clientConnection.Send(MessageConstants.MESSAGE, new NetworkConsoleMessage(playerData.id, roomsManager.GetMessageWhenLocked(playerData, cardinalPoint), MessageColor.RED));
        }
        else
        {
            NetworkServer.SendToAll(MessageConstants.MOVE, new NetworkDefaultMessage(new[] { playerData.id.ToString(), ((int)cardinalPoint).ToString() }));

            // only send messages to player in same room
            foreach (PlayerData playerInRoom in playerData.currentRoom.playersInRoom)
            {
//<<<<<<< HEAD
//                if (playerInRoom.id == 0) continue;
//                NetworkServer.SendToClient(playerInRoom.id, MessageConstants.MESSAGE, new NetworkConsoleMessage(playerData.id, roomsManager.GetMessageWhenMovedOutSuccessfully(playerData.playerName), MessageColor.LIGHT_BLUE));
//            }

//            foreach (PlayerData playerInRoom in roomsManager.FindRoomInDirection(playerData, cardinalPoint).playersInRoom)
//            {
//                if (playerInRoom.id == 0) continue;
//                NetworkServer.SendToClient(playerInRoom.id, MessageConstants.MESSAGE, new NetworkConsoleMessage(playerData.id, roomsManager.GetMessageWhenMovedInSuccessfully(playerData.playerName), MessageColor.LIGHT_BLUE));
//=======
                if (connections.ContainsKey(playerInRoom.id) && playerInRoom.id != playerData.id)
                {
                    connections[playerInRoom.id].Send(MessageConstants.MESSAGE, new NetworkConsoleMessage(playerData.id, roomsManager.GetMessageWhenMovedOutSuccessfully(playerData.playerName), MessageColor.LIGHT_BLUE));
                }
//>>>>>>> origin/Gabriel
            }
            // only send messages to player in the target room
            foreach (PlayerData playerInRoom in playerData.currentRoom.
                     adjacentRooms[(int)cardinalPoint].targetRoom.playersInRoom)
            {
                if (connections.ContainsKey(playerInRoom.id) && playerInRoom.id != playerData.id)
                {
                    connections[playerInRoom.id].Send(MessageConstants.MESSAGE, new NetworkConsoleMessage(playerData.id,
                                                                                                          "Server says: " + playerData.playerName + " has joined the room.", MessageColor.LIGHT_BLUE));
                }
            }
        }
    }
Beispiel #11
0
    private void DropItemOnClient(NetworkMessage message)
    {
        NetworkDefaultMessage defaultMessage = message.ReadMessage <NetworkDefaultMessage>();
        int        networkPlayerId           = int.Parse(defaultMessage.inputs[0]);
        PlayerData __playerData = playersManager.FindPlayerById(networkPlayerId);
        string     __itemName   = defaultMessage.inputs[1];

        Item __item = itemsManager.GetItem(__itemName);

        __playerData.currentRoom.items.Add(__item);
        __playerData.inventory.Remove(__item);

        if (playersManager.activePlayer.id == networkPlayerId)
        {
            UIManager.CreateDefautMessage(DefaultMessageType.DROP_ITEM,
                                          new List <string> {
                __item.GetFullName()
            });
        }
    }
Beispiel #12
0
    private void TryToSayOnServer(NetworkMessage message)
    {
        NetworkDefaultMessage defaultMessage = message.ReadMessage <NetworkDefaultMessage>();
        PlayerData            __playerData   = playersManager.FindPlayerById(int.Parse(defaultMessage.inputs[0]));
        string __message = defaultMessage.inputs[1];

        foreach (PlayerData playerInRoom in __playerData.currentRoom.playersInRoom)
        {
            if (playerInRoom.id != __playerData.id)
            {
                if (connections.ContainsKey(playerInRoom.id))
                {
                    connections[playerInRoom.id].Send(MessageConstants.MESSAGE,
                                                      new NetworkConsoleMessage(__playerData.id,
                                                                                __playerData.playerName + " says: " + __message,
                                                                                MessageColor.WHITE));
                }
            }
        }
    }
Beispiel #13
0
    ///////////////////////////////////
    // USE_SUITCASE command
    public void AskServerToUseSuitcase(PlayerData p_playerData, string p_password)
    {
        NetworkDefaultMessage message = new NetworkDefaultMessage(new[] { p_playerData.id.ToString(), p_password });

        SendMessageToServer(MessageConstants.USE_SUITCASE, message);
    }
Beispiel #14
0
    ///////////////////////////////////
    // DROP command
    public void AskServerToDropItem(PlayerData p_playerData, string p_itemName)
    {
        NetworkDefaultMessage message = new NetworkDefaultMessage(new[] { p_playerData.id.ToString(), p_itemName });

        SendMessageToServer(MessageConstants.DROP, message);
    }
Beispiel #15
0
    ///////////////////////////////////
    // WHISPER command
    public void AskServerToWhisper(PlayerData p_playerData, string p_target, string p_message)
    {
        NetworkDefaultMessage message = new NetworkDefaultMessage(new[] { p_playerData.id.ToString(), p_target, p_message });

        SendMessageToServer(MessageConstants.WHISPER, message);
    }
Beispiel #16
0
    ///////////////////////////////////
    // MOVE command
    public void AskServerMoveToRoom(PlayerData playerData, CardinalPoint cardinalPoint)
    {
        NetworkDefaultMessage message = new NetworkDefaultMessage(new[] { playerData.id.ToString(), ((int)cardinalPoint).ToString() });

        SendMessageToServer(MessageConstants.MOVE, message);
    }
Beispiel #17
0
    ///////////////////////////////////
    // SAY_HOLE command
    public void AskServerToSayHole(PlayerData p_playerData, string p_message)
    {
        NetworkDefaultMessage message = new NetworkDefaultMessage(new[] { p_playerData.id.ToString(), p_message });

        SendMessageToServer(MessageConstants.SAY_HOLE, message);
    }
Beispiel #18
0
    ///////////////////////////////////
    // USE command
    public void AskServerToUseItem(PlayerData p_playerData, string p_source, string p_target)
    {
        NetworkDefaultMessage message = new NetworkDefaultMessage(new[] { p_playerData.id.ToString(), p_source, p_target });

        SendMessageToServer(MessageConstants.USE, message);
    }
Beispiel #19
0
    private void TryToUseItemOnServer(NetworkMessage message)
    {
        NetworkDefaultMessage defaultMessage   = message.ReadMessage <NetworkDefaultMessage>();
        NetworkConnection     clientConnection = message.conn;

        PlayerData __playerData = playersManager.FindPlayerById(int.Parse(defaultMessage.inputs[0]));
        string     __sourceName = defaultMessage.inputs[1];
        string     __targetName = defaultMessage.inputs[2];

        //Player don't have the item
        if (!__playerData.HasItem(__sourceName))
        {
            clientConnection.Send(MessageConstants.MESSAGE,
                                  new NetworkConsoleMessage(__playerData.id,
                                                            playersManager.GetMessageWhenPlayerDontHaveItem(),
                                                            MessageColor.RED));
        }
        //There is no target item on the room
        else if (!__playerData.currentRoom.HasItem(__targetName))
        {
            clientConnection.Send(MessageConstants.MESSAGE,
                                  new NetworkConsoleMessage(__playerData.id,
                                                            roomsManager.GetMessageWhenRoomDontHaveTargetItem(),
                                                            MessageColor.RED));
        }
        //The items exist
        else
        {
            Item __source = __playerData.GetItem(__sourceName);
            Item __target = __playerData.currentRoom.GetItem(__targetName);

            //Source can't be used
            if (!__source.isUsable)
            {
                clientConnection.Send(MessageConstants.MESSAGE,
                                      new NetworkConsoleMessage(__playerData.id,
                                                                itemsManager.GetMessageWhenItemCantBeUsed(),
                                                                MessageColor.RED));
            }
            //No interaction between items
            else if (!__target.HasInteractionWithItem(__source))
            {
                clientConnection.Send(MessageConstants.MESSAGE,
                                      new NetworkConsoleMessage(__playerData.id,
                                                                itemsManager.GetMessageWhenNoInteraction(),
                                                                MessageColor.RED));
            }
            //Interaction not active
            else if (!__target.GetInteraction(__source).active)
            {
                clientConnection.Send(MessageConstants.MESSAGE,
                                      new NetworkConsoleMessage(__playerData.id,
                                                                itemsManager.GetMessageWhenInteractionNotActive(),
                                                                MessageColor.RED));
            }
            else
            {
                NetworkServer.SendToAll(MessageConstants.USE, new NetworkDefaultMessage(new[] { __playerData.id.ToString(), __sourceName, __targetName }));
                //Only send messages to player in same room
                foreach (PlayerData playerInRoom in __playerData.currentRoom.playersInRoom)
                {
                    if (connections.ContainsKey(playerInRoom.id) && playerInRoom.id != __playerData.id)
                    {
                        connections[playerInRoom.id].Send(MessageConstants.MESSAGE,
                                                          new NetworkConsoleMessage(__playerData.id,
                                                                                    itemsManager.GetMessageWhenSomeoneUsedItem(playerInRoom.playerName, __sourceName, __targetName),
                                                                                    MessageColor.LIGHT_BLUE));
                    }
                }
            }
        }
    }