Пример #1
0
        public virtual IRoom GetNewRoom(Point3 newPoint)
        {
            var exactMatch = RoomFactory.Blueprints.FirstOrDefault(b => Equals(newPoint, b.FixedLocation));

            return(RoomFactory.Create(this,
                                      exactMatch ??
                                      RoomFactory.Blueprints.Where(b => RoomFactory.Spawnable(b)).ToArray().GetRandom(R)
                                      ));
        }
Пример #2
0
        public static void InitRainbowchestMimicRoom()
        {
            var data = RoomFactory.BuildFromResource("SpecialItemPack/Resources/Rooms/Secret_RainbowmimicRoom.room");
            PrototypeDungeonRoom protoroom = data.room;

            AddPlaceable(protoroom, new Vector2(-2f, 0f), new IntVector2(3, 2), SpecialItemModule.rainbowMimicChest.gameObject);
            RoomFactory.rooms.Add("spapi:rainbowchestmimic_room", data);
            DungeonHandler.Register(data);
        }
Пример #3
0
 /// <inheritdoc/>
 public HasStatsBlueprint TryGetBlueprint(string name)
 {
     return(RoomFactory.TryGetBlueprint(name) ??
            ActorFactory.Blueprints.FirstOrDefault(b => b.Is(name)) ??
            ItemFactory.Blueprints.FirstOrDefault(b => b.Is(name)) ??
            AdjectiveFactory.Blueprints.FirstOrDefault(b => b.Is(name)) ??
            BehaviourFactory.Blueprints.FirstOrDefault(b => b.Is(name)) ??
            (HasStatsBlueprint)ActionFactory.Blueprints.FirstOrDefault(b => b.Is(name)));
 }
    /// <summary>
    /// 打开对应区域
    /// </summary>
    private void OpenDep(DepNode node)
    {
        RoomFactory factory = RoomFactory.Instance;

        if (factory)
        {
            factory.FocusNode(node);
        }
    }
Пример #5
0
 private static void SetRooms(JObject json, IDictionary <int, List <IConnection> > connections)
 {
     foreach (var roomJObject in json["rooms"].Children <JObject>())
     {
         var room = RoomFactory.CreateRoom(roomJObject, connections, out var roomId, out var enemies);
         _enemies.AddRange(enemies);
         _rooms.Add(roomId, room);
     }
 }
Пример #6
0
        public void DelayedInitialisation()
        {
            try
            {
                LibramOfTheChambers.LateInit();

                SetupCrossModIDs.DoSetup();

                RoomFactory.LoadRoomsFromRoomDirectory();

                ObsidianPistol.OverridePossibleItems = new List <int>()
                {
                    AWholeBulletKin.WholeBulletKinID,
                    Lewis.LewisID,
                    Kevin.KevinID,
                    234, //Ibomb Companion App
                    201, //Portable Turret
                    338, //Gunther
                    599, //Bubble Blaster
                    563, //The Exotic
                    176, //Gungeon Ant
                    Gunshark.GunsharkID,
                    PoisonDartFrog.PoisonDartFrogID,
                    SporeLauncher.SporeLauncherID,
                    PhaserSpiderling.PhaserSpiderlingID,

                    PrismatismItemIDs.JeremyTheBlobulonID,

                    SomeBunnysItemIDs.BlasphemimicID,
                    SomeBunnysItemIDs.CasemimicID,
                    SomeBunnysItemIDs.GunthemimicID,
                    SomeBunnysItemIDs.GunSoulPhylacteryID,
                    SomeBunnysItemIDs.SoulInAJarID,

                    ExpandTheGungeonIDs.BabyGoodHammerID,
                    ExpandTheGungeonIDs.BabySitterID,

                    RORItemIDs.WillTheWispID,

                    CelsItemIDs.PetRockID,

                    KylesItemIDs.CaptureSphereID,

                    SpecialAPIsStuffIDs.CrownOfTheJammedID,
                    SpecialAPIsStuffIDs.RoundKingID,
                };

                CrossmodNPCLootPoolSetup.CheckItems();

                ETGModConsole.Log("(Also finished DelayedInitialisation)");
            }
            catch (Exception e)
            {
                ETGModConsole.Log(e.Message);
                ETGModConsole.Log(e.StackTrace);
            }
        }
Пример #7
0
 public void DemoTest()
 {
     for (int i = 0; i < 100; i++)
     {
         //System.Threading.Thread.Sleep(2);
         var room = RoomFactory.GetRoom();
         room.CreateRoom();
     }
 }
Пример #8
0
        private List <Room> RoomSelection(int roomAmount)
        {
            var roomList = new List <Room>(roomAmount);

            for (int i = 0; i < roomAmount; i++)
            {
                roomList.Add(RoomFactory.CreateRandomRoom());
            }
            return(roomList);
        }
Пример #9
0
        public void Parse(HabboHotel.GameClients.GameClient session, ClientPacket packet)
        {
            if (session == null)
            {
                return;
            }

            List <RoomData> rooms = RoomFactory.GetRoomsDataByOwnerSortByName(session.GetHabbo().Id).Where(x => x.Group == null).ToList();

            session.SendPacket(new GroupCreationWindowComposer(rooms));
        }
Пример #10
0
        public void TestIfReceptionactoryIsWorking()
        {
            //arrange
            IArea reception;

            //act
            reception = RoomFactory.Create(0, "Reception", 0, 0, 5, 7, 1, 1);

            //assert
            Assert.IsNotNull(reception);
        }
Пример #11
0
        public void TestIfFitnessFactoryIsWorking()
        {
            //arrange
            IArea fitness;

            //act
            fitness = RoomFactory.Create(0, "Fitness", 0, 0, 5, 7, 1, 1);

            //assert
            Assert.IsNotNull(fitness);
        }
Пример #12
0
        public void TestIfCinemaFactoryIsWorking()
        {
            //arrange
            IArea cinema;

            //act
            cinema = RoomFactory.Create(0, "Cinema", 0, 0, 5, 7, 1, 1);

            //assert
            Assert.IsNotNull(cinema);
        }
Пример #13
0
        public void TestIfHallwayFactoryIsWorking()
        {
            //arrange
            IArea hallway;

            //act
            hallway = RoomFactory.Create(0, "Hallway", 0, 0, 5, 7, 1, 1);

            //assert
            Assert.IsNotNull(hallway);
        }
Пример #14
0
        public void TestIfElevatorShaftFactoryIsWorking()
        {
            //arrange
            IArea elevator;

            //act
            elevator = RoomFactory.Create(0, "ElevatorShaft", 0, 0, 5, 7, 1, 1);

            //assert
            Assert.IsNotNull(elevator);
        }
Пример #15
0
        public void TestIfStaircaseFactoryIsWorking()
        {
            //arrange
            IArea stairs;

            //act
            stairs = RoomFactory.Create(0, "Staircase", 0, 0, 5, 7, 1, 1);

            //assert
            Assert.IsNotNull(stairs);
        }
Пример #16
0
        public void TestIfRestaurantFactoryIsWorking()
        {
            //arrange
            IArea restaurant;

            //act
            restaurant = RoomFactory.Create(0, "Restaurant", 0, 0, 5, 7, 1, 1);

            //assert
            Assert.IsNotNull(restaurant);
        }
Пример #17
0
        public static void InitSkullShrineRoom()
        {
            var data = RoomFactory.BuildFromResource("SpecialItemPack/Resources/Rooms/Room_ReaperShrine.room");
            PrototypeDungeonRoom protoroom = data.room;

            AddPlaceables(protoroom, new Vector2(-1f, 0f), new IntVector2(2, 2), new List <GameObject> {
                SpecialItemModule.sreaperShrine, SpecialItemModule.grimShrine
            });
            RoomFactory.rooms.Add("spapi:skullshrine_room", data);
            DungeonHandler.Register(data);
        }
Пример #18
0
        public void TestIfRoomFactoryIsWorking()
        {
            //arrange
            IArea room;

            //act
            room = RoomFactory.Create(0, "Room", 0, 0, 5, 7, 1, 1);

            //assert
            Assert.IsNotNull(room);
        }
Пример #19
0
        public void Parse(HabboHotel.GameClients.GameClient session, ClientPacket packet)
        {
            if (!PlusEnvironment.GetGame().GetGroupManager().TryGetGroup(packet.PopInt(), out Group group))
            {
                session.SendNotification("Oops, we couldn't find that group!");
                return;
            }

            if (group.CreatorId != session.GetHabbo().Id&& !session.GetHabbo().GetPermissions().HasRight("group_delete_override")) //Maybe a FUSE check for staff override?
            {
                session.SendNotification("Oops, only the group owner can delete a group!");
                return;
            }

            if (group.MemberCount >= Convert.ToInt32(PlusEnvironment.GetSettingsManager().TryGetValue("group.delete.member.limit")) && !session.GetHabbo().GetPermissions().HasRight("group_delete_limit_override"))
            {
                session.SendNotification("Oops, your group exceeds the maximum amount of members (" + Convert.ToInt32(PlusEnvironment.GetSettingsManager().TryGetValue("group.delete.member.limit")) + ") a group can exceed before being eligible for deletion. Seek assistance from a staff member.");
                return;
            }

            if (!PlusEnvironment.GetGame().GetRoomManager().TryGetRoom(group.RoomId, out Room room))
            {
                return;
            }

            if (!RoomFactory.TryGetData(group.RoomId, out RoomData data))
            {
                return;
            }

            room.Group = null;

            //Remove it from the cache.
            PlusEnvironment.GetGame().GetGroupManager().DeleteGroup(group.Id);

            //Now the :S stuff.
            using (IQueryAdapter dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor())
            {
                dbClient.RunQuery("DELETE FROM `groups` WHERE `id` = '" + group.Id + "'");
                dbClient.RunQuery("DELETE FROM `group_memberships` WHERE `group_id` = '" + group.Id + "'");
                dbClient.RunQuery("DELETE FROM `group_requests` WHERE `group_id` = '" + group.Id + "'");
                dbClient.RunQuery("UPDATE `rooms` SET `group_id` = '0' WHERE `group_id` = '" + group.Id + "' LIMIT 1");
                dbClient.RunQuery("UPDATE `user_stats` SET `groupid` = '0' WHERE `groupid` = '" + group.Id + "' LIMIT 1");
                dbClient.RunQuery("DELETE FROM `items_groups` WHERE `group_id` = '" + group.Id + "'");
            }

            //Unload it last.
            PlusEnvironment.GetGame().GetRoomManager().UnloadRoom(room.Id);

            //Say hey!
            session.SendNotification("You have successfully deleted your group.");
            return;
        }
Пример #20
0
        public IMaze Create(IRandomGenerator random, MazeType mazeType, int size)
        {
            IRoomFactory rf = new RoomFactory();

            IRoom[] rooms = new IRoom[size * size];

            for (int i = 0; i < rooms.Length; i++)
            {
                rooms[i] = rf.Create(RoomType.Marsh);
            }
            return(new VerySimpleMaze(size, rooms, 0, rooms.Length - 1));
        }