@rpgm-tools/neo-angband-core 0.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.md +43 -0
- package/README.md +80 -0
- package/dist/agent/act.d.ts +22 -0
- package/dist/agent/act.d.ts.map +1 -0
- package/dist/agent/act.js +88 -0
- package/dist/agent/act.js.map +1 -0
- package/dist/agent/controller.d.ts +34 -0
- package/dist/agent/controller.d.ts.map +1 -0
- package/dist/agent/controller.js +90 -0
- package/dist/agent/controller.js.map +1 -0
- package/dist/agent/events.d.ts +27 -0
- package/dist/agent/events.d.ts.map +1 -0
- package/dist/agent/events.js +31 -0
- package/dist/agent/events.js.map +1 -0
- package/dist/agent/index.d.ts +17 -0
- package/dist/agent/index.d.ts.map +1 -0
- package/dist/agent/index.js +15 -0
- package/dist/agent/index.js.map +1 -0
- package/dist/agent/perceive.d.ts +21 -0
- package/dist/agent/perceive.d.ts.map +1 -0
- package/dist/agent/perceive.js +386 -0
- package/dist/agent/perceive.js.map +1 -0
- package/dist/agent/types.d.ts +436 -0
- package/dist/agent/types.d.ts.map +1 -0
- package/dist/agent/types.js +63 -0
- package/dist/agent/types.js.map +1 -0
- package/dist/bitflag.d.ts +199 -0
- package/dist/bitflag.d.ts.map +1 -0
- package/dist/bitflag.js +478 -0
- package/dist/bitflag.js.map +1 -0
- package/dist/cmd.d.ts +164 -0
- package/dist/cmd.d.ts.map +1 -0
- package/dist/cmd.js +350 -0
- package/dist/cmd.js.map +1 -0
- package/dist/color.d.ts +104 -0
- package/dist/color.d.ts.map +1 -0
- package/dist/color.js +240 -0
- package/dist/color.js.map +1 -0
- package/dist/combat/brand-slay.d.ts +119 -0
- package/dist/combat/brand-slay.d.ts.map +1 -0
- package/dist/combat/brand-slay.js +264 -0
- package/dist/combat/brand-slay.js.map +1 -0
- package/dist/combat/hit.d.ts +198 -0
- package/dist/combat/hit.d.ts.map +1 -0
- package/dist/combat/hit.js +310 -0
- package/dist/combat/hit.js.map +1 -0
- package/dist/combat/index.d.ts +15 -0
- package/dist/combat/index.d.ts.map +1 -0
- package/dist/combat/index.js +15 -0
- package/dist/combat/index.js.map +1 -0
- package/dist/combat/melee.d.ts +261 -0
- package/dist/combat/melee.d.ts.map +1 -0
- package/dist/combat/melee.js +402 -0
- package/dist/combat/melee.js.map +1 -0
- package/dist/combat/mon-melee.d.ts +233 -0
- package/dist/combat/mon-melee.d.ts.map +1 -0
- package/dist/combat/mon-melee.js +883 -0
- package/dist/combat/mon-melee.js.map +1 -0
- package/dist/combat/ranged.d.ts +89 -0
- package/dist/combat/ranged.d.ts.map +1 -0
- package/dist/combat/ranged.js +253 -0
- package/dist/combat/ranged.js.map +1 -0
- package/dist/constants.d.ts +134 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +171 -0
- package/dist/constants.js.map +1 -0
- package/dist/dice.d.ts +91 -0
- package/dist/dice.d.ts.map +1 -0
- package/dist/dice.js +424 -0
- package/dist/dice.js.map +1 -0
- package/dist/effects/effect-choice.d.ts +15 -0
- package/dist/effects/effect-choice.d.ts.map +1 -0
- package/dist/effects/effect-choice.js +18 -0
- package/dist/effects/effect-choice.js.map +1 -0
- package/dist/effects/effect-info.d.ts +124 -0
- package/dist/effects/effect-info.d.ts.map +1 -0
- package/dist/effects/effect-info.js +706 -0
- package/dist/effects/effect-info.js.map +1 -0
- package/dist/effects/effect.d.ts +165 -0
- package/dist/effects/effect.d.ts.map +1 -0
- package/dist/effects/effect.js +452 -0
- package/dist/effects/effect.js.map +1 -0
- package/dist/effects/handlers.d.ts +70 -0
- package/dist/effects/handlers.d.ts.map +1 -0
- package/dist/effects/handlers.js +394 -0
- package/dist/effects/handlers.js.map +1 -0
- package/dist/effects/interpreter.d.ts +291 -0
- package/dist/effects/interpreter.d.ts.map +1 -0
- package/dist/effects/interpreter.js +325 -0
- package/dist/effects/interpreter.js.map +1 -0
- package/dist/events.d.ts +188 -0
- package/dist/events.d.ts.map +1 -0
- package/dist/events.js +138 -0
- package/dist/events.js.map +1 -0
- package/dist/expression.d.ts +83 -0
- package/dist/expression.d.ts.map +1 -0
- package/dist/expression.js +333 -0
- package/dist/expression.js.map +1 -0
- package/dist/game/cave-cmd.d.ts +195 -0
- package/dist/game/cave-cmd.d.ts.map +1 -0
- package/dist/game/cave-cmd.js +968 -0
- package/dist/game/cave-cmd.js.map +1 -0
- package/dist/game/char-sheet.d.ts +189 -0
- package/dist/game/char-sheet.d.ts.map +1 -0
- package/dist/game/char-sheet.js +381 -0
- package/dist/game/char-sheet.js.map +1 -0
- package/dist/game/chest.d.ts +94 -0
- package/dist/game/chest.d.ts.map +1 -0
- package/dist/game/chest.js +267 -0
- package/dist/game/chest.js.map +1 -0
- package/dist/game/context.d.ts +970 -0
- package/dist/game/context.d.ts.map +1 -0
- package/dist/game/context.js +353 -0
- package/dist/game/context.js.map +1 -0
- package/dist/game/curse-tick.d.ts +35 -0
- package/dist/game/curse-tick.d.ts.map +1 -0
- package/dist/game/curse-tick.js +100 -0
- package/dist/game/curse-tick.js.map +1 -0
- package/dist/game/describe.d.ts +20 -0
- package/dist/game/describe.d.ts.map +1 -0
- package/dist/game/describe.js +45 -0
- package/dist/game/describe.js.map +1 -0
- package/dist/game/display.d.ts +196 -0
- package/dist/game/display.d.ts.map +1 -0
- package/dist/game/display.js +684 -0
- package/dist/game/display.js.map +1 -0
- package/dist/game/dump-level.d.ts +37 -0
- package/dist/game/dump-level.d.ts.map +1 -0
- package/dist/game/dump-level.js +110 -0
- package/dist/game/dump-level.js.map +1 -0
- package/dist/game/effect-attack.d.ts +36 -0
- package/dist/game/effect-attack.d.ts.map +1 -0
- package/dist/game/effect-attack.js +694 -0
- package/dist/game/effect-attack.js.map +1 -0
- package/dist/game/effect-detect.d.ts +34 -0
- package/dist/game/effect-detect.d.ts.map +1 -0
- package/dist/game/effect-detect.js +456 -0
- package/dist/game/effect-detect.js.map +1 -0
- package/dist/game/effect-env.d.ts +77 -0
- package/dist/game/effect-env.d.ts.map +1 -0
- package/dist/game/effect-env.js +166 -0
- package/dist/game/effect-env.js.map +1 -0
- package/dist/game/effect-game-env.d.ts +76 -0
- package/dist/game/effect-game-env.d.ts.map +1 -0
- package/dist/game/effect-game-env.js +23 -0
- package/dist/game/effect-game-env.js.map +1 -0
- package/dist/game/effect-general.d.ts +98 -0
- package/dist/game/effect-general.d.ts.map +1 -0
- package/dist/game/effect-general.js +914 -0
- package/dist/game/effect-general.js.map +1 -0
- package/dist/game/effect-item.d.ts +124 -0
- package/dist/game/effect-item.d.ts.map +1 -0
- package/dist/game/effect-item.js +789 -0
- package/dist/game/effect-item.js.map +1 -0
- package/dist/game/effect-melee.d.ts +43 -0
- package/dist/game/effect-melee.d.ts.map +1 -0
- package/dist/game/effect-melee.js +477 -0
- package/dist/game/effect-melee.js.map +1 -0
- package/dist/game/effect-mon-origin.d.ts +67 -0
- package/dist/game/effect-mon-origin.d.ts.map +1 -0
- package/dist/game/effect-mon-origin.js +164 -0
- package/dist/game/effect-mon-origin.js.map +1 -0
- package/dist/game/effect-monster.d.ts +29 -0
- package/dist/game/effect-monster.d.ts.map +1 -0
- package/dist/game/effect-monster.js +281 -0
- package/dist/game/effect-monster.js.map +1 -0
- package/dist/game/effect-summon.d.ts +37 -0
- package/dist/game/effect-summon.d.ts.map +1 -0
- package/dist/game/effect-summon.js +113 -0
- package/dist/game/effect-summon.js.map +1 -0
- package/dist/game/effect-teleport.d.ts +130 -0
- package/dist/game/effect-teleport.d.ts.map +1 -0
- package/dist/game/effect-teleport.js +529 -0
- package/dist/game/effect-teleport.js.map +1 -0
- package/dist/game/effect-terrain.d.ts +91 -0
- package/dist/game/effect-terrain.d.ts.map +1 -0
- package/dist/game/effect-terrain.js +812 -0
- package/dist/game/effect-terrain.js.map +1 -0
- package/dist/game/energy.d.ts +45 -0
- package/dist/game/energy.d.ts.map +1 -0
- package/dist/game/energy.js +51 -0
- package/dist/game/energy.js.map +1 -0
- package/dist/game/equip-cmp.d.ts +138 -0
- package/dist/game/equip-cmp.d.ts.map +1 -0
- package/dist/game/equip-cmp.js +363 -0
- package/dist/game/equip-cmp.js.map +1 -0
- package/dist/game/floor.d.ts +182 -0
- package/dist/game/floor.d.ts.map +1 -0
- package/dist/game/floor.js +435 -0
- package/dist/game/floor.js.map +1 -0
- package/dist/game/gear.d.ts +408 -0
- package/dist/game/gear.d.ts.map +1 -0
- package/dist/game/gear.js +1037 -0
- package/dist/game/gear.js.map +1 -0
- package/dist/game/harness.d.ts +61 -0
- package/dist/game/harness.d.ts.map +1 -0
- package/dist/game/harness.js +198 -0
- package/dist/game/harness.js.map +1 -0
- package/dist/game/history.d.ts +49 -0
- package/dist/game/history.d.ts.map +1 -0
- package/dist/game/history.js +55 -0
- package/dist/game/history.js.map +1 -0
- package/dist/game/ignore-cmd.d.ts +42 -0
- package/dist/game/ignore-cmd.d.ts.map +1 -0
- package/dist/game/ignore-cmd.js +59 -0
- package/dist/game/ignore-cmd.js.map +1 -0
- package/dist/game/inscription-confirm.d.ts +80 -0
- package/dist/game/inscription-confirm.d.ts.map +1 -0
- package/dist/game/inscription-confirm.js +95 -0
- package/dist/game/inscription-confirm.js.map +1 -0
- package/dist/game/known.d.ts +297 -0
- package/dist/game/known.d.ts.map +1 -0
- package/dist/game/known.js +849 -0
- package/dist/game/known.js.map +1 -0
- package/dist/game/loop.d.ts +139 -0
- package/dist/game/loop.d.ts.map +1 -0
- package/dist/game/loop.js +631 -0
- package/dist/game/loop.js.map +1 -0
- package/dist/game/lore-color.d.ts +25 -0
- package/dist/game/lore-color.d.ts.map +1 -0
- package/dist/game/lore-color.js +95 -0
- package/dist/game/lore-color.js.map +1 -0
- package/dist/game/mon-cast.d.ts +150 -0
- package/dist/game/mon-cast.d.ts.map +1 -0
- package/dist/game/mon-cast.js +301 -0
- package/dist/game/mon-cast.js.map +1 -0
- package/dist/game/mon-cmd.d.ts +51 -0
- package/dist/game/mon-cmd.d.ts.map +1 -0
- package/dist/game/mon-cmd.js +670 -0
- package/dist/game/mon-cmd.js.map +1 -0
- package/dist/game/mon-death.d.ts +143 -0
- package/dist/game/mon-death.d.ts.map +1 -0
- package/dist/game/mon-death.js +328 -0
- package/dist/game/mon-death.js.map +1 -0
- package/dist/game/mon-group.d.ts +81 -0
- package/dist/game/mon-group.d.ts.map +1 -0
- package/dist/game/mon-group.js +323 -0
- package/dist/game/mon-group.js.map +1 -0
- package/dist/game/mon-list.d.ts +85 -0
- package/dist/game/mon-list.d.ts.map +1 -0
- package/dist/game/mon-list.js +154 -0
- package/dist/game/mon-list.js.map +1 -0
- package/dist/game/mon-message.d.ts +100 -0
- package/dist/game/mon-message.d.ts.map +1 -0
- package/dist/game/mon-message.js +336 -0
- package/dist/game/mon-message.js.map +1 -0
- package/dist/game/mon-place.d.ts +226 -0
- package/dist/game/mon-place.d.ts.map +1 -0
- package/dist/game/mon-place.js +642 -0
- package/dist/game/mon-place.js.map +1 -0
- package/dist/game/mon-ranged.d.ts +87 -0
- package/dist/game/mon-ranged.d.ts.map +1 -0
- package/dist/game/mon-ranged.js +353 -0
- package/dist/game/mon-ranged.js.map +1 -0
- package/dist/game/mon-shape.d.ts +43 -0
- package/dist/game/mon-shape.d.ts.map +1 -0
- package/dist/game/mon-shape.js +115 -0
- package/dist/game/mon-shape.js.map +1 -0
- package/dist/game/mon-side.d.ts +63 -0
- package/dist/game/mon-side.d.ts.map +1 -0
- package/dist/game/mon-side.js +403 -0
- package/dist/game/mon-side.js.map +1 -0
- package/dist/game/monster-turn.d.ts +195 -0
- package/dist/game/monster-turn.d.ts.map +1 -0
- package/dist/game/monster-turn.js +1560 -0
- package/dist/game/monster-turn.js.map +1 -0
- package/dist/game/obj-cmd.d.ts +453 -0
- package/dist/game/obj-cmd.d.ts.map +1 -0
- package/dist/game/obj-cmd.js +1530 -0
- package/dist/game/obj-cmd.js.map +1 -0
- package/dist/game/obj-list.d.ts +92 -0
- package/dist/game/obj-list.d.ts.map +1 -0
- package/dist/game/obj-list.js +251 -0
- package/dist/game/obj-list.js.map +1 -0
- package/dist/game/object-inspect.d.ts +37 -0
- package/dist/game/object-inspect.d.ts.map +1 -0
- package/dist/game/object-inspect.js +106 -0
- package/dist/game/object-inspect.js.map +1 -0
- package/dist/game/pickup.d.ts +126 -0
- package/dist/game/pickup.d.ts.map +1 -0
- package/dist/game/pickup.js +367 -0
- package/dist/game/pickup.js.map +1 -0
- package/dist/game/player-path.d.ts +133 -0
- package/dist/game/player-path.d.ts.map +1 -0
- package/dist/game/player-path.js +1268 -0
- package/dist/game/player-path.js.map +1 -0
- package/dist/game/player-side.d.ts +59 -0
- package/dist/game/player-side.d.ts.map +1 -0
- package/dist/game/player-side.js +506 -0
- package/dist/game/player-side.js.map +1 -0
- package/dist/game/player-turn.d.ts +161 -0
- package/dist/game/player-turn.d.ts.map +1 -0
- package/dist/game/player-turn.js +739 -0
- package/dist/game/player-turn.js.map +1 -0
- package/dist/game/project-cast.d.ts +268 -0
- package/dist/game/project-cast.d.ts.map +1 -0
- package/dist/game/project-cast.js +496 -0
- package/dist/game/project-cast.js.map +1 -0
- package/dist/game/project-feat.d.ts +47 -0
- package/dist/game/project-feat.d.ts.map +1 -0
- package/dist/game/project-feat.js +350 -0
- package/dist/game/project-feat.js.map +1 -0
- package/dist/game/project-monster.d.ts +106 -0
- package/dist/game/project-monster.d.ts.map +1 -0
- package/dist/game/project-monster.js +272 -0
- package/dist/game/project-monster.js.map +1 -0
- package/dist/game/project-obj.d.ts +60 -0
- package/dist/game/project-obj.d.ts.map +1 -0
- package/dist/game/project-obj.js +245 -0
- package/dist/game/project-obj.js.map +1 -0
- package/dist/game/project-player.d.ts +120 -0
- package/dist/game/project-player.d.ts.map +1 -0
- package/dist/game/project-player.js +108 -0
- package/dist/game/project-player.js.map +1 -0
- package/dist/game/quest.d.ts +101 -0
- package/dist/game/quest.d.ts.map +1 -0
- package/dist/game/quest.js +192 -0
- package/dist/game/quest.js.map +1 -0
- package/dist/game/ranged-cmd.d.ts +32 -0
- package/dist/game/ranged-cmd.d.ts.map +1 -0
- package/dist/game/ranged-cmd.js +372 -0
- package/dist/game/ranged-cmd.js.map +1 -0
- package/dist/game/scheduler.d.ts +47 -0
- package/dist/game/scheduler.d.ts.map +1 -0
- package/dist/game/scheduler.js +141 -0
- package/dist/game/scheduler.js.map +1 -0
- package/dist/game/spell-cmd.d.ts +104 -0
- package/dist/game/spell-cmd.d.ts.map +1 -0
- package/dist/game/spell-cmd.js +320 -0
- package/dist/game/spell-cmd.js.map +1 -0
- package/dist/game/spoil.d.ts +28 -0
- package/dist/game/spoil.d.ts.map +1 -0
- package/dist/game/spoil.js +435 -0
- package/dist/game/spoil.js.map +1 -0
- package/dist/game/steal.d.ts +35 -0
- package/dist/game/steal.d.ts.map +1 -0
- package/dist/game/steal.js +145 -0
- package/dist/game/steal.js.map +1 -0
- package/dist/game/take-hit-hooks.d.ts +52 -0
- package/dist/game/take-hit-hooks.d.ts.map +1 -0
- package/dist/game/take-hit-hooks.js +127 -0
- package/dist/game/take-hit-hooks.js.map +1 -0
- package/dist/game/target-loop.d.ts +119 -0
- package/dist/game/target-loop.d.ts.map +1 -0
- package/dist/game/target-loop.js +408 -0
- package/dist/game/target-loop.js.map +1 -0
- package/dist/game/target.d.ts +133 -0
- package/dist/game/target.d.ts.map +1 -0
- package/dist/game/target.js +353 -0
- package/dist/game/target.js.map +1 -0
- package/dist/game/thrust.d.ts +37 -0
- package/dist/game/thrust.d.ts.map +1 -0
- package/dist/game/thrust.js +155 -0
- package/dist/game/thrust.js.map +1 -0
- package/dist/game/trap.d.ts +218 -0
- package/dist/game/trap.d.ts.map +1 -0
- package/dist/game/trap.js +618 -0
- package/dist/game/trap.js.map +1 -0
- package/dist/game/ui-entry.d.ts +282 -0
- package/dist/game/ui-entry.d.ts.map +1 -0
- package/dist/game/ui-entry.js +1838 -0
- package/dist/game/ui-entry.js.map +1 -0
- package/dist/game/wizard.d.ts +654 -0
- package/dist/game/wizard.d.ts.map +1 -0
- package/dist/game/wizard.js +1323 -0
- package/dist/game/wizard.js.map +1 -0
- package/dist/game/world.d.ts +183 -0
- package/dist/game/world.d.ts.map +1 -0
- package/dist/game/world.js +685 -0
- package/dist/game/world.js.map +1 -0
- package/dist/gen/cave.d.ts +247 -0
- package/dist/gen/cave.d.ts.map +1 -0
- package/dist/gen/cave.js +2406 -0
- package/dist/gen/cave.js.map +1 -0
- package/dist/gen/gen-monster.d.ts +151 -0
- package/dist/gen/gen-monster.d.ts.map +1 -0
- package/dist/gen/gen-monster.js +473 -0
- package/dist/gen/gen-monster.js.map +1 -0
- package/dist/gen/generate.d.ts +240 -0
- package/dist/gen/generate.d.ts.map +1 -0
- package/dist/gen/generate.js +358 -0
- package/dist/gen/generate.js.map +1 -0
- package/dist/gen/room.d.ts +160 -0
- package/dist/gen/room.d.ts.map +1 -0
- package/dist/gen/room.js +1910 -0
- package/dist/gen/room.js.map +1 -0
- package/dist/gen/util.d.ts +466 -0
- package/dist/gen/util.d.ts.map +1 -0
- package/dist/gen/util.js +1553 -0
- package/dist/gen/util.js.map +1 -0
- package/dist/generated/dun-profiles.d.ts +44 -0
- package/dist/generated/dun-profiles.d.ts.map +1 -0
- package/dist/generated/dun-profiles.js +28 -0
- package/dist/generated/dun-profiles.js.map +1 -0
- package/dist/generated/effects.d.ts +1021 -0
- package/dist/generated/effects.d.ts.map +1 -0
- package/dist/generated/effects.js +239 -0
- package/dist/generated/effects.js.map +1 -0
- package/dist/generated/elements.d.ts +83 -0
- package/dist/generated/elements.d.ts.map +1 -0
- package/dist/generated/elements.js +60 -0
- package/dist/generated/elements.js.map +1 -0
- package/dist/generated/equip-slots.d.ts +104 -0
- package/dist/generated/equip-slots.d.ts.map +1 -0
- package/dist/generated/equip-slots.js +34 -0
- package/dist/generated/equip-slots.js.map +1 -0
- package/dist/generated/history-types.d.ts +52 -0
- package/dist/generated/history-types.d.ts.map +1 -0
- package/dist/generated/history-types.js +32 -0
- package/dist/generated/history-types.js.map +1 -0
- package/dist/generated/ignore-types.d.ts +116 -0
- package/dist/generated/ignore-types.d.ts.map +1 -0
- package/dist/generated/ignore-types.js +64 -0
- package/dist/generated/ignore-types.js.map +1 -0
- package/dist/generated/index.d.ts +32 -0
- package/dist/generated/index.d.ts.map +1 -0
- package/dist/generated/index.js +33 -0
- package/dist/generated/index.js.map +1 -0
- package/dist/generated/kind-flags.d.ts +72 -0
- package/dist/generated/kind-flags.d.ts.map +1 -0
- package/dist/generated/kind-flags.js +42 -0
- package/dist/generated/kind-flags.js.map +1 -0
- package/dist/generated/message.d.ts +624 -0
- package/dist/generated/message.d.ts.map +1 -0
- package/dist/generated/message.js +318 -0
- package/dist/generated/message.js.map +1 -0
- package/dist/generated/mon-message.d.ts +386 -0
- package/dist/generated/mon-message.d.ts.map +1 -0
- package/dist/generated/mon-message.js +136 -0
- package/dist/generated/mon-message.js.map +1 -0
- package/dist/generated/mon-race-flags.d.ts +433 -0
- package/dist/generated/mon-race-flags.d.ts.map +1 -0
- package/dist/generated/mon-race-flags.js +180 -0
- package/dist/generated/mon-race-flags.js.map +1 -0
- package/dist/generated/mon-spells.d.ts +380 -0
- package/dist/generated/mon-spells.d.ts.map +1 -0
- package/dist/generated/mon-spells.js +196 -0
- package/dist/generated/mon-spells.js.map +1 -0
- package/dist/generated/mon-temp-flags.d.ts +52 -0
- package/dist/generated/mon-temp-flags.d.ts.map +1 -0
- package/dist/generated/mon-temp-flags.js +32 -0
- package/dist/generated/mon-temp-flags.js.map +1 -0
- package/dist/generated/mon-timed.d.ts +118 -0
- package/dist/generated/mon-timed.d.ts.map +1 -0
- package/dist/generated/mon-timed.js +32 -0
- package/dist/generated/mon-timed.js.map +1 -0
- package/dist/generated/object-flags.d.ts +169 -0
- package/dist/generated/object-flags.d.ts.map +1 -0
- package/dist/generated/object-flags.js +93 -0
- package/dist/generated/object-flags.js.map +1 -0
- package/dist/generated/object-modifiers.d.ts +50 -0
- package/dist/generated/object-modifiers.d.ts.map +1 -0
- package/dist/generated/object-modifiers.js +41 -0
- package/dist/generated/object-modifiers.js.map +1 -0
- package/dist/generated/options.d.ts +284 -0
- package/dist/generated/options.d.ts.map +1 -0
- package/dist/generated/options.js +102 -0
- package/dist/generated/options.js.map +1 -0
- package/dist/generated/origins.d.ts +138 -0
- package/dist/generated/origins.d.ts.map +1 -0
- package/dist/generated/origins.js +62 -0
- package/dist/generated/origins.js.map +1 -0
- package/dist/generated/parser-errors.d.ts +264 -0
- package/dist/generated/parser-errors.d.ts.map +1 -0
- package/dist/generated/parser-errors.js +138 -0
- package/dist/generated/parser-errors.js.map +1 -0
- package/dist/generated/player-flags.d.ts +62 -0
- package/dist/generated/player-flags.d.ts.map +1 -0
- package/dist/generated/player-flags.js +46 -0
- package/dist/generated/player-flags.js.map +1 -0
- package/dist/generated/player-timed.d.ts +273 -0
- package/dist/generated/player-timed.d.ts.map +1 -0
- package/dist/generated/player-timed.js +116 -0
- package/dist/generated/player-timed.js.map +1 -0
- package/dist/generated/projections.d.ts +130 -0
- package/dist/generated/projections.d.ts.map +1 -0
- package/dist/generated/projections.js +101 -0
- package/dist/generated/projections.js.map +1 -0
- package/dist/generated/randart-properties.d.ts +388 -0
- package/dist/generated/randart-properties.d.ts.map +1 -0
- package/dist/generated/randart-properties.js +200 -0
- package/dist/generated/randart-properties.js.map +1 -0
- package/dist/generated/room-flags.d.ts +21 -0
- package/dist/generated/room-flags.d.ts.map +1 -0
- package/dist/generated/room-flags.js +19 -0
- package/dist/generated/room-flags.js.map +1 -0
- package/dist/generated/rooms.d.ts +122 -0
- package/dist/generated/rooms.d.ts.map +1 -0
- package/dist/generated/rooms.js +48 -0
- package/dist/generated/rooms.js.map +1 -0
- package/dist/generated/square-flags.d.ts +96 -0
- package/dist/generated/square-flags.d.ts.map +1 -0
- package/dist/generated/square-flags.js +54 -0
- package/dist/generated/square-flags.js.map +1 -0
- package/dist/generated/stats.d.ts +23 -0
- package/dist/generated/stats.d.ts.map +1 -0
- package/dist/generated/stats.js +20 -0
- package/dist/generated/stats.js.map +1 -0
- package/dist/generated/terrain-flags.d.ts +136 -0
- package/dist/generated/terrain-flags.d.ts.map +1 -0
- package/dist/generated/terrain-flags.js +74 -0
- package/dist/generated/terrain-flags.js.map +1 -0
- package/dist/generated/terrain.d.ts +83 -0
- package/dist/generated/terrain.d.ts.map +1 -0
- package/dist/generated/terrain.js +60 -0
- package/dist/generated/terrain.js.map +1 -0
- package/dist/generated/trap-flags.d.ts +68 -0
- package/dist/generated/trap-flags.d.ts.map +1 -0
- package/dist/generated/trap-flags.js +40 -0
- package/dist/generated/trap-flags.js.map +1 -0
- package/dist/generated/tvals.d.ts +152 -0
- package/dist/generated/tvals.d.ts.map +1 -0
- package/dist/generated/tvals.js +82 -0
- package/dist/generated/tvals.js.map +1 -0
- package/dist/generated/ui-entry-renderers.d.ts +62 -0
- package/dist/generated/ui-entry-renderers.d.ts.map +1 -0
- package/dist/generated/ui-entry-renderers.js +22 -0
- package/dist/generated/ui-entry-renderers.js.map +1 -0
- package/dist/guard.d.ts +43 -0
- package/dist/guard.d.ts.map +1 -0
- package/dist/guard.js +65 -0
- package/dist/guard.js.map +1 -0
- package/dist/host/args.d.ts +129 -0
- package/dist/host/args.d.ts.map +1 -0
- package/dist/host/args.js +251 -0
- package/dist/host/args.js.map +1 -0
- package/dist/host/bridge.d.ts +61 -0
- package/dist/host/bridge.d.ts.map +1 -0
- package/dist/host/bridge.js +176 -0
- package/dist/host/bridge.js.map +1 -0
- package/dist/host/index.d.ts +18 -0
- package/dist/host/index.d.ts.map +1 -0
- package/dist/host/index.js +18 -0
- package/dist/host/index.js.map +1 -0
- package/dist/host/io.d.ts +169 -0
- package/dist/host/io.d.ts.map +1 -0
- package/dist/host/io.js +137 -0
- package/dist/host/io.js.map +1 -0
- package/dist/host/memory.d.ts +56 -0
- package/dist/host/memory.d.ts.map +1 -0
- package/dist/host/memory.js +105 -0
- package/dist/host/memory.js.map +1 -0
- package/dist/host/raw.d.ts +114 -0
- package/dist/host/raw.d.ts.map +1 -0
- package/dist/host/raw.js +107 -0
- package/dist/host/raw.js.map +1 -0
- package/dist/index.d.ts +180 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +222 -0
- package/dist/index.js.map +1 -0
- package/dist/loc.d.ts +63 -0
- package/dist/loc.d.ts.map +1 -0
- package/dist/loc.js +128 -0
- package/dist/loc.js.map +1 -0
- package/dist/mod/hooks.d.ts +204 -0
- package/dist/mod/hooks.d.ts.map +1 -0
- package/dist/mod/hooks.js +161 -0
- package/dist/mod/hooks.js.map +1 -0
- package/dist/mod/ids.d.ts +160 -0
- package/dist/mod/ids.d.ts.map +1 -0
- package/dist/mod/ids.js +343 -0
- package/dist/mod/ids.js.map +1 -0
- package/dist/mod/registry-host.d.ts +156 -0
- package/dist/mod/registry-host.d.ts.map +1 -0
- package/dist/mod/registry-host.js +142 -0
- package/dist/mod/registry-host.js.map +1 -0
- package/dist/mod/save-blocks.d.ts +201 -0
- package/dist/mod/save-blocks.d.ts.map +1 -0
- package/dist/mod/save-blocks.js +640 -0
- package/dist/mod/save-blocks.js.map +1 -0
- package/dist/mod/vocabulary.d.ts +104 -0
- package/dist/mod/vocabulary.d.ts.map +1 -0
- package/dist/mod/vocabulary.js +0 -0
- package/dist/mod/vocabulary.js.map +1 -0
- package/dist/mon/bind.d.ts +266 -0
- package/dist/mon/bind.d.ts.map +1 -0
- package/dist/mon/bind.js +610 -0
- package/dist/mon/bind.js.map +1 -0
- package/dist/mon/desc.d.ts +72 -0
- package/dist/mon/desc.d.ts.map +1 -0
- package/dist/mon/desc.js +237 -0
- package/dist/mon/desc.js.map +1 -0
- package/dist/mon/knowledge-groups.d.ts +61 -0
- package/dist/mon/knowledge-groups.d.ts.map +1 -0
- package/dist/mon/knowledge-groups.js +121 -0
- package/dist/mon/knowledge-groups.js.map +1 -0
- package/dist/mon/lore-describe.d.ts +216 -0
- package/dist/mon/lore-describe.d.ts.map +1 -0
- package/dist/mon/lore-describe.js +1105 -0
- package/dist/mon/lore-describe.js.map +1 -0
- package/dist/mon/lore.d.ts +117 -0
- package/dist/mon/lore.d.ts.map +1 -0
- package/dist/mon/lore.js +221 -0
- package/dist/mon/lore.js.map +1 -0
- package/dist/mon/make.d.ts +147 -0
- package/dist/mon/make.d.ts.map +1 -0
- package/dist/mon/make.js +353 -0
- package/dist/mon/make.js.map +1 -0
- package/dist/mon/monster.d.ts +94 -0
- package/dist/mon/monster.d.ts.map +1 -0
- package/dist/mon/monster.js +90 -0
- package/dist/mon/monster.js.map +1 -0
- package/dist/mon/predicate.d.ts +87 -0
- package/dist/mon/predicate.d.ts.map +1 -0
- package/dist/mon/predicate.js +190 -0
- package/dist/mon/predicate.js.map +1 -0
- package/dist/mon/project-mon.d.ts +129 -0
- package/dist/mon/project-mon.d.ts.map +1 -0
- package/dist/mon/project-mon.js +652 -0
- package/dist/mon/project-mon.js.map +1 -0
- package/dist/mon/spell.d.ts +155 -0
- package/dist/mon/spell.d.ts.map +1 -0
- package/dist/mon/spell.js +355 -0
- package/dist/mon/spell.js.map +1 -0
- package/dist/mon/steal.d.ts +112 -0
- package/dist/mon/steal.d.ts.map +1 -0
- package/dist/mon/steal.js +163 -0
- package/dist/mon/steal.js.map +1 -0
- package/dist/mon/summon.d.ts +62 -0
- package/dist/mon/summon.d.ts.map +1 -0
- package/dist/mon/summon.js +111 -0
- package/dist/mon/summon.js.map +1 -0
- package/dist/mon/take-hit.d.ts +75 -0
- package/dist/mon/take-hit.d.ts.map +1 -0
- package/dist/mon/take-hit.js +122 -0
- package/dist/mon/take-hit.js.map +1 -0
- package/dist/mon/timed.d.ts +74 -0
- package/dist/mon/timed.d.ts.map +1 -0
- package/dist/mon/timed.js +219 -0
- package/dist/mon/timed.js.map +1 -0
- package/dist/mon/types.d.ts +252 -0
- package/dist/mon/types.d.ts.map +1 -0
- package/dist/mon/types.js +46 -0
- package/dist/mon/types.js.map +1 -0
- package/dist/msg.d.ts +71 -0
- package/dist/msg.d.ts.map +1 -0
- package/dist/msg.js +126 -0
- package/dist/msg.js.map +1 -0
- package/dist/obj/artifact-fake.d.ts +39 -0
- package/dist/obj/artifact-fake.d.ts.map +1 -0
- package/dist/obj/artifact-fake.js +52 -0
- package/dist/obj/artifact-fake.js.map +1 -0
- package/dist/obj/artifact-known.d.ts +50 -0
- package/dist/obj/artifact-known.d.ts.map +1 -0
- package/dist/obj/artifact-known.js +55 -0
- package/dist/obj/artifact-known.js.map +1 -0
- package/dist/obj/bind.d.ts +219 -0
- package/dist/obj/bind.d.ts.map +1 -0
- package/dist/obj/bind.js +1239 -0
- package/dist/obj/bind.js.map +1 -0
- package/dist/obj/chest.d.ts +91 -0
- package/dist/obj/chest.d.ts.map +1 -0
- package/dist/obj/chest.js +220 -0
- package/dist/obj/chest.js.map +1 -0
- package/dist/obj/desc.d.ts +79 -0
- package/dist/obj/desc.d.ts.map +1 -0
- package/dist/obj/desc.js +602 -0
- package/dist/obj/desc.js.map +1 -0
- package/dist/obj/effects-info.d.ts +78 -0
- package/dist/obj/effects-info.d.ts.map +1 -0
- package/dist/obj/effects-info.js +240 -0
- package/dist/obj/effects-info.js.map +1 -0
- package/dist/obj/flavor.d.ts +68 -0
- package/dist/obj/flavor.d.ts.map +1 -0
- package/dist/obj/flavor.js +201 -0
- package/dist/obj/flavor.js.map +1 -0
- package/dist/obj/ignore.d.ts +143 -0
- package/dist/obj/ignore.d.ts.map +1 -0
- package/dist/obj/ignore.js +345 -0
- package/dist/obj/ignore.js.map +1 -0
- package/dist/obj/knowledge.d.ts +520 -0
- package/dist/obj/knowledge.d.ts.map +1 -0
- package/dist/obj/knowledge.js +1364 -0
- package/dist/obj/knowledge.js.map +1 -0
- package/dist/obj/known-object.d.ts +293 -0
- package/dist/obj/known-object.d.ts.map +1 -0
- package/dist/obj/known-object.js +532 -0
- package/dist/obj/known-object.js.map +1 -0
- package/dist/obj/make.d.ts +292 -0
- package/dist/obj/make.d.ts.map +1 -0
- package/dist/obj/make.js +1055 -0
- package/dist/obj/make.js.map +1 -0
- package/dist/obj/object-info.d.ts +188 -0
- package/dist/obj/object-info.d.ts.map +1 -0
- package/dist/obj/object-info.js +1407 -0
- package/dist/obj/object-info.js.map +1 -0
- package/dist/obj/object.d.ts +335 -0
- package/dist/obj/object.d.ts.map +1 -0
- package/dist/obj/object.js +1051 -0
- package/dist/obj/object.js.map +1 -0
- package/dist/obj/power.d.ts +65 -0
- package/dist/obj/power.d.ts.map +1 -0
- package/dist/obj/power.js +580 -0
- package/dist/obj/power.js.map +1 -0
- package/dist/obj/randart-build.d.ts +223 -0
- package/dist/obj/randart-build.d.ts.map +1 -0
- package/dist/obj/randart-build.js +1444 -0
- package/dist/obj/randart-build.js.map +1 -0
- package/dist/obj/randart-data.d.ts +179 -0
- package/dist/obj/randart-data.d.ts.map +1 -0
- package/dist/obj/randart-data.js +1153 -0
- package/dist/obj/randart-data.js.map +1 -0
- package/dist/obj/randart.d.ts +128 -0
- package/dist/obj/randart.d.ts.map +1 -0
- package/dist/obj/randart.js +458 -0
- package/dist/obj/randart.js.map +1 -0
- package/dist/obj/randname.d.ts +33 -0
- package/dist/obj/randname.d.ts.map +1 -0
- package/dist/obj/randname.js +116 -0
- package/dist/obj/randname.js.map +1 -0
- package/dist/obj/recharge.d.ts +28 -0
- package/dist/obj/recharge.d.ts.map +1 -0
- package/dist/obj/recharge.js +52 -0
- package/dist/obj/recharge.js.map +1 -0
- package/dist/obj/types.d.ts +584 -0
- package/dist/obj/types.d.ts.map +1 -0
- package/dist/obj/types.js +104 -0
- package/dist/obj/types.js.map +1 -0
- package/dist/obj/value.d.ts +64 -0
- package/dist/obj/value.d.ts.map +1 -0
- package/dist/obj/value.js +176 -0
- package/dist/obj/value.js.map +1 -0
- package/dist/player/abilities.d.ts +57 -0
- package/dist/player/abilities.d.ts.map +1 -0
- package/dist/player/abilities.js +118 -0
- package/dist/player/abilities.js.map +1 -0
- package/dist/player/best-digger.d.ts +42 -0
- package/dist/player/best-digger.d.ts.map +1 -0
- package/dist/player/best-digger.js +89 -0
- package/dist/player/best-digger.js.map +1 -0
- package/dist/player/bind.d.ts +270 -0
- package/dist/player/bind.d.ts.map +1 -0
- package/dist/player/bind.js +698 -0
- package/dist/player/bind.js.map +1 -0
- package/dist/player/birth.d.ts +258 -0
- package/dist/player/birth.d.ts.map +1 -0
- package/dist/player/birth.js +639 -0
- package/dist/player/birth.js.map +1 -0
- package/dist/player/calcs.d.ts +403 -0
- package/dist/player/calcs.d.ts.map +1 -0
- package/dist/player/calcs.js +1189 -0
- package/dist/player/calcs.js.map +1 -0
- package/dist/player/combat-regen.d.ts +14 -0
- package/dist/player/combat-regen.d.ts.map +1 -0
- package/dist/player/combat-regen.js +29 -0
- package/dist/player/combat-regen.js.map +1 -0
- package/dist/player/exp.d.ts +96 -0
- package/dist/player/exp.d.ts.map +1 -0
- package/dist/player/exp.js +229 -0
- package/dist/player/exp.js.map +1 -0
- package/dist/player/history.d.ts +91 -0
- package/dist/player/history.d.ts.map +1 -0
- package/dist/player/history.js +145 -0
- package/dist/player/history.js.map +1 -0
- package/dist/player/options.d.ts +123 -0
- package/dist/player/options.d.ts.map +1 -0
- package/dist/player/options.js +199 -0
- package/dist/player/options.js.map +1 -0
- package/dist/player/player.d.ts +242 -0
- package/dist/player/player.d.ts.map +1 -0
- package/dist/player/player.js +119 -0
- package/dist/player/player.js.map +1 -0
- package/dist/player/shape-lore.d.ts +56 -0
- package/dist/player/shape-lore.d.ts.map +1 -0
- package/dist/player/shape-lore.js +221 -0
- package/dist/player/shape-lore.js.map +1 -0
- package/dist/player/spell.d.ts +146 -0
- package/dist/player/spell.d.ts.map +1 -0
- package/dist/player/spell.js +519 -0
- package/dist/player/spell.js.map +1 -0
- package/dist/player/take-hit.d.ts +87 -0
- package/dist/player/take-hit.d.ts.map +1 -0
- package/dist/player/take-hit.js +99 -0
- package/dist/player/take-hit.js.map +1 -0
- package/dist/player/timed.d.ts +205 -0
- package/dist/player/timed.d.ts.map +1 -0
- package/dist/player/timed.js +310 -0
- package/dist/player/timed.js.map +1 -0
- package/dist/player/types.d.ts +390 -0
- package/dist/player/types.d.ts.map +1 -0
- package/dist/player/types.js +51 -0
- package/dist/player/types.js.map +1 -0
- package/dist/rational.d.ts +99 -0
- package/dist/rational.d.ts.map +1 -0
- package/dist/rational.js +345 -0
- package/dist/rational.js.map +1 -0
- package/dist/rng.d.ts +168 -0
- package/dist/rng.d.ts.map +1 -0
- package/dist/rng.js +404 -0
- package/dist/rng.js.map +1 -0
- package/dist/save/buffer.d.ts +120 -0
- package/dist/save/buffer.d.ts.map +1 -0
- package/dist/save/buffer.js +238 -0
- package/dist/save/buffer.js.map +1 -0
- package/dist/save/compress.d.ts +79 -0
- package/dist/save/compress.d.ts.map +1 -0
- package/dist/save/compress.js +97 -0
- package/dist/save/compress.js.map +1 -0
- package/dist/save/description.d.ts +61 -0
- package/dist/save/description.d.ts.map +1 -0
- package/dist/save/description.js +51 -0
- package/dist/save/description.js.map +1 -0
- package/dist/save/integrity.d.ts +59 -0
- package/dist/save/integrity.d.ts.map +1 -0
- package/dist/save/integrity.js +103 -0
- package/dist/save/integrity.js.map +1 -0
- package/dist/score/display.d.ts +40 -0
- package/dist/score/display.d.ts.map +1 -0
- package/dist/score/display.js +86 -0
- package/dist/score/display.js.map +1 -0
- package/dist/score/score.d.ts +166 -0
- package/dist/score/score.d.ts.map +1 -0
- package/dist/score/score.js +244 -0
- package/dist/score/score.js.map +1 -0
- package/dist/score/types.d.ts +98 -0
- package/dist/score/types.d.ts.map +1 -0
- package/dist/score/types.js +27 -0
- package/dist/score/types.js.map +1 -0
- package/dist/session/boot.d.ts +207 -0
- package/dist/session/boot.d.ts.map +1 -0
- package/dist/session/boot.js +151 -0
- package/dist/session/boot.js.map +1 -0
- package/dist/session/game.d.ts +257 -0
- package/dist/session/game.d.ts.map +1 -0
- package/dist/session/game.js +2880 -0
- package/dist/session/game.js.map +1 -0
- package/dist/session/save.d.ts +847 -0
- package/dist/session/save.d.ts.map +1 -0
- package/dist/session/save.js +1306 -0
- package/dist/session/save.js.map +1 -0
- package/dist/sound/engine.d.ts +146 -0
- package/dist/sound/engine.d.ts.map +1 -0
- package/dist/sound/engine.js +332 -0
- package/dist/sound/engine.js.map +1 -0
- package/dist/sound/index.d.ts +13 -0
- package/dist/sound/index.d.ts.map +1 -0
- package/dist/sound/index.js +13 -0
- package/dist/sound/index.js.map +1 -0
- package/dist/sound/sound-prefs-data.d.ts +10 -0
- package/dist/sound/sound-prefs-data.d.ts.map +1 -0
- package/dist/sound/sound-prefs-data.js +165 -0
- package/dist/sound/sound-prefs-data.js.map +1 -0
- package/dist/sound/types.d.ts +64 -0
- package/dist/sound/types.d.ts.map +1 -0
- package/dist/sound/types.js +23 -0
- package/dist/sound/types.js.map +1 -0
- package/dist/store/bind.d.ts +43 -0
- package/dist/store/bind.d.ts.map +1 -0
- package/dist/store/bind.js +130 -0
- package/dist/store/bind.js.map +1 -0
- package/dist/store/price.d.ts +27 -0
- package/dist/store/price.d.ts.map +1 -0
- package/dist/store/price.js +81 -0
- package/dist/store/price.js.map +1 -0
- package/dist/store/store-cmd.d.ts +51 -0
- package/dist/store/store-cmd.d.ts.map +1 -0
- package/dist/store/store-cmd.js +73 -0
- package/dist/store/store-cmd.js.map +1 -0
- package/dist/store/store.d.ts +156 -0
- package/dist/store/store.d.ts.map +1 -0
- package/dist/store/store.js +616 -0
- package/dist/store/store.js.map +1 -0
- package/dist/store/transact.d.ts +198 -0
- package/dist/store/transact.d.ts.map +1 -0
- package/dist/store/transact.js +383 -0
- package/dist/store/transact.js.map +1 -0
- package/dist/store/types.d.ts +101 -0
- package/dist/store/types.d.ts.map +1 -0
- package/dist/store/types.js +14 -0
- package/dist/store/types.js.map +1 -0
- package/dist/version.d.ts +25 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +25 -0
- package/dist/version.js.map +1 -0
- package/dist/visuals/engine.d.ts +223 -0
- package/dist/visuals/engine.d.ts.map +1 -0
- package/dist/visuals/engine.js +357 -0
- package/dist/visuals/engine.js.map +1 -0
- package/dist/visuals/glyph-table.d.ts +112 -0
- package/dist/visuals/glyph-table.d.ts.map +1 -0
- package/dist/visuals/glyph-table.js +156 -0
- package/dist/visuals/glyph-table.js.map +1 -0
- package/dist/visuals/grafmode-data.d.ts +4 -0
- package/dist/visuals/grafmode-data.d.ts.map +1 -0
- package/dist/visuals/grafmode-data.js +88 -0
- package/dist/visuals/grafmode-data.js.map +1 -0
- package/dist/visuals/grafmode.d.ts +83 -0
- package/dist/visuals/grafmode.d.ts.map +1 -0
- package/dist/visuals/grafmode.js +82 -0
- package/dist/visuals/grafmode.js.map +1 -0
- package/dist/visuals/index.d.ts +19 -0
- package/dist/visuals/index.d.ts.map +1 -0
- package/dist/visuals/index.js +19 -0
- package/dist/visuals/index.js.map +1 -0
- package/dist/visuals/map-text.d.ts +79 -0
- package/dist/visuals/map-text.d.ts.map +1 -0
- package/dist/visuals/map-text.js +122 -0
- package/dist/visuals/map-text.js.map +1 -0
- package/dist/visuals/pref-expr.d.ts +56 -0
- package/dist/visuals/pref-expr.d.ts.map +1 -0
- package/dist/visuals/pref-expr.js +173 -0
- package/dist/visuals/pref-expr.js.map +1 -0
- package/dist/visuals/prefs.d.ts +280 -0
- package/dist/visuals/prefs.d.ts.map +1 -0
- package/dist/visuals/prefs.js +835 -0
- package/dist/visuals/prefs.js.map +1 -0
- package/dist/visuals/tile-prefs.d.ts +132 -0
- package/dist/visuals/tile-prefs.d.ts.map +1 -0
- package/dist/visuals/tile-prefs.js +105 -0
- package/dist/visuals/tile-prefs.js.map +1 -0
- package/dist/world/chunk.d.ts +195 -0
- package/dist/world/chunk.d.ts.map +1 -0
- package/dist/world/chunk.js +422 -0
- package/dist/world/chunk.js.map +1 -0
- package/dist/world/feature.d.ts +86 -0
- package/dist/world/feature.d.ts.map +1 -0
- package/dist/world/feature.js +153 -0
- package/dist/world/feature.js.map +1 -0
- package/dist/world/flow.d.ts +33 -0
- package/dist/world/flow.d.ts.map +1 -0
- package/dist/world/flow.js +115 -0
- package/dist/world/flow.js.map +1 -0
- package/dist/world/project.d.ts +176 -0
- package/dist/world/project.d.ts.map +1 -0
- package/dist/world/project.js +543 -0
- package/dist/world/project.js.map +1 -0
- package/dist/world/projection.d.ts +100 -0
- package/dist/world/projection.d.ts.map +1 -0
- package/dist/world/projection.js +152 -0
- package/dist/world/projection.js.map +1 -0
- package/dist/world/scatter.d.ts +25 -0
- package/dist/world/scatter.d.ts.map +1 -0
- package/dist/world/scatter.js +54 -0
- package/dist/world/scatter.js.map +1 -0
- package/dist/world/trap.d.ts +84 -0
- package/dist/world/trap.d.ts.map +1 -0
- package/dist/world/trap.js +106 -0
- package/dist/world/trap.js.map +1 -0
- package/dist/world/view.d.ts +60 -0
- package/dist/world/view.d.ts.map +1 -0
- package/dist/world/view.js +436 -0
- package/dist/world/view.js.map +1 -0
- package/dist/z-queue.d.ts +133 -0
- package/dist/z-queue.d.ts.map +1 -0
- package/dist/z-queue.js +283 -0
- package/dist/z-queue.js.map +1 -0
- package/package.json +75 -0
- package/src/agent/act.ts +114 -0
- package/src/agent/controller.ts +109 -0
- package/src/agent/events.ts +47 -0
- package/src/agent/index.ts +36 -0
- package/src/agent/perceive.ts +440 -0
- package/src/agent/types.ts +464 -0
- package/src/bitflag.ts +536 -0
- package/src/cmd.ts +547 -0
- package/src/color.ts +267 -0
- package/src/combat/brand-slay.ts +360 -0
- package/src/combat/hit.ts +471 -0
- package/src/combat/index.ts +15 -0
- package/src/combat/melee.ts +728 -0
- package/src/combat/mon-melee.ts +1153 -0
- package/src/combat/ranged.ts +397 -0
- package/src/constants.ts +324 -0
- package/src/dice.ts +467 -0
- package/src/effects/effect-choice.ts +32 -0
- package/src/effects/effect-info.ts +859 -0
- package/src/effects/effect.ts +560 -0
- package/src/effects/handlers.ts +452 -0
- package/src/effects/interpreter.ts +603 -0
- package/src/events.ts +317 -0
- package/src/expression.ts +360 -0
- package/src/game/cave-cmd.ts +1147 -0
- package/src/game/char-sheet.ts +557 -0
- package/src/game/chest.ts +348 -0
- package/src/game/context.ts +1218 -0
- package/src/game/curse-tick.ts +130 -0
- package/src/game/describe.ts +62 -0
- package/src/game/display.ts +838 -0
- package/src/game/dump-level.ts +114 -0
- package/src/game/effect-attack.ts +746 -0
- package/src/game/effect-detect.ts +542 -0
- package/src/game/effect-env.ts +252 -0
- package/src/game/effect-game-env.ts +86 -0
- package/src/game/effect-general.ts +1122 -0
- package/src/game/effect-item.ts +999 -0
- package/src/game/effect-melee.ts +557 -0
- package/src/game/effect-mon-origin.ts +196 -0
- package/src/game/effect-monster.ts +310 -0
- package/src/game/effect-summon.ts +161 -0
- package/src/game/effect-teleport.ts +645 -0
- package/src/game/effect-terrain.ts +881 -0
- package/src/game/energy.ts +61 -0
- package/src/game/equip-cmp.ts +476 -0
- package/src/game/floor.ts +524 -0
- package/src/game/gear.ts +1352 -0
- package/src/game/harness.ts +270 -0
- package/src/game/history.ts +78 -0
- package/src/game/ignore-cmd.ts +68 -0
- package/src/game/inscription-confirm.ts +115 -0
- package/src/game/known.ts +960 -0
- package/src/game/loop.ts +671 -0
- package/src/game/lore-color.ts +108 -0
- package/src/game/mon-cast.ts +409 -0
- package/src/game/mon-cmd.ts +767 -0
- package/src/game/mon-death.ts +459 -0
- package/src/game/mon-group.ts +368 -0
- package/src/game/mon-list.ts +213 -0
- package/src/game/mon-message.ts +359 -0
- package/src/game/mon-place.ts +1012 -0
- package/src/game/mon-ranged.ts +405 -0
- package/src/game/mon-shape.ts +161 -0
- package/src/game/mon-side.ts +511 -0
- package/src/game/monster-turn.ts +1750 -0
- package/src/game/obj-cmd.ts +1970 -0
- package/src/game/obj-list.ts +302 -0
- package/src/game/object-inspect.ts +162 -0
- package/src/game/pickup.ts +483 -0
- package/src/game/player-path.ts +1434 -0
- package/src/game/player-side.ts +555 -0
- package/src/game/player-turn.ts +852 -0
- package/src/game/project-cast.ts +766 -0
- package/src/game/project-feat.ts +386 -0
- package/src/game/project-monster.ts +407 -0
- package/src/game/project-obj.ts +298 -0
- package/src/game/project-player.ts +236 -0
- package/src/game/quest.ts +248 -0
- package/src/game/ranged-cmd.ts +417 -0
- package/src/game/scheduler.ts +150 -0
- package/src/game/spell-cmd.ts +404 -0
- package/src/game/spoil.ts +562 -0
- package/src/game/steal.ts +169 -0
- package/src/game/take-hit-hooks.ts +152 -0
- package/src/game/target-loop.ts +501 -0
- package/src/game/target.ts +424 -0
- package/src/game/thrust.ts +174 -0
- package/src/game/trap.ts +791 -0
- package/src/game/ui-entry.ts +2075 -0
- package/src/game/wizard.ts +1760 -0
- package/src/game/world.ts +786 -0
- package/src/gen/cave.ts +2858 -0
- package/src/gen/gen-monster.ts +592 -0
- package/src/gen/generate.ts +523 -0
- package/src/gen/room.ts +2213 -0
- package/src/gen/util.ts +1958 -0
- package/src/generated/dun-profiles.ts +30 -0
- package/src/generated/effects.ts +241 -0
- package/src/generated/elements.ts +62 -0
- package/src/generated/equip-slots.ts +36 -0
- package/src/generated/history-types.ts +34 -0
- package/src/generated/ignore-types.ts +66 -0
- package/src/generated/index.ts +33 -0
- package/src/generated/kind-flags.ts +44 -0
- package/src/generated/message.ts +320 -0
- package/src/generated/mon-message.ts +138 -0
- package/src/generated/mon-race-flags.ts +182 -0
- package/src/generated/mon-spells.ts +198 -0
- package/src/generated/mon-temp-flags.ts +34 -0
- package/src/generated/mon-timed.ts +34 -0
- package/src/generated/object-flags.ts +95 -0
- package/src/generated/object-modifiers.ts +43 -0
- package/src/generated/options.ts +104 -0
- package/src/generated/origins.ts +64 -0
- package/src/generated/parser-errors.ts +140 -0
- package/src/generated/player-flags.ts +48 -0
- package/src/generated/player-timed.ts +118 -0
- package/src/generated/projections.ts +103 -0
- package/src/generated/randart-properties.ts +202 -0
- package/src/generated/room-flags.ts +21 -0
- package/src/generated/rooms.ts +50 -0
- package/src/generated/square-flags.ts +56 -0
- package/src/generated/stats.ts +22 -0
- package/src/generated/terrain-flags.ts +76 -0
- package/src/generated/terrain.ts +62 -0
- package/src/generated/trap-flags.ts +42 -0
- package/src/generated/tvals.ts +84 -0
- package/src/generated/ui-entry-renderers.ts +24 -0
- package/src/guard.ts +70 -0
- package/src/host/args.ts +334 -0
- package/src/host/bridge.ts +193 -0
- package/src/host/index.ts +18 -0
- package/src/host/io.ts +239 -0
- package/src/host/memory.ts +134 -0
- package/src/host/raw.ts +190 -0
- package/src/index.ts +250 -0
- package/src/loc.ts +157 -0
- package/src/mod/hooks.ts +278 -0
- package/src/mod/ids.ts +390 -0
- package/src/mod/registry-host.ts +258 -0
- package/src/mod/save-blocks.ts +787 -0
- package/src/mod/vocabulary.ts +0 -0
- package/src/mon/bind.ts +899 -0
- package/src/mon/desc.ts +212 -0
- package/src/mon/knowledge-groups.ts +164 -0
- package/src/mon/lore-describe.ts +1414 -0
- package/src/mon/lore.ts +306 -0
- package/src/mon/make.ts +422 -0
- package/src/mon/monster.ts +161 -0
- package/src/mon/predicate.ts +220 -0
- package/src/mon/project-mon.ts +855 -0
- package/src/mon/spell.ts +418 -0
- package/src/mon/steal.ts +246 -0
- package/src/mon/summon.ts +145 -0
- package/src/mon/take-hit.ts +195 -0
- package/src/mon/timed.ts +300 -0
- package/src/mon/types.ts +286 -0
- package/src/msg.ts +146 -0
- package/src/obj/artifact-fake.ts +63 -0
- package/src/obj/artifact-known.ts +69 -0
- package/src/obj/bind.ts +1345 -0
- package/src/obj/chest.ts +249 -0
- package/src/obj/desc.ts +699 -0
- package/src/obj/effects-info.ts +349 -0
- package/src/obj/flavor.ts +256 -0
- package/src/obj/ignore.ts +387 -0
- package/src/obj/knowledge.ts +1577 -0
- package/src/obj/known-object.ts +718 -0
- package/src/obj/make.ts +1367 -0
- package/src/obj/object-info.ts +1737 -0
- package/src/obj/object.ts +1296 -0
- package/src/obj/power.ts +674 -0
- package/src/obj/randart-build.ts +1705 -0
- package/src/obj/randart-data.ts +1344 -0
- package/src/obj/randart.ts +552 -0
- package/src/obj/randname.ts +128 -0
- package/src/obj/recharge.ts +62 -0
- package/src/obj/types.ts +559 -0
- package/src/obj/value.ts +215 -0
- package/src/player/abilities.ts +142 -0
- package/src/player/best-digger.ts +118 -0
- package/src/player/bind.ts +1021 -0
- package/src/player/birth.ts +794 -0
- package/src/player/calcs.ts +1522 -0
- package/src/player/combat-regen.ts +33 -0
- package/src/player/exp.ts +275 -0
- package/src/player/history.ts +211 -0
- package/src/player/options.ts +244 -0
- package/src/player/player.ts +356 -0
- package/src/player/shape-lore.ts +250 -0
- package/src/player/spell.ts +627 -0
- package/src/player/take-hit.ts +173 -0
- package/src/player/timed.ts +482 -0
- package/src/player/types.ts +415 -0
- package/src/rational.ts +388 -0
- package/src/rng.ts +476 -0
- package/src/save/buffer.ts +287 -0
- package/src/save/compress.ts +132 -0
- package/src/save/description.ts +70 -0
- package/src/save/integrity.ts +133 -0
- package/src/score/display.ts +125 -0
- package/src/score/score.ts +341 -0
- package/src/score/types.ts +104 -0
- package/src/session/boot.ts +338 -0
- package/src/session/game.ts +3712 -0
- package/src/session/save.ts +2074 -0
- package/src/sound/engine.ts +375 -0
- package/src/sound/index.ts +13 -0
- package/src/sound/sound-prefs-data.ts +173 -0
- package/src/sound/types.ts +68 -0
- package/src/store/bind.ts +145 -0
- package/src/store/price.ts +97 -0
- package/src/store/store-cmd.ts +73 -0
- package/src/store/store.ts +723 -0
- package/src/store/transact.ts +644 -0
- package/src/store/types.ts +110 -0
- package/src/version.ts +26 -0
- package/src/visuals/engine.ts +444 -0
- package/src/visuals/glyph-table.ts +191 -0
- package/src/visuals/grafmode-data.ts +90 -0
- package/src/visuals/grafmode.ts +123 -0
- package/src/visuals/index.ts +19 -0
- package/src/visuals/map-text.ts +152 -0
- package/src/visuals/pref-expr.ts +182 -0
- package/src/visuals/prefs.ts +981 -0
- package/src/visuals/tile-prefs.ts +183 -0
- package/src/world/chunk.ts +531 -0
- package/src/world/feature.ts +215 -0
- package/src/world/flow.ts +128 -0
- package/src/world/project.ts +687 -0
- package/src/world/projection.ts +228 -0
- package/src/world/scatter.ts +72 -0
- package/src/world/trap.ts +155 -0
- package/src/world/view.ts +513 -0
- package/src/z-queue.ts +300 -0
|
@@ -0,0 +1,240 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Top-level level generation, ported from the cave_generate() loop of
|
|
3
|
+
* reference/src/generate.c (Angband 4.2.6).
|
|
4
|
+
*
|
|
5
|
+
* generateLevel() picks a dungeon profile by depth, builds the level into a
|
|
6
|
+
* fresh Chunk via the profile's cave builder, then runs the upstream
|
|
7
|
+
* validity checks and the try-until-valid regeneration loop. On success it
|
|
8
|
+
* returns the Gen context, which exposes the finished Chunk, the placed
|
|
9
|
+
* objects and monsters, and the player start location.
|
|
10
|
+
*
|
|
11
|
+
* DEFERRED (ledgered in parity/ledger/gen-framework.yaml): arena and quest
|
|
12
|
+
* levels, persistent-level connectors, and the known-level ("player cave")
|
|
13
|
+
* duplicate. Monster-count overflow is the one upstream post-build
|
|
14
|
+
* regeneration trigger that is kept.
|
|
15
|
+
*
|
|
16
|
+
* NO ADDITIONS BEYOND UPSTREAM. This file holds no fix and no mod's name. It
|
|
17
|
+
* offers ONE extension point - the levelGenerated hook (mod/hooks.ts), consulted
|
|
18
|
+
* on an otherwise-accepted level, which a mod may use to inspect, repair or reject
|
|
19
|
+
* it. With no mod loaded the hook is absent and this loop is a faithful
|
|
20
|
+
* cave_generate, stranded floors included.
|
|
21
|
+
*
|
|
22
|
+
* The staircase-reachability repair used to live in gen/util.ts behind a
|
|
23
|
+
* "bugfix.stairsReachable" flag read here. That put a mod's fix, and a mod's name,
|
|
24
|
+
* inside core; it is now the bug-fixes mod's own code, reaching this loop through
|
|
25
|
+
* the hook like any third-party mod would.
|
|
26
|
+
*
|
|
27
|
+
* Level feeling (generate.c place_feeling / calc_obj_feeling /
|
|
28
|
+
* calc_mon_feeling, L676-761 and L1235-1241) IS ported: placeFeeling scatters
|
|
29
|
+
* feelingTotal hidden SQUARE_FEEL marks (the only RNG this file spends after
|
|
30
|
+
* the retry loop resolves), then the chunk's obj_rating/mon_rating
|
|
31
|
+
* accumulators (populated RNG-free by gen/util.ts placeObject and
|
|
32
|
+
* placeNewMonsterOne during the builder run) are reduced to the final
|
|
33
|
+
* chunk.feeling value.
|
|
34
|
+
*/
|
|
35
|
+
import type { Constants } from "../constants.js";
|
|
36
|
+
import type { MonsterRace } from "../mon/types.js";
|
|
37
|
+
import type { Rng } from "../rng.js";
|
|
38
|
+
import type { FeatureRegistry } from "../world/feature.js";
|
|
39
|
+
import type { TrapKind } from "../world/trap.js";
|
|
40
|
+
import type { MakeDeps } from "../obj/make.js";
|
|
41
|
+
import type { DungeonProfiles } from "./cave.js";
|
|
42
|
+
import type { RoomRegistry } from "./room.js";
|
|
43
|
+
import { Gen, type Connector, type MonPlaceDeps } from "./util.js";
|
|
44
|
+
/** Everything the generator needs beyond an RNG and a depth. */
|
|
45
|
+
export interface GenDeps {
|
|
46
|
+
reg: FeatureRegistry;
|
|
47
|
+
constants: Constants;
|
|
48
|
+
rooms: RoomRegistry;
|
|
49
|
+
profiles: DungeonProfiles;
|
|
50
|
+
/** Object-make dependencies, or null to skip object placement. */
|
|
51
|
+
objDeps: MakeDeps | null;
|
|
52
|
+
/** Monster-placement dependencies, or null to skip monster placement. */
|
|
53
|
+
monDeps: MonPlaceDeps | null;
|
|
54
|
+
/**
|
|
55
|
+
* The trap kind table (trap_info). When present, place_trap picks the kind
|
|
56
|
+
* and rolls the power at generation time (gap 9.2), and the returned Gen's
|
|
57
|
+
* `traps` list carries the choices for the populate path to instantiate
|
|
58
|
+
* directly. Omitted/null keeps the deferred bare-grid behaviour.
|
|
59
|
+
*/
|
|
60
|
+
trapKinds?: readonly TrapKind[] | null;
|
|
61
|
+
/**
|
|
62
|
+
* The mod behaviour seam (mod/hooks.ts), threaded from session/game.ts so the
|
|
63
|
+
* pure generation path can offer its extension point without importing session
|
|
64
|
+
* state. Only `levelGenerated` is consulted here. Absent - always the case with
|
|
65
|
+
* no mod enabled - keeps cave_generate faithful to 4.2.6, unreachable
|
|
66
|
+
* staircases included.
|
|
67
|
+
*/
|
|
68
|
+
hooks?: import("../mod/hooks.js").ModHooks | undefined;
|
|
69
|
+
/**
|
|
70
|
+
* The cheat_room readout (generate.c:1164-1166 and :1222-1224): with that
|
|
71
|
+
* cheat option on, upstream narrates every rejected level - both the builder
|
|
72
|
+
* failures and the monster-maximum overflow. Supplied by the session ONLY
|
|
73
|
+
* when cheat_room is set, so pure generation stays silent; the generation
|
|
74
|
+
* layer has no GameState to reach a msg() through, hence the seam (same shape
|
|
75
|
+
* as StoreMaintContext.cheatMsg for cheat_xtra).
|
|
76
|
+
*/
|
|
77
|
+
cheatMsg?: (text: string) => void;
|
|
78
|
+
/**
|
|
79
|
+
* msg() for generation messages upstream does NOT gate on a cheat option -
|
|
80
|
+
* new_player_spot's "Failed to place player" (gen-util.c:422). Deliberately a
|
|
81
|
+
* different seam from cheatMsg: sharing one would make an ungated message
|
|
82
|
+
* conditional on cheat_room. The session always supplies this.
|
|
83
|
+
*/
|
|
84
|
+
msg?: (text: string) => void;
|
|
85
|
+
}
|
|
86
|
+
export interface GenerateOptions {
|
|
87
|
+
/** Whether this is a quest level (forces the classic profile). */
|
|
88
|
+
quest?: boolean;
|
|
89
|
+
/**
|
|
90
|
+
* choose_profile's wizard override (generate.c L824-836), the answer to
|
|
91
|
+
* "Profile name (eg classic): ". Unknown or absent falls through to the
|
|
92
|
+
* ordinary depth-based selection.
|
|
93
|
+
*/
|
|
94
|
+
profileName?: string | undefined;
|
|
95
|
+
/** Minimum level dimensions (persistent-level stair matching); default 1. */
|
|
96
|
+
minHeight?: number;
|
|
97
|
+
minWidth?: number;
|
|
98
|
+
/** Generation attempts before giving up (upstream: 100). */
|
|
99
|
+
maxTries?: number;
|
|
100
|
+
/**
|
|
101
|
+
* is_daytime() at generation time; only the town builder reads it (for
|
|
102
|
+
* cave_illuminate and the resident count). Defaults to daytime when omitted.
|
|
103
|
+
*/
|
|
104
|
+
daytime?: boolean;
|
|
105
|
+
/**
|
|
106
|
+
* OPT(player, birth_lose_arts): calc_obj_feeling's special "artifacts are
|
|
107
|
+
* easily lost" feeling (generate.c L719). Default false, matching the
|
|
108
|
+
* option's shipped default (list-options.h birth_lose_arts).
|
|
109
|
+
*/
|
|
110
|
+
birthLoseArts?: boolean;
|
|
111
|
+
/**
|
|
112
|
+
* Quest guardians to place on this level (generate.c L1172-1191). The caller
|
|
113
|
+
* (session changeLevel) resolves the player's quests whose level == depth to
|
|
114
|
+
* their races; generateLevel places max_num of each (a unique already alive,
|
|
115
|
+
* cur_num > 0, is skipped). Empty/omitted on non-quest levels.
|
|
116
|
+
*/
|
|
117
|
+
questSpawns?: readonly QuestSpawn[];
|
|
118
|
+
/**
|
|
119
|
+
* OPT(player, birth_levels_persist): mark this build as a persistent-level
|
|
120
|
+
* dungeon (generate.c L1148-1150). Off by default; when on, the builders'
|
|
121
|
+
* dun.persist branches (staircase joins, always-lit persistent rooms) run.
|
|
122
|
+
*/
|
|
123
|
+
persist?: boolean;
|
|
124
|
+
/**
|
|
125
|
+
* get_join_info's result (generate.c L893-992): connectors seeded from the
|
|
126
|
+
* saved stair joins of adjacent levels so up/down stairs line up. The caller
|
|
127
|
+
* (session change-level) resolves adjacent frozen levels and passes their
|
|
128
|
+
* joins through getJoinInfo. Only consulted under `persist`.
|
|
129
|
+
*/
|
|
130
|
+
joinInfo?: JoinInfo;
|
|
131
|
+
/**
|
|
132
|
+
* chunk_find_adjacent (gen-chunk.c:147) for this depth: whether the adjacent
|
|
133
|
+
* persistent level above/below has already been generated. Only consulted
|
|
134
|
+
* under `persist`; handle_level_stairs (gen-cave.c:959-966) skips alloc_stairs
|
|
135
|
+
* for a direction whose neighbour exists (its staircase rooms already placed
|
|
136
|
+
* the matching stairs here via the seeded joinInfo). Harmless when persist is
|
|
137
|
+
* off - the gated stair path ignores them.
|
|
138
|
+
*/
|
|
139
|
+
hasAdjacentAbove?: boolean;
|
|
140
|
+
hasAdjacentBelow?: boolean;
|
|
141
|
+
/**
|
|
142
|
+
* Stored town terrain (chunk_write "Town") for town_gen re-entry without
|
|
143
|
+
* birth_levels_persist (generate.c:1371-1373 / gen-cave.c:2671-2703).
|
|
144
|
+
*/
|
|
145
|
+
townLayout?: import("../world/chunk.js").Chunk | null;
|
|
146
|
+
/**
|
|
147
|
+
* birth_connect_stairs (gen-util.c:427-433, new_player_spot): lay an arrival
|
|
148
|
+
* staircase on the player's start grid - "up" after a descent, "down" after
|
|
149
|
+
* an ascent - so connected stairs line up. The caller (session changeLevel)
|
|
150
|
+
* resolves it from the pending stair command, already gated on the
|
|
151
|
+
* birth_connect_stairs option; null (recall / arena / first spawn) lays no
|
|
152
|
+
* stair, exactly as upstream leaves create_up_stair/create_down_stair unset.
|
|
153
|
+
*/
|
|
154
|
+
createStair?: "down" | "up" | null;
|
|
155
|
+
}
|
|
156
|
+
/** One quest guardian to place: the resolved race and how many to spawn. */
|
|
157
|
+
export interface QuestSpawn {
|
|
158
|
+
race: MonsterRace;
|
|
159
|
+
maxNum: number;
|
|
160
|
+
}
|
|
161
|
+
/** The connectors get_join_info seeds onto a persistent level's dun_data. */
|
|
162
|
+
export interface JoinInfo {
|
|
163
|
+
join: Connector[];
|
|
164
|
+
oneOffAbove: Connector[];
|
|
165
|
+
oneOffBelow: Connector[];
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* The saved stair joins (chunk->join) of the levels adjacent to the target
|
|
169
|
+
* depth, resolved by the caller from the frozen-level cache. An entry that is
|
|
170
|
+
* `undefined` means that level has never been generated; an empty array means
|
|
171
|
+
* it exists but recorded no stairs of the relevant kind.
|
|
172
|
+
*/
|
|
173
|
+
export interface AdjacentJoins {
|
|
174
|
+
/** Level depth-1 (get_join_info: its FEAT_MORE become our FEAT_LESS). */
|
|
175
|
+
above?: readonly Connector[];
|
|
176
|
+
/** Level depth-2 (its FEAT_MORE become one_off_above FEAT_MORE). */
|
|
177
|
+
twoAbove?: readonly Connector[];
|
|
178
|
+
/** Level depth+1 (its FEAT_LESS become our FEAT_MORE). */
|
|
179
|
+
below?: readonly Connector[];
|
|
180
|
+
/** Level depth+2 (its FEAT_LESS become one_off_below FEAT_LESS). */
|
|
181
|
+
twoBelow?: readonly Connector[];
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* get_join_info (generate.c L893-992): build the connector seed for a level
|
|
185
|
+
* from the join lists of its (already-generated) neighbours, so a persistent
|
|
186
|
+
* dungeon keeps up/down stairs aligned across depths. Pure - the caller
|
|
187
|
+
* resolves which neighbours exist and supplies their saved joins. Connectors
|
|
188
|
+
* are prepended (unshift), matching upstream's linked-list insertion order.
|
|
189
|
+
*/
|
|
190
|
+
export declare function getJoinInfo(adj: AdjacentJoins): JoinInfo;
|
|
191
|
+
/**
|
|
192
|
+
* Collect the finished level's staircases as join connectors
|
|
193
|
+
* (generate.c L1203-1214 populating chunk->join): each stair grid plus its
|
|
194
|
+
* feature. RNG-free; the per-connector SQUARE info copy upstream also makes is
|
|
195
|
+
* a deferred detail (the port's Connector carries grid + feat). Feeds the next
|
|
196
|
+
* level's getJoinInfo when persistent levels are wired.
|
|
197
|
+
*
|
|
198
|
+
* Order matters: upstream PREPENDS each stair (new->next = chunk->join;
|
|
199
|
+
* chunk->join = new, L1212-1213), so chunk->join ends up in reverse scan order
|
|
200
|
+
* (head = last grid scanned). getJoinInfo below re-prepends when it reads a
|
|
201
|
+
* neighbour's list, so this reverse-scan order is what makes the resulting
|
|
202
|
+
* dun.join come out in forward scan order exactly as C's does. Prepending here
|
|
203
|
+
* (unshift) rather than pushing is therefore required for stair-room build
|
|
204
|
+
* order on a first-visit persistent level to match upstream.
|
|
205
|
+
*/
|
|
206
|
+
export declare function collectJoins(g: Gen): void;
|
|
207
|
+
/**
|
|
208
|
+
* place_feeling (generate.c L676-703): scatter feeling_total hidden
|
|
209
|
+
* SQUARE_FEEL marks on legal (passable, non-damaging), not-yet-marked
|
|
210
|
+
* grids. Each mark gets up to 500 random-coordinate tries (x drawn before y,
|
|
211
|
+
* matching upstream's `loc(randint0(width), randint0(height))` exactly); a
|
|
212
|
+
* mark that exhausts its tries without landing is simply skipped, same as
|
|
213
|
+
* upstream. Resets feeling_squares to 0 (the runtime reveal counter). This is
|
|
214
|
+
* the ONLY RNG the level-feeling lifecycle spends, and it runs strictly
|
|
215
|
+
* after every room/monster/object placement, so it cannot perturb them.
|
|
216
|
+
*/
|
|
217
|
+
export declare function placeFeeling(g: Gen): void;
|
|
218
|
+
/**
|
|
219
|
+
* calc_obj_feeling (generate.c L711-736): the object-feeling digit (tens
|
|
220
|
+
* place of chunk.feeling), from obj_rating adjusted for depth. Draws no RNG.
|
|
221
|
+
*/
|
|
222
|
+
export declare function calcObjFeeling(g: Gen, birthLoseArts: boolean): number;
|
|
223
|
+
/**
|
|
224
|
+
* calc_mon_feeling (generate.c L742-761): the monster-feeling digit (units
|
|
225
|
+
* place of chunk.feeling), from mon_rating adjusted for depth. Draws no RNG.
|
|
226
|
+
*/
|
|
227
|
+
export declare function calcMonFeeling(g: Gen): number;
|
|
228
|
+
/**
|
|
229
|
+
* chunk_validate_objects (gen-chunk.c:514): assert the finished level holds no
|
|
230
|
+
* malformed objects (tval == 0) on the floor or in any monster's inventory. A
|
|
231
|
+
* pure validation pass drawing no RNG; a tval-0 object indicates a generation
|
|
232
|
+
* bug, so this throws exactly where upstream's assert would abort.
|
|
233
|
+
*/
|
|
234
|
+
export declare function chunkValidateObjects(g: Gen): void;
|
|
235
|
+
/**
|
|
236
|
+
* cave_generate: build one valid dungeon level, retrying on builder failure
|
|
237
|
+
* or maxima overflow. Returns the finished Gen context.
|
|
238
|
+
*/
|
|
239
|
+
export declare function generateLevel(rng: Rng, depth: number, deps: GenDeps, options?: GenerateOptions): Gen;
|
|
240
|
+
//# sourceMappingURL=generate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../src/gen/generate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,358 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Top-level level generation, ported from the cave_generate() loop of
|
|
3
|
+
* reference/src/generate.c (Angband 4.2.6).
|
|
4
|
+
*
|
|
5
|
+
* generateLevel() picks a dungeon profile by depth, builds the level into a
|
|
6
|
+
* fresh Chunk via the profile's cave builder, then runs the upstream
|
|
7
|
+
* validity checks and the try-until-valid regeneration loop. On success it
|
|
8
|
+
* returns the Gen context, which exposes the finished Chunk, the placed
|
|
9
|
+
* objects and monsters, and the player start location.
|
|
10
|
+
*
|
|
11
|
+
* DEFERRED (ledgered in parity/ledger/gen-framework.yaml): arena and quest
|
|
12
|
+
* levels, persistent-level connectors, and the known-level ("player cave")
|
|
13
|
+
* duplicate. Monster-count overflow is the one upstream post-build
|
|
14
|
+
* regeneration trigger that is kept.
|
|
15
|
+
*
|
|
16
|
+
* NO ADDITIONS BEYOND UPSTREAM. This file holds no fix and no mod's name. It
|
|
17
|
+
* offers ONE extension point - the levelGenerated hook (mod/hooks.ts), consulted
|
|
18
|
+
* on an otherwise-accepted level, which a mod may use to inspect, repair or reject
|
|
19
|
+
* it. With no mod loaded the hook is absent and this loop is a faithful
|
|
20
|
+
* cave_generate, stranded floors included.
|
|
21
|
+
*
|
|
22
|
+
* The staircase-reachability repair used to live in gen/util.ts behind a
|
|
23
|
+
* "bugfix.stairsReachable" flag read here. That put a mod's fix, and a mod's name,
|
|
24
|
+
* inside core; it is now the bug-fixes mod's own code, reaching this loop through
|
|
25
|
+
* the hook like any third-party mod would.
|
|
26
|
+
*
|
|
27
|
+
* Level feeling (generate.c place_feeling / calc_obj_feeling /
|
|
28
|
+
* calc_mon_feeling, L676-761 and L1235-1241) IS ported: placeFeeling scatters
|
|
29
|
+
* feelingTotal hidden SQUARE_FEEL marks (the only RNG this file spends after
|
|
30
|
+
* the retry loop resolves), then the chunk's obj_rating/mon_rating
|
|
31
|
+
* accumulators (populated RNG-free by gen/util.ts placeObject and
|
|
32
|
+
* placeNewMonsterOne during the builder run) are reduced to the final
|
|
33
|
+
* chunk.feeling value.
|
|
34
|
+
*/
|
|
35
|
+
import { FEAT, RF, SQUARE } from "../generated/index.js";
|
|
36
|
+
import { MON_GROUP } from "../mon/types.js";
|
|
37
|
+
import { loc } from "../loc.js";
|
|
38
|
+
import { Dun, Gen, findEmpty, placeNewMonster, } from "./util.js";
|
|
39
|
+
/**
|
|
40
|
+
* get_join_info (generate.c L893-992): build the connector seed for a level
|
|
41
|
+
* from the join lists of its (already-generated) neighbours, so a persistent
|
|
42
|
+
* dungeon keeps up/down stairs aligned across depths. Pure - the caller
|
|
43
|
+
* resolves which neighbours exist and supplies their saved joins. Connectors
|
|
44
|
+
* are prepended (unshift), matching upstream's linked-list insertion order.
|
|
45
|
+
*/
|
|
46
|
+
export function getJoinInfo(adj) {
|
|
47
|
+
const join = [];
|
|
48
|
+
const oneOffAbove = [];
|
|
49
|
+
const oneOffBelow = [];
|
|
50
|
+
/* Level above: its down staircases become our up staircases. */
|
|
51
|
+
if (adj.above) {
|
|
52
|
+
for (const j of adj.above) {
|
|
53
|
+
if (j.feat === FEAT.MORE)
|
|
54
|
+
join.unshift({ grid: j.grid, feat: FEAT.LESS });
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
else if (adj.twoAbove) {
|
|
58
|
+
/* No level above, but one two levels up: remember its down staircases so
|
|
59
|
+
* our up staircases won't conflict if that level is later generated. */
|
|
60
|
+
for (const j of adj.twoAbove) {
|
|
61
|
+
if (j.feat === FEAT.MORE) {
|
|
62
|
+
oneOffAbove.unshift({ grid: j.grid, feat: FEAT.MORE });
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
/* Level below: its up staircases become our down staircases. */
|
|
67
|
+
if (adj.below) {
|
|
68
|
+
for (const j of adj.below) {
|
|
69
|
+
if (j.feat === FEAT.LESS)
|
|
70
|
+
join.unshift({ grid: j.grid, feat: FEAT.MORE });
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
else if (adj.twoBelow) {
|
|
74
|
+
for (const j of adj.twoBelow) {
|
|
75
|
+
if (j.feat === FEAT.LESS) {
|
|
76
|
+
oneOffBelow.unshift({ grid: j.grid, feat: FEAT.LESS });
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
return { join, oneOffAbove, oneOffBelow };
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Collect the finished level's staircases as join connectors
|
|
84
|
+
* (generate.c L1203-1214 populating chunk->join): each stair grid plus its
|
|
85
|
+
* feature. RNG-free; the per-connector SQUARE info copy upstream also makes is
|
|
86
|
+
* a deferred detail (the port's Connector carries grid + feat). Feeds the next
|
|
87
|
+
* level's getJoinInfo when persistent levels are wired.
|
|
88
|
+
*
|
|
89
|
+
* Order matters: upstream PREPENDS each stair (new->next = chunk->join;
|
|
90
|
+
* chunk->join = new, L1212-1213), so chunk->join ends up in reverse scan order
|
|
91
|
+
* (head = last grid scanned). getJoinInfo below re-prepends when it reads a
|
|
92
|
+
* neighbour's list, so this reverse-scan order is what makes the resulting
|
|
93
|
+
* dun.join come out in forward scan order exactly as C's does. Prepending here
|
|
94
|
+
* (unshift) rather than pushing is therefore required for stair-room build
|
|
95
|
+
* order on a first-visit persistent level to match upstream.
|
|
96
|
+
*/
|
|
97
|
+
export function collectJoins(g) {
|
|
98
|
+
const c = g.c;
|
|
99
|
+
for (let y = 0; y < c.height; y++) {
|
|
100
|
+
for (let x = 0; x < c.width; x++) {
|
|
101
|
+
const grid = loc(x, y);
|
|
102
|
+
if (c.isStairs(grid)) {
|
|
103
|
+
g.joins.unshift({
|
|
104
|
+
grid,
|
|
105
|
+
feat: c.feat(grid),
|
|
106
|
+
info: Array.from(c.info(grid).bits),
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
/** Clear the transient generation-only square flags on a finished level. */
|
|
113
|
+
function clearGenerationFlags(g) {
|
|
114
|
+
const c = g.c;
|
|
115
|
+
for (let y = 0; y < c.height; y++) {
|
|
116
|
+
for (let x = 0; x < c.width; x++) {
|
|
117
|
+
const grid = loc(x, y);
|
|
118
|
+
c.sqinfoOff(grid, SQUARE.WALL_INNER);
|
|
119
|
+
c.sqinfoOff(grid, SQUARE.WALL_OUTER);
|
|
120
|
+
c.sqinfoOff(grid, SQUARE.WALL_SOLID);
|
|
121
|
+
/* square_ismon_restrict (cave-square.c:530) reads this flag. */
|
|
122
|
+
c.sqinfoOff(grid, SQUARE.MON_RESTRICT);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* place_feeling (generate.c L676-703): scatter feeling_total hidden
|
|
128
|
+
* SQUARE_FEEL marks on legal (passable, non-damaging), not-yet-marked
|
|
129
|
+
* grids. Each mark gets up to 500 random-coordinate tries (x drawn before y,
|
|
130
|
+
* matching upstream's `loc(randint0(width), randint0(height))` exactly); a
|
|
131
|
+
* mark that exhausts its tries without landing is simply skipped, same as
|
|
132
|
+
* upstream. Resets feeling_squares to 0 (the runtime reveal counter). This is
|
|
133
|
+
* the ONLY RNG the level-feeling lifecycle spends, and it runs strictly
|
|
134
|
+
* after every room/monster/object placement, so it cannot perturb them.
|
|
135
|
+
*/
|
|
136
|
+
export function placeFeeling(g) {
|
|
137
|
+
const { c, rng } = g;
|
|
138
|
+
const tries = 500;
|
|
139
|
+
for (let i = 0; i < g.constants.feelingTotal; i++) {
|
|
140
|
+
for (let j = 0; j < tries; j++) {
|
|
141
|
+
const grid = loc(rng.randint0(c.width), rng.randint0(c.height));
|
|
142
|
+
if (!c.allowsFeel(grid))
|
|
143
|
+
continue;
|
|
144
|
+
if (c.sqinfoHas(grid, SQUARE.FEEL))
|
|
145
|
+
continue;
|
|
146
|
+
c.sqinfoOn(grid, SQUARE.FEEL);
|
|
147
|
+
break;
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
c.feelingSquares = 0;
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* calc_obj_feeling (generate.c L711-736): the object-feeling digit (tens
|
|
154
|
+
* place of chunk.feeling), from obj_rating adjusted for depth. Draws no RNG.
|
|
155
|
+
*/
|
|
156
|
+
export function calcObjFeeling(g, birthLoseArts) {
|
|
157
|
+
const c = g.c;
|
|
158
|
+
if (c.depth === 0)
|
|
159
|
+
return 0;
|
|
160
|
+
if (c.goodItem && birthLoseArts)
|
|
161
|
+
return 10;
|
|
162
|
+
const x = Math.trunc(c.objRating / c.depth);
|
|
163
|
+
if (c.goodItem && x < 641)
|
|
164
|
+
return 60;
|
|
165
|
+
if (x > 160000)
|
|
166
|
+
return 20;
|
|
167
|
+
if (x > 40000)
|
|
168
|
+
return 30;
|
|
169
|
+
if (x > 10000)
|
|
170
|
+
return 40;
|
|
171
|
+
if (x > 2500)
|
|
172
|
+
return 50;
|
|
173
|
+
if (x > 640)
|
|
174
|
+
return 60;
|
|
175
|
+
if (x > 160)
|
|
176
|
+
return 70;
|
|
177
|
+
if (x > 40)
|
|
178
|
+
return 80;
|
|
179
|
+
if (x > 10)
|
|
180
|
+
return 90;
|
|
181
|
+
return 100;
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* calc_mon_feeling (generate.c L742-761): the monster-feeling digit (units
|
|
185
|
+
* place of chunk.feeling), from mon_rating adjusted for depth. Draws no RNG.
|
|
186
|
+
*/
|
|
187
|
+
export function calcMonFeeling(g) {
|
|
188
|
+
const c = g.c;
|
|
189
|
+
if (c.depth === 0)
|
|
190
|
+
return 0;
|
|
191
|
+
const x = Math.trunc(c.monRating / c.depth);
|
|
192
|
+
if (x > 7000)
|
|
193
|
+
return 1;
|
|
194
|
+
if (x > 4500)
|
|
195
|
+
return 2;
|
|
196
|
+
if (x > 2500)
|
|
197
|
+
return 3;
|
|
198
|
+
if (x > 1500)
|
|
199
|
+
return 4;
|
|
200
|
+
if (x > 800)
|
|
201
|
+
return 5;
|
|
202
|
+
if (x > 400)
|
|
203
|
+
return 6;
|
|
204
|
+
if (x > 150)
|
|
205
|
+
return 7;
|
|
206
|
+
if (x > 50)
|
|
207
|
+
return 8;
|
|
208
|
+
return 9;
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* chunk_validate_objects (gen-chunk.c:514): assert the finished level holds no
|
|
212
|
+
* malformed objects (tval == 0) on the floor or in any monster's inventory. A
|
|
213
|
+
* pure validation pass drawing no RNG; a tval-0 object indicates a generation
|
|
214
|
+
* bug, so this throws exactly where upstream's assert would abort.
|
|
215
|
+
*/
|
|
216
|
+
export function chunkValidateObjects(g) {
|
|
217
|
+
for (const po of g.objects) {
|
|
218
|
+
if (po.obj.tval === 0) {
|
|
219
|
+
throw new Error("gen: chunk_validate_objects: floor object with tval 0");
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
for (const pm of g.monsters) {
|
|
223
|
+
for (const held of pm.mon.heldObj) {
|
|
224
|
+
if (held.tval === 0) {
|
|
225
|
+
throw new Error("gen: chunk_validate_objects: held object with tval 0");
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
/**
|
|
231
|
+
* cave_generate: build one valid dungeon level, retrying on builder failure
|
|
232
|
+
* or maxima overflow. Returns the finished Gen context.
|
|
233
|
+
*/
|
|
234
|
+
export function generateLevel(rng, depth, deps, options = {}) {
|
|
235
|
+
const quest = options.quest ?? false;
|
|
236
|
+
const maxTries = options.maxTries ?? 100;
|
|
237
|
+
const minHeight = options.minHeight ?? 1;
|
|
238
|
+
const minWidth = options.minWidth ?? 1;
|
|
239
|
+
let error = "no generation";
|
|
240
|
+
let result = null;
|
|
241
|
+
for (let tries = 0; tries < maxTries && error; tries++) {
|
|
242
|
+
error = null;
|
|
243
|
+
const dun = new Dun(deps.constants);
|
|
244
|
+
dun.quest = quest;
|
|
245
|
+
/* Persistent levels (generate.c L1148-1153): seed the stair connectors from
|
|
246
|
+
* adjacent levels before building so the dun.persist branches line stairs
|
|
247
|
+
* up. Off by default, leaving dun.join empty and every builder unchanged. */
|
|
248
|
+
dun.persist = options.persist ?? false;
|
|
249
|
+
if (dun.persist && options.joinInfo) {
|
|
250
|
+
dun.join = [...options.joinInfo.join];
|
|
251
|
+
dun.oneOffAbove = [...options.joinInfo.oneOffAbove];
|
|
252
|
+
dun.oneOffBelow = [...options.joinInfo.oneOffBelow];
|
|
253
|
+
}
|
|
254
|
+
/* chunk_find_adjacent (gen-chunk.c:147) seed: whether the neighbour levels
|
|
255
|
+
* already exist, so handle_level_stairs skips the matching alloc_stairs.
|
|
256
|
+
* Only read under dun.persist. */
|
|
257
|
+
dun.hasAdjacentAbove = options.hasAdjacentAbove ?? false;
|
|
258
|
+
dun.hasAdjacentBelow = options.hasAdjacentBelow ?? false;
|
|
259
|
+
const profile = deps.profiles.choose(rng, depth, {
|
|
260
|
+
quest,
|
|
261
|
+
...(options.profileName ? { name: options.profileName } : {}),
|
|
262
|
+
});
|
|
263
|
+
const builder = deps.profiles.builder(profile.builder);
|
|
264
|
+
const ctx = {
|
|
265
|
+
rng,
|
|
266
|
+
reg: deps.reg,
|
|
267
|
+
constants: deps.constants,
|
|
268
|
+
dun,
|
|
269
|
+
profile,
|
|
270
|
+
depth,
|
|
271
|
+
minHeight,
|
|
272
|
+
minWidth,
|
|
273
|
+
objDeps: deps.objDeps,
|
|
274
|
+
monDeps: deps.monDeps,
|
|
275
|
+
trapKinds: deps.trapKinds ?? null,
|
|
276
|
+
rooms: deps.rooms,
|
|
277
|
+
createStair: options.createStair ?? null,
|
|
278
|
+
/* new_player_spot's placement-failure message (gen-util.c:422). Kept
|
|
279
|
+
* separate from cheatMsg: that one is gated on cheat_room, this one is
|
|
280
|
+
* not, so they cannot share a sink. */
|
|
281
|
+
...(deps.msg ? { msg: deps.msg } : {}),
|
|
282
|
+
...(options.daytime !== undefined ? { daytime: options.daytime } : {}),
|
|
283
|
+
...(options.townLayout ? { townLayout: options.townLayout } : {}),
|
|
284
|
+
};
|
|
285
|
+
const built = builder(ctx);
|
|
286
|
+
if (!built.gen) {
|
|
287
|
+
error = built.error ?? "unspecified level builder failure";
|
|
288
|
+
/* generate.c:1164-1166: cheat_room narrates every restart. */
|
|
289
|
+
deps.cheatMsg?.(`Generation restarted: ${error}.`);
|
|
290
|
+
continue;
|
|
291
|
+
}
|
|
292
|
+
const g = built.gen;
|
|
293
|
+
clearGenerationFlags(g);
|
|
294
|
+
/* Regenerate levels that overflow the monster maximum. */
|
|
295
|
+
if (g.monsters.length >= deps.constants.levelMonsterMax) {
|
|
296
|
+
error = "too many monsters";
|
|
297
|
+
deps.cheatMsg?.(`Generation restarted: ${error}.`);
|
|
298
|
+
continue;
|
|
299
|
+
}
|
|
300
|
+
/*
|
|
301
|
+
* The finished-level seam (mod/hooks.ts levelGenerated). A mod gets the
|
|
302
|
+
* accepted level and may inspect it, repair it, or refuse it - refusing
|
|
303
|
+
* re-rolls, the same treatment as the monster-maximum overflow above.
|
|
304
|
+
*
|
|
305
|
+
* Faithful core has no opinion here: with no hook installed this is one
|
|
306
|
+
* undefined check and the level is accepted exactly as generated. The hook
|
|
307
|
+
* is contractually RNG-FREE (it is handed no rng) because a single draw at
|
|
308
|
+
* this point would desynchronise every draw after it and a seed would stop
|
|
309
|
+
* reproducing its dungeon - so a repair that happens is bit-identical to no
|
|
310
|
+
* repair on a level that needed none.
|
|
311
|
+
*/
|
|
312
|
+
if (deps.hooks?.levelGenerated?.(g, dun.quest) === false) {
|
|
313
|
+
error = "level rejected by a mod";
|
|
314
|
+
deps.cheatMsg?.(`Generation restarted: ${error}.`);
|
|
315
|
+
continue;
|
|
316
|
+
}
|
|
317
|
+
result = g;
|
|
318
|
+
}
|
|
319
|
+
if (error || !result) {
|
|
320
|
+
throw new Error(`gen: cave_generate failed: ${error ?? "unknown"}`);
|
|
321
|
+
}
|
|
322
|
+
/* Record the level's stair connectors (generate.c L1203-1214) so a
|
|
323
|
+
* persistent dungeon can align the next level's stairs. RNG-free. */
|
|
324
|
+
collectJoins(result);
|
|
325
|
+
/* Ensure quest monsters (generate.c L1170-1191). Run once on the accepted
|
|
326
|
+
* level, before the feeling calc (quest monsters count toward mon_rating).
|
|
327
|
+
* A unique guardian already alive elsewhere (cur_num > 0) is not re-placed,
|
|
328
|
+
* matching upstream. Sleep=true, group_ok=true, ORIGIN_DROP as in C. */
|
|
329
|
+
if (options.questSpawns && options.questSpawns.length > 0) {
|
|
330
|
+
for (const q of options.questSpawns) {
|
|
331
|
+
if (q.race.flags.has(RF.UNIQUE) && q.race.curNum > 0)
|
|
332
|
+
continue;
|
|
333
|
+
for (let n = 0; n < q.maxNum; n++) {
|
|
334
|
+
const grid = findEmpty(result);
|
|
335
|
+
if (!grid)
|
|
336
|
+
break;
|
|
337
|
+
placeNewMonster(result, grid, q.race, true, true, {
|
|
338
|
+
index: 0,
|
|
339
|
+
role: MON_GROUP.LEADER,
|
|
340
|
+
});
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
}
|
|
344
|
+
/* Place dungeon squares to trigger feeling (not in town), then compute the
|
|
345
|
+
* final feeling (generate.c L1235-1241). Runs once, after the retry loop
|
|
346
|
+
* above has resolved to a successful level; place_feeling's draws are
|
|
347
|
+
* strictly appended to the RNG stream and touch only SQUARE_FEEL flags, so
|
|
348
|
+
* they cannot change any room/monster/object placement already decided. */
|
|
349
|
+
if (depth > 0) {
|
|
350
|
+
placeFeeling(result);
|
|
351
|
+
}
|
|
352
|
+
result.c.feeling =
|
|
353
|
+
calcObjFeeling(result, options.birthLoseArts ?? false) + calcMonFeeling(result);
|
|
354
|
+
/* Validate the dungeon (generate.c L1244): no malformed objects survive. */
|
|
355
|
+
chunkValidateObjects(result);
|
|
356
|
+
return result;
|
|
357
|
+
}
|
|
358
|
+
//# sourceMappingURL=generate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/gen/generate.ts"],"names":[],"mappings":"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"}
|