@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,100 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Projection runtime data and player damage-vs-resistance scaling, ported from
|
|
3
|
+
* reference/src/project.h (struct projection, loaded from projection.txt) and
|
|
4
|
+
* reference/src/project-player.c adjust_dam (L48), Angband 4.2.6.
|
|
5
|
+
*
|
|
6
|
+
* The generated projections.ts carries only the PROJ names / enum. The
|
|
7
|
+
* behavioural data - the resistance numerator / denominator, the damage
|
|
8
|
+
* divisor and cap, and the obvious / wake flags project_m and project_p read -
|
|
9
|
+
* lives in projection.json and is bound here into ProjectionInfo[], indexed by
|
|
10
|
+
* PROJ value.
|
|
11
|
+
*
|
|
12
|
+
* adjust_dam is the player-side analog of project-mon.c's resist helpers: it
|
|
13
|
+
* scales incoming damage by the player's resistance level for the projection
|
|
14
|
+
* type. It stays pure - the caller looks up the resistance (with the ICE->COLD
|
|
15
|
+
* remap and equip_learn side effect) and passes it in, exactly the split the
|
|
16
|
+
* effect handlers and project_p need.
|
|
17
|
+
*
|
|
18
|
+
* desc / playerDesc / lashDesc are the display-only strings (struct
|
|
19
|
+
* projection's desc / player_desc / lash_desc) consumed by
|
|
20
|
+
* effects/effect-info.ts (effect_projection, effect_describe): desc is always
|
|
21
|
+
* present; playerDesc and lashDesc are absent (null) for projection types the
|
|
22
|
+
* pack never gives a "player-desc" / "lash-desc" line, exactly as upstream
|
|
23
|
+
* leaves those fields NULL.
|
|
24
|
+
*/
|
|
25
|
+
import { Dice } from "../dice.js";
|
|
26
|
+
import type { Aspect, Rng } from "../rng.js";
|
|
27
|
+
/** struct projection: the behavioural data for one PROJ_ type. */
|
|
28
|
+
export interface ProjectionInfo {
|
|
29
|
+
/** PROJ_ value (index into the table). */
|
|
30
|
+
index: number;
|
|
31
|
+
/** Upstream code, e.g. "ACID". */
|
|
32
|
+
code: string;
|
|
33
|
+
/** In-game name, e.g. "acid". */
|
|
34
|
+
name: string;
|
|
35
|
+
/** "element" | "environs" | "monster". */
|
|
36
|
+
type: string;
|
|
37
|
+
/** Resistance numerator (0 when the type has no variable resistance). */
|
|
38
|
+
numerator: number;
|
|
39
|
+
/** Resistance denominator dice ("3", "8+1d4"), or null when absent. */
|
|
40
|
+
denominator: Dice | null;
|
|
41
|
+
/** diameter-of-source divisor (default 1). */
|
|
42
|
+
divisor: number;
|
|
43
|
+
/** Maximum damage the projection can deal (0 when uncapped/absent). */
|
|
44
|
+
damageCap: number;
|
|
45
|
+
/** Whether the effect's nature is obvious to the player. */
|
|
46
|
+
obvious: boolean;
|
|
47
|
+
/** Whether the projection forces affected monsters awake. */
|
|
48
|
+
wake: boolean;
|
|
49
|
+
/** MSG_ type name for messaging, or null. */
|
|
50
|
+
msgt: string | null;
|
|
51
|
+
/** Colour name (resolved to an attr by the render layer). */
|
|
52
|
+
color: string | null;
|
|
53
|
+
/** "hit by X" description used when the player cannot see the source. */
|
|
54
|
+
blindDesc: string | null;
|
|
55
|
+
/** Generic description ("acid", "fear", ...); always present. */
|
|
56
|
+
desc: string;
|
|
57
|
+
/** Description as experienced by the player ("acid", "frost", ...), or null. */
|
|
58
|
+
playerDesc: string | null;
|
|
59
|
+
/** Description for the LASH effect handler ("acid", "venom", ...), or null. */
|
|
60
|
+
lashDesc: string | null;
|
|
61
|
+
}
|
|
62
|
+
/** One projection.json record (only the fields bound here are typed). */
|
|
63
|
+
export interface ProjectionRecordJson {
|
|
64
|
+
code: string;
|
|
65
|
+
name?: string;
|
|
66
|
+
type: string;
|
|
67
|
+
numerator?: number;
|
|
68
|
+
denominator?: string;
|
|
69
|
+
divisor?: number;
|
|
70
|
+
"damage-cap"?: number;
|
|
71
|
+
obvious?: number;
|
|
72
|
+
wake?: number;
|
|
73
|
+
msgt?: string;
|
|
74
|
+
color?: string;
|
|
75
|
+
desc?: string;
|
|
76
|
+
"player-desc"?: string;
|
|
77
|
+
"lash-desc"?: string;
|
|
78
|
+
"blind-desc"?: string;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Bind projection.json into a ProjectionInfo table indexed by PROJ value. The
|
|
82
|
+
* projection.txt / .json record order does NOT match the PROJ enum (upstream
|
|
83
|
+
* matches records to slots by code at load), so each record is placed at its
|
|
84
|
+
* resolved PROJ[code] slot. An unknown code, or an unfilled or duplicated slot,
|
|
85
|
+
* throws so pack / codegen drift is caught at load.
|
|
86
|
+
*/
|
|
87
|
+
export declare function bindProjections(records: ProjectionRecordJson[]): ProjectionInfo[];
|
|
88
|
+
/**
|
|
89
|
+
* adjust_dam: scale `dam` for the player's `resistLevel` against projection
|
|
90
|
+
* `type`. resistLevel is the caller-supplied el_info[res_type].res_level (the
|
|
91
|
+
* caller applies the ICE->COLD remap and any equip-learn side effect): 3 is
|
|
92
|
+
* immune, -1 vulnerable, positive values each divide by numerator/denominator.
|
|
93
|
+
*
|
|
94
|
+
* `minusAc` is minus_ac(p): acid damage is halved when the player has armour
|
|
95
|
+
* that acid can damage. Immunity and vulnerability short-circuit exactly as
|
|
96
|
+
* upstream; the variable-resist denominator is evaluated with the aspect
|
|
97
|
+
* inverted (least damage uses the largest divisor).
|
|
98
|
+
*/
|
|
99
|
+
export declare function adjustDam(rng: Rng, projections: readonly ProjectionInfo[], type: number, dam: number, aspect: Aspect, resistLevel: number, minusAc?: boolean): number;
|
|
100
|
+
//# sourceMappingURL=projection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"projection.d.ts","sourceRoot":"","sources":["../../src/world/projection.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,OAAO,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAI7C,kEAAkE;AAClE,MAAM,WAAW,cAAc;IAC7B,0CAA0C;IAC1C,KAAK,EAAE,MAAM,CAAC;IACd,kCAAkC;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,iCAAiC;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,0CAA0C;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,yEAAyE;IACzE,SAAS,EAAE,MAAM,CAAC;IAClB,uEAAuE;IACvE,WAAW,EAAE,IAAI,GAAG,IAAI,CAAC;IACzB,8CAA8C;IAC9C,OAAO,EAAE,MAAM,CAAC;IAChB,uEAAuE;IACvE,SAAS,EAAE,MAAM,CAAC;IAClB,4DAA4D;IAC5D,OAAO,EAAE,OAAO,CAAC;IACjB,6DAA6D;IAC7D,IAAI,EAAE,OAAO,CAAC;IACd,6CAA6C;IAC7C,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,6DAA6D;IAC7D,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,yEAAyE;IACzE,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,iEAAiE;IACjE,IAAI,EAAE,MAAM,CAAC;IACb,gFAAgF;IAChF,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,+EAA+E;IAC/E,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,yEAAyE;AACzE,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,oBAAoB,EAAE,GAC9B,cAAc,EAAE,CA8ElB;AAOD;;;;;;;;;;GAUG;AACH,wBAAgB,SAAS,CACvB,GAAG,EAAE,GAAG,EACR,WAAW,EAAE,SAAS,cAAc,EAAE,EACtC,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,OAAO,UAAQ,GACd,MAAM,CA6BR"}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Projection runtime data and player damage-vs-resistance scaling, ported from
|
|
3
|
+
* reference/src/project.h (struct projection, loaded from projection.txt) and
|
|
4
|
+
* reference/src/project-player.c adjust_dam (L48), Angband 4.2.6.
|
|
5
|
+
*
|
|
6
|
+
* The generated projections.ts carries only the PROJ names / enum. The
|
|
7
|
+
* behavioural data - the resistance numerator / denominator, the damage
|
|
8
|
+
* divisor and cap, and the obvious / wake flags project_m and project_p read -
|
|
9
|
+
* lives in projection.json and is bound here into ProjectionInfo[], indexed by
|
|
10
|
+
* PROJ value.
|
|
11
|
+
*
|
|
12
|
+
* adjust_dam is the player-side analog of project-mon.c's resist helpers: it
|
|
13
|
+
* scales incoming damage by the player's resistance level for the projection
|
|
14
|
+
* type. It stays pure - the caller looks up the resistance (with the ICE->COLD
|
|
15
|
+
* remap and equip_learn side effect) and passes it in, exactly the split the
|
|
16
|
+
* effect handlers and project_p need.
|
|
17
|
+
*
|
|
18
|
+
* desc / playerDesc / lashDesc are the display-only strings (struct
|
|
19
|
+
* projection's desc / player_desc / lash_desc) consumed by
|
|
20
|
+
* effects/effect-info.ts (effect_projection, effect_describe): desc is always
|
|
21
|
+
* present; playerDesc and lashDesc are absent (null) for projection types the
|
|
22
|
+
* pack never gives a "player-desc" / "lash-desc" line, exactly as upstream
|
|
23
|
+
* leaves those fields NULL.
|
|
24
|
+
*/
|
|
25
|
+
import { Dice } from "../dice.js";
|
|
26
|
+
import { ELEMENT_ENTRIES, PROJ, PROJECTION_ENTRIES } from "../generated/index.js";
|
|
27
|
+
import { messageLookupByName } from "../sound/engine.js";
|
|
28
|
+
/**
|
|
29
|
+
* Bind projection.json into a ProjectionInfo table indexed by PROJ value. The
|
|
30
|
+
* projection.txt / .json record order does NOT match the PROJ enum (upstream
|
|
31
|
+
* matches records to slots by code at load), so each record is placed at its
|
|
32
|
+
* resolved PROJ[code] slot. An unknown code, or an unfilled or duplicated slot,
|
|
33
|
+
* throws so pack / codegen drift is caught at load.
|
|
34
|
+
*/
|
|
35
|
+
export function bindProjections(records) {
|
|
36
|
+
/* 25 elements (list-elements.h) precede the list-projections.h entries. */
|
|
37
|
+
const total = PROJECTION_ENTRIES.length + ELEMENT_ENTRIES.length;
|
|
38
|
+
const out = new Array(total).fill(null);
|
|
39
|
+
/*
|
|
40
|
+
* parse_projection_code (obj-init.c) numbers records sequentially and
|
|
41
|
+
* returns PARSE_ERROR_ELEMENT_NAME_MISMATCH when a record whose position is
|
|
42
|
+
* below ELEM_MAX does not carry element_names[position] as its code
|
|
43
|
+
* (proj.c test_code_mismatch0). Binding below is by code, so position would
|
|
44
|
+
* otherwise be free - but el_info[] is indexed by ELEM value and the
|
|
45
|
+
* ordering invariant is what upstream relies on to keep the two in step, so
|
|
46
|
+
* the port enforces it too, on the same input, before binding anything.
|
|
47
|
+
*
|
|
48
|
+
* A record that is absent entirely is NOT this error: upstream never runs
|
|
49
|
+
* the check for a position no record reached, and reports the short file as
|
|
50
|
+
* PARSE_ERROR_TOO_FEW_ENTRIES from finish_parse_projection instead. That is
|
|
51
|
+
* the "no record for PROJ value" throw at the bottom of this function, so
|
|
52
|
+
* missing positions are deliberately skipped here.
|
|
53
|
+
*/
|
|
54
|
+
for (let i = 0; i < ELEMENT_ENTRIES.length && i < records.length; i++) {
|
|
55
|
+
const rec = records[i];
|
|
56
|
+
const expected = ELEMENT_ENTRIES[i].name;
|
|
57
|
+
if (rec.code !== expected) {
|
|
58
|
+
throw new Error(`projection: record ${String(i)} is ${rec.code}, expected the ` +
|
|
59
|
+
`element ${expected} (PARSE_ERROR_ELEMENT_NAME_MISMATCH)`);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
for (const rec of records) {
|
|
63
|
+
const index = PROJ[rec.code];
|
|
64
|
+
if (index === undefined) {
|
|
65
|
+
throw new Error(`projection: unknown code ${rec.code}`);
|
|
66
|
+
}
|
|
67
|
+
if (out[index]) {
|
|
68
|
+
throw new Error(`projection: duplicate code ${rec.code}`);
|
|
69
|
+
}
|
|
70
|
+
/* parse_projection_message_type: an unknown MSG_ name is
|
|
71
|
+
* PARSE_ERROR_INVALID_MESSAGE (proj.c test_msgt_bad0). */
|
|
72
|
+
if (rec.msgt !== undefined && messageLookupByName(rec.msgt) < 0) {
|
|
73
|
+
throw new Error(`projection: ${rec.code}: invalid msgt ${rec.msgt} ` +
|
|
74
|
+
`(PARSE_ERROR_INVALID_MESSAGE)`);
|
|
75
|
+
}
|
|
76
|
+
let denominator = null;
|
|
77
|
+
if (rec.denominator !== undefined) {
|
|
78
|
+
denominator = new Dice();
|
|
79
|
+
denominator.parseString(rec.denominator);
|
|
80
|
+
}
|
|
81
|
+
out[index] = {
|
|
82
|
+
index,
|
|
83
|
+
code: rec.code,
|
|
84
|
+
name: rec.name ?? rec.code,
|
|
85
|
+
type: rec.type,
|
|
86
|
+
numerator: rec.numerator ?? 0,
|
|
87
|
+
denominator,
|
|
88
|
+
divisor: rec.divisor ?? 1,
|
|
89
|
+
damageCap: rec["damage-cap"] ?? 0,
|
|
90
|
+
obvious: rec.obvious === 1,
|
|
91
|
+
wake: rec.wake === 1,
|
|
92
|
+
msgt: rec.msgt ?? null,
|
|
93
|
+
color: rec.color ?? null,
|
|
94
|
+
blindDesc: rec["blind-desc"] ?? null,
|
|
95
|
+
desc: rec.desc ?? "",
|
|
96
|
+
playerDesc: rec["player-desc"] ?? null,
|
|
97
|
+
lashDesc: rec["lash-desc"] ?? null,
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
for (let i = 0; i < total; i++) {
|
|
101
|
+
if (!out[i])
|
|
102
|
+
throw new Error(`projection: no record for PROJ value ${i}`);
|
|
103
|
+
}
|
|
104
|
+
return out;
|
|
105
|
+
}
|
|
106
|
+
/** RES_LEVEL that means full immunity (el_info res_level 3). */
|
|
107
|
+
const RESIST_IMMUNE = 3;
|
|
108
|
+
/** RES_LEVEL that means vulnerability. */
|
|
109
|
+
const RESIST_VULNERABLE = -1;
|
|
110
|
+
/**
|
|
111
|
+
* adjust_dam: scale `dam` for the player's `resistLevel` against projection
|
|
112
|
+
* `type`. resistLevel is the caller-supplied el_info[res_type].res_level (the
|
|
113
|
+
* caller applies the ICE->COLD remap and any equip-learn side effect): 3 is
|
|
114
|
+
* immune, -1 vulnerable, positive values each divide by numerator/denominator.
|
|
115
|
+
*
|
|
116
|
+
* `minusAc` is minus_ac(p): acid damage is halved when the player has armour
|
|
117
|
+
* that acid can damage. Immunity and vulnerability short-circuit exactly as
|
|
118
|
+
* upstream; the variable-resist denominator is evaluated with the aspect
|
|
119
|
+
* inverted (least damage uses the largest divisor).
|
|
120
|
+
*/
|
|
121
|
+
export function adjustDam(rng, projections, type, dam, aspect, resistLevel, minusAc = false) {
|
|
122
|
+
/* Immune */
|
|
123
|
+
if (resistLevel === RESIST_IMMUNE)
|
|
124
|
+
return 0;
|
|
125
|
+
/* Hack - acid damage is halved by armour. */
|
|
126
|
+
if (type === PROJ.ACID && minusAc)
|
|
127
|
+
dam = Math.trunc((dam + 1) / 2);
|
|
128
|
+
/* Vulnerable */
|
|
129
|
+
if (resistLevel === RESIST_VULNERABLE)
|
|
130
|
+
return Math.trunc((dam * 4) / 3);
|
|
131
|
+
const info = projections[type];
|
|
132
|
+
let denom = 0;
|
|
133
|
+
if (info && info.denominator) {
|
|
134
|
+
/*
|
|
135
|
+
* Variable resists vary the denominator, so invert the aspect: the
|
|
136
|
+
* minimum damage uses the maximum divisor and vice versa.
|
|
137
|
+
*/
|
|
138
|
+
let denomAspect = aspect;
|
|
139
|
+
if (aspect === "minimise")
|
|
140
|
+
denomAspect = "maximise";
|
|
141
|
+
else if (aspect === "maximise")
|
|
142
|
+
denomAspect = "minimise";
|
|
143
|
+
denom = info.denominator.evaluate(rng, 0, denomAspect);
|
|
144
|
+
}
|
|
145
|
+
const numerator = info ? info.numerator : 0;
|
|
146
|
+
for (let i = resistLevel; i > 0; i--) {
|
|
147
|
+
if (denom)
|
|
148
|
+
dam = Math.trunc((dam * numerator) / denom);
|
|
149
|
+
}
|
|
150
|
+
return dam;
|
|
151
|
+
}
|
|
152
|
+
//# sourceMappingURL=projection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"projection.js","sourceRoot":"","sources":["../../src/world/projection.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAElC,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAClF,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAyDzD;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAC7B,OAA+B;IAE/B,2EAA2E;IAC3E,MAAM,KAAK,GAAG,kBAAkB,CAAC,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC;IACjE,MAAM,GAAG,GAAiC,IAAI,KAAK,CACjD,KAAK,CACN,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEb;;;;;;;;;;;;;;OAcG;IACH,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,CAAC,MAAM,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtE,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAyB,CAAC;QAC/C,MAAM,QAAQ,GAAI,eAAe,CAAC,CAAC,CAAsB,CAAC,IAAI,CAAC;QAC/D,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CACb,sBAAsB,MAAM,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,IAAI,iBAAiB;gBAC7D,WAAW,QAAQ,sCAAsC,CAC5D,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QAC1B,MAAM,KAAK,GAAI,IAA+B,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACzD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,4BAA4B,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;QAC1D,CAAC;QACD,IAAI,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,8BAA8B,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;QAC5D,CAAC;QACD;kEAC0D;QAC1D,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,IAAI,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YAChE,MAAM,IAAI,KAAK,CACb,eAAe,GAAG,CAAC,IAAI,kBAAkB,GAAG,CAAC,IAAI,GAAG;gBAClD,+BAA+B,CAClC,CAAC;QACJ,CAAC;QACD,IAAI,WAAW,GAAgB,IAAI,CAAC;QACpC,IAAI,GAAG,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;YAClC,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC;YACzB,WAAW,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAC3C,CAAC;QACD,GAAG,CAAC,KAAK,CAAC,GAAG;YACX,KAAK;YACL,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI;YAC1B,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,SAAS,EAAE,GAAG,CAAC,SAAS,IAAI,CAAC;YAC7B,WAAW;YACX,OAAO,EAAE,GAAG,CAAC,OAAO,IAAI,CAAC;YACzB,SAAS,EAAE,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC;YACjC,OAAO,EAAE,GAAG,CAAC,OAAO,KAAK,CAAC;YAC1B,IAAI,EAAE,GAAG,CAAC,IAAI,KAAK,CAAC;YACpB,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,IAAI;YACtB,KAAK,EAAE,GAAG,CAAC,KAAK,IAAI,IAAI;YACxB,SAAS,EAAE,GAAG,CAAC,YAAY,CAAC,IAAI,IAAI;YACpC,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,EAAE;YACpB,UAAU,EAAE,GAAG,CAAC,aAAa,CAAC,IAAI,IAAI;YACtC,QAAQ,EAAE,GAAG,CAAC,WAAW,CAAC,IAAI,IAAI;SACnC,CAAC;IACJ,CAAC;IAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;QAC/B,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,EAAE,CAAC,CAAC;IAC5E,CAAC;IACD,OAAO,GAAuB,CAAC;AACjC,CAAC;AAED,gEAAgE;AAChE,MAAM,aAAa,GAAG,CAAC,CAAC;AACxB,0CAA0C;AAC1C,MAAM,iBAAiB,GAAG,CAAC,CAAC,CAAC;AAE7B;;;;;;;;;;GAUG;AACH,MAAM,UAAU,SAAS,CACvB,GAAQ,EACR,WAAsC,EACtC,IAAY,EACZ,GAAW,EACX,MAAc,EACd,WAAmB,EACnB,OAAO,GAAG,KAAK;IAEf,YAAY;IACZ,IAAI,WAAW,KAAK,aAAa;QAAE,OAAO,CAAC,CAAC;IAE5C,6CAA6C;IAC7C,IAAI,IAAI,KAAK,IAAI,CAAC,IAAI,IAAI,OAAO;QAAE,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAEnE,gBAAgB;IAChB,IAAI,WAAW,KAAK,iBAAiB;QAAE,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAExE,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAC/B,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,IAAI,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;QAC7B;;;WAGG;QACH,IAAI,WAAW,GAAW,MAAM,CAAC;QACjC,IAAI,MAAM,KAAK,UAAU;YAAE,WAAW,GAAG,UAAU,CAAC;aAC/C,IAAI,MAAM,KAAK,UAAU;YAAE,WAAW,GAAG,UAAU,CAAC;QACzD,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC;IACzD,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5C,KAAK,IAAI,CAAC,GAAG,WAAW,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,IAAI,KAAK;YAAE,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,SAAS,CAAC,GAAG,KAAK,CAAC,CAAC;IACzD,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* scatter / scatter_ext from cave.c: randomly selected locations near a
|
|
3
|
+
* grid, fully in bounds, optionally in line of sight and satisfying a
|
|
4
|
+
* predicate.
|
|
5
|
+
*
|
|
6
|
+
* Upstream provenance: reference/src/cave.c (scatter, scatter_ext).
|
|
7
|
+
*/
|
|
8
|
+
import type { Loc } from "../loc.js";
|
|
9
|
+
import type { Rng } from "../rng.js";
|
|
10
|
+
import type { Chunk } from "./chunk.js";
|
|
11
|
+
export type ScatterPred = (c: Chunk, grid: Loc) => boolean;
|
|
12
|
+
/**
|
|
13
|
+
* Find up to n distinct random locations within distance d of grid.
|
|
14
|
+
* Mirrors scatter_ext: collect every feasible grid in the (2d+1)^2 box
|
|
15
|
+
* (skipping the exact-distance check when d <= 1, as upstream does),
|
|
16
|
+
* then draw without replacement using rng.randint0.
|
|
17
|
+
*/
|
|
18
|
+
export declare function scatterExt(c: Chunk, rng: Rng, n: number, grid: Loc, d: number, needLos: boolean, pred?: ScatterPred): Loc[];
|
|
19
|
+
/**
|
|
20
|
+
* scatter: the single-location convenience wrapper. Returns the found
|
|
21
|
+
* location, or null when no feasible grid exists (upstream leaves the
|
|
22
|
+
* output loc untouched in that case; callers there always pre-fill it).
|
|
23
|
+
*/
|
|
24
|
+
export declare function scatter(c: Chunk, rng: Rng, grid: Loc, d: number, needLos: boolean): Loc | null;
|
|
25
|
+
//# sourceMappingURL=scatter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scatter.d.ts","sourceRoot":"","sources":["../../src/world/scatter.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAErC,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAGxC,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC;AAE3D;;;;;GAKG;AACH,wBAAgB,UAAU,CACxB,CAAC,EAAE,KAAK,EACR,GAAG,EAAE,GAAG,EACR,CAAC,EAAE,MAAM,EACT,IAAI,EAAE,GAAG,EACT,CAAC,EAAE,MAAM,EACT,OAAO,EAAE,OAAO,EAChB,IAAI,CAAC,EAAE,WAAW,GACjB,GAAG,EAAE,CAwBP;AAED;;;;GAIG;AACH,wBAAgB,OAAO,CACrB,CAAC,EAAE,KAAK,EACR,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,GAAG,EACT,CAAC,EAAE,MAAM,EACT,OAAO,EAAE,OAAO,GACf,GAAG,GAAG,IAAI,CAGZ"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* scatter / scatter_ext from cave.c: randomly selected locations near a
|
|
3
|
+
* grid, fully in bounds, optionally in line of sight and satisfying a
|
|
4
|
+
* predicate.
|
|
5
|
+
*
|
|
6
|
+
* Upstream provenance: reference/src/cave.c (scatter, scatter_ext).
|
|
7
|
+
*/
|
|
8
|
+
import { distance } from "../loc.js";
|
|
9
|
+
import { loc } from "../loc.js";
|
|
10
|
+
import { los } from "./view.js";
|
|
11
|
+
/**
|
|
12
|
+
* Find up to n distinct random locations within distance d of grid.
|
|
13
|
+
* Mirrors scatter_ext: collect every feasible grid in the (2d+1)^2 box
|
|
14
|
+
* (skipping the exact-distance check when d <= 1, as upstream does),
|
|
15
|
+
* then draw without replacement using rng.randint0.
|
|
16
|
+
*/
|
|
17
|
+
export function scatterExt(c, rng, n, grid, d, needLos, pred) {
|
|
18
|
+
const feas = [];
|
|
19
|
+
for (let y = grid.y - d; y <= grid.y + d; y++) {
|
|
20
|
+
for (let x = grid.x - d; x <= grid.x + d; x++) {
|
|
21
|
+
const g = loc(x, y);
|
|
22
|
+
if (!c.inBoundsFully(g))
|
|
23
|
+
continue;
|
|
24
|
+
if (d > 1 && distance(grid, g) > d)
|
|
25
|
+
continue;
|
|
26
|
+
if (needLos && !los(c, grid, g))
|
|
27
|
+
continue;
|
|
28
|
+
if (pred && !pred(c, g))
|
|
29
|
+
continue;
|
|
30
|
+
feas.push(g);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
const places = [];
|
|
34
|
+
let nfeas = feas.length;
|
|
35
|
+
while (places.length < n && nfeas > 0) {
|
|
36
|
+
const choice = rng.randint0(nfeas);
|
|
37
|
+
// feas entries below nfeas are always defined; the picked one is
|
|
38
|
+
// replaced by the last feasible entry, exactly as upstream shifts.
|
|
39
|
+
places.push(feas[choice]);
|
|
40
|
+
nfeas--;
|
|
41
|
+
feas[choice] = feas[nfeas];
|
|
42
|
+
}
|
|
43
|
+
return places;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* scatter: the single-location convenience wrapper. Returns the found
|
|
47
|
+
* location, or null when no feasible grid exists (upstream leaves the
|
|
48
|
+
* output loc untouched in that case; callers there always pre-fill it).
|
|
49
|
+
*/
|
|
50
|
+
export function scatter(c, rng, grid, d, needLos) {
|
|
51
|
+
const found = scatterExt(c, rng, 1, grid, d, needLos);
|
|
52
|
+
return found.length > 0 ? found[0] : null;
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=scatter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scatter.js","sourceRoot":"","sources":["../../src/world/scatter.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAErC,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAGhC,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAIhC;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CACxB,CAAQ,EACR,GAAQ,EACR,CAAS,EACT,IAAS,EACT,CAAS,EACT,OAAgB,EAChB,IAAkB;IAElB,MAAM,IAAI,GAAU,EAAE,CAAC;IACvB,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9C,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC9C,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACpB,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC;gBAAE,SAAS;YAClC,IAAI,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC;gBAAE,SAAS;YAC7C,IAAI,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;gBAAE,SAAS;YAC1C,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;gBAAE,SAAS;YAClC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACf,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAU,EAAE,CAAC;IACzB,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;IACxB,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QACtC,MAAM,MAAM,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACnC,iEAAiE;QACjE,mEAAmE;QACnE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAQ,CAAC,CAAC;QACjC,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAQ,CAAC;IACpC,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,OAAO,CACrB,CAAQ,EACR,GAAQ,EACR,IAAS,EACT,CAAS,EACT,OAAgB;IAEhB,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;IACtD,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAE,KAAK,CAAC,CAAC,CAAS,CAAC,CAAC,CAAC,IAAI,CAAC;AACrD,CAAC"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Trap kinds bound from trap.json (upstream lib/gamedata/trap.txt via
|
|
3
|
+
* init.c parse_trap_*), ported from the data half of reference/src/trap.c
|
|
4
|
+
* (Angband 4.2.6). Pure data: the live trap instances and their behaviour
|
|
5
|
+
* live in game/trap.ts (they mutate GameState).
|
|
6
|
+
*
|
|
7
|
+
* The "visibility" line is the kind's power random-value (rolled at
|
|
8
|
+
* placement against trap_level and matched against the SEARCH skill when
|
|
9
|
+
* revealing). Effects stay raw EffectRecordJson chains, built per
|
|
10
|
+
* activation exactly like object effects (game/obj-cmd.ts).
|
|
11
|
+
*/
|
|
12
|
+
import { FlagSet } from "../bitflag.js";
|
|
13
|
+
import type { RandomValue } from "../rng.js";
|
|
14
|
+
import type { EffectRecordJson } from "../obj/types.js";
|
|
15
|
+
/** TRF_SIZE = FLAG_SIZE(TRF_MAX): byte size of a trap FlagSet. */
|
|
16
|
+
export declare const TRF_SIZE: number;
|
|
17
|
+
/** struct trap_kind. */
|
|
18
|
+
export interface TrapKind {
|
|
19
|
+
/** Index in the bound table (t_idx). */
|
|
20
|
+
tidx: number;
|
|
21
|
+
/** Short name ("pit"); lookup_trap matches on desc. */
|
|
22
|
+
name: string;
|
|
23
|
+
/** Longer description used by lookup_trap ("spiked pit"). */
|
|
24
|
+
desc: string;
|
|
25
|
+
/**
|
|
26
|
+
* trap->text (trap.c parse_trap_desc / init.c L1887): the long recall
|
|
27
|
+
* paragraph shown by trap_lore (ui-knowledge.c L2588). Compiled from the
|
|
28
|
+
* JSON `desc` lines; empty when the record has none.
|
|
29
|
+
*/
|
|
30
|
+
text: string;
|
|
31
|
+
glyph: string;
|
|
32
|
+
color: string;
|
|
33
|
+
/** appear: rarity (0 = never placed randomly), min depth, max number. */
|
|
34
|
+
rarity: number;
|
|
35
|
+
minDepth: number;
|
|
36
|
+
maxNum: number;
|
|
37
|
+
/** visibility: the power random-value. */
|
|
38
|
+
power: RandomValue;
|
|
39
|
+
flags: FlagSet;
|
|
40
|
+
effect: EffectRecordJson[];
|
|
41
|
+
effectXtra: EffectRecordJson[];
|
|
42
|
+
/** save: OF_ flag indexes that let the player evade entirely. */
|
|
43
|
+
saveFlags: number[];
|
|
44
|
+
msg: string;
|
|
45
|
+
msgGood: string;
|
|
46
|
+
msgBad: string;
|
|
47
|
+
msgXtra: string;
|
|
48
|
+
}
|
|
49
|
+
/** trap.json record shape (compiled from trap.txt). */
|
|
50
|
+
export interface TrapRecordJson {
|
|
51
|
+
name: {
|
|
52
|
+
name: string;
|
|
53
|
+
desc: string;
|
|
54
|
+
};
|
|
55
|
+
graphics: {
|
|
56
|
+
glyph: string;
|
|
57
|
+
color: string;
|
|
58
|
+
};
|
|
59
|
+
appear?: {
|
|
60
|
+
rarity: number;
|
|
61
|
+
mindepth: number;
|
|
62
|
+
maxnum: number;
|
|
63
|
+
};
|
|
64
|
+
visibility?: string;
|
|
65
|
+
flags?: string[];
|
|
66
|
+
effect?: EffectRecordJson[];
|
|
67
|
+
"effect-xtra"?: EffectRecordJson[];
|
|
68
|
+
save?: string;
|
|
69
|
+
desc?: string[];
|
|
70
|
+
msg?: string[];
|
|
71
|
+
"msg-good"?: string[];
|
|
72
|
+
"msg-bad"?: string[];
|
|
73
|
+
"msg-xtra"?: string[];
|
|
74
|
+
}
|
|
75
|
+
/** Bind trap.json records into the trap_kind table (index = t_idx). */
|
|
76
|
+
export declare function bindTraps(records: readonly TrapRecordJson[]): TrapKind[];
|
|
77
|
+
/**
|
|
78
|
+
* lookup_trap (trap.c:44-63): exact desc match wins, otherwise the FIRST close
|
|
79
|
+
* match. The two tests differ in case sensitivity and the port had them the same:
|
|
80
|
+
* equality is `streq` (:54) but the close match is `my_stristr` (:57), i.e.
|
|
81
|
+
* case-INsensitive. Found by W1-CITED.
|
|
82
|
+
*/
|
|
83
|
+
export declare function lookupTrap(kinds: readonly TrapKind[], desc: string): TrapKind | null;
|
|
84
|
+
//# sourceMappingURL=trap.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trap.d.ts","sourceRoot":"","sources":["../../src/world/trap.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,OAAO,EAAY,MAAM,eAAe,CAAC;AAIlD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAExD,kEAAkE;AAClE,eAAO,MAAM,QAAQ,QAAqC,CAAC;AAE3D,wBAAwB;AACxB,MAAM,WAAW,QAAQ;IACvB,wCAAwC;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,uDAAuD;IACvD,IAAI,EAAE,MAAM,CAAC;IACb,6DAA6D;IAC7D,IAAI,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,yEAAyE;IACzE,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,0CAA0C;IAC1C,KAAK,EAAE,WAAW,CAAC;IACnB,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,gBAAgB,EAAE,CAAC;IAC3B,UAAU,EAAE,gBAAgB,EAAE,CAAC;IAC/B,iEAAiE;IACjE,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,uDAAuD;AACvD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACrC,QAAQ,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3C,MAAM,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC5B,aAAa,CAAC,EAAE,gBAAgB,EAAE,CAAC;IACnC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AA8CD,uEAAuE;AACvE,wBAAgB,SAAS,CAAC,OAAO,EAAE,SAAS,cAAc,EAAE,GAAG,QAAQ,EAAE,CAqBxE;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,SAAS,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CAQpF"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Trap kinds bound from trap.json (upstream lib/gamedata/trap.txt via
|
|
3
|
+
* init.c parse_trap_*), ported from the data half of reference/src/trap.c
|
|
4
|
+
* (Angband 4.2.6). Pure data: the live trap instances and their behaviour
|
|
5
|
+
* live in game/trap.ts (they mutate GameState).
|
|
6
|
+
*
|
|
7
|
+
* The "visibility" line is the kind's power random-value (rolled at
|
|
8
|
+
* placement against trap_level and matched against the SEARCH skill when
|
|
9
|
+
* revealing). Effects stay raw EffectRecordJson chains, built per
|
|
10
|
+
* activation exactly like object effects (game/obj-cmd.ts).
|
|
11
|
+
*/
|
|
12
|
+
import { FlagSet, flagSize } from "../bitflag.js";
|
|
13
|
+
import { Dice } from "../dice.js";
|
|
14
|
+
import { OF, TRAP_FLAG_ENTRIES, TRF } from "../generated/index.js";
|
|
15
|
+
import { myStristr } from "../guard.js";
|
|
16
|
+
/** TRF_SIZE = FLAG_SIZE(TRF_MAX): byte size of a trap FlagSet. */
|
|
17
|
+
export const TRF_SIZE = flagSize(TRAP_FLAG_ENTRIES.length);
|
|
18
|
+
function parseTrapFlags(lines) {
|
|
19
|
+
const flags = new FlagSet(TRF_SIZE);
|
|
20
|
+
if (!lines)
|
|
21
|
+
return flags;
|
|
22
|
+
for (const line of lines) {
|
|
23
|
+
/* A non-string entry is the compiler's presence marker for "flags:"
|
|
24
|
+
* with no value: parse_trap_flags (init.c L1612-1614) returns
|
|
25
|
+
* PARSE_ERROR_NONE with t->flags untouched (partrap.c test_flags0). */
|
|
26
|
+
if (typeof line !== "string")
|
|
27
|
+
continue;
|
|
28
|
+
for (const raw of line.split("|")) {
|
|
29
|
+
const name = raw.trim();
|
|
30
|
+
if (!name)
|
|
31
|
+
continue;
|
|
32
|
+
const value = TRF[name];
|
|
33
|
+
if (value === undefined || value === 0) {
|
|
34
|
+
throw new Error(`trap: unknown flag ${name}`);
|
|
35
|
+
}
|
|
36
|
+
flags.on(value);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
return flags;
|
|
40
|
+
}
|
|
41
|
+
function parsePower(expr) {
|
|
42
|
+
if (!expr)
|
|
43
|
+
return { base: 0, dice: 0, sides: 0, mBonus: 0 };
|
|
44
|
+
const d = new Dice();
|
|
45
|
+
if (!d.parseString(expr))
|
|
46
|
+
throw new Error(`trap: bad power "${expr}"`);
|
|
47
|
+
return d.randomValue();
|
|
48
|
+
}
|
|
49
|
+
function parseSaveFlags(save) {
|
|
50
|
+
if (!save)
|
|
51
|
+
return [];
|
|
52
|
+
const out = [];
|
|
53
|
+
for (const raw of save.split("|")) {
|
|
54
|
+
const name = raw.trim();
|
|
55
|
+
if (!name)
|
|
56
|
+
continue;
|
|
57
|
+
const value = OF[name];
|
|
58
|
+
if (value === undefined)
|
|
59
|
+
throw new Error(`trap: unknown save flag ${name}`);
|
|
60
|
+
out.push(value);
|
|
61
|
+
}
|
|
62
|
+
return out;
|
|
63
|
+
}
|
|
64
|
+
const joined = (lines) => lines ? lines.join("") : "";
|
|
65
|
+
/** Bind trap.json records into the trap_kind table (index = t_idx). */
|
|
66
|
+
export function bindTraps(records) {
|
|
67
|
+
return records.map((rec, tidx) => ({
|
|
68
|
+
tidx,
|
|
69
|
+
name: rec.name.name,
|
|
70
|
+
desc: rec.name.desc,
|
|
71
|
+
text: joined(rec.desc),
|
|
72
|
+
glyph: rec.graphics.glyph,
|
|
73
|
+
color: rec.graphics.color,
|
|
74
|
+
rarity: rec.appear?.rarity ?? 0,
|
|
75
|
+
minDepth: rec.appear?.mindepth ?? 0,
|
|
76
|
+
maxNum: rec.appear?.maxnum ?? 0,
|
|
77
|
+
power: parsePower(rec.visibility),
|
|
78
|
+
flags: parseTrapFlags(rec.flags),
|
|
79
|
+
effect: rec.effect ?? [],
|
|
80
|
+
effectXtra: rec["effect-xtra"] ?? [],
|
|
81
|
+
saveFlags: parseSaveFlags(rec.save),
|
|
82
|
+
msg: joined(rec.msg),
|
|
83
|
+
msgGood: joined(rec["msg-good"]),
|
|
84
|
+
msgBad: joined(rec["msg-bad"]),
|
|
85
|
+
msgXtra: joined(rec["msg-xtra"]),
|
|
86
|
+
}));
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* lookup_trap (trap.c:44-63): exact desc match wins, otherwise the FIRST close
|
|
90
|
+
* match. The two tests differ in case sensitivity and the port had them the same:
|
|
91
|
+
* equality is `streq` (:54) but the close match is `my_stristr` (:57), i.e.
|
|
92
|
+
* case-INsensitive. Found by W1-CITED.
|
|
93
|
+
*/
|
|
94
|
+
export function lookupTrap(kinds, desc) {
|
|
95
|
+
let closest = null;
|
|
96
|
+
for (const kind of kinds) {
|
|
97
|
+
if (!kind.name)
|
|
98
|
+
continue;
|
|
99
|
+
if (kind.desc === desc)
|
|
100
|
+
return kind;
|
|
101
|
+
if (!closest && myStristr(kind.desc, desc))
|
|
102
|
+
closest = kind;
|
|
103
|
+
}
|
|
104
|
+
return closest;
|
|
105
|
+
}
|
|
106
|
+
//# sourceMappingURL=trap.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trap.js","sourceRoot":"","sources":["../../src/world/trap.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Line of sight, ported from reference/src/cave-view.c (Angband 4.2.6).
|
|
3
|
+
*
|
|
4
|
+
* los() is the integer fixed-point algorithm by Joseph Hall: true when a
|
|
5
|
+
* line can be traced between grid centers with every intermediate grid
|
|
6
|
+
* projectable. Reflexive except for the "chess knight move" special
|
|
7
|
+
* cases, exactly as upstream.
|
|
8
|
+
*
|
|
9
|
+
* updateView() is the player FOV: wall-face lighting, light propagation
|
|
10
|
+
* (player + other sources), and the VIEW/SEEN/CLOSE_PLAYER square flags.
|
|
11
|
+
* The player and monster couplings are injected: a ViewerState carries
|
|
12
|
+
* exactly the fields the C reads from struct player, and light sources
|
|
13
|
+
* arrive as a list instead of scanning the monster array. The knowledge
|
|
14
|
+
* side effects of update_one (trap reveal, square_note_spot/light_spot,
|
|
15
|
+
* feeling display) and the blind forget of the current non-passable
|
|
16
|
+
* remembered square (cave-view.c:894-897) run from game/known.ts noteSpots
|
|
17
|
+
* after every updateView; the flag bookkeeping they sit beside is ported.
|
|
18
|
+
*/
|
|
19
|
+
import type { GameEvents } from "../events.js";
|
|
20
|
+
import type { Loc } from "../loc.js";
|
|
21
|
+
import type { Chunk } from "./chunk.js";
|
|
22
|
+
/** los(c, grid1, grid2). */
|
|
23
|
+
export declare function los(c: Chunk, grid1: Loc, grid2: Loc): boolean;
|
|
24
|
+
/** The player fields update_view reads (injected instead of coupled). */
|
|
25
|
+
export interface ViewerState {
|
|
26
|
+
grid: Loc;
|
|
27
|
+
/** p->state.cur_light: light radius (negative = darkness source). */
|
|
28
|
+
curLight: number;
|
|
29
|
+
/** p->timed[TMD_BLIND] truthiness. */
|
|
30
|
+
blind: boolean;
|
|
31
|
+
/** player_has(p, PF_UNLIGHT). */
|
|
32
|
+
hasUnlight: boolean;
|
|
33
|
+
/** p->lev, for the UNLIGHT view radius. */
|
|
34
|
+
level: number;
|
|
35
|
+
}
|
|
36
|
+
/** A non-player light source (upstream scans monsters for these). */
|
|
37
|
+
export interface LightSource {
|
|
38
|
+
grid: Loc;
|
|
39
|
+
/** mon->race->light: positive light, negative darkness. */
|
|
40
|
+
light: number;
|
|
41
|
+
}
|
|
42
|
+
/** z_info fields the view code needs. */
|
|
43
|
+
export interface ViewConstants {
|
|
44
|
+
maxSight: number;
|
|
45
|
+
feelingNeed: number;
|
|
46
|
+
}
|
|
47
|
+
/** motion_dir: keypad direction from start toward finish (5 = none). */
|
|
48
|
+
export declare function motionDir(start: Loc, finish: Loc): number;
|
|
49
|
+
/** next_grid: the grid one step in a keypad direction. */
|
|
50
|
+
export declare function nextGrid(grid: Loc, dir: number): Loc;
|
|
51
|
+
/** square_islit: positive light level. */
|
|
52
|
+
export declare function squareIsLit(c: Chunk, grid: Loc): boolean;
|
|
53
|
+
/** square_isview / square_isseen. */
|
|
54
|
+
export declare function squareIsView(c: Chunk, grid: Loc): boolean;
|
|
55
|
+
export declare function squareIsSeen(c: Chunk, grid: Loc): boolean;
|
|
56
|
+
/** square_isno_esp: telepathy does not work on this square. */
|
|
57
|
+
export declare function squareIsNoEsp(c: Chunk, grid: Loc): boolean;
|
|
58
|
+
/** update_view. */
|
|
59
|
+
export declare function updateView(c: Chunk, p: ViewerState, z: ViewConstants, sources?: readonly LightSource[], events?: GameEvents): void;
|
|
60
|
+
//# sourceMappingURL=view.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"view.d.ts","sourceRoot":"","sources":["../../src/world/view.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG/C,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAErC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAExC,4BAA4B;AAC5B,wBAAgB,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,OAAO,CAsH7D;AAMD,yEAAyE;AACzE,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,GAAG,CAAC;IACV,qEAAqE;IACrE,QAAQ,EAAE,MAAM,CAAC;IACjB,sCAAsC;IACtC,KAAK,EAAE,OAAO,CAAC;IACf,iCAAiC;IACjC,UAAU,EAAE,OAAO,CAAC;IACpB,2CAA2C;IAC3C,KAAK,EAAE,MAAM,CAAC;CACf;AAED,qEAAqE;AACrE,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,GAAG,CAAC;IACV,2DAA2D;IAC3D,KAAK,EAAE,MAAM,CAAC;CACf;AAED,yCAAyC;AACzC,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,wEAAwE;AACxE,wBAAgB,SAAS,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,GAAG,MAAM,CAQzD;AAED,0DAA0D;AAC1D,wBAAgB,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,GAAG,GAAG,CAEpD;AAUD,0CAA0C;AAC1C,wBAAgB,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,GAAG,OAAO,CAExD;AAED,qCAAqC;AACrC,wBAAgB,YAAY,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,GAAG,OAAO,CAEzD;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,GAAG,OAAO,CAEzD;AAED,+DAA+D;AAC/D,wBAAgB,aAAa,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,GAAG,OAAO,CAE1D;AA2QD,mBAAmB;AACnB,wBAAgB,UAAU,CACxB,CAAC,EAAE,KAAK,EACR,CAAC,EAAE,WAAW,EACd,CAAC,EAAE,aAAa,EAChB,OAAO,GAAE,SAAS,WAAW,EAAO,EACpC,MAAM,CAAC,EAAE,UAAU,GAClB,IAAI,CAoBN"}
|