Esempio n. 1
0
    public void handleMessage(QTMessage message)
    {
        switch (message.messageType)
        {
        case QTMessage.type.REQUEST_HEARTBEAT:
            double currentTimestamp = (DateTime.Now - DateTime.MinValue).TotalMilliseconds;
            RequestHeartbeatMessage requestMessage   = (RequestHeartbeatMessage)message;
            HeartbeatMessage        heartbeatMessage = new HeartbeatMessage(requestMessage);
            heartbeatMessage.serverTimestamp  = ((RequestHeartbeatMessage)message).createdTimestamp;
            heartbeatMessage.createdTimestamp = currentTimestamp;

            sendMessage(heartbeatMessage);
            break;

        case QTMessage.type.ROOM_INFO:
            RoomInfoMessage infoMessage = (RoomInfoMessage)message;
            WorkerServerManager.instance.room = infoMessage.room;

            WorkerInfoMessage workerMessage = new WorkerInfoMessage();
            workerMessage.id = WorkerServerManager.instance.room.id;
            workerMessage.ip = "127.0.0.1";
            sendMessage(workerMessage);

            QTDebugger.instance.debug(QTDebugger.debugType.BASE, "Sending worker info message...");
            break;
        }
    }
    public void StartGame()
    {
        networkJobHandle.Complete();
        StartGameMessage startMessage = new StartGameMessage
        {
            StartHP = 10
        };

        SendMessageToAll(startMessage);

        //enviroment data is setup
        serverDataHolder.GameSetup();

        //everyone gets a rooms info message.
        for (int i = 0; i < connections.Length; i++)
        {
            RoomInfoMessage startRoomMessage = serverDataHolder.GetRoomMessage(i);
            SendMessage(startRoomMessage, connections[i]);
        }

        //turn event is called
        PlayerTurnMessage turnMessage = new PlayerTurnMessage
        {
            PlayerID = serverDataHolder.turnID
        };

        SendMessageToAll(turnMessage);
    }
Esempio n. 3
0
    public override void handleMessage(QTMessage message)
    {
        switch (message.messageType)
        {
        case QTMessage.type.WORKER_READY: {
            MasterServerQTClient qtRemoteClient     = (MasterServerQTClient)client;
            WorkerReadyMessage   workerReadyMessage = (WorkerReadyMessage)message;

            qtRemoteClient.remoteType = QTClient.clientType.WORKER_SERVER;
            MasterServerWorker worker = MasterServerManager.instance.workersManager.workers[workerReadyMessage.id];

            RoomInfoMessage roomInfoMessage = new RoomInfoMessage();
            roomInfoMessage.room = worker.room;
            qtRemoteClient.sendMessage(roomInfoMessage);

            worker.onWorkerReady();
            break;
        }

        case QTMessage.type.WORKER_INFO: {
            MasterServerQTClient qtRemoteClient    = (MasterServerQTClient)client;
            WorkerInfoMessage    workerInfoMessage = (WorkerInfoMessage)message;
            MasterServerWorker   worker            = MasterServerManager.instance.workersManager.workers[workerInfoMessage.id];

            worker.room.ip = workerInfoMessage.ip;

            QTDebugger.instance.debug(QTDebugger.debugType.BASE, "Recieved info from Worker(" + worker.room.id + ")...");
            break;
        }
        }
    }
    private void GetRoomInfo(ref DataStreamReader reader)
    {
        var roomInfoMessage = new RoomInfoMessage();

        roomInfoMessage.DeserializeObject(ref reader);
        dataHolder.game.UpdateRoom(roomInfoMessage);
    }
        public void HandleRoomInfo(Message message)
        {
            RoomInfoMessage roomInfoMessage = (RoomInfoMessage)message;

            Menu.Singleton.gameWindow.OutputRoomInfoText(roomInfoMessage);

            //could disable UI
        }
Esempio n. 6
0
        /// <summary>
        /// Sends a RoomInfoMessage and saves the given room configuration.
        /// </summary>
        /// <param name="roomJid">The bare JID if the room you would like to save the room configuration for. e.g. '*****@*****.**'</param>
        /// <param name="roomConfiguration">The new room configuration.</param>
        /// <param name="configLevel">The requested configuration level (the senders affiliation).</param>
        /// <param name="onMessage">The method that should get executed once the helper receives a new valid message.</param>
        /// <param name="onTimeout">The method that should get executed once the helper timeout gets triggered.</param>
        /// <returns>Returns a MessageResponseHelper listening for RoomInfoMessage answers.</returns>
        public MessageResponseHelper <IQMessage> saveRoomConfiguration(string roomJid, DataForm roomConfiguration, MUCAffiliation configLevel, Func <IQMessage, bool> onMessage, Action onTimeout)
        {
            MessageResponseHelper <IQMessage> helper = new MessageResponseHelper <IQMessage>(CLIENT, onMessage, onTimeout);
            RoomInfoMessage msg = new RoomInfoMessage(CLIENT.getXMPPAccount().getIdDomainAndResource(), roomJid, roomConfiguration, configLevel);

            helper.start(msg);
            return(helper);
        }
Esempio n. 7
0
 private void SendNewRoomInfo()
 {
     for (int i = 0; i < connections.Length; i++)
     {
         RoomInfoMessage info = GameManager.Instance.MakeRoomInfoMessage(i);
         NetworkManager.SendMessage(networkDriver, info, connections[i]);
     }
 }
Esempio n. 8
0
        /// <summary>
        /// Sends a RoomInfoMessage and saves the given room configuration.
        /// </summary>
        /// <param name="roomJid">The bare JID if the room you would like to save the room configuration for. e.g. '*****@*****.**'</param>
        /// <param name="roomConfiguration">The new room configuration.</param>
        /// <param name="configLevel">The requested configuration level (the senders affiliation).</param>
        /// <param name="onMessage">The method that should get executed once the helper receives a new valid message.</param>
        /// <param name="onTimeout">The method that should get executed once the helper timeout gets triggered.</param>
        /// <returns>Returns a MessageResponseHelper listening for RoomInfoMessage answers.</returns>
        public MessageResponseHelper <IQMessage> saveRoomConfiguration(string roomJid, DataForm roomConfiguration, MUCAffiliation configLevel, MessageResponseHelper <IQMessage> .OnMessageHandler onMessage, MessageResponseHelper <IQMessage> .OnTimeoutHandler onTimeout)
        {
            MessageResponseHelper <IQMessage> helper = new MessageResponseHelper <IQMessage>(CONNECTION, onMessage, onTimeout);
            RoomInfoMessage msg = new RoomInfoMessage(CONNECTION.account.getFullJid(), roomJid, roomConfiguration, configLevel);

            helper.start(msg);
            return(helper);
        }
 public void UpdateInfo(RoomInfoMessage message)
 {
     roomData.treasureAmmount = message.TreasureRoom;
     roomData.containsMonster = message.ContainsMonster == 1;
     if (roomData.containsMonster)
     {
         roomData.monsterHP = 10;
     }
     roomData.containsExit         = message.ContainsExit == 1;
     roomData.numberOfOtherPlayers = message.NumberOfOtherPlayers;
     roomData.otherPlayersIDs      = message.OtherPlayerIDs;
     roomData.directions           = roomData.ReadDirectionByte(message.MoveDirections);
     UpdateRoom();
 }
    private bool HandleMoveRequest(MoverequestMessage message, int connectID)
    {
        PlayerData playerData  = serverDataHolder.players.Find(x => x.playerIndex == connectID);
        RoomData   currentRoom = serverDataHolder.rooms[playerData.roomID[0], playerData.roomID[1]];

        int[] nextRoom = serverDataHolder.GetNextRoomID(currentRoom, message.Direction);

        bool monsterActive = currentRoom.containsMonster && currentRoom.monsterHP > 0;

        //check if player can move to that direction and if the monster in current room is killed or doesnt exist
        if (nextRoom == null || monsterActive)
        {
            //handle requestdenied message
            Debug.LogWarning("Request denied");
            return(false);
        }

        //if so update dataholder of server
        serverDataHolder.players.Find(x => x.playerIndex == connectID).roomID = nextRoom;

        //send room info to cplayer
        RoomInfoMessage newRoomMessage = serverDataHolder.GetRoomMessage(connectID);

        SendMessage(newRoomMessage, connections[connectID]);

        //send leavmessage to players who are in the previous room
        List <int> idsInPreviousRoom = serverDataHolder.GetPlayerIDsRoom(currentRoom);

        foreach (int id in idsInPreviousRoom)
        {
            if (id != connectID)
            {
                //Debug.Log("player # " + connectID + " leaves room where player # " + id + " resides ");
                PlayerLeftRoom(connectID, id);
            }
        }

        //send enter message to player who are in the next room.
        List <int> idsInNewRoom = serverDataHolder.GetPlayerIDsRoom(serverDataHolder.rooms[nextRoom[0], nextRoom[1]]);

        foreach (int id in idsInNewRoom)
        {
            if (id != connectID)
            {
                //Debug.Log("player # " + connectID + " enter room where player # " + id + " resides ");
                PlayerJoinedRoom(connectID, id);
            }
        }
        return(true);
    }
Esempio n. 11
0
        public RoomInfoMessage GetRoomInfo(int playerId)
        {
            Player          player          = serverManager.lobby.players[playerId];
            Room            room            = GetRoom(player);
            RoomInfoMessage roomInfoMessage = new RoomInfoMessage {
                directions      = GetPossibleDirections(player.position),
                TreasureInRoom  = (ushort)room.treasure,
                ContainsMonster = room.monster != null,
                ContainsExit    = room.exit,
                OtherPlayerIDs  = new List <int>(room.playerIdsInRoom)
            };

            //dont send the player itself
            roomInfoMessage.OtherPlayerIDs.Remove(playerId);
            roomInfoMessage.NumberofOtherPlayers = (byte)roomInfoMessage.OtherPlayerIDs.Count;
            return(roomInfoMessage);
        }
Esempio n. 12
0
    /// <summary>
    /// Packing info message for the player in this room.
    /// </summary>
    /// <param name="i"></param>
    /// <returns></returns>
    public RoomInfoMessage MakeRoomInfoMessage(int i)
    {
        byte neighbors = CurrentGrid.CheckNeighbors(i);

        TileContent tileContent = CurrentGrid.TileContain(PlayerManager.Instance.Players[i].TilePosition);

        ushort treasure = 0;
        byte   monster  = 0;
        byte   exit     = 0;

        if (tileContent == TileContent.Treasure || tileContent == TileContent.Both)
        {
            treasure = 1;
        }
        if (tileContent == TileContent.Monster || tileContent == TileContent.Both)
        {
            monster = 1;
        }
        if (tileContent == TileContent.Exit)
        {
            exit = 1;
        }

        List <int> playersID = new List <int>();

        for (int j = 0; j < PlayerManager.Instance.Players.Count; j++)
        {
            if (PlayerManager.Instance.Players[j].TilePosition == PlayerManager.Instance.Players[i].TilePosition)
            {
                playersID.Add(PlayerManager.Instance.Players[j].playerID);
            }
        }

        var roomInfo = new RoomInfoMessage()
        {
            directions           = neighbors,
            TreasureInRoom       = treasure,
            ContainsMonster      = monster,
            ContainsExit         = exit,
            NumberOfOtherPlayers = (byte)playersID.Count,
            OtherPlayerIDs       = playersID
        };

        return(roomInfo);
    }
Esempio n. 13
0
        private bool onNewMessage(IQMessage iq)
        {
            if (iq is RoomInfoMessage)
            {
                RoomInfoMessage responseMessage = iq as RoomInfoMessage;

                // Add controls and update viability:
                Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
                {
                    fields.Clear();
                    roomConfigType_tbx.Text = "Configuration level: " + Utils.mucAffiliationToString(responseMessage.CONFIG_LEVEL);
                    foreach (Field o in responseMessage.ROOM_CONFIG.FIELDS)
                    {
                        if (o.type != FieldType.HIDDEN)
                        {
                            fields.Add(new MUCInfoFieldTemplate()
                            {
                                field = o
                            });
                        }
                    }
                    reload_btn.IsEnabled = true;
                    notificationBanner_ian.Dismiss();
                    timeout_stckpnl.Visibility = Visibility.Collapsed;
                    loading_grid.Visibility    = Visibility.Collapsed;
                    info_grid.Visibility       = Visibility.Visible;
                }).AsTask();
                return(true);
            }
            else if (iq is IQErrorMessage errorMessage)
            {
                Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
                {
                    fields.Clear();
                    retry_btn.IsEnabled        = true;
                    info_grid.Visibility       = Visibility.Collapsed;
                    loading_grid.Visibility    = Visibility.Collapsed;
                    timeout_stckpnl.Visibility = Visibility.Visible;

                    notificationBanner_ian.Show("Failed to request configuration! Server responded:\nType: " + errorMessage.ERROR_OBJ.ERROR_NAME + "\nMessage: " + errorMessage.ERROR_OBJ.ERROR_MESSAGE);
                }).AsTask();
            }
            return(false);
        }
Esempio n. 14
0
        public void HandleMoveRequest(AdressedMessage adressedMessage)
        {
            if (!ValidateMessage(adressedMessage.connectionID))
            {
                SendRequestDenied(adressedMessage);
                return;
            }
            RoomInfoMessage leftRoom = game.GetRoomInfo(adressedMessage.connectionID);


            if (game.MovePlayer(adressedMessage.connectionID, ((MoveRequestMessage)adressedMessage.message).direction))
            {
                //player left messages
                foreach (int playerID in leftRoom.OtherPlayerIDs)
                {
                    serverBehaviour.QeueMessage(new AdressedMessage(new PlayerLeaveRoomMessage()
                    {
                        PlayerID = adressedMessage.connectionID
                    }, playerID));
                }

                //player entered messages
                RoomInfoMessage enteredRoom = game.GetRoomInfo(adressedMessage.connectionID);
                foreach (int playerID in enteredRoom.OtherPlayerIDs)
                {
                    serverBehaviour.QeueMessage(new AdressedMessage(new PlayerEnterRoomMessage()
                    {
                        PlayerID = adressedMessage.connectionID
                    }, playerID));
                }
                //roominfo message
                serverBehaviour.QeueMessage(new AdressedMessage(enteredRoom, adressedMessage.connectionID));
            }
            else
            {
                SendRequestDenied(adressedMessage);
            }
        }
Esempio n. 15
0
    /// <summary>
    /// Send info of the current room to the client as an answer to the MoveRequest & Start of the Game.
    /// </summary>
    private void SendRoomInfo(Node roomNode, Client activeTurnClient)
    {
        // testing
        int        treasureAmt          = 0;
        Wall       openDirection        = roomNode.GetOpenDirection();
        byte       monster              = System.Convert.ToByte(roomNode.Monster);
        byte       exit                 = System.Convert.ToByte(roomNode.DungeonExit);
        int        numberOfOtherPlayers = 0;
        List <int> otherPlayerIDs       = new List <int>();

        if (roomNode.Treasure)
        {
            treasureAmt             = Random.Range(minTreasureContainingAmt, maxTreasureContainingAmt);
            roomNode.TreasureAmount = treasureAmt;
        }

        //Get everyone that is in this room
        foreach (KeyValuePair <Client, Player> clientPlayerPair in ActiveClientPlayerDictionary)
        {
            if (clientPlayerPair.Value.CurrentNode == roomNode && clientPlayerPair.Key != activeTurnClient)
            {
                numberOfOtherPlayers++;
                otherPlayerIDs.Add(clientPlayerPair.Key.PlayerID);
            }
        }
        byte numberOfOtherPlayersByte = System.Convert.ToByte(numberOfOtherPlayers);

        var roomInfoMessage = new RoomInfoMessage {
            MoveDirections       = (byte)openDirection,
            TreasureInRoom       = (ushort)treasureAmt,
            ContainsMonster      = monster,
            ContainsExit         = exit,
            NumberOfOtherPlayers = numberOfOtherPlayersByte,
            OtherPlayerIDs       = otherPlayerIDs
        };

        server.SendMessage(roomInfoMessage, activeTurnClient.Connection);
    }
    public void Update()
    {
        networkJobHandle.Complete();

        if (!connection.IsCreated)
        {
            return;
        }

        DataStreamReader reader;

        NetworkEvent.Type cmd;
        while ((cmd = connection.PopEvent(networkDriver, out reader)) != NetworkEvent.Type.Empty)
        {
            if (cmd == NetworkEvent.Type.Connect)
            {
                Debug.Log("Connected to server");
            }
            else if (cmd == NetworkEvent.Type.Data)
            {
                var messageType = (Message.MessageType)reader.ReadUShort();
                Debug.Log("Client Received: " + messageType + " from Host");

                Message message = null;
                switch (messageType)
                {
                case Message.MessageType.None: break;

                case Message.MessageType.NewPlayer: message = new NewPlayerMessage(); break;

                case Message.MessageType.Welcome: message = new WelcomeMessage(); break;

                case Message.MessageType.RequestDenied: message = new RequestDeniedMessage(); break;

                case Message.MessageType.PlayerLeft: message = new PlayerLeftMessage(); break;

                case Message.MessageType.StartGame: message = new StartGameMessage(); break;

                case Message.MessageType.PlayerTurn: message = new PlayerTurnMessage(); break;

                case Message.MessageType.RoomInfo: message = new RoomInfoMessage(); break;

                case Message.MessageType.PlayerEnterRoom: message = new PlayerEnterRoomMessage(); break;

                case Message.MessageType.PlayerLeaveRoom: message = new PlayerLeaveRoomMessage(); break;

                case Message.MessageType.ObtainTreasure: message = new ObtainTreasureMessage(); break;

                case Message.MessageType.HitMonster: message = new HitMonserMessage(); break;

                case Message.MessageType.HitByMonster: message = new HitByMonserMessage(); break;

                case Message.MessageType.PlayerDefends: message = new PlayerDefendsMessage(); break;

                case Message.MessageType.PlayerLeftDungeon: message = new PlayerLeftDungeonMessage(); break;

                case Message.MessageType.PlayerDies: message = new PlayerDiesMessage(); break;

                case Message.MessageType.EndGame:   break;

                default: break;
                }
                if (message != null)
                {
                    message.DeserializeObject(ref reader);
                    receivedMessagesQueue.Enqueue(message);
                }
            }
            else if (cmd == NetworkEvent.Type.Disconnect)
            {
                Debug.Log("Disconnected from server");
                connection = default;
            }
        }
        ProcessMessagesQueue();

        if (Time.time - lastSendTime > STAY_ALIVE_AFTER_SECONDS)
        {
            SendMessage(new NoneMessage());
        }
        networkJobHandle = networkDriver.ScheduleUpdate();
    }
Esempio n. 17
0
        public override void AfterInvoke(InvocationInfo info, ref object returnValue)
        {
            //if (info.target is EndGameScreen && info.targetMethod.Equals("GoToLobby")) { ntwrk.inbattle = false; } // user leaved a battle

            if (info.target is ChatUI && info.targetMethod.Equals("Show"))
            {
                helpf.chatisshown = (bool)info.arguments[0]; this.screenh = 0;
            }                                                                                                                                // so position will be calculatet new on next ongui

            if (info.target is ChatUI && info.targetMethod.Equals("Initiate"))
            {
                helpf.target = (ChatUI)info.target;
                helpf.setchatlogstyle((GUIStyle)this.chatLogStyleinfo.GetValue(info.target));
            }

            if (info.target is TradeSystem && info.targetMethod.Equals("StartTrade"))// user start a trade, show the buy-message
            {
                if (helpf.postmsgontrading == true)
                {
                    helpf.postmsgontrading        = false;
                    helpf.postmsggetnextroomenter = true;// the next RoomEnterMsg is the tradeRoom!
                }
            }

            if (info.target is Store && info.targetMethod.Equals("Start"))//user opened store
            {
                helpf.setlobbyskin((GUISkin)typeof(Store).GetField("lobbySkin", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(info.target));
                helpf.storeinfo       = (Store)info.target;
                helpf.showtradedialog = false;
                helpf.inauchouse      = false;
                helpf.generator       = false;
                helpf.settings        = false;
            }


            if (info.target is ChatRooms && info.targetMethod.Equals("SetRoomInfo")) //adding new users to userlist
            {
                RoomInfoMessage   roomInfo = (RoomInfoMessage)info.arguments[0];
                RoomInfoProfile[] profiles = roomInfo.updated;
                for (int i = 0; i < profiles.Length; i++)
                {
                    RoomInfoProfile p    = profiles[i];
                    ChatUser        user = ChatUser.FromRoomInfoProfile(p);
                    if (!helpf.globalusers.ContainsKey(user.name))
                    {
                        helpf.globalusers.Add(user.name, user);
                    }
                    ;
                }
            }

            if (info.target is Store && info.targetMethod.Equals("OnGUI")) // drawing our buttons and stuff in store
            {
                GUI.color        = Color.white;
                GUI.contentColor = Color.white;
                drawsubmenu.Invoke(info.target, null);
                Vector2 screenMousePos = GUIUtil.getScreenMousePos();

                if (!(Screen.height == screenh) || !(Screen.width == screenw) || helpf.chatLogStyle == null)  // if resolution was changed, recalc positions
                {
                    Console.WriteLine("change resolution");
                    screenh            = Screen.height;
                    screenw            = Screen.width;
                    helpf.chatLogStyle = (GUIStyle)chatLogStyleinfo.GetValue(helpf.target);
                    recto.setupPositions(helpf.chatisshown, sttngs.rowscale, helpf.chatLogStyle, helpf.cardListPopupSkin);    // need  it to calc fieldhight even if bothmenue=true
                    if ((helpf.bothmenue || (helpf.createAuctionMenu && !helpf.offerMenuSelectCardMenu)) && !helpf.generator)
                    {
                        recto.setupPositionsboth(helpf.chatisshown, sttngs.rowscale, helpf.chatLogStyle, helpf.cardListPopupSkin);
                    }
                    recto.setupsettingpositions(helpf.chatLogStyle, helpf.cardListPopupBigLabelSkin);
                }


                // delete picture on click!
                if ((Input.GetMouseButtonUp(0) || Input.GetMouseButtonUp(1)) && crdvwr.clicked >= 3)
                {
                    crdvwr.clearallpics();
                }

                //klick button AH
                //Console.WriteLine("draw buttons");
                if (LobbyMenu.drawButton(recto.ahbutton, "AH", helpf.lobbySkin) && !helpf.showtradedialog)
                {
                    if (this.deckchanged)
                    {
                        App.Communicator.sendRequest(new LibraryViewMessage()); this.deckchanged = false;
                    }
                    if (helpf.bothmenue || helpf.createAuctionMenu)
                    {
                        recto.setupPositionsboth(helpf.chatisshown, sttngs.rowscale, helpf.chatLogStyle, helpf.cardListPopupSkin);
                    }
                    else
                    {
                        recto.setupPositions(helpf.chatisshown, sttngs.rowscale, helpf.chatLogStyle, helpf.cardListPopupSkin);
                    }
                    ahui.ahbuttonpressed();
                }
                // klick button Gen
                if (LobbyMenu.drawButton(recto.genbutton, "Gen", helpf.lobbySkin) && !helpf.showtradedialog)
                {
                    if (this.deckchanged)
                    {
                        App.Communicator.sendRequest(new LibraryViewMessage()); this.deckchanged = false;
                    }
                    recto.setupPositions(helpf.chatisshown, sttngs.rowscale, helpf.chatLogStyle, helpf.cardListPopupSkin);
                    genui.genbuttonpressed();
                }
                //klick settings-button
                if (LobbyMenu.drawButton(recto.settingsbutton, "Settings", helpf.lobbySkin) && !helpf.showtradedialog)
                {
                    recto.setupsettingpositions(helpf.chatLogStyle, helpf.cardListPopupBigLabelSkin);
                    setui.setbuttonpressed();
                }


                // draw ah oder gen-menu

                if (helpf.inauchouse)
                {
                    ahui.drawAH();
                }
                if (helpf.generator)
                {
                    genui.drawgenerator();
                }
                if (helpf.settings)
                {
                    setui.drawsettings();
                }
                GUI.color        = Color.white;
                GUI.contentColor = Color.white;

                crdvwr.draw();    // drawing the card you have clicked
            }
            else if (info.target is Store && (info.targetMethod.Equals("showBuyMenu") || info.targetMethod.Equals("showSellMenu")))
            {
                //disable auc.house + generator
                Store.ENABLE_SHARD_PURCHASES = true;
                helpf.inauchouse             = false;
                helpf.generator               = false;
                helpf.settings                = false;
                helpf.showtradedialog         = false;
                helpf.makeOfferMenu           = false;
                helpf.offerMenuSelectCardMenu = false;
                helpf.showtradedialog         = false;
                if (info.targetMethod.Equals("showSellMenu"))
                {
                    this.deckchanged = false;
                }
            }

            if (info.target is ChatRooms && info.targetMethod.Equals("ChatMessage"))
            {
                //get trademessages from chatmessages
                RoomChatMessageMessage msg = (RoomChatMessageMessage)info.arguments[0];
                if (msg.from != "Scrolls")
                {
                    AuctionHouse.Instance.addAuctions(mssgprsr.GetAuctionsFromMessage(msg.text, msg.from, msg.roomName));
                }
            }

            return;
        }
Esempio n. 18
0
 public void UpdateRoom(RoomInfoMessage message)
 {
     cRoom.UpdateInfo(message);
 }
Esempio n. 19
0
        public override bool WantsToReplace(InvocationInfo info)
        {
            if ((this.sttngs.waitForAuctionBot || this.sttngs.actualTrading) && info.target is InviteManager && info.targetMethod.Equals("handleMessage") && info.arguments[0] is TradeResponseMessage && (info.arguments[0] as TradeResponseMessage).to.name == this.twb.botname)
            { // return true if you are waiting for auctionbot
                //because we dont want to display the trading-gui
                return(true);
            }


            if (info.target is Store && info.targetMethod.Equals("OnGUI"))
            {
                // dont want to see the orginal store-interface in our AH
                if (helpf.inauchouse || helpf.generator || helpf.settings)
                {
                    return(true);
                }
            }

            if (info.target is ArenaChat && info.targetMethod.Equals("handleMessage"))
            {
                Message msg = (Message)info.arguments[0];
                if (msg is WhisperMessage)
                {
                    WhisperMessage wmsg = (WhisperMessage)msg;
                    //dont want to see whisper messages from/to the auctionbot
                    if (this.sttngs.actualTrading && wmsg.from == this.twb.botname)
                    {
                        return(true);
                    }
                    if (this.sttngs.waitForAuctionBot && wmsg.toProfileName == this.twb.botname)
                    {
                        return(true);
                    }
                    if ((wmsg.text.Equals("to slow") || wmsg.text.Contains("dont fool me") || wmsg.text.Contains("there is not such an auction") || wmsg.text.Contains("auctionlimit reached")) && wmsg.from == this.twb.botname)
                    {
                        return(true);
                    }
                }

                if (msg is RoomChatMessageMessage)
                {
                    RoomChatMessageMessage rem = (RoomChatMessageMessage)msg;
                    if ((this.sttngs.auctionScrollsMessagesCounter >= 1) && rem.roomName.StartsWith("trade-"))
                    {
                        if (this.sttngs.auctionScrollsMessagesCounter == 3)
                        {
                            this.sttngs.auctionScrollsMessagesCounter = 0;
                        }
                        return(true);
                    }
                    if (rem.text.StartsWith("auc parsertest"))
                    {
                        helpf.messegparsingtest(); return(true);
                    }
                }

                if (msg is RoomEnterMessage)
                {
                    RoomEnterMessage rem = (RoomEnterMessage)msg;
                    if ((this.sttngs.waitForAuctionBot || this.sttngs.actualTrading) && rem.roomName.StartsWith("trade-"))
                    {
                        return(true);
                    }
                }

                if (msg is RoomInfoMessage)
                {
                    RoomInfoMessage rem = (RoomInfoMessage)msg;
                    if ((this.sttngs.waitForAuctionBot || this.sttngs.actualTrading) && rem.roomName.StartsWith("trade-"))
                    {
                        return(true);
                    }
                }
            }
            return(false);
        }
Esempio n. 20
0
    public void ShowNewRoom(MessageHeader roomInfo)
    {
        RoomInfoMessage info       = roomInfo as RoomInfoMessage;
        Direction       directions = (Direction)info.directions;

        if (directions.HasFlag((Enum)Direction.North))
        {
            doors[0].SetActive(true);
        }
        else
        {
            doors[0].SetActive(false);
        }

        if (directions.HasFlag((Enum)Direction.East))
        {
            doors[1].SetActive(true);
        }
        else
        {
            doors[1].SetActive(false);
        }

        if (directions.HasFlag((Enum)Direction.South))
        {
            doors[2].SetActive(true);
        }
        else
        {
            doors[3].SetActive(false);
        }

        if (directions.HasFlag((Enum)Direction.West))
        {
            doors[3].SetActive(true);
        }
        else
        {
            doors[3].SetActive(false);
        }

        if (directions.HasFlag((Enum)Direction.West) && directions.HasFlag((Enum)Direction.South) && !directions.HasFlag((Enum)Direction.North) && !directions.HasFlag((Enum)Direction.East))
        {
            LeaveButton.SetActive(true);
        }
        else
        {
            LeaveButton.SetActive(false);
        }

        if (info.ContainsMonster == 1)
        {
            monsterSprite.gameObject.SetActive(true);
        }
        else
        {
            monsterSprite.gameObject.SetActive(false);
        }

        if (info.TreasureInRoom == 1)
        {
            treasureSprite.gameObject.SetActive(true);
        }
        else
        {
            treasureSprite.gameObject.SetActive(false);
        }

        PlayerManager.Instance.CurrentPlayer.Sprite.SetActive(true);

        for (int i = 0; i < PlayerManager.Instance.Players.Count; i++)
        {
            if (info.OtherPlayerIDs.Contains(PlayerManager.Instance.Players[i].playerID))
            {
                PlayerManager.Instance.Players[i].Sprite.SetActive(true);
            }
            else
            {
                PlayerManager.Instance.Players[i].Sprite.SetActive(false);
            }
        }
    }