@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
package/src/host/args.ts
ADDED
|
@@ -0,0 +1,334 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* main.c's command line, ported.
|
|
3
|
+
*
|
|
4
|
+
* `main()` (reference/src/main.c:342-491) is not platform-specific code - it is
|
|
5
|
+
* the shared entry point every front end without its own `main` uses, and its
|
|
6
|
+
* option loop is the only place the `arg_*` globals are ever set:
|
|
7
|
+
*
|
|
8
|
+
* arg_wizard (ui-game.c:79) -w
|
|
9
|
+
* arg_graphics (ui-prefs.c) -g
|
|
10
|
+
* arg_name (ui-prefs.c:41) -u<who>
|
|
11
|
+
* arg_force_name (ui-birth.c:97) -f
|
|
12
|
+
* ANGBAND_SYS (init.c:84) -m<sys>
|
|
13
|
+
*
|
|
14
|
+
* Those five reach thirteen call sites between them, and `-f` alone reaches
|
|
15
|
+
* eight. The text census sees only ONE of them (ui-player.c:1250, "You are not
|
|
16
|
+
* allowed to change your name!") because the rest are branches rather than
|
|
17
|
+
* strings, so "add the message" would have been the wrong-shaped fix: what is
|
|
18
|
+
* missing is the switch that makes any of it reachable.
|
|
19
|
+
*
|
|
20
|
+
* Parsing is pure. The three things upstream does at parse time that touch the
|
|
21
|
+
* world - printing usage, listing savefiles, creating a `-d` directory - are
|
|
22
|
+
* reported as OUTCOMES for the front end to carry out, because only the front
|
|
23
|
+
* end has a console and a filesystem. Nothing here quits or writes.
|
|
24
|
+
*/
|
|
25
|
+
|
|
26
|
+
import { ALL_HOST_DIRS } from "./raw.js";
|
|
27
|
+
import type { HostDir } from "./io.js";
|
|
28
|
+
|
|
29
|
+
/** option.h:23. Upstream truncates -u<who> into a buffer of this size. */
|
|
30
|
+
export const PLAYER_NAME_LEN = 32;
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* change_path_values (main.c:209-227), in upstream's order - which is the order
|
|
34
|
+
* the usage text lists them in.
|
|
35
|
+
*
|
|
36
|
+
* `setgidOk` is carried even though this port has no setgid build, because the
|
|
37
|
+
* flag is what decides whether a directory appears in the usage listing at all
|
|
38
|
+
* on such a build, and dropping it would quietly delete that behaviour. The
|
|
39
|
+
* three false entries are the ones a multi-user install must not let a player
|
|
40
|
+
* redirect: scores, save and panic.
|
|
41
|
+
*/
|
|
42
|
+
export const CHANGE_PATH_VALUES: readonly {
|
|
43
|
+
readonly name: string;
|
|
44
|
+
readonly setgidOk: boolean;
|
|
45
|
+
}[] = [
|
|
46
|
+
{ name: "scores", setgidOk: false },
|
|
47
|
+
{ name: "gamedata", setgidOk: true },
|
|
48
|
+
{ name: "screens", setgidOk: true },
|
|
49
|
+
{ name: "help", setgidOk: true },
|
|
50
|
+
{ name: "pref", setgidOk: true },
|
|
51
|
+
{ name: "fonts", setgidOk: true },
|
|
52
|
+
{ name: "tiles", setgidOk: true },
|
|
53
|
+
{ name: "sounds", setgidOk: true },
|
|
54
|
+
{ name: "icons", setgidOk: true },
|
|
55
|
+
{ name: "user", setgidOk: true },
|
|
56
|
+
{ name: "save", setgidOk: false },
|
|
57
|
+
{ name: "panic", setgidOk: false },
|
|
58
|
+
{ name: "archive", setgidOk: true },
|
|
59
|
+
];
|
|
60
|
+
|
|
61
|
+
/** A display module, as `modules[]` (main.c:63-95) describes one. */
|
|
62
|
+
export interface LaunchModule {
|
|
63
|
+
/** The name `-m` matches, and the value ANGBAND_SYS takes. */
|
|
64
|
+
readonly name: string;
|
|
65
|
+
/** The one-line help the usage text prints beside it. */
|
|
66
|
+
readonly help: string;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/** The `arg_*` globals, gathered. */
|
|
70
|
+
export interface LaunchArgs {
|
|
71
|
+
/** -c: play_game(GAME_SELECT). Overrides -n, per the usage text. */
|
|
72
|
+
readonly selectGame: boolean;
|
|
73
|
+
/** -n: play_game(GAME_NEW). */
|
|
74
|
+
readonly newGame: boolean;
|
|
75
|
+
/** -w: arg_wizard, passed to savefile_load (ui-game.c:733). */
|
|
76
|
+
readonly wizard: boolean;
|
|
77
|
+
/**
|
|
78
|
+
* -g: arg_graphics. 0 is "not requested"; upstream's default when the switch
|
|
79
|
+
* IS given is 2, which graphics.txt maps to Adam Bolt's tiles.
|
|
80
|
+
*/
|
|
81
|
+
readonly graphics: number;
|
|
82
|
+
/** -u<who>: arg_name, truncated to PLAYER_NAME_LEN. */
|
|
83
|
+
readonly name: string;
|
|
84
|
+
/** -f: arg_force_name. The eight-call-site one. */
|
|
85
|
+
readonly forceName: boolean;
|
|
86
|
+
/** -m<sys>: ANGBAND_SYS. Null leaves init.c's "xxx". */
|
|
87
|
+
readonly module: string | null;
|
|
88
|
+
/** -d<dir>=<path>, last one wins per directory. */
|
|
89
|
+
readonly dirs: Readonly<Partial<Record<string, string>>>;
|
|
90
|
+
/** Everything after `--`, which upstream hands to the module's init. */
|
|
91
|
+
readonly subopts: readonly string[];
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
export const DEFAULT_LAUNCH_ARGS: LaunchArgs = {
|
|
95
|
+
selectGame: false,
|
|
96
|
+
newGame: false,
|
|
97
|
+
wizard: false,
|
|
98
|
+
graphics: 0,
|
|
99
|
+
name: "",
|
|
100
|
+
forceName: false,
|
|
101
|
+
module: null,
|
|
102
|
+
dirs: {},
|
|
103
|
+
subopts: [],
|
|
104
|
+
};
|
|
105
|
+
|
|
106
|
+
/**
|
|
107
|
+
* What the front end must do next. Upstream's three non-returning paths become
|
|
108
|
+
* three outcomes rather than a `quit()` inside a parser.
|
|
109
|
+
*/
|
|
110
|
+
export type LaunchOutcome =
|
|
111
|
+
/** Ordinary start. */
|
|
112
|
+
| { readonly kind: "run"; readonly args: LaunchArgs }
|
|
113
|
+
/** -l: print the savefile list, then exit(0). Args parsed so far are kept. */
|
|
114
|
+
| { readonly kind: "list-saves"; readonly args: LaunchArgs }
|
|
115
|
+
/** `goto usage`: print these lines, then quit(NULL). */
|
|
116
|
+
| { readonly kind: "usage"; readonly lines: readonly string[] }
|
|
117
|
+
/** quit_fmt(): print this and stop. */
|
|
118
|
+
| { readonly kind: "quit"; readonly message: string };
|
|
119
|
+
|
|
120
|
+
export interface LaunchParseOptions {
|
|
121
|
+
/** modules[], in the order they are tried. */
|
|
122
|
+
readonly modules?: readonly LaunchModule[];
|
|
123
|
+
/** Current directory defaults, printed in the usage text's -d listing. */
|
|
124
|
+
readonly dirDefaults?: Readonly<Partial<Record<string, string>>>;
|
|
125
|
+
/**
|
|
126
|
+
* Is this a setgid build? Upstream's usage text hides the three non-setgid_ok
|
|
127
|
+
* directories on one, and change_path refuses them outright.
|
|
128
|
+
*/
|
|
129
|
+
readonly setgid?: boolean;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
/**
|
|
133
|
+
* atoi, for `-g`.
|
|
134
|
+
*
|
|
135
|
+
* DEAD BY CONSTRUCTION, and ported anyway. main.c:409-411 reads a numeric suffix
|
|
136
|
+
* into arg_graphics - but the loop's trailing `if (*arg) goto usage;`
|
|
137
|
+
* (main.c:491) then fires on that very suffix, so `-g2` prints the usage text
|
|
138
|
+
* and quits and the parsed number can never be observed. Only a bare `-g`
|
|
139
|
+
* survives, leaving the hard-coded 2. That is upstream's behaviour, warts
|
|
140
|
+
* included, so it is what this reproduces - and the tests assert the usage path
|
|
141
|
+
* rather than the number, which is the part a player can actually reach. It is
|
|
142
|
+
* kept visible instead of dropped so the wart is not mistaken for a port bug
|
|
143
|
+
* later.
|
|
144
|
+
*/
|
|
145
|
+
function atoi(s: string): number {
|
|
146
|
+
const m = /^[ \t\n\v\f\r]*([+-]?[0-9]+)/.exec(s);
|
|
147
|
+
if (!m) return 0;
|
|
148
|
+
const n = Number(m[1]);
|
|
149
|
+
return Number.isSafeInteger(n) ? n : 0;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
/** my_strcpy into a buffer of `len`: copy, truncating to len-1 characters. */
|
|
153
|
+
function strncpy(s: string, len: number): string {
|
|
154
|
+
return s.length < len ? s : s.slice(0, len - 1);
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
/** The usage text (main.c:461-489), verbatim, with the two runtime listings. */
|
|
158
|
+
export function launchUsage(opts: LaunchParseOptions = {}): readonly string[] {
|
|
159
|
+
const lines: string[] = [
|
|
160
|
+
"Usage: angband [options] [-- subopts]",
|
|
161
|
+
" -c Select savefile with a menu; overrides -n",
|
|
162
|
+
" -n Start a new character (WARNING: overwrites default savefile without -u)",
|
|
163
|
+
" -l Lists all savefiles you can play",
|
|
164
|
+
" -w Resurrect dead character (marks savefile)",
|
|
165
|
+
" -g Request graphics mode",
|
|
166
|
+
" -u<who> Use your <who> savefile",
|
|
167
|
+
" -d<dir>=<path> Override a specific directory with <path>. <path> can be:",
|
|
168
|
+
];
|
|
169
|
+
for (const v of CHANGE_PATH_VALUES) {
|
|
170
|
+
if (opts.setgid === true && !v.setgidOk) continue;
|
|
171
|
+
lines.push(` ${v.name} (default is ${opts.dirDefaults?.[v.name] ?? ""})`);
|
|
172
|
+
}
|
|
173
|
+
lines.push(" Multiple -d options are allowed.");
|
|
174
|
+
/* No `-s`: upstream's sound switch is inside #ifdef SOUND and this port has no
|
|
175
|
+
* sound module, so the switch is absent for the same reason it is absent from
|
|
176
|
+
* a --disable-sound build - not as an omission. */
|
|
177
|
+
lines.push(" -m<sys> Use module <sys>, where <sys> can be:");
|
|
178
|
+
for (const m of opts.modules ?? []) lines.push(` ${m.name} ${m.help}`);
|
|
179
|
+
return lines;
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
/**
|
|
183
|
+
* main.c's option loop (main.c:380-491).
|
|
184
|
+
*
|
|
185
|
+
* `argv` is upstream's argv MINUS the program name, which is what HostIo.argv()
|
|
186
|
+
* reports - so the loop starts at 0 here where upstream starts at 1.
|
|
187
|
+
*/
|
|
188
|
+
export function parseLaunchArgs(
|
|
189
|
+
argv: readonly string[],
|
|
190
|
+
opts: LaunchParseOptions = {},
|
|
191
|
+
): LaunchOutcome {
|
|
192
|
+
let selectGame = false;
|
|
193
|
+
let newGame = false;
|
|
194
|
+
let wizard = false;
|
|
195
|
+
let graphics = 0;
|
|
196
|
+
let name = "";
|
|
197
|
+
let forceName = false;
|
|
198
|
+
let module: string | null = null;
|
|
199
|
+
const dirs: Partial<Record<string, string>> = {};
|
|
200
|
+
let subopts: readonly string[] = [];
|
|
201
|
+
let args = true;
|
|
202
|
+
|
|
203
|
+
const usage = (): LaunchOutcome => ({ kind: "usage", lines: launchUsage(opts) });
|
|
204
|
+
const gathered = (): LaunchArgs => ({
|
|
205
|
+
selectGame,
|
|
206
|
+
newGame,
|
|
207
|
+
wizard,
|
|
208
|
+
graphics,
|
|
209
|
+
name,
|
|
210
|
+
forceName,
|
|
211
|
+
module,
|
|
212
|
+
dirs,
|
|
213
|
+
subopts,
|
|
214
|
+
});
|
|
215
|
+
|
|
216
|
+
for (let i = 0; args && i < argv.length; i++) {
|
|
217
|
+
const whole = argv[i] ?? "";
|
|
218
|
+
/* `if (*arg++ != '-') goto usage;` - an argument not starting with a dash,
|
|
219
|
+
* including an empty one, is a usage error rather than a positional. */
|
|
220
|
+
if (whole[0] !== "-") return usage();
|
|
221
|
+
/* `switch (*arg++)`: the switch letter, then whatever follows it. */
|
|
222
|
+
const letter = whole[1] ?? "";
|
|
223
|
+
const rest = whole.slice(2);
|
|
224
|
+
|
|
225
|
+
switch (letter) {
|
|
226
|
+
case "c":
|
|
227
|
+
selectGame = true;
|
|
228
|
+
break;
|
|
229
|
+
|
|
230
|
+
case "l":
|
|
231
|
+
/* list_saves(); exit(0) - immediately, so later switches are never
|
|
232
|
+
* examined, and an earlier -u has already been applied. */
|
|
233
|
+
return { kind: "list-saves", args: gathered() };
|
|
234
|
+
|
|
235
|
+
case "n":
|
|
236
|
+
newGame = true;
|
|
237
|
+
break;
|
|
238
|
+
|
|
239
|
+
case "w":
|
|
240
|
+
wizard = true;
|
|
241
|
+
break;
|
|
242
|
+
|
|
243
|
+
case "g":
|
|
244
|
+
graphics = 2;
|
|
245
|
+
if (rest !== "") graphics = atoi(rest);
|
|
246
|
+
break;
|
|
247
|
+
|
|
248
|
+
case "u": {
|
|
249
|
+
if (rest === "") return usage();
|
|
250
|
+
name = strncpy(rest, PLAYER_NAME_LEN);
|
|
251
|
+
/* `continue`: the trailing *arg check is skipped, which is how a suffix
|
|
252
|
+
* is allowed here and not on -w. The savefile itself is set by the
|
|
253
|
+
* caller, since that needs the save directory. */
|
|
254
|
+
continue;
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
case "f":
|
|
258
|
+
forceName = true;
|
|
259
|
+
break;
|
|
260
|
+
|
|
261
|
+
case "m":
|
|
262
|
+
if (rest === "") return usage();
|
|
263
|
+
module = rest;
|
|
264
|
+
continue;
|
|
265
|
+
|
|
266
|
+
case "d": {
|
|
267
|
+
/* change_path (main.c:236-271). */
|
|
268
|
+
if (rest === "") return { kind: "quit", message: "Try '-d<dir>=<path>'." };
|
|
269
|
+
/* strtok on "=": the name is up to the first '=', the path is the next
|
|
270
|
+
* token - so a second '=' and anything after it is dropped, and a
|
|
271
|
+
* missing '=' leaves the path undefined (strtok returns NULL, and
|
|
272
|
+
* string_make(NULL) yields an empty directory). */
|
|
273
|
+
const eq = rest.indexOf("=");
|
|
274
|
+
const dirName = eq < 0 ? rest : rest.slice(0, eq);
|
|
275
|
+
const dirPath = eq < 0 ? "" : rest.slice(eq + 1).split("=")[0] ?? "";
|
|
276
|
+
/* my_stricmp: the match is case-insensitive. */
|
|
277
|
+
const entry = CHANGE_PATH_VALUES.find(
|
|
278
|
+
(v) => v.name.toLowerCase() === dirName.toLowerCase(),
|
|
279
|
+
);
|
|
280
|
+
if (!entry) {
|
|
281
|
+
return { kind: "quit", message: `Unrecognised -d parameter ${dirName}` };
|
|
282
|
+
}
|
|
283
|
+
if (opts.setgid === true && !entry.setgidOk) {
|
|
284
|
+
return {
|
|
285
|
+
kind: "quit",
|
|
286
|
+
message: `Can't redefine path to ${dirName} dir on multiuser setup`,
|
|
287
|
+
};
|
|
288
|
+
}
|
|
289
|
+
dirs[entry.name] = dirPath;
|
|
290
|
+
continue;
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
case "-":
|
|
294
|
+
/* The `--` terminator: the rest of the command line belongs to the
|
|
295
|
+
* module's init, and the loop stops. */
|
|
296
|
+
subopts = argv.slice(i + 1);
|
|
297
|
+
args = false;
|
|
298
|
+
break;
|
|
299
|
+
|
|
300
|
+
default:
|
|
301
|
+
return usage();
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
/* `if (*arg) goto usage;` (main.c:491). This is what makes `-g2` a usage
|
|
305
|
+
* error, and `--x` too. */
|
|
306
|
+
if (rest !== "") return usage();
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
/* `if (args) { argc = 1; argv[1] = NULL; }`: without an explicit `--`, nothing
|
|
310
|
+
* is passed on to the module. */
|
|
311
|
+
if (args) subopts = [];
|
|
312
|
+
|
|
313
|
+
return { kind: "run", args: gathered() };
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
/**
|
|
317
|
+
* The `-d` names, as the five host directories this port actually has.
|
|
318
|
+
*
|
|
319
|
+
* Upstream has thirteen directories; five of them are writable and modelled by
|
|
320
|
+
* HostDir, and the other eight are read-only game data that this port compiles
|
|
321
|
+
* in rather than reading from disk. A `-d gamedata=...` is therefore accepted
|
|
322
|
+
* and parsed - the switch exists and reports honestly - but only these five can
|
|
323
|
+
* be acted on, and `hostDirOverrides` is what a front end applies.
|
|
324
|
+
*/
|
|
325
|
+
export function hostDirOverrides(
|
|
326
|
+
args: LaunchArgs,
|
|
327
|
+
): Readonly<Partial<Record<HostDir, string>>> {
|
|
328
|
+
const out: Partial<Record<HostDir, string>> = {};
|
|
329
|
+
for (const d of ALL_HOST_DIRS) {
|
|
330
|
+
const v = args.dirs[d];
|
|
331
|
+
if (typeof v === "string") out[d] = v;
|
|
332
|
+
}
|
|
333
|
+
return out;
|
|
334
|
+
}
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RawFs across a process boundary, with both ends defined in one file.
|
|
3
|
+
*
|
|
4
|
+
* WHY THIS EXISTS
|
|
5
|
+
*
|
|
6
|
+
* On the desktop build the filesystem and the game are in different processes:
|
|
7
|
+
* Electron's renderer is sandboxed (no node:fs), and the main process is where
|
|
8
|
+
* the real files are. So the game's host has to make a call across that gap.
|
|
9
|
+
*
|
|
10
|
+
* The client and the server are written here together, deliberately. A hand-
|
|
11
|
+
* written pair on either side of an IPC channel is two things that must agree
|
|
12
|
+
* about op names and argument order forever, and nothing checks that they do -
|
|
13
|
+
* exactly the drift the RawFs/RawFsHost split exists to prevent. Here, one file
|
|
14
|
+
* owns the wire format.
|
|
15
|
+
*
|
|
16
|
+
* WHY SYNCHRONOUS
|
|
17
|
+
*
|
|
18
|
+
* z-file.c is synchronous, and so is every caller of it. `prefs_save` writes
|
|
19
|
+
* inside a menu handler; the panic-save writes from a signal handler; the game
|
|
20
|
+
* loop reads a pref file inline. Making the host async would push `await` up
|
|
21
|
+
* through the whole command layer and change the game's control flow to suit the
|
|
22
|
+
* transport - the same mistake, in a new place, as letting the browser decide
|
|
23
|
+
* what a file is. The writes here are a few kilobytes to a local disk.
|
|
24
|
+
*
|
|
25
|
+
* WHY THE CLIENT COERCES EVERYTHING
|
|
26
|
+
*
|
|
27
|
+
* The transport can fail in ways a function call cannot: the channel may not be
|
|
28
|
+
* registered, the other end may be a different version, the reply may be
|
|
29
|
+
* undefined. Every result is therefore narrowed to the type RawFs promises, and
|
|
30
|
+
* anything unexpected becomes that operation's FAILURE value rather than an
|
|
31
|
+
* exception. That is z-file.c's discipline - file_open returns NULL, it does not
|
|
32
|
+
* die - and it is what keeps a broken bridge from throwing halfway through a save.
|
|
33
|
+
*/
|
|
34
|
+
|
|
35
|
+
import { FileType, HostDir } from "./io.js";
|
|
36
|
+
import type { WriteOutcome } from "./io.js";
|
|
37
|
+
import type { RawFs } from "./raw.js";
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* One synchronous round trip: an operation name and its arguments in, whatever
|
|
41
|
+
* the far end returned out. Deliberately untyped, because it is a wire.
|
|
42
|
+
*/
|
|
43
|
+
export type RawFsTransport = (op: string, args: readonly unknown[]) => unknown;
|
|
44
|
+
|
|
45
|
+
/** The operation names on the wire. Exported so a host can log or gate them. */
|
|
46
|
+
export const RAW_FS_OPS = [
|
|
47
|
+
"displayPath",
|
|
48
|
+
"isFile",
|
|
49
|
+
"readText",
|
|
50
|
+
"writeText",
|
|
51
|
+
"unlink",
|
|
52
|
+
"rename",
|
|
53
|
+
"mtime",
|
|
54
|
+
"listFiles",
|
|
55
|
+
] as const;
|
|
56
|
+
|
|
57
|
+
export type RawFsOp = (typeof RAW_FS_OPS)[number];
|
|
58
|
+
|
|
59
|
+
/** Whether a value is one of init.c's five writable directories. */
|
|
60
|
+
export function isHostDir(v: unknown): v is HostDir {
|
|
61
|
+
return (
|
|
62
|
+
v === HostDir.USER ||
|
|
63
|
+
v === HostDir.SAVE ||
|
|
64
|
+
v === HostDir.PANIC ||
|
|
65
|
+
v === HostDir.SCORES ||
|
|
66
|
+
v === HostDir.ARCHIVE
|
|
67
|
+
);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
/** Whether a value is a valid write outcome as it comes back off the wire. */
|
|
71
|
+
function toWriteOutcome(v: unknown): WriteOutcome {
|
|
72
|
+
/* Anything unrecognised is the open failure: reporting "could not create it"
|
|
73
|
+
* about a write that may not have happened is the safe direction. Claiming
|
|
74
|
+
* success is the failure mode already recorded against persistSave. */
|
|
75
|
+
return v === "ok" || v === "close-failed" ? v : "create-failed";
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* The CLIENT half: a RawFs that forwards every call over a transport. Used in
|
|
80
|
+
* the sandboxed renderer, where `send` is a synchronous IPC call.
|
|
81
|
+
*/
|
|
82
|
+
export function rawFsOverTransport(send: RawFsTransport): RawFs {
|
|
83
|
+
/** A transport hop that turns a thrown transport error into a null result. */
|
|
84
|
+
const call = (op: RawFsOp, args: readonly unknown[]): unknown => {
|
|
85
|
+
try {
|
|
86
|
+
return send(op, args);
|
|
87
|
+
} catch {
|
|
88
|
+
/* A dead channel must look like a failed syscall, not a crash. */
|
|
89
|
+
return undefined;
|
|
90
|
+
}
|
|
91
|
+
};
|
|
92
|
+
|
|
93
|
+
return {
|
|
94
|
+
displayPath(dir, name) {
|
|
95
|
+
const r = call("displayPath", [dir, name]);
|
|
96
|
+
/* Display text only, so a broken bridge still produces something
|
|
97
|
+
* printable rather than "undefined" inside a message. */
|
|
98
|
+
return typeof r === "string" ? r : `${dir}/${name}`;
|
|
99
|
+
},
|
|
100
|
+
isFile(dir, name) {
|
|
101
|
+
return call("isFile", [dir, name]) === true;
|
|
102
|
+
},
|
|
103
|
+
readText(dir, name) {
|
|
104
|
+
const r = call("readText", [dir, name]);
|
|
105
|
+
return typeof r === "string" ? r : null;
|
|
106
|
+
},
|
|
107
|
+
writeText(dir, name, text, append, ftype) {
|
|
108
|
+
return toWriteOutcome(call("writeText", [dir, name, text, append, ftype]));
|
|
109
|
+
},
|
|
110
|
+
unlink(dir, name) {
|
|
111
|
+
return call("unlink", [dir, name]) === true;
|
|
112
|
+
},
|
|
113
|
+
rename(dir, from, to) {
|
|
114
|
+
return call("rename", [dir, from, to]) === true;
|
|
115
|
+
},
|
|
116
|
+
mtime(dir, name) {
|
|
117
|
+
const r = call("mtime", [dir, name]);
|
|
118
|
+
/* Not Number.isFinite on a non-number: NaN or Infinity would make
|
|
119
|
+
* file_newer's comparison meaningless, so both are "cannot tell". */
|
|
120
|
+
return typeof r === "number" && Number.isFinite(r) ? r : null;
|
|
121
|
+
},
|
|
122
|
+
listFiles(dir) {
|
|
123
|
+
const r = call("listFiles", [dir]);
|
|
124
|
+
if (!Array.isArray(r)) return [];
|
|
125
|
+
return r.filter((e): e is string => typeof e === "string");
|
|
126
|
+
},
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
/**
|
|
131
|
+
* The SERVER half: turns a real RawFs into a transport handler. Used in the
|
|
132
|
+
* trusted process.
|
|
133
|
+
*
|
|
134
|
+
* Every argument is validated here, because they arrive from the renderer and
|
|
135
|
+
* the renderer is the untrusted side. An unknown op or a malformed argument list
|
|
136
|
+
* returns that operation's failure value rather than throwing, so a hostile or
|
|
137
|
+
* buggy caller cannot take down the main process.
|
|
138
|
+
*/
|
|
139
|
+
export function serveRawFs(raw: RawFs): RawFsTransport {
|
|
140
|
+
const str = (v: unknown): string | null => (typeof v === "string" ? v : null);
|
|
141
|
+
|
|
142
|
+
return (op: string, args: readonly unknown[]): unknown => {
|
|
143
|
+
const dir = args[0];
|
|
144
|
+
if (!isHostDir(dir)) {
|
|
145
|
+
/* Not a directory we own. Report each op's failure value. */
|
|
146
|
+
return op === "listFiles" ? [] : op === "readText" || op === "mtime" ? null
|
|
147
|
+
: op === "writeText" ? "create-failed"
|
|
148
|
+
: op === "displayPath" ? "" : false;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
switch (op) {
|
|
152
|
+
case "listFiles":
|
|
153
|
+
return raw.listFiles(dir);
|
|
154
|
+
case "displayPath": {
|
|
155
|
+
const name = str(args[1]);
|
|
156
|
+
return name === null ? "" : raw.displayPath(dir, name);
|
|
157
|
+
}
|
|
158
|
+
case "isFile": {
|
|
159
|
+
const name = str(args[1]);
|
|
160
|
+
return name === null ? false : raw.isFile(dir, name);
|
|
161
|
+
}
|
|
162
|
+
case "readText": {
|
|
163
|
+
const name = str(args[1]);
|
|
164
|
+
return name === null ? null : raw.readText(dir, name);
|
|
165
|
+
}
|
|
166
|
+
case "mtime": {
|
|
167
|
+
const name = str(args[1]);
|
|
168
|
+
return name === null ? null : raw.mtime(dir, name);
|
|
169
|
+
}
|
|
170
|
+
case "unlink": {
|
|
171
|
+
const name = str(args[1]);
|
|
172
|
+
return name === null ? false : raw.unlink(dir, name);
|
|
173
|
+
}
|
|
174
|
+
case "rename": {
|
|
175
|
+
const from = str(args[1]);
|
|
176
|
+
const to = str(args[2]);
|
|
177
|
+
return from === null || to === null ? false : raw.rename(dir, from, to);
|
|
178
|
+
}
|
|
179
|
+
case "writeText": {
|
|
180
|
+
const name = str(args[1]);
|
|
181
|
+
const text = str(args[2]);
|
|
182
|
+
if (name === null || text === null) return "create-failed";
|
|
183
|
+
const append = args[3] === true;
|
|
184
|
+
const ftype = typeof args[4] === "number" ? (args[4] as FileType) : FileType.TEXT;
|
|
185
|
+
return raw.writeText(dir, name, text, append, ftype);
|
|
186
|
+
}
|
|
187
|
+
default:
|
|
188
|
+
/* An op this server does not know. False is the least destructive
|
|
189
|
+
* answer: it reads as "that did not work" to every boolean caller. */
|
|
190
|
+
return false;
|
|
191
|
+
}
|
|
192
|
+
};
|
|
193
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The host layer on its own, importable without the game engine.
|
|
3
|
+
*
|
|
4
|
+
* core's main barrel re-exports everything, which is right for a front end that
|
|
5
|
+
* runs the game. The Electron MAIN process does not run the game: it only serves
|
|
6
|
+
* z-file.c to the renderer. Importing the barrel there pulled the entire engine -
|
|
7
|
+
* rules, generation, monsters - into the main-process bundle, 479 kB of code a
|
|
8
|
+
* file write has no use for.
|
|
9
|
+
*
|
|
10
|
+
* So the host is reachable as `@rpgm-tools/neo-angband-core/host`. Same modules, same
|
|
11
|
+
* single copy of the semantics; just a door that does not open onto the rest.
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
export * from "./io.js";
|
|
15
|
+
export * from "./raw.js";
|
|
16
|
+
export * from "./bridge.js";
|
|
17
|
+
export * from "./memory.js";
|
|
18
|
+
export * from "./args.js";
|