dungeonmaker-js / dungeonmaker-js / extendDesign
Function: extendDesign()
extendDesign(
base,patch):object
Defined in: packages/dungeonmaker-js/src/config/extend.ts:50
Derives a design from base: plain objects merge deeply, arrays and primitives from patch replace the base value, undefined is skipped. The result shares nothing with base or patch. Does not validate; toDesignText does.
base and patch must be JSON-like plain data (structured-cloneable), because both are copied with structuredClone. A class instance does not throw but arrives as a plain object without its prototype and private fields.
Parameters
base
$schema?
string = ...
behaviour
{ mutator: number; noHeadingProbability: number; patience: number; } = ...
behaviour.mutator
number = ...
behaviour.noHeadingProbability
number = ...
behaviour.patience
number = ...
crawlers
{ corridorWidth: number[]; inTunnels: { closedProbability: number; enabled: boolean; generation: number; genes: { changeDirection: number; straightDoubleSpawn: number; straightSingleSpawn: number; turnDoubleSpawn: number; turnSingleSpawn: number; }; inAnterooms: boolean; maxAge: number; seedCount: number; stepLength: number; }; maxAge: number[]; pairs?: object[]; random: { genes: { changeDirection: number; straightDoubleSpawn: number; straightSingleSpawn: number; turnDoubleSpawn: number; turnSingleSpawn: number; }; perThousandWallSquares: number[]; }; seeds?: object[]; stepLength: number[]; } = ...
crawlers.corridorWidth
number[] = ...
crawlers.inTunnels
{ closedProbability: number; enabled: boolean; generation: number; genes: { changeDirection: number; straightDoubleSpawn: number; straightSingleSpawn: number; turnDoubleSpawn: number; turnSingleSpawn: number; }; inAnterooms: boolean; maxAge: number; seedCount: number; stepLength: number; } = ...
crawlers.inTunnels.closedProbability
number = ...
crawlers.inTunnels.enabled
boolean = ...
crawlers.inTunnels.generation
number = ...
crawlers.inTunnels.genes
{ changeDirection: number; straightDoubleSpawn: number; straightSingleSpawn: number; turnDoubleSpawn: number; turnSingleSpawn: number; } = ...
crawlers.inTunnels.genes.changeDirection
number = ...
crawlers.inTunnels.genes.straightDoubleSpawn
number = ...
crawlers.inTunnels.genes.straightSingleSpawn
number = ...
crawlers.inTunnels.genes.turnDoubleSpawn
number = ...
crawlers.inTunnels.genes.turnSingleSpawn
number = ...
crawlers.inTunnels.inAnterooms
boolean = ...
crawlers.inTunnels.maxAge
number = ...
crawlers.inTunnels.seedCount
number = ...
crawlers.inTunnels.stepLength
number = ...
crawlers.maxAge
number[] = ...
crawlers.pairs?
object[] = ...
crawlers.random
{ genes: { changeDirection: number; straightDoubleSpawn: number; straightSingleSpawn: number; turnDoubleSpawn: number; turnSingleSpawn: number; }; perThousandWallSquares: number[]; } = ...
crawlers.random.genes
{ changeDirection: number; straightDoubleSpawn: number; straightSingleSpawn: number; turnDoubleSpawn: number; turnSingleSpawn: number; } = ...
crawlers.random.genes.changeDirection
number = ...
crawlers.random.genes.straightDoubleSpawn
number = ...
crawlers.random.genes.straightSingleSpawn
number = ...
crawlers.random.genes.turnDoubleSpawn
number = ...
crawlers.random.genes.turnSingleSpawn
number = ...
crawlers.random.perThousandWallSquares
number[] = ...
crawlers.seeds?
object[] = ...
crawlers.stepLength
number[] = ...
map
{ background: "open" | "closed"; height: number; joinDistance: number; openings: ("N" | "NE" | "E" | "SE" | "S" | "SW" | "W" | "NW")[]; tunnelJoinDistance: number; width: number; } = ...
map.background
"open" | "closed" = ...
map.height
number = ...
map.joinDistance
number = ...
map.openings
("N" | "NE" | "E" | "SE" | "S" | "SW" | "W" | "NW")[] = ...
map.tunnelJoinDistance
number = ...
map.width
number = ...
population?
{ mobs: { dungeon: { open: { anteroomProbability: number; byLevel: number[]; }; rooms: { byLevel: number[]; groupSize: number; groupSizeVariance: number; }; }; labyrinth: { open: { byLevel: number[]; }; rooms: { byLevel: number[]; groupSize: number; groupSizeVariance: number; }; }; }; treasure: { dungeon: { byLevel: number[]; groupSize: number; groupSizeVariance: number; }; labyrinth: { byLevel: number[]; groupSize: number; groupSizeVariance: number; }; }; } = ...
population.mobs
{ dungeon: { open: { anteroomProbability: number; byLevel: number[]; }; rooms: { byLevel: number[]; groupSize: number; groupSizeVariance: number; }; }; labyrinth: { open: { byLevel: number[]; }; rooms: { byLevel: number[]; groupSize: number; groupSizeVariance: number; }; }; } = ...
population.mobs.dungeon
{ open: { anteroomProbability: number; byLevel: number[]; }; rooms: { byLevel: number[]; groupSize: number; groupSizeVariance: number; }; } = ...
population.mobs.dungeon.open
{ anteroomProbability: number; byLevel: number[]; } = ...
population.mobs.dungeon.open.anteroomProbability
number = ...
population.mobs.dungeon.open.byLevel
number[] = ...
population.mobs.dungeon.rooms
{ byLevel: number[]; groupSize: number; groupSizeVariance: number; } = ...
population.mobs.dungeon.rooms.byLevel
number[] = ...
population.mobs.dungeon.rooms.groupSize
number = ...
population.mobs.dungeon.rooms.groupSizeVariance
number = ...
population.mobs.labyrinth
{ open: { byLevel: number[]; }; rooms: { byLevel: number[]; groupSize: number; groupSizeVariance: number; }; } = ...
population.mobs.labyrinth.open
{ byLevel: number[]; } = ...
population.mobs.labyrinth.open.byLevel
number[] = ...
population.mobs.labyrinth.rooms
{ byLevel: number[]; groupSize: number; groupSizeVariance: number; } = ...
population.mobs.labyrinth.rooms.byLevel
number[] = ...
population.mobs.labyrinth.rooms.groupSize
number = ...
population.mobs.labyrinth.rooms.groupSizeVariance
number = ...
population.treasure
{ dungeon: { byLevel: number[]; groupSize: number; groupSizeVariance: number; }; labyrinth: { byLevel: number[]; groupSize: number; groupSizeVariance: number; }; } = ...
population.treasure.dungeon
{ byLevel: number[]; groupSize: number; groupSizeVariance: number; } = ...
population.treasure.dungeon.byLevel
number[] = ...
population.treasure.dungeon.groupSize
number = ...
population.treasure.dungeon.groupSizeVariance
number = ...
population.treasure.labyrinth
{ byLevel: number[]; groupSize: number; groupSizeVariance: number; } = ...
population.treasure.labyrinth.byLevel
number[] = ...
population.treasure.labyrinth.groupSize
number = ...
population.treasure.labyrinth.groupSizeVariance
number = ...
rectangles?
object[] = ...
rooms
{ aspectRatio: number; count: { dungeon: { large: number; medium: number; small: number; }; labyrinth: { large: number; medium: number; small: number; }; }; size: { large: number; max: number; medium: number; min: number; }; sizeProbability: { branching: object[]; sideways: object[]; }; } = ...
rooms.aspectRatio
number = ...
rooms.count
{ dungeon: { large: number; medium: number; small: number; }; labyrinth: { large: number; medium: number; small: number; }; } = ...
rooms.count.dungeon
{ large: number; medium: number; small: number; } = ...
rooms.count.dungeon.large
number = ...
rooms.count.dungeon.medium
number = ...
rooms.count.dungeon.small
number = ...
rooms.count.labyrinth
{ large: number; medium: number; small: number; } = ...
rooms.count.labyrinth.large
number = ...
rooms.count.labyrinth.medium
number = ...
rooms.count.labyrinth.small
number = ...
rooms.size
{ large: number; max: number; medium: number; min: number; } = ...
rooms.size.large
number = ...
rooms.size.max
number = ...
rooms.size.medium
number = ...
rooms.size.min
number = ...
rooms.sizeProbability
{ branching: object[]; sideways: object[]; } = ...
rooms.sizeProbability.branching
object[] = ...
rooms.sizeProbability.sideways
object[] = ...
spawnDelay
{ crawler: number[]; roomie: number[]; tunneler: number[]; } = ...
spawnDelay.crawler
number[] = ...
spawnDelay.roomie
number[] = ...
spawnDelay.tunneler
number[] = ...
tunnelers
{ anteroomGenerationSpeedUp: number; anteroomProbability: number[]; columns: boolean; joinPreference: number[]; lastChance: { changeDirection: number; generationDelay: number; makeRoomsLeft: number; makeRoomsRight: number; straightDoubleSpawn: number; turnDoubleSpawn: number; }; maxAge: number[]; seeds?: object[]; sizeDownProbability: number[]; sizeUpGenerationDelay: number; sizeUpProbability: number[]; } = ...
tunnelers.anteroomGenerationSpeedUp
number = ...
tunnelers.anteroomProbability
number[] = ...
tunnelers.columns
boolean = ...
tunnelers.joinPreference
number[] = ...
tunnelers.lastChance
{ changeDirection: number; generationDelay: number; makeRoomsLeft: number; makeRoomsRight: number; straightDoubleSpawn: number; turnDoubleSpawn: number; } = ...
tunnelers.lastChance.changeDirection
number = ...
tunnelers.lastChance.generationDelay
number = ...
tunnelers.lastChance.makeRoomsLeft
number = ...
tunnelers.lastChance.makeRoomsRight
number = ...
tunnelers.lastChance.straightDoubleSpawn
number = ...
tunnelers.lastChance.turnDoubleSpawn
number = ...
tunnelers.maxAge
number[] = ...
tunnelers.seeds?
object[] = ...
tunnelers.sizeDownProbability
number[] = ...
tunnelers.sizeUpGenerationDelay
number = ...
tunnelers.sizeUpProbability
number[] = ...
patch
$schema?
string = ...
behaviour?
{ mutator?: number; noHeadingProbability?: number; patience?: number; } = ...
behaviour.mutator?
number = ...
behaviour.noHeadingProbability?
number = ...
behaviour.patience?
number = ...
crawlers?
{ corridorWidth?: number[]; inTunnels?: { closedProbability?: number; enabled?: boolean; generation?: number; genes?: { changeDirection?: number; straightDoubleSpawn?: number; straightSingleSpawn?: number; turnDoubleSpawn?: number; turnSingleSpawn?: number; }; inAnterooms?: boolean; maxAge?: number; seedCount?: number; stepLength?: number; }; maxAge?: number[]; pairs?: object[]; random?: { genes?: { changeDirection?: number; straightDoubleSpawn?: number; straightSingleSpawn?: number; turnDoubleSpawn?: number; turnSingleSpawn?: number; }; perThousandWallSquares?: number[]; }; seeds?: object[]; stepLength?: number[]; } = ...
crawlers.corridorWidth?
number[] = ...
crawlers.inTunnels?
{ closedProbability?: number; enabled?: boolean; generation?: number; genes?: { changeDirection?: number; straightDoubleSpawn?: number; straightSingleSpawn?: number; turnDoubleSpawn?: number; turnSingleSpawn?: number; }; inAnterooms?: boolean; maxAge?: number; seedCount?: number; stepLength?: number; } = ...
crawlers.inTunnels.closedProbability?
number = ...
crawlers.inTunnels.enabled?
boolean = ...
crawlers.inTunnels.generation?
number = ...
crawlers.inTunnels.genes?
{ changeDirection?: number; straightDoubleSpawn?: number; straightSingleSpawn?: number; turnDoubleSpawn?: number; turnSingleSpawn?: number; } = ...
crawlers.inTunnels.genes.changeDirection?
number = ...
crawlers.inTunnels.genes.straightDoubleSpawn?
number = ...
crawlers.inTunnels.genes.straightSingleSpawn?
number = ...
crawlers.inTunnels.genes.turnDoubleSpawn?
number = ...
crawlers.inTunnels.genes.turnSingleSpawn?
number = ...
crawlers.inTunnels.inAnterooms?
boolean = ...
crawlers.inTunnels.maxAge?
number = ...
crawlers.inTunnels.seedCount?
number = ...
crawlers.inTunnels.stepLength?
number = ...
crawlers.maxAge?
number[] = ...
crawlers.pairs?
object[] = ...
crawlers.random?
{ genes?: { changeDirection?: number; straightDoubleSpawn?: number; straightSingleSpawn?: number; turnDoubleSpawn?: number; turnSingleSpawn?: number; }; perThousandWallSquares?: number[]; } = ...
crawlers.random.genes?
{ changeDirection?: number; straightDoubleSpawn?: number; straightSingleSpawn?: number; turnDoubleSpawn?: number; turnSingleSpawn?: number; } = ...
crawlers.random.genes.changeDirection?
number = ...
crawlers.random.genes.straightDoubleSpawn?
number = ...
crawlers.random.genes.straightSingleSpawn?
number = ...
crawlers.random.genes.turnDoubleSpawn?
number = ...
crawlers.random.genes.turnSingleSpawn?
number = ...
crawlers.random.perThousandWallSquares?
number[] = ...
crawlers.seeds?
object[] = ...
crawlers.stepLength?
number[] = ...
map?
{ background?: "open" | "closed"; height?: number; joinDistance?: number; openings?: ("N" | "NE" | "E" | "SE" | "S" | "SW" | "W" | "NW")[]; tunnelJoinDistance?: number; width?: number; } = ...
map.background?
"open" | "closed" = ...
map.height?
number = ...
map.joinDistance?
number = ...
map.openings?
("N" | "NE" | "E" | "SE" | "S" | "SW" | "W" | "NW")[] = ...
map.tunnelJoinDistance?
number = ...
map.width?
number = ...
population?
{ mobs?: { dungeon?: { open?: { anteroomProbability?: number; byLevel?: ...[]; }; rooms?: { byLevel?: ...[]; groupSize?: number; groupSizeVariance?: number; }; }; labyrinth?: { open?: { byLevel?: ...[]; }; rooms?: { byLevel?: ...[]; groupSize?: number; groupSizeVariance?: number; }; }; }; treasure?: { dungeon?: { byLevel?: number[]; groupSize?: number; groupSizeVariance?: number; }; labyrinth?: { byLevel?: number[]; groupSize?: number; groupSizeVariance?: number; }; }; } = ...
population.mobs?
{ dungeon?: { open?: { anteroomProbability?: number; byLevel?: ...[]; }; rooms?: { byLevel?: ...[]; groupSize?: number; groupSizeVariance?: number; }; }; labyrinth?: { open?: { byLevel?: ...[]; }; rooms?: { byLevel?: ...[]; groupSize?: number; groupSizeVariance?: number; }; }; } = ...
population.mobs.dungeon?
{ open?: { anteroomProbability?: number; byLevel?: ...[]; }; rooms?: { byLevel?: ...[]; groupSize?: number; groupSizeVariance?: number; }; } = ...
population.mobs.dungeon.open?
{ anteroomProbability?: number; byLevel?: ...[]; } = ...
population.mobs.dungeon.open.anteroomProbability?
number = ...
population.mobs.dungeon.open.byLevel?
...[] = ...
population.mobs.dungeon.rooms?
{ byLevel?: ...[]; groupSize?: number; groupSizeVariance?: number; } = ...
population.mobs.dungeon.rooms.byLevel?
...[] = ...
population.mobs.dungeon.rooms.groupSize?
number = ...
population.mobs.dungeon.rooms.groupSizeVariance?
number = ...
population.mobs.labyrinth?
{ open?: { byLevel?: ...[]; }; rooms?: { byLevel?: ...[]; groupSize?: number; groupSizeVariance?: number; }; } = ...
population.mobs.labyrinth.open?
{ byLevel?: ...[]; } = ...
population.mobs.labyrinth.open.byLevel?
...[] = ...
population.mobs.labyrinth.rooms?
{ byLevel?: ...[]; groupSize?: number; groupSizeVariance?: number; } = ...
population.mobs.labyrinth.rooms.byLevel?
...[] = ...
population.mobs.labyrinth.rooms.groupSize?
number = ...
population.mobs.labyrinth.rooms.groupSizeVariance?
number = ...
population.treasure?
{ dungeon?: { byLevel?: number[]; groupSize?: number; groupSizeVariance?: number; }; labyrinth?: { byLevel?: number[]; groupSize?: number; groupSizeVariance?: number; }; } = ...
population.treasure.dungeon?
{ byLevel?: number[]; groupSize?: number; groupSizeVariance?: number; } = ...
population.treasure.dungeon.byLevel?
number[] = ...
population.treasure.dungeon.groupSize?
number = ...
population.treasure.dungeon.groupSizeVariance?
number = ...
population.treasure.labyrinth?
{ byLevel?: number[]; groupSize?: number; groupSizeVariance?: number; } = ...
population.treasure.labyrinth.byLevel?
number[] = ...
population.treasure.labyrinth.groupSize?
number = ...
population.treasure.labyrinth.groupSizeVariance?
number = ...
rectangles?
object[] = ...
rooms?
{ aspectRatio?: number; count?: { dungeon?: { large?: number; medium?: number; small?: number; }; labyrinth?: { large?: number; medium?: number; small?: number; }; }; size?: { large?: number; max?: number; medium?: number; min?: number; }; sizeProbability?: { branching?: object[]; sideways?: object[]; }; } = ...
rooms.aspectRatio?
number = ...
rooms.count?
{ dungeon?: { large?: number; medium?: number; small?: number; }; labyrinth?: { large?: number; medium?: number; small?: number; }; } = ...
rooms.count.dungeon?
{ large?: number; medium?: number; small?: number; } = ...
rooms.count.dungeon.large?
number = ...
rooms.count.dungeon.medium?
number = ...
rooms.count.dungeon.small?
number = ...
rooms.count.labyrinth?
{ large?: number; medium?: number; small?: number; } = ...
rooms.count.labyrinth.large?
number = ...
rooms.count.labyrinth.medium?
number = ...
rooms.count.labyrinth.small?
number = ...
rooms.size?
{ large?: number; max?: number; medium?: number; min?: number; } = ...
rooms.size.large?
number = ...
rooms.size.max?
number = ...
rooms.size.medium?
number = ...
rooms.size.min?
number = ...
rooms.sizeProbability?
{ branching?: object[]; sideways?: object[]; } = ...
rooms.sizeProbability.branching?
object[] = ...
rooms.sizeProbability.sideways?
object[] = ...
spawnDelay?
{ crawler?: number[]; roomie?: number[]; tunneler?: number[]; } = ...
spawnDelay.crawler?
number[] = ...
spawnDelay.roomie?
number[] = ...
spawnDelay.tunneler?
number[] = ...
tunnelers?
{ anteroomGenerationSpeedUp?: number; anteroomProbability?: number[]; columns?: boolean; joinPreference?: number[]; lastChance?: { changeDirection?: number; generationDelay?: number; makeRoomsLeft?: number; makeRoomsRight?: number; straightDoubleSpawn?: number; turnDoubleSpawn?: number; }; maxAge?: number[]; seeds?: object[]; sizeDownProbability?: number[]; sizeUpGenerationDelay?: number; sizeUpProbability?: number[]; } = ...
tunnelers.anteroomGenerationSpeedUp?
number = ...
tunnelers.anteroomProbability?
number[] = ...
tunnelers.columns?
boolean = ...
tunnelers.joinPreference?
number[] = ...
tunnelers.lastChance?
{ changeDirection?: number; generationDelay?: number; makeRoomsLeft?: number; makeRoomsRight?: number; straightDoubleSpawn?: number; turnDoubleSpawn?: number; } = ...
tunnelers.lastChance.changeDirection?
number = ...
tunnelers.lastChance.generationDelay?
number = ...
tunnelers.lastChance.makeRoomsLeft?
number = ...
tunnelers.lastChance.makeRoomsRight?
number = ...
tunnelers.lastChance.straightDoubleSpawn?
number = ...
tunnelers.lastChance.turnDoubleSpawn?
number = ...
tunnelers.maxAge?
number[] = ...
tunnelers.seeds?
object[] = ...
tunnelers.sizeDownProbability?
number[] = ...
tunnelers.sizeUpGenerationDelay?
number = ...
tunnelers.sizeUpProbability?
number[] = ...
Returns
object
$schema?
optional$schema?:string
behaviour
behaviour:
object
behaviour.mutator
mutator:
number
behaviour.noHeadingProbability
noHeadingProbability:
number
behaviour.patience
patience:
number
crawlers
crawlers:
object
crawlers.corridorWidth
corridorWidth:
number[]
crawlers.inTunnels
inTunnels:
object
crawlers.inTunnels.closedProbability
closedProbability:
number
crawlers.inTunnels.enabled
enabled:
boolean
crawlers.inTunnels.generation
generation:
number
crawlers.inTunnels.genes
genes:
object
crawlers.inTunnels.genes.changeDirection
changeDirection:
number
crawlers.inTunnels.genes.straightDoubleSpawn
straightDoubleSpawn:
number
crawlers.inTunnels.genes.straightSingleSpawn
straightSingleSpawn:
number
crawlers.inTunnels.genes.turnDoubleSpawn
turnDoubleSpawn:
number
crawlers.inTunnels.genes.turnSingleSpawn
turnSingleSpawn:
number
crawlers.inTunnels.inAnterooms
inAnterooms:
boolean
crawlers.inTunnels.maxAge
maxAge:
number
crawlers.inTunnels.seedCount
seedCount:
number
crawlers.inTunnels.stepLength
stepLength:
number
crawlers.maxAge
maxAge:
number[]
crawlers.pairs?
optionalpairs?:object[]
crawlers.random
random:
object
crawlers.random.genes
genes:
object
crawlers.random.genes.changeDirection
changeDirection:
number
crawlers.random.genes.straightDoubleSpawn
straightDoubleSpawn:
number
crawlers.random.genes.straightSingleSpawn
straightSingleSpawn:
number
crawlers.random.genes.turnDoubleSpawn
turnDoubleSpawn:
number
crawlers.random.genes.turnSingleSpawn
turnSingleSpawn:
number
crawlers.random.perThousandWallSquares
perThousandWallSquares:
number[]
crawlers.seeds?
optionalseeds?:object[]
crawlers.stepLength
stepLength:
number[]
map
map:
object
map.background
background:
"open"|"closed"
map.height
height:
number
map.joinDistance
joinDistance:
number
map.openings
openings: (
"N"|"NE"|"E"|"SE"|"S"|"SW"|"W"|"NW")[]
map.tunnelJoinDistance
tunnelJoinDistance:
number
map.width
width:
number
population?
optionalpopulation?:object
population.mobs
mobs:
object
population.mobs.dungeon
dungeon:
object
population.mobs.dungeon.open
open:
object
population.mobs.dungeon.open.anteroomProbability
anteroomProbability:
number
population.mobs.dungeon.open.byLevel
byLevel:
number[]
population.mobs.dungeon.rooms
rooms:
object
population.mobs.dungeon.rooms.byLevel
byLevel:
number[]
population.mobs.dungeon.rooms.groupSize
groupSize:
number
population.mobs.dungeon.rooms.groupSizeVariance
groupSizeVariance:
number
population.mobs.labyrinth
labyrinth:
object
population.mobs.labyrinth.open
open:
object
population.mobs.labyrinth.open.byLevel
byLevel:
number[]
population.mobs.labyrinth.rooms
rooms:
object
population.mobs.labyrinth.rooms.byLevel
byLevel:
number[]
population.mobs.labyrinth.rooms.groupSize
groupSize:
number
population.mobs.labyrinth.rooms.groupSizeVariance
groupSizeVariance:
number
population.treasure
treasure:
object
population.treasure.dungeon
dungeon:
object
population.treasure.dungeon.byLevel
byLevel:
number[]
population.treasure.dungeon.groupSize
groupSize:
number
population.treasure.dungeon.groupSizeVariance
groupSizeVariance:
number
population.treasure.labyrinth
labyrinth:
object
population.treasure.labyrinth.byLevel
byLevel:
number[]
population.treasure.labyrinth.groupSize
groupSize:
number
population.treasure.labyrinth.groupSizeVariance
groupSizeVariance:
number
rectangles?
optionalrectangles?:object[]
rooms
rooms:
object
rooms.aspectRatio
aspectRatio:
number
rooms.count
count:
object
rooms.count.dungeon
dungeon:
object
rooms.count.dungeon.large
large:
number
rooms.count.dungeon.medium
medium:
number
rooms.count.dungeon.small
small:
number
rooms.count.labyrinth
labyrinth:
object
rooms.count.labyrinth.large
large:
number
rooms.count.labyrinth.medium
medium:
number
rooms.count.labyrinth.small
small:
number
rooms.size
size:
object
rooms.size.large
large:
number
rooms.size.max
max:
number
rooms.size.medium
medium:
number
rooms.size.min
min:
number
rooms.sizeProbability
sizeProbability:
object
rooms.sizeProbability.branching
branching:
object[]
rooms.sizeProbability.sideways
sideways:
object[]
spawnDelay
spawnDelay:
object
spawnDelay.crawler
crawler:
number[]
spawnDelay.roomie
roomie:
number[]
spawnDelay.tunneler
tunneler:
number[]
tunnelers
tunnelers:
object
tunnelers.anteroomGenerationSpeedUp
anteroomGenerationSpeedUp:
number
tunnelers.anteroomProbability
anteroomProbability:
number[]
tunnelers.columns
columns:
boolean
tunnelers.joinPreference
joinPreference:
number[]
tunnelers.lastChance
lastChance:
object
tunnelers.lastChance.changeDirection
changeDirection:
number
tunnelers.lastChance.generationDelay
generationDelay:
number
tunnelers.lastChance.makeRoomsLeft
makeRoomsLeft:
number
tunnelers.lastChance.makeRoomsRight
makeRoomsRight:
number
tunnelers.lastChance.straightDoubleSpawn
straightDoubleSpawn:
number
tunnelers.lastChance.turnDoubleSpawn
turnDoubleSpawn:
number
tunnelers.maxAge
maxAge:
number[]
tunnelers.seeds?
optionalseeds?:object[]
tunnelers.sizeDownProbability
sizeDownProbability:
number[]
tunnelers.sizeUpGenerationDelay
sizeUpGenerationDelay:
number
tunnelers.sizeUpProbability
sizeUpProbability:
number[]
Throws
DOMException named DataCloneError (not a DesignValidationError) if a value cannot be cloned at all, such as a function or a symbol.
