示例#1
0
 public void Handle(GameClient Session, ClientMessage Event)
 {
     if (Session != null && Session.GetHabbo() != null)
     {
         Room @class = GoldTree.GetGame().GetRoomManager().GetRoom(Session.GetHabbo().CurrentRoomId);
         if (@class != null)
         {
             RoomUser class2 = @class.GetRoomUserByHabbo(Session.GetHabbo().Id);
             if (class2 != null)
             {
                 class2.Unidle();
                 int num  = Event.PopWiredInt32();
                 int num2 = Event.PopWiredInt32();
                 if (num != class2.int_3 || num2 != class2.int_4)
                 {
                     int int_ = Class107.smethod_0(class2.int_3, class2.int_4, num, num2);
                     class2.method_9(int_);
                     if (class2.class34_1 != null && class2.RoomUser_0 != null)
                     {
                         class2.RoomUser_0.method_9(int_);
                     }
                 }
             }
         }
     }
 }
示例#2
0
 public void Handle(GameClient Session, ClientMessage Event)
 {
     if (Session != null && Session.GetHabbo() != null)
     {
         Room @class = Essential.GetGame().GetRoomManager().GetRoom(Session.GetHabbo().CurrentRoomId);
         if (@class != null)
         {
             RoomUser class2 = @class.GetRoomUserByHabbo(Session.GetHabbo().Id);
             if (class2 != null)
             {
                 class2.Unidle();
                 int num  = Event.PopWiredInt32();
                 int num2 = Event.PopWiredInt32();
                 if (num != class2.X || num2 != class2.Y)
                 {
                     int int_ = Rotation.GetRotation(class2.X, class2.Y, num, num2);
                     class2.method_9(int_);
                     if (class2.class34_1 != null && class2.RoomUser_0 != null)
                     {
                         class2.RoomUser_0.method_9(int_);
                     }
                 }
             }
         }
     }
 }
        public void Handle(GameClient Session, ClientMessage Event)
        {
            Room @class = GoldTree.GetGame().GetRoomManager().GetRoom(Session.GetHabbo().CurrentRoomId);

            if (@class != null && @class.CheckRights(Session, true))
            {
                for (int i = 0; i < @class.RoomUsers.Length; i++)
                {
                    RoomUser class2 = @class.RoomUsers[i];
                    if (class2 != null && (class2.IsBot && class2.RoomBot.AiType == AIType.const_1))
                    {
                        ServerMessage Message = new ServerMessage(33u);
                        Message.AppendInt32(4009);
                        Session.SendMessage(Message);
                        return;
                    }
                }
                if (Session.GetHabbo().bool_10)
                {
                    ServerMessage Message = new ServerMessage(33u);
                    Message.AppendInt32(4010);
                    Session.SendMessage(Message);
                }
                else
                {
                    RoomUser class3 = @class.BotToRoomUser(GoldTree.GetGame().GetBotManager().method_3(2u));
                    class3.method_7(@class.RoomModel.int_0, @class.RoomModel.int_1, @class.RoomModel.double_0);
                    class3.UpdateNeeded = true;
                    RoomUser class4 = @class.method_56(@class.Owner);
                    if (class4 != null)
                    {
                        class3.MoveTo(class4.Position);
                        class3.method_9(Class107.smethod_0(class3.int_3, class3.int_4, class4.int_3, class4.int_4));
                    }
                    Session.GetHabbo().CallGuideBotAchievementsCompleted();
                    Session.GetHabbo().bool_10 = true;
                }
            }
        }
示例#4
0
        public void Handle(GameClient Session, ClientMessage Event)
        {
            Room @class = Essential.GetGame().GetRoomManager().GetRoom(Session.GetHabbo().CurrentRoomId);

            if (@class != null && @class.CheckRights(Session, true))
            {
                for (int i = 0; i < @class.RoomUsers.Length; i++)
                {
                    RoomUser class2 = @class.RoomUsers[i];
                    if (class2 != null && (class2.IsBot && class2.RoomBot.AiType == AIType.Guide))
                    {
                        ServerMessage Message = new ServerMessage(Outgoing.GenericError);
                        Message.AppendInt32(4009);
                        Session.SendMessage(Message);
                        return;
                    }
                }
                if (Session.GetHabbo().bool_10)
                {
                    ServerMessage Message = new ServerMessage(Outgoing.GenericError);
                    Message.AppendInt32(4010);
                    Session.SendMessage(Message);
                }
                else
                {
                    RoomUser class3 = @class.BotToRoomUser(Essential.GetGame().GetBotManager().GetRoomBotById(2u));
                    class3.method_7(@class.RoomModel.DoorX, @class.RoomModel.DoorY, @class.RoomModel.double_0);
                    class3.UpdateNeeded = true;
                    RoomUser class4 = @class.method_56(@class.Owner);
                    if (class4 != null)
                    {
                        class3.MoveTo(class4.Position);
                        class3.method_9(Rotation.GetRotation(class3.X, class3.Y, class4.X, class4.Y));
                    }
                    Session.GetHabbo().CallGuideBotAchievementsCompleted();
                    Session.GetHabbo().bool_10 = true;
                }
            }
        }
 public override void OnTrigger(GameClient Session, RoomItem RoomItem_0, int int_0, bool bool_0)
 {
     if (RoomItem_0.ExtraData != "1" && RoomItem_0.GetBaseItem().VendingIds.Count >= 1 && RoomItem_0.uint_3 == 0u)
     {
         if (Session != null)
         {
             RoomUser @class = RoomItem_0.method_8().GetRoomUserByHabbo(Session.GetHabbo().Id);
             if (@class == null)
             {
                 return;
             }
             if (!RoomItem_0.method_8().method_99(@class.X, @class.Y, RoomItem_0.Int32_0, RoomItem_0.Int32_1))
             {
                 if ([email protected]_0)
                 {
                     return;
                 }
                 try
                 {
                     @class.MoveTo(RoomItem_0.GStruct1_1);
                     return;
                 }
                 catch
                 {
                     return;
                 }
             }
             RoomItem_0.uint_3 = Session.GetHabbo().Id;
             @class.bool_0     = false;
             @class.method_3(true);
             @class.method_9(Class107.smethod_0(@class.X, @class.Y, RoomItem_0.Int32_0, RoomItem_0.Int32_1));
         }
         RoomItem_0.ReqUpdate(2);
         RoomItem_0.ExtraData = "1";
         RoomItem_0.UpdateState(false, true);
     }
 }
示例#6
0
        public RoomUser method_4(RoomBot Bot, Pet PetData, uint x = 0)
        {
            int num;
            if (x == 0)
                num = this.method_5();
            else
                num = (int)x;
            RoomUser user = new RoomUser(Convert.ToUInt32(num + 1000), this.Id, this.int_7++, true, x);

            user.int_20 = num;

            this.RoomUsers[num] = user;
            if (Bot.x > 0 && Bot.y > 0 && Bot.x < this.RoomModel.int_4 && Bot.y < this.RoomModel.int_5)
            {
                user.method_7(Bot.x, Bot.y, Bot.z);
                user.method_9(Bot.Rotation);
            }
            else
            {
                Bot.x = this.RoomModel.DoorX;
                Bot.y = this.RoomModel.DoorY;
                user.method_7(this.RoomModel.DoorX, this.RoomModel.DoorY, this.RoomModel.double_0);
                user.method_9(this.RoomModel.int_2);
            }

            user.RoomBot = Bot;
            user.BotAI = Bot.GetBotAI(user.VirtualId);

            if (user.IsPet)
            {
                user.BotAI.Init((int)Bot.Id, user.VirtualId, this.Id);
                user.PetData = PetData;
                user.PetData.VirtualId = user.VirtualId;
            }
            else
            {
                user.BotAI.Init(-1, user.VirtualId, this.Id);
            }
            this.method_87(user, true, true);
            user.UpdateNeeded = true;
            ServerMessage Message = new ServerMessage(Outgoing.SetRoomUser); // P
            Message.AppendInt32(1);
            user.method_14(Message);
            this.SendMessage(Message, null);
            user.BotAI.OnSelfEnterRoom();
            return user;
        }
示例#7
0
        public RoomUser AddBotToRoom(RoomBot Bot, UserBot UBot)
        {
            int num = (int)UBot.BotId;
            if(num > 500)
            {
                int i = 500;
                while(i > 0)
                {
                    i--;
                    RoomUser ru = RoomUsers[i];
                    if (ru == null)
                    { num = i; break; }
                }
            }
            RoomUser user = new RoomUser(Convert.ToUInt32(UBot.BotId + 1000), this.Id, this.int_7++, true);
            user.int_20 = num;
            this.RoomUsers[num] = user;
            if (Bot.x > 0 && Bot.y > 0 && Bot.x < this.RoomModel.int_4 && Bot.y < this.RoomModel.int_5)
            {
                user.method_7(Bot.x, Bot.y, Bot.z);
                user.method_9(Bot.Rotation);
            }
            else
            {
                Bot.x = this.RoomModel.DoorX;
                Bot.y = this.RoomModel.DoorY;
                user.method_7(this.RoomModel.DoorX, this.RoomModel.DoorY, this.RoomModel.double_0);
                user.method_9(this.RoomModel.int_2);
            }

            user.RoomBot = Bot;
            user.BotAI = Bot.GetBotAI(user.VirtualId);

            user.BotAI.Init((int)Bot.Id, user.VirtualId, this.Id);

            this.method_87(user, true, true);
            user.UpdateNeeded = true;
            ServerMessage Message = new ServerMessage(Outgoing.PlaceBot); // P
            Message.AppendInt32(1);
            user.method_14(Message);
            this.SendMessage(Message, null);
            user.BotAI.OnSelfEnterRoom();
            return user;
        }
示例#8
0
        public void method_46(GameClient Session, bool bool_13)
        {

            RoomUser @class = new RoomUser(Session.GetHabbo().Id, this.Id, this.int_7++, Session.GetHabbo().IsVisible);
            if (@class != null && @class.GetClient() != null && @class.GetClient().GetHabbo() != null)
            {
                if (bool_13 || [email protected]_12)
                {
                    @class.bool_11 = true;
                }
                else
                {
                    @class.method_7(this.RoomModel.DoorX, this.RoomModel.DoorY, this.RoomModel.double_0);
                    @class.method_9(this.RoomModel.int_2);
                    if (this.CheckRights(Session, true))
                    {
                        @class.AddStatus("flatctrl", "useradmin");
                    }
                    else
                    {
                        if (this.method_26(Session))
                        {
                            @class.AddStatus("flatctrl", "");
                        }
                    }
                    if ([email protected] && @class.GetClient().GetHabbo().bool_7)
                    {
                        RoomItem class2 = this.method_28(@class.GetClient().GetHabbo().uint_5);
                        if (class2 != null)
                        {
                            @class.method_7(class2.GetX, class2.Int32_1, class2.Double_0);
                            @class.method_9(class2.int_3);
                            class2.uint_4 = Session.GetHabbo().Id;
                            class2.ExtraData = "2";
                            class2.UpdateState(false, true);
                        }
                    }
                    @class.GetClient().GetHabbo().bool_7 = false;
                    @class.GetClient().GetHabbo().uint_5 = 0u;
                    ServerMessage Message = new ServerMessage(Outgoing.SetRoomUser); // P
                    Message.AppendInt32(1);
                    @class.method_14(Message);
                    this.SendMessage(Message, null);
                }
                int num = this.method_5();
                @class.int_20 = num;
                this.RoomUsers[num] = @class;
                if (!bool_13)
                {
                    this.bool_10 = true;
                }

                Session.GetHabbo().CurrentRoomId = this.Id;
                Session.GetHabbo().GetMessenger().method_5(true);
                Session.GetHabbo().RoomVisits++;
                Session.GetHabbo().CheckRoomEntryAchievements();
                Session.GetHabbo().SendToRoom(this.Id);

                //  Session.SendMessage(Session.GetHabbo().CurrentRoom.RoomModel.RelativeHeightmap(Session.GetHabbo().CurrentRoom));

                if (Session.GetHabbo().FavouriteGroup > 0)
                {
                    GroupsManager class3 = Groups.GetGroupById(Session.GetHabbo().FavouriteGroup);
                    if (class3 != null && !this.list_17.Contains(class3))
                    {
                        this.list_17.Add(class3);
                        ServerMessage Message2 = new ServerMessage(Outgoing.Guilds); // Updated
                        Message2.AppendInt32(this.list_17.Count);
                        foreach (GroupsManager current in this.list_17)
                        {
                            Message2.AppendInt32(current.Id);
                            Message2.AppendStringWithBreak(current.Badge);
                        }
                        this.SendMessage(Message2, null);
                    }
                }
                if (!bool_13)
                {
                    this.method_51();
                    for (int i = 0; i < this.RoomUsers.Length; i++)
                    {
                        RoomUser class4 = this.RoomUsers[i];
                        if (class4 != null && class4.IsBot)
                        {
                            class4.BotAI.OnUserEnterRoom(@class);
                        }
                    }
                }

                ServerMessage RoomCompetition = new ServerMessage(Outgoing.RoomCompetition);
                RoomCompetition.AppendBoolean(true);
                RoomCompetition.AppendInt32(85);
                Session.SendMessage(RoomCompetition);

                bool RoomHasPoll = false;
                bool UserFilledPoll = false;
                using (DatabaseClient dbClient = Essential.GetDatabase().GetClient())
                {
                    if (dbClient.ReadDataRow("SELECT null FROM room_polls WHERE room_id = '" + Session.GetHabbo().CurrentRoomId + "' LIMIT 1") != null)
                    {
                        RoomHasPoll = true;
                    }
                }

                if (RoomHasPoll == true)
                {

                    int PollId;
                    string PollDetails;

                    using (DatabaseClient dbClient = Essential.GetDatabase().GetClient())
                    {
                        PollId = dbClient.ReadInt32("SELECT id FROM room_polls WHERE room_id = '" + Session.GetHabbo().CurrentRoomId + "' LIMIT 1");
                        PollDetails = dbClient.ReadString("SELECT details FROM room_polls WHERE id = '" + PollId + "' LIMIT 1");


                        if (dbClient.ReadDataRow("SELECT null FROM room_poll_results WHERE user_id = '" + Session.GetHabbo().Id + "' AND poll_id = '" + PollId + "' LIMIT 1") != null)
                        {
                            UserFilledPoll = true;
                        }

                    }

                    if (UserFilledPoll == false)
                    {
                        Thread ShowPoll = new Thread(delegate() { Room.ShowPoll(Session, PollId, PollDetails); });
                        ShowPoll.Start();

                    }

                }
            }
        }
示例#9
0
        public override void OnUserSay(RoomUser RoomUser_0, string string_0)
        {
            RoomUser @class = base.GetRoomUser();

            if (@class.RoomBot.RoomUser_0 == null)
            {
                if (string_0.ToLower().Equals(@class.PetData.Name.ToLower()))
                {
                    @class.method_9(Class107.smethod_0(@class.int_3, @class.int_4, RoomUser_0.int_3, RoomUser_0.int_4));
                }
                else
                {
                    if (string_0.ToLower().StartsWith(@class.PetData.Name.ToLower() + " ") && RoomUser_0.GetClient().GetHabbo().Username.ToLower() == base.GetRoomUser().PetData.OwnerName.ToLower())
                    {
                        string key = string_0.Substring(@class.PetData.Name.ToLower().Length + 1);
                        if ((@class.PetData.Energy >= 10 && this.method_4() < 6) || @class.PetData.Level >= 15)
                        {
                            @class.Statusses.Clear();
                            if (!GoldTree.GetGame().GetRoleManager().dictionary_5.ContainsKey(key))
                            {
                                string[] array = new string[]
                                {
                                    GoldTreeEnvironment.GetExternalText("pet_response_confused1"),
                                    GoldTreeEnvironment.GetExternalText("pet_response_confused2"),
                                    GoldTreeEnvironment.GetExternalText("pet_response_confused3"),
                                    GoldTreeEnvironment.GetExternalText("pet_response_confused4"),
                                    GoldTreeEnvironment.GetExternalText("pet_response_confused5"),
                                    GoldTreeEnvironment.GetExternalText("pet_response_confused6"),
                                    GoldTreeEnvironment.GetExternalText("pet_response_confused7")
                                };
                                Random random = new Random();
                                @class.HandleSpeech(null, array[random.Next(0, array.Length - 1)], false);
                            }
                            else
                            {
                                switch (GoldTree.GetGame().GetRoleManager().dictionary_5[key])
                                {
                                case 1:
                                    @class.PetData.AddExpirience(10, -25);
                                    @class.HandleSpeech(null, GoldTreeEnvironment.GetExternalText("pet_response_sleep"), false);
                                    @class.Statusses.Add("lay", @class.double_0.ToString());
                                    break;

                                case 2:
                                    this.method_5(0, 0, true);
                                    @class.PetData.AddExpirience(5, 5);
                                    break;

                                case 3:
                                    @class.PetData.AddExpirience(5, 5);
                                    @class.Statusses.Add("sit", @class.double_0.ToString());
                                    break;

                                case 4:
                                    @class.PetData.AddExpirience(5, 5);
                                    @class.Statusses.Add("lay", @class.double_0.ToString());
                                    break;

                                case 5:
                                    @class.PetData.AddExpirience(10, 10);
                                    this.int_3 = 60;
                                    break;

                                case 6:
                                {
                                    int int_  = RoomUser_0.int_3;
                                    int int_2 = RoomUser_0.int_4;
                                    if (RoomUser_0.int_8 == 4)
                                    {
                                        int_2 = RoomUser_0.int_4 + 1;
                                    }
                                    else
                                    {
                                        if (RoomUser_0.int_8 == 0)
                                        {
                                            int_2 = RoomUser_0.int_4 - 1;
                                        }
                                        else
                                        {
                                            if (RoomUser_0.int_8 == 6)
                                            {
                                                int_ = RoomUser_0.int_3 - 1;
                                            }
                                            else
                                            {
                                                if (RoomUser_0.int_8 == 2)
                                                {
                                                    int_ = RoomUser_0.int_3 + 1;
                                                }
                                                else
                                                {
                                                    if (RoomUser_0.int_8 == 3)
                                                    {
                                                        int_  = RoomUser_0.int_3 + 1;
                                                        int_2 = RoomUser_0.int_4 + 1;
                                                    }
                                                    else
                                                    {
                                                        if (RoomUser_0.int_8 == 1)
                                                        {
                                                            int_  = RoomUser_0.int_3 + 1;
                                                            int_2 = RoomUser_0.int_4 - 1;
                                                        }
                                                        else
                                                        {
                                                            if (RoomUser_0.int_8 == 7)
                                                            {
                                                                int_  = RoomUser_0.int_3 - 1;
                                                                int_2 = RoomUser_0.int_4 - 1;
                                                            }
                                                            else
                                                            {
                                                                if (RoomUser_0.int_8 == 5)
                                                                {
                                                                    int_  = RoomUser_0.int_3 - 1;
                                                                    int_2 = RoomUser_0.int_4 + 1;
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                    @class.PetData.AddExpirience(15, 15);
                                    this.method_5(int_, int_2, false);
                                    break;
                                }

                                case 7:
                                    @class.PetData.AddExpirience(20, 20);
                                    @class.Statusses.Add("ded", @class.double_0.ToString());
                                    break;

                                case 8:
                                    @class.PetData.AddExpirience(10, 10);
                                    @class.Statusses.Add("beg", @class.double_0.ToString());
                                    break;

                                case 9:
                                    @class.PetData.AddExpirience(15, 15);
                                    @class.Statusses.Add("jmp", @class.double_0.ToString());
                                    break;

                                case 10:
                                    @class.PetData.AddExpirience(25, 25);
                                    @class.HandleSpeech(null, GoldTreeEnvironment.GetExternalText("pet_response_silent"), false);
                                    this.int_2 = 120;
                                    break;

                                case 11:
                                    @class.PetData.AddExpirience(15, 15);
                                    this.int_2 = 2;
                                    break;
                                }
                            }
                        }
                        else
                        {
                            string[] array2 = new string[]
                            {
                                GoldTreeEnvironment.GetExternalText("pet_response_sleeping1"),
                                GoldTreeEnvironment.GetExternalText("pet_response_sleeping2"),
                                GoldTreeEnvironment.GetExternalText("pet_response_sleeping3"),
                                GoldTreeEnvironment.GetExternalText("pet_response_sleeping4"),
                                GoldTreeEnvironment.GetExternalText("pet_response_sleeping5")
                            };
                            string[] array3 = new string[]
                            {
                                GoldTreeEnvironment.GetExternalText("pet_response_refusal1"),
                                GoldTreeEnvironment.GetExternalText("pet_response_refusal2"),
                                GoldTreeEnvironment.GetExternalText("pet_response_refusal3"),
                                GoldTreeEnvironment.GetExternalText("pet_response_refusal4"),
                                GoldTreeEnvironment.GetExternalText("pet_response_refusal5")
                            };
                            @class.int_10 = @class.int_12;
                            @class.int_11 = @class.int_13;
                            @class.Statusses.Clear();
                            if (@class.PetData.Energy < 10)
                            {
                                Random random2 = new Random();
                                @class.HandleSpeech(null, array2[random2.Next(0, array2.Length - 1)], false);
                                if (@class.PetData.Type != 13u)
                                {
                                    @class.Statusses.Add("lay", @class.double_0.ToString());
                                }
                                else
                                {
                                    @class.Statusses.Add("lay", (@class.double_0 - 1.0).ToString());
                                }
                                this.int_2 = 25;
                                this.int_3 = 20;
                                base.GetRoomUser().PetData.PetEnergy(-25);
                            }
                            else
                            {
                                Random random2 = new Random();
                                @class.HandleSpeech(null, array3[random2.Next(0, array3.Length - 1)], false);
                            }
                        }
                        @class.UpdateNeeded = true;
                    }
                }
            }
        }
示例#10
0
        public override void OnUserSay(RoomUser RoomUser, string string_0)
        {
            RoomUser Pet = base.GetRoomUser();

            if (Pet.RoomBot.RoomUser_0 == null)
            {
                if (string_0.ToLower().Equals(Pet.PetData.Name.ToLower()))
                {
                    Pet.method_9(Class107.smethod_0(Pet.X, Pet.Y, RoomUser.X, RoomUser.Y));
                }
                else
                {
                    if (string_0.ToLower().StartsWith(Pet.PetData.Name.ToLower() + " ") && RoomUser.GetClient().GetHabbo().Username.ToLower() == base.GetRoomUser().PetData.OwnerName.ToLower())
                    {
                        string key = string_0.Substring(Pet.PetData.Name.ToLower().Length + 1);
                        if ((Pet.PetData.Energy >= 10 && this.method_4() < 6) || Pet.PetData.Level >= 15)
                        {
                            Pet.Statusses.Clear();
                            if (!HabboIM.GetGame().GetRoleManager().dictionary_5.ContainsKey(key))
                            {
                                string[] array = new string[]
                                {
                                    HabboIMEnvironment.GetExternalText("pet_response_confused1"),
                                    HabboIMEnvironment.GetExternalText("pet_response_confused2"),
                                    HabboIMEnvironment.GetExternalText("pet_response_confused3"),
                                    HabboIMEnvironment.GetExternalText("pet_response_confused4"),
                                    HabboIMEnvironment.GetExternalText("pet_response_confused5"),
                                    HabboIMEnvironment.GetExternalText("pet_response_confused6"),
                                    HabboIMEnvironment.GetExternalText("pet_response_confused7")
                                };
                                Random random = new Random();
                                Pet.HandleSpeech(null, array[random.Next(0, array.Length - 1)], false);
                            }
                            else
                            {
                                switch (HabboIM.GetGame().GetRoleManager().dictionary_5[key])
                                {
                                case 0:
                                    // Remove Status
                                    RemovePetStatus();

                                    this.SpeechTimer = 0;
                                    this.ActionTimer = 0;
                                    this.FollowType  = FollowType.None;

                                    // Add Status
                                    Pet.Statusses.Add("sit", TextHandling.GetString(Pet.double_0));
                                    break;

                                case 1:
                                    this.ActionTimer = 25;
                                    this.FollowType  = FollowType.None;

                                    // Remove Status
                                    RemovePetStatus();

                                    Pet.PetData.AddExpirience(10, -10);     // Give XP

                                    // Add Status
                                    Pet.Statusses.Add("sit", TextHandling.GetString(Pet.double_0));
                                    break;

                                case 2:
                                    this.ActionTimer = 30;
                                    this.FollowType  = FollowType.None;

                                    // Remove Status
                                    RemovePetStatus();

                                    Pet.PetData.AddExpirience(10, -10);     // Give XP

                                    // Add Status
                                    Pet.Statusses.Add("lay", TextHandling.GetString(Pet.double_0));
                                    break;

                                case 3:
                                    this.ActionTimer = 30;
                                    this.FollowType  = FollowType.None;

                                    RemovePetStatus();

                                    int NewX = RoomUser.X;
                                    int NewY = RoomUser.Y;

                                    #region Rotation
                                    if (RoomUser.BodyRotation == 4)
                                    {
                                        NewY = RoomUser.Y + 1;
                                    }
                                    else if (RoomUser.BodyRotation == 0)
                                    {
                                        NewY = RoomUser.Y - 1;
                                    }
                                    else if (RoomUser.BodyRotation == 6)
                                    {
                                        NewX = RoomUser.X - 1;
                                    }
                                    else if (RoomUser.BodyRotation == 2)
                                    {
                                        NewX = RoomUser.X + 1;
                                    }
                                    else if (RoomUser.BodyRotation == 3)
                                    {
                                        NewX = RoomUser.X + 1;
                                        NewY = RoomUser.Y + 1;
                                    }
                                    else if (RoomUser.BodyRotation == 1)
                                    {
                                        NewX = RoomUser.X + 1;
                                        NewY = RoomUser.Y - 1;
                                    }
                                    else if (RoomUser.BodyRotation == 7)
                                    {
                                        NewX = RoomUser.X - 1;
                                        NewY = RoomUser.Y - 1;
                                    }
                                    else if (RoomUser.BodyRotation == 5)
                                    {
                                        NewX = RoomUser.X - 1;
                                        NewY = RoomUser.Y + 1;
                                    }
                                    #endregion

                                    Pet.PetData.AddExpirience(11, -10);     // Give XP

                                    Pet.MoveTo(NewX, NewY);
                                    break;

                                case 4:
                                    this.ActionTimer = 10;
                                    this.FollowType  = FollowType.None;

                                    //Remove Status
                                    RemovePetStatus();

                                    Pet.PetData.AddExpirience(15, -13);     // Give XP

                                    Pet.Statusses.Add("beg", TextHandling.GetString(Pet.double_0));
                                    break;

                                case 5:
                                    this.ActionTimer = 30;
                                    this.FollowType  = FollowType.None;

                                    // Remove Status
                                    RemovePetStatus();

                                    // Add Status
                                    Pet.Statusses.Add("ded", TextHandling.GetString(Pet.double_0));

                                    Pet.PetData.AddExpirience(20, -18);     // Give XP
                                    break;

                                case 6:
                                    this.ActionTimer = 120;
                                    this.FollowType  = FollowType.None;

                                    // Remove Status
                                    RemovePetStatus();

                                    // Add Status
                                    Pet.Statusses.Add("sit", TextHandling.GetString(Pet.double_0));

                                    Pet.PetData.AddExpirience(20, -18);     // Give XP

                                    Pet.MoveTo(Pet.X, Pet.Y);
                                    break;

                                case 7:
                                    this.ActionTimer = 120;
                                    this.FollowType  = FollowType.Normal;
                                    this.FollowUser  = RoomUser;

                                    Pet.PetData.AddExpirience(30, -30);     // Give XP

                                    this.PetFollowUser(RoomUser, Pet, FollowType.Normal);
                                    break;

                                case 8:
                                    //Stand
                                    break;

                                case 9:
                                    this.ActionTimer = 5;
                                    this.FollowType  = FollowType.None;

                                    // Remove Status
                                    RemovePetStatus();

                                    // Add Status
                                    Pet.Statusses.Add("jmp", TextHandling.GetString(Pet.double_0));

                                    Pet.PetData.AddExpirience(35, -30);     // Give XP
                                    break;

                                case 10:
                                    // Remove Status
                                    RemovePetStatus();

                                    Pet.PetData.AddExpirience(35, -30);     // Give XP

                                    this.SpeechTimer = 2;
                                    this.FollowType  = FollowType.None;
                                    break;

                                case 11:
                                    //Play
                                    break;

                                case 12:
                                    // Remove Status
                                    RemovePetStatus();

                                    Pet.PetData.AddExpirience(35, -30);     // Give XP

                                    this.SpeechTimer = 120;
                                    this.FollowType  = FollowType.None;
                                    break;

                                case 13:
                                    //Nest
                                    break;

                                case 14:
                                    //Drink
                                    break;

                                case 15:
                                    this.ActionTimer = 120;
                                    this.FollowType  = FollowType.Left;
                                    this.FollowUser  = RoomUser;

                                    Pet.PetData.AddExpirience(35, -30);     // Give XP

                                    this.PetFollowUser(RoomUser, Pet, FollowType.Left);
                                    break;

                                case 16:
                                    this.FollowType = FollowType.Right;
                                    this.FollowUser = RoomUser;

                                    Pet.PetData.AddExpirience(35, -30);     // Give XP

                                    this.PetFollowUser(RoomUser, Pet, FollowType.Right);
                                    break;

                                case 17:
                                    //Play football
                                    break;

                                case 24:
                                    //Move forwar
                                    break;

                                case 25:
                                    //Turn left
                                    break;

                                case 26:
                                    //Turn right
                                    break;

                                case 43:
                                    //Eat
                                    break;
                                }
                            }
                        }
                        else
                        {
                            string[] array2 = new string[]
                            {
                                HabboIMEnvironment.GetExternalText("pet_response_sleeping1"),
                                HabboIMEnvironment.GetExternalText("pet_response_sleeping2"),
                                HabboIMEnvironment.GetExternalText("pet_response_sleeping3"),
                                HabboIMEnvironment.GetExternalText("pet_response_sleeping4"),
                                HabboIMEnvironment.GetExternalText("pet_response_sleeping5")
                            };
                            string[] array3 = new string[]
                            {
                                HabboIMEnvironment.GetExternalText("pet_response_refusal1"),
                                HabboIMEnvironment.GetExternalText("pet_response_refusal2"),
                                HabboIMEnvironment.GetExternalText("pet_response_refusal3"),
                                HabboIMEnvironment.GetExternalText("pet_response_refusal4"),
                                HabboIMEnvironment.GetExternalText("pet_response_refusal5")
                            };
                            Pet.int_10 = Pet.int_12;
                            Pet.int_11 = Pet.int_13;
                            Pet.Statusses.Clear();
                            if (Pet.PetData.Energy < 10)
                            {
                                Random random2 = new Random();
                                Pet.HandleSpeech(null, array2[random2.Next(0, array2.Length - 1)], false);
                                if (Pet.PetData.Type != 13u)
                                {
                                    Pet.Statusses.Add("lay", Pet.double_0.ToString());
                                }
                                else
                                {
                                    Pet.Statusses.Add("lay", (Pet.double_0 - 1.0).ToString());
                                }
                                this.SpeechTimer = 25;
                                this.ActionTimer = 20;
                                base.GetRoomUser().PetData.PetEnergy(25);
                            }
                            else
                            {
                                Random random2 = new Random();
                                Pet.HandleSpeech(null, array3[random2.Next(0, array3.Length - 1)], false);
                            }
                        }
                        Pet.UpdateNeeded = true;
                    }
                }
            }
        }