Update DunGenExtender

Raphtalia 2024-11-04 17:14:48 +00:00
parent 90eff1c515
commit 432bf3f1db
1 changed files with 21 additions and 6 deletions

@ -32,6 +32,21 @@ The starting index is the first node whose tilesets contain `MainRoomTilePrefab`
![](https://i.imgur.com/gq6PQm6.png)
### Main Path Details
A list of `MainPathExtender` assets that override some of `DungeonFlow's` values depending on the main path being generated. You can use this feature to create more unique dungeon generations for each main path (i.e. some main paths are shorten/longer than others).
When the first main path is being generated (`DungeonFlow's` default main path), it will try and get the first item in the list. It will then use those values (if any exist) over `DungeonFlow's` values for that main path. When the second main path is being generated (the first alternate main path), it will try and get the second item in the list and do the same. It will repeat this pattern for all main paths. If the list or item is empty, no value is overridden. If it tries to get an item outside of the list's range (i.e. when the third main path is being generated and the list only contains two items), then it will grab the last item in the list instead.
You can override the following values of `DungeonFlow`:
- Branch Mode
- Branch Count
- Length
- Nodes
- Lines
> **:warning: WARNING: :warning:** If you are using the `CopyFromNodeList` behaviour and you are overriding the nodes list, then that list **MUST** still contain some node whose tileset contains `MainRoomTilePrefab`.
## Archetypes on Normal Nodes
Enable this feature by toggling `AddArchetypesToNormalNodes`. This allows normal nodes in `DungeonFlow` to create branching paths by attaching an archetype to it.
@ -64,18 +79,18 @@ Bounds GetDungeonBounds(float dungeonScale) {
}
```
## Forced Tiles
Enable this feature by toggling `UseForcedTiles`. This attempts to generate additional branch tiles after the main and branch paths are generated. Each element in the `ForcedTileSets` list will attempt to generate one tile from its `Tilesets`. Where the tile will generate can be influenced with `MainPathWeight`, `BranchPathWeight`, and `DepthWeightScale`, the same as DunGen's `Tileset`.
## Additional Tiles (renamed from Forced Tiles)
Enable this feature by toggling `UseAdditionalTiles`. This attempts to generate additional branch tiles after the main and branch paths are generated. Each element in the `AdditionalTileSets` list will attempt to generate one tile from its `Tilesets`. Where the tile will generate can be influenced with `MainPathWeight`, `BranchPathWeight`, and `DepthWeightScale`, the same as DunGen's `Tileset`.
The dungeon generation will attempt to generate the tile on every main and branch tile (excluding tiles generated from the Forced Tiles feature). This feature does not guarantee that that tile will generate. If the tile cannot generate for whatever reason, it will simply proceed as normal.
The dungeon generation will attempt to generate the tile on every main and branch tile (excluding tiles generated from the Additional Tiles feature). This feature does not guarantee that that tile will generate. If the tile cannot generate for whatever reason, it will simply proceed as normal.
> **NOTE**: This feature may be replicated with injection rules however they are a few key differences.
>
> Injection rules replace main or branch tiles with one of its own tiles when the main and branch paths are being generated. Forced Tiles adds extra tiles after the main and branch paths are generated.
> Injection rules replace main or branch tiles with one of its own tiles when the main and branch paths are being generated. Additional Tiles adds extra tiles after the main and branch paths are generated.
>
> If Injection rules uses a dead-end tile with only one doorway, then the main or branch path will prematurely end (this can cause the dungeon generation to reset). If Forced Tiles uses the same tile, the main or branch path's generation will not be affected.
> If Injection rules uses a dead-end tile with only one doorway, then the main or branch path will prematurely end (this can cause the dungeon generation to reset). If Additional Tiles uses the same tile, the main or branch path's generation will not be affected.
>
> If Injection rules uses a tile with many doorways on the main path, then those doorways can be used to create branch paths. If Forced Tiles uses the same tile, those doorways will not be used to create branch paths.
> If Injection rules uses a tile with many doorways on the main path, then those doorways can be used to create branch paths. If Additional Tiles uses the same tile, those doorways will not be used to create branch paths.
## Branch Path Multi Simulation
Enable this feature by toggling `UseBranchPathMultiSim`. This causes the dungeon generation to simulate multiple paths for each branch path. It then assigns each path with a weight based on the weights described below. The simulated path with the highest weight will then be chosen and generated. This feature slows dungeon generation a bit, though it only happens after the main paths are generated (where most of the dungeon generation time is spent).