Пример #1
0
        public static List <string> Mod_RoomList; // this will contain all of our mods rooms.
        public static void InitCustomRooms()
        {
            try {
                Mod_RoomList = new List <string>()
                {
                    "FloorHat_HoleRoom.room",
                    "FloorHat_EmptyCircle.room"
                };
                PriestRoom = RoomFactory2.BuildFromResource2("CakeMod/Resources/ModRooms/BishopRoom.room");

                Mod_Entrance_Room          = RoomFactory2.BuildFromResource2("CakeMod/Resources/ModRooms/FloorHat_Entrance.room"); // these to need to be set up just like how you would get an item sprite
                Mod_Exit_Room              = RoomFactory2.BuildFromResource2("CakeMod/Resources/ModRooms/FloorHat_Exit.room");
                Mod_Entrance_Room.category = PrototypeDungeonRoom.RoomCategory.ENTRANCE;

                List <PrototypeDungeonRoom> m_floorNameRooms = new List <PrototypeDungeonRoom>();



                List <PrototypeDungeonRoom> m_floorNameRooms2 = new List <PrototypeDungeonRoom>();

                foreach (string name in Mod_RoomList)
                {
                    PrototypeDungeonRoom m_room = RoomFactory2.BuildFromResource2("CakeMod/Resources/ModRooms/" + name);
                    m_floorNameRooms2.Add(m_room);
                }

                Mod_Rooms = m_floorNameRooms.ToArray();

                foreach (PrototypeDungeonRoom room in m_floorNameRooms2)
                {
                    ModPrefabs.FloorNameRoomTable.includedRooms.elements.Add(GenerateWeightedRoom(room, 1));
                }

                Mod_Boss                    = RoomFactory2.BuildFromResource2("CakeMod/Resources/ModRooms/FloorHat_BossRoom.room");
                Mod_Boss.category           = PrototypeDungeonRoom.RoomCategory.BOSS;
                Mod_Boss.subCategoryBoss    = PrototypeDungeonRoom.RoomBossSubCategory.FLOOR_BOSS;
                Mod_Boss.subCategoryNormal  = PrototypeDungeonRoom.RoomNormalSubCategory.COMBAT;
                Mod_Boss.subCategorySpecial = PrototypeDungeonRoom.RoomSpecialSubCategory.STANDARD_SHOP;
                Mod_Boss.subCategorySecret  = PrototypeDungeonRoom.RoomSecretSubCategory.UNSPECIFIED_SECRET;
                Mod_Boss.roomEvents         = new List <RoomEventDefinition>()
                {
                    new RoomEventDefinition(RoomEventTriggerCondition.ON_ENTER_WITH_ENEMIES, RoomEventTriggerAction.SEAL_ROOM),
                    new RoomEventDefinition(RoomEventTriggerCondition.ON_ENEMIES_CLEARED, RoomEventTriggerAction.UNSEAL_ROOM),
                };
                Mod_Boss.associatedMinimapIcon    = ModPrefabs.doublebeholsterroom01.associatedMinimapIcon;
                Mod_Boss.usesProceduralLighting   = false;
                Mod_Boss.usesProceduralDecoration = false;
                Mod_Boss.rewardChestSpawnPosition = new IntVector2(25, 20); //Where the reward pedestal spawns, should be changed based on room size
                Mod_Boss.overriddenTilesets       = GlobalDungeonData.ValidTilesets.CATHEDRALGEON;

                foreach (PrototypeRoomExit exit in Mod_Boss.exitData.exits)
                {
                    exit.exitType = PrototypeRoomExit.ExitType.ENTRANCE_ONLY;
                }
                RoomBuilder.AddExitToRoom(Mod_Boss, new Vector2(26, 37), DungeonData.Direction.NORTH, PrototypeRoomExit.ExitType.EXIT_ONLY, PrototypeRoomExit.ExitGroup.B);
            }
            catch (Exception e)
            {
                Tools.Print(e);
            }
        }