@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,126 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pickup commands, ported from reference/src/cmd-pickup.c (Angband 4.2.6):
|
|
3
|
+
* gold pickup, the inscription-driven auto-pickup rules (!g / =g / =g<n>),
|
|
4
|
+
* partial pickup into the pack, do_autopickup on stepping, and the 'g'et
|
|
5
|
+
* command, wired into the action registry.
|
|
6
|
+
*
|
|
7
|
+
* Energy accounting: upstream queues CMD_AUTOPICKUP as a separate command
|
|
8
|
+
* after a step, charging picked * move_energy / 10 (capped at move_energy)
|
|
9
|
+
* on that later command. The port's command provider is injected (the
|
|
10
|
+
* engine cannot push commands), so walkAction adds the same capped cost to
|
|
11
|
+
* the step's energy via the state.autoPickup hook - the total energy spent
|
|
12
|
+
* is identical, only the single-command split differs (ledgered).
|
|
13
|
+
*
|
|
14
|
+
* Unported-subsystem seams (inert defaults): isIgnored (obj-ignore #24),
|
|
15
|
+
* chooseItem (the multi-object pickup menu, ui #25 - defaults to the pile
|
|
16
|
+
* head when unwired, so 'g' picks one item per press; packages/web/src's
|
|
17
|
+
* pickupCmd wires a real lettered picker, reusing the same selectFromMenu
|
|
18
|
+
* as the other item menus), messages/disturb hooks, and square_know_pile /
|
|
19
|
+
* OFLOOR_VISIBLE marking (knowledge #24 - everything on the grid is visible).
|
|
20
|
+
*
|
|
21
|
+
* playerPickupAux calls object_touch (obj-knowledge.c L960-972) when an object
|
|
22
|
+
* enters the pack: it marks the object ASSESSED (revealing its combat bracket
|
|
23
|
+
* and artifact name) and fires state.onArtifactFound (history_find_artifact).
|
|
24
|
+
* Find-on-sight is also wired now: square_know_pile's reduced port
|
|
25
|
+
* (game/known.ts) touches the pile on the player's own grid, so an artifact is
|
|
26
|
+
* found the instant its grid becomes known, not only on pickup.
|
|
27
|
+
* historyFindArtifact's per-aidx de-dupe keeps both paths safe.
|
|
28
|
+
*/
|
|
29
|
+
import type { Constants } from "../constants.js";
|
|
30
|
+
import type { GameObject } from "../obj/object.js";
|
|
31
|
+
import type { GameState } from "./context.js";
|
|
32
|
+
import type { ActionRegistry } from "./player-turn.js";
|
|
33
|
+
/** Hooks and options for the pickup routines; every slot is optional. */
|
|
34
|
+
export interface PickupEnv {
|
|
35
|
+
/** ignore_item_ok (obj-ignore.c, #24). Default: nothing is ignored. */
|
|
36
|
+
isIgnored?: (obj: GameObject) => boolean;
|
|
37
|
+
/** OPT(player, pickup_always). Shipped default false. */
|
|
38
|
+
pickupAlways?: boolean;
|
|
39
|
+
/** OPT(player, pickup_inven). Shipped default true. */
|
|
40
|
+
pickupInven?: boolean;
|
|
41
|
+
/** get_item over the floor list (the pickup menu, ui #25). */
|
|
42
|
+
chooseItem?: (list: readonly GameObject[]) => GameObject | null;
|
|
43
|
+
/**
|
|
44
|
+
* get_quantity(NULL, max) on a PARTIAL pickup (cmd-pickup.c L270): only some
|
|
45
|
+
* of the stack fits, so upstream asks how much of it to take. Answering 0
|
|
46
|
+
* (which ESCAPE gives) abandons the pickup - but not the turn, since
|
|
47
|
+
* player_pickup_item has already counted the object (L389).
|
|
48
|
+
*
|
|
49
|
+
* With no hook the whole carryable amount is taken, which is what a headless
|
|
50
|
+
* caller (the borg, the agent seam, a test) wants: upstream's default answer
|
|
51
|
+
* is 1, but a caller with no way to answer would then never make progress.
|
|
52
|
+
*/
|
|
53
|
+
getQuantity?: (max: number) => number;
|
|
54
|
+
/** Gold was picked up (message/sound hook). */
|
|
55
|
+
onGold?: (total: number, name: string, singleKind: boolean) => void;
|
|
56
|
+
/**
|
|
57
|
+
* An object entered the pack: the message hook receives the finished
|
|
58
|
+
* inven_carry line ("You have 5 Potions of Cure Light Wounds (a)."), built
|
|
59
|
+
* from the MERGED pack stack so it reports the combined count and slot letter
|
|
60
|
+
* (obj-gear.c:893-921), not the bare floor object.
|
|
61
|
+
*/
|
|
62
|
+
onPickup?: (msg: string) => void;
|
|
63
|
+
/** disturb(player). */
|
|
64
|
+
disturb?: () => void;
|
|
65
|
+
}
|
|
66
|
+
/** What the pickup routines need from the binder. */
|
|
67
|
+
export interface PickupDeps {
|
|
68
|
+
/** Bound constants (pack_size for inven_carry_num, quiver limits). */
|
|
69
|
+
constants: Constants;
|
|
70
|
+
env?: PickupEnv;
|
|
71
|
+
/**
|
|
72
|
+
* update_stuff's PU_INVEN after inven_carry (obj-gear.c:889-891 sets PU_INVEN
|
|
73
|
+
* and then calls update_stuff itself): rebuild the computed quiver so picked-up
|
|
74
|
+
* ammo is routed out of the pack and into the quiver, exactly as the
|
|
75
|
+
* wield/takeoff/drop/store paths do. Without it, shots/arrows/bolts sit in the
|
|
76
|
+
* pack until some later gear change forces a calc_inventory.
|
|
77
|
+
*
|
|
78
|
+
* Called once per CARRIED OBJECT, before that object's "You have %s (%c)."
|
|
79
|
+
* message - not once per command. That is where upstream calls it (L891, four
|
|
80
|
+
* lines above the message at L893-921) and the ordering is the whole point: the
|
|
81
|
+
* %c is gear_to_label of the sorted upkeep->inven[] listing, so a label read
|
|
82
|
+
* before the rebuild names the pre-pickup listing. It was previously invoked
|
|
83
|
+
* once per command, after every message, which is what let a picked-up scroll be
|
|
84
|
+
* announced at one letter and be found at another.
|
|
85
|
+
*/
|
|
86
|
+
refreshInventory?: () => void;
|
|
87
|
+
}
|
|
88
|
+
/** check_for_inscrip (obj-util.c): occurrences of `inscrip` in the note. */
|
|
89
|
+
export declare function checkForInscrip(obj: GameObject, inscrip: string): number;
|
|
90
|
+
/**
|
|
91
|
+
* check_for_inscrip_with_int: occurrences of `inscrip` immediately followed
|
|
92
|
+
* by a digit; `value` is the integer after the first such occurrence.
|
|
93
|
+
*/
|
|
94
|
+
export declare function checkForInscripWithInt(obj: GameObject, inscrip: string): {
|
|
95
|
+
count: number;
|
|
96
|
+
value: number;
|
|
97
|
+
};
|
|
98
|
+
/**
|
|
99
|
+
* player_pickup_gold: pick up all gold at the player's grid, effortlessly.
|
|
100
|
+
* Returns the total picked up (already added to p.au).
|
|
101
|
+
*/
|
|
102
|
+
export declare function playerPickupGold(state: GameState, env?: PickupEnv): number;
|
|
103
|
+
/**
|
|
104
|
+
* auto_pickup_okay: how many of a floor object to pick up automatically -
|
|
105
|
+
* pack capacity gated by the !g / =g / =g<n> inscriptions and the
|
|
106
|
+
* pickup_always / pickup_inven options.
|
|
107
|
+
*/
|
|
108
|
+
export declare function autoPickupOkay(state: GameState, obj: GameObject, deps: PickupDeps): number;
|
|
109
|
+
/**
|
|
110
|
+
* player_pickup_item: pick up gold, then a specific object (when given) or
|
|
111
|
+
* one chosen from the floor list. Returns the number of objects picked up
|
|
112
|
+
* (the command's energy multiplier).
|
|
113
|
+
*/
|
|
114
|
+
export declare function playerPickupItem(state: GameState, obj: GameObject | null, deps: PickupDeps): number;
|
|
115
|
+
/**
|
|
116
|
+
* do_autopickup: pick up everything on the player's grid that requires no
|
|
117
|
+
* action - gold always, objects per auto_pickup_okay. Returns the number
|
|
118
|
+
* of objects picked up.
|
|
119
|
+
*/
|
|
120
|
+
export declare function doAutopickup(state: GameState, deps: PickupDeps): number;
|
|
121
|
+
/**
|
|
122
|
+
* Register the pickup commands on the action registry and install the
|
|
123
|
+
* state.autoPickup hook that walkAction runs after a step.
|
|
124
|
+
*/
|
|
125
|
+
export declare function installPickup(state: GameState, registry: ActionRegistry, deps: PickupDeps): void;
|
|
126
|
+
//# sourceMappingURL=pickup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pickup.d.ts","sourceRoot":"","sources":["../../src/game/pickup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,OAAO,KAAK,EAAE,UAAU,EAAe,MAAM,kBAAkB,CAAC;AAYhE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAW9C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,yEAAyE;AACzE,MAAM,WAAW,SAAS;IACxB,uEAAuE;IACvE,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,OAAO,CAAC;IACzC,yDAAyD;IACzD,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,uDAAuD;IACvD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,8DAA8D;IAC9D,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,UAAU,EAAE,KAAK,UAAU,GAAG,IAAI,CAAC;IAChE;;;;;;;;;OASG;IACH,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;IACtC,+CAA+C;IAC/C,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,KAAK,IAAI,CAAC;IACpE;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,uBAAuB;IACvB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,qDAAqD;AACrD,MAAM,WAAW,UAAU;IACzB,sEAAsE;IACtE,SAAS,EAAE,SAAS,CAAC;IACrB,GAAG,CAAC,EAAE,SAAS,CAAC;IAChB;;;;;;;;;;;;;;OAcG;IACH,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;CAC/B;AASD,4EAA4E;AAC5E,wBAAgB,eAAe,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CASxE;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,UAAU,EACf,OAAO,EAAE,MAAM,GACd;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAclC;AAeD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,GAAE,SAAc,GAAG,MAAM,CA0B9E;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,SAAS,EAChB,GAAG,EAAE,UAAU,EACf,IAAI,EAAE,UAAU,GACf,MAAM,CAyCR;AAiID;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,SAAS,EAChB,GAAG,EAAE,UAAU,GAAG,IAAI,EACtB,IAAI,EAAE,UAAU,GACf,MAAM,CAyCR;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,GAAG,MAAM,CAoBvE;AAQD;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,SAAS,EAChB,QAAQ,EAAE,cAAc,EACxB,IAAI,EAAE,UAAU,GACf,IAAI,CAUN"}
|
|
@@ -0,0 +1,367 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pickup commands, ported from reference/src/cmd-pickup.c (Angband 4.2.6):
|
|
3
|
+
* gold pickup, the inscription-driven auto-pickup rules (!g / =g / =g<n>),
|
|
4
|
+
* partial pickup into the pack, do_autopickup on stepping, and the 'g'et
|
|
5
|
+
* command, wired into the action registry.
|
|
6
|
+
*
|
|
7
|
+
* Energy accounting: upstream queues CMD_AUTOPICKUP as a separate command
|
|
8
|
+
* after a step, charging picked * move_energy / 10 (capped at move_energy)
|
|
9
|
+
* on that later command. The port's command provider is injected (the
|
|
10
|
+
* engine cannot push commands), so walkAction adds the same capped cost to
|
|
11
|
+
* the step's energy via the state.autoPickup hook - the total energy spent
|
|
12
|
+
* is identical, only the single-command split differs (ledgered).
|
|
13
|
+
*
|
|
14
|
+
* Unported-subsystem seams (inert defaults): isIgnored (obj-ignore #24),
|
|
15
|
+
* chooseItem (the multi-object pickup menu, ui #25 - defaults to the pile
|
|
16
|
+
* head when unwired, so 'g' picks one item per press; packages/web/src's
|
|
17
|
+
* pickupCmd wires a real lettered picker, reusing the same selectFromMenu
|
|
18
|
+
* as the other item menus), messages/disturb hooks, and square_know_pile /
|
|
19
|
+
* OFLOOR_VISIBLE marking (knowledge #24 - everything on the grid is visible).
|
|
20
|
+
*
|
|
21
|
+
* playerPickupAux calls object_touch (obj-knowledge.c L960-972) when an object
|
|
22
|
+
* enters the pack: it marks the object ASSESSED (revealing its combat bracket
|
|
23
|
+
* and artifact name) and fires state.onArtifactFound (history_find_artifact).
|
|
24
|
+
* Find-on-sight is also wired now: square_know_pile's reduced port
|
|
25
|
+
* (game/known.ts) touches the pile on the player's own grid, so an artifact is
|
|
26
|
+
* found the instant its grid becomes known, not only on pickup.
|
|
27
|
+
* historyFindArtifact's per-aidx de-dupe keeps both paths safe.
|
|
28
|
+
*/
|
|
29
|
+
import { PF } from "../generated/index.js";
|
|
30
|
+
import { OSTACK_PACK, objectPackTotal, objectStackable, tvalIsMoney, tvalIsMushroom, tvalIsZapper, } from "../obj/object.js";
|
|
31
|
+
import { objectTouch } from "../obj/known-object.js";
|
|
32
|
+
import { ODESC } from "../obj/desc.js";
|
|
33
|
+
import { NOOP_FLAVOR_AWARE_DEPS } from "../obj/knowledge.js";
|
|
34
|
+
import { describeObject } from "./describe.js";
|
|
35
|
+
import { floorExcise, floorObjectForUse, floorPile } from "./floor.js";
|
|
36
|
+
import { gearGet, invenCarryNum, invenCarryResult, packTotalSuppressed, packTotalView, } from "./gear.js";
|
|
37
|
+
import { gearToLabel } from "./project-obj.js";
|
|
38
|
+
function stackLimits(constants) {
|
|
39
|
+
return {
|
|
40
|
+
quiverSlotSize: constants.quiverSlotSize,
|
|
41
|
+
thrownQuiverMult: constants.thrownQuiverMult,
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
/** check_for_inscrip (obj-util.c): occurrences of `inscrip` in the note. */
|
|
45
|
+
export function checkForInscrip(obj, inscrip) {
|
|
46
|
+
if (!obj.note)
|
|
47
|
+
return 0;
|
|
48
|
+
let n = 0;
|
|
49
|
+
let at = obj.note.indexOf(inscrip);
|
|
50
|
+
while (at >= 0) {
|
|
51
|
+
n++;
|
|
52
|
+
at = obj.note.indexOf(inscrip, at + 1);
|
|
53
|
+
}
|
|
54
|
+
return n;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* check_for_inscrip_with_int: occurrences of `inscrip` immediately followed
|
|
58
|
+
* by a digit; `value` is the integer after the first such occurrence.
|
|
59
|
+
*/
|
|
60
|
+
export function checkForInscripWithInt(obj, inscrip) {
|
|
61
|
+
if (!obj.note)
|
|
62
|
+
return { count: 0, value: 0 };
|
|
63
|
+
let n = 0;
|
|
64
|
+
let value = 0;
|
|
65
|
+
let at = obj.note.indexOf(inscrip);
|
|
66
|
+
while (at >= 0) {
|
|
67
|
+
const rest = obj.note.slice(at + inscrip.length);
|
|
68
|
+
if (/^\d/.test(rest)) {
|
|
69
|
+
if (n === 0)
|
|
70
|
+
value = parseInt(rest, 10);
|
|
71
|
+
n++;
|
|
72
|
+
}
|
|
73
|
+
at = obj.note.indexOf(inscrip, at + 1);
|
|
74
|
+
}
|
|
75
|
+
return { count: n, value };
|
|
76
|
+
}
|
|
77
|
+
/** find_stack_object_in_inventory: pack stacks similar to obj, in order. */
|
|
78
|
+
function packStacksSimilarTo(state, obj) {
|
|
79
|
+
const out = [];
|
|
80
|
+
for (const handle of state.gear.pack) {
|
|
81
|
+
const stack = state.gear.store.get(handle);
|
|
82
|
+
if (stack && objectStackable(stack, obj, OSTACK_PACK))
|
|
83
|
+
out.push(stack);
|
|
84
|
+
}
|
|
85
|
+
return out;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* player_pickup_gold: pick up all gold at the player's grid, effortlessly.
|
|
89
|
+
* Returns the total picked up (already added to p.au).
|
|
90
|
+
*/
|
|
91
|
+
export function playerPickupGold(state, env = {}) {
|
|
92
|
+
const grid = state.actor.grid;
|
|
93
|
+
let totalGold = 0;
|
|
94
|
+
let name = "";
|
|
95
|
+
let verbal = false;
|
|
96
|
+
let atMostOne = true;
|
|
97
|
+
for (const obj of [...floorPile(state, grid)]) {
|
|
98
|
+
if (!tvalIsMoney(obj.tval))
|
|
99
|
+
continue;
|
|
100
|
+
/* Multiple types if we have a second name, otherwise record the name. */
|
|
101
|
+
if (totalGold && obj.kind.name !== name)
|
|
102
|
+
atMostOne = false;
|
|
103
|
+
else
|
|
104
|
+
name = obj.kind.name;
|
|
105
|
+
/* Remember whether feedback message is in order. */
|
|
106
|
+
if (!env.isIgnored?.(obj))
|
|
107
|
+
verbal = true;
|
|
108
|
+
totalGold += obj.pval;
|
|
109
|
+
floorExcise(state, grid, obj);
|
|
110
|
+
}
|
|
111
|
+
if (totalGold) {
|
|
112
|
+
state.actor.player.au += totalGold;
|
|
113
|
+
if (verbal)
|
|
114
|
+
env.onGold?.(totalGold, name, atMostOne);
|
|
115
|
+
}
|
|
116
|
+
return totalGold;
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* auto_pickup_okay: how many of a floor object to pick up automatically -
|
|
120
|
+
* pack capacity gated by the !g / =g / =g<n> inscriptions and the
|
|
121
|
+
* pickup_always / pickup_inven options.
|
|
122
|
+
*/
|
|
123
|
+
export function autoPickupOkay(state, obj, deps) {
|
|
124
|
+
const env = deps.env ?? {};
|
|
125
|
+
const num = invenCarryNum(state.gear, obj, deps.constants);
|
|
126
|
+
if (!num)
|
|
127
|
+
return 0;
|
|
128
|
+
if (env.pickupAlways ?? state.options?.get("pickup_always") ?? false)
|
|
129
|
+
return num;
|
|
130
|
+
if (checkForInscrip(obj, "!g"))
|
|
131
|
+
return 0;
|
|
132
|
+
const objHasAuto = checkForInscrip(obj, "=g");
|
|
133
|
+
const objMax = checkForInscripWithInt(obj, "=g");
|
|
134
|
+
const objMaxauto = objMax.count ? objMax.value : Number.MAX_SAFE_INTEGER;
|
|
135
|
+
if (objHasAuto > objMax.count)
|
|
136
|
+
return num;
|
|
137
|
+
if ((env.pickupInven ?? state.options?.get("pickup_inven") ?? true) ||
|
|
138
|
+
objMax.count) {
|
|
139
|
+
const matches = packStacksSimilarTo(state, obj);
|
|
140
|
+
const gearObj = matches[0];
|
|
141
|
+
if (!gearObj) {
|
|
142
|
+
if (objMax.count)
|
|
143
|
+
return Math.min(num, objMaxauto);
|
|
144
|
+
return 0;
|
|
145
|
+
}
|
|
146
|
+
if (!checkForInscrip(gearObj, "!g")) {
|
|
147
|
+
const gearHasAuto = checkForInscrip(gearObj, "=g");
|
|
148
|
+
const gearMax = checkForInscripWithInt(gearObj, "=g");
|
|
149
|
+
if (gearHasAuto > gearMax.count)
|
|
150
|
+
return num;
|
|
151
|
+
if (objMax.count || gearMax.count) {
|
|
152
|
+
/* Use the pack inscription if have both. */
|
|
153
|
+
const maxNum = gearMax.count ? gearMax.value : objMaxauto;
|
|
154
|
+
let packNum = 0;
|
|
155
|
+
for (const stack of matches)
|
|
156
|
+
packNum += stack.number;
|
|
157
|
+
if (packNum >= maxNum)
|
|
158
|
+
return 0;
|
|
159
|
+
return Math.min(num, maxNum - packNum);
|
|
160
|
+
}
|
|
161
|
+
return num;
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
return 0;
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* player_pickup_aux: move a floor object (or part of it) into the pack.
|
|
168
|
+
* The caller has confirmed inven_carry_num > 0.
|
|
169
|
+
*/
|
|
170
|
+
function playerPickupAux(state, obj, autoMax, deps) {
|
|
171
|
+
const env = deps.env ?? {};
|
|
172
|
+
let max = invenCarryNum(state.gear, obj, deps.constants);
|
|
173
|
+
if (max === 0)
|
|
174
|
+
throw new Error(`Failed pickup of ${obj.kind.name}`);
|
|
175
|
+
/* Allow auto-pickup to limit the number if it wants to. */
|
|
176
|
+
if (autoMax && max > autoMax)
|
|
177
|
+
max = autoMax;
|
|
178
|
+
const limits = stackLimits(deps.constants);
|
|
179
|
+
let handle;
|
|
180
|
+
let combining = false;
|
|
181
|
+
if (max === obj.number) {
|
|
182
|
+
if (obj.grid)
|
|
183
|
+
floorExcise(state, obj.grid, obj);
|
|
184
|
+
obj.grid = null;
|
|
185
|
+
({ handle, combining } = invenCarryResult(state.gear, obj, limits));
|
|
186
|
+
}
|
|
187
|
+
else {
|
|
188
|
+
/* Partial pickup (cmd-pickup.c L262-274): an auto-pickup limit answers for
|
|
189
|
+
* itself, otherwise upstream asks - get_quantity(NULL, max) - and a 0
|
|
190
|
+
* answer abandons the pickup. */
|
|
191
|
+
const num = autoMax || (env.getQuantity?.(max) ?? max);
|
|
192
|
+
if (num <= 0)
|
|
193
|
+
return;
|
|
194
|
+
const { usable } = floorObjectForUse(state, obj, num);
|
|
195
|
+
({ handle, combining } = invenCarryResult(state.gear, usable, limits));
|
|
196
|
+
}
|
|
197
|
+
/* object_touch (obj-knowledge.c L960-972; cmd-pickup.c L322 also touches the
|
|
198
|
+
* grid pile on pickup): mark the object ASSESSED so it reveals its combat
|
|
199
|
+
* bracket and, if an artifact, its name on entry to the pack; auto-notice the
|
|
200
|
+
* artifact and log the find (history_find_artifact). onArtifactFound is read
|
|
201
|
+
* through the state-level hook (not PickupEnv) so it survives a later
|
|
202
|
+
* installPickup call that only supplies message hooks (main.ts's "reinstall").
|
|
203
|
+
* (ASSESSED is idempotent, so re-touching an item already seen on the grid via
|
|
204
|
+
* squareKnowPile is harmless.) */
|
|
205
|
+
objectTouch(obj, { onArtifactFound: () => state.onArtifactFound?.(obj.artifact) });
|
|
206
|
+
/*
|
|
207
|
+
* Hobbits ID mushrooms on pickup, gnomes ID wands and staffs on pickup
|
|
208
|
+
* (obj-gear.c:879-886). Uses tvalIsMushroom / tvalIsZapper so those
|
|
209
|
+
* predicates sit on the live path (W2-012 / W2-013). No RNG.
|
|
210
|
+
*/
|
|
211
|
+
const stack = gearGet(state.gear, handle);
|
|
212
|
+
/* apply_autoinscription (obj-gear.c:868): inven_carry autoinscribes in its
|
|
213
|
+
* NON-combining branch only - an object absorbed into an existing stack keeps
|
|
214
|
+
* that stack's inscription. This is the pickup half of the autoinscription
|
|
215
|
+
* story; without it a registered note only landed on the explicit `{`
|
|
216
|
+
* autoinscribe command. */
|
|
217
|
+
if (!combining && stack)
|
|
218
|
+
state.autoinscribeObject?.(stack);
|
|
219
|
+
if (!combining && stack && state.flavorKnown && !state.flavorKnown.isAware(stack.kind)) {
|
|
220
|
+
const p = state.actor.player;
|
|
221
|
+
const pflags = state.playerState?.pflags ?? p.race.pflags;
|
|
222
|
+
const hasMushroom = pflags.has(PF.KNOW_MUSHROOM) || p.cls.pflags.has(PF.KNOW_MUSHROOM);
|
|
223
|
+
const hasZapper = pflags.has(PF.KNOW_ZAPPER) || p.cls.pflags.has(PF.KNOW_ZAPPER);
|
|
224
|
+
const flavorDeps = state.flavorAwareDeps ?? NOOP_FLAVOR_AWARE_DEPS;
|
|
225
|
+
if (hasMushroom && tvalIsMushroom(stack.tval)) {
|
|
226
|
+
state.flavorKnown.objectFlavorAware(stack.kind, flavorDeps);
|
|
227
|
+
env.onPickup?.("Mushrooms for breakfast!");
|
|
228
|
+
}
|
|
229
|
+
else if (hasZapper && tvalIsZapper(stack.tval)) {
|
|
230
|
+
state.flavorKnown.objectFlavorAware(stack.kind, flavorDeps);
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
/* inven_carry's own "You have %s (%c)." message (obj-gear.c:893-921): describe
|
|
234
|
+
* the MERGED pack stack so the count and slot letter reflect the combined
|
|
235
|
+
* total (e.g. "You have 5 Potions of Cure Light Wounds (a).") rather than the
|
|
236
|
+
* bare floor object ("You have a Potion...").
|
|
237
|
+
*
|
|
238
|
+
* The count is the AGGREGATE across every like stack in the pack
|
|
239
|
+
* (object_pack_total, L908), not this stack's own number, and the letter is
|
|
240
|
+
* the FIRST such stack's - so five flasks split over slots c and f read
|
|
241
|
+
* "You have 5 Flasks of oil (1st c)." Suppressed for charge/recharge items,
|
|
242
|
+
* whose notice belongs to one stack (L899-905); note inven_carry alone omits
|
|
243
|
+
* the object_is_equipped arm of that test, because a just-carried object
|
|
244
|
+
* cannot be equipped. */
|
|
245
|
+
if (stack) {
|
|
246
|
+
/* update_stuff after PU_INVEN (obj-gear.c:889-891), and it happens HERE -
|
|
247
|
+
* before the message, not after the command - because the (%c) below is
|
|
248
|
+
* gear_to_label of the sorted upkeep->inven[] listing. Refresh it late and the
|
|
249
|
+
* letter names the listing as it was before this object joined it. */
|
|
250
|
+
deps.refreshInventory?.();
|
|
251
|
+
let total;
|
|
252
|
+
let first;
|
|
253
|
+
if (packTotalSuppressed(stack)) {
|
|
254
|
+
total = stack.number;
|
|
255
|
+
first = stack;
|
|
256
|
+
}
|
|
257
|
+
else {
|
|
258
|
+
const view = packTotalView(state.gear);
|
|
259
|
+
({ total, first } = objectPackTotal(view, stack, false));
|
|
260
|
+
}
|
|
261
|
+
const name = describeObject(state, stack, ODESC.PREFIX | ODESC.FULL | ODESC.ALTNUM, total);
|
|
262
|
+
/* gear_to_label(p, first) in BOTH arms (L913): the letter names the first
|
|
263
|
+
* like stack even when the total is not an aggregate. */
|
|
264
|
+
const label = first
|
|
265
|
+
? packLabelOf(state, first)
|
|
266
|
+
: gearToLabel(state.gear, handle);
|
|
267
|
+
const suffix = label ? ` (${total > (first?.number ?? total) ? "1st " : ""}${label})` : "";
|
|
268
|
+
env.onPickup?.(`You have ${name}${suffix}.`);
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
/** gear_to_label for an object we hold by reference rather than by handle. */
|
|
272
|
+
function packLabelOf(state, obj) {
|
|
273
|
+
for (const handle of state.gear.pack) {
|
|
274
|
+
if (state.gear.store.get(handle) === obj) {
|
|
275
|
+
return gearToLabel(state.gear, handle);
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
return "";
|
|
279
|
+
}
|
|
280
|
+
/**
|
|
281
|
+
* player_pickup_item: pick up gold, then a specific object (when given) or
|
|
282
|
+
* one chosen from the floor list. Returns the number of objects picked up
|
|
283
|
+
* (the command's energy multiplier).
|
|
284
|
+
*/
|
|
285
|
+
export function playerPickupItem(state, obj, deps) {
|
|
286
|
+
const env = deps.env ?? {};
|
|
287
|
+
const grid = state.actor.grid;
|
|
288
|
+
/* square_know_pile is knowledge (#24); everything here is visible. */
|
|
289
|
+
/* Always pickup gold, effortlessly. */
|
|
290
|
+
playerPickupGold(state, env);
|
|
291
|
+
/* Nothing else to pick up -- return. */
|
|
292
|
+
if (floorPile(state, grid).length === 0)
|
|
293
|
+
return 0;
|
|
294
|
+
/* We're given an object - pick it up. */
|
|
295
|
+
if (obj) {
|
|
296
|
+
if (invenCarryNum(state.gear, obj, deps.constants) > 0) {
|
|
297
|
+
playerPickupAux(state, obj, 0, deps);
|
|
298
|
+
return 1;
|
|
299
|
+
}
|
|
300
|
+
return 0;
|
|
301
|
+
}
|
|
302
|
+
/* Tally objects that can be at least partially picked up. */
|
|
303
|
+
const floorList = floorPile(state, grid).filter((o) => !env.isIgnored?.(o));
|
|
304
|
+
const canPickup = floorList.filter((o) => invenCarryNum(state.gear, o, deps.constants) > 0);
|
|
305
|
+
if (canPickup.length === 0)
|
|
306
|
+
return 0;
|
|
307
|
+
/* One object picks up directly; several go through the menu seam
|
|
308
|
+
* (defaulting to the pile head - one item per 'g' press). */
|
|
309
|
+
let current;
|
|
310
|
+
if (canPickup.length === 1)
|
|
311
|
+
current = canPickup[0];
|
|
312
|
+
else
|
|
313
|
+
current = env.chooseItem?.(canPickup) ?? canPickup[0];
|
|
314
|
+
if (current) {
|
|
315
|
+
playerPickupAux(state, current, 0, deps);
|
|
316
|
+
return 1;
|
|
317
|
+
}
|
|
318
|
+
return 0;
|
|
319
|
+
}
|
|
320
|
+
/**
|
|
321
|
+
* do_autopickup: pick up everything on the player's grid that requires no
|
|
322
|
+
* action - gold always, objects per auto_pickup_okay. Returns the number
|
|
323
|
+
* of objects picked up.
|
|
324
|
+
*/
|
|
325
|
+
export function doAutopickup(state, deps) {
|
|
326
|
+
const env = deps.env ?? {};
|
|
327
|
+
const grid = state.actor.grid;
|
|
328
|
+
if (floorPile(state, grid).length === 0)
|
|
329
|
+
return 0;
|
|
330
|
+
/* Always pickup gold, effortlessly. */
|
|
331
|
+
playerPickupGold(state, env);
|
|
332
|
+
let picked = 0;
|
|
333
|
+
for (const obj of [...floorPile(state, grid)]) {
|
|
334
|
+
/* Ignore all hidden objects and non-objects. */
|
|
335
|
+
if (env.isIgnored?.(obj))
|
|
336
|
+
continue;
|
|
337
|
+
env.disturb?.();
|
|
338
|
+
const autoNum = autoPickupOkay(state, obj, deps);
|
|
339
|
+
if (autoNum) {
|
|
340
|
+
playerPickupAux(state, obj, autoNum, deps);
|
|
341
|
+
picked++;
|
|
342
|
+
}
|
|
343
|
+
}
|
|
344
|
+
return picked;
|
|
345
|
+
}
|
|
346
|
+
/** do_cmd_pickup / do_cmd_autopickup energy: picked * move_energy / 10. */
|
|
347
|
+
function pickupEnergy(state, picked) {
|
|
348
|
+
const cost = Math.trunc((picked * state.z.moveEnergy) / 10);
|
|
349
|
+
return Math.min(cost, state.z.moveEnergy);
|
|
350
|
+
}
|
|
351
|
+
/**
|
|
352
|
+
* Register the pickup commands on the action registry and install the
|
|
353
|
+
* state.autoPickup hook that walkAction runs after a step.
|
|
354
|
+
*/
|
|
355
|
+
export function installPickup(state, registry, deps) {
|
|
356
|
+
/* Rebuild the computed quiver after any pickup that carried something, so
|
|
357
|
+
* ammo lands in the quiver rather than the pack (PU_INVEN; see PickupDeps). */
|
|
358
|
+
const pickedThen = (s, picked) => {
|
|
359
|
+
if (picked > 0)
|
|
360
|
+
deps.refreshInventory?.();
|
|
361
|
+
return pickupEnergy(s, picked);
|
|
362
|
+
};
|
|
363
|
+
registry.register("pickup", (s) => pickedThen(s, playerPickupItem(s, null, deps)));
|
|
364
|
+
registry.register("autopickup", (s) => pickedThen(s, doAutopickup(s, deps)));
|
|
365
|
+
state.autoPickup = (s) => pickedThen(s, doAutopickup(s, deps));
|
|
366
|
+
}
|
|
367
|
+
//# sourceMappingURL=pickup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pickup.js","sourceRoot":"","sources":["../../src/game/pickup.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The running engine, ported from reference/src/player-path.c (Angband 4.2.6):
|
|
3
|
+
* the Christopher J Stuart corridor/open-area running code - run_init,
|
|
4
|
+
* run_test, run_step and see_wall.
|
|
5
|
+
*
|
|
6
|
+
* Once running begins you keep moving until something interesting happens. In
|
|
7
|
+
* a hallway you follow corners; in the open you run straight but stop before
|
|
8
|
+
* entering an enclosed space; alongside a wall you stop before it opens or
|
|
9
|
+
* closes. Every decision is made from the player's memory of the cave (an
|
|
10
|
+
* unknown wall reads like floor), matching upstream exactly.
|
|
11
|
+
*
|
|
12
|
+
* CONTINUATION SEAM: upstream re-queues CMD_RUN after every step via
|
|
13
|
+
* cmdq_push. This port has no blocking input - process_player reads through
|
|
14
|
+
* the injected provider - so run_step pushes the follow-up onto GameState's
|
|
15
|
+
* internal cmdQueue (the cmdq twin), which processPlayer drains before asking
|
|
16
|
+
* the provider. One keypress therefore drives a whole run, and runGameLoop
|
|
17
|
+
* interleaves it with monster and world turns exactly as upstream does.
|
|
18
|
+
*
|
|
19
|
+
* EXTERNAL disturb(): disturb() (below) is exported and called from the upstream
|
|
20
|
+
* disturb() sites outside the per-step run_test checks - a monster becoming
|
|
21
|
+
* easily visible / leaving view (update_mon, game/known.ts), a visible monster
|
|
22
|
+
* acting in view or bursting a door (monster_turn / monster_turn_can_move,
|
|
23
|
+
* game/monster-turn.ts), and the player taking a melee blow (take_hit, wired
|
|
24
|
+
* through game/mon-side.ts; world DoTs and projections wire it in session/game.ts
|
|
25
|
+
* and game/project-player.ts). All are deterministic (no RNG).
|
|
26
|
+
*
|
|
27
|
+
* path_nearest_known / path_nearest_unknown and the pathfinding branch of
|
|
28
|
+
* run_step are wired (W2-003 navigate-up/down, explore, pathfind). DEFERRED
|
|
29
|
+
* (ledgered in game-player-path.yaml): the automatic open-door / tunnel-rubble
|
|
30
|
+
* command pushes on the pathfind branch; the running torch-radius
|
|
31
|
+
* recalculation (PU_TORCH) and the run-into-trap-disarms nuance ride the
|
|
32
|
+
* light / trap layers.
|
|
33
|
+
*/
|
|
34
|
+
import type { Loc } from "../loc.js";
|
|
35
|
+
import type { GameState, PlayerCommand } from "./context.js";
|
|
36
|
+
import type { ActionRegistry } from "./player-turn.js";
|
|
37
|
+
/**
|
|
38
|
+
* disturb(): stop running / pathfinding, cancel any rest, free the path steps
|
|
39
|
+
* and flush the queued continuations. path_dest is deliberately kept so the
|
|
40
|
+
* pathfinding auto-open / auto-tunnel branch can re-issue the travel. The
|
|
41
|
+
* sound and redraw halves ride their subsystems (deferred).
|
|
42
|
+
*/
|
|
43
|
+
export declare function disturb(state: GameState): void;
|
|
44
|
+
/**
|
|
45
|
+
* find_path (player-path.c L1069), the routine do_cmd_pathfind (cmd-cave.c
|
|
46
|
+
* L1563) calls to travel to a clicked grid: A* from start to dest over the
|
|
47
|
+
* player's memory of the cave, with a Chebyshev heuristic (scaled by PF_SCL, so
|
|
48
|
+
* it is admissible - no step can cost less than one move) on a min-heap
|
|
49
|
+
* priority queue and a lazily patched distance array. Returns the steps as
|
|
50
|
+
* forward keypad directions in reverse order, a length of 0 when already at the
|
|
51
|
+
* destination and -1 when it is unreachable.
|
|
52
|
+
*
|
|
53
|
+
* WHY THE A* AND NOT prepare_pfdistances + pfdistances_to_path. Upstream ships
|
|
54
|
+
* both, and its own comment at L1063-L1067 says the two disagree: "the path
|
|
55
|
+
* returned by find_path() may be different than that returned by
|
|
56
|
+
* pfdistances_to_path()" when several paths tie on expected turncount. Both are
|
|
57
|
+
* minimum-cost, so the turncount, the destination and reachability always
|
|
58
|
+
* agree; what differs is WHICH of the equal-cost step sequences comes back, and
|
|
59
|
+
* do_cmd_pathfind gets its answer from this one. So this is a transcription of
|
|
60
|
+
* the A*, down to the comparisons that settle the ties: the sift order inside
|
|
61
|
+
* the heap (z-queue.ts), qp_pushpop_int handing the incoming grid back on a tie
|
|
62
|
+
* with the head (L1281), the ddd iteration order over the eight neighbours, and
|
|
63
|
+
* the "only the LAST feasible neighbour skips the heap" structure below.
|
|
64
|
+
* prepare_pfdistances and pfdistances_to_path stay as they are - they are
|
|
65
|
+
* faithful ports of upstream's other pair and still serve
|
|
66
|
+
* pfdistances_to_turncount, path_nearest_known and path_nearest_unknown.
|
|
67
|
+
*
|
|
68
|
+
* The retry structure is upstream's: try remembered grids only, then any; and
|
|
69
|
+
* within that, forbid known visible traps, then allow them - but the trap retry
|
|
70
|
+
* only happens if a trap actually blocked something (`hitTrap`, L1289), which is
|
|
71
|
+
* why it is tracked rather than inferred.
|
|
72
|
+
*/
|
|
73
|
+
export declare function findPath(state: GameState, start: Loc, dest: Loc): {
|
|
74
|
+
length: number;
|
|
75
|
+
steps: number[];
|
|
76
|
+
};
|
|
77
|
+
/**
|
|
78
|
+
* path_nearest_known: the path to the nearest remembered grid (other than the
|
|
79
|
+
* start) satisfying `pred`, with the same constraint-loosening as find_path.
|
|
80
|
+
* Returns the path and the chosen destination.
|
|
81
|
+
*/
|
|
82
|
+
export declare function pathNearestKnown(state: GameState, start: Loc, pred: (state: GameState, grid: Loc) => boolean): {
|
|
83
|
+
length: number;
|
|
84
|
+
steps: number[];
|
|
85
|
+
dest: Loc;
|
|
86
|
+
};
|
|
87
|
+
/**
|
|
88
|
+
* path_nearest_unknown: the path to the nearest remembered passable grid with
|
|
89
|
+
* an unknown neighbor, or (failing that) the nearest remembered closed door /
|
|
90
|
+
* rubble with an unknown neighbor and a known-passable neighbor to stand on.
|
|
91
|
+
* This is the explore command's target.
|
|
92
|
+
*/
|
|
93
|
+
export declare function pathNearestUnknown(state: GameState, start: Loc): {
|
|
94
|
+
length: number;
|
|
95
|
+
steps: number[];
|
|
96
|
+
dest: Loc;
|
|
97
|
+
};
|
|
98
|
+
/**
|
|
99
|
+
* pathfind_direction_to: the keypad direction from one point to another,
|
|
100
|
+
* preferring diagonals when dx and dy are within a factor of two.
|
|
101
|
+
*/
|
|
102
|
+
export declare function pathfindDirectionTo(from: Loc, to: Loc): number;
|
|
103
|
+
/**
|
|
104
|
+
* run_step: begin a run (real direction), or continue a run / pathfind (dir
|
|
105
|
+
* 0). Moves one grid in the current direction via walkAction (move / FOV /
|
|
106
|
+
* autopickup / trap consequences), decrements the counter and re-queues itself
|
|
107
|
+
* while steps remain. Returns the energy spent (0 stops).
|
|
108
|
+
*/
|
|
109
|
+
export declare function runStep(state: GameState, dir: number): number;
|
|
110
|
+
/** The run command: start (a real direction) or continue (dir 0) a run. */
|
|
111
|
+
export declare function runAction(state: GameState, cmd: PlayerCommand): number;
|
|
112
|
+
/**
|
|
113
|
+
* do_cmd_pathfind: travel to cmd.args.dest (a Loc). Computes the path and
|
|
114
|
+
* walks it, self-continuing through the command queue.
|
|
115
|
+
*/
|
|
116
|
+
export declare function pathfindAction(state: GameState, cmd: PlayerCommand): number;
|
|
117
|
+
/**
|
|
118
|
+
* do_cmd_explore (cmd-cave.c:1500): travel toward the nearest unexplored area.
|
|
119
|
+
*
|
|
120
|
+
* The port had only the pathfinding half. Every one of upstream's four gates
|
|
121
|
+
* was missing, so explore ran while confused, ran out of a web for free, and
|
|
122
|
+
* ran with monsters in view - and said nothing when there was nowhere to go.
|
|
123
|
+
* The navigate-stair commands next door already share this preamble; upstream
|
|
124
|
+
* repeats it verbatim in all three (do_cmd_navigate_down L1408, _up L1454).
|
|
125
|
+
*/
|
|
126
|
+
export declare function exploreAction(state: GameState, _cmd: PlayerCommand): number;
|
|
127
|
+
/** do_cmd_navigate_down (cmd-cave.c:1408): path to nearest known downstairs. */
|
|
128
|
+
export declare function navigateDownAction(state: GameState, _cmd: PlayerCommand): number;
|
|
129
|
+
/** do_cmd_navigate_up (cmd-cave.c:1454): path to nearest known upstairs. */
|
|
130
|
+
export declare function navigateUpAction(state: GameState, _cmd: PlayerCommand): number;
|
|
131
|
+
/** Register the run / pathfind / explore / navigate actions over their stubs. */
|
|
132
|
+
export declare function installRunning(registry: ActionRegistry): void;
|
|
133
|
+
//# sourceMappingURL=player-path.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"player-path.d.ts","sourceRoot":"","sources":["../../src/game/player-path.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAGH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AASrC,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAY,MAAM,cAAc,CAAC;AAevE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAiCvD;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,CAW9C;AAooBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,QAAQ,CACtB,KAAK,EAAE,SAAS,EAChB,KAAK,EAAE,GAAG,EACV,IAAI,EAAE,GAAG,GACR;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAA;CAAE,CAiLrC;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,SAAS,EAChB,KAAK,EAAE,GAAG,EACV,IAAI,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,KAAK,OAAO,GAC7C;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,IAAI,EAAE,GAAG,CAAA;CAAE,CAkChD;AAqCD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,SAAS,EAChB,KAAK,EAAE,GAAG,GACT;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,IAAI,EAAE,GAAG,CAAA;CAAE,CA2DhD;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG,MAAM,CAW9D;AA8ED;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAmD7D;AAED,2EAA2E;AAC3E,wBAAgB,SAAS,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,aAAa,GAAG,MAAM,CAmBtE;AAoBD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,aAAa,GAAG,MAAM,CAI3E;AAED;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,aAAa,GAAG,MAAM,CA0B3E;AAqDD,gFAAgF;AAChF,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,SAAS,EAChB,IAAI,EAAE,aAAa,GAClB,MAAM,CAMR;AAED,4EAA4E;AAC5E,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,aAAa,GAAG,MAAM,CAM9E;AAED,iFAAiF;AACjF,wBAAgB,cAAc,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI,CAM7D"}
|