static RoomRegistry() { RoomInfo[] infos = { // Secret RoomInfo.New <SecretMachineRoom>(1f), RoomInfo.New <SecretChasmRoom>(1f), RoomInfo.New <SecretItemRoom>(1f), RoomInfo.New <GrannySecretRoom>(0.01f), RoomInfo.New <SecretChestRoom>(1f), RoomInfo.New <SecretScourgeRoom>(0.3f), RoomInfo.New <BirdSecretRoom>(0.01f), RoomInfo.New <SecretEmeraldGolemRoom>(0.3f), // Regular RoomInfo.New <RegularRoom>(WallRegistry.Instance.Size), RoomInfo.New <VerticalRegularRoom>(WallRegistry.Instance.Size), RoomInfo.New <ItemTrollRoom>(0.2f), // Desert only room designs RoomInfo.New <PlatformLineRoom>(4f, Biome.Desert), RoomInfo.New <TwoSidesRoom>(4f, Biome.Desert), RoomInfo.New <PlatformRingRoom>(4f, Biome.Desert), // RoomInfo.New<PlatformChaosRoom>(1f + 100f, Biome.Desert), // Entrance RoomInfo.New <EntranceRoom>(1f), // Exit RoomInfo.Typed <EntranceRoom>(RoomType.Exit, 1f), // Treasure RoomInfo.New <HoleTreasureRoom>(1f), // 4 stands RoomInfo.New <PlatformTreasureRoom>(0.8f), // 2-4 stands RoomInfo.New <PadTreasureRoom>(2f), // 4 stands RoomInfo.New <TwoDiagonalTreasureRoom>(0.5f), // 2 stands RoomInfo.New <AcrossTreasureRoom>(3f), // 2-5 stands // Trap RoomInfo.New <RollingSpikesRoom>(1f), RoomInfo.New <SpikePassageRoom>(1f), RoomInfo.New <TurretTrapRoom>(1f), RoomInfo.New <SpikeMazeRoom>(1f), RoomInfo.New <DangerousPadsRoom>(1f), RoomInfo.New <TurretPassageRoom>(1f), RoomInfo.New <VerticalTurretPassageRoom>(1f), RoomInfo.New <CrossTurretPassageRoom>(1f), RoomInfo.New <FollowingSpikeBallRoom>(1f), // Shop RoomInfo.New <ShopRoom>(1f), // Sub shop RoomInfo.New <ProtoShopRoom>(0.2f), RoomInfo.New <StorageRoom>(1f), RoomInfo.New <SnekShopRoom>(1f, () => GlobalSave.IsTrue(ShopNpc.Snek)), RoomInfo.New <VampireShopRoom>(1f, () => GlobalSave.IsTrue(ShopNpc.Vampire)), // Connection RoomInfo.New <CabbadgeConnectionRoom>(0.05f), RoomInfo.New <TunnelRoom>(4f), RoomInfo.New <ComplexTunnelRoom>(1f), RoomInfo.New <MazeConnectionRoom>(0.2f), RoomInfo.New <RingConnectionRoom>(1f), RoomInfo.New <IntersectionConnectionRoom>(0.5f), RoomInfo.New <HoleConnectionRoom>(0.3f), // Special RoomInfo.New <IdolTrapRoom>(1f), RoomInfo.New <HeartRoom>(4f, Biome.Desert, Biome.Ice, Biome.Library), RoomInfo.New <SafeRoom>(1f), RoomInfo.New <ChargerRoom>(1f), RoomInfo.New <ChestMinigameRoom>(1f), RoomInfo.New <VendingRoom>(1f), RoomInfo.New <ChestStatueRoom>(0.8f), RoomInfo.New <FountainRoom>(1f), RoomInfo.New <DiceStatueRoom>(1f), RoomInfo.New <ScourgeStatueRoom>(0.5f), RoomInfo.New <StoneStatueRoom>(1f), RoomInfo.New <SwordStatueRoom>(1f), RoomInfo.New <WarriorStatueRoom>(1f), RoomInfo.New <WellRoom>(0.3f), RoomInfo.New <ProtoChestRoom>(0.1f), RoomInfo.New <RogerShopRoom>(1f, () => Run.Loop == 0 && GlobalSave.IsTrue(ShopNpc.Roger)), RoomInfo.New <BoxyShopRoom>(1f, () => Run.Loop == 0 && GlobalSave.IsTrue(ShopNpc.Boxy)), RoomInfo.New <TrashGoblinRoom>(1f), RoomInfo.New <DuckRoom>(1f, () => Run.Loop == 0 && GlobalSave.IsTrue(ShopNpc.Duck)), RoomInfo.New <NurseRoom>(1f, () => GlobalSave.IsTrue(ShopNpc.Nurse)), RoomInfo.New <ElonRoom>(1f, () => GlobalSave.IsTrue(ShopNpc.Elon)), RoomInfo.New <GobettaShopRoom>(1f, () => Run.Loop == 0 && GlobalSave.IsTrue(ShopNpc.Gobetta)), RoomInfo.New <SnekRoom>(1f, () => Run.Loop == 0 && GlobalSave.IsTrue(ShopNpc.Snek)), RoomInfo.New <VampireRoom>(1f, () => Run.Loop == 0 && GlobalSave.IsTrue(ShopNpc.Vampire)), // Boss RoomInfo.New <CollumnsBossRoom>(1f, Biome.Castle), RoomInfo.New <BossRoom>(1f, Biome.Jungle, Biome.Ice, Biome.Library, Biome.Tech), RoomInfo.New <ChasmBossRoom>(1f, Biome.Desert), // Granny RoomInfo.New <GrannyRoom>(1f), // Old Man RoomInfo.New <OldManRoom>(1f), }; foreach (var info in infos) { Add(info); } }
public static void Remove(RoomInfo info) { All.Remove(info); ByType[info.Type].Remove(info); }