@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,631 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The main game loop, ported from run_game_loop() and process_world() in
|
|
3
|
+
* reference/src/game-world.c, plus player_regen_hp / player_regen_mana /
|
|
4
|
+
* player_adjust_hp_precise / player_adjust_mana_precise and decrease_timeouts
|
|
5
|
+
* (Angband 4.2.6).
|
|
6
|
+
*
|
|
7
|
+
* runGameLoop advances the world until the player must enter a command (the
|
|
8
|
+
* injected provider returns null), the player dies, or a level change is
|
|
9
|
+
* requested. It reproduces the upstream ordering exactly: the player acts
|
|
10
|
+
* first; before each player action any monster holding more energy than the
|
|
11
|
+
* player acts (process_monsters(player.energy + 1)); then the rest of the
|
|
12
|
+
* monsters act (process_monsters(0)), monsters are reset, process_world runs
|
|
13
|
+
* every ten game turns, the player is energised and the game-turn counter
|
|
14
|
+
* advances.
|
|
15
|
+
*
|
|
16
|
+
* process_world here wires the periodic upkeep this task owns: HP and mana
|
|
17
|
+
* regeneration (the exact fixed-point 2^16 formulas), the player timed array
|
|
18
|
+
* countdown (decrease_timeouts, routed through playerDecTimed for grade / wear-
|
|
19
|
+
* off messages), food digestion, light-source fuel burn, damage-over-time
|
|
20
|
+
* (poison / cut / black-breath / starvation), inventory recharge, ambient
|
|
21
|
+
* creature generation, and the word-of-recall / deep-descent countdowns - see
|
|
22
|
+
* processWorld below. Monster timeouts count down inside process_monster_timed
|
|
23
|
+
* (monster-turn.ts); the day-night town cycle relight is handled in
|
|
24
|
+
* session/game.ts. Remaining ledgered items are noted in
|
|
25
|
+
* parity/ledger/game-loop.yaml.
|
|
26
|
+
*/
|
|
27
|
+
import { MON_TMD, OF, PF, STAT, TMD } from "../generated/index.js";
|
|
28
|
+
import { TMD_MAX } from "../player/types.js";
|
|
29
|
+
import { los } from "../world/view.js";
|
|
30
|
+
import { makeNoise, updateScent } from "../world/flow.js";
|
|
31
|
+
import { convertManaToHp } from "../player/combat-regen.js";
|
|
32
|
+
import { MON_TMD_FLG_NOTIFY, monClearTimed, monDecTimed, } from "../mon/timed.js";
|
|
33
|
+
import { getCommandedMonster } from "./mon-cmd.js";
|
|
34
|
+
import { adj_con_fix, calcStatIndices } from "../player/calcs.js";
|
|
35
|
+
import { equipLearnAfterTime, equipLearnFlag } from "../obj/knowledge.js";
|
|
36
|
+
import { playerClearTimed, playerDecTimed, playerTimedGradeEq } from "../player/timed.js";
|
|
37
|
+
import { tickMonsterMarks, updateMonsters } from "./known.js";
|
|
38
|
+
import { caveMonsterCount, compactMonsters, digestFood, isDaytime, playAmbientSound, playerHasWorld, playerOfHasWorld, playerTakeTerrainDamage, playerUpdateLight, processDamageOverTime, processExpDrain, processFaintOrStarve, rechargeObjects, } from "./world.js";
|
|
39
|
+
import { playerIsResting, playerRestingIsSpecial } from "./context.js";
|
|
40
|
+
import { givePlayerEnergy, processMonsters, resetMonsters, } from "./scheduler.js";
|
|
41
|
+
import { disturb } from "./player-path.js";
|
|
42
|
+
import { processPlayer } from "./player-turn.js";
|
|
43
|
+
import { dungeonGetNextLevel } from "./quest.js";
|
|
44
|
+
/** player-util.h regeneration constants (regen factor / base, times 2^16). */
|
|
45
|
+
const PY_REGEN_NORMAL = 197;
|
|
46
|
+
const PY_REGEN_WEAK = 98;
|
|
47
|
+
const PY_REGEN_FAINT = 33;
|
|
48
|
+
const PY_REGEN_HPBASE = 1442;
|
|
49
|
+
const PY_REGEN_MNBASE = 524;
|
|
50
|
+
/** Why runGameLoop returned control. */
|
|
51
|
+
export const LOOP_STATUS = {
|
|
52
|
+
/** The command provider is empty: the player must act. */
|
|
53
|
+
INPUT: "input",
|
|
54
|
+
/** player->is_dead. */
|
|
55
|
+
DEAD: "dead",
|
|
56
|
+
/** The shell must answer the pending in-terminal wizard death prompt. */
|
|
57
|
+
DEATH_CONFIRM: "death-confirm",
|
|
58
|
+
/** player->upkeep->generate_level (a stair/recall change; regen deferred). */
|
|
59
|
+
LEVEL_CHANGE: "level-change",
|
|
60
|
+
/** player->upkeep->playing cleared. */
|
|
61
|
+
STOPPED: "stopped",
|
|
62
|
+
/**
|
|
63
|
+
* A host that cannot poll the keyboard synchronously asked to be handed
|
|
64
|
+
* control back mid run / repeat / rest so its event loop can turn (see
|
|
65
|
+
* checkForPlayerInterrupt). Nothing was consumed and the continuation is
|
|
66
|
+
* still queued: call runGameLoop again to take the next step. Only ever
|
|
67
|
+
* returned when state.checkInterrupt is installed.
|
|
68
|
+
*/
|
|
69
|
+
PAUSE: "pause",
|
|
70
|
+
};
|
|
71
|
+
const INT32_MIN = -2147483648;
|
|
72
|
+
const INT32_MAX = 2147483647;
|
|
73
|
+
/** player-util.c:538-545: saturating addition for 32-bit fixed-point values. */
|
|
74
|
+
function addInt32Saturating(value, gain) {
|
|
75
|
+
if (gain >= 0)
|
|
76
|
+
return value < INT32_MAX - gain ? value + gain : INT32_MAX;
|
|
77
|
+
return value > INT32_MIN - gain ? value + gain : INT32_MIN;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* player_adjust_hp_precise: add hp_gain (in 2^16ths) to chp/chp_frac, clamped
|
|
81
|
+
* at mhp. Reproduces the upstream fixed-point split.
|
|
82
|
+
*/
|
|
83
|
+
export function playerAdjustHpPrecise(p, hpGain) {
|
|
84
|
+
const old32 = p.chp * 65536 + p.chpFrac;
|
|
85
|
+
const new32 = addInt32Saturating(old32, hpGain);
|
|
86
|
+
if (new32 < 0) {
|
|
87
|
+
const remainder = new32 % 65536;
|
|
88
|
+
p.chp = Math.trunc(new32 / 65536);
|
|
89
|
+
if (remainder) {
|
|
90
|
+
p.chpFrac = 65536 + remainder;
|
|
91
|
+
p.chp -= 1;
|
|
92
|
+
}
|
|
93
|
+
else {
|
|
94
|
+
p.chpFrac = 0;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
p.chp = Math.trunc(new32 / 65536);
|
|
99
|
+
p.chpFrac = new32 & 0xffff;
|
|
100
|
+
}
|
|
101
|
+
if (p.chp >= p.mhp) {
|
|
102
|
+
p.chp = p.mhp;
|
|
103
|
+
p.chpFrac = 0;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* player_adjust_mana_precise: add sp_gain (in 2^16ths) to csp/csp_frac,
|
|
108
|
+
* clamped to [0, msp]. Returns the amount actually applied in 2^16ths (which
|
|
109
|
+
* differs from sp_gain when the clamp bites); the PF_COMBAT_REGEN mana degen
|
|
110
|
+
* path in player_regen_mana feeds the returned (negative) delta to
|
|
111
|
+
* convert_mana_to_hp. Faithful to player-util.c:585-653 - the C recomputes the
|
|
112
|
+
* applied delta as new_32 - old_32 whenever the clamp fires, which for the
|
|
113
|
+
* non-overflow range in play is simply (final - old_32) in every case.
|
|
114
|
+
*/
|
|
115
|
+
export function playerAdjustManaPrecise(p, spGain) {
|
|
116
|
+
if (spGain === 0)
|
|
117
|
+
return 0;
|
|
118
|
+
const old32 = p.csp * 65536 + p.cspFrac;
|
|
119
|
+
const new32 = addInt32Saturating(old32, spGain);
|
|
120
|
+
if (new32 < 0) {
|
|
121
|
+
const remainder = new32 % 65536;
|
|
122
|
+
p.csp = Math.trunc(new32 / 65536);
|
|
123
|
+
if (remainder) {
|
|
124
|
+
p.cspFrac = 65536 + remainder;
|
|
125
|
+
p.csp -= 1;
|
|
126
|
+
}
|
|
127
|
+
else {
|
|
128
|
+
p.cspFrac = 0;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
else {
|
|
132
|
+
p.csp = Math.trunc(new32 / 65536);
|
|
133
|
+
p.cspFrac = new32 & 0xffff;
|
|
134
|
+
}
|
|
135
|
+
if (p.csp >= p.msp) {
|
|
136
|
+
p.csp = p.msp;
|
|
137
|
+
p.cspFrac = 0;
|
|
138
|
+
}
|
|
139
|
+
else if (p.csp < 0) {
|
|
140
|
+
p.csp = 0;
|
|
141
|
+
p.cspFrac = 0;
|
|
142
|
+
}
|
|
143
|
+
return p.csp * 65536 + p.cspFrac - old32;
|
|
144
|
+
}
|
|
145
|
+
/* player-util.h:61: REST_REQUIRED_FOR_REGEN. */
|
|
146
|
+
const REST_REQUIRED_FOR_REGEN = 5;
|
|
147
|
+
/**
|
|
148
|
+
* player_resting_can_regenerate (player-util.c:1461): the player earns the x2
|
|
149
|
+
* regeneration bonus once REST_REQUIRED_FOR_REGEN turns of the current rest
|
|
150
|
+
* have elapsed, or immediately for the conditional REST_ modes. The rest
|
|
151
|
+
* command (WP-11, web) sets state.resting; absent when not resting. No RNG.
|
|
152
|
+
*/
|
|
153
|
+
function playerRestingCanRegenerate(state) {
|
|
154
|
+
const r = state.resting;
|
|
155
|
+
if (!r)
|
|
156
|
+
return false;
|
|
157
|
+
return r.turnsRested >= REST_REQUIRED_FOR_REGEN || playerRestingIsSpecial(r.count);
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* player_regen_hp (player-util.c:436-481): one turn of HP regeneration. The
|
|
161
|
+
* food-tier base percent, the up-to-1/3 fed bonus, the OF_REGEN x2 and resting
|
|
162
|
+
* x2 speed-ups, the OF_IMPAIR_HP halving, and the paralyse/poison/stun/cut
|
|
163
|
+
* zeroing, then the fixed-point adjust and the change-driven equip learning.
|
|
164
|
+
*/
|
|
165
|
+
export function playerRegenHp(state) {
|
|
166
|
+
const p = state.actor.player;
|
|
167
|
+
const oldChp = p.chp;
|
|
168
|
+
const food = p.timed[TMD.FOOD] ?? 0;
|
|
169
|
+
let percent = 0;
|
|
170
|
+
if (food >= state.z.foodWeak)
|
|
171
|
+
percent = PY_REGEN_NORMAL;
|
|
172
|
+
else if (food >= state.z.foodFaint)
|
|
173
|
+
percent = PY_REGEN_WEAK;
|
|
174
|
+
else if (food >= state.z.foodStarve)
|
|
175
|
+
percent = PY_REGEN_FAINT;
|
|
176
|
+
/* Food bonus - better fed players regenerate up to 1/3 faster. */
|
|
177
|
+
const fedPct = Math.trunc(food / state.z.foodValue);
|
|
178
|
+
percent = Math.trunc((percent * (100 + Math.trunc(fedPct / 3))) / 100);
|
|
179
|
+
/* Various things speed up regeneration. */
|
|
180
|
+
if (playerOfHasWorld(state, OF.REGEN))
|
|
181
|
+
percent *= 2;
|
|
182
|
+
if (playerRestingCanRegenerate(state))
|
|
183
|
+
percent *= 2;
|
|
184
|
+
/* Some things slow it down. */
|
|
185
|
+
if (playerOfHasWorld(state, OF.IMPAIR_HP))
|
|
186
|
+
percent = Math.trunc(percent / 2);
|
|
187
|
+
/* Things that interfere with physical healing. */
|
|
188
|
+
if (p.timed[TMD.PARALYZED] ?? 0)
|
|
189
|
+
percent = 0;
|
|
190
|
+
if (p.timed[TMD.POISONED] ?? 0)
|
|
191
|
+
percent = 0;
|
|
192
|
+
if (p.timed[TMD.STUN] ?? 0)
|
|
193
|
+
percent = 0;
|
|
194
|
+
if (p.timed[TMD.CUT] ?? 0)
|
|
195
|
+
percent = 0;
|
|
196
|
+
const hpGain = p.mhp * percent + PY_REGEN_HPBASE;
|
|
197
|
+
playerAdjustHpPrecise(p, hpGain);
|
|
198
|
+
/* Notice changes. */
|
|
199
|
+
if (oldChp !== p.chp) {
|
|
200
|
+
equipLearnFlag(p, state.runeEnv, OF.REGEN);
|
|
201
|
+
equipLearnFlag(p, state.runeEnv, OF.IMPAIR_HP);
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* player_regen_mana (player-util.c:487-530): one turn of mana regeneration.
|
|
206
|
+
* PF_COMBAT_REGEN (Blackguard) suppresses the OF_REGEN / resting speed-ups
|
|
207
|
+
* while above half HP, then degenerates mana (percent /= -2) and converts the
|
|
208
|
+
* lost SP to HP at double efficiency; otherwise OF_IMPAIR_MANA halves the gain.
|
|
209
|
+
*/
|
|
210
|
+
export function playerRegenMana(state) {
|
|
211
|
+
const p = state.actor.player;
|
|
212
|
+
const oldCsp = p.csp;
|
|
213
|
+
let percent = PY_REGEN_NORMAL;
|
|
214
|
+
const combatRegen = playerHasWorld(state, PF.COMBAT_REGEN);
|
|
215
|
+
/* Various things speed up regeneration, but shouldn't punish healthy BGs. */
|
|
216
|
+
if (!(combatRegen && p.chp > Math.trunc(p.mhp / 2))) {
|
|
217
|
+
if (playerOfHasWorld(state, OF.REGEN))
|
|
218
|
+
percent *= 2;
|
|
219
|
+
if (playerRestingCanRegenerate(state))
|
|
220
|
+
percent *= 2;
|
|
221
|
+
}
|
|
222
|
+
/* Some things slow it down. */
|
|
223
|
+
if (combatRegen) {
|
|
224
|
+
percent = Math.trunc(percent / -2);
|
|
225
|
+
}
|
|
226
|
+
else if (playerOfHasWorld(state, OF.IMPAIR_MANA)) {
|
|
227
|
+
percent = Math.trunc(percent / 2);
|
|
228
|
+
}
|
|
229
|
+
/* Regenerate mana. */
|
|
230
|
+
let spGain = p.msp * percent;
|
|
231
|
+
if (percent >= 0)
|
|
232
|
+
spGain += PY_REGEN_MNBASE;
|
|
233
|
+
spGain = playerAdjustManaPrecise(p, spGain);
|
|
234
|
+
/* SP degen heals BGs at double efficiency vs casting. */
|
|
235
|
+
if (spGain < 0 && combatRegen) {
|
|
236
|
+
convertManaToHp(p, -spGain * 2);
|
|
237
|
+
}
|
|
238
|
+
/* Notice changes. */
|
|
239
|
+
if (oldCsp !== p.csp) {
|
|
240
|
+
equipLearnFlag(p, state.runeEnv, OF.REGEN);
|
|
241
|
+
equipLearnFlag(p, state.runeEnv, OF.IMPAIR_MANA);
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
/**
|
|
245
|
+
* decrease_timeouts (game-world.c L280): count the player timed effects down.
|
|
246
|
+
* Most drop by 1; poison / stun / cut drop by the CON regeneration adjust (cut
|
|
247
|
+
* maintains at 0 for a Mortal Wound or a Rock player); TMD_FOOD is handled by
|
|
248
|
+
* digestion and does not decrement here. TMD_COMMAND stays aligned with the
|
|
249
|
+
* commanded monster's timer, and a commanded monster out of sight is out of
|
|
250
|
+
* mind (game-world.c L324).
|
|
251
|
+
*
|
|
252
|
+
* Each per-effect decrement routes through player_dec_timed (with the bound
|
|
253
|
+
* timed table + hooks from state.world), so grade transitions and wear-off
|
|
254
|
+
* messages fire. Absent the world env, it falls back to the raw mutation for
|
|
255
|
+
* worldless callers. The curse-timeout countdown (L343-364) runs last through
|
|
256
|
+
* state.curseTick (game/curse-tick.ts), installed by the session; absent, or
|
|
257
|
+
* with no cursed item equipped, it is a no-op and draws no RNG.
|
|
258
|
+
*/
|
|
259
|
+
export function decreaseTimeouts(state) {
|
|
260
|
+
const p = state.actor.player;
|
|
261
|
+
const conInd = calcStatIndices(p.race, p.cls, p.statCur)[STAT.CON] ?? 0;
|
|
262
|
+
const adjust = (adj_con_fix[conInd] ?? 0) + 1;
|
|
263
|
+
const env = state.world;
|
|
264
|
+
const table = env?.timedTable;
|
|
265
|
+
const thooks = env?.timedHooks ?? {};
|
|
266
|
+
for (let i = 0; i < TMD_MAX; i++) {
|
|
267
|
+
const cur = p.timed[i] ?? 0;
|
|
268
|
+
if (!cur)
|
|
269
|
+
continue;
|
|
270
|
+
let decr = 1;
|
|
271
|
+
/* Special cases. */
|
|
272
|
+
if (i === TMD.FOOD) {
|
|
273
|
+
decr = 0;
|
|
274
|
+
}
|
|
275
|
+
else if (i === TMD.CUT) {
|
|
276
|
+
const cut = table?.[TMD.CUT];
|
|
277
|
+
if (cut && playerTimedGradeEq(p, cut, "Mortal Wound"))
|
|
278
|
+
decr = 0;
|
|
279
|
+
else
|
|
280
|
+
decr = adjust;
|
|
281
|
+
/* Rock players just maintain. */
|
|
282
|
+
if (playerHasWorld(state, PF.ROCK))
|
|
283
|
+
decr = 0;
|
|
284
|
+
}
|
|
285
|
+
else if (i === TMD.POISONED || i === TMD.STUN) {
|
|
286
|
+
decr = adjust;
|
|
287
|
+
}
|
|
288
|
+
else if (i === TMD.COMMAND) {
|
|
289
|
+
const mon = getCommandedMonster(state);
|
|
290
|
+
if (mon && !los(state.chunk, state.actor.grid, mon.grid)) {
|
|
291
|
+
/* Out of sight is out of mind. */
|
|
292
|
+
monClearTimed(state.rng, mon, MON_TMD.COMMAND, MON_TMD_FLG_NOTIFY);
|
|
293
|
+
const cmd = table?.[TMD.COMMAND];
|
|
294
|
+
if (cmd)
|
|
295
|
+
playerClearTimed(p, cmd, true, true, thooks);
|
|
296
|
+
else
|
|
297
|
+
p.timed[i] = 0;
|
|
298
|
+
}
|
|
299
|
+
else if (mon) {
|
|
300
|
+
/* Keep the monster timer aligned. */
|
|
301
|
+
monDecTimed(state.rng, mon, MON_TMD.COMMAND, decr, 0);
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
/* Decrement the effect. */
|
|
305
|
+
const eff = table?.[i];
|
|
306
|
+
if (eff)
|
|
307
|
+
playerDecTimed(p, eff, decr, false, true, thooks);
|
|
308
|
+
else
|
|
309
|
+
p.timed[i] = Math.max(0, cur - decr);
|
|
310
|
+
}
|
|
311
|
+
/* Curse effects always decrement by 1, and fire when they hit zero
|
|
312
|
+
* (game-world.c L343-364). Runs after the timed loop, matching upstream. */
|
|
313
|
+
state.curseTick?.();
|
|
314
|
+
}
|
|
315
|
+
/**
|
|
316
|
+
* Decrease trap timeouts (game-world.c L759): every disabled trap counts its
|
|
317
|
+
* timeout down; the square_memorize_traps / square_light_spot refresh when a
|
|
318
|
+
* seen trap re-arms is a presentation concern (#25) and is DEFERRED. No RNG.
|
|
319
|
+
*/
|
|
320
|
+
function decreaseTrapTimeouts(state) {
|
|
321
|
+
for (const traps of state.traps.values()) {
|
|
322
|
+
for (const trap of traps) {
|
|
323
|
+
if (trap.timeout)
|
|
324
|
+
trap.timeout--;
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
/**
|
|
329
|
+
* process_world (game-world.c L532): the once-every-ten-game-turns upkeep,
|
|
330
|
+
* reproduced statement by statement in upstream order (take_hit early-returns
|
|
331
|
+
* on death and the RNG draw sequence are order-sensitive). The MFLAG detection
|
|
332
|
+
* fade (tickMonsterMarks), monster-list compaction, ambient sound + town clock,
|
|
333
|
+
* ambient monster generation, damage / healing over time, food digestion,
|
|
334
|
+
* HP/mana regen, timed-effect countdown, light-fuel burn, experience drain,
|
|
335
|
+
* rod / activatable recharge, learn-after-time, trap timeouts, and the
|
|
336
|
+
* involuntary Word-of-Recall / Deep-Descent movement all run here.
|
|
337
|
+
*/
|
|
338
|
+
export function processWorld(state) {
|
|
339
|
+
const p = state.actor.player;
|
|
340
|
+
/* MFLAG_NICE / MARK / SHOW detection-fade housekeeping (game-world.c:882). */
|
|
341
|
+
tickMonsterMarks(state);
|
|
342
|
+
/* Compact the monster list if we're approaching the limit. */
|
|
343
|
+
if (caveMonsterCount(state) + 32 > state.z.levelMonsterMax) {
|
|
344
|
+
compactMonsters(state, 64);
|
|
345
|
+
}
|
|
346
|
+
/* Too many holes in the monster list - compress (RNG-free, slot reuse). */
|
|
347
|
+
if (caveMonsterCount(state) + 32 < state.monsters.length) {
|
|
348
|
+
compactMonsters(state, 0);
|
|
349
|
+
}
|
|
350
|
+
/*** Check the Time ***/
|
|
351
|
+
/* Play an ambient sound at regular intervals. */
|
|
352
|
+
if (state.turn % Math.trunc((10 * state.z.dayLength) / 4) === 0) {
|
|
353
|
+
playAmbientSound(state);
|
|
354
|
+
}
|
|
355
|
+
/* Handle stores and sunshine. */
|
|
356
|
+
if (state.chunk.depth === 0) {
|
|
357
|
+
/* Daybreak / nightfall in town. */
|
|
358
|
+
if (state.turn % Math.trunc((10 * state.z.dayLength) / 2) === 0) {
|
|
359
|
+
const dawn = state.turn % (10 * state.z.dayLength) === 0;
|
|
360
|
+
state.msg?.(dawn ? "The sun has risen." : "The sun has fallen.");
|
|
361
|
+
state.world?.caveIlluminate?.(state, dawn);
|
|
362
|
+
}
|
|
363
|
+
}
|
|
364
|
+
else {
|
|
365
|
+
/* Update the stores once a day while in the dungeon. */
|
|
366
|
+
if (state.turn % (10 * state.z.storeTurns) === 0) {
|
|
367
|
+
state.daycount = (state.daycount ?? 0) + 1;
|
|
368
|
+
}
|
|
369
|
+
}
|
|
370
|
+
/* Check for light change (PU_BONUS folds into the recompute below). */
|
|
371
|
+
/* Check for creature generation. The one_in_ roll is drawn UNCONDITIONALLY
|
|
372
|
+
* each world tick so the seeded stream stays stable even if the spawn hook
|
|
373
|
+
* is absent; pick_and_place_distant_monster then draws its own variable
|
|
374
|
+
* sequence (x-then-y per attempt, then get_mon_num / placement). */
|
|
375
|
+
if (state.rng.oneIn(state.z.allocMonsterChance)) {
|
|
376
|
+
state.world?.spawnAmbientMonster?.(state);
|
|
377
|
+
}
|
|
378
|
+
/*** Damage (or healing) over Time ***/
|
|
379
|
+
if (processDamageOverTime(state))
|
|
380
|
+
return;
|
|
381
|
+
/*** Check the Food, and Regenerate ***/
|
|
382
|
+
/* Digest (the gorged branch flags PU_BONUS, folded into the recompute below). */
|
|
383
|
+
digestFood(state);
|
|
384
|
+
/* Faint or starving. */
|
|
385
|
+
if (processFaintOrStarve(state))
|
|
386
|
+
return;
|
|
387
|
+
/* Regenerate Hit Points if needed. */
|
|
388
|
+
if (p.chp < p.mhp)
|
|
389
|
+
playerRegenHp(state);
|
|
390
|
+
/* Regenerate or lose mana. */
|
|
391
|
+
playerRegenMana(state);
|
|
392
|
+
/* Timeout various things. */
|
|
393
|
+
decreaseTimeouts(state);
|
|
394
|
+
/* Process light (PU_TORCH). */
|
|
395
|
+
playerUpdateLight(state);
|
|
396
|
+
/* Update noise and scent (not if resting) - game-world.c:731-735. The
|
|
397
|
+
* monster movement AI reads these floods (monster-turn.ts:257-269) to track
|
|
398
|
+
* the player through corridors and around corners once LOS breaks. Neither
|
|
399
|
+
* make_noise nor update_scent draws RNG, so the seeded stream is unaffected.
|
|
400
|
+
* The resting guard rides the WP-11 seam (false today). */
|
|
401
|
+
if (!playerIsResting(state)) {
|
|
402
|
+
const src = {
|
|
403
|
+
grid: state.actor.grid,
|
|
404
|
+
covertTracks: (p.timed[TMD.COVERTRACKS] ?? 0) > 0,
|
|
405
|
+
};
|
|
406
|
+
makeNoise(state.chunk, src);
|
|
407
|
+
updateScent(state.chunk, src);
|
|
408
|
+
}
|
|
409
|
+
/*** Process Inventory ***/
|
|
410
|
+
/* Handle experience draining (OF_DRAIN_EXP). */
|
|
411
|
+
processExpDrain(state);
|
|
412
|
+
/* Recharge activatable objects and rods. */
|
|
413
|
+
rechargeObjects(state);
|
|
414
|
+
/* Notice things after time (game-world.c L755: every 100 game turns). */
|
|
415
|
+
if (state.turn % 100 === 0)
|
|
416
|
+
equipLearnAfterTime(p, state.runeEnv);
|
|
417
|
+
/* Decrease trap timeouts. */
|
|
418
|
+
decreaseTrapTimeouts(state);
|
|
419
|
+
/* Apply the collapsed PU_TORCH / PU_BONUS recompute: UNLIGHT and the gorged
|
|
420
|
+
* digest branch flag PU_BONUS, and PU_TORCH (torch radius) is set every tick,
|
|
421
|
+
* so recompute the derived state once when the bonus hook is installed. */
|
|
422
|
+
state.updateBonuses?.();
|
|
423
|
+
/*** Involuntary Movement ***/
|
|
424
|
+
/* Delayed Word-of-Recall; suspended in arenas (game-world.c L784). */
|
|
425
|
+
if (p.wordRecall > 0 && !state.arenaLevel) {
|
|
426
|
+
p.wordRecall--;
|
|
427
|
+
if (p.wordRecall === 0) {
|
|
428
|
+
if (state.chunk.depth > 0) {
|
|
429
|
+
state.msg?.("You feel yourself yanked upwards!");
|
|
430
|
+
state.targetDepth = 0;
|
|
431
|
+
}
|
|
432
|
+
else {
|
|
433
|
+
state.msg?.("You feel yourself yanked downwards!");
|
|
434
|
+
/* player_set_recall_depth: non-persistent levels use max_depth. */
|
|
435
|
+
p.recallDepth = p.maxDepth;
|
|
436
|
+
state.targetDepth = p.recallDepth;
|
|
437
|
+
}
|
|
438
|
+
state.generateLevel = true;
|
|
439
|
+
}
|
|
440
|
+
}
|
|
441
|
+
/* Delayed Deep Descent. */
|
|
442
|
+
if (p.deepDescent > 0) {
|
|
443
|
+
p.deepDescent--;
|
|
444
|
+
if (p.deepDescent === 0) {
|
|
445
|
+
/* game-world.c:817-819: the same dungeon_get_next_level the effect used
|
|
446
|
+
* when it armed the descent. */
|
|
447
|
+
const increment = Math.trunc(4 / state.z.stairSkip) + 1;
|
|
448
|
+
const targetDepth = dungeonGetNextLevel(p, p.maxDepth, increment, state.z);
|
|
449
|
+
if (targetDepth > state.chunk.depth) {
|
|
450
|
+
state.msg?.("The floor opens beneath you!");
|
|
451
|
+
state.targetDepth = targetDepth;
|
|
452
|
+
state.generateLevel = true;
|
|
453
|
+
}
|
|
454
|
+
else {
|
|
455
|
+
/* The disastrous EF_DESTRUCTION fallback rides that handler. */
|
|
456
|
+
state.msg?.("You are thrown back in an explosion!");
|
|
457
|
+
}
|
|
458
|
+
}
|
|
459
|
+
}
|
|
460
|
+
}
|
|
461
|
+
/** Non-null when the loop must stop and hand control back to the caller. */
|
|
462
|
+
function loopStop(state) {
|
|
463
|
+
if (state.isDead)
|
|
464
|
+
return LOOP_STATUS.DEAD;
|
|
465
|
+
if (state.pendingDeath)
|
|
466
|
+
return LOOP_STATUS.DEATH_CONFIRM;
|
|
467
|
+
if (!state.playing)
|
|
468
|
+
return LOOP_STATUS.STOPPED;
|
|
469
|
+
if (state.generateLevel)
|
|
470
|
+
return LOOP_STATUS.LEVEL_CHANGE;
|
|
471
|
+
return null;
|
|
472
|
+
}
|
|
473
|
+
/**
|
|
474
|
+
* check_for_player_interrupt (ui-game.c:645-666) - the EVENT_CHECK_INTERRUPT
|
|
475
|
+
* handler that process_player signals before its command loop
|
|
476
|
+
* (game-world.c:936-937).
|
|
477
|
+
*
|
|
478
|
+
* Upstream polls the keyboard WITHOUT waiting (inkey_scan = SCAN_INSTANT) while
|
|
479
|
+
* a run, a repeated command or a rest is driving the game, and on any key it
|
|
480
|
+
* flushes input, disturbs and says "Cancelled.". That is the only way to abort a
|
|
481
|
+
* run: without it a run in a long corridor cannot be stopped by the player.
|
|
482
|
+
*
|
|
483
|
+
* A browser host cannot answer synchronously - a keydown is delivered only when
|
|
484
|
+
* the JS event loop turns - so it may answer "pause". The loop then hands
|
|
485
|
+
* control back with LOOP_STATUS.PAUSE having consumed nothing: the run's queued
|
|
486
|
+
* continuation (cmdQueue, player-path.ts runStep) is untouched, so the next
|
|
487
|
+
* runGameLoop call resumes exactly where it stopped and the host drives the run
|
|
488
|
+
* a step at a time. Hosts that can poll synchronously answer "go"/"cancel" and
|
|
489
|
+
* never see PAUSE; with no hook installed nothing changes at all, which is what
|
|
490
|
+
* keeps the headless harnesses, the borg and the tests driving a whole run
|
|
491
|
+
* inside one call.
|
|
492
|
+
*
|
|
493
|
+
* The upstream call sits at the top of process_player, before its do-while;
|
|
494
|
+
* calling it immediately before processPlayer() is the same point in the order.
|
|
495
|
+
* player_resting_complete_special, signalled on the line above it, is ported as
|
|
496
|
+
* a predicate the host's rest lifecycle owns (restingCompleteSpecial, WP-11).
|
|
497
|
+
*/
|
|
498
|
+
export function checkForPlayerInterrupt(state) {
|
|
499
|
+
if (!state.checkInterrupt)
|
|
500
|
+
return "go";
|
|
501
|
+
/* The C's gate, unchanged: running, a repeat still pending, or a rest on a
|
|
502
|
+
* 128-game-turn boundary. cmd_get_nrepeats() reads the nrepeats counter on the
|
|
503
|
+
* queued command, which this port carries as PlayerCommand.repeatRemaining
|
|
504
|
+
* (queueCommandRepeat, context.ts), so a pending repeat is one sitting in
|
|
505
|
+
* cmdQueue. */
|
|
506
|
+
const running = (state.run?.running ?? 0) > 0;
|
|
507
|
+
const repeating = (state.cmdQueue ?? []).some((c) => (c.repeatRemaining ?? 0) > 0);
|
|
508
|
+
const resting = playerIsResting(state) && !(state.turn & 0x7f);
|
|
509
|
+
if (!running && !repeating && !resting)
|
|
510
|
+
return "go";
|
|
511
|
+
const answer = state.checkInterrupt();
|
|
512
|
+
if (answer !== "cancel")
|
|
513
|
+
return answer;
|
|
514
|
+
/* EVENT_INPUT_FLUSH, disturb(), msg("Cancelled.") (ui-game.c:660-663).
|
|
515
|
+
* disturb() flushes cmdQueue, so the caller's processPlayer finds nothing
|
|
516
|
+
* queued and asks the host for a fresh command - upstream's break out of
|
|
517
|
+
* process_player with no energy used. */
|
|
518
|
+
disturb(state);
|
|
519
|
+
state.msg?.("Cancelled.");
|
|
520
|
+
return "go";
|
|
521
|
+
}
|
|
522
|
+
/**
|
|
523
|
+
* process_player (game-world.c:933): the interrupt check, then the turn. "pause"
|
|
524
|
+
* is the host asking for its event loop back before the turn is taken.
|
|
525
|
+
*
|
|
526
|
+
* mayPause is false for the FIRST turn of a runGameLoop call. A call resumed
|
|
527
|
+
* after LOOP_STATUS.PAUSE re-enters at that same point, so pausing there would
|
|
528
|
+
* answer a question the host has already been given its event loop to answer -
|
|
529
|
+
* and the run would spin forever, never stepping. A key that arrived during the
|
|
530
|
+
* pause still cancels immediately: only "pause" is overridden, never "cancel".
|
|
531
|
+
*/
|
|
532
|
+
function processPlayerChecked(state, registry, mayPause) {
|
|
533
|
+
if (checkForPlayerInterrupt(state) === "pause" && mayPause)
|
|
534
|
+
return "pause";
|
|
535
|
+
return processPlayer(state, registry);
|
|
536
|
+
}
|
|
537
|
+
/**
|
|
538
|
+
* Take player turns while the player has the energy, letting any monster with
|
|
539
|
+
* strictly more energy act first (process_monsters(player.energy + 1)).
|
|
540
|
+
* Returns a stop status, or null when the player ran out of energy normally.
|
|
541
|
+
*/
|
|
542
|
+
function playerTurnsWhileEnergised(state, registry) {
|
|
543
|
+
while (state.actor.energy >= state.z.moveEnergy) {
|
|
544
|
+
processMonsters(state, state.actor.energy + 1);
|
|
545
|
+
/* handle_stuff runs update_monsters after monster movement (game-world.c
|
|
546
|
+
* process_player -> handle_stuff): a monster that just stepped into view
|
|
547
|
+
* gets its MFLAG_VISIBLE/VIEW set now and fires disturb-on-appearance
|
|
548
|
+
* (known.ts updateMon), so a run/rest is interrupted before the player's
|
|
549
|
+
* next turn instead of one step late. Geometric, no RNG. */
|
|
550
|
+
updateMonsters(state, false);
|
|
551
|
+
const s = loopStop(state);
|
|
552
|
+
if (s)
|
|
553
|
+
return s;
|
|
554
|
+
/* Always reached with a turn already taken this call (runGameLoop's first
|
|
555
|
+
* block returns INPUT otherwise), so pausing here always makes progress. */
|
|
556
|
+
const r = processPlayerChecked(state, registry, true);
|
|
557
|
+
if (r === "pause")
|
|
558
|
+
return LOOP_STATUS.PAUSE;
|
|
559
|
+
const s2 = loopStop(state);
|
|
560
|
+
if (s2)
|
|
561
|
+
return s2;
|
|
562
|
+
/* Terrain damage after each acted turn (game-world.c:864). */
|
|
563
|
+
if (r.energyUsed) {
|
|
564
|
+
playerTakeTerrainDamage(state);
|
|
565
|
+
const s3 = loopStop(state);
|
|
566
|
+
if (s3)
|
|
567
|
+
return s3;
|
|
568
|
+
}
|
|
569
|
+
if (r.needsInput || !r.energyUsed)
|
|
570
|
+
return LOOP_STATUS.INPUT;
|
|
571
|
+
}
|
|
572
|
+
return null;
|
|
573
|
+
}
|
|
574
|
+
/**
|
|
575
|
+
* run_game_loop: advance until the player must act, dies, or a level change is
|
|
576
|
+
* requested. Deterministic under the seeded state.rng.
|
|
577
|
+
*/
|
|
578
|
+
export function runGameLoop(state, registry) {
|
|
579
|
+
/* The player's own turn first. */
|
|
580
|
+
{
|
|
581
|
+
const r = processPlayerChecked(state, registry, false);
|
|
582
|
+
if (r === "pause")
|
|
583
|
+
return LOOP_STATUS.PAUSE;
|
|
584
|
+
const s = loopStop(state);
|
|
585
|
+
if (s)
|
|
586
|
+
return s;
|
|
587
|
+
/* Player can be damaged by terrain (game-world.c:864): fiery terrain (lava)
|
|
588
|
+
* burns the player after each acted turn. */
|
|
589
|
+
if (r.energyUsed) {
|
|
590
|
+
playerTakeTerrainDamage(state);
|
|
591
|
+
const st = loopStop(state);
|
|
592
|
+
if (st)
|
|
593
|
+
return st;
|
|
594
|
+
}
|
|
595
|
+
if (r.needsInput || !r.energyUsed)
|
|
596
|
+
return LOOP_STATUS.INPUT;
|
|
597
|
+
}
|
|
598
|
+
/* The player may still have energy for another turn. */
|
|
599
|
+
{
|
|
600
|
+
const s = playerTurnsWhileEnergised(state, registry);
|
|
601
|
+
if (s)
|
|
602
|
+
return s;
|
|
603
|
+
}
|
|
604
|
+
/* Run the world until the player is needed again. */
|
|
605
|
+
for (;;) {
|
|
606
|
+
const s = loopStop(state);
|
|
607
|
+
if (s)
|
|
608
|
+
return s;
|
|
609
|
+
processMonsters(state, 0);
|
|
610
|
+
resetMonsters(state);
|
|
611
|
+
/* Refresh monster visibility after the world's monster turns too, so a
|
|
612
|
+
* monster stepping into view during the rest/world phase disturbs the
|
|
613
|
+
* player (C handle_stuff after process_monsters(0)). */
|
|
614
|
+
updateMonsters(state, false);
|
|
615
|
+
const s2 = loopStop(state);
|
|
616
|
+
if (s2)
|
|
617
|
+
return s2;
|
|
618
|
+
if (state.turn % 10 === 0) {
|
|
619
|
+
processWorld(state);
|
|
620
|
+
const s3 = loopStop(state);
|
|
621
|
+
if (s3)
|
|
622
|
+
return s3;
|
|
623
|
+
}
|
|
624
|
+
givePlayerEnergy(state);
|
|
625
|
+
state.turn++;
|
|
626
|
+
const s4 = playerTurnsWhileEnergised(state, registry);
|
|
627
|
+
if (s4)
|
|
628
|
+
return s4;
|
|
629
|
+
}
|
|
630
|
+
}
|
|
631
|
+
//# sourceMappingURL=loop.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loop.js","sourceRoot":"","sources":["../../src/game/loop.ts"],"names":[],"mappings":"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"}
|