@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,847 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* JSON save/load (PORT_PLAN.md decision 9): the entity serializers that
|
|
3
|
+
* turn a live GameState into plain JSON and back. The format is the port's
|
|
4
|
+
* own (the C binary blocks of save.c/load.c are replaced by design); WHAT
|
|
5
|
+
* is saved follows upstream savefile semantics - notably the RNG state is
|
|
6
|
+
* persisted (save.c wr_randomizer), which is what the no-save-scum posture
|
|
7
|
+
* rides on (decisions 16/22): reloading resumes the same stream.
|
|
8
|
+
*
|
|
9
|
+
* References into bound registries (races, kinds, egos, artifacts, trap
|
|
10
|
+
* kinds, classes) are saved as stable indices/names and re-resolved against
|
|
11
|
+
* the pack on load, so a save is data + pack, never code. Raw effect chains
|
|
12
|
+
* and kind-owned text re-point at the kind on load rather than being
|
|
13
|
+
* copied into the save.
|
|
14
|
+
*
|
|
15
|
+
* Integrity: serializeGame produces the JSON payload; callers stamp/verify
|
|
16
|
+
* bytes with save/integrity.ts (stampSavefile / verifyStampedSavefile),
|
|
17
|
+
* the decision-16b tamper deterrent.
|
|
18
|
+
*
|
|
19
|
+
* BLOCK MAP (save.c wr_* / load.c rd_* -> the field this file writes). There is
|
|
20
|
+
* deliberately no per-block function pair: the C block table is replaced by one
|
|
21
|
+
* JSON document, so W1's question is field coverage, not symbol presence. Each
|
|
22
|
+
* row is proved by save-fields.test.ts, the C-derived coverage guard.
|
|
23
|
+
*
|
|
24
|
+
* wr_description (save.c:49) -> not a FIELD: the exact string is ported in
|
|
25
|
+
* save/description.ts and derived from
|
|
26
|
+
* fullName / lev / race / class / depth,
|
|
27
|
+
* which this document already carries. In a
|
|
28
|
+
* JSON save it need not be stored at all, and
|
|
29
|
+
* storing it would create the second source
|
|
30
|
+
* of truth upstream's own readers avoid by
|
|
31
|
+
* scanning a directory and asking each file.
|
|
32
|
+
* wr_randomizer (save.c:286) -> SavedGame.rng
|
|
33
|
+
* wr_options (save.c:314) -> SavedGame.options (SIDEBAR_MODE is UI)
|
|
34
|
+
* wr_messages (save.c:339) -> SavedGame.messages
|
|
35
|
+
* wr_monster_memory(save.c:356) -> SavedGame.lore (whole record, not just
|
|
36
|
+
* pkills/thefts: the port has no lore.txt)
|
|
37
|
+
* wr_object_memory (save.c:377) -> flavor.aware / .tried, everseen.kinds,
|
|
38
|
+
* ignore.kindAware / .kindUnaware
|
|
39
|
+
* wr_quests (save.c:405) -> player.quests
|
|
40
|
+
* wr_player (save.c:418) -> SavedPlayer + SavedGame.actor / arena /
|
|
41
|
+
* nameSuffix / skipCmdCoercion / unignoring /
|
|
42
|
+
* restingTurn
|
|
43
|
+
* wr_ignore (save.c:514) -> SavedGame.ignore, .autoinscriptions,
|
|
44
|
+
* everseen.egos. GAP: the rune-note block
|
|
45
|
+
* (save.c:589-605) has no counterpart -
|
|
46
|
+
* rune_note is a ledgered deferral.
|
|
47
|
+
* wr_misc (save.c:610) -> randartSeed, seedFlavor, player.totalWinner,
|
|
48
|
+
* player.noscore, isDead, turn, player.objKnown
|
|
49
|
+
* wr_artifacts (save.c:674) -> artifactsCreated / Seen / Everseen
|
|
50
|
+
* wr_player_hp (save.c:692) -> player.playerHp
|
|
51
|
+
* wr_player_spells (save.c:702) -> player.spellFlags / .spellOrder
|
|
52
|
+
* wr_gear_aux (save.c:715) -> gear (+ player.equipment slot map)
|
|
53
|
+
* wr_gear (save.c:737) -> ditto; the gear_k known twin is N/A
|
|
54
|
+
* wr_stores (save.c:744) -> SavedGame.stores
|
|
55
|
+
* wr_dungeon_aux (save.c:774) -> ChunkSquaresData (+ currentJoins)
|
|
56
|
+
* wr_objects_aux (save.c:873) -> SavedGame.floor
|
|
57
|
+
* wr_monsters_aux (save.c:915) -> SavedGame.monsters / .groups
|
|
58
|
+
* wr_traps_aux (save.c:933) -> SavedGame.traps
|
|
59
|
+
* wr_dungeon (save.c:959) -> dungeonDepth, daycount, actor.grid
|
|
60
|
+
* wr_objects (save.c:980) -> floor (player->cave twin N/A)
|
|
61
|
+
* wr_monsters (save.c:986) -> monsters (player->cave twin N/A)
|
|
62
|
+
* wr_traps (save.c:992) -> traps (player->cave twin N/A)
|
|
63
|
+
* wr_chunks (save.c:1001) -> levelCache + townChunk
|
|
64
|
+
* wr_history (save.c:1048) -> player.hist
|
|
65
|
+
* wr_item (save.c:69) -> SavedObject (obj->oidx N/A)
|
|
66
|
+
* wr_monster (save.c:201) -> SavedMonster
|
|
67
|
+
* wr_trap (save.c:261) -> SavedTrap
|
|
68
|
+
*/
|
|
69
|
+
import type { Loc } from "../loc.js";
|
|
70
|
+
import type { RngState } from "../rng.js";
|
|
71
|
+
import type { RandomValue } from "../rng.js";
|
|
72
|
+
import { Chunk } from "../world/chunk.js";
|
|
73
|
+
import type { ChunkSquaresData } from "../world/chunk.js";
|
|
74
|
+
import type { GameObject } from "../obj/object.js";
|
|
75
|
+
import type { ObjRegistry } from "../obj/bind.js";
|
|
76
|
+
import type { ElementInfo } from "../obj/types.js";
|
|
77
|
+
import type { AutoinscriptionRegistry } from "../obj/knowledge.js";
|
|
78
|
+
import type { IgnoreSettingsData } from "../obj/ignore.js";
|
|
79
|
+
import type { Monster, MonsterGroupInfo } from "../mon/monster.js";
|
|
80
|
+
import type { MonsterLore } from "../mon/lore.js";
|
|
81
|
+
import type { MonsterRegistry } from "../mon/bind.js";
|
|
82
|
+
import type { Player, PlayerQuest } from "../player/player.js";
|
|
83
|
+
import type { PlayerRegistry } from "../player/bind.js";
|
|
84
|
+
import type { TrapKind } from "../world/trap.js";
|
|
85
|
+
import type { GameState, MonsterGroup, StoredLevel } from "../game/context.js";
|
|
86
|
+
import { MessageLog } from "../msg.js";
|
|
87
|
+
import type { Trap } from "../game/trap.js";
|
|
88
|
+
import type { Gear } from "../game/gear.js";
|
|
89
|
+
import type { Store } from "../store/store.js";
|
|
90
|
+
import type { BoundStore } from "../store/types.js";
|
|
91
|
+
import type { KnownMap } from "../game/known.js";
|
|
92
|
+
import type { SaveIntegrity } from "../save/integrity.js";
|
|
93
|
+
import type { SaveCodec } from "../save/compress.js";
|
|
94
|
+
import type { ContentIdResolver } from "../mod/ids.js";
|
|
95
|
+
import type { ModBag, OrphanStore, SaveManifest } from "../mod/save-blocks.js";
|
|
96
|
+
/**
|
|
97
|
+
* The save format version this build writes. Version 2 replaced every numeric
|
|
98
|
+
* content index (kidx/eidx/aidx/ridx/tidx/feat, and the positional curse/
|
|
99
|
+
* brand/slay arrays) with the namespaced string ids of mod/ids.ts, the
|
|
100
|
+
* load-bearing rule of the mod substrate (MOD_LIFECYCLE decision 1). Version 3
|
|
101
|
+
* finished that job: `flavor`, `everseen` and `ignore` were the last blocks
|
|
102
|
+
* still keyed by raw kidx/eidx, and the rune-autoinscription block of wr_ignore
|
|
103
|
+
* (save.c:586-605) arrived with them. Older saves are not migrated: the game is
|
|
104
|
+
* pre-1.0 and the save format is still settling, so loadGame rejects them and
|
|
105
|
+
* the host starts a fresh game.
|
|
106
|
+
*/
|
|
107
|
+
export declare const SAVE_VERSION = 3;
|
|
108
|
+
export interface SavedObject {
|
|
109
|
+
/** Namespaced kind id (mod/ids.ts), e.g. "core:sword:dagger". */
|
|
110
|
+
kindId: string;
|
|
111
|
+
/** Ego id, or null when the object has no ego. */
|
|
112
|
+
egoId: string | null;
|
|
113
|
+
/** Artifact id, or null when the object is not an artifact. */
|
|
114
|
+
artifactId: string | null;
|
|
115
|
+
grid: {
|
|
116
|
+
x: number;
|
|
117
|
+
y: number;
|
|
118
|
+
} | null;
|
|
119
|
+
tval: number;
|
|
120
|
+
sval: number;
|
|
121
|
+
pval: number;
|
|
122
|
+
knownPval?: number;
|
|
123
|
+
weight: number;
|
|
124
|
+
dd: number;
|
|
125
|
+
ds: number;
|
|
126
|
+
ac: number;
|
|
127
|
+
toA: number;
|
|
128
|
+
toH: number;
|
|
129
|
+
toD: number;
|
|
130
|
+
flags: number[];
|
|
131
|
+
modifiers: number[];
|
|
132
|
+
elInfo: ElementInfo[];
|
|
133
|
+
/** Brand ids present on the object (the sparse form of the boolean array). */
|
|
134
|
+
brands: string[] | null;
|
|
135
|
+
/** Slay ids present on the object. */
|
|
136
|
+
slays: string[] | null;
|
|
137
|
+
/** Curse ids with their rolled power/timeout (sparse form). */
|
|
138
|
+
curses: Array<{
|
|
139
|
+
id: string;
|
|
140
|
+
power: number;
|
|
141
|
+
timeout: number;
|
|
142
|
+
}> | null;
|
|
143
|
+
time: RandomValue;
|
|
144
|
+
timeout: number;
|
|
145
|
+
number: number;
|
|
146
|
+
notice: number;
|
|
147
|
+
heldMIdx: number;
|
|
148
|
+
mimickingMIdx: number;
|
|
149
|
+
origin: number;
|
|
150
|
+
originDepth: number;
|
|
151
|
+
/** Origin monster race id, or null when there is no origin race. */
|
|
152
|
+
originRaceId: string | null;
|
|
153
|
+
note: string | null;
|
|
154
|
+
/** C wr_item's effect-present byte (save.c:113-118). */
|
|
155
|
+
effectPresent?: boolean;
|
|
156
|
+
/** C wr_item's saved activation index (save.c:184-188). */
|
|
157
|
+
activationIndex?: number;
|
|
158
|
+
}
|
|
159
|
+
export declare function serializeObject(obj: GameObject, ids: ContentIdResolver): SavedObject;
|
|
160
|
+
export declare function deserializeObject(data: SavedObject, reg: ObjRegistry, ids: ContentIdResolver): GameObject;
|
|
161
|
+
export interface SavedMonster {
|
|
162
|
+
/** Namespaced monster race id, e.g. "core:kobold". */
|
|
163
|
+
raceId: string;
|
|
164
|
+
/** Original race id (for a polymorphed/shaped monster), or null. */
|
|
165
|
+
originalRaceId: string | null;
|
|
166
|
+
midx: number;
|
|
167
|
+
grid: {
|
|
168
|
+
x: number;
|
|
169
|
+
y: number;
|
|
170
|
+
};
|
|
171
|
+
hp: number;
|
|
172
|
+
maxhp: number;
|
|
173
|
+
mTimed: number[];
|
|
174
|
+
mspeed: number;
|
|
175
|
+
energy: number;
|
|
176
|
+
cdis: number;
|
|
177
|
+
mflag: number[];
|
|
178
|
+
mimickedObj: number;
|
|
179
|
+
heldObj: SavedObject[];
|
|
180
|
+
attr: number;
|
|
181
|
+
target: {
|
|
182
|
+
grid: {
|
|
183
|
+
x: number;
|
|
184
|
+
y: number;
|
|
185
|
+
};
|
|
186
|
+
midx: number;
|
|
187
|
+
};
|
|
188
|
+
groupInfo: MonsterGroupInfo[];
|
|
189
|
+
minRange: number;
|
|
190
|
+
bestRange: number;
|
|
191
|
+
/** C wr_monster's known_pstate.flags (save.c:231-232). */
|
|
192
|
+
knownPstateFlags?: number[];
|
|
193
|
+
/** C wr_monster's known_pstate.el_info[].res_level (save.c:234-235). */
|
|
194
|
+
knownPstateElInfo?: number[];
|
|
195
|
+
}
|
|
196
|
+
export declare function serializeMonster(mon: Monster, ids: ContentIdResolver): SavedMonster;
|
|
197
|
+
/** rd_monster (load.c:259), over JSON instead of the binary block. */
|
|
198
|
+
export declare function deserializeMonster(data: SavedMonster, monsters: MonsterRegistry, objects: ObjRegistry, ids: ContentIdResolver): Monster;
|
|
199
|
+
export interface SavedPlayer {
|
|
200
|
+
raceName: string;
|
|
201
|
+
clsName: string;
|
|
202
|
+
hitdie: number;
|
|
203
|
+
expFactor: number;
|
|
204
|
+
age: number;
|
|
205
|
+
ht: number;
|
|
206
|
+
wt: number;
|
|
207
|
+
au: number;
|
|
208
|
+
maxLev: number;
|
|
209
|
+
lev: number;
|
|
210
|
+
maxExp: number;
|
|
211
|
+
exp: number;
|
|
212
|
+
expFrac: number;
|
|
213
|
+
/** Recall / descent state (absent in older saves; default 0). */
|
|
214
|
+
maxDepth?: number;
|
|
215
|
+
recallDepth?: number;
|
|
216
|
+
wordRecall?: number;
|
|
217
|
+
deepDescent?: number;
|
|
218
|
+
mhp: number;
|
|
219
|
+
chp: number;
|
|
220
|
+
chpFrac: number;
|
|
221
|
+
msp: number;
|
|
222
|
+
csp: number;
|
|
223
|
+
cspFrac: number;
|
|
224
|
+
statMax: number[];
|
|
225
|
+
statCur: number[];
|
|
226
|
+
statMap: number[];
|
|
227
|
+
statBirth: number[];
|
|
228
|
+
timed: number[];
|
|
229
|
+
spellFlags: number[];
|
|
230
|
+
spellOrder: number[];
|
|
231
|
+
playerHp: number[];
|
|
232
|
+
auBirth: number;
|
|
233
|
+
htBirth: number;
|
|
234
|
+
wtBirth: number;
|
|
235
|
+
/**
|
|
236
|
+
* full_name (save.c:422): the character's name. Optional: absent in saves
|
|
237
|
+
* written before the field, which load with an empty name (buildScore falls
|
|
238
|
+
* back to the empty string exactly as before this field existed).
|
|
239
|
+
*/
|
|
240
|
+
fullName?: string;
|
|
241
|
+
/**
|
|
242
|
+
* died_from (save.c:424): the cause-of-death string. Optional: absent saves
|
|
243
|
+
* load with an empty string.
|
|
244
|
+
*/
|
|
245
|
+
diedFrom?: string;
|
|
246
|
+
/**
|
|
247
|
+
* noscore (save.c:623, wr_u16b): the cheater bit mask. Optional: absent saves
|
|
248
|
+
* load as 0 (a clean, scored character).
|
|
249
|
+
*/
|
|
250
|
+
noscore?: number;
|
|
251
|
+
history: string;
|
|
252
|
+
/**
|
|
253
|
+
* hist (player-history.h struct player_history): the runtime auto-history
|
|
254
|
+
* event log - absent in saves predating this field, which load as an
|
|
255
|
+
* empty log (SAVEFILE_IMPORT-tolerant posture, matching load.c's
|
|
256
|
+
* best-effort read of older savefiles).
|
|
257
|
+
*/
|
|
258
|
+
hist?: SavedHistoryInfo[];
|
|
259
|
+
equipment: number[];
|
|
260
|
+
/**
|
|
261
|
+
* obj_k, every rune variety (wr_player's object knowledge). Older saves
|
|
262
|
+
* (pre rune learn-by-use) carried only objKnownModifiers; the reader
|
|
263
|
+
* accepts both.
|
|
264
|
+
*/
|
|
265
|
+
objKnown?: {
|
|
266
|
+
modifiers: number[];
|
|
267
|
+
toA: number;
|
|
268
|
+
toH: number;
|
|
269
|
+
toD: number;
|
|
270
|
+
/**
|
|
271
|
+
* obj_k->dd / ds / ac (the "know dice"/"know ac" runes). Optional: saves
|
|
272
|
+
* written before these fields existed omit them; the reader defaults each
|
|
273
|
+
* to 1 (obvious birth knowledge, always correct - see player_outfit).
|
|
274
|
+
*/
|
|
275
|
+
dd?: number;
|
|
276
|
+
ds?: number;
|
|
277
|
+
ac?: number;
|
|
278
|
+
elInfo: ElementInfo[];
|
|
279
|
+
flags: number[];
|
|
280
|
+
/** Ids of the brand runes the player has learned. */
|
|
281
|
+
brands: string[];
|
|
282
|
+
/** Ids of the slay runes the player has learned. */
|
|
283
|
+
slays: string[];
|
|
284
|
+
/** Ids of the curse runes the player has learned. */
|
|
285
|
+
curses: string[];
|
|
286
|
+
};
|
|
287
|
+
/** Legacy (save version 1 pre-#13): modifier runes only. */
|
|
288
|
+
objKnownModifiers?: number[];
|
|
289
|
+
shapeName: string | null;
|
|
290
|
+
skills: number[];
|
|
291
|
+
upkeep: {
|
|
292
|
+
playing: boolean;
|
|
293
|
+
newSpells: number;
|
|
294
|
+
totalWeight: number;
|
|
295
|
+
};
|
|
296
|
+
/**
|
|
297
|
+
* quests (player-quest.h): the per-character quest history. Optional: absent
|
|
298
|
+
* in saves written before the quest system, which reload with no quests (and
|
|
299
|
+
* hence no win condition until re-birthed) - the SAVEFILE_IMPORT-tolerant
|
|
300
|
+
* posture matching the other late-added fields.
|
|
301
|
+
*/
|
|
302
|
+
quests?: PlayerQuest[];
|
|
303
|
+
/** total_winner: the victory flag. Optional; absent saves load as false. */
|
|
304
|
+
totalWinner?: boolean;
|
|
305
|
+
}
|
|
306
|
+
/** Serialized history entry; C save.c:1063-1067 writes the artifact NAME. */
|
|
307
|
+
export interface SavedHistoryInfo {
|
|
308
|
+
type: number;
|
|
309
|
+
dlev: number;
|
|
310
|
+
clev: number;
|
|
311
|
+
artifactName: string;
|
|
312
|
+
turn: number;
|
|
313
|
+
event: string;
|
|
314
|
+
/** Legacy JSON saves used a numeric aIdx; never written by this version. */
|
|
315
|
+
aIdx?: number;
|
|
316
|
+
}
|
|
317
|
+
export declare function serializePlayer(p: Player, ids: ContentIdResolver): SavedPlayer;
|
|
318
|
+
export declare function deserializePlayer(data: SavedPlayer, players: PlayerRegistry, objReg: ObjRegistry, ids: ContentIdResolver): Player;
|
|
319
|
+
export interface SavedTrap {
|
|
320
|
+
/** Namespaced trap-kind id, e.g. "core:trap-door". */
|
|
321
|
+
trapId: string;
|
|
322
|
+
grid: {
|
|
323
|
+
x: number;
|
|
324
|
+
y: number;
|
|
325
|
+
};
|
|
326
|
+
power: number;
|
|
327
|
+
timeout: number;
|
|
328
|
+
flags: number[];
|
|
329
|
+
}
|
|
330
|
+
export interface SavedGame {
|
|
331
|
+
version: number;
|
|
332
|
+
player: SavedPlayer;
|
|
333
|
+
actor: {
|
|
334
|
+
grid: {
|
|
335
|
+
x: number;
|
|
336
|
+
y: number;
|
|
337
|
+
};
|
|
338
|
+
energy: number;
|
|
339
|
+
totalEnergy: number;
|
|
340
|
+
};
|
|
341
|
+
gear: {
|
|
342
|
+
next: number;
|
|
343
|
+
pack: number[];
|
|
344
|
+
store: Array<[number, SavedObject]>;
|
|
345
|
+
};
|
|
346
|
+
/** Omitted for dead saves, matching save.c:873-1045. */
|
|
347
|
+
chunk?: ChunkSquaresData;
|
|
348
|
+
/**
|
|
349
|
+
* Feature legend: every terrain index that appears in chunk.feats or
|
|
350
|
+
* known.feat, paired with its namespaced feature id. The grid stays a
|
|
351
|
+
* compact numeric array (one small legend, not a string per cell); on load
|
|
352
|
+
* the numeric feats are remapped through the legend to the current pack's
|
|
353
|
+
* indices, so terrain references survive pack changes exactly like every
|
|
354
|
+
* other content reference (MOD_LIFECYCLE decision 1). Optional only for the
|
|
355
|
+
* degenerate empty-level case.
|
|
356
|
+
*/
|
|
357
|
+
featLegend?: Array<[number, string]>;
|
|
358
|
+
monsters?: Array<SavedMonster | null>;
|
|
359
|
+
groups?: Array<MonsterGroup | null>;
|
|
360
|
+
/** Floor piles in pile order (head first), keyed by grid. */
|
|
361
|
+
floor?: Array<{
|
|
362
|
+
x: number;
|
|
363
|
+
y: number;
|
|
364
|
+
objs: SavedObject[];
|
|
365
|
+
}>;
|
|
366
|
+
traps?: Array<{
|
|
367
|
+
x: number;
|
|
368
|
+
y: number;
|
|
369
|
+
traps: SavedTrap[];
|
|
370
|
+
}>;
|
|
371
|
+
/** The dungeon header retained by C even when the player is dead. */
|
|
372
|
+
dungeonDepth?: number;
|
|
373
|
+
rng: RngState;
|
|
374
|
+
turn: number;
|
|
375
|
+
playing: boolean;
|
|
376
|
+
isDead: boolean;
|
|
377
|
+
/**
|
|
378
|
+
* kind->aware / kind->tried (wr_object_memory, save.c:399-401), by namespaced
|
|
379
|
+
* kind id. Upstream writes these positionally by kidx and rd_object_memory
|
|
380
|
+
* reads them back positionally (load.c:602-620), so a data change that
|
|
381
|
+
* re-orders k_info silently re-targets them; the port's format keys every
|
|
382
|
+
* content reference by id instead (SAVE_VERSION 3).
|
|
383
|
+
*/
|
|
384
|
+
flavor: {
|
|
385
|
+
aware: string[];
|
|
386
|
+
tried: string[];
|
|
387
|
+
};
|
|
388
|
+
/**
|
|
389
|
+
* kind->everseen / ego->everseen (save.c L397, L533): the per-game "ever
|
|
390
|
+
* seen" flags for object kinds and egos, by namespaced id (see `flavor`).
|
|
391
|
+
* Optional: absent in saves written before everseen tracking, which reload
|
|
392
|
+
* with an empty set (the object browser then falls back to flavour-aware
|
|
393
|
+
* membership only).
|
|
394
|
+
*/
|
|
395
|
+
everseen?: {
|
|
396
|
+
kinds: string[];
|
|
397
|
+
egos: string[];
|
|
398
|
+
};
|
|
399
|
+
/**
|
|
400
|
+
* seed_flavor (game-world.c): the seed flavor_init used to assign object
|
|
401
|
+
* colours/titles. Optional: absent in saves written before flavour
|
|
402
|
+
* assignment, which reload with a stable seed-0 assignment.
|
|
403
|
+
*/
|
|
404
|
+
seedFlavor?: number;
|
|
405
|
+
/**
|
|
406
|
+
* The player's map knowledge (game/known.ts). Optional: absent in
|
|
407
|
+
* version-1 saves written before the knowledge layer, which load with
|
|
408
|
+
* an all-unknown map.
|
|
409
|
+
*/
|
|
410
|
+
known?: SavedKnown;
|
|
411
|
+
/**
|
|
412
|
+
* Monster memory (mon/lore.ts), keyed by monster race id. Optional: absent
|
|
413
|
+
* in saves written before lore, which load with no memory. Upstream splits
|
|
414
|
+
* this between the savefile (pkills/thefts) and the user lore file; the
|
|
415
|
+
* JSON save carries the whole record.
|
|
416
|
+
*/
|
|
417
|
+
lore?: Array<[string, SavedLore]>;
|
|
418
|
+
/**
|
|
419
|
+
* Single combat in progress (upkeep->arena_level + player->old_grid).
|
|
420
|
+
* The stashed pre-arena level does not survive the save boundary:
|
|
421
|
+
* winning after a reload exits to a fresh level of the same depth.
|
|
422
|
+
*/
|
|
423
|
+
arena?: {
|
|
424
|
+
oldGrid: {
|
|
425
|
+
x: number;
|
|
426
|
+
y: number;
|
|
427
|
+
};
|
|
428
|
+
};
|
|
429
|
+
/**
|
|
430
|
+
* The town stores (store.c wr_stores, save.c:744-765): every shop's current
|
|
431
|
+
* proprietor and full stock, in registry order - including FEAT_HOME, whose
|
|
432
|
+
* stock is the player's home stash (gap 12.1: the home stash must survive
|
|
433
|
+
* save/load). Optional: absent in saves written before store persistence and
|
|
434
|
+
* in saves taken before the player ever reached town, which reload and
|
|
435
|
+
* re-stock fresh (the pre-fix behaviour). See serializeStores.
|
|
436
|
+
*/
|
|
437
|
+
stores?: SavedStore[];
|
|
438
|
+
/**
|
|
439
|
+
* daycount (game-world.c / save.c:963): store turnovers accrued while in the
|
|
440
|
+
* dungeon, consumed by store_update on the return to town (gap 12.3). Optional
|
|
441
|
+
* / 0 when no days have elapsed.
|
|
442
|
+
*/
|
|
443
|
+
daycount?: number;
|
|
444
|
+
/**
|
|
445
|
+
* player->resting_turn (save.c:507; wr_player): the cumulative count of player
|
|
446
|
+
* turns spent resting. Gap 12.6. Optional / omitted when 0 (a character that
|
|
447
|
+
* has never rested), which loads back as 0. See GameState.restingTurn.
|
|
448
|
+
*/
|
|
449
|
+
restingTurn?: number;
|
|
450
|
+
/**
|
|
451
|
+
* player->skip_cmd_coercion (save.c:490; wr_player): the bloodlust command
|
|
452
|
+
* -coercion skip state (0/1/2). Gap 12.6. Optional / omitted when 0.
|
|
453
|
+
*/
|
|
454
|
+
skipCmdCoercion?: number;
|
|
455
|
+
/**
|
|
456
|
+
* player->unignoring (save.c:491; wr_player): the temporary "show ignored
|
|
457
|
+
* items" toggle. Gap 12.6. Optional / omitted when 0 (ignoring active).
|
|
458
|
+
*/
|
|
459
|
+
unignoring?: number;
|
|
460
|
+
/**
|
|
461
|
+
* player->opts.name_suffix (save.c:432; wr_player): the numeric name suffix
|
|
462
|
+
* for the high-score table. Gap 12.6. Optional / omitted when 0.
|
|
463
|
+
*/
|
|
464
|
+
nameSuffix?: number;
|
|
465
|
+
/**
|
|
466
|
+
* The rolling message log (wr_messages/rd_messages, save.c:339-353 /
|
|
467
|
+
* load.c:471-495). Gap 12.8. Each entry is text + MSG_* type, in the savefile's
|
|
468
|
+
* oldest-first order and capped at the 80 newest messages (save.c:345). The
|
|
469
|
+
* per-entry repeat count is NOT persisted - upstream wr_messages writes only
|
|
470
|
+
* message_str/message_type, so a reload collapses through message_add and every
|
|
471
|
+
* count resets to 1 (the quirk is preserved). Optional / omitted for an empty
|
|
472
|
+
* log and in saves written before message persistence, which load empty.
|
|
473
|
+
*/
|
|
474
|
+
messages?: SavedMessage[];
|
|
475
|
+
/**
|
|
476
|
+
* The player's ignore settings (obj-ignore.c). Optional: absent in saves
|
|
477
|
+
* written before ignoring, which load with everything shown.
|
|
478
|
+
*/
|
|
479
|
+
ignore?: SavedIgnoreSettings;
|
|
480
|
+
/**
|
|
481
|
+
* The player option store (option.c): every option value, hitpoint_warn /
|
|
482
|
+
* delay_factor, and the immutable birth-option snapshot. Optional: absent in
|
|
483
|
+
* saves written before the option store, which load with the table defaults.
|
|
484
|
+
*/
|
|
485
|
+
options?: import("../player/options.js").OptionStateData;
|
|
486
|
+
/**
|
|
487
|
+
* randart_seed (obj-randart.c): the seed do_randart used when birth_randarts
|
|
488
|
+
* is on. Optional / 0 when the standard artifact set is in use. Persisted so
|
|
489
|
+
* a reload rebuilds the identical random artifact set.
|
|
490
|
+
*/
|
|
491
|
+
randartSeed?: number;
|
|
492
|
+
/**
|
|
493
|
+
* aup_info[] (obj-make.c): the ids of the artifacts already created. Stored
|
|
494
|
+
* as an id list (not a by-aidx boolean array) so the created set survives
|
|
495
|
+
* pack changes. Optional / absent in saves written before artifact
|
|
496
|
+
* generation landed, which load with an all-false set.
|
|
497
|
+
*/
|
|
498
|
+
artifactsCreated?: string[];
|
|
499
|
+
/** aup_info[].seen (save.c:684-685). */
|
|
500
|
+
artifactsSeen?: string[];
|
|
501
|
+
/** aup_info[].everseen (save.c:685-686). */
|
|
502
|
+
artifactsEverseen?: string[];
|
|
503
|
+
/**
|
|
504
|
+
* The manifest block (mod/save-blocks.ts, P7.2): the pack set + resolved load
|
|
505
|
+
* order + core-owned determinism mode that produced this save - its profile
|
|
506
|
+
* fingerprint. Optional: absent in saves written before the mod substrate,
|
|
507
|
+
* which load as core-only + deterministic (coreOnlyManifest).
|
|
508
|
+
*/
|
|
509
|
+
manifest?: SaveManifest;
|
|
510
|
+
/**
|
|
511
|
+
* Per-mod private bags (mod:<id>), keyed by pack id: opaque JSON the engine
|
|
512
|
+
* never interprets, versioned by each mod's saveSchema. Absent when no mod
|
|
513
|
+
* persisted state. Round-tripped verbatim; migrated only by the owning mod.
|
|
514
|
+
*/
|
|
515
|
+
mods?: Record<string, ModBag>;
|
|
516
|
+
/**
|
|
517
|
+
* The orphans store (orphans:<id>@<version>): entities quarantined because
|
|
518
|
+
* their defining pack is missing or shadowed (mod/save-blocks.ts). Frozen and
|
|
519
|
+
* inert, restored by rehydrateSave when the pack returns. Absent when nothing
|
|
520
|
+
* is quarantined.
|
|
521
|
+
*/
|
|
522
|
+
orphans?: OrphanStore;
|
|
523
|
+
/**
|
|
524
|
+
* decision-8 seam: whether the one-time keep/purge orphan prompt has already
|
|
525
|
+
* been shown for this save. Core computes the orphan count; the UI shows the
|
|
526
|
+
* prompt once and sets this so it never nags again. Absent = not yet shown.
|
|
527
|
+
*/
|
|
528
|
+
orphansAcknowledged?: boolean;
|
|
529
|
+
/**
|
|
530
|
+
* birth_levels_persist (#30) frozen-level cache (game/context.ts StoredLevel),
|
|
531
|
+
* one entry per cached depth, reusing the same chunk / monster / floor / trap /
|
|
532
|
+
* known serializers as the current level. Optional / absent when the option is
|
|
533
|
+
* off (the default) or no level has been frozen: older and default saves load
|
|
534
|
+
* with an empty cache (back-compat, like every other optional field here).
|
|
535
|
+
*/
|
|
536
|
+
levelCache?: SavedStoredLevel[];
|
|
537
|
+
/**
|
|
538
|
+
* GameState.currentJoins: the in-play level's stair connectors (chunk->join,
|
|
539
|
+
* generate.c L1203-1214), so a first-visit persistent level can align stairs
|
|
540
|
+
* with the level just left. Absent when the option is off / no joins recorded.
|
|
541
|
+
*/
|
|
542
|
+
currentJoins?: Array<{
|
|
543
|
+
x: number;
|
|
544
|
+
y: number;
|
|
545
|
+
feat: number;
|
|
546
|
+
info?: number[];
|
|
547
|
+
}>;
|
|
548
|
+
/**
|
|
549
|
+
* The per-kind autoinscription registry (obj-ignore.c note_aware/note_unaware,
|
|
550
|
+
* obj/knowledge.ts AutoinscriptionRegistry). Keyed by the namespaced kind id
|
|
551
|
+
* (like every other content reference, MOD_LIFECYCLE decision 1) so notes
|
|
552
|
+
* survive pack reordering. Optional / absent when nothing is registered:
|
|
553
|
+
* older saves and the default (no autoinscriptions) load with an empty
|
|
554
|
+
* registry, back-compat like every other optional field here.
|
|
555
|
+
*/
|
|
556
|
+
autoinscriptions?: SavedAutoinscription[];
|
|
557
|
+
/**
|
|
558
|
+
* The per-RUNE autoinscriptions (rune_list[i].note; wr_ignore save.c:586-605,
|
|
559
|
+
* rd_ignore load.c:937-945). Keyed by runeKey (obj/knowledge.ts), the
|
|
560
|
+
* pack-stable form of the raw index upstream writes (`wr_s16b(k)`,
|
|
561
|
+
* save.c:600); the runtime registry is still index-keyed like rune_list.
|
|
562
|
+
* Absent when no rune carries a note.
|
|
563
|
+
*/
|
|
564
|
+
runeNotes?: Array<[string, string]>;
|
|
565
|
+
/**
|
|
566
|
+
* Terrain-only Town chunk (wr_chunks always saves the Town entry even when
|
|
567
|
+
* birth_levels_persist is OFF; generate.c:1371-1373 / save.c:1001-1044).
|
|
568
|
+
* Present after leaving depth 0 without persist; consumed on town re-entry.
|
|
569
|
+
* Optional / absent in older saves and before the player has left town.
|
|
570
|
+
*/
|
|
571
|
+
townChunk?: ChunkSquaresData;
|
|
572
|
+
/** Feature legend for townChunk feats (same remap contract as levelCache). */
|
|
573
|
+
townFeatLegend?: Array<[number, string]>;
|
|
574
|
+
}
|
|
575
|
+
/** One serialized per-kind autoinscription entry (namespaced kind id + notes). */
|
|
576
|
+
export interface SavedAutoinscription {
|
|
577
|
+
kindId: string;
|
|
578
|
+
aware?: string;
|
|
579
|
+
unaware?: string;
|
|
580
|
+
}
|
|
581
|
+
/**
|
|
582
|
+
* One serialized message-log entry (wr_messages, save.c:350-351): the message
|
|
583
|
+
* text and its MSG_* type. The repeat count is intentionally NOT stored -
|
|
584
|
+
* upstream persists only message_str/message_type, so counts do not survive a
|
|
585
|
+
* reload (see SavedGame.messages).
|
|
586
|
+
*/
|
|
587
|
+
export interface SavedMessage {
|
|
588
|
+
str: string;
|
|
589
|
+
type: number;
|
|
590
|
+
}
|
|
591
|
+
/**
|
|
592
|
+
* Serialize the rolling message log (wr_messages, save.c:339-353): the newest
|
|
593
|
+
* `cap` messages (default 80, the upstream limit) written oldest-first, each as
|
|
594
|
+
* text + type. Returns undefined for an empty / absent log so a clean save omits
|
|
595
|
+
* the block. Faithful to the C: the per-entry repeat count is dropped, so a
|
|
596
|
+
* reload recollapses through MessageLog.add and every count resets to 1.
|
|
597
|
+
*/
|
|
598
|
+
export declare function serializeMessages(log: MessageLog | undefined, cap?: number): SavedMessage[] | undefined;
|
|
599
|
+
/**
|
|
600
|
+
* Rebuild a message log from its saved form (rd_messages, load.c:471-495):
|
|
601
|
+
* re-add each entry oldest-first via MessageLog.add, exactly as upstream calls
|
|
602
|
+
* message_add in a forward loop. An absent block (older save / empty log) yields
|
|
603
|
+
* a fresh empty log.
|
|
604
|
+
*/
|
|
605
|
+
export declare function deserializeMessages(data: SavedMessage[] | undefined): MessageLog;
|
|
606
|
+
/** Serialized map knowledge (remembered terrain and floor objects). */
|
|
607
|
+
export interface SavedKnown {
|
|
608
|
+
feat: number[];
|
|
609
|
+
objects: Array<[number, {
|
|
610
|
+
ch: string | null;
|
|
611
|
+
attr: string;
|
|
612
|
+
}]>;
|
|
613
|
+
}
|
|
614
|
+
/** One serialized race-lore record. */
|
|
615
|
+
export interface SavedLore {
|
|
616
|
+
sights: number;
|
|
617
|
+
deaths: number;
|
|
618
|
+
pkills: number;
|
|
619
|
+
thefts: number;
|
|
620
|
+
tkills: number;
|
|
621
|
+
wake: number;
|
|
622
|
+
ignore: number;
|
|
623
|
+
dropGold: number;
|
|
624
|
+
dropItem: number;
|
|
625
|
+
castInnate: number;
|
|
626
|
+
castSpell: number;
|
|
627
|
+
blowTimesSeen: number[];
|
|
628
|
+
blowKnown: boolean[];
|
|
629
|
+
flags: number[];
|
|
630
|
+
spellFlags: number[];
|
|
631
|
+
allKnown: boolean;
|
|
632
|
+
armourKnown: boolean;
|
|
633
|
+
dropKnown: boolean;
|
|
634
|
+
sleepKnown: boolean;
|
|
635
|
+
spellFreqKnown: boolean;
|
|
636
|
+
innateFreqKnown: boolean;
|
|
637
|
+
}
|
|
638
|
+
/** Serialize a live game (state + flavor knowledge) into plain JSON data. */
|
|
639
|
+
export declare function serializeGame(state: GameState, flavor: {
|
|
640
|
+
snapshot(): {
|
|
641
|
+
aware: number[];
|
|
642
|
+
tried: number[];
|
|
643
|
+
};
|
|
644
|
+
}, seedFlavor: number, ids: ContentIdResolver, randartSeed?: number, everseen?: {
|
|
645
|
+
snapshot(): {
|
|
646
|
+
kinds: number[];
|
|
647
|
+
egos: number[];
|
|
648
|
+
};
|
|
649
|
+
}): SavedGame;
|
|
650
|
+
/** Rebuild the monster memory (absent in older saves: none). */
|
|
651
|
+
export declare function deserializeLore(data: SavedGame["lore"], ids: ContentIdResolver): Map<number, MonsterLore>;
|
|
652
|
+
/**
|
|
653
|
+
* Serialize the per-kind autoinscription registry (obj/knowledge.ts): every
|
|
654
|
+
* kind with a registered note, keyed by its namespaced kind id (mod-stable,
|
|
655
|
+
* like serializeObject). Returns undefined when nothing is registered, so a
|
|
656
|
+
* clean game omits the block entirely. A kind whose id no longer resolves
|
|
657
|
+
* (unbound in this pack) is dropped.
|
|
658
|
+
*/
|
|
659
|
+
export declare function serializeAutoinscriptions(registry: AutoinscriptionRegistry, ids: ContentIdResolver): SavedAutoinscription[] | undefined;
|
|
660
|
+
/**
|
|
661
|
+
* Restore serialized autoinscriptions into a registry (absent in older saves:
|
|
662
|
+
* nothing to restore). A kind whose id is gone (its defining pack was removed)
|
|
663
|
+
* is dropped, exactly like deserializeLore drops a removed race's memory.
|
|
664
|
+
*/
|
|
665
|
+
export declare function deserializeAutoinscriptions(data: SavedAutoinscription[], registry: AutoinscriptionRegistry, ids: ContentIdResolver): void;
|
|
666
|
+
/**
|
|
667
|
+
* The player's ignore settings as they appear in the savefile: the wr_ignore /
|
|
668
|
+
* wr_object_memory choices with every content reference converted to its
|
|
669
|
+
* namespaced id.
|
|
670
|
+
*
|
|
671
|
+
* Upstream stores all three of these positionally - ignore_level[] by itype,
|
|
672
|
+
* ego_ignore_types[] by eidx (save.c:530-541 / load.c:872-892), and the per-kind
|
|
673
|
+
* ignore bits by kidx (save.c:399-407 / load.c:602-620) - so a data change that
|
|
674
|
+
* re-orders e_info or k_info silently re-targets the player's choices onto
|
|
675
|
+
* different items. `ignore_level` is genuinely keyed by the ITYPE_* enum, which
|
|
676
|
+
* is compiled-in in both trees, so it stays an array; the ego and kind keys
|
|
677
|
+
* become ids, matching every other content reference in the document
|
|
678
|
+
* (MOD_LIFECYCLE decision 1).
|
|
679
|
+
*/
|
|
680
|
+
export interface SavedIgnoreSettings {
|
|
681
|
+
/** ignore_level[itype] (save.c:522-523), keyed by the compiled ITYPE_* enum. */
|
|
682
|
+
level: number[];
|
|
683
|
+
/** ego_ignore_types: one [namespaced ego id, itype] pair per set bit. */
|
|
684
|
+
ego: Array<[string, number]>;
|
|
685
|
+
/** kind_is_ignored_aware, by namespaced kind id. */
|
|
686
|
+
kindAware: string[];
|
|
687
|
+
/** kind_is_ignored_unaware, by namespaced kind id. */
|
|
688
|
+
kindUnaware: string[];
|
|
689
|
+
/** player->unignoring (save.c L491). Optional: absent in older saves. */
|
|
690
|
+
unignoring?: boolean;
|
|
691
|
+
}
|
|
692
|
+
/**
|
|
693
|
+
* Convert an IgnoreSettings.snapshot() (raw kidx/eidx, the runtime keying
|
|
694
|
+
* upstream also uses) into the id-keyed savefile form. A kind or ego the
|
|
695
|
+
* running pack no longer binds is dropped, like deserializeAutoinscriptions.
|
|
696
|
+
*/
|
|
697
|
+
export declare function serializeIgnore(data: IgnoreSettingsData, ids: ContentIdResolver): SavedIgnoreSettings;
|
|
698
|
+
/** The inverse of serializeIgnore; an id the pack no longer binds is dropped. */
|
|
699
|
+
export declare function deserializeIgnore(data: SavedIgnoreSettings, ids: ContentIdResolver): IgnoreSettingsData;
|
|
700
|
+
/** Restore the id-keyed flavor block into the raw-kidx form FlavorKnowledge takes. */
|
|
701
|
+
export declare function deserializeFlavor(data: {
|
|
702
|
+
aware: string[];
|
|
703
|
+
tried: string[];
|
|
704
|
+
}, ids: ContentIdResolver): {
|
|
705
|
+
aware: number[];
|
|
706
|
+
tried: number[];
|
|
707
|
+
};
|
|
708
|
+
/** Restore the id-keyed everseen block into the raw-index form it takes. */
|
|
709
|
+
export declare function deserializeEverseen(data: {
|
|
710
|
+
kinds: string[];
|
|
711
|
+
egos: string[];
|
|
712
|
+
}, ids: ContentIdResolver): {
|
|
713
|
+
kinds: number[];
|
|
714
|
+
egos: number[];
|
|
715
|
+
};
|
|
716
|
+
/**
|
|
717
|
+
* Build the feature index remap from a save's legend: each saved fidx maps to
|
|
718
|
+
* the current pack's index for the same feature id. When the save and the
|
|
719
|
+
* running pack agree (the common case), every entry is the identity; the map
|
|
720
|
+
* is still applied so a re-ordered or extended terrain set loads correctly.
|
|
721
|
+
* Throws on a legend id the current pack cannot resolve (a removed terrain -
|
|
722
|
+
* graceful degradation is a Phase 2 quarantine concern).
|
|
723
|
+
*/
|
|
724
|
+
export declare function buildFeatRemap(legend: Array<[number, string]> | undefined, ids: ContentIdResolver): Map<number, number>;
|
|
725
|
+
/** Rebuild the map knowledge (absent in older saves: all unknown). */
|
|
726
|
+
export declare function deserializeKnown(data: SavedKnown | undefined, width: number, height: number, featRemap: Map<number, number>): KnownMap;
|
|
727
|
+
/** Rebuild a Gear store from its saved form. */
|
|
728
|
+
export declare function deserializeGear(data: SavedGame["gear"], reg: ObjRegistry, ids: ContentIdResolver): Gear;
|
|
729
|
+
/** Rebuild the floor pile map (grid-keyed, pile order preserved). */
|
|
730
|
+
export declare function deserializeFloor(data: SavedGame["floor"], reg: ObjRegistry, width: number, ids: ContentIdResolver): Map<number, GameObject[]>;
|
|
731
|
+
/**
|
|
732
|
+
* Rebuild the trap map from saved instances against the bound kinds. This is
|
|
733
|
+
* rd_trap (load.c:359) plus its caller rd_traps_aux (L1473): the per-trap read
|
|
734
|
+
* is not a separate function here because the port stores traps per grid rather
|
|
735
|
+
* than as a linked list off the square.
|
|
736
|
+
*/
|
|
737
|
+
export declare function deserializeTraps(data: SavedGame["traps"], kinds: readonly TrapKind[], width: number, ids: ContentIdResolver, onDecoy?: (grid: Loc) => void): Map<number, Trap[]>;
|
|
738
|
+
/** One serialized store: its proprietor index and its full stock, in order. */
|
|
739
|
+
export interface SavedStore {
|
|
740
|
+
/** store->owner->oidx (save.c:754): the current proprietor's index. */
|
|
741
|
+
ownerIndex: number;
|
|
742
|
+
/** store->stock (save.c:761), head-first; the home stash for FEAT_HOME. */
|
|
743
|
+
stock: SavedObject[];
|
|
744
|
+
}
|
|
745
|
+
/**
|
|
746
|
+
* Serialize the live town stores (wr_stores): each shop's proprietor and stock,
|
|
747
|
+
* in registry order. Returns undefined when the game has no stores yet (never
|
|
748
|
+
* reached town), so a fresh dungeon-start save omits the block entirely.
|
|
749
|
+
*/
|
|
750
|
+
export declare function serializeStores(stores: readonly Store[] | undefined, ids: ContentIdResolver): SavedStore[] | undefined;
|
|
751
|
+
/**
|
|
752
|
+
* Rebuild the live town stores (rd_stores): re-bind each store's immutable
|
|
753
|
+
* tables from the pack (owners, stocking tables, buy list, bounds) and overlay
|
|
754
|
+
* the saved proprietor + stock. Matches upstream's positional keying (store i
|
|
755
|
+
* <-> saved i). Draws NO RNG - the caller has already restored the exact
|
|
756
|
+
* stream, so store restore must not perturb it (decision 22). A saved store
|
|
757
|
+
* beyond the current registry length is dropped; a registry store with no saved
|
|
758
|
+
* counterpart keeps an empty, default-owner shell (re-stocked on town entry).
|
|
759
|
+
*/
|
|
760
|
+
export declare function deserializeStores(bound: readonly BoundStore[], saved: SavedStore[] | undefined, reg: ObjRegistry, ids: ContentIdResolver, storeInvenMax: number): Store[];
|
|
761
|
+
/** aup_info id list -> the boolean[] by aidx that ArtifactState.restore wants. */
|
|
762
|
+
export declare function deserializeArtifactsCreated(saved: string[] | undefined, length: number, ids: ContentIdResolver): boolean[];
|
|
763
|
+
/** Restore one aup_info boolean field from stable artifact ids. */
|
|
764
|
+
export declare function deserializeArtifactFlags(saved: string[] | undefined, length: number, ids: ContentIdResolver): boolean[];
|
|
765
|
+
/**
|
|
766
|
+
* Rebuild a chunk of the saved dimensions and restore its squares, remapping
|
|
767
|
+
* the terrain grid through the save's feature legend so feature references
|
|
768
|
+
* survive a pack change.
|
|
769
|
+
*/
|
|
770
|
+
export declare function deserializeChunk(data: ChunkSquaresData, features: Chunk["features"], featRemap: Map<number, number>): Chunk;
|
|
771
|
+
/** One serialized frozen level: the same field-set as the current level. */
|
|
772
|
+
export interface SavedStoredLevel {
|
|
773
|
+
depth: number;
|
|
774
|
+
/** Game turn the level was frozen at (restore_monsters recovery baseline). */
|
|
775
|
+
turn: number;
|
|
776
|
+
chunk: ChunkSquaresData;
|
|
777
|
+
featLegend?: Array<[number, string]>;
|
|
778
|
+
monsters: Array<SavedMonster | null>;
|
|
779
|
+
groups: Array<MonsterGroup | null>;
|
|
780
|
+
floor: Array<{
|
|
781
|
+
x: number;
|
|
782
|
+
y: number;
|
|
783
|
+
objs: SavedObject[];
|
|
784
|
+
}>;
|
|
785
|
+
traps: Array<{
|
|
786
|
+
x: number;
|
|
787
|
+
y: number;
|
|
788
|
+
traps: SavedTrap[];
|
|
789
|
+
}>;
|
|
790
|
+
known: SavedKnown;
|
|
791
|
+
decoy?: {
|
|
792
|
+
x: number;
|
|
793
|
+
y: number;
|
|
794
|
+
} | null;
|
|
795
|
+
/** chunk->join stair connectors (generate.c L1203-1214); absent in old saves. */
|
|
796
|
+
join?: Array<{
|
|
797
|
+
x: number;
|
|
798
|
+
y: number;
|
|
799
|
+
feat: number;
|
|
800
|
+
info?: number[];
|
|
801
|
+
}>;
|
|
802
|
+
}
|
|
803
|
+
/** Serialize the whole frozen-level cache (empty / absent => omitted). */
|
|
804
|
+
export declare function serializeLevelCache(cache: Map<number, StoredLevel> | undefined, ids: ContentIdResolver): SavedStoredLevel[] | undefined;
|
|
805
|
+
/**
|
|
806
|
+
* Rebuild the frozen-level cache (absent in older / default saves: empty).
|
|
807
|
+
* Reuses the current-level deserializers so a cached level round-trips exactly
|
|
808
|
+
* like the live one, including per-level feature-legend remapping.
|
|
809
|
+
*/
|
|
810
|
+
export declare function deserializeLevelCache(data: SavedStoredLevel[] | undefined, features: Chunk["features"], monsters: MonsterRegistry, objects: ObjRegistry, traps: readonly TrapKind[] | null | undefined, ids: ContentIdResolver): Map<number, StoredLevel>;
|
|
811
|
+
/**
|
|
812
|
+
* JSON-encode a save, optionally compress it, and stamp it with the integrity
|
|
813
|
+
* trailer (16b).
|
|
814
|
+
*
|
|
815
|
+
* ORDER: JSON -> codec -> stamp. The digest therefore covers the bytes that are
|
|
816
|
+
* actually stored, and the trailer stays findable without running a decompressor
|
|
817
|
+
* first - which matters because an unknown codec must still be diagnosable.
|
|
818
|
+
* Passing no codec writes the bare JSON every earlier build wrote.
|
|
819
|
+
*/
|
|
820
|
+
export declare function encodeSavedGame(save: SavedGame, provider?: SaveIntegrity, codec?: SaveCodec): Uint8Array;
|
|
821
|
+
/** The decoded form of a stamped save. */
|
|
822
|
+
export interface DecodedSave {
|
|
823
|
+
save: SavedGame | null;
|
|
824
|
+
/** The integrity digest matched. */
|
|
825
|
+
verified: boolean;
|
|
826
|
+
/** No trailer was present at all. */
|
|
827
|
+
unstamped: boolean;
|
|
828
|
+
/** The codec that wrote it, or null for an uncompressed save. */
|
|
829
|
+
codecId?: string | null;
|
|
830
|
+
/**
|
|
831
|
+
* Set when the save names a codec this build does not have - a save from a
|
|
832
|
+
* NEWER build, which is a different thing from a corrupt one and must be
|
|
833
|
+
* reported differently: nothing is wrong with the file, and telling the player
|
|
834
|
+
* it is damaged would invite them to delete a perfectly good character.
|
|
835
|
+
*/
|
|
836
|
+
unknownCodec?: string;
|
|
837
|
+
}
|
|
838
|
+
/**
|
|
839
|
+
* Verify and parse stamped save bytes. A failed digest still parses (the
|
|
840
|
+
* warn-and-label posture of decision 16b - the deterrent is honest, not a
|
|
841
|
+
* lock), with verified=false for the caller to surface.
|
|
842
|
+
*
|
|
843
|
+
* `codecs` are the compressors this build can run. An uncompressed save needs
|
|
844
|
+
* none, so a caller that never compresses can keep ignoring this argument.
|
|
845
|
+
*/
|
|
846
|
+
export declare function decodeSavedGame(bytes: Uint8Array, provider?: SaveIntegrity, codecs?: readonly SaveCodec[]): DecodedSave;
|
|
847
|
+
//# sourceMappingURL=save.d.ts.map
|