Beispiel #1
0
 /**
  * Handles the load Player packet, (handler "lp"). This is to load our Player object.
  *
  * @param receivedPacket
  *   The packet to handle.
  */
 private void HandleLoadPlayer(Data.PenguinPacket receivedPacket)
 {
     currentRoom.Self.LoadData(receivedPacket.Xt.Arguments[0]);
     currentRoom.Self.SetCoins(int.Parse(receivedPacket.Xt.Arguments[1]));
     currentRoom.Self.SetAge(int.Parse(receivedPacket.Xt.Arguments[5]));
     currentRoom.Self.SetMinutesPlayed(int.Parse(receivedPacket.Xt.Arguments[7]));
 }
Beispiel #2
0
 /**
  * Handles the error packet, (handler "e").
  *
  * @param receivedPacket
  *   The packet to handle.
  */
 private void HandleError(Data.PenguinPacket receivedPacket)
 {
     if (penguinErrorEvent != null)
     {
         penguinErrorEvent(int.Parse(receivedPacket.Xt.Arguments[0]));
     }
 }
Beispiel #3
0
 /**
  * Handles the inventory list packet, (handler "gi").
  *
  * @param receivedPacket
  *   The packet to handle.
  */
 public void HandleInventoryList(Data.PenguinPacket receivedPacket)
 {
     foreach (string itemId in receivedPacket.Xt.Arguments)
     {
         currentRoom.Self.AddInventoryItem(int.Parse(itemId));
     }
 }
Beispiel #4
0
 /**
  * Handles the add layer packet, (handler "ap"). This is so we can add a Data.Player to the room as they join.
  *
  * @param receivedPacket
  *   The packet to handle.
  */
 private void HandleAddPlayer(Data.PenguinPacket receivedPacket)
 {
     Data.Player newPlayer = new Data.Player();
     newPlayer.LoadData(receivedPacket.Xt.Arguments[0]);
     if (newPlayer.Id != ID)
     {
         currentRoom.AddPlayer(newPlayer);
     }
 }
Beispiel #5
0
        /**
         * Handles the change frame packet, (handler "sf"). This is so we can change their frame in their object when they change frame.
         *
         * @param receivedPacket
         *   The packet to handle.
         */
        private void HandleSendFrame(Data.PenguinPacket receivedPacket)
        {
            int intId = int.Parse(receivedPacket.Xt.Arguments[0]);

            Data.Player updatePlayer;
            if (currentRoom.TryGetPlayer(intId, out updatePlayer))
            {
                updatePlayer.Position.SetFrame(int.Parse(receivedPacket.Xt.Arguments[1]));
            }
        }
Beispiel #6
0
 /**
  * Executes a handler by the command.
  *
  * @param strCommand
  *   The xt command of the received packet.
  * @param receivedPacket
  *   The packet that was received.
  */
 public void Execute(string strCommand, Data.PenguinPacket receivedPacket)
 {
     if (dicHandlers.ContainsKey(strCommand) == false)
     {
         return;
     }
     foreach (PacketHandler toExecute in dicHandlers[strCommand])
     {
         toExecute(receivedPacket);
     }
 }
Beispiel #7
0
 /**
  * Handles the Data.Player move packet, (handler "sp"), so that we can change the x and y positions of players in the Player classes.
  *
  * @param receivedPacket
  *   The packet to handle.
  */
 private void HandlePlayerMove(Data.PenguinPacket receivedPacket)
 {
     while (currentRoom == null)
     {
     }                             // Wait until the room object is set.
     Data.Player updatePlayer;
     if (currentRoom.TryGetPlayer(int.Parse(receivedPacket.Xt.Arguments[0]), out updatePlayer))
     {
         updatePlayer.Position.SetX(int.Parse(receivedPacket.Xt.Arguments[1]));
         updatePlayer.Position.SetY(int.Parse(receivedPacket.Xt.Arguments[2]));
     }
 }
Beispiel #8
0
 /**
  * Handles the successful login packet, (handler "l"). Sent from both the login and game.
  *
  * @param receivedPacket
  *   The packet to handle.
  */
 private void HandleLogin(Data.PenguinPacket receivedPacket)
 {
     if (blnIsLogin)
     {
         playerID = int.Parse(receivedPacket.Xt.Arguments[0]);
         loginKey = receivedPacket.Xt.Arguments[2];
         LoginFinished();
     }
     else if (blnIsJoin)
     {
         SendJoin(loginKey);
     }
 }
Beispiel #9
0
        /**
         * Handles the join room packet, (handler "jr"). This is so we can change the room numbers and load the new room object and Player objects.
         *
         * @param receivedPacket
         *   The packet to handle.
         */
        private void HandleJoinRoom(Data.PenguinPacket receivedPacket)
        {
            int    roomExtId = int.Parse(receivedPacket.Xt.Arguments[0]);
            string strName   = (roomExtId < 1000) ? Crumbs.Rooms.GetAttributeById(roomExtId, "name") : "Igloo";

            currentRoom.ChangeRoom(strName, receivedPacket.Xt.Room, roomExtId);
            for (int intIndex = 1; intIndex < receivedPacket.Xt.Arguments.Length; intIndex++)
            {
                Data.Player newPlayer = new Data.Player();
                newPlayer.LoadData(receivedPacket.Xt.Arguments[intIndex]);
                currentRoom.AddPlayer(newPlayer);
            }
        }
Beispiel #10
0
 /**
  * Gets a phrase by it's ID asynchronously.
  *
  * @param phraseLoaded
  *   Callback function for when the phrase has loaded.
  * @param receivedPacket
  *  The received packet containning the received phrase chat message.
  */
 private static void AsyncPhrase(PhraseReceiveCallback phraseLoaded, Data.PenguinPacket receivedPacket)
 {
     try {
         string    strJson = Utils.DownloadString("http://phrasechat.disney.go.com/phrasechatsvc/api/1.1/pen/en/phrase/" + receivedPacket.Xt.Arguments[1]);
         Hashtable htlJson = Procurios.Public.JSON.JsonDecode(strJson) as Hashtable;
         if (Successful(htlJson))
         {
             phraseLoaded(GetPhrase(htlJson), receivedPacket, 200, null);
         }
         else
         {
             phraseLoaded(null, receivedPacket, 200, GetError(htlJson));
         }
     }catch (System.Net.WebException webEx) {
         phraseLoaded(null, receivedPacket, (int)webEx.Status, null);
     }
 }
Beispiel #11
0
        /**
         * Handles the update item packet, (handler "up*").
         *
         * @param receivedPacket
         *   The packet to handle.
         */
        private void HandleUpdateItem(Data.PenguinPacket receivedPacket)
        {
            Data.Player updatePlayer;
            int         intItem = int.Parse(receivedPacket.Xt.Arguments[1]);

            if (int.Parse(receivedPacket.Xt.Arguments[1]) == ID)
            {
                updatePlayer = currentRoom.Self;
            }
            else
            {
                if (currentRoom.TryGetPlayer(int.Parse(receivedPacket.Xt.Arguments[0]), out updatePlayer) == false)
                {
                    return;
                }
            }
            updatePlayer.Item.SetByCode(receivedPacket.Xt.Command, intItem);
        }
Beispiel #12
0
 /**
  * Starts getting a phrase by it's ID asynchronously.
  *
  * @param phraseLoaded
  *   Callback function for when the phrase has loaded.
  * @param receivedPacket
  *  The received packet containning the received phrase chat message.
  */
 public static void BeginPhraseById(PhraseReceiveCallback phraseLoaded, Data.PenguinPacket receivedPacket)
 {
     System.Threading.Thread asyncPhrase = new System.Threading.Thread(new System.Threading.ThreadStart(delegate { AsyncPhrase(phraseLoaded, receivedPacket); }));
     asyncPhrase.IsBackground = true;
     asyncPhrase.Start();
 }
Beispiel #13
0
 /**
  * Handles the join server packet, (handler "js"). Sent from the game.
  *
  * @param receivedPacket
  *   The packet to handle.
  */
 private void HandleJoinServer(Data.PenguinPacket receivedPacket)
 {
     blnIsJoin = false;
     JoinFinished();
     SendGetInventory();
 }
Beispiel #14
0
 /**
  * Handles the game over packet, (handler "zo").
  *
  * @param receivedPacket
  *   The packet to handle.
  */
 private void HandleGameOver(Data.PenguinPacket receivedPacket)
 {
     currentRoom.Self.SetCoins(int.Parse(receivedPacket.Xt.Arguments[0]));
 }
Beispiel #15
0
        /**
         * Handles the join game packet, (handler "jg").
         *
         * @param receivedPacket
         *   The packet to handle.
         */
        private void HandleJoinGame(Data.PenguinPacket receivedPacket)
        {
            int roomExtId = int.Parse(receivedPacket.Xt.Arguments[0]);

            Room.ChangeRoom(Crumbs.Rooms.GetAttributeById(roomExtId, "name"), receivedPacket.Xt.Room, roomExtId);
        }
Beispiel #16
0
        /**
         * Handles the remove Player packet, (handler "rp"). This is so we can remove players from the room as they leave.
         *
         * @param receivedPacket
         *   The packet to handle.
         */
        private void HandleRemovePlayer(Data.PenguinPacket receivedPacket)
        {
            int toRemove = int.Parse(receivedPacket.Xt.Arguments[0]);

            currentRoom.RemovePlayer(toRemove);
        }