Example #1
0
        /// <summary>
        ///     Loads the room.
        /// </summary>
        /// <param name="id">The identifier.</param>
        /// <param name="forceLoad"></param>
        /// <returns>Room.</returns>
        internal Room LoadRoom(uint id, bool forceLoad = false)
        {
            if (IsRoomLoaded(id))
                return GetRoom(id);

            var roomData = GenerateRoomData(id);
            if (roomData == null)
                return null;

            var room = new Room();

            LoadedRooms.AddOrUpdate(id, room, (key, value) => room);

            room.Start(roomData, forceLoad);

            Out.WriteLine($"Room #{id} was loaded", "Azure.Room.Manager", ConsoleColor.DarkCyan);

            room.InitBots();
            room.InitPets();
            return room;
        }
Example #2
0
        /// <summary>
        /// Loads the room.
        /// </summary>
        /// <param name="id">The identifier.</param>
        /// <returns>Room.</returns>
        internal Room LoadRoom(uint id)
        {
            if (LoadedRooms.ContainsKey(id))
                return GetRoom(id);

            var roomData = GenerateRoomData(id);
            if (roomData == null)
                return null;
            if (LoadedRooms.ContainsKey(id))
                return GetRoom(id);

            var room = new Room();
            LoadedRooms.AddOrUpdate(id, room, (key, value) => room);
            room.Start(roomData);

            Out.WriteLine(string.Format("Room #{0} was loaded", id), "Azure.Room.Manager", ConsoleColor.DarkCyan);

            room.InitBots();
            room.InitPets();
            return room;
        }
Example #3
0
        internal void PromoteRoom()
        {
            var pageId = Request.GetUInteger16();
            var item = Request.GetInteger();

            var page2 = AzureEmulator.GetGame().GetCatalog().GetPage(pageId);
            if (page2 == null) return;
            var catalogItem = page2.GetItem(item);

            if (catalogItem == null) return;

            var num = Request.GetUInteger();
            var text = Request.GetString();
            Request.GetBool();

            var text2 = string.Empty;
            try
            {
                text2 = Request.GetString();
            }
            catch (Exception)
            {
            }
            var category = Request.GetInteger();

            var room = AzureEmulator.GetGame().GetRoomManager().GetRoom(num);
            if (room == null)
            {
                var roomData = AzureEmulator.GetGame().GetRoomManager().GenerateRoomData(num);
                if (roomData == null) return;
                room = new Room();
                room.Start(roomData);
            }

            if (!room.CheckRights(Session, true)) return;
            if (catalogItem.CreditsCost > 0)
            {
                if (catalogItem.CreditsCost > Session.GetHabbo().Credits) return;
                Session.GetHabbo().Credits -= (int)catalogItem.CreditsCost;
                Session.GetHabbo().UpdateCreditsBalance();
            }
            if (catalogItem.DucketsCost > 0)
            {
                if (catalogItem.DucketsCost > Session.GetHabbo().ActivityPoints) return;
                Session.GetHabbo().ActivityPoints -= (int)catalogItem.DucketsCost;
                Session.GetHabbo().UpdateActivityPointsBalance();
            }
            if (catalogItem.DiamondsCost > 0)
            {
                if (catalogItem.DiamondsCost > Session.GetHabbo().Diamonds) return;
                Session.GetHabbo().Diamonds -= (int)catalogItem.DiamondsCost;
                Session.GetHabbo().UpdateSeasonalCurrencyBalance();
            }
            Session.SendMessage(CatalogPacket.PurchaseOk(catalogItem, catalogItem.Items));

            if (room.RoomData.Event != null && !room.RoomData.Event.HasExpired)
            {
                room.RoomData.Event.Time = AzureEmulator.GetUnixTimeStamp();
                AzureEmulator.GetGame().GetRoomEvents().SerializeEventInfo(room.RoomId);
            }
            else
            {
                AzureEmulator.GetGame().GetRoomEvents().AddNewEvent(room.RoomId, text, text2, Session, 7200, category);
                AzureEmulator.GetGame().GetRoomEvents().SerializeEventInfo(room.RoomId);
            }
            Session.GetHabbo().GetBadgeComponent().GiveBadge("RADZZ", true, Session, false);
        }