@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,645 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The teleport-family general effect handlers, ported from
|
|
3
|
+
* reference/src/effect-handler-general.c (Angband 4.2.6): EF_TELEPORT (L2507),
|
|
4
|
+
* EF_TELEPORT_TO (L2703), EF_TELEPORT_LEVEL (L2834) and the level-regenerating
|
|
5
|
+
* EF_ALTER_REALITY (L1184). Like the other
|
|
6
|
+
* game-layer effect handlers they mutate the live GameState (moving the player
|
|
7
|
+
* or a monster across the level), so they live in game/ and register into the
|
|
8
|
+
* EffectRegistry from here (registerTeleportHandlers), reading their game
|
|
9
|
+
* environment from context.env.game (effect-game-env.ts) and no-opping when it
|
|
10
|
+
* is absent.
|
|
11
|
+
*
|
|
12
|
+
* The geometry is ported faithfully: EF_TELEPORT scores every interior grid by
|
|
13
|
+
* how close its distance from the start is to the desired distance (avoiding
|
|
14
|
+
* vault grids unless nothing else is reachable), and EF_TELEPORT_TO rejection-
|
|
15
|
+
* samples a nearby legal grid, widening its search when it cannot find one.
|
|
16
|
+
* has_teleport_destination_prereqs is the shared legality test. The distance
|
|
17
|
+
* jitter (one_in_(2)) and the final pick (randint0) draw from the state RNG in
|
|
18
|
+
* upstream order, so a seeded run reproduces the destination exactly.
|
|
19
|
+
*
|
|
20
|
+
* The subsystems these handlers touch that are not modelled yet are reached
|
|
21
|
+
* through the injected TeleportEnv (env.teleport) with inert defaults, so the
|
|
22
|
+
* ported logic is exact where the substrate exists and simply skips what does
|
|
23
|
+
* not: player_handle_post_move / handle_stuff (FOV refresh), the OF_NO_TELEPORT
|
|
24
|
+
* curse and its learning, monster_target_monster (monster-vs-monster spells,
|
|
25
|
+
* #19), the Dimension Door aim prompt (targeting, #24), the trap / glyph / web /
|
|
26
|
+
* damaging-terrain destination predicates (traps #21, terrain), and
|
|
27
|
+
* dungeon_get_next_level / dungeon_change_level (level change, #23). Arena,
|
|
28
|
+
* decoy, and target state use their live GameState counterparts. Sound and the
|
|
29
|
+
* monster "puzzled" message are omitted and ledgered.
|
|
30
|
+
*
|
|
31
|
+
* teleportMonster is the concrete backing for the project_m `teleport` hook
|
|
32
|
+
* (game/project-monster.ts) deferred there: a monster teleported a fixed number
|
|
33
|
+
* of grids by an area effect.
|
|
34
|
+
*/
|
|
35
|
+
|
|
36
|
+
import { EF, SQUARE } from "../generated/index.js";
|
|
37
|
+
import { distance, loc, randLoc } from "../loc.js";
|
|
38
|
+
import type { Loc } from "../loc.js";
|
|
39
|
+
import type {
|
|
40
|
+
EffectHandler,
|
|
41
|
+
EffectHandlerContext,
|
|
42
|
+
EffectRegistry,
|
|
43
|
+
} from "../effects/interpreter.js";
|
|
44
|
+
import { deleteMonster, monsterSwap, movePlayer } from "./context.js";
|
|
45
|
+
import type { GameState } from "./context.js";
|
|
46
|
+
import { gameEnv } from "./effect-game-env.js";
|
|
47
|
+
import {
|
|
48
|
+
caveFindDecoy,
|
|
49
|
+
destroyDecoy,
|
|
50
|
+
monsterIsDecoyed,
|
|
51
|
+
} from "./effect-mon-origin.js";
|
|
52
|
+
import { targetSetLocation } from "./target.js";
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* The teleport-family hooks and unmodelled-subsystem seams, grouped on the
|
|
56
|
+
* game effect environment (effect-game-env.ts GameEffectEnv.teleport). Every
|
|
57
|
+
* field is optional; an absent field takes the inert default noted on it.
|
|
58
|
+
*/
|
|
59
|
+
export interface TeleportEnv {
|
|
60
|
+
/** player_of_has(OF_NO_TELEPORT): a teleport-forbidding curse. Default off. */
|
|
61
|
+
hasNoTeleport?: boolean;
|
|
62
|
+
/** equip_learn_flag(OF_NO_TELEPORT) when the curse blocks a teleport. */
|
|
63
|
+
onLearnNoTeleport?: () => void;
|
|
64
|
+
/** monster_target_monster: a monster spell aimed at another monster (#19). */
|
|
65
|
+
targetMonster?: number;
|
|
66
|
+
/** player_handle_post_move + handle_stuff after the player teleports. */
|
|
67
|
+
onPlayerPostMove?: (byMonster: boolean) => void;
|
|
68
|
+
/** handle_stuff after a monster teleports (FOV / target refresh). */
|
|
69
|
+
onMonsterPostMove?: (midx: number) => void;
|
|
70
|
+
/** get_aim_dir / target_get for EF_TELEPORT_TO's Dimension Door (#24). */
|
|
71
|
+
getAimTarget?: () => Loc | null;
|
|
72
|
+
/** square_isplayertrap (traps, #21). Default: no player trap. */
|
|
73
|
+
isPlayerTrap?: (grid: Loc) => boolean;
|
|
74
|
+
/** square_iswarded (glyph of warding, #21). Default: not warded. */
|
|
75
|
+
isWarded?: (grid: Loc) => boolean;
|
|
76
|
+
/** square_isdamaging (lava and the like). Default: not damaging. */
|
|
77
|
+
isDamaging?: (grid: Loc) => boolean;
|
|
78
|
+
/** square_iswebbed (webs). Default: not webbed. */
|
|
79
|
+
isWebbed?: (grid: Loc) => boolean;
|
|
80
|
+
/* --- EF_TELEPORT_LEVEL --- */
|
|
81
|
+
/** player_resists(ELEM_NEXUS): resist a hostile teleport-level. Default off. */
|
|
82
|
+
resistsNexus?: boolean;
|
|
83
|
+
/** is_quest(depth): the depth holds a quest the player cannot leave. */
|
|
84
|
+
isQuest?: (depth: number) => boolean;
|
|
85
|
+
/** OPT(player, birth_force_descend). Default off. */
|
|
86
|
+
forceDescend?: boolean;
|
|
87
|
+
/** dungeon_get_next_level(from, dir): the connected level. Default from+dir. */
|
|
88
|
+
getNextLevel?: (fromDepth: number, dir: 1 | -1) => number;
|
|
89
|
+
/** dungeon_change_level(target): commit a level change (#23). */
|
|
90
|
+
changeLevel?: (targetDepth: number) => void;
|
|
91
|
+
/** player->max_depth (deepest reached). Default: the current depth. */
|
|
92
|
+
maxPlayerDepth?: number;
|
|
93
|
+
/** z_info->max_depth. Default 128 (the shipped constants.txt value). */
|
|
94
|
+
maxDepth?: number;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
/** msg() convenience over the effect context's optional message sink. */
|
|
98
|
+
function say(ctx: EffectHandlerContext, text: string): void {
|
|
99
|
+
ctx.env.messages?.msg(text);
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
/**
|
|
103
|
+
* has_teleport_destination_prereqs (effect-handler-general.c L132): whether a
|
|
104
|
+
* grid is a legal teleport landing spot for the player or a monster. The trap /
|
|
105
|
+
* glyph / web / damaging-terrain tests come from the injected env (inert until
|
|
106
|
+
* their subsystems land); the passability, occupancy and shop tests are exact.
|
|
107
|
+
*/
|
|
108
|
+
export function hasTeleportDestinationPrereqs(
|
|
109
|
+
state: GameState,
|
|
110
|
+
grid: Loc,
|
|
111
|
+
isPlayerMoving: boolean,
|
|
112
|
+
tp: TeleportEnv,
|
|
113
|
+
): boolean {
|
|
114
|
+
const c = state.chunk;
|
|
115
|
+
if (isPlayerMoving) {
|
|
116
|
+
if (!c.isPassable(grid)) return false;
|
|
117
|
+
if (tp.isPlayerTrap?.(grid)) return false;
|
|
118
|
+
} else {
|
|
119
|
+
if (!c.isMonsterWalkable(grid)) return false;
|
|
120
|
+
if (tp.isWarded?.(grid)) return false;
|
|
121
|
+
}
|
|
122
|
+
/* square(c, grid)->mon: occupied by a monster (> 0) or the player (< 0). */
|
|
123
|
+
if (c.mon(grid) !== 0) return false;
|
|
124
|
+
if (tp.isDamaging?.(grid)) return false;
|
|
125
|
+
if (tp.isWebbed?.(grid)) return false;
|
|
126
|
+
if (c.isShop(grid)) return false;
|
|
127
|
+
return true;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
/**
|
|
131
|
+
* The EF_TELEPORT grid search: score every interior grid by how well its
|
|
132
|
+
* distance from `start` approximates `dis` (after the percentage and jitter
|
|
133
|
+
* adjustments), preferring non-vault grids, and return a uniformly chosen best
|
|
134
|
+
* grid (null when none exists). RNG draws mirror upstream: the one_in_(2)
|
|
135
|
+
* jitter first, then a single randint0 over the winning grids.
|
|
136
|
+
*/
|
|
137
|
+
export function chooseTeleportDestination(
|
|
138
|
+
state: GameState,
|
|
139
|
+
start: Loc,
|
|
140
|
+
dis: number,
|
|
141
|
+
perc: number,
|
|
142
|
+
isPlayerMoving: boolean,
|
|
143
|
+
tp: TeleportEnv,
|
|
144
|
+
): Loc | null {
|
|
145
|
+
const c = state.chunk;
|
|
146
|
+
const rng = state.rng;
|
|
147
|
+
const cap = 2 * Math.max(c.width, c.height);
|
|
148
|
+
|
|
149
|
+
let want = dis;
|
|
150
|
+
/* Percentage of the largest cardinal distance to an edge. */
|
|
151
|
+
if (perc) {
|
|
152
|
+
const vertical = Math.max(start.y, c.height - start.y);
|
|
153
|
+
const horizontal = Math.max(start.x, c.width - start.x);
|
|
154
|
+
want = Math.trunc((Math.max(vertical, horizontal) * perc) / 100);
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
/* Randomise the distance a little, besides what the dice allow. */
|
|
158
|
+
if (rng.oneIn(2)) {
|
|
159
|
+
want -= rng.randint0(Math.trunc(want / 4));
|
|
160
|
+
} else {
|
|
161
|
+
want += rng.randint0(Math.trunc(want / 4));
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
let currentScore = cap;
|
|
165
|
+
let onlyVaultPossible = true;
|
|
166
|
+
let spots: Loc[] = [];
|
|
167
|
+
|
|
168
|
+
for (let y = 1; y < c.height - 1; y++) {
|
|
169
|
+
for (let x = 1; x < c.width - 1; x++) {
|
|
170
|
+
const grid = loc(x, y);
|
|
171
|
+
const d = distance(grid, start);
|
|
172
|
+
|
|
173
|
+
/* Must move. */
|
|
174
|
+
if (d === 0) continue;
|
|
175
|
+
if (!hasTeleportDestinationPrereqs(state, grid, isPlayerMoving, tp)) continue;
|
|
176
|
+
|
|
177
|
+
/* No teleporting into vaults unless there is no other choice. */
|
|
178
|
+
if (c.sqinfoHas(grid, SQUARE.VAULT)) {
|
|
179
|
+
if (!onlyVaultPossible) continue;
|
|
180
|
+
} else {
|
|
181
|
+
/* First non-vault grid: reset the threshold and drop the vault spots. */
|
|
182
|
+
if (onlyVaultPossible) currentScore = cap;
|
|
183
|
+
onlyVaultPossible = false;
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
const score = Math.abs(d - want);
|
|
187
|
+
if (score > currentScore) continue;
|
|
188
|
+
|
|
189
|
+
if (score < currentScore) {
|
|
190
|
+
currentScore = score;
|
|
191
|
+
spots = [grid];
|
|
192
|
+
} else {
|
|
193
|
+
/* Equal score: prepend, matching upstream's linked-list order. */
|
|
194
|
+
spots.unshift(grid);
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
if (spots.length === 0) return null;
|
|
200
|
+
return spots[rng.randint0(spots.length)] ?? null;
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
/** Move whatever is at `start` (player or monster) to `dest`. */
|
|
204
|
+
function moveOccupant(state: GameState, start: Loc, dest: Loc): void {
|
|
205
|
+
if (state.chunk.mon(start) < 0) {
|
|
206
|
+
movePlayer(state, dest);
|
|
207
|
+
} else {
|
|
208
|
+
monsterSwap(state, start, dest);
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
/**
|
|
213
|
+
* EF_TELEPORT: teleport the player (or a monster) a distance roughly equal to
|
|
214
|
+
* the effect value from its current grid.
|
|
215
|
+
*/
|
|
216
|
+
const handleTELEPORT: EffectHandler = (ctx) => {
|
|
217
|
+
const env = gameEnv(ctx);
|
|
218
|
+
if (!env) return true;
|
|
219
|
+
ctx.ident = true;
|
|
220
|
+
|
|
221
|
+
const { state } = env;
|
|
222
|
+
const tp = env.teleport ?? {};
|
|
223
|
+
const dis = ctx.value.base + state.rng.damroll(ctx.value.dice, ctx.value.sides);
|
|
224
|
+
const perc = ctx.value.mBonus;
|
|
225
|
+
|
|
226
|
+
/* is_player: not a monster source, or a monster spell that moves the player. */
|
|
227
|
+
const isPlayer = ctx.origin.what !== "monster" || ctx.subtype !== 0;
|
|
228
|
+
const tMon =
|
|
229
|
+
tp.targetMonster !== undefined ? state.monsters[tp.targetMonster] : null;
|
|
230
|
+
|
|
231
|
+
let start: Loc;
|
|
232
|
+
if (ctx.x !== 0 && ctx.y !== 0) {
|
|
233
|
+
/* Effect supplied the origin coordinates. */
|
|
234
|
+
start = loc(ctx.x, ctx.y);
|
|
235
|
+
} else if (tMon) {
|
|
236
|
+
/* Monster teleporting another monster. */
|
|
237
|
+
start = tMon.grid;
|
|
238
|
+
} else if (isPlayer) {
|
|
239
|
+
start = state.actor.grid;
|
|
240
|
+
|
|
241
|
+
/* A no-teleport grid blocks all but a short, fixed hop:
|
|
242
|
+
* square_isno_teleport (cave-square.c:538). */
|
|
243
|
+
if (
|
|
244
|
+
state.chunk.sqinfoHas(start, SQUARE.NO_TELEPORT) &&
|
|
245
|
+
(dis > 10 || dis === 0)
|
|
246
|
+
) {
|
|
247
|
+
say(ctx, "Teleportation forbidden!");
|
|
248
|
+
return true;
|
|
249
|
+
}
|
|
250
|
+
/* A no-teleport curse blocks it outright. */
|
|
251
|
+
if (tp.hasNoTeleport) {
|
|
252
|
+
tp.onLearnNoTeleport?.();
|
|
253
|
+
say(ctx, "Teleportation forbidden!");
|
|
254
|
+
return true;
|
|
255
|
+
}
|
|
256
|
+
} else {
|
|
257
|
+
/* Monster teleporting itself. */
|
|
258
|
+
if (ctx.origin.what !== "monster") return true;
|
|
259
|
+
start = state.monsters[ctx.origin.monster]?.grid ?? state.actor.grid;
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
const dest = chooseTeleportDestination(state, start, dis, perc, isPlayer, tp);
|
|
263
|
+
if (!dest) {
|
|
264
|
+
/* Very unlikely; the monster "puzzled" message is lore (#19), omitted. */
|
|
265
|
+
if (isPlayer) say(ctx, "Failed to find teleport destination!");
|
|
266
|
+
return true;
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
const startOcc = state.chunk.mon(start);
|
|
270
|
+
moveOccupant(state, start, dest);
|
|
271
|
+
if (isPlayer) tp.onPlayerPostMove?.(ctx.origin.what === "monster");
|
|
272
|
+
else if (startOcc > 0) tp.onMonsterPostMove?.(startOcc);
|
|
273
|
+
|
|
274
|
+
/* Clear any projection marker to prevent double processing. */
|
|
275
|
+
state.chunk.sqinfoOff(dest, SQUARE.PROJECT);
|
|
276
|
+
return true;
|
|
277
|
+
};
|
|
278
|
+
|
|
279
|
+
/**
|
|
280
|
+
* EF_TELEPORT_TO's landing search: rejection-sample a legal grid near `aim`,
|
|
281
|
+
* widening the search radius when it keeps failing. RNG draws (randLoc per
|
|
282
|
+
* attempt) match upstream.
|
|
283
|
+
*/
|
|
284
|
+
function findLandingNear(
|
|
285
|
+
state: GameState,
|
|
286
|
+
aim: Loc,
|
|
287
|
+
dis: number,
|
|
288
|
+
isPlayerMoving: boolean,
|
|
289
|
+
tp: TeleportEnv,
|
|
290
|
+
): Loc {
|
|
291
|
+
let land: Loc;
|
|
292
|
+
let ctr = 0;
|
|
293
|
+
/* eslint-disable-next-line no-constant-condition */
|
|
294
|
+
for (;;) {
|
|
295
|
+
do {
|
|
296
|
+
land = randLoc(state.rng, aim, dis, dis);
|
|
297
|
+
} while (!state.chunk.inBoundsFully(land));
|
|
298
|
+
|
|
299
|
+
if (hasTeleportDestinationPrereqs(state, land, isPlayerMoving, tp)) {
|
|
300
|
+
return land;
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
if (++ctr > 4 * dis * dis + 4 * dis + 1) {
|
|
304
|
+
ctr = 0;
|
|
305
|
+
dis++;
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
/**
|
|
311
|
+
* EF_TELEPORT_TO: teleport the player or the target monster to a grid near a
|
|
312
|
+
* given location (a monster, a chosen target, or supplied coordinates).
|
|
313
|
+
*/
|
|
314
|
+
const handleTELEPORT_TO: EffectHandler = (ctx) => {
|
|
315
|
+
const env = gameEnv(ctx);
|
|
316
|
+
if (!env) return true;
|
|
317
|
+
ctx.ident = true;
|
|
318
|
+
|
|
319
|
+
const { state } = env;
|
|
320
|
+
const tp = env.teleport ?? {};
|
|
321
|
+
const isMonsterOrigin = ctx.origin.what === "monster";
|
|
322
|
+
const mon =
|
|
323
|
+
ctx.origin.what === "monster" ? state.monsters[ctx.origin.monster] : null;
|
|
324
|
+
const tMon =
|
|
325
|
+
tp.targetMonster !== undefined ? state.monsters[tp.targetMonster] : null;
|
|
326
|
+
|
|
327
|
+
/* No teleporting in arena levels (effect-handler-general.c:2714-2715). */
|
|
328
|
+
if (state.arenaLevel) return true;
|
|
329
|
+
|
|
330
|
+
let dis = 0;
|
|
331
|
+
let start: Loc;
|
|
332
|
+
let playerMoves = false;
|
|
333
|
+
|
|
334
|
+
/* Where are we coming from? */
|
|
335
|
+
if (tMon) {
|
|
336
|
+
start = tMon.grid;
|
|
337
|
+
} else if (ctx.subtype !== 0) {
|
|
338
|
+
/* Monster teleporting to the player. */
|
|
339
|
+
if (!mon) return true;
|
|
340
|
+
start = mon.grid;
|
|
341
|
+
} else {
|
|
342
|
+
/* Targeted decoys get destroyed (effect-handler-general.c:2735-2739). */
|
|
343
|
+
if (mon && monsterIsDecoyed(state, mon)) {
|
|
344
|
+
destroyDecoy(state, env.general?.trapDeps, (t) => say(ctx, t));
|
|
345
|
+
return true;
|
|
346
|
+
}
|
|
347
|
+
|
|
348
|
+
/* Player being teleported. */
|
|
349
|
+
playerMoves = true;
|
|
350
|
+
start = state.actor.grid;
|
|
351
|
+
if (state.chunk.sqinfoHas(start, SQUARE.NO_TELEPORT)) {
|
|
352
|
+
say(ctx, "Teleportation forbidden!");
|
|
353
|
+
return true;
|
|
354
|
+
}
|
|
355
|
+
if (tp.hasNoTeleport) {
|
|
356
|
+
tp.onLearnNoTeleport?.();
|
|
357
|
+
say(ctx, "Teleportation forbidden!");
|
|
358
|
+
return true;
|
|
359
|
+
}
|
|
360
|
+
}
|
|
361
|
+
|
|
362
|
+
/* Where are we going? */
|
|
363
|
+
let aim: Loc;
|
|
364
|
+
let dimDoor = false;
|
|
365
|
+
if (ctx.x !== 0 && ctx.y !== 0) {
|
|
366
|
+
aim = loc(ctx.x, ctx.y);
|
|
367
|
+
} else if (mon) {
|
|
368
|
+
if (ctx.subtype !== 0) {
|
|
369
|
+
/* Monster teleporting to the player. */
|
|
370
|
+
aim = state.actor.grid;
|
|
371
|
+
dis = 2;
|
|
372
|
+
} else {
|
|
373
|
+
/* Player being teleported to the monster. */
|
|
374
|
+
aim = mon.grid;
|
|
375
|
+
}
|
|
376
|
+
} else {
|
|
377
|
+
/* Player choice (Dimension Door): the aim prompt is a targeting seam. */
|
|
378
|
+
const chosen = tp.getAimTarget ? tp.getAimTarget() : null;
|
|
379
|
+
if (!chosen) return false;
|
|
380
|
+
aim = chosen;
|
|
381
|
+
if (state.chunk.sqinfoHas(aim, SQUARE.VAULT)) dis = 10;
|
|
382
|
+
dimDoor = true;
|
|
383
|
+
}
|
|
384
|
+
|
|
385
|
+
/* Find a usable location, widening the search when it keeps failing. */
|
|
386
|
+
const land = findLandingNear(state, aim, dis, playerMoves, tp);
|
|
387
|
+
|
|
388
|
+
const startOcc = state.chunk.mon(start);
|
|
389
|
+
moveOccupant(state, start, land);
|
|
390
|
+
if (playerMoves) tp.onPlayerPostMove?.(isMonsterOrigin);
|
|
391
|
+
else if (startOcc > 0) tp.onMonsterPostMove?.(startOcc);
|
|
392
|
+
|
|
393
|
+
/* Cancel the location target on a Dimension Door
|
|
394
|
+
* (effect-handler-general.c:2817-2820). */
|
|
395
|
+
if (dimDoor) targetSetLocation(state, loc(0, 0));
|
|
396
|
+
state.chunk.sqinfoOff(land, SQUARE.PROJECT);
|
|
397
|
+
return true;
|
|
398
|
+
};
|
|
399
|
+
|
|
400
|
+
/**
|
|
401
|
+
* teleportPlayerTo: the player slice of EF_TELEPORT_TO with supplied
|
|
402
|
+
* coordinates, for callers dispatching through effect_simple (the NEXUS
|
|
403
|
+
* "teleport to" branch of project-player.c). The forbidden-grid / curse
|
|
404
|
+
* checks and the landing search are the handler's.
|
|
405
|
+
*/
|
|
406
|
+
export function teleportPlayerTo(
|
|
407
|
+
state: GameState,
|
|
408
|
+
aim: Loc,
|
|
409
|
+
tp: TeleportEnv = {},
|
|
410
|
+
say?: (text: string) => void,
|
|
411
|
+
): void {
|
|
412
|
+
const start = state.actor.grid;
|
|
413
|
+
if (state.chunk.sqinfoHas(start, SQUARE.NO_TELEPORT)) {
|
|
414
|
+
say?.("Teleportation forbidden!");
|
|
415
|
+
return;
|
|
416
|
+
}
|
|
417
|
+
if (tp.hasNoTeleport) {
|
|
418
|
+
tp.onLearnNoTeleport?.();
|
|
419
|
+
say?.("Teleportation forbidden!");
|
|
420
|
+
return;
|
|
421
|
+
}
|
|
422
|
+
|
|
423
|
+
const land = findLandingNear(state, aim, 0, true, tp);
|
|
424
|
+
movePlayer(state, land);
|
|
425
|
+
tp.onPlayerPostMove?.(true);
|
|
426
|
+
state.chunk.sqinfoOff(land, SQUARE.PROJECT);
|
|
427
|
+
}
|
|
428
|
+
|
|
429
|
+
/**
|
|
430
|
+
* teleportPlayerLevel: the player path of EF_TELEPORT_LEVEL (the up/down
|
|
431
|
+
* decision and its messages), shared between the handler and the NEXUS
|
|
432
|
+
* "teleport level" branch. `hostile` runs the nexus-resistance check a
|
|
433
|
+
* monster-origin effect gets.
|
|
434
|
+
*/
|
|
435
|
+
export function teleportPlayerLevel(
|
|
436
|
+
state: GameState,
|
|
437
|
+
tp: TeleportEnv,
|
|
438
|
+
say: (text: string) => void,
|
|
439
|
+
hostile: boolean,
|
|
440
|
+
): void {
|
|
441
|
+
const depth = state.chunk.depth;
|
|
442
|
+
const maxDepth = tp.maxDepth ?? 128;
|
|
443
|
+
const maxPlayerDepth = tp.maxPlayerDepth ?? depth;
|
|
444
|
+
const getNext = tp.getNextLevel ?? ((from: number, dir: 1 | -1) => from + dir);
|
|
445
|
+
const isQuest = tp.isQuest ?? (() => false);
|
|
446
|
+
|
|
447
|
+
if (state.chunk.sqinfoHas(state.actor.grid, SQUARE.NO_TELEPORT)) {
|
|
448
|
+
say("Teleportation forbidden!");
|
|
449
|
+
return;
|
|
450
|
+
}
|
|
451
|
+
if (tp.hasNoTeleport) {
|
|
452
|
+
tp.onLearnNoTeleport?.();
|
|
453
|
+
say("Teleportation forbidden!");
|
|
454
|
+
return;
|
|
455
|
+
}
|
|
456
|
+
|
|
457
|
+
/* Resist hostile teleport. */
|
|
458
|
+
if (hostile && tp.resistsNexus) {
|
|
459
|
+
say("You resist the effect!");
|
|
460
|
+
return;
|
|
461
|
+
}
|
|
462
|
+
|
|
463
|
+
/* OPT(player, birth_force_descend): the injected dep wins, else the wired
|
|
464
|
+
* option store, else off (the shipped default). */
|
|
465
|
+
const forceDescend =
|
|
466
|
+
tp.forceDescend ?? state.options?.get("birth_force_descend") ?? false;
|
|
467
|
+
|
|
468
|
+
let up = true;
|
|
469
|
+
let down = true;
|
|
470
|
+
let targetDepth = getNext(maxPlayerDepth, 1);
|
|
471
|
+
|
|
472
|
+
/* No going up with force_descend or in the town. */
|
|
473
|
+
if (forceDescend || depth === 0) up = false;
|
|
474
|
+
/* No forcing the player down to quest levels they cannot leave. */
|
|
475
|
+
if (!up && isQuest(targetDepth)) down = false;
|
|
476
|
+
/* Cannot leave quest levels or descend past the bottom of the dungeon. */
|
|
477
|
+
if (isQuest(depth) || depth >= maxDepth - 1) down = false;
|
|
478
|
+
|
|
479
|
+
/* Determine up/down if not already forced. */
|
|
480
|
+
if (up && down) {
|
|
481
|
+
if (state.rng.randint0(100) < 50) up = false;
|
|
482
|
+
else down = false;
|
|
483
|
+
}
|
|
484
|
+
|
|
485
|
+
if (up) {
|
|
486
|
+
say("You rise up through the ceiling.");
|
|
487
|
+
targetDepth = getNext(depth, -1);
|
|
488
|
+
tp.changeLevel?.(targetDepth);
|
|
489
|
+
} else if (down) {
|
|
490
|
+
say("You sink through the floor.");
|
|
491
|
+
targetDepth = forceDescend
|
|
492
|
+
? getNext(maxPlayerDepth, 1)
|
|
493
|
+
: getNext(depth, 1);
|
|
494
|
+
tp.changeLevel?.(targetDepth);
|
|
495
|
+
} else {
|
|
496
|
+
say("Nothing happens.");
|
|
497
|
+
}
|
|
498
|
+
}
|
|
499
|
+
|
|
500
|
+
/**
|
|
501
|
+
* EF_TELEPORT_LEVEL: move the player one level up or down (random when both are
|
|
502
|
+
* legal). The up/down decision is ported exactly; the actual level change is
|
|
503
|
+
* the injected changeLevel hook (#23).
|
|
504
|
+
*/
|
|
505
|
+
const handleTELEPORT_LEVEL: EffectHandler = (ctx) => {
|
|
506
|
+
const env = gameEnv(ctx);
|
|
507
|
+
if (!env) return true;
|
|
508
|
+
ctx.ident = true;
|
|
509
|
+
|
|
510
|
+
const { state } = env;
|
|
511
|
+
const tp = env.teleport ?? {};
|
|
512
|
+
const tMon =
|
|
513
|
+
tp.targetMonster !== undefined ? state.monsters[tp.targetMonster] : null;
|
|
514
|
+
|
|
515
|
+
/* No teleporting in arena levels (effect-handler-general.c:2844-2845). */
|
|
516
|
+
if (state.arenaLevel) return true;
|
|
517
|
+
|
|
518
|
+
/* A monster targeting another monster: it is simply gone. */
|
|
519
|
+
if (tMon) {
|
|
520
|
+
deleteMonster(state, tp.targetMonster!);
|
|
521
|
+
return true;
|
|
522
|
+
}
|
|
523
|
+
|
|
524
|
+
/* Targeted decoys get destroyed (effect-handler-general.c:2855-2859). */
|
|
525
|
+
if (caveFindDecoy(state)) {
|
|
526
|
+
destroyDecoy(state, env.general?.trapDeps, (t) => say(ctx, t));
|
|
527
|
+
return true;
|
|
528
|
+
}
|
|
529
|
+
|
|
530
|
+
teleportPlayerLevel(
|
|
531
|
+
state,
|
|
532
|
+
tp,
|
|
533
|
+
(t) => say(ctx, t),
|
|
534
|
+
ctx.origin.what === "monster",
|
|
535
|
+
);
|
|
536
|
+
return true;
|
|
537
|
+
};
|
|
538
|
+
|
|
539
|
+
/**
|
|
540
|
+
* EF_ALTER_REALITY: regenerate the current dungeon level in place. The world
|
|
541
|
+
* change is the injected changeLevel hook (staying on the same depth, #23); the
|
|
542
|
+
* arena-level guard is omitted (arenas are not modelled).
|
|
543
|
+
*/
|
|
544
|
+
const handleALTER_REALITY: EffectHandler = (ctx) => {
|
|
545
|
+
const env = gameEnv(ctx);
|
|
546
|
+
if (!env) return true;
|
|
547
|
+
ctx.ident = true;
|
|
548
|
+
const { state } = env;
|
|
549
|
+
const tp = env.teleport ?? {};
|
|
550
|
+
say(ctx, "The world changes!");
|
|
551
|
+
tp.changeLevel?.(state.chunk.depth);
|
|
552
|
+
return true;
|
|
553
|
+
};
|
|
554
|
+
|
|
555
|
+
/**
|
|
556
|
+
* teleportPlayer: the player self-teleport slice of EF_TELEPORT, for callers
|
|
557
|
+
* that dispatch it through effect_simple (project-player.c's GRAVITY blink,
|
|
558
|
+
* NEXUS). Runs the same forbidden-grid / curse checks and destination search
|
|
559
|
+
* as handleTELEPORT's player branch, for a fixed distance.
|
|
560
|
+
*/
|
|
561
|
+
export function teleportPlayer(
|
|
562
|
+
state: GameState,
|
|
563
|
+
dis: number,
|
|
564
|
+
tp: TeleportEnv = {},
|
|
565
|
+
say?: (text: string) => void,
|
|
566
|
+
): void {
|
|
567
|
+
const start = state.actor.grid;
|
|
568
|
+
|
|
569
|
+
/* A no-teleport grid blocks all but a short, fixed hop. */
|
|
570
|
+
if (
|
|
571
|
+
state.chunk.sqinfoHas(start, SQUARE.NO_TELEPORT) &&
|
|
572
|
+
(dis > 10 || dis === 0)
|
|
573
|
+
) {
|
|
574
|
+
say?.("Teleportation forbidden!");
|
|
575
|
+
return;
|
|
576
|
+
}
|
|
577
|
+
/* A no-teleport curse blocks it outright. */
|
|
578
|
+
if (tp.hasNoTeleport) {
|
|
579
|
+
tp.onLearnNoTeleport?.();
|
|
580
|
+
say?.("Teleportation forbidden!");
|
|
581
|
+
return;
|
|
582
|
+
}
|
|
583
|
+
|
|
584
|
+
const dest = chooseTeleportDestination(state, start, dis, 0, true, tp);
|
|
585
|
+
if (!dest) {
|
|
586
|
+
say?.("Failed to find teleport destination!");
|
|
587
|
+
return;
|
|
588
|
+
}
|
|
589
|
+
|
|
590
|
+
movePlayer(state, dest);
|
|
591
|
+
tp.onPlayerPostMove?.(true);
|
|
592
|
+
state.chunk.sqinfoOff(dest, SQUARE.PROJECT);
|
|
593
|
+
}
|
|
594
|
+
|
|
595
|
+
/**
|
|
596
|
+
* teleportMonster: the concrete backing for the project_m `teleport` hook
|
|
597
|
+
* (game/project-monster.ts). A monster is teleported `distance` grids from its
|
|
598
|
+
* current location, exactly as EF_TELEPORT does for a self-teleporting monster.
|
|
599
|
+
*/
|
|
600
|
+
export function teleportMonster(
|
|
601
|
+
state: GameState,
|
|
602
|
+
midx: number,
|
|
603
|
+
dist: number,
|
|
604
|
+
tp: TeleportEnv = {},
|
|
605
|
+
): void {
|
|
606
|
+
const mon = state.monsters[midx];
|
|
607
|
+
if (!mon) return;
|
|
608
|
+
const start = mon.grid;
|
|
609
|
+
const dest = chooseTeleportDestination(state, start, dist, 0, false, tp);
|
|
610
|
+
if (!dest) return;
|
|
611
|
+
monsterSwap(state, start, dest);
|
|
612
|
+
tp.onMonsterPostMove?.(midx);
|
|
613
|
+
state.chunk.sqinfoOff(dest, SQUARE.PROJECT);
|
|
614
|
+
}
|
|
615
|
+
|
|
616
|
+
/** The teleport-family handlers, keyed by upstream EF code. */
|
|
617
|
+
const TELEPORT_HANDLERS: ReadonlyMap<number, EffectHandler> = new Map<
|
|
618
|
+
number,
|
|
619
|
+
EffectHandler
|
|
620
|
+
>([
|
|
621
|
+
[EF.TELEPORT, handleTELEPORT],
|
|
622
|
+
/* effect_handler_TELEPORT_TO (effect-handler-general.c:2703) */
|
|
623
|
+
[EF.TELEPORT_TO, handleTELEPORT_TO],
|
|
624
|
+
/* effect_handler_TELEPORT_LEVEL (effect-handler-general.c:2834) */
|
|
625
|
+
[EF.TELEPORT_LEVEL, handleTELEPORT_LEVEL],
|
|
626
|
+
/* effect_handler_ALTER_REALITY (effect-handler-general.c:1184) */
|
|
627
|
+
[EF.ALTER_REALITY, handleALTER_REALITY],
|
|
628
|
+
]);
|
|
629
|
+
|
|
630
|
+
/**
|
|
631
|
+
* Register the teleport-family handlers, overriding the stubs
|
|
632
|
+
* registerCoreHandlers installed. Call after registerCoreHandlers. Each handler
|
|
633
|
+
* reads its game environment from context.env.game (attach it with
|
|
634
|
+
* attachGameEnv) and no-ops when it is absent.
|
|
635
|
+
*/
|
|
636
|
+
export function registerTeleportHandlers(registry: EffectRegistry): void {
|
|
637
|
+
for (const [code, handler] of TELEPORT_HANDLERS) {
|
|
638
|
+
registry.register(code, { handler, status: "implemented" });
|
|
639
|
+
}
|
|
640
|
+
}
|
|
641
|
+
|
|
642
|
+
/** The teleport-family EF codes this module registers. */
|
|
643
|
+
export const TELEPORT_HANDLER_CODES: readonly number[] = [
|
|
644
|
+
...TELEPORT_HANDLERS.keys(),
|
|
645
|
+
];
|