# Adventure Architect System Design ## Definitions **Adventure**: a combination of an Event and a Room **Event**: A `microevent` which drives a combat encounter **Room**: The physical geometry placed in the level ## MS7 Demo Floors 1+2: Select an event + room from a pre-configured list Flor 3: Pre-determined "boss" event + room ## Production ### Inputs * Player count * Players' combined progression flags * Players' current quests * Zone * Floor * Difficulty? ### Selection process 1. Using the inputs, select all rows which meet requirements from table `ZanzibarAdventures` 2. Repeat step 1 for each additional portal, maintaining a list of `ExclusionGroups` from each selected adventure. 3. For each selected **Adventure**, select and assign an **Event** from table `ZanzibarMicroevents` using `WhitelistMicroeventTags` 4. For each **Adventure** + **Event** combination, select and assign a **Room** from `ZanzibarRooms` using `WhitelistRoomTags` from `ZanzibarAdventures` and the room requirements columns from `ZanzibarMicroevents` ### Table examples #### ZanzibarAdventures | Id | MinPlayerCount | MinFloor | ExclusionGroups | WhitelistMicroeventTags | WhitelistRoomTags | | -------- | -------- | -------- | -- | -- | -- | | HighValueCatacombs | 2 | 1 | HighValue | HighValue | Catacombs | #### ZanzibarMicroevents | Id | Tags | MicroeventGameplayTag | MinRoomSize | MinRoomSpawnPoints | | -------- | -------- | -------- | -- | -- | | HighValueTarget | HighValue | Microevent.HighValue | Medium | 5 | #### ZanzibarRooms | Id | Tags | LevelName | Size | SpawnPoints | | -------- | -------- | -------- | -- | -- | | MediumCatacombs | Catacombs | Level.Catacombs.Medium | Medium | 8 |