@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 @@
|
|
|
1
|
+
{"version":3,"file":"ids.js","sourceRoot":"","sources":["../../src/mod/ids.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The in-process registry host (W2.2): the capability-gated seam through which a
|
|
3
|
+
* TRUSTED, in-process plugin overrides game SYSTEMS - not just data. It opens
|
|
4
|
+
* the four runtime registries the engine already exposes for extension:
|
|
5
|
+
*
|
|
6
|
+
* - effects (EffectRegistry, effects/interpreter.ts): register a handler for a
|
|
7
|
+
* new string effect code, or replace a core numeric EF handler - overriding
|
|
8
|
+
* combat / healing / teleport / detection logic. Gated by "registry:effect".
|
|
9
|
+
* - rooms (RoomRegistry, gen/room.ts): register a room/level builder under
|
|
10
|
+
* any key, referenced from a (modded) dungeon profile - overriding level
|
|
11
|
+
* generation. Gated by "registry:room".
|
|
12
|
+
* - commands (ActionRegistry, game/player-turn.ts): register or replace the
|
|
13
|
+
* action a player command code runs - overriding what "walk", "cast", ... do.
|
|
14
|
+
* Gated by "registry:command". (This is the live player-command seam; the
|
|
15
|
+
* cmd.ts CommandQueue is a faithful port the web loop does not drive.)
|
|
16
|
+
* - monsters (GameState.monsterTurnHook, game/monster-turn.ts): install a hook
|
|
17
|
+
* consulted at the top of every monster's turn; returning true takes the turn
|
|
18
|
+
* over entirely - overriding monster AI. Gated by "registry:monster".
|
|
19
|
+
* - vocab (VocabularyRegistry, mod/vocabulary.ts): declare genuinely NEW
|
|
20
|
+
* vocabulary terms (flags, stats, any mod-coined kind) and store per-entity
|
|
21
|
+
* values for them - extending the game's vocabulary, not just recombining it
|
|
22
|
+
* (W2.3). Mod-owned and persisted in the mod's save bag; core never reads it.
|
|
23
|
+
* Gated by "registry:vocab".
|
|
24
|
+
*
|
|
25
|
+
* WHY IN-PROCESS AND TRUSTED (the W2.2 architecture decision): every one of
|
|
26
|
+
* these handlers executes SYNCHRONOUSLY with live access to the rng, the chunk,
|
|
27
|
+
* the player and the monster - deep inside the turn. A Web Worker (the W2.1
|
|
28
|
+
* sandbox) is async and isolated by construction and cannot supply such a
|
|
29
|
+
* handler; the only browser primitive that could (SharedArrayBuffer +
|
|
30
|
+
* Atomics.wait) needs cross-origin-isolation headers a static host cannot send,
|
|
31
|
+
* and would freeze the main thread per effect regardless. So deep system
|
|
32
|
+
* override is a TRUSTED, in-process capability - as it is in every real modding
|
|
33
|
+
* system (SKSE, Forge, ...). Trust is still explicit: the plugin declares each
|
|
34
|
+
* registry:* capability in its manifest, the user consents at install, and the
|
|
35
|
+
* conflict report covers what it touches. The untrusted Worker tier keeps the
|
|
36
|
+
* reactive perceive/act/event surface (W2.1) and none of this.
|
|
37
|
+
*
|
|
38
|
+
* Layering: core owns this facade because it gates access to core registries;
|
|
39
|
+
* the HOST (web/cli) constructs it from the live registries and hands it to a
|
|
40
|
+
* loaded trusted plugin. Capabilities are the same structural AgentCapabilities
|
|
41
|
+
* the perceive/act facades use - satisfied by mod-sdk's CapabilitySet without
|
|
42
|
+
* core depending on mod-sdk. Absent capabilities means a fully trusted host
|
|
43
|
+
* (everything granted), matching the perceive/act/controller convention.
|
|
44
|
+
*/
|
|
45
|
+
import type { AgentCapabilities } from "../agent/types.js";
|
|
46
|
+
import type { EffectCode } from "../effects/effect.js";
|
|
47
|
+
import type { EffectDefinition, EffectRegistry } from "../effects/interpreter.js";
|
|
48
|
+
import type { RoomBuilder, RoomRegistry } from "../gen/room.js";
|
|
49
|
+
import type { ActionRegistry, PlayerAction } from "../game/player-turn.js";
|
|
50
|
+
import type { GameState } from "../game/context.js";
|
|
51
|
+
import type { Monster } from "../mon/monster.js";
|
|
52
|
+
import type { JsonValue } from "./save-blocks.js";
|
|
53
|
+
import type { VocabKind, VocabTerm, VocabularyRegistry } from "./vocabulary.js";
|
|
54
|
+
/** The capability each registry facade requires (registry:<domain>). */
|
|
55
|
+
export declare const REGISTRY_CAPABILITIES: {
|
|
56
|
+
readonly effect: "registry:effect";
|
|
57
|
+
readonly room: "registry:room";
|
|
58
|
+
readonly command: "registry:command";
|
|
59
|
+
readonly monster: "registry:monster";
|
|
60
|
+
readonly vocab: "registry:vocab";
|
|
61
|
+
};
|
|
62
|
+
export type RegistryDomain = keyof typeof REGISTRY_CAPABILITIES;
|
|
63
|
+
/**
|
|
64
|
+
* A monster-AI override: run at the top of monsterTurn (game/monster-turn.ts).
|
|
65
|
+
* Return true to consume the monster's whole turn (the default behaviour is
|
|
66
|
+
* skipped); return false to fall through to the ported AI. Mutates state as the
|
|
67
|
+
* ported turn code would - it runs in the same synchronous, live-state context.
|
|
68
|
+
*/
|
|
69
|
+
export type MonsterTurnHook = (mon: Monster, state: GameState) => boolean;
|
|
70
|
+
/** The live registries a host wires into the facade; any may be absent. */
|
|
71
|
+
export interface RegistryTargets {
|
|
72
|
+
/** The effect interpreter; null when the pack has no projections. */
|
|
73
|
+
effects?: EffectRegistry | null;
|
|
74
|
+
/** The room/level builder registry (CoreRegistries.rooms). */
|
|
75
|
+
rooms?: RoomRegistry | null;
|
|
76
|
+
/** The live player action registry (the decision-13 command seam). */
|
|
77
|
+
commands?: ActionRegistry | null;
|
|
78
|
+
/** The game state, for installing the monster-AI turn hook. */
|
|
79
|
+
state?: GameState | null;
|
|
80
|
+
/** This mod's vocabulary registry (declared terms + per-entity values). */
|
|
81
|
+
vocab?: VocabularyRegistry | null;
|
|
82
|
+
}
|
|
83
|
+
/** The effect-override facade (gated by registry:effect). */
|
|
84
|
+
export interface EffectFacade {
|
|
85
|
+
/**
|
|
86
|
+
* Register a handler for an effect code. A string code adds a brand-new
|
|
87
|
+
* effect; a numeric EF code replaces the core handler for that effect. The
|
|
88
|
+
* handler runs synchronously inside effect_do with the live EffectContext.
|
|
89
|
+
*/
|
|
90
|
+
register(code: EffectCode, def: EffectDefinition): void;
|
|
91
|
+
/** Whether a code currently has a handler. */
|
|
92
|
+
isRegistered(code: EffectCode): boolean;
|
|
93
|
+
}
|
|
94
|
+
/** The room-builder facade (gated by registry:room). */
|
|
95
|
+
export interface RoomFacade {
|
|
96
|
+
/** Register (or replace) a room/level builder under a key. */
|
|
97
|
+
register(name: string, builder: RoomBuilder): void;
|
|
98
|
+
}
|
|
99
|
+
/** The player-command facade (gated by registry:command). */
|
|
100
|
+
export interface CommandFacade {
|
|
101
|
+
/** Register (or replace) the action a player command code runs. */
|
|
102
|
+
register(code: string, action: PlayerAction): void;
|
|
103
|
+
/** Whether a command code currently has an action. */
|
|
104
|
+
has(code: string): boolean;
|
|
105
|
+
}
|
|
106
|
+
/** The monster-AI facade (gated by registry:monster). */
|
|
107
|
+
export interface MonsterFacade {
|
|
108
|
+
/**
|
|
109
|
+
* Install the monster-turn hook (replaces any previously installed one; pass
|
|
110
|
+
* null to clear). Consulted at the top of every monster's turn.
|
|
111
|
+
*/
|
|
112
|
+
setTurnHook(hook: MonsterTurnHook | null): void;
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* The vocabulary-extension facade (gated by registry:vocab). Declares NEW terms
|
|
116
|
+
* (flags / stats / any mod-coined kind) and stores per-entity values for them -
|
|
117
|
+
* the W2.3 seam. Delegates to the mod's own VocabularyRegistry (mod/vocabulary.ts),
|
|
118
|
+
* which the host persists into the mod's save bag; core never reads these terms.
|
|
119
|
+
*/
|
|
120
|
+
export interface VocabFacade {
|
|
121
|
+
/** Declare a new term; throws on a duplicate (same kind + term). */
|
|
122
|
+
define(term: VocabTerm): void;
|
|
123
|
+
/** Whether a term is declared in a kind. */
|
|
124
|
+
has(kind: VocabKind, term: string): boolean;
|
|
125
|
+
/** All declared terms, optionally filtered to one kind. */
|
|
126
|
+
list(kind?: VocabKind): VocabTerm[];
|
|
127
|
+
/** Set an entity's value for a declared term (throws if undeclared). */
|
|
128
|
+
setValue(entity: string, term: string, value: JsonValue): void;
|
|
129
|
+
/** Get an entity's value for a term, or undefined when unset. */
|
|
130
|
+
getValue(entity: string, term: string): JsonValue | undefined;
|
|
131
|
+
/** A plain snapshot of one entity's term values. */
|
|
132
|
+
valuesOf(entity: string): {
|
|
133
|
+
[term: string]: JsonValue;
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* The capability-gated registry host handed to a trusted in-process plugin.
|
|
138
|
+
* Each facade throws AgentCapabilityError on first use if the corresponding
|
|
139
|
+
* registry:<domain> capability was not granted, and a plain Error if the host
|
|
140
|
+
* did not wire that registry (e.g. effects on a worldless boot).
|
|
141
|
+
*/
|
|
142
|
+
export interface ModRegistryHost {
|
|
143
|
+
readonly effects: EffectFacade;
|
|
144
|
+
readonly rooms: RoomFacade;
|
|
145
|
+
readonly commands: CommandFacade;
|
|
146
|
+
readonly monsters: MonsterFacade;
|
|
147
|
+
readonly vocab: VocabFacade;
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Build the capability-gated registry host over the live registries. Pass the
|
|
151
|
+
* plugin's AgentCapabilities (from CapabilitySet.fromManifest); omit for a fully
|
|
152
|
+
* trusted host. The gate is checked at each call, so a plugin that never touches
|
|
153
|
+
* a domain never needs its capability.
|
|
154
|
+
*/
|
|
155
|
+
export declare function createModRegistryHost(targets: RegistryTargets, capabilities?: AgentCapabilities): ModRegistryHost;
|
|
156
|
+
//# sourceMappingURL=registry-host.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry-host.d.ts","sourceRoot":"","sources":["../../src/mod/registry-host.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The in-process registry host (W2.2): the capability-gated seam through which a
|
|
3
|
+
* TRUSTED, in-process plugin overrides game SYSTEMS - not just data. It opens
|
|
4
|
+
* the four runtime registries the engine already exposes for extension:
|
|
5
|
+
*
|
|
6
|
+
* - effects (EffectRegistry, effects/interpreter.ts): register a handler for a
|
|
7
|
+
* new string effect code, or replace a core numeric EF handler - overriding
|
|
8
|
+
* combat / healing / teleport / detection logic. Gated by "registry:effect".
|
|
9
|
+
* - rooms (RoomRegistry, gen/room.ts): register a room/level builder under
|
|
10
|
+
* any key, referenced from a (modded) dungeon profile - overriding level
|
|
11
|
+
* generation. Gated by "registry:room".
|
|
12
|
+
* - commands (ActionRegistry, game/player-turn.ts): register or replace the
|
|
13
|
+
* action a player command code runs - overriding what "walk", "cast", ... do.
|
|
14
|
+
* Gated by "registry:command". (This is the live player-command seam; the
|
|
15
|
+
* cmd.ts CommandQueue is a faithful port the web loop does not drive.)
|
|
16
|
+
* - monsters (GameState.monsterTurnHook, game/monster-turn.ts): install a hook
|
|
17
|
+
* consulted at the top of every monster's turn; returning true takes the turn
|
|
18
|
+
* over entirely - overriding monster AI. Gated by "registry:monster".
|
|
19
|
+
* - vocab (VocabularyRegistry, mod/vocabulary.ts): declare genuinely NEW
|
|
20
|
+
* vocabulary terms (flags, stats, any mod-coined kind) and store per-entity
|
|
21
|
+
* values for them - extending the game's vocabulary, not just recombining it
|
|
22
|
+
* (W2.3). Mod-owned and persisted in the mod's save bag; core never reads it.
|
|
23
|
+
* Gated by "registry:vocab".
|
|
24
|
+
*
|
|
25
|
+
* WHY IN-PROCESS AND TRUSTED (the W2.2 architecture decision): every one of
|
|
26
|
+
* these handlers executes SYNCHRONOUSLY with live access to the rng, the chunk,
|
|
27
|
+
* the player and the monster - deep inside the turn. A Web Worker (the W2.1
|
|
28
|
+
* sandbox) is async and isolated by construction and cannot supply such a
|
|
29
|
+
* handler; the only browser primitive that could (SharedArrayBuffer +
|
|
30
|
+
* Atomics.wait) needs cross-origin-isolation headers a static host cannot send,
|
|
31
|
+
* and would freeze the main thread per effect regardless. So deep system
|
|
32
|
+
* override is a TRUSTED, in-process capability - as it is in every real modding
|
|
33
|
+
* system (SKSE, Forge, ...). Trust is still explicit: the plugin declares each
|
|
34
|
+
* registry:* capability in its manifest, the user consents at install, and the
|
|
35
|
+
* conflict report covers what it touches. The untrusted Worker tier keeps the
|
|
36
|
+
* reactive perceive/act/event surface (W2.1) and none of this.
|
|
37
|
+
*
|
|
38
|
+
* Layering: core owns this facade because it gates access to core registries;
|
|
39
|
+
* the HOST (web/cli) constructs it from the live registries and hands it to a
|
|
40
|
+
* loaded trusted plugin. Capabilities are the same structural AgentCapabilities
|
|
41
|
+
* the perceive/act facades use - satisfied by mod-sdk's CapabilitySet without
|
|
42
|
+
* core depending on mod-sdk. Absent capabilities means a fully trusted host
|
|
43
|
+
* (everything granted), matching the perceive/act/controller convention.
|
|
44
|
+
*/
|
|
45
|
+
import { AgentCapabilityError } from "../agent/types.js";
|
|
46
|
+
/** The capability each registry facade requires (registry:<domain>). */
|
|
47
|
+
export const REGISTRY_CAPABILITIES = {
|
|
48
|
+
effect: "registry:effect",
|
|
49
|
+
room: "registry:room",
|
|
50
|
+
command: "registry:command",
|
|
51
|
+
monster: "registry:monster",
|
|
52
|
+
vocab: "registry:vocab",
|
|
53
|
+
};
|
|
54
|
+
/** Absent capabilities => trusted host, all granted (perceive/act convention). */
|
|
55
|
+
function granted(caps, capability) {
|
|
56
|
+
return !caps || caps.has(capability);
|
|
57
|
+
}
|
|
58
|
+
function requireCap(caps, domain) {
|
|
59
|
+
const capability = REGISTRY_CAPABILITIES[domain];
|
|
60
|
+
if (!granted(caps, capability)) {
|
|
61
|
+
throw new AgentCapabilityError(`mod registry: "${domain}" override requires capability "${capability}" - grant it in the mod manifest`);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
function requireTarget(target, domain) {
|
|
65
|
+
if (target === null || target === undefined) {
|
|
66
|
+
throw new Error(`mod registry: the "${domain}" registry is not available in this game (host did not wire it)`);
|
|
67
|
+
}
|
|
68
|
+
return target;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Build the capability-gated registry host over the live registries. Pass the
|
|
72
|
+
* plugin's AgentCapabilities (from CapabilitySet.fromManifest); omit for a fully
|
|
73
|
+
* trusted host. The gate is checked at each call, so a plugin that never touches
|
|
74
|
+
* a domain never needs its capability.
|
|
75
|
+
*/
|
|
76
|
+
export function createModRegistryHost(targets, capabilities) {
|
|
77
|
+
return {
|
|
78
|
+
effects: {
|
|
79
|
+
register(code, def) {
|
|
80
|
+
requireCap(capabilities, "effect");
|
|
81
|
+
requireTarget(targets.effects, "effect").register(code, def);
|
|
82
|
+
},
|
|
83
|
+
isRegistered(code) {
|
|
84
|
+
requireCap(capabilities, "effect");
|
|
85
|
+
return requireTarget(targets.effects, "effect").isRegistered(code);
|
|
86
|
+
},
|
|
87
|
+
},
|
|
88
|
+
rooms: {
|
|
89
|
+
register(name, builder) {
|
|
90
|
+
requireCap(capabilities, "room");
|
|
91
|
+
requireTarget(targets.rooms, "room").register(name, builder);
|
|
92
|
+
},
|
|
93
|
+
},
|
|
94
|
+
commands: {
|
|
95
|
+
register(code, action) {
|
|
96
|
+
requireCap(capabilities, "command");
|
|
97
|
+
requireTarget(targets.commands, "command").register(code, action);
|
|
98
|
+
},
|
|
99
|
+
has(code) {
|
|
100
|
+
requireCap(capabilities, "command");
|
|
101
|
+
return requireTarget(targets.commands, "command").has(code);
|
|
102
|
+
},
|
|
103
|
+
},
|
|
104
|
+
monsters: {
|
|
105
|
+
setTurnHook(hook) {
|
|
106
|
+
requireCap(capabilities, "monster");
|
|
107
|
+
const state = requireTarget(targets.state, "monster");
|
|
108
|
+
if (hook)
|
|
109
|
+
state.monsterTurnHook = hook;
|
|
110
|
+
else
|
|
111
|
+
delete state.monsterTurnHook;
|
|
112
|
+
},
|
|
113
|
+
},
|
|
114
|
+
vocab: {
|
|
115
|
+
define(term) {
|
|
116
|
+
requireCap(capabilities, "vocab");
|
|
117
|
+
requireTarget(targets.vocab, "vocab").define(term);
|
|
118
|
+
},
|
|
119
|
+
has(kind, term) {
|
|
120
|
+
requireCap(capabilities, "vocab");
|
|
121
|
+
return requireTarget(targets.vocab, "vocab").has(kind, term);
|
|
122
|
+
},
|
|
123
|
+
list(kind) {
|
|
124
|
+
requireCap(capabilities, "vocab");
|
|
125
|
+
return requireTarget(targets.vocab, "vocab").list(kind);
|
|
126
|
+
},
|
|
127
|
+
setValue(entity, term, value) {
|
|
128
|
+
requireCap(capabilities, "vocab");
|
|
129
|
+
requireTarget(targets.vocab, "vocab").setValue(entity, term, value);
|
|
130
|
+
},
|
|
131
|
+
getValue(entity, term) {
|
|
132
|
+
requireCap(capabilities, "vocab");
|
|
133
|
+
return requireTarget(targets.vocab, "vocab").getValue(entity, term);
|
|
134
|
+
},
|
|
135
|
+
valuesOf(entity) {
|
|
136
|
+
requireCap(capabilities, "vocab");
|
|
137
|
+
return requireTarget(targets.vocab, "vocab").valuesOf(entity);
|
|
138
|
+
},
|
|
139
|
+
},
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
//# sourceMappingURL=registry-host.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry-host.js","sourceRoot":"","sources":["../../src/mod/registry-host.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAWzD,wEAAwE;AACxE,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,MAAM,EAAE,iBAAiB;IACzB,IAAI,EAAE,eAAe;IACrB,OAAO,EAAE,kBAAkB;IAC3B,OAAO,EAAE,kBAAkB;IAC3B,KAAK,EAAE,gBAAgB;CACf,CAAC;AAgGX,kFAAkF;AAClF,SAAS,OAAO,CAAC,IAAmC,EAAE,UAAkB;IACtE,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AACvC,CAAC;AAED,SAAS,UAAU,CACjB,IAAmC,EACnC,MAAsB;IAEtB,MAAM,UAAU,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;IACjD,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,oBAAoB,CAC5B,kBAAkB,MAAM,mCAAmC,UAAU,kCAAkC,CACxG,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAI,MAA4B,EAAE,MAAsB;IAC5E,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QAC5C,MAAM,IAAI,KAAK,CACb,sBAAsB,MAAM,iEAAiE,CAC9F,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CACnC,OAAwB,EACxB,YAAgC;IAEhC,OAAO;QACL,OAAO,EAAE;YACP,QAAQ,CAAC,IAAI,EAAE,GAAG;gBAChB,UAAU,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;gBACnC,aAAa,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YAC/D,CAAC;YACD,YAAY,CAAC,IAAI;gBACf,UAAU,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;gBACnC,OAAO,aAAa,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YACrE,CAAC;SACF;QACD,KAAK,EAAE;YACL,QAAQ,CAAC,IAAI,EAAE,OAAO;gBACpB,UAAU,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;gBACjC,aAAa,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAC/D,CAAC;SACF;QACD,QAAQ,EAAE;YACR,QAAQ,CAAC,IAAI,EAAE,MAAM;gBACnB,UAAU,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;gBACpC,aAAa,CAAC,OAAO,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YACpE,CAAC;YACD,GAAG,CAAC,IAAI;gBACN,UAAU,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;gBACpC,OAAO,aAAa,CAAC,OAAO,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC9D,CAAC;SACF;QACD,QAAQ,EAAE;YACR,WAAW,CAAC,IAAI;gBACd,UAAU,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;gBACpC,MAAM,KAAK,GAAG,aAAa,CAAC,OAAO,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;gBACtD,IAAI,IAAI;oBAAE,KAAK,CAAC,eAAe,GAAG,IAAI,CAAC;;oBAClC,OAAO,KAAK,CAAC,eAAe,CAAC;YACpC,CAAC;SACF;QACD,KAAK,EAAE;YACL,MAAM,CAAC,IAAI;gBACT,UAAU,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;gBAClC,aAAa,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACrD,CAAC;YACD,GAAG,CAAC,IAAI,EAAE,IAAI;gBACZ,UAAU,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;gBAClC,OAAO,aAAa,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAC/D,CAAC;YACD,IAAI,CAAC,IAAI;gBACP,UAAU,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;gBAClC,OAAO,aAAa,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1D,CAAC;YACD,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK;gBAC1B,UAAU,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;gBAClC,aAAa,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;YACtE,CAAC;YACD,QAAQ,CAAC,MAAM,EAAE,IAAI;gBACnB,UAAU,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;gBAClC,OAAO,aAAa,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YACtE,CAAC;YACD,QAAQ,CAAC,MAAM;gBACb,UAAU,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;gBAClC,OAAO,aAAa,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAChE,CAAC;SACF;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Namespaced save blocks: the mod-lifecycle tiers layered over the flat JSON
|
|
3
|
+
* save (MOD_LIFECYCLE.md section 1, P7 phase 2).
|
|
4
|
+
*
|
|
5
|
+
* Phase 1 (mod/ids.ts) made every content cross-reference a namespaced string
|
|
6
|
+
* id. Phase 2 adds the three tiers the lifecycle design calls for on top of
|
|
7
|
+
* that:
|
|
8
|
+
*
|
|
9
|
+
* - The MANIFEST block (SaveManifest): the exact pack set that produced the
|
|
10
|
+
* save - each pack's id/version (+ optional hash/source) and the resolved
|
|
11
|
+
* load order - plus the core-owned determinism mode. This is the save's
|
|
12
|
+
* profile fingerprint, and it travels WITH the save so a load can tell which
|
|
13
|
+
* content is missing and whether the run is still reproducible.
|
|
14
|
+
* - Per-mod BAGS (mod:<id>): one opaque JSON bag per mod, versioned by the
|
|
15
|
+
* mod's saveSchema. The engine never interprets a bag; a scripted plugin
|
|
16
|
+
* persists whatever it likes and is the only thing that reads it back. A mod
|
|
17
|
+
* update migrates its OWN bag (migrateModBag); core never participates.
|
|
18
|
+
* - The ORPHANS store (orphans:<id>@<version>): entities whose defining pack is
|
|
19
|
+
* missing or shadowed are QUARANTINED here - frozen, inert, removed from
|
|
20
|
+
* active play, but preserved verbatim - instead of being deleted or crashing
|
|
21
|
+
* the load. Reinstall the pack (same major) and rehydrateSave puts them back.
|
|
22
|
+
*
|
|
23
|
+
* The determinism mode is a core-owned one-way ratchet (MOD_LIFECYCLE section
|
|
24
|
+
* 4, PORT_PLAN decision 22): a save starts "deterministic"; the first time a
|
|
25
|
+
* nondeterministic mod is enabled on it, core flips it to "nondeterministic"
|
|
26
|
+
* IRREVERSIBLY. Removing the mod never restores deterministic mode. Mods can
|
|
27
|
+
* trip the flip but can never reverse or prevent it.
|
|
28
|
+
*
|
|
29
|
+
* Everything here is pure and deterministic over the plain-JSON save: quarantine
|
|
30
|
+
* and rehydrate are read-time transforms of the SavedGame, so the on-disk
|
|
31
|
+
* FORMAT (the optional blocks below) is the load-bearing part that lands now,
|
|
32
|
+
* while the quarantine ALGORITHM can be refined later without a format change.
|
|
33
|
+
*
|
|
34
|
+
* SCOPE (documented, not silent): quarantine operates at whole-entity
|
|
35
|
+
* granularity keyed on each entity's PRIMARY definition id - a monster's race,
|
|
36
|
+
* an object's kind, a trap's kind, a lore record's race, a created-artifact id -
|
|
37
|
+
* which is the "a whole frost:frost-wyrm on the level" / "an item whose
|
|
38
|
+
* definition came from the missing mod" case the design centres on. This sweep
|
|
39
|
+
* covers every id-bearing collection a real SavedGame can carry that entity in:
|
|
40
|
+
* the live level (monsters + held objects, gear store / pack / equipment, floor
|
|
41
|
+
* piles, traps, lore, created artifacts) AND the birth_levels_persist
|
|
42
|
+
* frozen-level cache (save.levelCache), whose stored levels carry the same
|
|
43
|
+
* monster / held-object / floor / trap collections - a mod entity frozen there
|
|
44
|
+
* would otherwise reach deserializeLevelCache on load and throw (D1). Terrain
|
|
45
|
+
* features (the chunk feat grid / legend) are deliberately NOT quarantined:
|
|
46
|
+
* removing a terrain cell would tear a hole in the map, so a mod feature is a
|
|
47
|
+
* separate hard-incompatibility concern, not a quarantine case. Finer
|
|
48
|
+
* sub-property granularity (a mod ego or brand on an otherwise-core object, a
|
|
49
|
+
* mod origin-race on a core object) degrades to the base entity and is a
|
|
50
|
+
* documented follow-up. The player-facing recoveries built ON TOP of this store
|
|
51
|
+
* (stranded characters returning to town, mod items surfaced in the home, the
|
|
52
|
+
* stash view) are P-UI work per MOD_LIFECYCLE section 6 step 2.
|
|
53
|
+
*/
|
|
54
|
+
import type { SavedGame } from "../session/save.js";
|
|
55
|
+
/** A plain JSON value - the shape of an opaque mod bag and an orphan payload. */
|
|
56
|
+
export type JsonValue = null | boolean | number | string | JsonValue[] | {
|
|
57
|
+
[key: string]: JsonValue;
|
|
58
|
+
};
|
|
59
|
+
/**
|
|
60
|
+
* The core-owned determinism mode carried by every save. A one-way ratchet:
|
|
61
|
+
* "deterministic" -> "nondeterministic" only, never back (see advanceDeterminism).
|
|
62
|
+
*/
|
|
63
|
+
export type DeterminismMode = "deterministic" | "nondeterministic";
|
|
64
|
+
/** One pack in the manifest: its identity and where it came from. */
|
|
65
|
+
export interface SavePackRef {
|
|
66
|
+
/** Namespace / pack id, e.g. "core", "frost". */
|
|
67
|
+
id: string;
|
|
68
|
+
/** Semver version string, e.g. "1.2.0". */
|
|
69
|
+
version: string;
|
|
70
|
+
/** Content hash of the pack that produced the save (optional). */
|
|
71
|
+
hash?: string;
|
|
72
|
+
/** Source (git URL + ref, or marketplace id) the pack was installed from. */
|
|
73
|
+
source?: string;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* The manifest block: the exact pack set + resolved load order + determinism
|
|
77
|
+
* mode that produced the save. The save's profile fingerprint.
|
|
78
|
+
*/
|
|
79
|
+
export interface SaveManifest {
|
|
80
|
+
/** Every pack that contributed, keyed by id (order not significant here). */
|
|
81
|
+
packs: SavePackRef[];
|
|
82
|
+
/** The resolved load order (last-in-wins), pack ids in application order. */
|
|
83
|
+
loadOrder: string[];
|
|
84
|
+
/** The core-owned determinism mode (one-way ratchet). */
|
|
85
|
+
determinism: DeterminismMode;
|
|
86
|
+
/** True once a gameplay-affecting mod has made this save permanently non-scoring. */
|
|
87
|
+
modNoscore: boolean;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* One mod's private save bag: opaque data the engine never interprets, tagged
|
|
91
|
+
* with the saveSchema version that wrote it so the mod can migrate its own bag.
|
|
92
|
+
*/
|
|
93
|
+
export interface ModBag {
|
|
94
|
+
/** The mod's saveSchema number when this bag was written. */
|
|
95
|
+
schema: number;
|
|
96
|
+
/** Whatever the mod chose to persist. Never read by core. */
|
|
97
|
+
data: JsonValue;
|
|
98
|
+
}
|
|
99
|
+
/** The kind of entity an orphan payload holds (drives rehydration placement). */
|
|
100
|
+
export type OrphanKind = "monster" | "heldObject" | "gearObject" | "floorObject" | "trap" | "lore" | "artifactCreated" | "cacheMonster" | "cacheHeldObject" | "cacheFloorObject" | "cacheTrap";
|
|
101
|
+
/** One quarantined entity: frozen verbatim, tagged for the stash view + rehydrate. */
|
|
102
|
+
export interface OrphanEntry {
|
|
103
|
+
/** Which collection it came from (drives where rehydrateSave puts it back). */
|
|
104
|
+
kind: OrphanKind;
|
|
105
|
+
/** The content id that could not resolve ("what it is" in the stash view). */
|
|
106
|
+
ref: string;
|
|
107
|
+
/** The original serialized payload, verbatim, for exact rehydration. */
|
|
108
|
+
data: JsonValue;
|
|
109
|
+
/** Where it lived, so rehydrate can restore its position. */
|
|
110
|
+
locus: JsonValue;
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* The orphans store, keyed "<namespace>@<version>" - the pack (at the version
|
|
114
|
+
* that produced the save) whose absence quarantined these entities. Reinstalling
|
|
115
|
+
* that pack (same major) is what rehydrates them.
|
|
116
|
+
*/
|
|
117
|
+
export type OrphanStore = Record<string, OrphanEntry[]>;
|
|
118
|
+
/**
|
|
119
|
+
* The base game's pack version: pack zero's version in the save manifest.
|
|
120
|
+
*
|
|
121
|
+
* It used to be its own string literal, "kept in sync with
|
|
122
|
+
* packages/core/package.json" by hand, and was not - core moved to 0.9.0 while
|
|
123
|
+
* every new save went on recording core as 0.1.0. Core DOES have a runtime
|
|
124
|
+
* version constant (version.ts, deliberately outside the barrel so citing it
|
|
125
|
+
* makes no cycle), so it cites that instead.
|
|
126
|
+
*
|
|
127
|
+
* Changing it does not invalidate an older save: orphanedNamespaces skips the
|
|
128
|
+
* core pack outright, and versionMap's versions are only ever used to key
|
|
129
|
+
* quarantined MOD entities. An existing save keeps whatever it recorded.
|
|
130
|
+
*/
|
|
131
|
+
export declare const CORE_PACK_VERSION = "0.10.0";
|
|
132
|
+
/** A core-only manifest: the base game with no mods, deterministic. */
|
|
133
|
+
export declare function coreOnlyManifest(): SaveManifest;
|
|
134
|
+
/**
|
|
135
|
+
* Advance the determinism mode (MOD_LIFECYCLE section 4). The flip to
|
|
136
|
+
* "nondeterministic" is irreversible: once a save is nondeterministic it stays
|
|
137
|
+
* so regardless of the argument, so removing a mod can never "cleanse" a save
|
|
138
|
+
* back to deterministic. Enabling a nondeterministic mod on a still-deterministic
|
|
139
|
+
* save flips it once, seamlessly.
|
|
140
|
+
*/
|
|
141
|
+
export declare function advanceDeterminism(current: DeterminismMode, enablingNondeterministicMod: boolean): DeterminismMode;
|
|
142
|
+
/** Advance the permanent scoring ratchet for gameplay-affecting mods. */
|
|
143
|
+
export declare function advanceModNoscore(current: boolean, enablingGameplayMod: boolean): boolean;
|
|
144
|
+
/** A mod's own bag migrator: old data + the schema it was written at -> new data. */
|
|
145
|
+
export type BagMigrator = (data: JsonValue, fromSchema: number) => JsonValue;
|
|
146
|
+
/**
|
|
147
|
+
* Migrate one mod bag to a target saveSchema (called at mod-load time when the
|
|
148
|
+
* mod's schema has advanced past the bag's). A no-op when the bag is already at
|
|
149
|
+
* or beyond the target; otherwise the mod's migrator rewrites its own data and
|
|
150
|
+
* the schema is stamped forward. Core never inspects `data`.
|
|
151
|
+
*/
|
|
152
|
+
export declare function migrateModBag(bag: ModBag, targetSchema: number, migrate: BagMigrator): ModBag;
|
|
153
|
+
/**
|
|
154
|
+
* Compare the pack set that produced a save against the packs present now, and
|
|
155
|
+
* return the namespaces whose content is orphaned (present in the save's
|
|
156
|
+
* manifest but not currently loaded). "core" is never orphaned - a save whose
|
|
157
|
+
* core is absent is an engine-incompatibility that the load rejects outright,
|
|
158
|
+
* not a quarantine case.
|
|
159
|
+
*
|
|
160
|
+
* The harder REFUSE-to-load gate (a still-enabled mod's REQUIRED dependency is
|
|
161
|
+
* missing) is the load-order resolver's job (mod-sdk resolveLoadOrder, phase 4);
|
|
162
|
+
* this function is only the save-side "what did this save use that is gone now".
|
|
163
|
+
*/
|
|
164
|
+
export declare function orphanedNamespaces(manifest: SaveManifest, present: ReadonlySet<string>): string[];
|
|
165
|
+
/** The total number of quarantined entities across the store (decision-8 count). */
|
|
166
|
+
export declare function orphanCount(store: OrphanStore | undefined): number;
|
|
167
|
+
/** The namespace of a content id, or null when it has none (malformed / bare). */
|
|
168
|
+
export declare function namespaceOf(id: string): string | null;
|
|
169
|
+
/** The outcome of a quarantine pass. */
|
|
170
|
+
export interface QuarantineResult {
|
|
171
|
+
/** The save with orphaned entities removed and folded into `orphans`. */
|
|
172
|
+
save: SavedGame;
|
|
173
|
+
/** The merged orphan store (any pre-existing orphans + the newly quarantined). */
|
|
174
|
+
orphans: OrphanStore;
|
|
175
|
+
/** How many entities were newly quarantined THIS pass. */
|
|
176
|
+
quarantined: number;
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Move every entity whose defining pack is absent into the orphans store,
|
|
180
|
+
* returning a pruned save whose remaining content all resolves against the
|
|
181
|
+
* present packs (so the normal deserializers never see a missing-mod id). Pure:
|
|
182
|
+
* the input save is not mutated. Any orphans already carried by the save are
|
|
183
|
+
* preserved and merged with the newly quarantined set.
|
|
184
|
+
*
|
|
185
|
+
* `present(namespace)` decides membership; `orphanedNamespaces` computes the
|
|
186
|
+
* missing set from the manifest, and the manifest supplies each pack's version
|
|
187
|
+
* for the orphan-store key.
|
|
188
|
+
*/
|
|
189
|
+
export declare function quarantineSave(save: SavedGame, manifest: SaveManifest, present: (namespace: string) => boolean): QuarantineResult;
|
|
190
|
+
/**
|
|
191
|
+
* Restore quarantined entities whose pack is present again, returning a save
|
|
192
|
+
* with those orphans reinserted and dropped from the store; orphans whose pack
|
|
193
|
+
* is still absent stay quarantined. Pure: the input save is not mutated.
|
|
194
|
+
*
|
|
195
|
+
* The inverse of quarantineSave for the common "reinstall the mod" path. Two
|
|
196
|
+
* documented, deliberate degradations: a rehydrated monster does not rebuild its
|
|
197
|
+
* old group cohesion (its group entry may have been dissolved on quarantine),
|
|
198
|
+
* and a rehydrated equipped item returns to the pack rather than auto-re-equipping.
|
|
199
|
+
*/
|
|
200
|
+
export declare function rehydrateSave(save: SavedGame, present: (namespace: string) => boolean): SavedGame;
|
|
201
|
+
//# sourceMappingURL=save-blocks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"save-blocks.d.ts","sourceRoot":"","sources":["../../src/mod/save-blocks.ts"],"names":[],"mappings":"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"}
|