@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,333 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Simple math expressions, ported from reference/src/z-expression.c/h
|
|
3
|
+
* (Angband 4.2.6).
|
|
4
|
+
*
|
|
5
|
+
* An expression is a base value function plus a list of (operator, operand)
|
|
6
|
+
* operations applied to an accumulator strictly left to right; there is NO
|
|
7
|
+
* operator precedence. The string form is prefix/space-delimited and must
|
|
8
|
+
* start with an operator: "+ 1 2 3" means ((base + 1) + 2) + 3 and
|
|
9
|
+
* "+ 2 * 3" means (base + 2) * 3. An operator with multiple following
|
|
10
|
+
* operands is applied once per operand; negation ("n" or "N") is unary and
|
|
11
|
+
* takes no operand.
|
|
12
|
+
*
|
|
13
|
+
* Number tokens are parsed with C strtol(str, &end, 0) semantics: base is
|
|
14
|
+
* auto-detected, so "0x1A" is hex and "017" is OCTAL (15). Any token where
|
|
15
|
+
* strtol consumes at least one character is treated as a value, even with
|
|
16
|
+
* trailing junk ("5abc" is the value 5). Operands must fit in int16
|
|
17
|
+
* (-32768..32767). Arithmetic is C int32: wrap on add/sub/mul, truncation
|
|
18
|
+
* toward zero on division.
|
|
19
|
+
*
|
|
20
|
+
* Parsing appends at most EXPRESSION_MAX_OPERATIONS (50) operations per
|
|
21
|
+
* call and silently drops the rest, as upstream. On a parse error nothing
|
|
22
|
+
* is appended and the (negative) error code is returned.
|
|
23
|
+
*/
|
|
24
|
+
export const EXPRESSION_ERR_GENERIC = -1;
|
|
25
|
+
export const EXPRESSION_ERR_INVALID_OPERATOR = -2;
|
|
26
|
+
export const EXPRESSION_ERR_EXPECTED_OPERATOR = -3;
|
|
27
|
+
export const EXPRESSION_ERR_EXPECTED_OPERAND = -4;
|
|
28
|
+
export const EXPRESSION_ERR_DIVIDE_BY_ZERO = -5;
|
|
29
|
+
export const EXPRESSION_ERR_OPERAND_OUT_OF_BOUNDS = -6;
|
|
30
|
+
/** Operator types (expression_operator_t). */
|
|
31
|
+
const OPERATOR_NONE = 0;
|
|
32
|
+
const OPERATOR_ADD = 1;
|
|
33
|
+
const OPERATOR_SUB = 2;
|
|
34
|
+
const OPERATOR_MUL = 3;
|
|
35
|
+
const OPERATOR_DIV = 4;
|
|
36
|
+
const OPERATOR_NEG = 5;
|
|
37
|
+
/** Parser states (expression_state_t). */
|
|
38
|
+
const STATE_START = 0;
|
|
39
|
+
const STATE_OPERATOR = 1;
|
|
40
|
+
const STATE_OPERAND = 2;
|
|
41
|
+
/** Parser input types (expression_input_t). */
|
|
42
|
+
const INPUT_INVALID = 0;
|
|
43
|
+
const INPUT_NEEDS_OPERANDS = 1;
|
|
44
|
+
const INPUT_UNARY_OPERATOR = 2;
|
|
45
|
+
const INPUT_VALUE = 3;
|
|
46
|
+
/** Allocation block size for the operations array (bookkeeping only). */
|
|
47
|
+
const EXPRESSION_ALLOC_SIZE = 5;
|
|
48
|
+
/** Maximum number of operations added by one parse call. */
|
|
49
|
+
export const EXPRESSION_MAX_OPERATIONS = 50;
|
|
50
|
+
/**
|
|
51
|
+
* The parser state table, transcribed from z-expression.c. Cells hold the
|
|
52
|
+
* next state, or a negative expression error code.
|
|
53
|
+
*/
|
|
54
|
+
const STATE_TABLE = [
|
|
55
|
+
// STATE_START
|
|
56
|
+
[
|
|
57
|
+
EXPRESSION_ERR_INVALID_OPERATOR,
|
|
58
|
+
STATE_OPERATOR,
|
|
59
|
+
STATE_START,
|
|
60
|
+
EXPRESSION_ERR_EXPECTED_OPERATOR,
|
|
61
|
+
],
|
|
62
|
+
// STATE_OPERATOR (found operator)
|
|
63
|
+
[
|
|
64
|
+
EXPRESSION_ERR_INVALID_OPERATOR,
|
|
65
|
+
EXPRESSION_ERR_EXPECTED_OPERAND,
|
|
66
|
+
EXPRESSION_ERR_EXPECTED_OPERAND,
|
|
67
|
+
STATE_OPERAND,
|
|
68
|
+
],
|
|
69
|
+
// STATE_OPERAND (found one operand)
|
|
70
|
+
[
|
|
71
|
+
EXPRESSION_ERR_INVALID_OPERATOR,
|
|
72
|
+
STATE_OPERATOR,
|
|
73
|
+
STATE_START,
|
|
74
|
+
STATE_OPERAND,
|
|
75
|
+
],
|
|
76
|
+
];
|
|
77
|
+
const C_SPACE = " \t\n\v\f\r";
|
|
78
|
+
function digitValue(ch, base) {
|
|
79
|
+
let v;
|
|
80
|
+
if (ch >= "0" && ch <= "9")
|
|
81
|
+
v = ch.charCodeAt(0) - 0x30;
|
|
82
|
+
else if (ch >= "a" && ch <= "z")
|
|
83
|
+
v = ch.charCodeAt(0) - 0x61 + 10;
|
|
84
|
+
else if (ch >= "A" && ch <= "Z")
|
|
85
|
+
v = ch.charCodeAt(0) - 0x41 + 10;
|
|
86
|
+
else
|
|
87
|
+
return -1;
|
|
88
|
+
return v < base ? v : -1;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* C strtol(nptr, &endptr, 0) replica used by the expression and dice
|
|
92
|
+
* parsers: optional whitespace, optional sign, then auto-detected base
|
|
93
|
+
* ("0x"/"0X" prefix is hex, leading "0" is octal, otherwise decimal).
|
|
94
|
+
* Returns the parsed value and the number of characters consumed; consumed
|
|
95
|
+
* is 0 when no digits were found (endptr == nptr upstream). Long-overflow
|
|
96
|
+
* saturation is not replicated (tokens here are at most 16 chars).
|
|
97
|
+
*/
|
|
98
|
+
export function strtolBase0(s) {
|
|
99
|
+
let i = 0;
|
|
100
|
+
while (i < s.length && C_SPACE.includes(s[i]))
|
|
101
|
+
i++;
|
|
102
|
+
let sign = 1;
|
|
103
|
+
if (s[i] === "+" || s[i] === "-") {
|
|
104
|
+
if (s[i] === "-")
|
|
105
|
+
sign = -1;
|
|
106
|
+
i++;
|
|
107
|
+
}
|
|
108
|
+
let base = 10;
|
|
109
|
+
if (s[i] === "0") {
|
|
110
|
+
if ((s[i + 1] === "x" || s[i + 1] === "X") &&
|
|
111
|
+
i + 2 < s.length &&
|
|
112
|
+
digitValue(s[i + 2], 16) >= 0) {
|
|
113
|
+
base = 16;
|
|
114
|
+
i += 2;
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
base = 8;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
let value = 0;
|
|
121
|
+
let any = false;
|
|
122
|
+
while (i < s.length) {
|
|
123
|
+
const d = digitValue(s[i], base);
|
|
124
|
+
if (d < 0)
|
|
125
|
+
break;
|
|
126
|
+
value = value * base + d;
|
|
127
|
+
any = true;
|
|
128
|
+
i++;
|
|
129
|
+
}
|
|
130
|
+
if (!any)
|
|
131
|
+
return { value: 0, consumed: 0 };
|
|
132
|
+
return { value: sign * value, consumed: i };
|
|
133
|
+
}
|
|
134
|
+
/** expression_operator_from_token. */
|
|
135
|
+
function operatorFromToken(token) {
|
|
136
|
+
let result;
|
|
137
|
+
switch (token[0]) {
|
|
138
|
+
case "+":
|
|
139
|
+
result = OPERATOR_ADD;
|
|
140
|
+
break;
|
|
141
|
+
case "-":
|
|
142
|
+
result = OPERATOR_SUB;
|
|
143
|
+
break;
|
|
144
|
+
case "*":
|
|
145
|
+
result = OPERATOR_MUL;
|
|
146
|
+
break;
|
|
147
|
+
case "/":
|
|
148
|
+
result = OPERATOR_DIV;
|
|
149
|
+
break;
|
|
150
|
+
case "n":
|
|
151
|
+
case "N":
|
|
152
|
+
result = OPERATOR_NEG;
|
|
153
|
+
break;
|
|
154
|
+
default:
|
|
155
|
+
return OPERATOR_NONE;
|
|
156
|
+
}
|
|
157
|
+
/* Reject if there is additional junk in the token after the operator. */
|
|
158
|
+
return token.length > 1 ? OPERATOR_NONE : result;
|
|
159
|
+
}
|
|
160
|
+
/** expression_input_for_operator. */
|
|
161
|
+
function inputForOperator(operator) {
|
|
162
|
+
switch (operator) {
|
|
163
|
+
case OPERATOR_ADD:
|
|
164
|
+
case OPERATOR_SUB:
|
|
165
|
+
case OPERATOR_MUL:
|
|
166
|
+
case OPERATOR_DIV:
|
|
167
|
+
return INPUT_NEEDS_OPERANDS;
|
|
168
|
+
case OPERATOR_NEG:
|
|
169
|
+
return INPUT_UNARY_OPERATOR;
|
|
170
|
+
default:
|
|
171
|
+
return INPUT_INVALID;
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* expression_t. Construction is expression_new; there is no expression_free
|
|
176
|
+
* (garbage collected). operationsSize mirrors the upstream capacity
|
|
177
|
+
* bookkeeping so expressionTestCopy can compare it faithfully.
|
|
178
|
+
*/
|
|
179
|
+
export class Expression {
|
|
180
|
+
baseValue = null;
|
|
181
|
+
operations = [];
|
|
182
|
+
operationsSize = EXPRESSION_ALLOC_SIZE;
|
|
183
|
+
/** expression_copy: a deep copy sharing the base value function. */
|
|
184
|
+
copy() {
|
|
185
|
+
const copy = new Expression();
|
|
186
|
+
copy.baseValue = this.baseValue;
|
|
187
|
+
copy.operationsSize = this.operationsSize;
|
|
188
|
+
copy.operations = this.operations.map((op) => ({ ...op }));
|
|
189
|
+
return copy;
|
|
190
|
+
}
|
|
191
|
+
/** expression_set_base_value. */
|
|
192
|
+
setBaseValue(fn) {
|
|
193
|
+
this.baseValue = fn;
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* expression_evaluate: applies the operations left to right with C int32
|
|
197
|
+
* semantics. With no base value function, evaluation starts from zero.
|
|
198
|
+
*/
|
|
199
|
+
evaluate() {
|
|
200
|
+
let value = 0;
|
|
201
|
+
if (this.baseValue !== null)
|
|
202
|
+
value = this.baseValue() | 0;
|
|
203
|
+
for (const op of this.operations) {
|
|
204
|
+
switch (op.operator) {
|
|
205
|
+
case OPERATOR_ADD:
|
|
206
|
+
value = (value + op.operand) | 0;
|
|
207
|
+
break;
|
|
208
|
+
case OPERATOR_SUB:
|
|
209
|
+
value = (value - op.operand) | 0;
|
|
210
|
+
break;
|
|
211
|
+
case OPERATOR_MUL:
|
|
212
|
+
value = Math.imul(value, op.operand);
|
|
213
|
+
break;
|
|
214
|
+
case OPERATOR_DIV:
|
|
215
|
+
value = Math.trunc(value / op.operand) | 0;
|
|
216
|
+
break;
|
|
217
|
+
case OPERATOR_NEG:
|
|
218
|
+
value = -value | 0;
|
|
219
|
+
break;
|
|
220
|
+
default:
|
|
221
|
+
break;
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
return value;
|
|
225
|
+
}
|
|
226
|
+
/** expression_add_operation, including the capacity bookkeeping. */
|
|
227
|
+
addOperation(operation) {
|
|
228
|
+
if (this.operations.length >= this.operationsSize) {
|
|
229
|
+
this.operationsSize += EXPRESSION_ALLOC_SIZE;
|
|
230
|
+
}
|
|
231
|
+
this.operations.push(operation);
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* expression_add_operations_string: parses a prefix-notation string and
|
|
235
|
+
* appends its operations. Returns the number of operations added, or a
|
|
236
|
+
* negative expression error code (in which case nothing is appended).
|
|
237
|
+
* The upstream NULL string case maps to null/undefined.
|
|
238
|
+
*/
|
|
239
|
+
addOperationsString(str) {
|
|
240
|
+
if (str === null || str === undefined)
|
|
241
|
+
return EXPRESSION_ERR_GENERIC;
|
|
242
|
+
/* Empty string is an identity operation. */
|
|
243
|
+
if (str === "")
|
|
244
|
+
return 0;
|
|
245
|
+
const pending = [];
|
|
246
|
+
let count = 0;
|
|
247
|
+
let parsedOperator = OPERATOR_NONE;
|
|
248
|
+
let currentOperator = OPERATOR_NONE;
|
|
249
|
+
let state = STATE_START;
|
|
250
|
+
/* strtok with a single-space delimiter set. */
|
|
251
|
+
const tokens = str.split(" ").filter((t) => t.length > 0);
|
|
252
|
+
for (const token of tokens) {
|
|
253
|
+
const { value, consumed } = strtolBase0(token);
|
|
254
|
+
if (consumed === 0) {
|
|
255
|
+
parsedOperator = operatorFromToken(token);
|
|
256
|
+
const input = inputForOperator(parsedOperator);
|
|
257
|
+
state = STATE_TABLE[state][input];
|
|
258
|
+
}
|
|
259
|
+
else {
|
|
260
|
+
state = STATE_TABLE[state][INPUT_VALUE];
|
|
261
|
+
}
|
|
262
|
+
/* Perform actions based on the new state. */
|
|
263
|
+
if (state < STATE_START) {
|
|
264
|
+
/* An error occurred, according to the state table. */
|
|
265
|
+
return state;
|
|
266
|
+
}
|
|
267
|
+
else if (state === STATE_START) {
|
|
268
|
+
/* Flush the operation for a unary operator. */
|
|
269
|
+
pending.push({ operator: parsedOperator, operand: 0 });
|
|
270
|
+
count++;
|
|
271
|
+
}
|
|
272
|
+
else if (state === STATE_OPERATOR) {
|
|
273
|
+
/* Remember the operator, since it needs operands. */
|
|
274
|
+
currentOperator = parsedOperator;
|
|
275
|
+
}
|
|
276
|
+
else if (state === STATE_OPERAND) {
|
|
277
|
+
if (value < -32768 || value > 32767) {
|
|
278
|
+
return EXPRESSION_ERR_OPERAND_OUT_OF_BOUNDS;
|
|
279
|
+
}
|
|
280
|
+
/* Try to catch divide by zero. */
|
|
281
|
+
if (currentOperator === OPERATOR_DIV && value === 0) {
|
|
282
|
+
return EXPRESSION_ERR_DIVIDE_BY_ZERO;
|
|
283
|
+
}
|
|
284
|
+
/* Flush the operator and operand pair. */
|
|
285
|
+
pending.push({ operator: currentOperator, operand: value });
|
|
286
|
+
count++;
|
|
287
|
+
}
|
|
288
|
+
/* Limit the number of operations, saving what we have. */
|
|
289
|
+
if (count >= EXPRESSION_MAX_OPERATIONS)
|
|
290
|
+
break;
|
|
291
|
+
}
|
|
292
|
+
for (const op of pending)
|
|
293
|
+
this.addOperation(op);
|
|
294
|
+
return count;
|
|
295
|
+
}
|
|
296
|
+
/** Internal snapshot for expressionTestCopy. */
|
|
297
|
+
snapshot() {
|
|
298
|
+
return {
|
|
299
|
+
baseValue: this.baseValue,
|
|
300
|
+
operations: this.operations,
|
|
301
|
+
operationsSize: this.operationsSize,
|
|
302
|
+
};
|
|
303
|
+
}
|
|
304
|
+
/**
|
|
305
|
+
* expression_test_copy: checks that b is a value-equal deep copy of a
|
|
306
|
+
* (distinct objects, same base value function, same operations).
|
|
307
|
+
*/
|
|
308
|
+
static testCopy(a, b) {
|
|
309
|
+
if (a === null || b === null)
|
|
310
|
+
return false;
|
|
311
|
+
const sa = a.snapshot();
|
|
312
|
+
const sb = b.snapshot();
|
|
313
|
+
let success = a !== b;
|
|
314
|
+
success &&= sa.baseValue === sb.baseValue;
|
|
315
|
+
success &&= sa.operations.length === sb.operations.length;
|
|
316
|
+
success &&= sa.operationsSize === sb.operationsSize;
|
|
317
|
+
success &&= sa.operations !== sb.operations;
|
|
318
|
+
if (sa.operations.length !== sb.operations.length)
|
|
319
|
+
return false;
|
|
320
|
+
for (let i = 0; i < sa.operations.length; i++) {
|
|
321
|
+
const opA = sa.operations[i];
|
|
322
|
+
const opB = sb.operations[i];
|
|
323
|
+
success &&= opA.operand === opB.operand;
|
|
324
|
+
success &&= opA.operator === opB.operator;
|
|
325
|
+
}
|
|
326
|
+
return success;
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
/** Function-style alias for upstream expression_test_copy. */
|
|
330
|
+
export function expressionTestCopy(a, b) {
|
|
331
|
+
return Expression.testCopy(a, b);
|
|
332
|
+
}
|
|
333
|
+
//# sourceMappingURL=expression.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"expression.js","sourceRoot":"","sources":["../src/expression.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cave commands, ported from reference/src/cmd-cave.c (Angband 4.2.6):
|
|
3
|
+
* opening and closing doors, tunneling (with the calc_digging_chances
|
|
4
|
+
* player math and rubble / gold-vein payouts onto the live floor piles),
|
|
5
|
+
* chest open/disarm branches (do_cmd_open / do_cmd_disarm, gap #49), the
|
|
6
|
+
* alter dispatcher, and the stair commands with their terrain checks.
|
|
7
|
+
*
|
|
8
|
+
* Door LOCKS are traps upstream (the "door lock" trap kind holds the
|
|
9
|
+
* power), so locked-door handling rides on the isLockedDoor / pickLock
|
|
10
|
+
* seams until trap.c lands (#21) - shipped levels place plain closed
|
|
11
|
+
* doors, which open exactly as upstream. square_isknown gating is
|
|
12
|
+
* knowledge (#24): everything is known here, matching the current FOV
|
|
13
|
+
* front end.
|
|
14
|
+
*
|
|
15
|
+
* Chests (game/chest.ts) plug in via the optional `chestDeps`; open gains
|
|
16
|
+
* a chest branch (chest_check(CHEST_OPENABLE) before the door test), and a
|
|
17
|
+
* new "disarm" action is registered that tries chest_check(CHEST_TRAPPED)
|
|
18
|
+
* first and falls through to whatever "disarm" action was already
|
|
19
|
+
* registered (the sibling floor-trap disarm, trap.ts #21) otherwise -
|
|
20
|
+
* merging rather than double-registering, since a stub or the real
|
|
21
|
+
* trap-disarm action is always present by the time this installs.
|
|
22
|
+
*
|
|
23
|
+
* NOW PORTED (was deferred): the swap-digger machinery (player_best_digger,
|
|
24
|
+
* player/best-digger.ts, temporarily wields the pack's best digger and
|
|
25
|
+
* recomputes DIGGING via state.bestDiggerDigging - RNG-free, input-only to the
|
|
26
|
+
* dig roll) feeds tunnelAux; and do_cmd_lock_door (the door-lock branch of
|
|
27
|
+
* do_cmd_disarm plus a dedicated "lock" action) with the exact m_bonus /
|
|
28
|
+
* randint0(100) / randint1(i) RNG order, riding the trap.c door-lock seams
|
|
29
|
+
* (state.setDoorLock / env.isLockedDoor).
|
|
30
|
+
*
|
|
31
|
+
* count_feats direction inference is NOW PORTED (countFeats below, consumed by
|
|
32
|
+
* the shell's open / close / disarm commands): it is unconditional in 4.2.6 --
|
|
33
|
+
* the old easy_open option no longer exists -- so deferring it as "UI" changed
|
|
34
|
+
* the keystrokes ordinary play requires on every door and trap.
|
|
35
|
+
*
|
|
36
|
+
* DEFERRED (ledgered in game-cave-cmd.yaml): do_cmd_steal (shapechange #22) and
|
|
37
|
+
* command repetition. Running and travel / explore (player-path #24) are ported
|
|
38
|
+
* in game/player-path.ts.
|
|
39
|
+
*/
|
|
40
|
+
import type { Loc } from "../loc.js";
|
|
41
|
+
import type { MakeDeps } from "../obj/make.js";
|
|
42
|
+
import type { ChestCmdDeps } from "./chest.js";
|
|
43
|
+
import type { GameState } from "./context.js";
|
|
44
|
+
import type { ActionRegistry } from "./player-turn.js";
|
|
45
|
+
import { type TrapDeps } from "./trap.js";
|
|
46
|
+
/** Hooks for messages and unported subsystems; all optional. */
|
|
47
|
+
export interface CaveCmdEnv {
|
|
48
|
+
msg?: (text: string) => void;
|
|
49
|
+
/** square_islockeddoor: door locks are traps (#21). Default false. */
|
|
50
|
+
isLockedDoor?: (grid: Loc) => boolean;
|
|
51
|
+
/**
|
|
52
|
+
* The unlock attempt for a locked door (calc_unlocking_chance +
|
|
53
|
+
* square_open_door's lock removal, #21). Returns whether it opened.
|
|
54
|
+
*/
|
|
55
|
+
pickLock?: (grid: Loc) => boolean;
|
|
56
|
+
/**
|
|
57
|
+
* player_is_trapsafe (player-util.c:1073-1077): skip disarm-on-walk when
|
|
58
|
+
* true (cmd-cave.c:1311-1312). Default: trap.ts playerIsTrapsafe (timed +
|
|
59
|
+
* derived/equipment OF_TRAP_IMMUNE). Override only for tests.
|
|
60
|
+
*/
|
|
61
|
+
isTrapsafe?: (state: GameState) => boolean;
|
|
62
|
+
/**
|
|
63
|
+
* get_check: do_cmd_go_down's force_descend quest warning
|
|
64
|
+
* (cmd-cave.c:126). Default yes - an unprompted terminal auto-accepts, the
|
|
65
|
+
* same convention as effect-general.ts's confirm seam.
|
|
66
|
+
*/
|
|
67
|
+
confirm?: (prompt: string) => boolean;
|
|
68
|
+
/**
|
|
69
|
+
* tunnel_aux's `with_clause` (cmd-cave.c:541, :552): "with your hands" with
|
|
70
|
+
* no weapon, "with your weapon" wielding one, "with your swap digger" when
|
|
71
|
+
* player_best_digger swapped a better tool in for the roll. Pairs with
|
|
72
|
+
* state.bestDiggerDigging, which supplies that roll; default "with your
|
|
73
|
+
* hands" only matters in the worldless harness.
|
|
74
|
+
*/
|
|
75
|
+
digWithClause?: () => string;
|
|
76
|
+
}
|
|
77
|
+
/** What the cave commands need beyond the state. */
|
|
78
|
+
export interface CaveCmdDeps {
|
|
79
|
+
/** Object generation deps for rubble finds / gold veins; optional. */
|
|
80
|
+
makeDeps?: MakeDeps;
|
|
81
|
+
env?: CaveCmdEnv;
|
|
82
|
+
/**
|
|
83
|
+
* Chest deps (gap #49); absent, the open/disarm chest branches are
|
|
84
|
+
* skipped entirely (doors and floor traps behave exactly as before).
|
|
85
|
+
*/
|
|
86
|
+
chestDeps?: ChestCmdDeps;
|
|
87
|
+
/**
|
|
88
|
+
* Live trap deps for disarm-on-walk (cmd-cave.c:1079-1083). Absent, the
|
|
89
|
+
* walk wrapper never auto-disarms (step triggers as before).
|
|
90
|
+
*/
|
|
91
|
+
trapDeps?: TrapDeps;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* display_feeling (cmd-cave.c L1729) via do_cmd_feeling (L1777): re-emit the
|
|
95
|
+
* current level feeling. `objOnly` reproduces display_feeling(true), the
|
|
96
|
+
* object-only line shown the moment the object feeling is first discovered;
|
|
97
|
+
* do_cmd_feeling (^F) calls it with objOnly = false. Cold-hearted characters
|
|
98
|
+
* (birth_feelings off) get nothing; the town gets the fixed line; a level not
|
|
99
|
+
* yet explored to feeling_need grids gets only the monster feeling, otherwise
|
|
100
|
+
* the joined "<mon>, and/yet <obj>" line with the exact conjunction rule.
|
|
101
|
+
* feelingNeed defaults to the shipped constants.txt world:feeling-need (10),
|
|
102
|
+
* matching the display-model default (display.ts).
|
|
103
|
+
*/
|
|
104
|
+
export declare function displayFeeling(state: GameState, opts?: {
|
|
105
|
+
objOnly?: boolean;
|
|
106
|
+
feelingNeed?: number;
|
|
107
|
+
}): void;
|
|
108
|
+
/**
|
|
109
|
+
* count_feats (cave.c L644-679): how many of the nine grids around (and
|
|
110
|
+
* optionally under) the player match `test`, plus the last one matched.
|
|
111
|
+
*
|
|
112
|
+
* Two details of the C matter and are easy to get wrong. It requires
|
|
113
|
+
* `square_isknown` and then tests **the player's memory**, `player->cave`, not
|
|
114
|
+
* the live map -- so terrain the player has not seen never counts, and
|
|
115
|
+
* misremembered terrain counts as remembered. And `ddgrid_ddd[8]` is the
|
|
116
|
+
* player's own grid, which only participates when `under` is set.
|
|
117
|
+
*
|
|
118
|
+
* Draws no RNG. The C uses this to auto-select a direction for open, close and
|
|
119
|
+
* disarm when exactly one adjacent candidate exists (cmd-cave.c L250-260, L409,
|
|
120
|
+
* L874-876), which is unconditional in 4.2.6 -- the old `easy_open` option no
|
|
121
|
+
* longer exists.
|
|
122
|
+
*/
|
|
123
|
+
export declare function countFeats(state: GameState, test: (state: GameState, grid: Loc) => boolean, under: boolean): {
|
|
124
|
+
count: number;
|
|
125
|
+
grid: Loc | null;
|
|
126
|
+
};
|
|
127
|
+
/**
|
|
128
|
+
* square_isunlockeddoor (cave-square.c L791-794): a closed door whose lock
|
|
129
|
+
* power is zero. Locks are traps upstream, so without live trap deps every
|
|
130
|
+
* closed door reads as unlocked -- which matches shipped levels, where plain
|
|
131
|
+
* closed doors are what generation places.
|
|
132
|
+
*/
|
|
133
|
+
export declare function squareIsUnlockedDoor(state: GameState, grid: Loc, trapDeps?: TrapDeps): boolean;
|
|
134
|
+
/** square_isopendoor: a door that can be closed (TF CLOSABLE). */
|
|
135
|
+
export declare function squareIsOpenDoor(state: GameState, grid: Loc): boolean;
|
|
136
|
+
/** square_isbrokendoor: passable door that cannot be closed. */
|
|
137
|
+
export declare function squareIsBrokenDoor(state: GameState, grid: Loc): boolean;
|
|
138
|
+
/** square_issecretdoor: a door still disguised as rock. */
|
|
139
|
+
export declare function squareIsSecretDoor(state: GameState, grid: Loc): boolean;
|
|
140
|
+
/** square_isdiggable: mineral, secret door or rubble. */
|
|
141
|
+
export declare function squareIsDiggable(state: GameState, grid: Loc): boolean;
|
|
142
|
+
/** enum digging (player.h): the digging-difficulty classes. */
|
|
143
|
+
export declare const DIGGING: {
|
|
144
|
+
readonly RUBBLE: 0;
|
|
145
|
+
readonly MAGMA: 1;
|
|
146
|
+
readonly QUARTZ: 2;
|
|
147
|
+
readonly GRANITE: 3;
|
|
148
|
+
readonly DOORS: 4;
|
|
149
|
+
readonly MAX: 5;
|
|
150
|
+
};
|
|
151
|
+
/** calc_digging_chances: success chances (out of 1600) by difficulty. */
|
|
152
|
+
export declare function calcDiggingChances(diggingSkill: number): number[];
|
|
153
|
+
/** square_digging: the feature's 1..5 digging class (0 = not diggable). */
|
|
154
|
+
export declare function squareDigging(state: GameState, grid: Loc): number;
|
|
155
|
+
/**
|
|
156
|
+
* do_cmd_tunnel_aux: one digging attempt. player_best_digger temporarily wields
|
|
157
|
+
* the pack's best digger and recomputes DIGGING (via state.bestDiggerDigging,
|
|
158
|
+
* RNG-free) to feed the roll; absent that hook the wielded DIGGING decides.
|
|
159
|
+
* Returns "may repeat" (a failed dig with hope).
|
|
160
|
+
*
|
|
161
|
+
* Exported because a mod handling the walkBlockedByDiggable hook has to be able
|
|
162
|
+
* to make a REAL dig attempt - the same roll and payouts the tunnel command
|
|
163
|
+
* makes - rather than reimplement the roll and drift from it. It draws RNG, so a
|
|
164
|
+
* hook must only call it on a path where it has committed to handling the walk.
|
|
165
|
+
*/
|
|
166
|
+
export declare function tunnelAux(state: GameState, grid: Loc, deps: CaveCmdDeps): boolean;
|
|
167
|
+
/**
|
|
168
|
+
* do_cmd_movement_tunnel_test (neostryder's Angband fork): a grid the player should tunnel into
|
|
169
|
+
* when they try to WALK into it - known, not permanent rock, impassable,
|
|
170
|
+
* diggable, and diggable with a positive success chance given the current
|
|
171
|
+
* weapon / best pack digger. RNG-free (input only).
|
|
172
|
+
*/
|
|
173
|
+
export declare function movementTunnelTest(state: GameState, grid: Loc): boolean;
|
|
174
|
+
/**
|
|
175
|
+
* The walk-into-a-wall seam, installed as state.autoDigStep by the session and
|
|
176
|
+
* consulted by walkAction (game/player-turn.ts) when a walk is blocked.
|
|
177
|
+
*
|
|
178
|
+
* Faithful 4.2.6 bumps the wall and spends nothing, so with no mod loaded this
|
|
179
|
+
* returns 0 having drawn NO RNG - the walk falls through to the normal bump and
|
|
180
|
+
* core is byte-identical. A mod may take the walk over through the
|
|
181
|
+
* walkBlockedByDiggable hook (mod/hooks.ts); the digging itself is the mod's,
|
|
182
|
+
* and everything it needs is already public here (movementTunnelTest to decide
|
|
183
|
+
* whether the grid is a legal target, tunnelAux to make one attempt with the
|
|
184
|
+
* real dig roll and payouts).
|
|
185
|
+
*
|
|
186
|
+
* Core deliberately does not check what KIND of mod is asking or which flag it
|
|
187
|
+
* consulted - a hook is present or it is not.
|
|
188
|
+
*/
|
|
189
|
+
export declare function movementAutoDig(state: GameState, grid: Loc, deps: CaveCmdDeps): number | null;
|
|
190
|
+
/**
|
|
191
|
+
* Register open / close / lock / tunnel / alter and the stair-checked descend /
|
|
192
|
+
* ascend on the action registry.
|
|
193
|
+
*/
|
|
194
|
+
export declare function installCaveCommands(registry: ActionRegistry, deps?: CaveCmdDeps): void;
|
|
195
|
+
//# sourceMappingURL=cave-cmd.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cave-cmd.d.ts","sourceRoot":"","sources":["../../src/game/cave-cmd.ts"],"names":[],"mappings":"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"}
|