public static DungeonFlow TEST_West_Floor_03a_Flow() { DungeonFlow m_CachedFlow = ScriptableObject.CreateInstance <DungeonFlow>(); DungeonFlowSubtypeRestriction TestSubTypeRestriction = new DungeonFlowSubtypeRestriction() { baseCategoryRestriction = PrototypeDungeonRoom.RoomCategory.NORMAL, normalSubcategoryRestriction = PrototypeDungeonRoom.RoomNormalSubCategory.TRAP, bossSubcategoryRestriction = PrototypeDungeonRoom.RoomBossSubCategory.FLOOR_BOSS, specialSubcategoryRestriction = PrototypeDungeonRoom.RoomSpecialSubCategory.UNSPECIFIED_SPECIAL, secretSubcategoryRestriction = PrototypeDungeonRoom.RoomSecretSubCategory.UNSPECIFIED_SECRET, maximumRoomsOfSubtype = 1 }; DungeonFlowNode TestNode_00 = new DungeonFlowNode(m_CachedFlow) { isSubchainStandin = false, nodeType = DungeonFlowNode.ControlNodeType.ROOM, roomCategory = PrototypeDungeonRoom.RoomCategory.CONNECTOR, percentChance = 1f, priority = DungeonFlowNode.NodePriority.MANDATORY, overrideExactRoom = ExpandPrefabs.elevator_entrance, capSubchain = false, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = DungeonFlowNode.ForcedDoorType.NONE, loopForcedDoorType = DungeonFlowNode.ForcedDoorType.NONE, nodeExpands = false, initialChainPrototype = "n", minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, subchainIdentifiers = new List <string>(0), chainRules = new List <ChainRule>(0), flow = m_CachedFlow, childNodeGuids = new List <string>() { "5160f844-ff79-4d19-b813-38496a344e8e" }, loopTargetIsOneWay = false, guidAsString = "d9be71d3-8d97-48af-8eda-54aa897862be" }; DungeonFlowNode TestNode_01 = new DungeonFlowNode(m_CachedFlow) { isSubchainStandin = false, nodeType = DungeonFlowNode.ControlNodeType.ROOM, roomCategory = PrototypeDungeonRoom.RoomCategory.CONNECTOR, percentChance = 1f, priority = DungeonFlowNode.NodePriority.MANDATORY, overrideExactRoom = ExpandPrefabs.boss_foyer, capSubchain = false, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = DungeonFlowNode.ForcedDoorType.NONE, loopForcedDoorType = DungeonFlowNode.ForcedDoorType.NONE, nodeExpands = false, initialChainPrototype = "n", minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, subchainIdentifiers = new List <string>(0), chainRules = new List <ChainRule>(0), flow = m_CachedFlow, parentNodeGuid = "bd36ddc7-e687-4355-a69b-e799c9d857de", childNodeGuids = new List <string>() { "a0098d24-7733-4baf-82c0-11ce3e068261" }, loopTargetIsOneWay = false, guidAsString = "036aafaf-a754-4410-94c5-2c4e5139a5bf" }; DungeonFlowNode TestNode_02 = new DungeonFlowNode(m_CachedFlow) { isSubchainStandin = false, nodeType = DungeonFlowNode.ControlNodeType.ROOM, roomCategory = PrototypeDungeonRoom.RoomCategory.CONNECTOR, percentChance = 1f, priority = DungeonFlowNode.NodePriority.MANDATORY, overrideExactRoom = ExpandPrefabs.oldbulletking_room_01, capSubchain = false, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = DungeonFlowNode.ForcedDoorType.NONE, loopForcedDoorType = DungeonFlowNode.ForcedDoorType.NONE, nodeExpands = false, initialChainPrototype = "n", minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, subchainIdentifiers = new List <string>(0), chainRules = new List <ChainRule>(0), flow = m_CachedFlow, parentNodeGuid = "036aafaf-a754-4410-94c5-2c4e5139a5bf", childNodeGuids = new List <string>() { "f06e0430-437a-481e-9b34-604d145cc77d" }, loopTargetIsOneWay = false, guidAsString = "a0098d24-7733-4baf-82c0-11ce3e068261" }; DungeonFlowNode TestNode_03 = new DungeonFlowNode(m_CachedFlow) { isSubchainStandin = false, nodeType = DungeonFlowNode.ControlNodeType.ROOM, roomCategory = PrototypeDungeonRoom.RoomCategory.CONNECTOR, percentChance = 1f, priority = DungeonFlowNode.NodePriority.MANDATORY, overrideExactRoom = ExpandPrefabs.exit_room_basic, capSubchain = false, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = DungeonFlowNode.ForcedDoorType.NONE, loopForcedDoorType = DungeonFlowNode.ForcedDoorType.NONE, nodeExpands = false, initialChainPrototype = "n", minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, subchainIdentifiers = new List <string>(0), chainRules = new List <ChainRule>(0), flow = m_CachedFlow, parentNodeGuid = "a0098d24-7733-4baf-82c0-11ce3e068261", childNodeGuids = new List <string>(0), loopTargetIsOneWay = false, guidAsString = "f06e0430-437a-481e-9b34-604d145cc77d" }; DungeonFlowNode TestNode_04 = new DungeonFlowNode(m_CachedFlow) { isSubchainStandin = false, nodeType = DungeonFlowNode.ControlNodeType.ROOM, roomCategory = PrototypeDungeonRoom.RoomCategory.NORMAL, percentChance = 1f, priority = DungeonFlowNode.NodePriority.MANDATORY, capSubchain = false, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = DungeonFlowNode.ForcedDoorType.NONE, loopForcedDoorType = DungeonFlowNode.ForcedDoorType.NONE, nodeExpands = false, initialChainPrototype = "n", minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, subchainIdentifiers = new List <string>(0), chainRules = new List <ChainRule>(0), flow = m_CachedFlow, parentNodeGuid = "d9be71d3-8d97-48af-8eda-54aa897862be", childNodeGuids = new List <string>() { "0c8ee6c4-31b4-4226-9ddb-90c7eca8f2d3" }, loopTargetIsOneWay = false, guidAsString = "5160f844-ff79-4d19-b813-38496a344e8e" }; DungeonFlowNode TestNode_05 = new DungeonFlowNode(m_CachedFlow) { isSubchainStandin = false, nodeType = DungeonFlowNode.ControlNodeType.ROOM, roomCategory = PrototypeDungeonRoom.RoomCategory.NORMAL, percentChance = 1f, priority = DungeonFlowNode.NodePriority.MANDATORY, capSubchain = false, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = DungeonFlowNode.ForcedDoorType.NONE, loopForcedDoorType = DungeonFlowNode.ForcedDoorType.NONE, nodeExpands = false, initialChainPrototype = "n", minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, subchainIdentifiers = new List <string>(0), chainRules = new List <ChainRule>(0), flow = m_CachedFlow, parentNodeGuid = "5160f844-ff79-4d19-b813-38496a344e8e", childNodeGuids = new List <string>() { "2439b6f0-b59e-4b46-8521-3195d72748f7" }, loopTargetIsOneWay = false, guidAsString = "0c8ee6c4-31b4-4226-9ddb-90c7eca8f2d3" }; DungeonFlowNode TestNode_06 = new DungeonFlowNode(m_CachedFlow) { isSubchainStandin = false, nodeType = DungeonFlowNode.ControlNodeType.ROOM, roomCategory = PrototypeDungeonRoom.RoomCategory.CONNECTOR, percentChance = 1f, priority = DungeonFlowNode.NodePriority.MANDATORY, capSubchain = false, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = DungeonFlowNode.ForcedDoorType.NONE, loopForcedDoorType = DungeonFlowNode.ForcedDoorType.NONE, nodeExpands = false, initialChainPrototype = "n", minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, subchainIdentifiers = new List <string>(0), chainRules = new List <ChainRule>(0), flow = m_CachedFlow, parentNodeGuid = "2439b6f0-b59e-4b46-8521-3195d72748f7", childNodeGuids = new List <string>() { "989ad791-cfc8-4f4e-afc6-fd9512a789b7" }, loopTargetIsOneWay = false, guidAsString = "a919a262-edf3-47e7-aae9-0eb77fa49262" }; DungeonFlowNode TestNode_07 = new DungeonFlowNode(m_CachedFlow) { isSubchainStandin = false, nodeType = DungeonFlowNode.ControlNodeType.ROOM, roomCategory = PrototypeDungeonRoom.RoomCategory.NORMAL, percentChance = 1f, priority = DungeonFlowNode.NodePriority.MANDATORY, capSubchain = false, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = DungeonFlowNode.ForcedDoorType.NONE, loopForcedDoorType = DungeonFlowNode.ForcedDoorType.NONE, nodeExpands = false, initialChainPrototype = "n", minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, subchainIdentifiers = new List <string>(0), chainRules = new List <ChainRule>(0), flow = m_CachedFlow, parentNodeGuid = "919a262-edf3-47e7-aae9-0eb77fa49262", childNodeGuids = new List <string>() { "b1da2e8a-afeb-41cc-8840-be1c46aa4401", "3a6325a4-d2c0-4b93-a82e-7f09b007e190" }, loopTargetIsOneWay = false, guidAsString = "989ad791-cfc8-4f4e-afc6-fd9512a789b7" }; DungeonFlowNode TestNode_08 = new DungeonFlowNode(m_CachedFlow) { isSubchainStandin = false, nodeType = DungeonFlowNode.ControlNodeType.ROOM, roomCategory = PrototypeDungeonRoom.RoomCategory.CONNECTOR, percentChance = 1f, priority = DungeonFlowNode.NodePriority.MANDATORY, capSubchain = false, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = DungeonFlowNode.ForcedDoorType.NONE, loopForcedDoorType = DungeonFlowNode.ForcedDoorType.NONE, nodeExpands = false, initialChainPrototype = "n", minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, subchainIdentifiers = new List <string>(0), chainRules = new List <ChainRule>(0), flow = m_CachedFlow, parentNodeGuid = "8267eaa8-ed7f-403b-97a6-421d15a21ef3", childNodeGuids = new List <string>() { "3956174b-a5ee-4716-b021-889db041a070" }, loopTargetIsOneWay = false, guidAsString = "8b4c640e-b835-4a6b-9326-7b11d856fcde" }; DungeonFlowNode TestNode_09 = new DungeonFlowNode(m_CachedFlow) { isSubchainStandin = false, nodeType = DungeonFlowNode.ControlNodeType.ROOM, roomCategory = PrototypeDungeonRoom.RoomCategory.NORMAL, percentChance = 1f, priority = DungeonFlowNode.NodePriority.MANDATORY, capSubchain = false, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = DungeonFlowNode.ForcedDoorType.NONE, loopForcedDoorType = DungeonFlowNode.ForcedDoorType.NONE, nodeExpands = false, initialChainPrototype = "n", minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, subchainIdentifiers = new List <string>(0), chainRules = new List <ChainRule>(0), flow = m_CachedFlow, parentNodeGuid = "8b4c640e-b835-4a6b-9326-7b11d856fcde", childNodeGuids = new List <string>() { "bd36ddc7-e687-4355-a69b-e799c9d857de", "31a9f731-24ba-49dd-9086-2f01cb3fcb1d" }, loopTargetIsOneWay = false, guidAsString = "3956174b-a5ee-4716-b021-889db041a070" }; DungeonFlowNode TestNode_10 = new DungeonFlowNode(m_CachedFlow) { isSubchainStandin = false, nodeType = DungeonFlowNode.ControlNodeType.ROOM, roomCategory = PrototypeDungeonRoom.RoomCategory.NORMAL, percentChance = 1f, priority = DungeonFlowNode.NodePriority.MANDATORY, capSubchain = false, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = DungeonFlowNode.ForcedDoorType.NONE, loopForcedDoorType = DungeonFlowNode.ForcedDoorType.NONE, nodeExpands = false, initialChainPrototype = "n", minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, subchainIdentifiers = new List <string>(0), chainRules = new List <ChainRule>(0), flow = m_CachedFlow, parentNodeGuid = "3956174b-a5ee-4716-b021-889db041a070", childNodeGuids = new List <string>() { "036aafaf-a754-4410-94c5-2c4e5139a5bf", "17f291e0-37c3-4d03-ba6a-b5b534256c07" }, loopTargetIsOneWay = false, guidAsString = "bd36ddc7-e687-4355-a69b-e799c9d857de" }; DungeonFlowNode TestNode_11 = new DungeonFlowNode(m_CachedFlow) { isSubchainStandin = false, nodeType = DungeonFlowNode.ControlNodeType.ROOM, roomCategory = PrototypeDungeonRoom.RoomCategory.NORMAL, percentChance = 1f, priority = DungeonFlowNode.NodePriority.MANDATORY, capSubchain = false, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = DungeonFlowNode.ForcedDoorType.NONE, loopForcedDoorType = DungeonFlowNode.ForcedDoorType.NONE, nodeExpands = false, initialChainPrototype = "n", minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, subchainIdentifiers = new List <string>(0), chainRules = new List <ChainRule>(0), flow = m_CachedFlow, parentNodeGuid = "0c8ee6c4-31b4-4226-9ddb-90c7eca8f2d3", childNodeGuids = new List <string>() { "dc3ba41b-dc99-42d3-ab9b-088991bc1741", "a919a262-edf3-47e7-aae9-0eb77fa49262" }, loopTargetIsOneWay = false, guidAsString = "2439b6f0-b59e-4b46-8521-3195d72748f7" }; DungeonFlowNode TestNode_12 = new DungeonFlowNode(m_CachedFlow) { isSubchainStandin = false, nodeType = DungeonFlowNode.ControlNodeType.ROOM, roomCategory = PrototypeDungeonRoom.RoomCategory.CONNECTOR, percentChance = 1f, priority = DungeonFlowNode.NodePriority.MANDATORY, overrideExactRoom = ExpandPrefabs.gungeon_rewardroom_1, capSubchain = false, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = DungeonFlowNode.ForcedDoorType.NONE, loopForcedDoorType = DungeonFlowNode.ForcedDoorType.NONE, nodeExpands = false, initialChainPrototype = "n", minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, subchainIdentifiers = new List <string>(0), chainRules = new List <ChainRule>(0), flow = m_CachedFlow, parentNodeGuid = "2439b6f0-b59e-4b46-8521-3195d72748f7", childNodeGuids = new List <string>() { "55ebfb7d-b617-4da1-853c-209d3bd36f8e" }, loopTargetIsOneWay = false, guidAsString = "dc3ba41b-dc99-42d3-ab9b-088991bc1741" }; DungeonFlowNode TestNode_13 = new DungeonFlowNode(m_CachedFlow) { isSubchainStandin = false, nodeType = DungeonFlowNode.ControlNodeType.ROOM, roomCategory = PrototypeDungeonRoom.RoomCategory.NORMAL, percentChance = 1f, priority = DungeonFlowNode.NodePriority.MANDATORY, capSubchain = false, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = DungeonFlowNode.ForcedDoorType.NONE, loopForcedDoorType = DungeonFlowNode.ForcedDoorType.NONE, nodeExpands = false, initialChainPrototype = "n", minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, subchainIdentifiers = new List <string>(0), chainRules = new List <ChainRule>(0), flow = m_CachedFlow, parentNodeGuid = "dc3ba41b-dc99-42d3-ab9b-088991bc1741", childNodeGuids = new List <string>(0), loopTargetNodeGuid = "0c8ee6c4-31b4-4226-9ddb-90c7eca8f2d3", loopTargetIsOneWay = false, guidAsString = "55ebfb7d-b617-4da1-853c-209d3bd36f8e" }; DungeonFlowNode TestNode_14 = new DungeonFlowNode(m_CachedFlow) { isSubchainStandin = false, nodeType = DungeonFlowNode.ControlNodeType.ROOM, roomCategory = PrototypeDungeonRoom.RoomCategory.NORMAL, percentChance = 1f, priority = DungeonFlowNode.NodePriority.MANDATORY, capSubchain = false, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = DungeonFlowNode.ForcedDoorType.NONE, loopForcedDoorType = DungeonFlowNode.ForcedDoorType.NONE, nodeExpands = false, initialChainPrototype = "n", minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, subchainIdentifiers = new List <string>(0), chainRules = new List <ChainRule>(0), flow = m_CachedFlow, parentNodeGuid = "8267eaa8-ed7f-403b-97a6-421d15a21ef3", childNodeGuids = new List <string>() { "44fc3013-6fa2-4436-a0db-1d3b99484703" }, loopTargetIsOneWay = false, guidAsString = "0fbff154-f8cb-4367-a11f-16f5dd56fe4f" }; DungeonFlowNode TestNode_15 = new DungeonFlowNode(m_CachedFlow) { isSubchainStandin = false, nodeType = DungeonFlowNode.ControlNodeType.ROOM, roomCategory = PrototypeDungeonRoom.RoomCategory.NORMAL, percentChance = 1f, priority = DungeonFlowNode.NodePriority.MANDATORY, capSubchain = false, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = DungeonFlowNode.ForcedDoorType.NONE, loopForcedDoorType = DungeonFlowNode.ForcedDoorType.NONE, nodeExpands = false, initialChainPrototype = "n", minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, subchainIdentifiers = new List <string>(0), chainRules = new List <ChainRule>(0), flow = m_CachedFlow, parentNodeGuid = "989ad791-cfc8-4f4e-afc6-fd9512a789b7", childNodeGuids = new List <string>() { "8267eaa8-ed7f-403b-97a6-421d15a21ef3" }, loopTargetIsOneWay = false, guidAsString = "b1da2e8a-afeb-41cc-8840-be1c46aa4401" }; DungeonFlowNode TestNode_16 = new DungeonFlowNode(m_CachedFlow) { isSubchainStandin = false, nodeType = DungeonFlowNode.ControlNodeType.ROOM, roomCategory = PrototypeDungeonRoom.RoomCategory.CONNECTOR, percentChance = 1f, priority = DungeonFlowNode.NodePriority.MANDATORY, overrideExactRoom = ExpandPrefabs.shop02, capSubchain = false, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = DungeonFlowNode.ForcedDoorType.NONE, loopForcedDoorType = DungeonFlowNode.ForcedDoorType.NONE, nodeExpands = false, initialChainPrototype = "n", minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, subchainIdentifiers = new List <string>(0), chainRules = new List <ChainRule>(0), flow = m_CachedFlow, parentNodeGuid = "0fbff154-f8cb-4367-a11f-16f5dd56fe4f", childNodeGuids = new List <string>(0), loopTargetIsOneWay = false, guidAsString = "44fc3013-6fa2-4436-a0db-1d3b99484703" }; DungeonFlowNode TestNode_17 = new DungeonFlowNode(m_CachedFlow) { isSubchainStandin = false, nodeType = DungeonFlowNode.ControlNodeType.ROOM, roomCategory = PrototypeDungeonRoom.RoomCategory.NORMAL, percentChance = 1f, priority = DungeonFlowNode.NodePriority.MANDATORY, capSubchain = false, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = DungeonFlowNode.ForcedDoorType.NONE, loopForcedDoorType = DungeonFlowNode.ForcedDoorType.NONE, nodeExpands = false, initialChainPrototype = "n", minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, subchainIdentifiers = new List <string>(0), chainRules = new List <ChainRule>(0), flow = m_CachedFlow, parentNodeGuid = "bd36ddc7-e687-4355-a69b-e799c9d857de", childNodeGuids = new List <string>() { "56753489-2944-42ed-8c1f-c0daa03417b0" }, loopTargetIsOneWay = false, guidAsString = "17f291e0-37c3-4d03-ba6a-b5b534256c07" }; DungeonFlowNode TestNode_18 = new DungeonFlowNode(m_CachedFlow) { isSubchainStandin = false, nodeType = DungeonFlowNode.ControlNodeType.ROOM, roomCategory = PrototypeDungeonRoom.RoomCategory.NORMAL, percentChance = 1f, priority = DungeonFlowNode.NodePriority.MANDATORY, capSubchain = false, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = DungeonFlowNode.ForcedDoorType.NONE, loopForcedDoorType = DungeonFlowNode.ForcedDoorType.NONE, nodeExpands = false, initialChainPrototype = "n", minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, subchainIdentifiers = new List <string>(0), chainRules = new List <ChainRule>(0), flow = m_CachedFlow, parentNodeGuid = "17f291e0-37c3-4d03-ba6a-b5b534256c07", childNodeGuids = new List <string>() { "1d489c84-f1b5-431d-bdf3-e61e74cd7f15", "3e0b1ce9-3862-4041-bfa9-bb82474e567a" }, loopTargetIsOneWay = false, guidAsString = "56753489-2944-42ed-8c1f-c0daa03417b0" }; DungeonFlowNode TestNode_19 = new DungeonFlowNode(m_CachedFlow) { isSubchainStandin = false, nodeType = DungeonFlowNode.ControlNodeType.ROOM, roomCategory = PrototypeDungeonRoom.RoomCategory.NORMAL, percentChance = 1f, priority = DungeonFlowNode.NodePriority.MANDATORY, capSubchain = false, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = DungeonFlowNode.ForcedDoorType.NONE, loopForcedDoorType = DungeonFlowNode.ForcedDoorType.NONE, nodeExpands = false, initialChainPrototype = "n", minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, subchainIdentifiers = new List <string>(0), chainRules = new List <ChainRule>(0), flow = m_CachedFlow, parentNodeGuid = "56753489-2944-42ed-8c1f-c0daa03417b0", childNodeGuids = new List <string>() { "9fc6fab9-fe0f-458c-b1a4-e69077243acc" }, loopTargetIsOneWay = false, guidAsString = "1d489c84-f1b5-431d-bdf3-e61e74cd7f15" }; DungeonFlowNode TestNode_20 = new DungeonFlowNode(m_CachedFlow) { isSubchainStandin = false, nodeType = DungeonFlowNode.ControlNodeType.ROOM, roomCategory = PrototypeDungeonRoom.RoomCategory.CONNECTOR, percentChance = 1f, priority = DungeonFlowNode.NodePriority.MANDATORY, overrideExactRoom = ExpandPrefabs.gungeon_rewardroom_1, capSubchain = false, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = DungeonFlowNode.ForcedDoorType.NONE, loopForcedDoorType = DungeonFlowNode.ForcedDoorType.NONE, nodeExpands = false, initialChainPrototype = "n", minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, subchainIdentifiers = new List <string>(0), chainRules = new List <ChainRule>(0), flow = m_CachedFlow, parentNodeGuid = "1d489c84-f1b5-431d-bdf3-e61e74cd7f15", loopTargetNodeGuid = "bd36ddc7-e687-4355-a69b-e799c9d857de", loopTargetIsOneWay = true, guidAsString = "9fc6fab9-fe0f-458c-b1a4-e69077243acc" }; DungeonFlowNode TestNode_21 = new DungeonFlowNode(m_CachedFlow) { isSubchainStandin = false, nodeType = DungeonFlowNode.ControlNodeType.ROOM, roomCategory = PrototypeDungeonRoom.RoomCategory.HUB, percentChance = 1f, priority = DungeonFlowNode.NodePriority.MANDATORY, capSubchain = false, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = DungeonFlowNode.ForcedDoorType.NONE, loopForcedDoorType = DungeonFlowNode.ForcedDoorType.NONE, nodeExpands = false, initialChainPrototype = "n", minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, subchainIdentifiers = new List <string>(0), chainRules = new List <ChainRule>(0), flow = m_CachedFlow, parentNodeGuid = "b1da2e8a-afeb-41cc-8840-be1c46aa4401", childNodeGuids = new List <string>() { "0fbff154-f8cb-4367-a11f-16f5dd56fe4f", "8b4c640e-b835-4a6b-9326-7b11d856fcde" }, loopTargetIsOneWay = false, guidAsString = "8267eaa8-ed7f-403b-97a6-421d15a21ef3" }; DungeonFlowNode TestNode_22 = new DungeonFlowNode(m_CachedFlow) { isSubchainStandin = false, nodeType = DungeonFlowNode.ControlNodeType.ROOM, roomCategory = PrototypeDungeonRoom.RoomCategory.SECRET, percentChance = 0.196999997f, priority = DungeonFlowNode.NodePriority.OPTIONAL, capSubchain = false, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = DungeonFlowNode.ForcedDoorType.NONE, loopForcedDoorType = DungeonFlowNode.ForcedDoorType.NONE, nodeExpands = false, initialChainPrototype = "n", minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, subchainIdentifiers = new List <string>(0), chainRules = new List <ChainRule>(0), flow = m_CachedFlow, parentNodeGuid = "989ad791-cfc8-4f4e-afc6-fd9512a789b7", childNodeGuids = new List <string>(0), loopTargetIsOneWay = false, guidAsString = "3a6325a4-d2c0-4b93-a82e-7f09b007e190" }; DungeonFlowNode TestNode_23 = new DungeonFlowNode(m_CachedFlow) { isSubchainStandin = false, nodeType = DungeonFlowNode.ControlNodeType.ROOM, roomCategory = PrototypeDungeonRoom.RoomCategory.SECRET, percentChance = 1f, priority = DungeonFlowNode.NodePriority.OPTIONAL, capSubchain = false, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = DungeonFlowNode.ForcedDoorType.NONE, loopForcedDoorType = DungeonFlowNode.ForcedDoorType.NONE, nodeExpands = false, initialChainPrototype = "n", minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, subchainIdentifiers = new List <string>(0), chainRules = new List <ChainRule>(0), flow = m_CachedFlow, parentNodeGuid = "3956174b-a5ee-4716-b021-889db041a070", childNodeGuids = new List <string>(0), loopTargetIsOneWay = false, guidAsString = "31a9f731-24ba-49dd-9086-2f01cb3fcb1d" }; DungeonFlowNode TestNode_24 = new DungeonFlowNode(m_CachedFlow) { isSubchainStandin = false, nodeType = DungeonFlowNode.ControlNodeType.ROOM, roomCategory = PrototypeDungeonRoom.RoomCategory.SECRET, percentChance = 0.291999996f, priority = DungeonFlowNode.NodePriority.OPTIONAL, capSubchain = false, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = DungeonFlowNode.ForcedDoorType.NONE, loopForcedDoorType = DungeonFlowNode.ForcedDoorType.NONE, nodeExpands = false, initialChainPrototype = "n", minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, subchainIdentifiers = new List <string>(0), chainRules = new List <ChainRule>(0), flow = m_CachedFlow, parentNodeGuid = "56753489-2944-42ed-8c1f-c0daa03417b0", childNodeGuids = new List <string>(0), loopTargetIsOneWay = false, guidAsString = "3e0b1ce9-3862-4041-bfa9-bb82474e567a" }; m_CachedFlow.name = "TEST_West_Floor_03a_Flow"; // m_CachedFlow.fallbackRoomTable = CatacombsPrefab.PatternSettings.flows[0].fallbackRoomTable; m_CachedFlow.fallbackRoomTable = ExpandPrefabs.CatacombsRoomTable; m_CachedFlow.subtypeRestrictions = new List <DungeonFlowSubtypeRestriction>() { TestSubTypeRestriction }; m_CachedFlow.flowInjectionData = new List <ProceduralFlowModifierData>(0); m_CachedFlow.sharedInjectionData = new List <SharedInjectionData>(0); m_CachedFlow.Initialize(); m_CachedFlow.AddNodeToFlow(TestNode_00, null); m_CachedFlow.AddNodeToFlow(TestNode_01, TestNode_10); m_CachedFlow.AddNodeToFlow(TestNode_02, TestNode_01); m_CachedFlow.AddNodeToFlow(TestNode_03, TestNode_02); m_CachedFlow.AddNodeToFlow(TestNode_04, TestNode_00); m_CachedFlow.AddNodeToFlow(TestNode_05, TestNode_04); m_CachedFlow.AddNodeToFlow(TestNode_06, TestNode_11); m_CachedFlow.AddNodeToFlow(TestNode_07, TestNode_06); m_CachedFlow.AddNodeToFlow(TestNode_08, TestNode_21); m_CachedFlow.AddNodeToFlow(TestNode_09, TestNode_08); m_CachedFlow.AddNodeToFlow(TestNode_10, TestNode_09); m_CachedFlow.AddNodeToFlow(TestNode_11, TestNode_05); m_CachedFlow.AddNodeToFlow(TestNode_12, TestNode_11); m_CachedFlow.AddNodeToFlow(TestNode_13, TestNode_12); m_CachedFlow.AddNodeToFlow(TestNode_14, TestNode_21); m_CachedFlow.AddNodeToFlow(TestNode_15, TestNode_07); m_CachedFlow.AddNodeToFlow(TestNode_16, TestNode_14); m_CachedFlow.AddNodeToFlow(TestNode_17, TestNode_10); m_CachedFlow.AddNodeToFlow(TestNode_18, TestNode_17); m_CachedFlow.AddNodeToFlow(TestNode_19, TestNode_18); m_CachedFlow.AddNodeToFlow(TestNode_20, TestNode_19); m_CachedFlow.AddNodeToFlow(TestNode_21, TestNode_15); m_CachedFlow.AddNodeToFlow(TestNode_22, TestNode_07); m_CachedFlow.AddNodeToFlow(TestNode_23, TestNode_09); m_CachedFlow.AddNodeToFlow(TestNode_24, TestNode_18); m_CachedFlow.LoopConnectNodes(TestNode_13, TestNode_05); m_CachedFlow.LoopConnectNodes(TestNode_20, TestNode_10); m_CachedFlow.FirstNode = TestNode_00; return(m_CachedFlow); }
public static DungeonFlow Really_Big_Flow() { DungeonFlow m_CachedFlow = ScriptableObject.CreateInstance <DungeonFlow>(); DungeonFlowSubtypeRestriction TestSubTypeRestriction = new DungeonFlowSubtypeRestriction() { baseCategoryRestriction = PrototypeDungeonRoom.RoomCategory.NORMAL, normalSubcategoryRestriction = PrototypeDungeonRoom.RoomNormalSubCategory.TRAP, bossSubcategoryRestriction = PrototypeDungeonRoom.RoomBossSubCategory.FLOOR_BOSS, specialSubcategoryRestriction = PrototypeDungeonRoom.RoomSpecialSubCategory.UNSPECIFIED_SPECIAL, secretSubcategoryRestriction = PrototypeDungeonRoom.RoomSecretSubCategory.UNSPECIFIED_SECRET, maximumRoomsOfSubtype = 1 }; DungeonFlowNode EntranceNode = new DungeonFlowNode(m_CachedFlow) { isSubchainStandin = false, nodeType = DungeonFlowNode.ControlNodeType.ROOM, roomCategory = PrototypeDungeonRoom.RoomCategory.ENTRANCE, percentChance = 1f, priority = DungeonFlowNode.NodePriority.MANDATORY, overrideExactRoom = ExpandPrefabs.big_entrance, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List <string>(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = DungeonFlowNode.ForcedDoorType.NONE, loopForcedDoorType = DungeonFlowNode.ForcedDoorType.NONE, nodeExpands = false, initialChainPrototype = "n", chainRules = new List <ChainRule>(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List <string>(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = Guid.NewGuid().ToString(), }; DungeonFlowNode BossFoyerNode = new DungeonFlowNode(m_CachedFlow) { isSubchainStandin = false, nodeType = DungeonFlowNode.ControlNodeType.ROOM, roomCategory = PrototypeDungeonRoom.RoomCategory.CONNECTOR, percentChance = 1f, priority = DungeonFlowNode.NodePriority.MANDATORY, overrideExactRoom = ExpandPrefabs.DragunBossFoyerRoom, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List <string>(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = DungeonFlowNode.ForcedDoorType.NONE, loopForcedDoorType = DungeonFlowNode.ForcedDoorType.NONE, nodeExpands = false, initialChainPrototype = "n", chainRules = new List <ChainRule>(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List <string>(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = Guid.NewGuid().ToString(), }; DungeonFlowNode BossNode = new DungeonFlowNode(m_CachedFlow) { isSubchainStandin = false, nodeType = DungeonFlowNode.ControlNodeType.ROOM, roomCategory = PrototypeDungeonRoom.RoomCategory.BOSS, percentChance = 1f, priority = DungeonFlowNode.NodePriority.MANDATORY, overrideExactRoom = ExpandPrefabs.DraGunRoom01, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List <string>(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = DungeonFlowNode.ForcedDoorType.NONE, loopForcedDoorType = DungeonFlowNode.ForcedDoorType.NONE, nodeExpands = false, initialChainPrototype = "n", chainRules = new List <ChainRule>(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List <string>(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = Guid.NewGuid().ToString(), }; DungeonFlowNode BossExitNode = new DungeonFlowNode(m_CachedFlow) { isSubchainStandin = false, nodeType = DungeonFlowNode.ControlNodeType.ROOM, roomCategory = PrototypeDungeonRoom.RoomCategory.EXIT, percentChance = 1f, priority = DungeonFlowNode.NodePriority.MANDATORY, overrideExactRoom = ExpandPrefabs.DraGunExitRoom, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List <string>(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = DungeonFlowNode.ForcedDoorType.NONE, loopForcedDoorType = DungeonFlowNode.ForcedDoorType.NONE, nodeExpands = false, initialChainPrototype = "n", chainRules = new List <ChainRule>(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List <string>(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = Guid.NewGuid().ToString(), }; DungeonFlowNode BossEndTimesNode = new DungeonFlowNode(m_CachedFlow) { isSubchainStandin = false, nodeType = DungeonFlowNode.ControlNodeType.ROOM, roomCategory = PrototypeDungeonRoom.RoomCategory.EXIT, percentChance = 1f, priority = DungeonFlowNode.NodePriority.MANDATORY, overrideExactRoom = ExpandPrefabs.DraGunEndTimesRoom, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List <string>(0), receivesCaps = false, isWarpWingEntrance = true, handlesOwnWarping = true, forcedDoorType = DungeonFlowNode.ForcedDoorType.NONE, loopForcedDoorType = DungeonFlowNode.ForcedDoorType.NONE, nodeExpands = false, initialChainPrototype = "n", chainRules = new List <ChainRule>(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List <string>(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = Guid.NewGuid().ToString(), }; DungeonFlowNode FirstShopNode = new DungeonFlowNode(m_CachedFlow) { isSubchainStandin = false, nodeType = DungeonFlowNode.ControlNodeType.ROOM, roomCategory = PrototypeDungeonRoom.RoomCategory.CONNECTOR, percentChance = 1f, priority = DungeonFlowNode.NodePriority.MANDATORY, overrideExactRoom = ExpandPrefabs.BlacksmithShop, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List <string>(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = DungeonFlowNode.ForcedDoorType.NONE, loopForcedDoorType = DungeonFlowNode.ForcedDoorType.NONE, nodeExpands = false, initialChainPrototype = "n", chainRules = new List <ChainRule>(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List <string>(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = Guid.NewGuid().ToString(), }; DungeonFlowNode SecondShopNode = new DungeonFlowNode(m_CachedFlow) { isSubchainStandin = false, nodeType = DungeonFlowNode.ControlNodeType.ROOM, roomCategory = PrototypeDungeonRoom.RoomCategory.SPECIAL, percentChance = 1f, priority = DungeonFlowNode.NodePriority.MANDATORY, overrideExactRoom = null, overrideRoomTable = ExpandPrefabs.shop_room_table, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List <string>(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = DungeonFlowNode.ForcedDoorType.NONE, loopForcedDoorType = DungeonFlowNode.ForcedDoorType.NONE, nodeExpands = false, initialChainPrototype = "n", chainRules = new List <ChainRule>(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List <string>(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = Guid.NewGuid().ToString(), }; DungeonFlowNode MiniBossFoyerNode = new DungeonFlowNode(m_CachedFlow) { isSubchainStandin = false, nodeType = DungeonFlowNode.ControlNodeType.ROOM, roomCategory = PrototypeDungeonRoom.RoomCategory.CONNECTOR, percentChance = 1f, priority = DungeonFlowNode.NodePriority.MANDATORY, overrideExactRoom = ExpandPrefabs.DragunBossFoyerRoom, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List <string>(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = DungeonFlowNode.ForcedDoorType.NONE, loopForcedDoorType = DungeonFlowNode.ForcedDoorType.NONE, nodeExpands = false, initialChainPrototype = "n", chainRules = new List <ChainRule>(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List <string>(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = Guid.NewGuid().ToString(), }; DungeonFlowNode FakebossNode = new DungeonFlowNode(m_CachedFlow) { isSubchainStandin = false, nodeType = DungeonFlowNode.ControlNodeType.ROOM, roomCategory = PrototypeDungeonRoom.RoomCategory.CONNECTOR, percentChance = 1f, priority = DungeonFlowNode.NodePriority.MANDATORY, overrideExactRoom = ExpandPrefabs.tutorial_fakeboss, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List <string>(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = DungeonFlowNode.ForcedDoorType.NONE, loopForcedDoorType = DungeonFlowNode.ForcedDoorType.NONE, nodeExpands = false, initialChainPrototype = "n", chainRules = new List <ChainRule>(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List <string>(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = Guid.NewGuid().ToString(), }; List <DungeonFlowNode> ConnectorNodes = new List <DungeonFlowNode>(); List <DungeonFlowNode> NormalNodes = new List <DungeonFlowNode>(); List <DungeonFlowNode> ChestNodes = new List <DungeonFlowNode>(); for (int i = 0; i < 11; i++) { ConnectorNodes.Add(GenerateDefaultNode(m_CachedFlow, PrototypeDungeonRoom.RoomCategory.CONNECTOR)); } for (int i = 0; i < 89; i++) { NormalNodes.Add(GenerateDefaultNode(m_CachedFlow, PrototypeDungeonRoom.RoomCategory.NORMAL)); } ChestNodes.Add(GenerateDefaultNode(m_CachedFlow, PrototypeDungeonRoom.RoomCategory.REWARD, ExpandPrefabs.reward_room)); ChestNodes.Add(GenerateDefaultNode(m_CachedFlow, PrototypeDungeonRoom.RoomCategory.CONNECTOR, ExpandPrefabs.reward_room)); ChestNodes.Add(GenerateDefaultNode(m_CachedFlow, PrototypeDungeonRoom.RoomCategory.CONNECTOR, ExpandPrefabs.reward_room)); ChestNodes.Add(GenerateDefaultNode(m_CachedFlow, PrototypeDungeonRoom.RoomCategory.CONNECTOR, ExpandPrefabs.reward_room)); m_CachedFlow.name = "Really_Big_Flow"; m_CachedFlow.fallbackRoomTable = ExpandPrefabs.CustomRoomTable2; m_CachedFlow.subtypeRestrictions = new List <DungeonFlowSubtypeRestriction>(0); // { TestSubTypeRestriction }; m_CachedFlow.flowInjectionData = new List <ProceduralFlowModifierData>(0); m_CachedFlow.sharedInjectionData = new List <SharedInjectionData>(0); // { ChaosDungeonFlows.BaseSharedInjectionData }; m_CachedFlow.Initialize(); m_CachedFlow.AddNodeToFlow(EntranceNode, null); m_CachedFlow.AddNodeToFlow(ConnectorNodes[10], EntranceNode); m_CachedFlow.AddNodeToFlow(FirstShopNode, ConnectorNodes[10]); m_CachedFlow.AddNodeToFlow(NormalNodes[88], ConnectorNodes[10]); // First chain of 25 nodes starting at 99 and moving down m_CachedFlow.AddNodeToFlow(NormalNodes[87], NormalNodes[88]); m_CachedFlow.AddNodeToFlow(NormalNodes[86], NormalNodes[87]); m_CachedFlow.AddNodeToFlow(NormalNodes[85], NormalNodes[86]); m_CachedFlow.AddNodeToFlow(NormalNodes[84], NormalNodes[85]); m_CachedFlow.AddNodeToFlow(NormalNodes[83], NormalNodes[84]); m_CachedFlow.AddNodeToFlow(NormalNodes[82], NormalNodes[83]); m_CachedFlow.AddNodeToFlow(NormalNodes[81], NormalNodes[82]); m_CachedFlow.AddNodeToFlow(NormalNodes[80], NormalNodes[81]); m_CachedFlow.AddNodeToFlow(NormalNodes[79], NormalNodes[80]); m_CachedFlow.AddNodeToFlow(NormalNodes[78], NormalNodes[79]); m_CachedFlow.AddNodeToFlow(NormalNodes[77], NormalNodes[78]); m_CachedFlow.AddNodeToFlow(NormalNodes[76], NormalNodes[77]); m_CachedFlow.AddNodeToFlow(NormalNodes[75], NormalNodes[76]); // Chest 1 m_CachedFlow.AddNodeToFlow(ChestNodes[0], NormalNodes[75]); //Start of Second Chain ConnectorNodes[9].roomCategory = PrototypeDungeonRoom.RoomCategory.HUB; m_CachedFlow.AddNodeToFlow(ConnectorNodes[9], NormalNodes[75]); m_CachedFlow.AddNodeToFlow(NormalNodes[74], ConnectorNodes[9]); m_CachedFlow.AddNodeToFlow(NormalNodes[73], NormalNodes[74]); m_CachedFlow.AddNodeToFlow(NormalNodes[72], NormalNodes[73]); m_CachedFlow.AddNodeToFlow(NormalNodes[71], NormalNodes[72]); m_CachedFlow.AddNodeToFlow(NormalNodes[70], NormalNodes[71]); m_CachedFlow.AddNodeToFlow(NormalNodes[69], NormalNodes[70]); m_CachedFlow.AddNodeToFlow(NormalNodes[68], NormalNodes[69]); m_CachedFlow.AddNodeToFlow(NormalNodes[67], NormalNodes[68]); m_CachedFlow.AddNodeToFlow(NormalNodes[66], NormalNodes[67]); m_CachedFlow.AddNodeToFlow(NormalNodes[65], NormalNodes[66]); m_CachedFlow.AddNodeToFlow(NormalNodes[64], NormalNodes[65]); m_CachedFlow.AddNodeToFlow(NormalNodes[63], NormalNodes[64]); m_CachedFlow.AddNodeToFlow(NormalNodes[62], NormalNodes[63]); m_CachedFlow.AddNodeToFlow(NormalNodes[61], NormalNodes[62]); m_CachedFlow.AddNodeToFlow(NormalNodes[60], NormalNodes[61]); m_CachedFlow.AddNodeToFlow(NormalNodes[59], NormalNodes[60]); m_CachedFlow.AddNodeToFlow(NormalNodes[58], NormalNodes[59]); m_CachedFlow.AddNodeToFlow(NormalNodes[57], NormalNodes[58]); m_CachedFlow.AddNodeToFlow(NormalNodes[56], NormalNodes[57]); m_CachedFlow.AddNodeToFlow(NormalNodes[55], NormalNodes[56]); m_CachedFlow.AddNodeToFlow(NormalNodes[54], NormalNodes[55]); m_CachedFlow.AddNodeToFlow(NormalNodes[53], NormalNodes[54]); m_CachedFlow.AddNodeToFlow(NormalNodes[52], NormalNodes[53]); m_CachedFlow.AddNodeToFlow(NormalNodes[51], NormalNodes[52]); m_CachedFlow.AddNodeToFlow(NormalNodes[50], NormalNodes[51]); // Chest 2 m_CachedFlow.AddNodeToFlow(ChestNodes[1], NormalNodes[50]); m_CachedFlow.AddNodeToFlow(SecondShopNode, ChestNodes[1]); //Start of Third Chain m_CachedFlow.AddNodeToFlow(NormalNodes[49], ConnectorNodes[9]); m_CachedFlow.AddNodeToFlow(NormalNodes[48], NormalNodes[49]); m_CachedFlow.AddNodeToFlow(NormalNodes[47], NormalNodes[48]); m_CachedFlow.AddNodeToFlow(NormalNodes[46], NormalNodes[47]); m_CachedFlow.AddNodeToFlow(NormalNodes[45], NormalNodes[46]); m_CachedFlow.AddNodeToFlow(NormalNodes[44], NormalNodes[45]); m_CachedFlow.AddNodeToFlow(NormalNodes[43], NormalNodes[44]); m_CachedFlow.AddNodeToFlow(NormalNodes[42], NormalNodes[43]); m_CachedFlow.AddNodeToFlow(NormalNodes[41], NormalNodes[42]); m_CachedFlow.AddNodeToFlow(NormalNodes[40], NormalNodes[41]); m_CachedFlow.AddNodeToFlow(NormalNodes[39], NormalNodes[40]); m_CachedFlow.AddNodeToFlow(NormalNodes[38], NormalNodes[39]); m_CachedFlow.AddNodeToFlow(NormalNodes[37], NormalNodes[38]); m_CachedFlow.AddNodeToFlow(NormalNodes[36], NormalNodes[37]); m_CachedFlow.AddNodeToFlow(NormalNodes[35], NormalNodes[36]); m_CachedFlow.AddNodeToFlow(NormalNodes[34], NormalNodes[35]); m_CachedFlow.AddNodeToFlow(NormalNodes[33], NormalNodes[34]); m_CachedFlow.AddNodeToFlow(NormalNodes[32], NormalNodes[33]); m_CachedFlow.AddNodeToFlow(NormalNodes[31], NormalNodes[32]); m_CachedFlow.AddNodeToFlow(NormalNodes[30], NormalNodes[31]); m_CachedFlow.AddNodeToFlow(NormalNodes[29], NormalNodes[30]); m_CachedFlow.AddNodeToFlow(NormalNodes[28], NormalNodes[29]); m_CachedFlow.AddNodeToFlow(NormalNodes[27], NormalNodes[28]); m_CachedFlow.AddNodeToFlow(NormalNodes[26], NormalNodes[27]); m_CachedFlow.AddNodeToFlow(NormalNodes[25], NormalNodes[26]); // Chest 3 m_CachedFlow.AddNodeToFlow(ChestNodes[2], NormalNodes[25]); m_CachedFlow.AddNodeToFlow(MiniBossFoyerNode, ChestNodes[2]); m_CachedFlow.AddNodeToFlow(FakebossNode, MiniBossFoyerNode); //Start of Fourth Chain m_CachedFlow.AddNodeToFlow(NormalNodes[24], ConnectorNodes[9]); m_CachedFlow.AddNodeToFlow(NormalNodes[23], NormalNodes[24]); m_CachedFlow.AddNodeToFlow(NormalNodes[22], NormalNodes[23]); m_CachedFlow.AddNodeToFlow(NormalNodes[21], NormalNodes[22]); m_CachedFlow.AddNodeToFlow(NormalNodes[20], NormalNodes[21]); m_CachedFlow.AddNodeToFlow(NormalNodes[19], NormalNodes[20]); m_CachedFlow.AddNodeToFlow(NormalNodes[18], NormalNodes[19]); m_CachedFlow.AddNodeToFlow(NormalNodes[17], NormalNodes[18]); m_CachedFlow.AddNodeToFlow(NormalNodes[16], NormalNodes[17]); m_CachedFlow.AddNodeToFlow(NormalNodes[15], NormalNodes[16]); m_CachedFlow.AddNodeToFlow(NormalNodes[14], NormalNodes[15]); m_CachedFlow.AddNodeToFlow(NormalNodes[13], NormalNodes[14]); m_CachedFlow.AddNodeToFlow(NormalNodes[12], NormalNodes[13]); m_CachedFlow.AddNodeToFlow(NormalNodes[11], NormalNodes[12]); m_CachedFlow.AddNodeToFlow(NormalNodes[10], NormalNodes[11]); m_CachedFlow.AddNodeToFlow(NormalNodes[9], NormalNodes[10]); m_CachedFlow.AddNodeToFlow(NormalNodes[8], NormalNodes[9]); m_CachedFlow.AddNodeToFlow(NormalNodes[7], NormalNodes[8]); m_CachedFlow.AddNodeToFlow(NormalNodes[6], NormalNodes[7]); m_CachedFlow.AddNodeToFlow(NormalNodes[5], NormalNodes[6]); m_CachedFlow.AddNodeToFlow(NormalNodes[4], NormalNodes[5]); m_CachedFlow.AddNodeToFlow(NormalNodes[3], NormalNodes[4]); m_CachedFlow.AddNodeToFlow(NormalNodes[2], NormalNodes[3]); m_CachedFlow.AddNodeToFlow(NormalNodes[1], NormalNodes[2]); m_CachedFlow.AddNodeToFlow(NormalNodes[0], NormalNodes[1]); // Chest 4 m_CachedFlow.AddNodeToFlow(ChestNodes[3], NormalNodes[0]); // Boss m_CachedFlow.AddNodeToFlow(BossFoyerNode, ChestNodes[3]); m_CachedFlow.AddNodeToFlow(BossNode, BossFoyerNode); m_CachedFlow.AddNodeToFlow(BossExitNode, BossNode); m_CachedFlow.AddNodeToFlow(BossEndTimesNode, BossExitNode); // m_CachedFlow.LoopConnectNodes(ComplexFlowNode_05, ComplexFlowNode_09); m_CachedFlow.FirstNode = EntranceNode; return(m_CachedFlow); }
public static DungeonFlow Apache_Fucking_Around_Flow() { DungeonFlowSubtypeRestriction m_SubTypeRestrictions = new DungeonFlowSubtypeRestriction() { baseCategoryRestriction = PrototypeDungeonRoom.RoomCategory.NORMAL, normalSubcategoryRestriction = PrototypeDungeonRoom.RoomNormalSubCategory.TRAP, bossSubcategoryRestriction = PrototypeDungeonRoom.RoomBossSubCategory.FLOOR_BOSS, specialSubcategoryRestriction = PrototypeDungeonRoom.RoomSpecialSubCategory.UNSPECIFIED_SPECIAL, secretSubcategoryRestriction = PrototypeDungeonRoom.RoomSecretSubCategory.UNSPECIFIED_SECRET, maximumRoomsOfSubtype = 1 }; DungeonFlow m_CachedFlow = ScriptableObject.CreateInstance <DungeonFlow>(); bool SecretRoomSelector = BraveUtility.RandomBool(); m_CachedFlow.name = "Apache_Fucking_Around_Flow"; m_CachedFlow.fallbackRoomTable = ExpandPrefabs.CustomRoomTable2; m_CachedFlow.subtypeRestrictions = new List <DungeonFlowSubtypeRestriction>() { m_SubTypeRestrictions }; m_CachedFlow.flowInjectionData = new List <ProceduralFlowModifierData>(0); m_CachedFlow.sharedInjectionData = new List <SharedInjectionData>(0); m_CachedFlow.Initialize(); DungeonFlowNode m_EntranceNode = ExpandDungeonFlow.GenerateDefaultNode(m_CachedFlow, PrototypeDungeonRoom.RoomCategory.ENTRANCE, ExpandPrefabs.elevator_entrance); DungeonFlowNode m_ExitNode = ExpandDungeonFlow.GenerateDefaultNode(m_CachedFlow, PrototypeDungeonRoom.RoomCategory.EXIT, ExpandPrefabs.tiny_exit); DungeonFlowNode m_BossNode = ExpandDungeonFlow.GenerateDefaultNode(m_CachedFlow, PrototypeDungeonRoom.RoomCategory.BOSS, ExpandPrefabs.doublebeholsterroom01); DungeonFlowNode m_BossFoyerNode = ExpandDungeonFlow.GenerateDefaultNode(m_CachedFlow, PrototypeDungeonRoom.RoomCategory.CONNECTOR, ExpandPrefabs.boss_foyer); // First chain of nodes starting off Entrance DungeonFlowNode m_ConnectorNode_01 = ExpandDungeonFlow.GenerateDefaultNode(m_CachedFlow, PrototypeDungeonRoom.RoomCategory.CONNECTOR); DungeonFlowNode m_ConnectorNode_02 = ExpandDungeonFlow.GenerateDefaultNode(m_CachedFlow, PrototypeDungeonRoom.RoomCategory.CONNECTOR); DungeonFlowNode m_ConnectorNode_03 = ExpandDungeonFlow.GenerateDefaultNode(m_CachedFlow, PrototypeDungeonRoom.RoomCategory.CONNECTOR); DungeonFlowNode m_ConnectorNode_04 = ExpandDungeonFlow.GenerateDefaultNode(m_CachedFlow, PrototypeDungeonRoom.RoomCategory.CONNECTOR); DungeonFlowNode m_ShopNode = ExpandDungeonFlow.GenerateDefaultNode(m_CachedFlow, PrototypeDungeonRoom.RoomCategory.SPECIAL, overrideTable: ExpandPrefabs.shop_room_table); DungeonFlowNode m_HubNode = ExpandDungeonFlow.GenerateDefaultNode(m_CachedFlow, PrototypeDungeonRoom.RoomCategory.HUB); DungeonFlowNode m_RewardNode_01 = ExpandDungeonFlow.GenerateDefaultNode(m_CachedFlow, PrototypeDungeonRoom.RoomCategory.CONNECTOR, ExpandPrefabs.reward_room); DungeonFlowNode m_RewardNode_02 = ExpandDungeonFlow.GenerateDefaultNode(m_CachedFlow, PrototypeDungeonRoom.RoomCategory.CONNECTOR, ExpandPrefabs.reward_room); DungeonFlowNode m_RewardNode_03 = ExpandDungeonFlow.GenerateDefaultNode(m_CachedFlow, PrototypeDungeonRoom.RoomCategory.CONNECTOR, ExpandPrefabs.gungeon_rewardroom_1); DungeonFlowNode m_NormalNode_01 = ExpandDungeonFlow.GenerateDefaultNode(m_CachedFlow, PrototypeDungeonRoom.RoomCategory.NORMAL); DungeonFlowNode m_NormalNode_02 = ExpandDungeonFlow.GenerateDefaultNode(m_CachedFlow, PrototypeDungeonRoom.RoomCategory.NORMAL); DungeonFlowNode m_NormalNode_03 = ExpandDungeonFlow.GenerateDefaultNode(m_CachedFlow, PrototypeDungeonRoom.RoomCategory.NORMAL); DungeonFlowNode m_NormalNode_04 = ExpandDungeonFlow.GenerateDefaultNode(m_CachedFlow, PrototypeDungeonRoom.RoomCategory.NORMAL); DungeonFlowNode m_NormalNode_05 = ExpandDungeonFlow.GenerateDefaultNode(m_CachedFlow, PrototypeDungeonRoom.RoomCategory.NORMAL); DungeonFlowNode m_NormalNode_06 = ExpandDungeonFlow.GenerateDefaultNode(m_CachedFlow, PrototypeDungeonRoom.RoomCategory.NORMAL); DungeonFlowNode m_NormalNode_07 = ExpandDungeonFlow.GenerateDefaultNode(m_CachedFlow, PrototypeDungeonRoom.RoomCategory.NORMAL); DungeonFlowNode m_NormalNode_08 = ExpandDungeonFlow.GenerateDefaultNode(m_CachedFlow, PrototypeDungeonRoom.RoomCategory.NORMAL); DungeonFlowNode m_NormalNode_09 = ExpandDungeonFlow.GenerateDefaultNode(m_CachedFlow, PrototypeDungeonRoom.RoomCategory.NORMAL); DungeonFlowNode m_NormalNode_10 = ExpandDungeonFlow.GenerateDefaultNode(m_CachedFlow, PrototypeDungeonRoom.RoomCategory.NORMAL); DungeonFlowNode m_SecretNode_01 = ExpandDungeonFlow.GenerateDefaultNode(m_CachedFlow, PrototypeDungeonRoom.RoomCategory.SECRET); DungeonFlowNode m_SecretNode_02 = ExpandDungeonFlow.GenerateDefaultNode(m_CachedFlow, PrototypeDungeonRoom.RoomCategory.SECRET); DungeonFlowNode m_LoopTargetNormalNode = ExpandDungeonFlow.GenerateDefaultNode(m_CachedFlow, PrototypeDungeonRoom.RoomCategory.NORMAL, oneWayLoopTarget: true); // Warp Wing chain DungeonFlowNode m_WarpWingConnectorNode_01 = ExpandDungeonFlow.GenerateDefaultNode(m_CachedFlow, PrototypeDungeonRoom.RoomCategory.CONNECTOR, ExpandRoomPrefabs.Expand_SecretElevatorDestinationRoom, isWarpWingNode: true); DungeonFlowNode m_WarpWingConnectorNode_02 = ExpandDungeonFlow.GenerateDefaultNode(m_CachedFlow, PrototypeDungeonRoom.RoomCategory.CONNECTOR); DungeonFlowNode m_WarpWingConnectorNode_03 = ExpandDungeonFlow.GenerateDefaultNode(m_CachedFlow, PrototypeDungeonRoom.RoomCategory.CONNECTOR); DungeonFlowNode m_WarpWingConnectorNode_04 = ExpandDungeonFlow.GenerateDefaultNode(m_CachedFlow, PrototypeDungeonRoom.RoomCategory.CONNECTOR); DungeonFlowNode m_WarpWingNormalNode_01 = ExpandDungeonFlow.GenerateDefaultNode(m_CachedFlow, PrototypeDungeonRoom.RoomCategory.NORMAL); DungeonFlowNode m_WarpWingNormalNode_02 = ExpandDungeonFlow.GenerateDefaultNode(m_CachedFlow, PrototypeDungeonRoom.RoomCategory.NORMAL); DungeonFlowNode m_WarpWingNormalNode_03 = ExpandDungeonFlow.GenerateDefaultNode(m_CachedFlow, PrototypeDungeonRoom.RoomCategory.NORMAL); DungeonFlowNode m_WarpWingRewardNode_01 = ExpandDungeonFlow.GenerateDefaultNode(m_CachedFlow, PrototypeDungeonRoom.RoomCategory.CONNECTOR, ExpandPrefabs.reward_room); // Assign special elevator entrance room to one of the two guranteed secret rooms on this flow. if (SecretRoomSelector) { m_SecretNode_01.overrideExactRoom = ExpandRoomPrefabs.Expand_SecretElevatorEntranceRoom; } else { m_SecretNode_02.overrideExactRoom = ExpandRoomPrefabs.Expand_SecretElevatorEntranceRoom; } m_CachedFlow.AddNodeToFlow(m_EntranceNode, null); m_CachedFlow.AddNodeToFlow(m_ConnectorNode_01, m_EntranceNode); m_CachedFlow.AddNodeToFlow(m_ConnectorNode_02, m_ConnectorNode_01); m_CachedFlow.AddNodeToFlow(m_ConnectorNode_03, m_ConnectorNode_02); // Shop node branching off first connector node m_CachedFlow.AddNodeToFlow(m_ShopNode, m_ConnectorNode_01); // Huh node. A chest node then normal node leading to boss room/exit with a normal node and loop nodes connected to exit. m_CachedFlow.AddNodeToFlow(m_HubNode, m_ConnectorNode_01); m_CachedFlow.AddNodeToFlow(m_RewardNode_01, m_HubNode); m_CachedFlow.AddNodeToFlow(m_NormalNode_01, m_HubNode); m_CachedFlow.AddNodeToFlow(m_BossFoyerNode, m_NormalNode_01); m_CachedFlow.AddNodeToFlow(m_BossNode, m_BossFoyerNode); m_CachedFlow.AddNodeToFlow(m_ExitNode, m_BossNode); m_CachedFlow.AddNodeToFlow(m_NormalNode_02, m_ExitNode); m_CachedFlow.AddNodeToFlow(m_LoopTargetNormalNode, m_ExitNode); m_CachedFlow.AddNodeToFlow(m_NormalNode_03, m_LoopTargetNormalNode); m_CachedFlow.AddNodeToFlow(m_RewardNode_02, m_NormalNode_03); // Connect end of this chain back to first node in loop chain. m_CachedFlow.LoopConnectNodes(m_RewardNode_02, m_LoopTargetNormalNode); // Branch of nodes that leads off hub to mainly normal rooms, a chest and a couple secret rooms. m_CachedFlow.AddNodeToFlow(m_NormalNode_04, m_HubNode); m_CachedFlow.AddNodeToFlow(m_NormalNode_05, m_NormalNode_04); m_CachedFlow.AddNodeToFlow(m_NormalNode_06, m_NormalNode_05); m_CachedFlow.AddNodeToFlow(m_NormalNode_07, m_NormalNode_06); m_CachedFlow.AddNodeToFlow(m_SecretNode_01, m_NormalNode_06); m_CachedFlow.AddNodeToFlow(m_NormalNode_08, m_NormalNode_05); m_CachedFlow.AddNodeToFlow(m_NormalNode_09, m_NormalNode_08); m_CachedFlow.AddNodeToFlow(m_NormalNode_10, m_NormalNode_09); m_CachedFlow.AddNodeToFlow(m_SecretNode_02, m_NormalNode_10); m_CachedFlow.AddNodeToFlow(m_RewardNode_03, m_NormalNode_10); // Warpwing CHain of nodes with 1 reward room m_CachedFlow.AddNodeToFlow(m_WarpWingConnectorNode_01, m_HubNode); m_CachedFlow.AddNodeToFlow(m_WarpWingNormalNode_01, m_WarpWingConnectorNode_01); m_CachedFlow.AddNodeToFlow(m_WarpWingRewardNode_01, m_WarpWingNormalNode_01); m_CachedFlow.AddNodeToFlow(m_WarpWingConnectorNode_02, m_WarpWingConnectorNode_01); m_CachedFlow.AddNodeToFlow(m_WarpWingNormalNode_02, m_WarpWingConnectorNode_02); m_CachedFlow.AddNodeToFlow(m_WarpWingConnectorNode_03, m_WarpWingNormalNode_02); m_CachedFlow.AddNodeToFlow(m_WarpWingConnectorNode_04, m_WarpWingConnectorNode_03); m_CachedFlow.AddNodeToFlow(m_WarpWingNormalNode_03, m_WarpWingConnectorNode_04); m_CachedFlow.FirstNode = m_EntranceNode; return(m_CachedFlow); }
public static DungeonFlow DEMO_STAGE_FLOW() { DungeonFlow m_CachedFlow = ScriptableObject.CreateInstance <DungeonFlow>(); DungeonFlowSubtypeRestriction DemoStageSubTypeRestrictions = new DungeonFlowSubtypeRestriction() { baseCategoryRestriction = PrototypeDungeonRoom.RoomCategory.NORMAL, normalSubcategoryRestriction = PrototypeDungeonRoom.RoomNormalSubCategory.TRAP, bossSubcategoryRestriction = PrototypeDungeonRoom.RoomBossSubCategory.FLOOR_BOSS, specialSubcategoryRestriction = PrototypeDungeonRoom.RoomSpecialSubCategory.UNSPECIFIED_SPECIAL, secretSubcategoryRestriction = PrototypeDungeonRoom.RoomSecretSubCategory.UNSPECIFIED_SECRET, maximumRoomsOfSubtype = 1 }; DungeonFlowNode DemoStageNode_00 = new DungeonFlowNode(m_CachedFlow) { isSubchainStandin = false, nodeType = DungeonFlowNode.ControlNodeType.ROOM, roomCategory = PrototypeDungeonRoom.RoomCategory.CONNECTOR, percentChance = 1f, priority = DungeonFlowNode.NodePriority.MANDATORY, overrideExactRoom = ExpandPrefabs.elevator_entrance, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List <string>(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = DungeonFlowNode.ForcedDoorType.NONE, loopForcedDoorType = DungeonFlowNode.ForcedDoorType.NONE, nodeExpands = false, initialChainPrototype = "n", chainRules = new List <ChainRule>(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List <string>(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = "d9be71d3-8d97-48af-8eda-54aa897862be", flow = m_CachedFlow, }; DungeonFlowNode DemoStageNode_01 = new DungeonFlowNode(m_CachedFlow) { isSubchainStandin = false, nodeType = DungeonFlowNode.ControlNodeType.ROOM, roomCategory = PrototypeDungeonRoom.RoomCategory.CONNECTOR, percentChance = 1f, priority = DungeonFlowNode.NodePriority.MANDATORY, overrideExactRoom = ExpandPrefabs.boss_foyer, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List <string>(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = DungeonFlowNode.ForcedDoorType.NONE, loopForcedDoorType = DungeonFlowNode.ForcedDoorType.NONE, nodeExpands = false, initialChainPrototype = "n", chainRules = new List <ChainRule>(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List <string>(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = "036aafaf-a754-4410-94c5-2c4e5139a5bf", flow = m_CachedFlow, }; DungeonFlowNode DemoStageNode_02 = new DungeonFlowNode(m_CachedFlow) { isSubchainStandin = false, nodeType = DungeonFlowNode.ControlNodeType.ROOM, roomCategory = PrototypeDungeonRoom.RoomCategory.CONNECTOR, percentChance = 1f, priority = DungeonFlowNode.NodePriority.MANDATORY, overrideExactRoom = ExpandPrefabs.bossstatuesroom01, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List <string>(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = DungeonFlowNode.ForcedDoorType.NONE, loopForcedDoorType = DungeonFlowNode.ForcedDoorType.NONE, nodeExpands = false, initialChainPrototype = "n", chainRules = new List <ChainRule>(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List <string>(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = "a0098d24-7733-4baf-82c0-11ce3e068261", flow = m_CachedFlow, }; DungeonFlowNode DemoStageNode_03 = new DungeonFlowNode(m_CachedFlow) { isSubchainStandin = false, nodeType = DungeonFlowNode.ControlNodeType.ROOM, roomCategory = PrototypeDungeonRoom.RoomCategory.CONNECTOR, percentChance = 1f, priority = DungeonFlowNode.NodePriority.MANDATORY, overrideExactRoom = ExpandPrefabs.exit_room_basic, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List <string>(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = DungeonFlowNode.ForcedDoorType.NONE, loopForcedDoorType = DungeonFlowNode.ForcedDoorType.NONE, nodeExpands = false, initialChainPrototype = "n", chainRules = new List <ChainRule>(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List <string>(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = "f06e0430-437a-481e-9b34-604d145cc77d", flow = m_CachedFlow, }; // Original Room Prefab "StageFight_001" no longer exists. Force it to pull random room from room table instead. DungeonFlowNode DemoStageNode_04 = new DungeonFlowNode(m_CachedFlow) { isSubchainStandin = false, nodeType = DungeonFlowNode.ControlNodeType.ROOM, roomCategory = PrototypeDungeonRoom.RoomCategory.NORMAL, percentChance = 1f, priority = DungeonFlowNode.NodePriority.MANDATORY, overrideExactRoom = null, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List <string>(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = DungeonFlowNode.ForcedDoorType.NONE, loopForcedDoorType = DungeonFlowNode.ForcedDoorType.NONE, nodeExpands = false, initialChainPrototype = "n", chainRules = new List <ChainRule>(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List <string>(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = "5160f844-ff79-4d19-b813-38496a344e8e", flow = m_CachedFlow, }; // Original Room Prefab "StageFight_002_Easy" no longer exists. Force it to pull random room from room table instead. DungeonFlowNode DemoStageNode_05 = new DungeonFlowNode(m_CachedFlow) { isSubchainStandin = false, nodeType = DungeonFlowNode.ControlNodeType.ROOM, roomCategory = PrototypeDungeonRoom.RoomCategory.NORMAL, percentChance = 1f, priority = DungeonFlowNode.NodePriority.MANDATORY, overrideExactRoom = null, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List <string>(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = DungeonFlowNode.ForcedDoorType.NONE, loopForcedDoorType = DungeonFlowNode.ForcedDoorType.NONE, nodeExpands = false, initialChainPrototype = "n", chainRules = new List <ChainRule>(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List <string>(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = "0c8ee6c4-31b4-4226-9ddb-90c7eca8f2d3", flow = m_CachedFlow, }; // Castle_Reward_Room_godrays_001 no longer exists. Substitute with gungeon_rewardroom_1 instead. DungeonFlowNode DemoStageNode_06 = new DungeonFlowNode(m_CachedFlow) { isSubchainStandin = false, nodeType = DungeonFlowNode.ControlNodeType.ROOM, roomCategory = PrototypeDungeonRoom.RoomCategory.REWARD, percentChance = 1f, priority = DungeonFlowNode.NodePriority.MANDATORY, overrideExactRoom = ExpandPrefabs.gungeon_rewardroom_1, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List <string>(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = DungeonFlowNode.ForcedDoorType.NONE, loopForcedDoorType = DungeonFlowNode.ForcedDoorType.NONE, nodeExpands = false, initialChainPrototype = "n", chainRules = new List <ChainRule>(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List <string>(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = "2de735f8-22aa-4ee0-9cc4-6841182c8715", flow = m_CachedFlow, }; DungeonFlowNode DemoStageNode_07 = new DungeonFlowNode(m_CachedFlow) { isSubchainStandin = false, nodeType = DungeonFlowNode.ControlNodeType.ROOM, roomCategory = PrototypeDungeonRoom.RoomCategory.SPECIAL, percentChance = 1f, priority = DungeonFlowNode.NodePriority.MANDATORY, overrideExactRoom = null, overrideRoomTable = ExpandPrefabs.shop_room_table, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List <string>(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = DungeonFlowNode.ForcedDoorType.NONE, loopForcedDoorType = DungeonFlowNode.ForcedDoorType.NONE, nodeExpands = false, initialChainPrototype = "n", chainRules = new List <ChainRule>(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List <string>(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = "8aef8326-0006-4504-8646-4fa7f6664e13", flow = m_CachedFlow, }; // Original Room Prefab "StageFight_003" no longer exists. Force it to pull random room from room table instead. DungeonFlowNode DemoStageNode_08 = new DungeonFlowNode(m_CachedFlow) { isSubchainStandin = false, nodeType = DungeonFlowNode.ControlNodeType.ROOM, roomCategory = PrototypeDungeonRoom.RoomCategory.NORMAL, percentChance = 1f, priority = DungeonFlowNode.NodePriority.MANDATORY, overrideExactRoom = null, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List <string>(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = DungeonFlowNode.ForcedDoorType.NONE, loopForcedDoorType = DungeonFlowNode.ForcedDoorType.NONE, nodeExpands = false, initialChainPrototype = "n", chainRules = new List <ChainRule>(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List <string>(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = "5460810c-546c-471a-8467-0c89cfce0dc9", flow = m_CachedFlow, }; // Original Room Prefab "StageFight_004" no longer exists. Force it to pull random room from room table instead. DungeonFlowNode DemoStageNode_09 = new DungeonFlowNode(m_CachedFlow) { isSubchainStandin = false, nodeType = DungeonFlowNode.ControlNodeType.ROOM, roomCategory = PrototypeDungeonRoom.RoomCategory.NORMAL, percentChance = 1f, priority = DungeonFlowNode.NodePriority.MANDATORY, overrideExactRoom = null, overrideRoomTable = null, capSubchain = false, subchainIdentifier = string.Empty, limitedCopiesOfSubchain = false, maxCopiesOfSubchain = 1, subchainIdentifiers = new List <string>(0), receivesCaps = false, isWarpWingEntrance = false, handlesOwnWarping = false, forcedDoorType = DungeonFlowNode.ForcedDoorType.NONE, loopForcedDoorType = DungeonFlowNode.ForcedDoorType.NONE, nodeExpands = false, initialChainPrototype = "n", chainRules = new List <ChainRule>(0), minChainLength = 3, maxChainLength = 8, minChildrenToBuild = 1, maxChildrenToBuild = 1, canBuildDuplicateChildren = false, parentNodeGuid = string.Empty, childNodeGuids = new List <string>(0), loopTargetNodeGuid = string.Empty, loopTargetIsOneWay = false, guidAsString = "10f1e930-a72b-4f12-a313-378622ba01a8", flow = m_CachedFlow, }; m_CachedFlow.name = "DEMO_STAGE_FLOW"; m_CachedFlow.fallbackRoomTable = ExpandPrefabs.CatacombsRoomTable; m_CachedFlow.subtypeRestrictions = new List <DungeonFlowSubtypeRestriction>() { DemoStageSubTypeRestrictions }; m_CachedFlow.flowInjectionData = new List <ProceduralFlowModifierData>(0); m_CachedFlow.sharedInjectionData = new List <SharedInjectionData>(0); m_CachedFlow.Initialize(); m_CachedFlow.AddNodeToFlow(DemoStageNode_00, null); m_CachedFlow.AddNodeToFlow(DemoStageNode_01, DemoStageNode_08); m_CachedFlow.AddNodeToFlow(DemoStageNode_02, DemoStageNode_01); m_CachedFlow.AddNodeToFlow(DemoStageNode_03, DemoStageNode_02); m_CachedFlow.AddNodeToFlow(DemoStageNode_04, DemoStageNode_06); m_CachedFlow.AddNodeToFlow(DemoStageNode_05, DemoStageNode_04); m_CachedFlow.AddNodeToFlow(DemoStageNode_06, DemoStageNode_00); m_CachedFlow.AddNodeToFlow(DemoStageNode_07, DemoStageNode_06); m_CachedFlow.AddNodeToFlow(DemoStageNode_08, DemoStageNode_05); m_CachedFlow.AddNodeToFlow(DemoStageNode_09, DemoStageNode_07); m_CachedFlow.LoopConnectNodes(DemoStageNode_09, DemoStageNode_08); m_CachedFlow.FirstNode = DemoStageNode_00; return(m_CachedFlow); }