@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,524 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Floor object piles, ported from reference/src/obj-pile.c (Angband 4.2.6):
|
|
3
|
+
* the live-cave half that lets squares carry objects - floor_carry,
|
|
4
|
+
* drop_near (with drop_find_grid's scored placement scan and the artifact
|
|
5
|
+
* rescue walk), floor_object_for_use, and the pile primitives. Piles live on
|
|
6
|
+
* the GameState (state.floor, keyed by grid index) with the newest object at
|
|
7
|
+
* the head, exactly as upstream's square->obj linked list (pile_insert
|
|
8
|
+
* prepends).
|
|
9
|
+
*
|
|
10
|
+
* Unported-subsystem seams are grouped on FloorEnv with inert defaults:
|
|
11
|
+
* - isIgnored (ignore_item_ok, obj-ignore.c, task #24): nothing is ignored,
|
|
12
|
+
* so the oldest-ignored eviction never fires and *note stays truthful.
|
|
13
|
+
* - isTrap (square_istrap, task #21): no traps, so drops may land anywhere
|
|
14
|
+
* a floor grid allows.
|
|
15
|
+
* - birthStacking (OPT birth_stacking): defaults true as shipped.
|
|
16
|
+
* - onBreak / onDrop / onNote: message and redraw hooks (UI layer).
|
|
17
|
+
*
|
|
18
|
+
* DEFERRED with their subsystems (ledgered in parity/ledger/game-floor.yaml):
|
|
19
|
+
* push_object (needs doors/traps interplay), the known-object shadow cave
|
|
20
|
+
* (player->cave, knowledge #24), list_object/delist_object oidx bookkeeping
|
|
21
|
+
* (the pile map is the object list), and mimicked-object handling.
|
|
22
|
+
*/
|
|
23
|
+
|
|
24
|
+
import type { Loc } from "../loc.js";
|
|
25
|
+
import { loc, locEq, locSum, randLoc } from "../loc.js";
|
|
26
|
+
import { ORIGIN } from "../generated/index.js";
|
|
27
|
+
import type { GameObject, StackLimits } from "../obj/object.js";
|
|
28
|
+
import { OSTACK_FLOOR, objectAbsorb, objectMergeable, tvalIsMoney } from "../obj/object.js";
|
|
29
|
+
import { los } from "../world/view.js";
|
|
30
|
+
import type { GameState } from "./context.js";
|
|
31
|
+
import { objectIsInQuiver, objectSplit } from "./gear.js";
|
|
32
|
+
|
|
33
|
+
/** Unported-subsystem hooks for the floor routines; every slot is optional. */
|
|
34
|
+
export interface FloorEnv {
|
|
35
|
+
/** ignore_item_ok (obj-ignore.c, #24). Default: nothing is ignored. */
|
|
36
|
+
isIgnored?: (obj: GameObject) => boolean;
|
|
37
|
+
/** square_istrap (trap.c, #21). Default: no traps. */
|
|
38
|
+
isTrap?: (grid: Loc) => boolean;
|
|
39
|
+
/** OPT(player, birth_stacking). Default true (shipped default). */
|
|
40
|
+
birthStacking?: boolean;
|
|
41
|
+
/** The dropped object broke / disappeared (message hook). */
|
|
42
|
+
onBreak?: (obj: GameObject, broke: boolean) => void;
|
|
43
|
+
/** An object landed on the floor (message / redraw hook). */
|
|
44
|
+
onDrop?: (obj: GameObject, grid: Loc) => void;
|
|
45
|
+
/** Quiver stacking limits; floor stacks never read them (shipped values). */
|
|
46
|
+
limits?: StackLimits;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/** The shipped constants.txt quiver limits (unused by OSTACK_FLOOR checks). */
|
|
50
|
+
const DEFAULT_LIMITS: StackLimits = { quiverSlotSize: 40, thrownQuiverMult: 5 };
|
|
51
|
+
|
|
52
|
+
/** The state.floor key for a grid. */
|
|
53
|
+
function gridIdx(state: GameState, grid: Loc): number {
|
|
54
|
+
return grid.y * state.chunk.width + grid.x;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/** square_object(c, grid): the pile at a grid, head (newest) first. */
|
|
58
|
+
export function floorPile(
|
|
59
|
+
state: GameState,
|
|
60
|
+
grid: Loc,
|
|
61
|
+
): readonly GameObject[] {
|
|
62
|
+
return state.floor.get(gridIdx(state, grid)) ?? [];
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* pile_contains (obj-pile.c L268). The pile is an array here, so the walk down
|
|
67
|
+
* obj->next is indexOf; kept as a named function so the intent (and the C
|
|
68
|
+
* symbol) is visible where the pile identity check matters.
|
|
69
|
+
*/
|
|
70
|
+
export function pileContains(
|
|
71
|
+
pile: readonly GameObject[],
|
|
72
|
+
obj: GameObject,
|
|
73
|
+
): boolean {
|
|
74
|
+
return pile.indexOf(obj) >= 0;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* square_holds_object (cave-square.c L1015): whether this exact object is in
|
|
79
|
+
* the pile at `grid`. Identity, not equality - it answers "is this the object I
|
|
80
|
+
* am holding a reference to, still here".
|
|
81
|
+
*/
|
|
82
|
+
export function squareHoldsObject(
|
|
83
|
+
state: GameState,
|
|
84
|
+
grid: Loc,
|
|
85
|
+
obj: GameObject,
|
|
86
|
+
): boolean {
|
|
87
|
+
if (!state.chunk.inBounds(grid)) return false;
|
|
88
|
+
return pileContains(floorPile(state, grid), obj);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* item_is_available (obj-pile.c L1427): the object is somewhere the player can
|
|
93
|
+
* act on it - carried, or in the pile underfoot. Upstream's do_cmd_fire uses it
|
|
94
|
+
* to reject a command whose ammo is no longer there (player-attack.c:1338), the
|
|
95
|
+
* case where two fire commands were queued for the same stack.
|
|
96
|
+
*/
|
|
97
|
+
export function itemIsAvailable(state: GameState, obj: GameObject): boolean {
|
|
98
|
+
/* object_is_carried(player, obj) = pile_contains(p->gear, obj). The port's
|
|
99
|
+
* gear is a handle map, so membership is a scan of its values. */
|
|
100
|
+
for (const held of state.gear.store.values()) {
|
|
101
|
+
if (held === obj) return true;
|
|
102
|
+
}
|
|
103
|
+
return squareHoldsObject(state, state.actor.grid, obj);
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
/**
|
|
107
|
+
* pile_last_item (obj-pile.c L248): the tail of a pile, or null when empty.
|
|
108
|
+
* Upstream's two consumers (gear_last_item -> combine_pack, obj-ignore.c
|
|
109
|
+
* ignore_drop) both use it to walk gear BACKWARDS; here that is a reversed
|
|
110
|
+
* array walk (game/gear.ts combinePack, game/ignore-cmd.ts).
|
|
111
|
+
*/
|
|
112
|
+
export function pileLastItem(
|
|
113
|
+
pile: readonly GameObject[],
|
|
114
|
+
): GameObject | null {
|
|
115
|
+
return pile.length > 0 ? (pile[pile.length - 1] as GameObject) : null;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
/** object_floor_t (obj-pile.h L43): scan_floor's mode bits. */
|
|
119
|
+
export const OFLOOR = {
|
|
120
|
+
NONE: 0x00,
|
|
121
|
+
/** Verify the item tester. */
|
|
122
|
+
TEST: 0x01,
|
|
123
|
+
/** Sensed or known items only. */
|
|
124
|
+
SENSE: 0x02,
|
|
125
|
+
/** Only the top item. */
|
|
126
|
+
TOP: 0x04,
|
|
127
|
+
/** Visible items only. */
|
|
128
|
+
VISIBLE: 0x08,
|
|
129
|
+
} as const;
|
|
130
|
+
|
|
131
|
+
/** get_item mode bits (game-input.h L28-40), the subset scan_items reads. */
|
|
132
|
+
export const USE_MODE = {
|
|
133
|
+
EQUIP: 0x0001,
|
|
134
|
+
INVEN: 0x0002,
|
|
135
|
+
FLOOR: 0x0004,
|
|
136
|
+
QUIVER: 0x0008,
|
|
137
|
+
} as const;
|
|
138
|
+
|
|
139
|
+
/** item_tester: null accepts everything (object_test, obj-util.c). */
|
|
140
|
+
export type ItemTester = ((obj: GameObject) => boolean) | null;
|
|
141
|
+
|
|
142
|
+
/**
|
|
143
|
+
* object_test (obj-util.c L386): null accepts anything except gold, a real
|
|
144
|
+
* tester still must reject gold too. Every OFLOOR_TEST / scan_items caller
|
|
145
|
+
* routes through this rather than the tester alone, so a null-tester scan
|
|
146
|
+
* (e.g. a future "drop"/"pickup" get_item) does not offer gold objects the
|
|
147
|
+
* way a bare `tester(obj)` call would.
|
|
148
|
+
*/
|
|
149
|
+
function objectTest(tester: ItemTester, obj: GameObject | null | undefined): boolean {
|
|
150
|
+
if (!obj) return false;
|
|
151
|
+
if (tvalIsMoney(obj.tval)) return false;
|
|
152
|
+
return !tester || tester(obj);
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
/**
|
|
156
|
+
* scan_floor (obj-pile.c L1295): the objects at the player's grid that pass
|
|
157
|
+
* `mode`, newest first, capped at maxSize.
|
|
158
|
+
*
|
|
159
|
+
* OFLOOR_SENSE (`!obj->known`) has no counterpart: this port has no per-object
|
|
160
|
+
* known twin (see the module header), so nothing is dropped for being unsensed.
|
|
161
|
+
* OFLOOR_VISIBLE is `!is_unknown(obj) && ignore_item_ok(p, obj) -> skip`; with
|
|
162
|
+
* no unknown_item_kind marker, is_unknown is always false and the term reduces
|
|
163
|
+
* to the ignore check, which rides env.isIgnored.
|
|
164
|
+
*/
|
|
165
|
+
export function scanFloor(
|
|
166
|
+
state: GameState,
|
|
167
|
+
maxSize: number,
|
|
168
|
+
mode: number,
|
|
169
|
+
tester: ItemTester,
|
|
170
|
+
env: FloorEnv = {},
|
|
171
|
+
): GameObject[] {
|
|
172
|
+
const out: GameObject[] = [];
|
|
173
|
+
if (!state.chunk.inBounds(state.actor.grid)) return out;
|
|
174
|
+
for (const obj of floorPile(state, state.actor.grid)) {
|
|
175
|
+
/* Enforce limit. */
|
|
176
|
+
if (out.length >= maxSize) break;
|
|
177
|
+
/* Item tester. */
|
|
178
|
+
if (mode & OFLOOR.TEST && !objectTest(tester, obj)) continue;
|
|
179
|
+
/* Visible. */
|
|
180
|
+
if (mode & OFLOOR.VISIBLE && (env.isIgnored?.(obj) ?? false)) continue;
|
|
181
|
+
out.push(obj);
|
|
182
|
+
/* Only one. */
|
|
183
|
+
if (mode & OFLOOR.TOP) break;
|
|
184
|
+
}
|
|
185
|
+
return out;
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
/**
|
|
189
|
+
* scan_items (obj-pile.c L1376): the "valid" objects a get_item picker over
|
|
190
|
+
* `mode` may offer, in upstream's source order - inventory, then equipment,
|
|
191
|
+
* then quiver, then the floor. ORDER IS BEHAVIOUR: it decides which letter each
|
|
192
|
+
* item gets. The floor pass is scan_floor with
|
|
193
|
+
* OFLOOR_TEST | OFLOOR_SENSE | OFLOOR_VISIBLE (L1411).
|
|
194
|
+
*
|
|
195
|
+
* Upstream stops at item_max across ALL passes; that cap is kept.
|
|
196
|
+
*
|
|
197
|
+
* The inventory pass walks p->upkeep->inven[], which calc_inventory fills
|
|
198
|
+
* DISJOINTLY from p->upkeep->quiver[] (player-calcs.c L1023: each non-equipped
|
|
199
|
+
* gear item is assigned to exactly one of the two). This port's gear.pack is
|
|
200
|
+
* the raw gear list and keeps quiver members, so the inven pass excludes them
|
|
201
|
+
* with objectIsInQuiver - otherwise USE_INVEN | USE_QUIVER would list a quivered
|
|
202
|
+
* stack twice and shift every later letter.
|
|
203
|
+
*/
|
|
204
|
+
export function scanItems(
|
|
205
|
+
state: GameState,
|
|
206
|
+
itemMax: number,
|
|
207
|
+
mode: number,
|
|
208
|
+
tester: ItemTester,
|
|
209
|
+
env: FloorEnv = {},
|
|
210
|
+
): GameObject[] {
|
|
211
|
+
const out: GameObject[] = [];
|
|
212
|
+
const player = state.actor.player;
|
|
213
|
+
const test = (obj: GameObject | null | undefined): boolean => objectTest(tester, obj);
|
|
214
|
+
|
|
215
|
+
if (mode & USE_MODE.INVEN) {
|
|
216
|
+
for (const handle of state.gear.pack) {
|
|
217
|
+
if (out.length >= itemMax) break;
|
|
218
|
+
if (objectIsInQuiver(state.gear, handle)) continue;
|
|
219
|
+
const obj = state.gear.store.get(handle);
|
|
220
|
+
if (test(obj)) out.push(obj as GameObject);
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
if (mode & USE_MODE.EQUIP) {
|
|
224
|
+
for (let i = 0; i < player.body.count; i++) {
|
|
225
|
+
if (out.length >= itemMax) break;
|
|
226
|
+
const obj = state.gear.store.get(player.equipment[i] ?? 0);
|
|
227
|
+
if (test(obj)) out.push(obj as GameObject);
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
if (mode & USE_MODE.QUIVER) {
|
|
231
|
+
for (const handle of state.gear.quiver ?? []) {
|
|
232
|
+
if (out.length >= itemMax) break;
|
|
233
|
+
const obj = state.gear.store.get(handle);
|
|
234
|
+
if (test(obj)) out.push(obj as GameObject);
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
if (mode & USE_MODE.FLOOR) {
|
|
238
|
+
const floor = scanFloor(
|
|
239
|
+
state,
|
|
240
|
+
state.z.floorSize,
|
|
241
|
+
OFLOOR.TEST | OFLOOR.SENSE | OFLOOR.VISIBLE,
|
|
242
|
+
tester,
|
|
243
|
+
env,
|
|
244
|
+
);
|
|
245
|
+
for (const obj of floor) {
|
|
246
|
+
if (out.length >= itemMax) break;
|
|
247
|
+
out.push(obj);
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
return out;
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
/** pile_insert: prepend an object to the pile at a grid. */
|
|
254
|
+
function pileInsert(state: GameState, grid: Loc, obj: GameObject): void {
|
|
255
|
+
const key = gridIdx(state, grid);
|
|
256
|
+
const pile = state.floor.get(key);
|
|
257
|
+
if (pile) pile.unshift(obj);
|
|
258
|
+
else state.floor.set(key, [obj]);
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
/**
|
|
262
|
+
* square_excise_object / pile_excise: remove an object from the pile at a
|
|
263
|
+
* grid. Returns whether it was found.
|
|
264
|
+
*
|
|
265
|
+
* square_set_obj (cave-square.c:1291) has no counterpart: upstream stores a
|
|
266
|
+
* `square->obj` linked-list HEAD, and its only two calls both set it to NULL
|
|
267
|
+
* (cave-square.c:1035 inside square_excise_pile, obj-pile.c:1201 inside
|
|
268
|
+
* push_object). Here the pile IS the Map entry, so emptying it is the delete
|
|
269
|
+
* below - and square_excise_pile (cave-square.c:1031) is the caller-side loop
|
|
270
|
+
* `for (obj of [...floorPile(...)]) floorExcise(...)`.
|
|
271
|
+
*/
|
|
272
|
+
export function floorExcise(
|
|
273
|
+
state: GameState,
|
|
274
|
+
grid: Loc,
|
|
275
|
+
obj: GameObject,
|
|
276
|
+
): boolean {
|
|
277
|
+
const key = gridIdx(state, grid);
|
|
278
|
+
const pile = state.floor.get(key);
|
|
279
|
+
if (!pile) return false;
|
|
280
|
+
const at = pile.indexOf(obj);
|
|
281
|
+
if (at < 0) return false;
|
|
282
|
+
pile.splice(at, 1);
|
|
283
|
+
if (pile.length === 0) state.floor.delete(key);
|
|
284
|
+
return true;
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
/** floor_get_oldest_ignored: the last (oldest) ignored object at a grid. */
|
|
288
|
+
function floorGetOldestIgnored(
|
|
289
|
+
state: GameState,
|
|
290
|
+
grid: Loc,
|
|
291
|
+
env: FloorEnv,
|
|
292
|
+
): GameObject | null {
|
|
293
|
+
if (!env.isIgnored) return null;
|
|
294
|
+
const pile = floorPile(state, grid);
|
|
295
|
+
let ignore: GameObject | null = null;
|
|
296
|
+
for (const obj of pile) {
|
|
297
|
+
if (env.isIgnored(obj)) ignore = obj;
|
|
298
|
+
}
|
|
299
|
+
return ignore;
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
/**
|
|
303
|
+
* floor_carry: let the floor at a grid carry an object - merge into a
|
|
304
|
+
* compatible stack, or add to the pile if it has room (evicting the oldest
|
|
305
|
+
* ignored object when full). Returns false when the square can't take it;
|
|
306
|
+
* the caller deals with the object.
|
|
307
|
+
*/
|
|
308
|
+
export function floorCarry(
|
|
309
|
+
state: GameState,
|
|
310
|
+
grid: Loc,
|
|
311
|
+
drop: GameObject,
|
|
312
|
+
env: FloorEnv = {},
|
|
313
|
+
/**
|
|
314
|
+
* floor_carry's `bool *note` (obj-pile.c:906), an in/out box: cleared when the
|
|
315
|
+
* drop merged into a pile the player IGNORES, so drop_near knows the landing
|
|
316
|
+
* is not worth mentioning (:927-930). Omit it when the caller does not care.
|
|
317
|
+
*/
|
|
318
|
+
note?: { value: boolean },
|
|
319
|
+
): boolean {
|
|
320
|
+
const ignore = floorGetOldestIgnored(state, grid, env);
|
|
321
|
+
|
|
322
|
+
/* Fail if the square can't hold objects. */
|
|
323
|
+
if (!state.chunk.isObjectHolding(grid)) return false;
|
|
324
|
+
|
|
325
|
+
/* Scan objects in that grid for combination. */
|
|
326
|
+
const pile = floorPile(state, grid);
|
|
327
|
+
const limits = env.limits ?? DEFAULT_LIMITS;
|
|
328
|
+
let n = 0;
|
|
329
|
+
for (const obj of pile) {
|
|
330
|
+
if (objectMergeable(obj, drop, OSTACK_FLOOR, limits)) {
|
|
331
|
+
objectAbsorb(obj, drop, ORIGIN.MIXED);
|
|
332
|
+
/* square_note_spot when in view (obj-pile.c:922-925): the port's shell
|
|
333
|
+
* runs noteSpots(state) after every action (game/known.ts), so the pile is
|
|
334
|
+
* noted without a hook here - deliberately not a seam nothing wires. */
|
|
335
|
+
/* Don't mention if the merged stack is ignored (:927-930). */
|
|
336
|
+
if (note && (env.isIgnored?.(obj) ?? false)) note.value = false;
|
|
337
|
+
return true;
|
|
338
|
+
}
|
|
339
|
+
n++;
|
|
340
|
+
}
|
|
341
|
+
|
|
342
|
+
/* The stack is already too large. */
|
|
343
|
+
if (n >= state.z.floorSize || (!((env.birthStacking ?? state.options?.get("birth_stacking") ?? true)) && n)) {
|
|
344
|
+
/* Delete the oldest ignored object. */
|
|
345
|
+
if (ignore) floorExcise(state, grid, ignore);
|
|
346
|
+
else return false;
|
|
347
|
+
}
|
|
348
|
+
|
|
349
|
+
/* Location; forget monster. */
|
|
350
|
+
drop.grid = grid;
|
|
351
|
+
drop.heldMIdx = 0;
|
|
352
|
+
|
|
353
|
+
/* Link to the first object in the pile. */
|
|
354
|
+
pileInsert(state, grid, drop);
|
|
355
|
+
return true;
|
|
356
|
+
}
|
|
357
|
+
|
|
358
|
+
/**
|
|
359
|
+
* drop_find_grid: find a grid near the given one for an object to fall on -
|
|
360
|
+
* the scored 7x7 scan (close and uncluttered wins, ties break one_in_2),
|
|
361
|
+
* then the artifact rescue walk when nothing scores. Returns the grid to
|
|
362
|
+
* drop at (the input grid when no better one is found).
|
|
363
|
+
*/
|
|
364
|
+
export function dropFindGrid(
|
|
365
|
+
state: GameState,
|
|
366
|
+
drop: GameObject,
|
|
367
|
+
preferPile: boolean,
|
|
368
|
+
start: Loc,
|
|
369
|
+
env: FloorEnv = {},
|
|
370
|
+
): Loc {
|
|
371
|
+
const c = state.chunk;
|
|
372
|
+
let bestScore = -1;
|
|
373
|
+
let best = start;
|
|
374
|
+
|
|
375
|
+
/* Scan local grids. */
|
|
376
|
+
for (let dy = -3; dy <= 3; dy++) {
|
|
377
|
+
for (let dx = -3; dx <= 3; dx++) {
|
|
378
|
+
const dist = dy * dy + dx * dx;
|
|
379
|
+
const tryGrid = locSum(start, loc(dx, dy));
|
|
380
|
+
|
|
381
|
+
/* Lots of reasons to say no. */
|
|
382
|
+
if (
|
|
383
|
+
dist > 10 ||
|
|
384
|
+
!c.inBoundsFully(tryGrid) ||
|
|
385
|
+
!los(c, start, tryGrid) ||
|
|
386
|
+
!c.isFloor(tryGrid) ||
|
|
387
|
+
(env.isTrap ? env.isTrap(tryGrid) : false)
|
|
388
|
+
) {
|
|
389
|
+
continue;
|
|
390
|
+
}
|
|
391
|
+
|
|
392
|
+
/* Analyse the grid for carrying the new object. */
|
|
393
|
+
let combine = false;
|
|
394
|
+
let numShown = 0;
|
|
395
|
+
let numIgnored = 0;
|
|
396
|
+
for (const obj of floorPile(state, tryGrid)) {
|
|
397
|
+
if (objectMergeable(obj, drop, OSTACK_FLOOR, env.limits ?? DEFAULT_LIMITS)) {
|
|
398
|
+
combine = true;
|
|
399
|
+
}
|
|
400
|
+
if (env.isIgnored?.(obj)) numIgnored++;
|
|
401
|
+
else numShown++;
|
|
402
|
+
}
|
|
403
|
+
if (!combine) numShown++;
|
|
404
|
+
|
|
405
|
+
/* Disallow if the stack size is too big. */
|
|
406
|
+
if (
|
|
407
|
+
(!((env.birthStacking ?? state.options?.get("birth_stacking") ?? true)) && numShown > 1) ||
|
|
408
|
+
(numShown + numIgnored > state.z.floorSize &&
|
|
409
|
+
!floorGetOldestIgnored(state, tryGrid, env))
|
|
410
|
+
) {
|
|
411
|
+
continue;
|
|
412
|
+
}
|
|
413
|
+
|
|
414
|
+
/* Score by how close and how full the grid is. */
|
|
415
|
+
const score = 1000 - (dist + (preferPile ? 0 : numShown * 5));
|
|
416
|
+
if (score < bestScore || (score === bestScore && state.rng.oneIn(2))) {
|
|
417
|
+
continue;
|
|
418
|
+
}
|
|
419
|
+
bestScore = score;
|
|
420
|
+
best = tryGrid;
|
|
421
|
+
}
|
|
422
|
+
}
|
|
423
|
+
|
|
424
|
+
/* Return if we have a score, otherwise fail or try harder for artifacts. */
|
|
425
|
+
if (bestScore >= 0) return best;
|
|
426
|
+
if (!drop.artifact) return start;
|
|
427
|
+
|
|
428
|
+
for (let i = 0; i < 2000; i++) {
|
|
429
|
+
/* Bounce from grid to grid, then go fully random, until an empty one. */
|
|
430
|
+
if (i < 1000) {
|
|
431
|
+
best = randLoc(state.rng, best, 1, 1);
|
|
432
|
+
best = loc(
|
|
433
|
+
Math.max(0, Math.min(best.x, c.width - 1)),
|
|
434
|
+
Math.max(0, Math.min(best.y, c.height - 1)),
|
|
435
|
+
);
|
|
436
|
+
} else {
|
|
437
|
+
best = loc(state.rng.randint0(c.width), state.rng.randint0(c.height));
|
|
438
|
+
}
|
|
439
|
+
if (squareCanPutItem(state, best, env)) return best;
|
|
440
|
+
}
|
|
441
|
+
return start;
|
|
442
|
+
}
|
|
443
|
+
|
|
444
|
+
/** square_canputitem: floor that holds objects, no trap, no pile yet. */
|
|
445
|
+
export function squareCanPutItem(
|
|
446
|
+
state: GameState,
|
|
447
|
+
grid: Loc,
|
|
448
|
+
env: FloorEnv = {},
|
|
449
|
+
): boolean {
|
|
450
|
+
if (!state.chunk.inBounds(grid)) return false;
|
|
451
|
+
if (!state.chunk.isObjectHolding(grid)) return false;
|
|
452
|
+
if (env.isTrap?.(grid)) return false;
|
|
453
|
+
return floorPile(state, grid).length === 0;
|
|
454
|
+
}
|
|
455
|
+
|
|
456
|
+
/**
|
|
457
|
+
* drop_near: let an object fall to the ground at or near a location.
|
|
458
|
+
* `chance` is the percentage chance the item disappears instead (breakage
|
|
459
|
+
* on a thrown object); artifacts never break. Returns the grid the object
|
|
460
|
+
* landed on, or null when it broke or the floor failed to carry it.
|
|
461
|
+
*/
|
|
462
|
+
export function dropNear(
|
|
463
|
+
state: GameState,
|
|
464
|
+
drop: GameObject,
|
|
465
|
+
chance: number,
|
|
466
|
+
grid: Loc,
|
|
467
|
+
/**
|
|
468
|
+
* drop_near's `verbose` (obj-pile.c:1129), in its upstream position. When set
|
|
469
|
+
* and the object is not ignored, a landing on the PLAYER'S OWN grid announces
|
|
470
|
+
* "You feel something roll beneath your feet." (:1152-1154).
|
|
471
|
+
*
|
|
472
|
+
* The port used to have no such parameter, and `preferPile` sat in this slot -
|
|
473
|
+
* so several call sites were passing the C's verbose argument as preferPile.
|
|
474
|
+
* That is not cosmetic: prefer_pile drops drop_find_grid's penalty for mixing
|
|
475
|
+
* item types in one square, so the wrong value lands objects on different
|
|
476
|
+
* grids from upstream.
|
|
477
|
+
*/
|
|
478
|
+
verbose: boolean,
|
|
479
|
+
preferPile: boolean,
|
|
480
|
+
env: FloorEnv = {},
|
|
481
|
+
): Loc | null {
|
|
482
|
+
/* dont_ignore = verbose && !ignore_item_ok(player, *dropped) (:1132). */
|
|
483
|
+
const note = { value: verbose && !(env.isIgnored?.(drop) ?? false) };
|
|
484
|
+
|
|
485
|
+
/* Handle normal breakage. */
|
|
486
|
+
if (!drop.artifact && state.rng.randint0(100) < chance) {
|
|
487
|
+
env.onBreak?.(drop, true);
|
|
488
|
+
return null;
|
|
489
|
+
}
|
|
490
|
+
|
|
491
|
+
/* Find the best grid and drop the item, destroying if there's no space. */
|
|
492
|
+
const best = dropFindGrid(state, drop, preferPile, grid, env);
|
|
493
|
+
if (floorCarry(state, best, drop, env, note)) {
|
|
494
|
+
env.onDrop?.(drop, best);
|
|
495
|
+
/* square(c, best)->mon < 0 is the player's own grid (:1152). */
|
|
496
|
+
if (note.value && locEq(best, state.actor.grid)) {
|
|
497
|
+
state.msg?.("You feel something roll beneath your feet.");
|
|
498
|
+
}
|
|
499
|
+
return best;
|
|
500
|
+
}
|
|
501
|
+
env.onBreak?.(drop, false);
|
|
502
|
+
return null;
|
|
503
|
+
}
|
|
504
|
+
|
|
505
|
+
/**
|
|
506
|
+
* floor_object_for_use: detach `num` items from a floor stack for use -
|
|
507
|
+
* split off a part, or excise the whole object when it is all taken.
|
|
508
|
+
* Returns the detached object and whether none is left on the floor.
|
|
509
|
+
*/
|
|
510
|
+
export function floorObjectForUse(
|
|
511
|
+
state: GameState,
|
|
512
|
+
obj: GameObject,
|
|
513
|
+
num: number,
|
|
514
|
+
): { usable: GameObject; noneLeft: boolean } {
|
|
515
|
+
num = Math.min(num, obj.number);
|
|
516
|
+
if (obj.number > num) {
|
|
517
|
+
const usable = objectSplit(obj, num);
|
|
518
|
+
usable.grid = null;
|
|
519
|
+
return { usable, noneLeft: false };
|
|
520
|
+
}
|
|
521
|
+
if (obj.grid) floorExcise(state, obj.grid, obj);
|
|
522
|
+
obj.grid = null;
|
|
523
|
+
return { usable: obj, noneLeft: true };
|
|
524
|
+
}
|