public override void OnPlace(GameClient Session, RoomItem RoomItem_0)
 {
     RoomItem_0.ExtraData = "0";
     if (RoomItem_0.uint_3 != 0u)
     {
         RoomUser @class = RoomItem_0.method_8().GetRoomUserByHabbo(RoomItem_0.uint_3);
         if (@class != null)
         {
             @class.method_3(true);
             @class.bool_1 = false;
             @class.bool_0 = true;
         }
         RoomItem_0.uint_3 = 0u;
     }
     if (RoomItem_0.uint_4 != 0u)
     {
         RoomUser @class = RoomItem_0.method_8().GetRoomUserByHabbo(RoomItem_0.uint_4);
         if (@class != null)
         {
             @class.method_3(true);
             @class.bool_1 = false;
             @class.bool_0 = true;
         }
         RoomItem_0.uint_4 = 0u;
     }
 }
 public override void OnTrigger(GameClient Session, RoomItem RoomItem_0, int int_0, bool bool_0)
 {
     RoomUser @class = RoomItem_0.method_8().GetRoomUserByHabbo(Session.GetHabbo().Id);
     if (@class != null && (RoomItem_0.GStruct1_2.x < RoomItem_0.method_8().Class28_0.int_4 && RoomItem_0.GStruct1_2.y < RoomItem_0.method_8().Class28_0.int_5))
     {
         if (ThreeDCoord.smethod_1(@class.GStruct1_0, RoomItem_0.GStruct1_1) && @class.bool_0)
         {
             @class.method_4(RoomItem_0.GStruct1_1);
         }
         else
         {
             if (RoomItem_0.method_8().method_30(RoomItem_0.GStruct1_2.x, RoomItem_0.GStruct1_2.y, RoomItem_0.Double_0, true, false) && RoomItem_0.uint_3 == 0u)
             {
                 RoomItem_0.uint_3 = @class.uint_0;
                 @class.bool_0 = false;
                 if (@class.bool_6 && (@class.int_10 != RoomItem_0.GStruct1_1.x || @class.int_11 != RoomItem_0.GStruct1_1.y))
                 {
                     @class.method_3(true);
                 }
                 @class.bool_1 = true;
                 @class.method_4(RoomItem_0.GStruct1_0);
                 RoomItem_0.ReqUpdate(3);
             }
         }
     }
 }
 public override void OnTrigger(GameClient Session, RoomItem RoomItem_0, int int_1, bool bool_0)
 {
     if (bool_0)
     {
         if (this.Modes == 0)
         {
             RoomItem_0.UpdateState(false, true);
         }
         int num = 0;
         int num2 = 0;
         if (RoomItem_0.ExtraData.Length > 0)
         {
             num = int.Parse(RoomItem_0.ExtraData);
         }
         if (num <= 0)
         {
             num2 = 1;
         }
         else
         {
             if (num >= this.Modes)
             {
                 num2 = 0;
             }
             else
             {
                 num2 = num + 1;
             }
         }
         if (num2 == 0)
         {
             if (RoomItem_0.method_8().method_97(RoomItem_0.Int32_0, RoomItem_0.Int32_1))
             {
                 return;
             }
             Dictionary<int, AffectedTile> dictionary = RoomItem_0.method_8().method_94(RoomItem_0.GetBaseItem().Length, RoomItem_0.GetBaseItem().Width, RoomItem_0.Int32_0, RoomItem_0.Int32_1, RoomItem_0.int_3);
             if (dictionary == null)
             {
                 dictionary = new Dictionary<int, AffectedTile>();
             }
             foreach (AffectedTile current in dictionary.Values)
             {
                 if (RoomItem_0.method_8().method_97(current.Int32_0, current.Int32_1))
                 {
                     return;
                 }
             }
         }
         RoomItem_0.ExtraData = num2.ToString();
         RoomItem_0.method_4();
         RoomItem_0.method_8().method_22();
     }
 }
 public override void OnTrigger(GameClient Session, RoomItem RoomItem_0, int int_0, bool bool_0)
 {
     RoomUser @class = RoomItem_0.method_8().GetRoomUserByHabbo(Session.GetHabbo().Id);
     if (@class != null && @class.class34_1 == null)
     {
         if (ThreeDCoord.smethod_0(@class.GStruct1_0, RoomItem_0.GStruct1_0) || ThreeDCoord.smethod_0(@class.GStruct1_0, RoomItem_0.GStruct1_1))
         {
             if (RoomItem_0.uint_3 == 0u)
             {
                 @class.int_19 = -1;
                 RoomItem_0.uint_3 = @class.GetClient().GetHabbo().Id;
                 @class.RoomItem_0 = RoomItem_0;
             }
         }
         else
         {
             if (@class.bool_0)
             {
                 try
                 {
                     @class.method_4(RoomItem_0.GStruct1_1);
                 }
                 catch
                 {
                 }
             }
         }
     }
 }
 public override void OnTrigger(GameClient Session, RoomItem RoomItem_0, int int_0, bool bool_0)
 {
     RoomUser @class = null;
     if (Session != null)
     {
         @class = RoomItem_0.method_8().GetRoomUserByHabbo(Session.GetHabbo().Id);
         if (@class == null)
         {
             return;
         }
     }
     if (Session == null || RoomItem_0.method_8().method_99(RoomItem_0.Int32_0, RoomItem_0.Int32_1, @class.int_3, @class.int_4))
     {
         if (RoomItem_0.ExtraData != "-1")
         {
             if (int_0 == -1)
             {
                 RoomItem_0.ExtraData = "0";
                 RoomItem_0.method_4();
             }
             else
             {
                 RoomItem_0.uint_3 = @class.uint_0;
                 RoomItem_0.ExtraData = "-1";
                 RoomItem_0.UpdateState(false, true);
                 RoomItem_0.ReqUpdate(4);
             }
         }
     }
     else
     {
         if (Session != null && @class != null && @class.bool_0)
         {
             try
             {
                 @class.method_4(RoomItem_0.GStruct1_1);
             }
             catch
             {
             }
         }
     }
 }
 public void FreezeUser(RoomItem Item, RoomItem Item2)
 {
     if (Item.method_8().frzTimer == true)
     {
         for (int i = 0; i < Item.method_8().RoomUser_0.Length; i++)
         {
             RoomUser User2 = Item.method_8().RoomUser_0[i];
             if (User2 != null)
             {
                 if (User2.int_3 == Item2.Int32_0 && User2.int_4 == Item2.Int32_1)
                 {
                     ThreadPool.QueueUserWorkItem(o =>
                     {
                         Item.method_8().GetFreeze().FreezeUser(User2);
                     });
                 }
             }
         }
     }
 }
        public bool BreakIceBlock(RoomItem Item, RoomItem Item2)
        {
            if (Item.method_8().frzTimer == true)
            {
                Item2.ExtraData = "11200";
                Item2.UpdateState(false, true);

                int rand = GoldTreeEnvironment.GetRandomNumber(1, 11);
                foreach (RoomItem Item3 in Item.method_8().GetFreeze().freezeBlocks.Values)
                {
                    if (Item2.Int32_0 == Item3.Int32_0 && Item2.Int32_1 == Item3.Int32_1)
                    {
                        if (string.IsNullOrEmpty(Item3.ExtraData))
                        {
                            Item3.method_8().GetFreeze().SetRandomPowerUp(Item3);
                            return true;
                        }
                    }
                }
            }
            return false;
        }
 public override void OnRemove(GameClient Session, RoomItem RoomItem_0)
 {
     RoomItem_0.ExtraData = "0";
     if (RoomItem_0.uint_3 != 0u)
     {
         RoomUser @class = RoomItem_0.method_8().GetRoomUserByHabbo(RoomItem_0.uint_3);
         if (@class != null)
         {
             @class.method_6();
         }
         RoomItem_0.uint_3 = 0u;
     }
     if (RoomItem_0.uint_4 != 0u)
     {
         RoomUser @class = RoomItem_0.method_8().GetRoomUserByHabbo(RoomItem_0.uint_4);
         if (@class != null)
         {
             @class.method_6();
         }
         RoomItem_0.uint_4 = 0u;
     }
 }
 public override void OnTrigger(GameClient Session, RoomItem RoomItem_0, int int_0, bool bool_0)
 {
     if (RoomItem_0.GetBaseItem().Height_Adjustable.Count > 1)
     {
         Dictionary<int, AffectedTile> dictionary = RoomItem_0.method_8().method_94(RoomItem_0.GetBaseItem().Length, RoomItem_0.GetBaseItem().Width, RoomItem_0.Int32_0, RoomItem_0.Int32_1, RoomItem_0.int_3);
         RoomItem_0.method_8().method_22();
         RoomItem_0.method_8().method_87(RoomItem_0.method_8().method_43(RoomItem_0.Int32_0, RoomItem_0.Int32_1), true, true);
         foreach (AffectedTile current in dictionary.Values)
         {
             RoomItem_0.method_8().method_87(RoomItem_0.method_8().method_43(current.Int32_0, current.Int32_1), true, true);
         }
     }
     if (Session != null)
     {
         RoomUser RoomUser_ = Session.GetHabbo().CurrentRoom.GetRoomUserByHabbo(Session.GetHabbo().Id);
         RoomItem_0.method_8().method_10(RoomUser_, RoomItem_0);
     }
 }
 public override void OnTrigger(GameClient Session, RoomItem RoomItem_0, int int_0, bool bool_0)
 {
     if (Session != null)
     {
         RoomUser @class = Session.GetHabbo().CurrentRoom.GetRoomUserByHabbo(Session.GetHabbo().Id);
         Room class2 = RoomItem_0.method_8();
         if (RoomItem_0.method_8().method_99(RoomItem_0.Int32_0, RoomItem_0.Int32_1, @class.int_3, @class.int_4))
         {
             RoomItem_0.method_8().method_10(@class, RoomItem_0);
             int num = RoomItem_0.Int32_0;
             int num2 = RoomItem_0.Int32_1;
             RoomItem_0.ExtraData = "11";
             if (@class.int_8 == 4)
             {
                 num2--;
             }
             else
             {
                 if (@class.int_8 == 0)
                 {
                     num2++;
                 }
                 else
                 {
                     if (@class.int_8 == 6)
                     {
                         num++;
                     }
                     else
                     {
                         if (@class.int_8 == 2)
                         {
                             num--;
                         }
                         else
                         {
                             if (@class.int_8 == 3)
                             {
                                 num--;
                                 num2--;
                             }
                             else
                             {
                                 if (@class.int_8 == 1)
                                 {
                                     num--;
                                     num2++;
                                 }
                                 else
                                 {
                                     if (@class.int_8 == 7)
                                     {
                                         num++;
                                         num2++;
                                     }
                                     else
                                     {
                                         if (@class.int_8 == 5)
                                         {
                                             num++;
                                             num2--;
                                         }
                                     }
                                 }
                             }
                         }
                     }
                 }
             }
             @class.MoveTo(RoomItem_0.Int32_0, RoomItem_0.Int32_1);
             class2.method_79(null, RoomItem_0, num, num2, 0, false, true, true);
         }
     }
 }
        public override void OnTrigger(GameClient Session, RoomItem Item, int Request, bool UserHasRights)
        {
            Room @class = Item.method_8();
            RoomUser User = @class.GetRoomUserByHabbo(Session.GetHabbo().Id);

            if (User.Freezed == false)
            {
                if (User.team != Rooms.Games.Team.None)
                {
                    if (Item.method_8().frzTimer == true)
                    {
                        if (Item.Int32_0 == User.int_3 || Item.Int32_0 - 1 == User.int_3 || Item.Int32_0 + 1 == User.int_3)
                        {
                            if (Item.Int32_1 == User.int_4 || Item.Int32_1 - 1 == User.int_4 || Item.Int32_1 + 1 == User.int_4)
                            {
                                ThreadPool.QueueUserWorkItem(o =>
                                {
                                    if (User.FreezeBalls > 0)
                                    {
                                        foreach (RoomItem Item2 in Item.method_8().GetFreeze().freezeTiles.Values)
                                        {
                                            if (Item2.Int32_0 == Item.Int32_0 && Item2.Int32_1 == Item.Int32_1 && (!string.IsNullOrEmpty(Item2.ExtraData)))
                                            {
                                                Rooms.Games.FreezePowerUp BallType = User.freezePowerUp;
                                                User.freezePowerUp = Rooms.Games.FreezePowerUp.None;

                                                bool pX, pY, pD1, pD2, nX, nY, nD1, nD2;
                                                pX = false; pY = false; pD1 = false; pD2 = false; nX = false; nY = false; nD1 = false; nD2 = false;

                                                if (BallType == Rooms.Games.FreezePowerUp.OrangeSnowball)
                                                {
                                                    User.FreezeBalls -= 1;
                                                    Item2.ExtraData = "6000";
                                                    Item2.UpdateState(false, true);
                                                    Thread.Sleep(2000);
                                                    BreakIceBlock(Item2, Item2);
                                                    FreezeUser(Item2, Item2);
                                                }
                                                else
                                                {
                                                    User.FreezeBalls -= 1;
                                                    Item2.ExtraData = "1000";
                                                    Item2.UpdateState(false, true);
                                                    Thread.Sleep(2000);
                                                    BreakIceBlock(Item2, Item2);
                                                    FreezeUser(Item2, Item2);
                                                }

                                                if (BallType == Rooms.Games.FreezePowerUp.None)
                                                {
                                                    BallType = Rooms.Games.FreezePowerUp.None;
                                                    for (int i = 1; i < 20; i++)
                                                    {
                                                        if (User.FreezeRange >= i)
                                                        {
                                                            Thread.Sleep(200);
                                                            foreach (RoomItem Item3 in Item.method_8().GetFreeze().freezeTiles.Values)
                                                            {
                                                                if (Item3.Int32_0 == Item.Int32_0 && Item3.Int32_1 == Item.Int32_1 + i && !pX) { pX = BreakIceBlock(Item, Item3); FreezeUser(Item, Item3); }
                                                                if (Item3.Int32_0 == Item.Int32_0 && Item3.Int32_1 == Item.Int32_1 - i && !pY) { pY = BreakIceBlock(Item, Item3); FreezeUser(Item, Item3); }
                                                                if (Item3.Int32_0 == Item.Int32_0 + i && Item3.Int32_1 == Item.Int32_1 && !nX) { nX = BreakIceBlock(Item, Item3); FreezeUser(Item, Item3); }
                                                                if (Item3.Int32_0 == Item.Int32_0 - i && Item3.Int32_1 == Item.Int32_1 && !nY) { nY = BreakIceBlock(Item, Item3); FreezeUser(Item, Item3); }
                                                            }
                                                        }
                                                    }
                                                }

                                                else if (BallType == Rooms.Games.FreezePowerUp.GreenArrow)
                                                {
                                                    BallType = Rooms.Games.FreezePowerUp.None;
                                                    for (int i = 1; i < 20; i++)
                                                    {
                                                        if (User.FreezeRange >= i)
                                                        {
                                                            Thread.Sleep(200);
                                                            foreach (RoomItem Item3 in Item.method_8().GetFreeze().freezeTiles.Values)
                                                            {
                                                                if (Item3.Int32_0 == Item.Int32_0 + i && Item3.Int32_1 == Item.Int32_1 + i && !pD1) { pD1 = BreakIceBlock(Item, Item3); FreezeUser(Item, Item3); }
                                                                if (Item3.Int32_0 == Item.Int32_0 + i && Item3.Int32_1 == Item.Int32_1 - i && !nD1) { nD1 = BreakIceBlock(Item, Item3); FreezeUser(Item, Item3); }
                                                                if (Item3.Int32_0 == Item.Int32_0 - i && Item3.Int32_1 == Item.Int32_1 + i && !pD2) { pD2 = BreakIceBlock(Item, Item3); FreezeUser(Item, Item3); }
                                                                if (Item3.Int32_0 == Item.Int32_0 - i && Item3.Int32_1 == Item.Int32_1 - i && !nD2) { nD2 = BreakIceBlock(Item, Item3); FreezeUser(Item, Item3); }
                                                            }
                                                        }
                                                    }
                                                    User.freezePowerUp = Rooms.Games.FreezePowerUp.None;
                                                }

                                                else if (BallType == Rooms.Games.FreezePowerUp.OrangeSnowball)
                                                {
                                                    BallType = Rooms.Games.FreezePowerUp.None;
                                                    for (int i = 1; i < 20; i++)
                                                    {
                                                        if (User.FreezeRange >= i)
                                                        {
                                                            Thread.Sleep(200);
                                                            foreach (RoomItem Item3 in Item.method_8().GetFreeze().freezeTiles.Values)
                                                            {
                                                                if (Item3.Int32_0 == Item.Int32_0 && Item3.Int32_1 == Item.Int32_1 + i && !pX) { pX = BreakIceBlock(Item, Item3); FreezeUser(Item, Item3); }
                                                                if (Item3.Int32_0 == Item.Int32_0 && Item3.Int32_1 == Item.Int32_1 - i && !pY) { pY = BreakIceBlock(Item, Item3); FreezeUser(Item, Item3); }
                                                                if (Item3.Int32_0 == Item.Int32_0 + i && Item3.Int32_1 == Item.Int32_1 && !nX) { nX = BreakIceBlock(Item, Item3); FreezeUser(Item, Item3); }
                                                                if (Item3.Int32_0 == Item.Int32_0 - i && Item3.Int32_1 == Item.Int32_1 && !nY) { nY = BreakIceBlock(Item, Item3); FreezeUser(Item, Item3); }
                                                                if (Item3.Int32_0 == Item.Int32_0 + i && Item3.Int32_1 == Item.Int32_1 + i && !pD1) { pD1 = BreakIceBlock(Item, Item3); FreezeUser(Item, Item3); }
                                                                if (Item3.Int32_0 == Item.Int32_0 + i && Item3.Int32_1 == Item.Int32_1 - i && !nD1) { nD1 = BreakIceBlock(Item, Item3); FreezeUser(Item, Item3); }
                                                                if (Item3.Int32_0 == Item.Int32_0 - i && Item3.Int32_1 == Item.Int32_1 + i && !pD2) { pD2 = BreakIceBlock(Item, Item3); FreezeUser(Item, Item3); }
                                                                if (Item3.Int32_0 == Item.Int32_0 - i && Item3.Int32_1 == Item.Int32_1 - i && !nD2) { nD2 = BreakIceBlock(Item, Item3); FreezeUser(Item, Item3); }
                                                            }
                                                        }
                                                    }
                                                }

                                                User.FreezeBalls += 1;
                                            }
                                        }
                                    }
                                });
                            }
                        }
                    }
                }
            }
        }
        public override void OnTrigger(GameClient Session, RoomItem Item, int Request, bool UserHasRights)
        {
            RoomUser User = Item.method_8().GetRoomUserByHabbo((uint)Session.GetHabbo().Id);

            if (User == null)
            {
                return;
            }

            if (Request == 0 && Item.FireWorkCount > 0 && Item.ExtraData == "1")
            {
                Item.ExtraData = "2";
                Item.UpdateState(false, true);

                if (Item.FireWorkCount > 0)
                {
                    Task T = null;
                    T = new Task(delegate() { Action(Item, T, "1"); });
                    T.Start();
                }
                else
                {
                    Task T = null;
                    T = new Task(delegate() { Action(Item, T, "0"); });
                    T.Start();
                }
            }
            else if (Request == 1)
            {
                ServerMessage PixelMessage = new ServerMessage(629);
                PixelMessage.AppendUInt(Item.uint_0);
                PixelMessage.AppendInt32(Item.FireWorkCount);
                PixelMessage.AppendBoolean(false);
                PixelMessage.AppendInt32(Pixels); // pixels :D
                PixelMessage.AppendBoolean(false);
                PixelMessage.AppendInt32(Fireworks); // 10 fireworks :D
                Session.SendMessage(PixelMessage);
            }
            else if (Request == 2 && Session.GetHabbo().ActivityPoints >= 20)
            {
                Item.FireWorkCount += Fireworks;

                Session.GetHabbo().FireworkPixelLoadedCount += Pixels;
                Session.GetHabbo().ActivityPoints -= 20;
                Session.GetHabbo().method_15(true);

                using (DatabaseClient dbClient = GoldTree.GetDatabase().GetClient())
                {
                    dbClient.AddParamWithValue("itemid", Item.uint_0);
                    dbClient.AddParamWithValue("sessionid", Session.GetHabbo().Id);
                    dbClient.ExecuteQuery("UPDATE items SET fw_count = fw_count + '" + Fireworks + "' WHERE id = @itemid LIMIT 1");
                    dbClient.ExecuteQuery("UPDATE user_stats SET fireworks = fireworks + '" + Pixels + "' WHERE id = @sessionid LIMIT 1");
                }

                ServerMessage PixelMessage = new ServerMessage(629);
                PixelMessage.AppendUInt(Item.uint_0);
                PixelMessage.AppendInt32(Item.FireWorkCount);
                PixelMessage.AppendBoolean(false);
                PixelMessage.AppendInt32(Pixels); // pixels :D
                PixelMessage.AppendBoolean(false);
                PixelMessage.AppendInt32(Fireworks); // 10 fireworks :D
                Session.SendMessage(PixelMessage);

                if (Item.ExtraData == "0")
                {
                    Item.ExtraData = "1";
                    Item.UpdateState(true, true);
                }

                Session.GetHabbo().CheckFireworkAchievements();
            }
        }
        public async override void OnTrigger(GameClient Session, RoomItem Item, int Request, bool UserHasRights)
        {
            if (Session == null || Session.GetHabbo() == null)
            {
                return;
            }

            if (string.IsNullOrEmpty(Item.ExtraData))
            {
                return;
            }

            if (Item == null || Item.method_8() == null)
            {
                return;
            }

            Room @class = Item.method_8();

            if (@class == null)
            {
                return;
            }

            RoomUser User = @class.GetRoomUserByHabbo(Session.GetHabbo().Id);

            if (User.Freezed == false)
            {
                if (User.team != Rooms.Games.Team.None)
                {
                    if (Item.method_8().frzTimer == true)
                    {
                        if (Item.Int32_0 == User.int_3 || Item.Int32_0 - 1 == User.int_3 || Item.Int32_0 + 1 == User.int_3)
                        {
                            if (Item.Int32_1 == User.int_4 || Item.Int32_1 - 1 == User.int_4 || Item.Int32_1 + 1 == User.int_4)
                            {
                                if (User.FreezeBalls > 0)
                                {
                                    foreach (RoomItem Item2 in Item.method_8().GetFreeze().freezeTiles.Values)
                                    {
                                        if (Item2.Int32_0 == Item.Int32_0 && Item2.Int32_1 == Item.Int32_1 && (Item2.ExtraData == "11200" || string.IsNullOrEmpty(Item2.ExtraData)))
                                        {
                                            Rooms.Games.FreezePowerUp BallType = User.freezePowerUp;
                                            User.freezePowerUp = Rooms.Games.FreezePowerUp.None;

                                            bool pX, pY, pD1, pD2, nX, nY, nD1, nD2;
                                            pX = false; pY = false; pD1 = false; pD2 = false; nX = false; nY = false; nD1 = false; nD2 = false;

                                            if (BallType == Rooms.Games.FreezePowerUp.OrangeSnowball)
                                            {
                                                User.FreezeBalls -= 1;
                                                Item2.ExtraData = "6000";
                                                Item2.UpdateState(false, true);
                                                await Task.Delay(2000);
                                                BreakIceBlock(Item2, Item2);
                                                FreezeUser(Item2, Item2);
                                            }
                                            else
                                            {
                                                User.FreezeBalls -= 1;
                                                Item2.ExtraData = "1000";
                                                Item2.UpdateState(false, true);
                                                await Task.Delay(2000);
                                                BreakIceBlock(Item2, Item2);
                                                FreezeUser(Item2, Item2);
                                            }

                                            if (BallType == Rooms.Games.FreezePowerUp.None)
                                            {
                                                for (int i = 1; i < 20; i++)
                                                {
                                                    if (User.FreezeRange >= i)
                                                    {
                                                        await Task.Delay(200);
                                                        foreach (RoomItem Item3 in Item.method_8().GetFreeze().freezeTiles.Values)
                                                        {
                                                            if (Item3.Int32_0 == Item.Int32_0 && Item3.Int32_1 == Item.Int32_1 + i && !pX) { pX = BreakIceBlock(Item, Item3); FreezeUser(Item, Item3); }
                                                            if (Item3.Int32_0 == Item.Int32_0 && Item3.Int32_1 == Item.Int32_1 - i && !pY) { pY = BreakIceBlock(Item, Item3); FreezeUser(Item, Item3); }
                                                            if (Item3.Int32_0 == Item.Int32_0 + i && Item3.Int32_1 == Item.Int32_1 && !nX) { nX = BreakIceBlock(Item, Item3); FreezeUser(Item, Item3); }
                                                            if (Item3.Int32_0 == Item.Int32_0 - i && Item3.Int32_1 == Item.Int32_1 && !nY) { nY = BreakIceBlock(Item, Item3); FreezeUser(Item, Item3); }
                                                        }
                                                    }
                                                }
                                            }

                                            else if (BallType == Rooms.Games.FreezePowerUp.GreenArrow)
                                            {
                                                for (int i = 1; i < 20; i++)
                                                {
                                                    if (User.FreezeRange >= i)
                                                    {
                                                        await Task.Delay(200);
                                                        foreach (RoomItem Item3 in Item.method_8().GetFreeze().freezeTiles.Values)
                                                        {
                                                            if (Item3.Int32_0 == Item.Int32_0 + i && Item3.Int32_1 == Item.Int32_1 + i && !pD1) { pD1 = BreakIceBlock(Item, Item3); FreezeUser(Item, Item3); }
                                                            if (Item3.Int32_0 == Item.Int32_0 + i && Item3.Int32_1 == Item.Int32_1 - i && !nD1) { nD1 = BreakIceBlock(Item, Item3); FreezeUser(Item, Item3); }
                                                            if (Item3.Int32_0 == Item.Int32_0 - i && Item3.Int32_1 == Item.Int32_1 + i && !pD2) { pD2 = BreakIceBlock(Item, Item3); FreezeUser(Item, Item3); }
                                                            if (Item3.Int32_0 == Item.Int32_0 - i && Item3.Int32_1 == Item.Int32_1 - i && !nD2) { nD2 = BreakIceBlock(Item, Item3); FreezeUser(Item, Item3); }
                                                        }
                                                    }
                                                }
                                            }

                                            else if (BallType == Rooms.Games.FreezePowerUp.OrangeSnowball)
                                            {
                                                for (int i = 1; i < 20; i++)
                                                {
                                                    if (User.FreezeRange >= i)
                                                    {
                                                        await Task.Delay(200);
                                                        foreach (RoomItem Item3 in Item.method_8().GetFreeze().freezeTiles.Values)
                                                        {
                                                            if (Item3.Int32_0 == Item.Int32_0 && Item3.Int32_1 == Item.Int32_1 + i && !pX) { pX = BreakIceBlock(Item, Item3); FreezeUser(Item, Item3); }
                                                            if (Item3.Int32_0 == Item.Int32_0 && Item3.Int32_1 == Item.Int32_1 - i && !pY) { pY = BreakIceBlock(Item, Item3); FreezeUser(Item, Item3); }
                                                            if (Item3.Int32_0 == Item.Int32_0 + i && Item3.Int32_1 == Item.Int32_1 && !nX) { nX = BreakIceBlock(Item, Item3); FreezeUser(Item, Item3); }
                                                            if (Item3.Int32_0 == Item.Int32_0 - i && Item3.Int32_1 == Item.Int32_1 && !nY) { nY = BreakIceBlock(Item, Item3); FreezeUser(Item, Item3); }
                                                            if (Item3.Int32_0 == Item.Int32_0 + i && Item3.Int32_1 == Item.Int32_1 + i && !pD1) { pD1 = BreakIceBlock(Item, Item3); FreezeUser(Item, Item3); }
                                                            if (Item3.Int32_0 == Item.Int32_0 + i && Item3.Int32_1 == Item.Int32_1 - i && !nD1) { nD1 = BreakIceBlock(Item, Item3); FreezeUser(Item, Item3); }
                                                            if (Item3.Int32_0 == Item.Int32_0 - i && Item3.Int32_1 == Item.Int32_1 + i && !pD2) { pD2 = BreakIceBlock(Item, Item3); FreezeUser(Item, Item3); }
                                                            if (Item3.Int32_0 == Item.Int32_0 - i && Item3.Int32_1 == Item.Int32_1 - i && !nD2) { nD2 = BreakIceBlock(Item, Item3); FreezeUser(Item, Item3); }
                                                        }
                                                    }
                                                }
                                            }

                                            BallType = Rooms.Games.FreezePowerUp.None;
                                            User.FreezeBalls += 1;
                                        }
                                    }
                                }

                                /*int progress = 0;
                                System.Timers.Timer t1 = new System.Timers.Timer();
                                Rooms.Games.FreezePowerUp FreezePowerUp = User.freezePowerUp;
                                User.freezePowerUp = Rooms.Games.FreezePowerUp.None;
                                t1.Elapsed += delegate { ThrowBomb(t1, User, Item, FreezePowerUp, progress++); };
                                t1.Interval = 200;
                                t1.Start();*/

                                /*ThreadPool.QueueUserWorkItem(o =>
                                {
                                    //System.Diagnostics.Stopwatch Stopwatch = new System.Diagnostics.Stopwatch();
                                    //Stopwatch.Start();
                                    if (User.FreezeBalls > 0)
                                    {
                                        foreach (RoomItem Item2 in Item.method_8().GetFreeze().freezeTiles.Values)
                                        {
                                            if (Item2.Int32_0 == Item.Int32_0 && Item2.Int32_1 == Item.Int32_1 && (!string.IsNullOrEmpty(Item2.ExtraData)))
                                            {
                                                Rooms.Games.FreezePowerUp BallType = User.freezePowerUp;
                                                User.freezePowerUp = Rooms.Games.FreezePowerUp.None;

                                                bool pX, pY, pD1, pD2, nX, nY, nD1, nD2;
                                                pX = false; pY = false; pD1 = false; pD2 = false; nX = false; nY = false; nD1 = false; nD2 = false;

                                                if (BallType == Rooms.Games.FreezePowerUp.OrangeSnowball)
                                                {
                                                    User.FreezeBalls -= 1;
                                                    Item2.ExtraData = "6000";
                                                    Item2.UpdateState(false, true);
                                                    Thread.Sleep(2000);
                                                    BreakIceBlock(Item2, Item2);
                                                    FreezeUser(Item2, Item2);
                                                }
                                                else
                                                {
                                                    User.FreezeBalls -= 1;
                                                    Item2.ExtraData = "1000";
                                                    Item2.UpdateState(false, true);
                                                    Thread.Sleep(2000);
                                                    BreakIceBlock(Item2, Item2);
                                                    FreezeUser(Item2, Item2);
                                                }

                                                if (BallType == Rooms.Games.FreezePowerUp.None)
                                                {
                                                    for (int i = 1; i < 20; i++)
                                                    {
                                                        if (User.FreezeRange >= i)
                                                        {
                                                            Thread.Sleep(200);
                                                            foreach (RoomItem Item3 in Item.method_8().GetFreeze().freezeTiles.Values)
                                                            {
                                                                if (Item3.Int32_0 == Item.Int32_0 && Item3.Int32_1 == Item.Int32_1 + i && !pX) { pX = BreakIceBlock(Item, Item3); FreezeUser(Item, Item3); }
                                                                if (Item3.Int32_0 == Item.Int32_0 && Item3.Int32_1 == Item.Int32_1 - i && !pY) { pY = BreakIceBlock(Item, Item3); FreezeUser(Item, Item3); }
                                                                if (Item3.Int32_0 == Item.Int32_0 + i && Item3.Int32_1 == Item.Int32_1 && !nX) { nX = BreakIceBlock(Item, Item3); FreezeUser(Item, Item3); }
                                                                if (Item3.Int32_0 == Item.Int32_0 - i && Item3.Int32_1 == Item.Int32_1 && !nY) { nY = BreakIceBlock(Item, Item3); FreezeUser(Item, Item3); }
                                                            }
                                                        }
                                                    }
                                                }

                                                else if (BallType == Rooms.Games.FreezePowerUp.GreenArrow)
                                                {
                                                    for (int i = 1; i < 20; i++)
                                                    {
                                                        if (User.FreezeRange >= i)
                                                        {
                                                            Thread.Sleep(200);
                                                            foreach (RoomItem Item3 in Item.method_8().GetFreeze().freezeTiles.Values)
                                                            {
                                                                if (Item3.Int32_0 == Item.Int32_0 + i && Item3.Int32_1 == Item.Int32_1 + i && !pD1) { pD1 = BreakIceBlock(Item, Item3); FreezeUser(Item, Item3); }
                                                                if (Item3.Int32_0 == Item.Int32_0 + i && Item3.Int32_1 == Item.Int32_1 - i && !nD1) { nD1 = BreakIceBlock(Item, Item3); FreezeUser(Item, Item3); }
                                                                if (Item3.Int32_0 == Item.Int32_0 - i && Item3.Int32_1 == Item.Int32_1 + i && !pD2) { pD2 = BreakIceBlock(Item, Item3); FreezeUser(Item, Item3); }
                                                                if (Item3.Int32_0 == Item.Int32_0 - i && Item3.Int32_1 == Item.Int32_1 - i && !nD2) { nD2 = BreakIceBlock(Item, Item3); FreezeUser(Item, Item3); }
                                                            }
                                                        }
                                                    }
                                                }

                                                else if (BallType == Rooms.Games.FreezePowerUp.OrangeSnowball)
                                                {
                                                    for (int i = 1; i < 20; i++)
                                                    {
                                                        if (User.FreezeRange >= i)
                                                        {
                                                            Thread.Sleep(200);
                                                            foreach (RoomItem Item3 in Item.method_8().GetFreeze().freezeTiles.Values)
                                                            {
                                                                if (Item3.Int32_0 == Item.Int32_0 && Item3.Int32_1 == Item.Int32_1 + i && !pX) { pX = BreakIceBlock(Item, Item3); FreezeUser(Item, Item3); }
                                                                if (Item3.Int32_0 == Item.Int32_0 && Item3.Int32_1 == Item.Int32_1 - i && !pY) { pY = BreakIceBlock(Item, Item3); FreezeUser(Item, Item3); }
                                                                if (Item3.Int32_0 == Item.Int32_0 + i && Item3.Int32_1 == Item.Int32_1 && !nX) { nX = BreakIceBlock(Item, Item3); FreezeUser(Item, Item3); }
                                                                if (Item3.Int32_0 == Item.Int32_0 - i && Item3.Int32_1 == Item.Int32_1 && !nY) { nY = BreakIceBlock(Item, Item3); FreezeUser(Item, Item3); }
                                                                if (Item3.Int32_0 == Item.Int32_0 + i && Item3.Int32_1 == Item.Int32_1 + i && !pD1) { pD1 = BreakIceBlock(Item, Item3); FreezeUser(Item, Item3); }
                                                                if (Item3.Int32_0 == Item.Int32_0 + i && Item3.Int32_1 == Item.Int32_1 - i && !nD1) { nD1 = BreakIceBlock(Item, Item3); FreezeUser(Item, Item3); }
                                                                if (Item3.Int32_0 == Item.Int32_0 - i && Item3.Int32_1 == Item.Int32_1 + i && !pD2) { pD2 = BreakIceBlock(Item, Item3); FreezeUser(Item, Item3); }
                                                                if (Item3.Int32_0 == Item.Int32_0 - i && Item3.Int32_1 == Item.Int32_1 - i && !nD2) { nD2 = BreakIceBlock(Item, Item3); FreezeUser(Item, Item3); }
                                                            }
                                                        }
                                                    }
                                                }

                                                BallType = Rooms.Games.FreezePowerUp.None;
                                                User.FreezeBalls += 1;
                                            }
                                        }
                                    }
                                });*/
                            }
                        }
                    }
                }
            }
        }
 private void UnlockGate(RoomItem item)
 {
     switch (item.GetBaseItem().InteractionType)
     {
         case "freeze_blue_gate":
         case "freeze_red_gate":
         case "freeze_green_gate":
         case "freeze_yellow_gate":
             item.method_8().method_38(item.Int32_0, item.Int32_1);
             break;
     }
 }
        public void method_25()
        {
            this.hashtable_0.Clear();
            this.hashtable_4.Clear();
            DataTable dataTable;
            using (DatabaseClient @class = GoldTree.GetDatabase().GetClient())
            {
                dataTable = @class.ReadDataTable("SELECT Id, base_item, extra_data, x, y, z, rot, wall_pos FROM items WHERE room_id = '" + this.uint_0 + "' ORDER BY room_id DESC");
            }
            if (dataTable != null)
            {
                foreach (DataRow dataRow in dataTable.Rows)
                {
                    RoomItem class2 = new RoomItem((uint)dataRow["Id"], this.Id, (uint)dataRow["base_item"], (string)dataRow["extra_data"], (int)dataRow["x"], (int)dataRow["y"], (double)dataRow["z"], (int)dataRow["rot"], (string)dataRow["wall_pos"], this);
                    if (class2.Boolean_0)
                    {
                        this.bool_11 = true;
                    }
                    if (class2.GetBaseItem().InteractionType.ToLower().Contains("wf_") || class2.GetBaseItem().InteractionType.ToLower().Contains("fbgate"))
                    {
                        DataRow dataRow2;
                        using (DatabaseClient @class = GoldTree.GetDatabase().GetClient())
                        {
                            dataRow2 = @class.ReadDataRow("SELECT extra1,extra2,extra3,extra4,extra5 FROM wired_items WHERE item_id = '" + class2.uint_0 + "'");
                        }
                        if (dataRow2 != null)
                        {
                            class2.string_2 = (string)dataRow2["extra1"];
                            class2.string_3 = (string)dataRow2["extra2"];
                            class2.string_4 = (string)dataRow2["extra3"];
                            class2.string_5 = (string)dataRow2["extra4"];
                            class2.string_6 = (string)dataRow2["extra5"];
                        }
                    }
                    if (class2.GetBaseItem().InteractionType.ToLower() == "firework")
                    {
                        DataRow dataRow2;
                        using (DatabaseClient @class = GoldTree.GetDatabase().GetClient())
                        {
                            dataRow2 = @class.ReadDataRow("SELECT fw_count FROM items WHERE id = '" + class2.uint_0 + "'");
                        }
                        if (dataRow2 != null)
                        {
                            class2.FireWorkCount = (int)dataRow2["fw_count"];
                        }
                    }

                    if (class2.GetBaseItem().InteractionType.ToLower() == "jukebox")
                    {
                        RoomMusicController roomMusicController = class2.method_8().GetRoomMusicController();
                        roomMusicController.LinkRoomOutputItemIfNotAlreadyExits(class2);
                    }
                    string text = class2.GetBaseItem().InteractionType.ToLower();
                    switch (text)
                    {
                        case "dice":
                            if (class2.ExtraData == "-1")
                            {
                                class2.ExtraData = "0";
                            }
                            break;
                        case "fbgate":
                            if (class2.ExtraData != "" && class2.ExtraData.Contains(','))
                            {
                                class2.string_2 = class2.ExtraData.Split(new char[]
                            {
                                ','
                            })[0];
                                class2.string_3 = class2.ExtraData.Split(new char[]
                            {
                                ','
                            })[1];
                            }
                            break;
                        case "dimmer":
                            if (this.class67_0 == null)
                            {
                                this.class67_0 = new MoodlightData(class2.uint_0);
                            }
                            break;
                        case "bb_patch":
                            this.list_5.Add(class2);
                            if (class2.ExtraData == "5")
                            {
                                this.list_6.Add(class2);
                            }
                            else
                            {
                                if (class2.ExtraData == "8")
                                {
                                    this.list_7.Add(class2);
                                }
                                else
                                {
                                    if (class2.ExtraData == "11")
                                    {
                                        this.list_9.Add(class2);
                                    }
                                    else
                                    {
                                        if (class2.ExtraData == "14")
                                        {
                                            this.list_8.Add(class2);
                                        }
                                    }
                                }
                            }
                            break;
                        case "blue_score":
                            this.list_12.Add(class2);
                            break;
                        case "green_score":
                            this.list_13.Add(class2);
                            break;
                        case "red_score":
                            this.list_10.Add(class2);
                            break;
                        case "yellow_score":
                            this.list_11.Add(class2);
                            break;
                        case "stickiepole":
                            this.list_3.Add(class2);
                            break;
                        case "wf_trg_onsay":
                        case "wf_trg_enterroom":
                        case "wf_trg_furnistate":
                        case "wf_trg_onfurni":
                        case "wf_trg_offfurni":
                        case "wf_trg_gameend":
                        case "wf_trg_gamestart":
                            if (!this.list_14.Contains(class2))
                            {
                                this.list_14.Add(class2);
                            }
                            break;
                        case "wf_trg_attime":
                            if (class2.string_2.Length <= 0)
                            {
                                class2.string_2 = "10";
                            }
                            if (!this.list_14.Contains(class2))
                            {
                                this.list_14.Add(class2);
                            }
                            class2.bool_0 = true;
                            class2.ReqUpdate(1);
                            break;
                        case "wf_trg_atscore":
                            if (!this.list_14.Contains(class2))
                            {
                                this.list_14.Add(class2);
                            }
                            class2.WiredAtTimeNeedReset = false;
                            class2.ReqUpdate(1);
                            break;
                        case "wf_trg_timer":
                            if (class2.string_2.Length <= 0)
                            {
                                class2.string_2 = "10";
                            }
                            if (!this.list_14.Contains(class2))
                            {
                                this.list_14.Add(class2);
                            }
                            class2.bool_0 = true;
                            class2.ReqUpdate(1);
                            break;
                        case "wf_act_saymsg":
                        case "wf_act_kick_user":
                        case "wf_act_moveuser":
                        case "wf_act_togglefurni":
                        case "wf_act_givepoints":
                        case "wf_act_moverotate":
                        case "wf_act_matchfurni":
                        case "wf_act_give_phx":
                            if (!this.list_15.Contains(class2))
                            {
                                this.list_15.Add(class2);
                            }
                            break;
                        case "wf_cnd_trggrer_on_frn":
                        case "wf_cnd_furnis_hv_avtrs":
                        case "wf_cnd_has_furni_on":
                        case "wf_cnd_match_snapshot":
                        case "wf_cnd_time_more_than":
                        case "wf_cnd_time_less_than":
                        case "wf_cnd_phx":
                            if (!this.list_16.Contains(class2))
                            {
                                this.list_16.Add(class2);
                            }
                            break;
                        case "freeze_tile":
                            this.GetFreeze().AddFreezeTile(class2);
                            break;
                        case "freeze_ice_block":
                            this.GetFreeze().AddFreezeBlock(class2);
                            break;
                        case "freeze_exit":
                            RoomItem exitTeleport = this.GetFreeze().ExitTeleport;
                            if (exitTeleport == null)
                            {
                                this.GetFreeze().ExitTeleport = class2;
                            }
                            break;
                        case "freeze_blue_gate":
                            this.GetGameManager().AddFreezeGate(class2);
                            break;
                        case "freeze_red_gate":
                            this.GetGameManager().AddFreezeGate(class2);
                            break;
                        case "freeze_green_gate":
                            this.GetGameManager().AddFreezeGate(class2);
                            break;
                        case "freeze_yellow_gate":
                            this.GetGameManager().AddFreezeGate(class2);
                            break;
                        case "freeze_blue_score":
                            this.GetGameManager().AddFreezeScoreboard(class2);
                            break;
                        case "freeze_red_score":
                            this.GetGameManager().AddFreezeScoreboard(class2);
                            break;
                        case "freeze_green_score":
                            this.GetGameManager().AddFreezeScoreboard(class2);
                            break;
                        case "freeze_yellow_score":
                            this.GetGameManager().AddFreezeScoreboard(class2);
                            break;
                    }
                    if (this.hashtable_0.Contains(class2.uint_0))
                    {
                        this.hashtable_0.Remove(class2.uint_0);
                    }
                    if (this.hashtable_4.Contains(class2.uint_0))
                    {
                        this.hashtable_4.Remove(class2.uint_0);
                    }
                    if (class2.Boolean_2)
                    {
                        this.hashtable_0.Add(class2.uint_0, class2);
                    }
                    else
                    {
                        this.hashtable_4.Add(class2.uint_0, class2);
                    }
                }
            }
        }
        public override void OnTrigger(GameClient Session, RoomItem RoomItem_0, int int_0, bool bool_0)
        {
            if (bool_0)
            {
                int num = 0;
                if (RoomItem_0.ExtraData.Length > 0)
                {
                    num = int.Parse(RoomItem_0.ExtraData);
                }
                if (int_0 == 0)
                {
                    if (num <= -1)
                    {
                        num = 0;
                    }
                    else
                    {
                        if (num >= 0)
                        {
                            num = -1;
                        }
                    }
                }
                else
                {
                    if (int_0 >= 1)
                    {
                        if (int_0 == 1)
                        {
                            if (!RoomItem_0.bool_0)
                            {
                                RoomItem_0.bool_0 = true;
                                RoomItem_0.ReqUpdate(1);
                                if (Session != null)
                                {
                                    RoomUser RoomUser_ = Session.GetHabbo().CurrentRoom.GetRoomUserByHabbo(Session.GetHabbo().Id);
                                    RoomItem_0.method_8().method_14(RoomUser_);
                                    foreach (RoomItem Item in RoomItem_0.method_8().Hashtable_0.Values)
                                    {
                                        if (Item.GetBaseItem().Name == "bb_apparatus")
                                        {
                                            Item.ExtraData = "1";
                                            Item.UpdateState(false, true);
                                            Item.ReqUpdate(1);
                                        }
                                    }
                                }
                            }
                            else
                            {
                                RoomItem_0.bool_0 = false;

                                foreach (RoomItem Item in RoomItem_0.method_8().Hashtable_0.Values)
                                {
                                    if (Item.GetBaseItem().Name == "bb_apparatus")
                                    {
                                        Item.ExtraData = "0";
                                        Item.UpdateState(false, true);
                                        Item.ReqUpdate(1);
                                    }
                                }
                            }
                        }
                        else
                        {
                            if (int_0 == 2)
                            {
                                num += 60;
                                if (num >= 600)
                                {
                                    num = 0;
                                }
                            }
                        }
                    }
                }
                RoomItem_0.ExtraData = num.ToString();
                RoomItem_0.UpdateState(true, true);
            }
        }
Exemple #17
0
        public void SetRandomPowerUp(RoomItem item)
        {
            if (string.IsNullOrEmpty(item.ExtraData))
            {
                switch (this.rnd.Next(1, 11))
                {
                    case 2:
                        item.ExtraData = "2000";
                        item.freezePowerUp = FreezePowerUp.BlueArrow;
                        break;

                    case 3:
                        item.ExtraData = "3000";
                        item.freezePowerUp = FreezePowerUp.Snowballs;
                        break;

                    case 4:
                        item.ExtraData = "4000";
                        item.freezePowerUp = FreezePowerUp.GreenArrow;
                        break;

                    case 5:
                        item.ExtraData = "5000";
                        item.freezePowerUp = FreezePowerUp.OrangeSnowball;
                        break;

                    case 6:
                        item.ExtraData = "6000";
                        item.freezePowerUp = FreezePowerUp.Heart;
                        break;

                    case 7:
                        item.ExtraData = "7000";
                        item.freezePowerUp = FreezePowerUp.Shield;
                        break;

                    default:
                        item.ExtraData = "1000";
                        item.freezePowerUp = FreezePowerUp.None;
                        break;
                }
                item.method_8().method_38(item.Int32_0, item.Int32_1);
                item.UpdateState(false, true);
            }
        }
 public override void OnTrigger(GameClient Session, RoomItem RoomItem_0, int int_0, bool bool_0)
 {
     Room @class = RoomItem_0.method_8();
     RoomUser class2 = @class.GetRoomUserByHabbo(Session.GetHabbo().Id);
     if (class2 != null && @class != null)
     {
         ThreeDCoord gstruct1_ = new ThreeDCoord(RoomItem_0.Int32_0 + 1, RoomItem_0.Int32_1);
         ThreeDCoord gstruct1_2 = new ThreeDCoord(RoomItem_0.Int32_0 - 1, RoomItem_0.Int32_1);
         ThreeDCoord gstruct1_3 = new ThreeDCoord(RoomItem_0.Int32_0, RoomItem_0.Int32_1 + 1);
         ThreeDCoord gstruct1_4 = new ThreeDCoord(RoomItem_0.Int32_0, RoomItem_0.Int32_1 - 1);
         if (ThreeDCoord.smethod_1(class2.GStruct1_0, gstruct1_) && ThreeDCoord.smethod_1(class2.GStruct1_0, gstruct1_2) && ThreeDCoord.smethod_1(class2.GStruct1_0, gstruct1_3) && ThreeDCoord.smethod_1(class2.GStruct1_0, gstruct1_4))
         {
             if (class2.bool_0)
             {
                 class2.method_4(RoomItem_0.GStruct1_0);
             }
         }
         else
         {
             int num = RoomItem_0.Int32_0;
             int num2 = RoomItem_0.Int32_1;
             if (ThreeDCoord.smethod_0(class2.GStruct1_0, gstruct1_))
             {
                 num = RoomItem_0.Int32_0 - 1;
                 num2 = RoomItem_0.Int32_1;
             }
             else
             {
                 if (ThreeDCoord.smethod_0(class2.GStruct1_0, gstruct1_2))
                 {
                     num = RoomItem_0.Int32_0 + 1;
                     num2 = RoomItem_0.Int32_1;
                 }
                 else
                 {
                     if (ThreeDCoord.smethod_0(class2.GStruct1_0, gstruct1_3))
                     {
                         num = RoomItem_0.Int32_0;
                         num2 = RoomItem_0.Int32_1 - 1;
                     }
                     else
                     {
                         if (ThreeDCoord.smethod_0(class2.GStruct1_0, gstruct1_4))
                         {
                             num = RoomItem_0.Int32_0;
                             num2 = RoomItem_0.Int32_1 + 1;
                         }
                     }
                 }
             }
             if (@class.method_37(num, num2, true, true, true, true, false, false, false))
             {
                 List<RoomItem> list_ = new List<RoomItem>();
                 list_ = @class.method_93(num, num2);
                 double double_ = @class.method_84(num, num2, list_);
                 ServerMessage Message = new ServerMessage(230u);
                 Message.AppendInt32(RoomItem_0.Int32_0);
                 Message.AppendInt32(RoomItem_0.Int32_1);
                 Message.AppendInt32(num);
                 Message.AppendInt32(num2);
                 Message.AppendInt32(1);
                 Message.AppendUInt(RoomItem_0.uint_0);
                 Message.AppendByte(2);
                 Message.AppendStringWithBreak(double_.ToString());
                 Message.AppendString("M");
                 @class.SendMessage(Message, null);
                 @class.method_81(RoomItem_0, num, num2, double_);
             }
         }
     }
 }
 public override void OnTrigger(GameClient Session, RoomItem RoomItem_0, int int_1, bool bool_0)
 {
     if (this.Modes != 0 && (bool_0 || RoomItem_0.GetBaseItem().InteractionType.ToLower() == "switch"))
     {
         if (RoomItem_0.GetBaseItem().InteractionType.ToLower() == "switch" && Session != null)
         {
             RoomUser @class = Session.GetHabbo().CurrentRoom.GetRoomUserByHabbo(Session.GetHabbo().Id);
             if (@class.GStruct1_0.x - RoomItem_0.GStruct1_1.x > 1 || @class.GStruct1_0.y - RoomItem_0.GStruct1_1.y > 1)
             {
                 if (@class.bool_0)
                 {
                     @class.method_4(RoomItem_0.GStruct1_0);
                     return;
                 }
                 return;
             }
         }
         int num = 0;
         if (RoomItem_0.ExtraData.Length > 0)
         {
             num = int.Parse(RoomItem_0.ExtraData);
         }
         int num2;
         if (num <= 0)
         {
             num2 = 1;
         }
         else
         {
             if (num >= this.Modes)
             {
                 num2 = 0;
             }
             else
             {
                 num2 = num + 1;
             }
         }
         if (RoomItem_0.GetBaseItem().Name.Contains("jukebox"))
         {
             ServerMessage Message = new ServerMessage(327u);
             if (num2 == 1)
             {
                 Message.AppendInt32(7);
                 Message.AppendInt32(6);
                 Message.AppendInt32(7);
                 Message.AppendInt32(0);
                 Message.AppendInt32(0);
                 RoomItem_0.int_0 = 1;
                 RoomItem_0.bool_0 = true;
                 RoomItem_0.bool_1 = true;
             }
             else
             {
                 Message.AppendInt32(-1);
                 Message.AppendInt32(-1);
                 Message.AppendInt32(-1);
                 Message.AppendInt32(-1);
                 Message.AppendInt32(0);
                 RoomItem_0.int_0 = 0;
                 RoomItem_0.bool_0 = false;
                 RoomItem_0.method_8().int_13 = 0;
             }
             RoomItem_0.method_8().SendMessage(Message, null);
         }
         double double_ = RoomItem_0.Double_1;
         RoomItem_0.ExtraData = num2.ToString();
         RoomItem_0.method_4();
         if (double_ != RoomItem_0.Double_1)
         {
             Dictionary<int, AffectedTile> dictionary = RoomItem_0.Dictionary_0;
             if (dictionary == null)
             {
                 dictionary = new Dictionary<int, AffectedTile>();
             }
             RoomItem_0.method_8().method_87(RoomItem_0.method_8().method_43(RoomItem_0.Int32_0, RoomItem_0.Int32_1), true, false);
             foreach (AffectedTile current in dictionary.Values)
             {
                 RoomItem_0.method_8().method_87(RoomItem_0.method_8().method_43(current.Int32_0, current.Int32_1), true, false);
             }
         }
         if (Session != null)
         {
             RoomUser RoomUser_ = Session.GetHabbo().CurrentRoom.GetRoomUserByHabbo(Session.GetHabbo().Id);
             RoomItem_0.method_8().method_10(RoomUser_, RoomItem_0);
         }
     }
 }
 public override void OnTrigger(GameClient Session, RoomItem Item, int Request, bool UserHasRights)
 {
     if (UserHasRights)
     {
         int num = 0;
         if (Item.ExtraData.Length > 0)
         {
             num = int.Parse(Item.ExtraData);
         }
         if (Request == 0)
         {
             if (num <= -1)
             {
                 num = 0;
             }
             else
             {
                 if (num >= 0)
                 {
                     num = -1;
                 }
             }
         }
         else
         {
             if (Request >= 1)
             {
                 if (Request == 1)
                 {
                     if (!Item.method_8().frzTimer)
                     {
                         Item.method_8().frzTimer = true;
                         Item.ReqUpdate(1);
                         if (Session != null)
                         {
                             RoomUser RoomUser_ = Session.GetHabbo().CurrentRoom.GetRoomUserByHabbo(Session.GetHabbo().Id);
                             Item.method_8().method_14(RoomUser_);
                             Item.method_8().GetFreeze().StartGame();
                         }
                     }
                     else
                     {
                         Item.method_8().frzTimer = false;
                         Item.method_8().GetFreeze().StopGame();
                     }
                 }
                 else
                 {
                     if (Request == 2)
                     {
                         num += 60;
                         if (num >= 600)
                         {
                             num = 0;
                         }
                     }
                 }
             }
         }
         Item.ExtraData = num.ToString();
         Item.UpdateState(true, true);
     }
 }