@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,270 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared test fixtures for the game turn-loop suites. Not part of the public
|
|
3
|
+
* API; it binds the content pack once and builds GameState instances so the
|
|
4
|
+
* colocated *.test.ts files stay focused on behaviour rather than setup.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import { readFileSync } from "node:fs";
|
|
8
|
+
import { FlagSet } from "../bitflag.js";
|
|
9
|
+
import { Dice } from "../dice.js";
|
|
10
|
+
import { Rng } from "../rng.js";
|
|
11
|
+
import { loc } from "../loc.js";
|
|
12
|
+
import type { Loc } from "../loc.js";
|
|
13
|
+
import { SKILL } from "../player/types.js";
|
|
14
|
+
import { RF_SIZE } from "../mon/types.js";
|
|
15
|
+
import type { MonsterBlow, MonsterDrop, MonsterRace } from "../mon/types.js";
|
|
16
|
+
import { blankMonster } from "../mon/monster.js";
|
|
17
|
+
import type { Monster } from "../mon/monster.js";
|
|
18
|
+
import { bindMonsters } from "../mon/bind.js";
|
|
19
|
+
import type { MonsterPackRecords } from "../mon/bind.js";
|
|
20
|
+
import { bindPlayer } from "../player/bind.js";
|
|
21
|
+
import type { PlayerPackRecords } from "../player/bind.js";
|
|
22
|
+
import { blankPlayer } from "../player/player.js";
|
|
23
|
+
import type { Player } from "../player/player.js";
|
|
24
|
+
import { Chunk } from "../world/chunk.js";
|
|
25
|
+
import { FeatureRegistry } from "../world/feature.js";
|
|
26
|
+
import type { TerrainRecordJson } from "../world/feature.js";
|
|
27
|
+
import type { PlayerCombatState } from "../combat/melee.js";
|
|
28
|
+
import type { DefenderState } from "../combat/mon-melee.js";
|
|
29
|
+
import { DEFAULT_GAME_CONSTANTS, addMonster, placePlayer } from "./context.js";
|
|
30
|
+
import type { GameState, PlayerActor, PlayerCommand } from "./context.js";
|
|
31
|
+
import { newGear } from "./gear.js";
|
|
32
|
+
import { newKnownMap } from "./known.js";
|
|
33
|
+
import { newTargetState } from "./target.js";
|
|
34
|
+
import { IgnoreSettings } from "../obj/ignore.js";
|
|
35
|
+
import { makeRuneEnv } from "../obj/knowledge.js";
|
|
36
|
+
|
|
37
|
+
function load(name: string): unknown {
|
|
38
|
+
return JSON.parse(
|
|
39
|
+
readFileSync(
|
|
40
|
+
new URL(`../../../content/pack/${name}.json`, import.meta.url),
|
|
41
|
+
"utf8",
|
|
42
|
+
),
|
|
43
|
+
);
|
|
44
|
+
}
|
|
45
|
+
function packJson<T>(name: string): T[] {
|
|
46
|
+
return (load(name) as { records: T[] }).records;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
const terrain = load("terrain") as { records: TerrainRecordJson[] };
|
|
50
|
+
export const featureReg = new FeatureRegistry(terrain.records);
|
|
51
|
+
export const FLOOR = featureReg.byCodeName("FLOOR").fidx;
|
|
52
|
+
export const GRANITE = featureReg.byCodeName("GRANITE").fidx;
|
|
53
|
+
|
|
54
|
+
export const monReg = bindMonsters({
|
|
55
|
+
pain: packJson("pain"),
|
|
56
|
+
blowMethods: packJson("blow_methods"),
|
|
57
|
+
blowEffects: packJson("blow_effects"),
|
|
58
|
+
monsterSpells: packJson("monster_spell"),
|
|
59
|
+
monsterBases: packJson("monster_base"),
|
|
60
|
+
monsters: packJson("monster"),
|
|
61
|
+
summons: packJson("summon"),
|
|
62
|
+
pits: packJson("pit"),
|
|
63
|
+
} as MonsterPackRecords);
|
|
64
|
+
|
|
65
|
+
export const plReg = bindPlayer({
|
|
66
|
+
races: packJson("p_race"),
|
|
67
|
+
classes: packJson("class"),
|
|
68
|
+
properties: packJson("player_property"),
|
|
69
|
+
timed: packJson("player_timed"),
|
|
70
|
+
shapes: packJson("shape"),
|
|
71
|
+
bodies: packJson("body"),
|
|
72
|
+
history: packJson("history"),
|
|
73
|
+
realms: packJson("realm"),
|
|
74
|
+
} as PlayerPackRecords);
|
|
75
|
+
|
|
76
|
+
/** A real race carrying a base and at least one blow, used as a template. */
|
|
77
|
+
const baseRace = monReg.races.find(
|
|
78
|
+
(r) => r.base && r.blows.length > 0,
|
|
79
|
+
) as MonsterRace;
|
|
80
|
+
|
|
81
|
+
/** Build a monster blow from named pack method/effect and a dice string. */
|
|
82
|
+
export function makeBlow(
|
|
83
|
+
methodName: string,
|
|
84
|
+
effectName: string,
|
|
85
|
+
diceStr: string,
|
|
86
|
+
): MonsterBlow {
|
|
87
|
+
const method = monReg.blowMethods.get(methodName);
|
|
88
|
+
const effect = monReg.blowEffects.get(effectName);
|
|
89
|
+
if (!method || !effect) throw new Error(`missing blow ${methodName}/${effectName}`);
|
|
90
|
+
const d = new Dice();
|
|
91
|
+
d.parseString(diceStr);
|
|
92
|
+
return { method, effect, dice: d, diceRaw: diceStr };
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
export interface RaceOverrides {
|
|
96
|
+
level?: number;
|
|
97
|
+
speed?: number;
|
|
98
|
+
hearing?: number;
|
|
99
|
+
smell?: number;
|
|
100
|
+
mexp?: number;
|
|
101
|
+
ac?: number;
|
|
102
|
+
flags?: number[];
|
|
103
|
+
blows?: MonsterBlow[];
|
|
104
|
+
drops?: MonsterDrop[];
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
/** A MonsterRace derived from the template, with a fresh flag set. */
|
|
108
|
+
export function makeRace(overrides: RaceOverrides = {}): MonsterRace {
|
|
109
|
+
const flags = new FlagSet(RF_SIZE);
|
|
110
|
+
for (const f of overrides.flags ?? []) flags.on(f);
|
|
111
|
+
return {
|
|
112
|
+
...baseRace,
|
|
113
|
+
level: overrides.level ?? 5,
|
|
114
|
+
speed: overrides.speed ?? 110,
|
|
115
|
+
hearing: overrides.hearing ?? 20,
|
|
116
|
+
smell: overrides.smell ?? 0,
|
|
117
|
+
mexp: overrides.mexp ?? 100,
|
|
118
|
+
ac: overrides.ac ?? 10,
|
|
119
|
+
flags,
|
|
120
|
+
blows: overrides.blows ?? baseRace.blows,
|
|
121
|
+
drops: overrides.drops ?? [],
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
/** A level-1 player with full HP. */
|
|
126
|
+
export function makePlayer(): Player {
|
|
127
|
+
const p = blankPlayer(
|
|
128
|
+
plReg.races[0] as (typeof plReg.races)[number],
|
|
129
|
+
plReg.classes[0] as (typeof plReg.classes)[number],
|
|
130
|
+
plReg.bodies[0] as (typeof plReg.bodies)[number],
|
|
131
|
+
);
|
|
132
|
+
p.lev = 1;
|
|
133
|
+
p.mhp = 1000;
|
|
134
|
+
p.chp = 1000;
|
|
135
|
+
return p;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
/** A player combat state that hits reliably (calc_bonuses is deferred). */
|
|
139
|
+
export function defaultCombat(): PlayerCombatState {
|
|
140
|
+
const skills = new Array<number>(SKILL.DIGGING + 1).fill(20);
|
|
141
|
+
return {
|
|
142
|
+
toH: 20,
|
|
143
|
+
toD: 10,
|
|
144
|
+
ac: 0,
|
|
145
|
+
toA: 0,
|
|
146
|
+
skills,
|
|
147
|
+
numBlows: 100,
|
|
148
|
+
ammoMult: 1,
|
|
149
|
+
numShots: 0,
|
|
150
|
+
ammoTval: 0,
|
|
151
|
+
blessWield: false,
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
export function defaultDefense(): DefenderState {
|
|
156
|
+
return { ac: 0, toA: 0 };
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
/** An open floor field enclosed by granite, like the flow test's fixture. */
|
|
160
|
+
export function openField(w: number, h: number): Chunk {
|
|
161
|
+
const c = new Chunk(featureReg, h, w);
|
|
162
|
+
c.fill(GRANITE);
|
|
163
|
+
for (let y = 1; y < h - 1; y++) {
|
|
164
|
+
for (let x = 1; x < w - 1; x++) {
|
|
165
|
+
c.setFeat(loc(x, y), FLOOR);
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
return c;
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
export interface StateOptions {
|
|
172
|
+
seed?: number;
|
|
173
|
+
w?: number;
|
|
174
|
+
h?: number;
|
|
175
|
+
playerGrid?: Loc;
|
|
176
|
+
speed?: number;
|
|
177
|
+
stealth?: number;
|
|
178
|
+
commands?: PlayerCommand[];
|
|
179
|
+
updateFov?: (state: GameState) => void;
|
|
180
|
+
/** Collector for the world-clock messages (grade, wear-off, take_hit, etc.). */
|
|
181
|
+
worldMsgs?: string[];
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
/** Build a GameState on an open field with the player placed and marked. */
|
|
185
|
+
export function makeState(opts: StateOptions = {}): GameState {
|
|
186
|
+
const w = opts.w ?? 40;
|
|
187
|
+
const h = opts.h ?? 25;
|
|
188
|
+
const chunk = openField(w, h);
|
|
189
|
+
const playerGrid = opts.playerGrid ?? loc(Math.floor(w / 2), Math.floor(h / 2));
|
|
190
|
+
const commands = opts.commands ?? [];
|
|
191
|
+
|
|
192
|
+
const actor: PlayerActor = {
|
|
193
|
+
player: makePlayer(),
|
|
194
|
+
grid: playerGrid,
|
|
195
|
+
energy: 0,
|
|
196
|
+
speed: opts.speed ?? 110,
|
|
197
|
+
totalEnergy: 0,
|
|
198
|
+
combat: defaultCombat(),
|
|
199
|
+
defense: defaultDefense(),
|
|
200
|
+
weapon: null,
|
|
201
|
+
stealth: opts.stealth ?? 0,
|
|
202
|
+
light: 0,
|
|
203
|
+
unlight: false,
|
|
204
|
+
};
|
|
205
|
+
|
|
206
|
+
const rng = new Rng(opts.seed ?? 1);
|
|
207
|
+
const gear = newGear();
|
|
208
|
+
const state: GameState = {
|
|
209
|
+
rng,
|
|
210
|
+
chunk,
|
|
211
|
+
actor,
|
|
212
|
+
gear,
|
|
213
|
+
monsters: [null],
|
|
214
|
+
groups: [null],
|
|
215
|
+
floor: new Map(),
|
|
216
|
+
traps: new Map(),
|
|
217
|
+
known: newKnownMap(w, h),
|
|
218
|
+
target: newTargetState(),
|
|
219
|
+
ignore: new IgnoreSettings(),
|
|
220
|
+
lore: new Map(),
|
|
221
|
+
turn: 0,
|
|
222
|
+
z: { ...DEFAULT_GAME_CONSTANTS },
|
|
223
|
+
brands: [null],
|
|
224
|
+
slays: [null],
|
|
225
|
+
runeEnv: makeRuneEnv(
|
|
226
|
+
(slot) => gear.store.get(actor.player.equipment[slot] ?? 0) ?? null,
|
|
227
|
+
(v) => rng.randcalcVaries(v),
|
|
228
|
+
),
|
|
229
|
+
playing: true,
|
|
230
|
+
isDead: false,
|
|
231
|
+
generateLevel: false,
|
|
232
|
+
nextCommand: () => commands.shift() ?? null,
|
|
233
|
+
...(opts.updateFov ? { updateFov: opts.updateFov } : {}),
|
|
234
|
+
};
|
|
235
|
+
|
|
236
|
+
/* A default process_world upkeep env: the bound timed table so decrements
|
|
237
|
+
* route through the grade / message machinery, and message sinks (grade,
|
|
238
|
+
* wear-off, take_hit) collected into opts.worldMsgs when supplied. */
|
|
239
|
+
const worldMsgs = opts.worldMsgs;
|
|
240
|
+
const push = (t: string): void => {
|
|
241
|
+
if (worldMsgs) worldMsgs.push(t);
|
|
242
|
+
};
|
|
243
|
+
state.world = {
|
|
244
|
+
timedTable: plReg.timed,
|
|
245
|
+
timedHooks: { onMessage: (t) => push(t) },
|
|
246
|
+
takeHitHooks: { rng, onMessage: (t) => push(t) },
|
|
247
|
+
expDeps: { rng },
|
|
248
|
+
};
|
|
249
|
+
|
|
250
|
+
placePlayer(state, playerGrid);
|
|
251
|
+
return state;
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
/** Create a monster of `race` at `grid`, awake, and register it in the state. */
|
|
255
|
+
export function addMon(
|
|
256
|
+
state: GameState,
|
|
257
|
+
race: MonsterRace,
|
|
258
|
+
grid: Loc,
|
|
259
|
+
opts: { energy?: number; hp?: number } = {},
|
|
260
|
+
): Monster {
|
|
261
|
+
const mon = blankMonster(race);
|
|
262
|
+
mon.grid = grid;
|
|
263
|
+
mon.maxhp = opts.hp ?? race.avgHp ?? 30;
|
|
264
|
+
mon.hp = mon.maxhp;
|
|
265
|
+
mon.mspeed = race.speed;
|
|
266
|
+
mon.energy = opts.energy ?? 0;
|
|
267
|
+
mon.mTimed[0] = 0; /* MON_TMD.SLEEP: awake. */
|
|
268
|
+
addMonster(state, mon);
|
|
269
|
+
return mon;
|
|
270
|
+
}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Game-layer glue for the character history log (player/history.ts is the
|
|
3
|
+
* pure module; this supplies the two things only live GameState can give it:
|
|
4
|
+
* the dlev/clev/turn stamp and the artifact fake-name builder).
|
|
5
|
+
*
|
|
6
|
+
* Ported from player-history.c:
|
|
7
|
+
* - history_add_with_flags (L115-121): stamps every entry with p->depth,
|
|
8
|
+
* p->lev and p->total_energy/100 - matched here by state.chunk.depth,
|
|
9
|
+
* state.actor.player.lev and trunc(state.actor.totalEnergy/100). The
|
|
10
|
+
* turn stamp is deliberately total_energy/100 (what ui-history.c
|
|
11
|
+
* displays), not state.turn.
|
|
12
|
+
* - get_artifact_name (L197-215), which is obj-make.c's make_fake_artifact
|
|
13
|
+
* (object_prep(kind, 0, MAXIMISE) then copy_artifact_data) followed by
|
|
14
|
+
* object_desc(ODESC_PREFIX|ODESC_BASE|ODESC_SPOIL).
|
|
15
|
+
*
|
|
16
|
+
* RNG SAFETY: objectPrep's "maximise" aspect draws nothing (damcalc/
|
|
17
|
+
* mBonusCalc's maximise branches are pure arithmetic - see rng.ts). Unlike
|
|
18
|
+
* make_fake_artifact, this builder deliberately does NOT call
|
|
19
|
+
* copyArtifactData: that helper's copy_curses step always rolls the curse
|
|
20
|
+
* timeout with the "randomise" aspect regardless of the caller's aspect
|
|
21
|
+
* (obj-curse.c:67, ported faithfully in obj/object.ts copyCurses) - a
|
|
22
|
+
* property upstream itself has. Since object_desc's PREFIX|BASE|SPOIL mode
|
|
23
|
+
* never reads modifiers/combat bonuses/curses (only ODESC_COMBAT's
|
|
24
|
+
* objDescCombat does, via env), only obj.kind and obj.artifact feed the
|
|
25
|
+
* name text, so copying the rest is both unnecessary and would risk an RNG
|
|
26
|
+
* draw for the one artifact in the game data that carries a curse
|
|
27
|
+
* (artifact.txt's "curse:air swing:30"). A golden test in
|
|
28
|
+
* game/history.test.ts pins the exact string this produces so any future
|
|
29
|
+
* drift from make_fake_artifact's real behaviour is caught.
|
|
30
|
+
*/
|
|
31
|
+
|
|
32
|
+
import type { Artifact } from "../obj/types.js";
|
|
33
|
+
import type { Constants } from "../constants.js";
|
|
34
|
+
import type { ObjRegistry } from "../obj/bind.js";
|
|
35
|
+
import { ODESC, objectDesc } from "../obj/desc.js";
|
|
36
|
+
import { objectPrep } from "../obj/make.js";
|
|
37
|
+
import { knownDescOf } from "./describe.js";
|
|
38
|
+
import type { GameState } from "./context.js";
|
|
39
|
+
|
|
40
|
+
/** The dlev/clev/turn stamp history_add_with_flags reads off live state. */
|
|
41
|
+
export interface HistoryStamp {
|
|
42
|
+
dlev: number;
|
|
43
|
+
clev: number;
|
|
44
|
+
turn: number;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/** history_add_with_flags's stamp (player-history.c L115-121). */
|
|
48
|
+
export function historyStamp(state: GameState): HistoryStamp {
|
|
49
|
+
return {
|
|
50
|
+
dlev: state.chunk.depth,
|
|
51
|
+
clev: state.actor.player.lev,
|
|
52
|
+
turn: Math.trunc(state.actor.totalEnergy / 100),
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* get_artifact_name (player-history.c L197-215): the spoiled description
|
|
58
|
+
* ("the Phial of Galadriel") history_find_artifact / history_lose_artifact
|
|
59
|
+
* use for their "Found "/"Missed " text. RNG-free (see module doc).
|
|
60
|
+
*/
|
|
61
|
+
export function artifactHistoryName(
|
|
62
|
+
state: GameState,
|
|
63
|
+
reg: ObjRegistry,
|
|
64
|
+
constants: Constants,
|
|
65
|
+
art: Artifact,
|
|
66
|
+
): string {
|
|
67
|
+
const kind = reg.lookupKind(art.tval, art.sval);
|
|
68
|
+
if (!kind) return art.name;
|
|
69
|
+
const obj = objectPrep(state.rng, reg, constants, kind, 0, "maximise");
|
|
70
|
+
obj.artifact = art;
|
|
71
|
+
return objectDesc(
|
|
72
|
+
obj,
|
|
73
|
+
ODESC.PREFIX | ODESC.BASE | ODESC.SPOIL,
|
|
74
|
+
null,
|
|
75
|
+
state.runeEnv,
|
|
76
|
+
knownDescOf(state),
|
|
77
|
+
);
|
|
78
|
+
}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ignore_drop (obj-ignore.c L651): "drop all {ignore}able gear" - fired by
|
|
3
|
+
* notice_stuff's PN_IGNORE handling whenever a menu edit or the 'K'
|
|
4
|
+
* unignoring toggle flags the notice (player-calcs.c L2542).
|
|
5
|
+
*
|
|
6
|
+
* This module holds only the SCAN half (which gear objects are eligible and
|
|
7
|
+
* whether each is currently worn): a pure read with no game mutation, so it
|
|
8
|
+
* belongs beside the other game/ state readers rather than in obj/ignore.ts
|
|
9
|
+
* (which stays free of GameState/Gear so it has no upward dependency on the
|
|
10
|
+
* game layer). The shell (web/main.ts's applyIgnoreDrop) does the actual
|
|
11
|
+
* work upstream interleaves here: confirming + inscribing "!d" on a declined
|
|
12
|
+
* equipped item, and queuing the real CMD_DROP-equivalent "drop" command for
|
|
13
|
+
* the rest.
|
|
14
|
+
*
|
|
15
|
+
* GEAR ORDER: upstream walks p->gear (one combined linked list of pack AND
|
|
16
|
+
* equipped objects in insertion order) backwards via gear_last_item/obj->prev.
|
|
17
|
+
* This port's Gear (game/gear.ts) deliberately has no such combined
|
|
18
|
+
* insertion-order list - equipment lives in fixed player.equipment[] slots
|
|
19
|
+
* and the pack is its own ordered array (see game/gear.ts's module doc). The
|
|
20
|
+
* faithful-enough substitute here is: equipment slots in slot order, then the
|
|
21
|
+
* pack in its own order, the whole thing reversed - so every ignorable item
|
|
22
|
+
* is still visited exactly once and pack items (usually the freshest
|
|
23
|
+
* ignores) are offered first, without claiming to reproduce upstream's exact
|
|
24
|
+
* add-order sequence.
|
|
25
|
+
*/
|
|
26
|
+
|
|
27
|
+
import type { GameState } from "./context.js";
|
|
28
|
+
import { checkForInscrip } from "./pickup.js";
|
|
29
|
+
|
|
30
|
+
/** One gear object ignore_drop is willing to drop. */
|
|
31
|
+
export interface IgnoreDropTarget {
|
|
32
|
+
/** The gear handle (state.gear.store key). */
|
|
33
|
+
handle: number;
|
|
34
|
+
/** Whether the object is currently worn (object_is_equipped). */
|
|
35
|
+
equipped: boolean;
|
|
36
|
+
/** The full stack count to drop (obj->number). */
|
|
37
|
+
number: number;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* The scan half of ignore_drop: every gear object that is currently eligible
|
|
42
|
+
* for ignoring (state.isIgnored, i.e. ignore_item_ok) and not inscribed
|
|
43
|
+
* "!d"/"!*", in the backwards gear order described above.
|
|
44
|
+
*/
|
|
45
|
+
export function ignoreDropTargets(state: GameState): IgnoreDropTarget[] {
|
|
46
|
+
const player = state.actor.player;
|
|
47
|
+
const equipped = new Set<number>();
|
|
48
|
+
const handles: number[] = [];
|
|
49
|
+
for (let i = 0; i < player.body.count; i++) {
|
|
50
|
+
const handle = player.equipment[i] ?? 0;
|
|
51
|
+
if (handle !== 0) {
|
|
52
|
+
handles.push(handle);
|
|
53
|
+
equipped.add(handle);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
for (const handle of state.gear.pack) handles.push(handle);
|
|
57
|
+
handles.reverse();
|
|
58
|
+
|
|
59
|
+
const out: IgnoreDropTarget[] = [];
|
|
60
|
+
for (const handle of handles) {
|
|
61
|
+
const obj = state.gear.store.get(handle);
|
|
62
|
+
if (!obj) continue;
|
|
63
|
+
if (!(state.isIgnored?.(obj) ?? false)) continue;
|
|
64
|
+
if (checkForInscrip(obj, "!d") || checkForInscrip(obj, "!*")) continue;
|
|
65
|
+
out.push({ handle, equipped: equipped.has(handle), number: obj.number });
|
|
66
|
+
}
|
|
67
|
+
return out;
|
|
68
|
+
}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The `!` / `^` inscription safety net - Angband's oldest and most-used way of
|
|
3
|
+
* protecting yourself from your own fingers. Inscribe `!q` on a Potion of Death
|
|
4
|
+
* and quaffing it asks first; `^t` on your body armour and every Take off asks;
|
|
5
|
+
* `!*` or `^*` covers every command at once.
|
|
6
|
+
*
|
|
7
|
+
* Two upstream functions, both of which the port was missing entirely:
|
|
8
|
+
*
|
|
9
|
+
* - `key_confirm_command` (ui-input.c:1995-2020) scans the WORN EQUIPMENT for
|
|
10
|
+
* `^*` and `^<key>` and asks "Are you sure? " once per occurrence found, before
|
|
11
|
+
* the command key is turned into a command at all (ui-game.c:565; also
|
|
12
|
+
* ui-context.c:155, :349, :353, :585 for the context menus).
|
|
13
|
+
* - `get_item_allow` (ui-object.c:634-679) scans the SELECTED OBJECT for
|
|
14
|
+
* `!<key>` - plus `!*` unless the command is harmless - and asks
|
|
15
|
+
* verify_object's "Really <verb> <the object>? " once per occurrence, from the
|
|
16
|
+
* item menu as a row is chosen (ui-object.c:958) and from the context menu's
|
|
17
|
+
* object actions (ui-context.c:855).
|
|
18
|
+
*
|
|
19
|
+
* The census found only "Are you sure? " here, because get_item_allow's prompt
|
|
20
|
+
* is assembled by strnfmt and its literal fragments ("Really ", " %s? ") are
|
|
21
|
+
* shorter than the anchor floor. The behaviour behind the one string it did find
|
|
22
|
+
* is the whole feature.
|
|
23
|
+
*
|
|
24
|
+
* Both are pure counts and strings: core decides how many confirmations are owed
|
|
25
|
+
* and what to say, and the shell awaits them, the same division walkTerrainPrompt
|
|
26
|
+
* uses (game/player-turn.ts) because the core command path cannot block on UI.
|
|
27
|
+
*/
|
|
28
|
+
|
|
29
|
+
import type { Player } from "../player/player.js";
|
|
30
|
+
import type { GameObject } from "../obj/object.js";
|
|
31
|
+
import type { Gear } from "./gear.js";
|
|
32
|
+
import type { CommandCode } from "../cmd.js";
|
|
33
|
+
import { cmdVerb } from "../cmd.js";
|
|
34
|
+
import { checkForInscrip } from "./pickup.js";
|
|
35
|
+
|
|
36
|
+
/** get_check's prompt in key_confirm_command (ui-input.c:2014), verbatim. */
|
|
37
|
+
export const KEY_CONFIRM_PROMPT = "Are you sure? ";
|
|
38
|
+
|
|
39
|
+
/** cmd_verb's fallback when a command has no verb (ui-object.c:664-665). */
|
|
40
|
+
export const ITEM_ALLOW_FALLBACK_VERB = "do that with";
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* UN_KTRL_CAP (ui-event.h:135): a control code becomes its CAPITAL letter, not
|
|
44
|
+
* the lower-case one UN_KTRL would give. The comment there explains why - the
|
|
45
|
+
* roguelike ignore command is Ctrl-D, and UN_KTRL would turn that into 'd', the
|
|
46
|
+
* drop command in both keysets, so `!d` would fire on an ignore.
|
|
47
|
+
*/
|
|
48
|
+
export function unKtrlCap(key: string): string {
|
|
49
|
+
const code = key.charCodeAt(0);
|
|
50
|
+
return code < 0x20 ? String.fromCharCode(code + 64) : key;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* key_confirm_command (ui-input.c:1995-2020): how many times "Are you sure? "
|
|
55
|
+
* must be answered before command key `key` may run. Zero almost always.
|
|
56
|
+
*
|
|
57
|
+
* Upstream asks per equipment slot and aborts on the first refusal, so a total
|
|
58
|
+
* is equivalent - every prompt must be accepted for the command to proceed.
|
|
59
|
+
*
|
|
60
|
+
* The `key === "*"` case counts DOUBLE, and that is upstream's arithmetic, not a
|
|
61
|
+
* slip here: verify_inscrip starts life as the string "^*" and only its second
|
|
62
|
+
* byte is overwritten, so for '*' both terms of the sum count the same
|
|
63
|
+
* inscription. Kept because core keeps upstream's warts.
|
|
64
|
+
*
|
|
65
|
+
* `key` is used RAW - no unKtrlCap. get_item_allow shifts a control code to its
|
|
66
|
+
* capital and this function pointedly does not, so a roguelike Ctrl-chord looks
|
|
67
|
+
* for a `^` plus a control byte, which no inscription can hold, and asks nothing.
|
|
68
|
+
* That asymmetry is upstream's; do not tidy it.
|
|
69
|
+
*/
|
|
70
|
+
export function keyConfirmCount(player: Player, gear: Gear, key: string): number {
|
|
71
|
+
let n = 0;
|
|
72
|
+
for (let i = 0; i < player.body.count; i++) {
|
|
73
|
+
const handle = player.equipment[i] ?? 0;
|
|
74
|
+
const obj = handle ? gear.store.get(handle) : undefined;
|
|
75
|
+
if (!obj) continue;
|
|
76
|
+
n += checkForInscrip(obj, "^*") + checkForInscrip(obj, `^${key}`);
|
|
77
|
+
}
|
|
78
|
+
return n;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
/** What get_item_allow owes: a prompt and how many times to ask it. */
|
|
82
|
+
export interface ItemAllowPrompt {
|
|
83
|
+
/** verify_object's finished question (obj-util.c:1085), trailing space and all. */
|
|
84
|
+
readonly prompt: string;
|
|
85
|
+
/** How many matching inscriptions were found; each one asks again. */
|
|
86
|
+
readonly count: number;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* get_item_allow (ui-object.c:634-679): the confirmations `obj` demands before
|
|
91
|
+
* command key `key` may act on it, or null when it demands none.
|
|
92
|
+
*
|
|
93
|
+
* `isHarmless` is upstream's IS_HARMLESS flag - a harmless command (inspecting,
|
|
94
|
+
* for instance) ignores a blanket `!*` but still honours its own `!<key>`.
|
|
95
|
+
*
|
|
96
|
+
* `describe` is object_desc(ODESC_PREFIX | ODESC_FULL) (obj-util.c:1082); the
|
|
97
|
+
* shell passes its own namer so the format string stays here, next to the C
|
|
98
|
+
* line it copies.
|
|
99
|
+
*/
|
|
100
|
+
export function itemAllowPrompt(
|
|
101
|
+
obj: GameObject,
|
|
102
|
+
key: string,
|
|
103
|
+
cmd: CommandCode | null,
|
|
104
|
+
isHarmless: boolean,
|
|
105
|
+
describe: (obj: GameObject) => string,
|
|
106
|
+
): ItemAllowPrompt | null {
|
|
107
|
+
const ch = unKtrlCap(key);
|
|
108
|
+
let count = checkForInscrip(obj, `!${ch}`);
|
|
109
|
+
if (!isHarmless) count += checkForInscrip(obj, "!*");
|
|
110
|
+
if (!count) return null;
|
|
111
|
+
const verb = (cmd ? cmdVerb(cmd) : null) ?? ITEM_ALLOW_FALLBACK_VERB;
|
|
112
|
+
/* strnfmt "Really %s" (ui-object.c:667) then verify_object's "%s %s? "
|
|
113
|
+
* (obj-util.c:1085) - one prompt built in two steps upstream. */
|
|
114
|
+
return { prompt: `Really ${verb} ${describe(obj)}? `, count };
|
|
115
|
+
}
|