Skip to content

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? ​

optional pairs?: 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? ​

optional seeds?: 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? ​

optional population?: 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? ​

optional rectangles?: 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? ​

optional seeds?: 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.

DungeonMaker 2.05 © Peter Henningsen. WebAssembly port, package and site created by spearwolf. Released under GPL-3.0-or-later. About · License