@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,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* effect_summarize_properties (effects-info.c L843-L1087): summarize the object
|
|
3
|
+
* properties an activation's effect chain grants (or conflicts with), so
|
|
4
|
+
* remove_contradictory_activation (obj-randart.c L2420) can drop a randart
|
|
5
|
+
* activation that only duplicates an intrinsic property.
|
|
6
|
+
*
|
|
7
|
+
* Upstream indexes global tables (timed_effects[], brands[], slays[]) by the
|
|
8
|
+
* integer subtype stored on each effect. The port keeps effect chains as raw
|
|
9
|
+
* compiled records (EffectRecordJson) whose subtype is the TMD_ *name* (`type`)
|
|
10
|
+
* and whose dice are a raw string, so this module resolves those names through a
|
|
11
|
+
* small injected dependency set (makeActivationSummarizer's deps). That keeps it
|
|
12
|
+
* free of the generated enums and the live registries; the session layer binds
|
|
13
|
+
* them at the install site (gap 3.8 WIRING-NEEDED).
|
|
14
|
+
*
|
|
15
|
+
* The produced EffectObjectProperty list feeds the redundancy switch in
|
|
16
|
+
* removeContradictoryActivation; its order is immaterial there (the consumer
|
|
17
|
+
* treats an activation as redundant only when every summarized property is
|
|
18
|
+
* redundant), so this port appends in chain order rather than mirroring the
|
|
19
|
+
* upstream prepend.
|
|
20
|
+
*/
|
|
21
|
+
import type { ActivationSummarizer } from "./randart-build.js";
|
|
22
|
+
/** One compiled player_timed fail directive ("fail uint code str flag"). */
|
|
23
|
+
export interface RawTimedFail {
|
|
24
|
+
/** TMD_FAIL_FLAG_* code. */
|
|
25
|
+
code: number;
|
|
26
|
+
/** OF_ name (OBJECT), ELEM_ name (RESIST/VULN), or otherwise (unused here). */
|
|
27
|
+
flag: string;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* The subset of a compiled player_timed record (pack.player.timed entries) this
|
|
31
|
+
* summarizer reads. Field names mirror the gamedata directives; every field is
|
|
32
|
+
* optional because most timed effects carry none of them.
|
|
33
|
+
*/
|
|
34
|
+
export interface RawTimedRecord {
|
|
35
|
+
/** TMD_ name; matches an activation effect's `type`. */
|
|
36
|
+
name: string;
|
|
37
|
+
/** temp_resist: ELEM_ name this effect grants a temporary resist against. */
|
|
38
|
+
resist?: string;
|
|
39
|
+
/** oflag_dup / oflag_syn: the flag-synonym directive (only [0] is used). */
|
|
40
|
+
"flag-synonym"?: Array<{
|
|
41
|
+
code: string;
|
|
42
|
+
exact: number;
|
|
43
|
+
}>;
|
|
44
|
+
/** temp_brand: brand `code` this effect grants (only [0] is used). */
|
|
45
|
+
brand?: string[];
|
|
46
|
+
/** temp_slay: slay `code` this effect grants (only [0] is used). */
|
|
47
|
+
slay?: string[];
|
|
48
|
+
/** fail directives. */
|
|
49
|
+
fail?: RawTimedFail[];
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Dependencies makeActivationSummarizer binds once. All are trivially available
|
|
53
|
+
* at the session install site: the raw player_timed records, the brand/slay
|
|
54
|
+
* tables, and the generated OF_/ELEM_ name lookups.
|
|
55
|
+
*/
|
|
56
|
+
export interface ActivationSummarizerDeps {
|
|
57
|
+
/** pack.player.timed: compiled player_timed records, in TMD index order. */
|
|
58
|
+
timedRecords: readonly RawTimedRecord[];
|
|
59
|
+
/** reg.objects.brands: brand table (index 0 is the null pad). */
|
|
60
|
+
brands: readonly ({
|
|
61
|
+
code: string;
|
|
62
|
+
} | null)[];
|
|
63
|
+
/** reg.objects.slays: slay table (index 0 is the null pad). */
|
|
64
|
+
slays: readonly ({
|
|
65
|
+
code: string;
|
|
66
|
+
} | null)[];
|
|
67
|
+
/** OF[name]: object-flag index, or OF_NONE (0) when absent. */
|
|
68
|
+
ofIndex: (name: string) => number;
|
|
69
|
+
/** ELEM[name]: element index, or -1 when absent. */
|
|
70
|
+
elemIndex: (name: string) => number;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Build the activation summarizer injected into remove_contradictory_activation.
|
|
74
|
+
* The returned function is a faithful transcription of
|
|
75
|
+
* effect_summarize_properties (effects-info.c L898).
|
|
76
|
+
*/
|
|
77
|
+
export declare function makeActivationSummarizer(deps: ActivationSummarizerDeps): ActivationSummarizer;
|
|
78
|
+
//# sourceMappingURL=effects-info.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"effects-info.d.ts","sourceRoot":"","sources":["../../src/obj/effects-info.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAGH,OAAO,KAAK,EACV,oBAAoB,EAErB,MAAM,oBAAoB,CAAC;AAgB5B,4EAA4E;AAC5E,MAAM,WAAW,YAAY;IAC3B,4BAA4B;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,+EAA+E;IAC/E,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,wDAAwD;IACxD,IAAI,EAAE,MAAM,CAAC;IACb,6EAA6E;IAC7E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,4EAA4E;IAC5E,cAAc,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACxD,sEAAsE;IACtE,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,oEAAoE;IACpE,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,uBAAuB;IACvB,IAAI,CAAC,EAAE,YAAY,EAAE,CAAC;CACvB;AA0BD;;;;GAIG;AACH,MAAM,WAAW,wBAAwB;IACvC,4EAA4E;IAC5E,YAAY,EAAE,SAAS,cAAc,EAAE,CAAC;IACxC,iEAAiE;IACjE,MAAM,EAAE,SAAS,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC,EAAE,CAAC;IAC7C,+DAA+D;IAC/D,KAAK,EAAE,SAAS,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC,EAAE,CAAC;IAC5C,+DAA+D;IAC/D,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IAClC,oDAAoD;IACpD,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;CACrC;AA8CD;;;;GAIG;AACH,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,wBAAwB,GAC7B,oBAAoB,CA0LtB"}
|
|
@@ -0,0 +1,240 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* effect_summarize_properties (effects-info.c L843-L1087): summarize the object
|
|
3
|
+
* properties an activation's effect chain grants (or conflicts with), so
|
|
4
|
+
* remove_contradictory_activation (obj-randart.c L2420) can drop a randart
|
|
5
|
+
* activation that only duplicates an intrinsic property.
|
|
6
|
+
*
|
|
7
|
+
* Upstream indexes global tables (timed_effects[], brands[], slays[]) by the
|
|
8
|
+
* integer subtype stored on each effect. The port keeps effect chains as raw
|
|
9
|
+
* compiled records (EffectRecordJson) whose subtype is the TMD_ *name* (`type`)
|
|
10
|
+
* and whose dice are a raw string, so this module resolves those names through a
|
|
11
|
+
* small injected dependency set (makeActivationSummarizer's deps). That keeps it
|
|
12
|
+
* free of the generated enums and the live registries; the session layer binds
|
|
13
|
+
* them at the install site (gap 3.8 WIRING-NEEDED).
|
|
14
|
+
*
|
|
15
|
+
* The produced EffectObjectProperty list feeds the redundancy switch in
|
|
16
|
+
* removeContradictoryActivation; its order is immaterial there (the consumer
|
|
17
|
+
* treats an activation as redundant only when every summarized property is
|
|
18
|
+
* redundant), so this port appends in chain order rather than mirroring the
|
|
19
|
+
* upstream prepend.
|
|
20
|
+
*/
|
|
21
|
+
import { Dice } from "../dice.js";
|
|
22
|
+
import { EFPROP } from "./randart-build.js";
|
|
23
|
+
/**
|
|
24
|
+
* TMD failure-condition codes (player-timed.h enum, mirrored in player/timed.ts
|
|
25
|
+
* and the compiled player_timed records). Only OBJECT / RESIST / VULN map to an
|
|
26
|
+
* object property; the rest (PLAYER, TIMED_EFFECT) are unsummarized.
|
|
27
|
+
*/
|
|
28
|
+
const TMD_FAIL_FLAG_OBJECT = 1;
|
|
29
|
+
const TMD_FAIL_FLAG_RESIST = 2;
|
|
30
|
+
const TMD_FAIL_FLAG_VULN = 3;
|
|
31
|
+
/** OF_NONE (list-object-flags.h): the "no flag" sentinel for oflag_dup. */
|
|
32
|
+
const OF_NONE = 0;
|
|
33
|
+
/** dice_evaluate(dice, 0, MAXIMISE, NULL): base + dice*sides + m_bonus, no RNG. */
|
|
34
|
+
function diceMaximise(diceStr) {
|
|
35
|
+
if (!diceStr)
|
|
36
|
+
return 0;
|
|
37
|
+
const d = new Dice();
|
|
38
|
+
if (!d.parseString(diceStr))
|
|
39
|
+
return 0;
|
|
40
|
+
const v = d.randomValue();
|
|
41
|
+
return v.base + v.dice * v.sides + v.mBonus;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Resolve a raw player_timed record into the name-free TimedSummaryData the
|
|
45
|
+
* summary loop consumes.
|
|
46
|
+
*/
|
|
47
|
+
function resolveTimed(rec, deps) {
|
|
48
|
+
const syn = rec["flag-synonym"]?.[0];
|
|
49
|
+
const brandCode = rec.brand?.[0];
|
|
50
|
+
const slayCode = rec.slay?.[0];
|
|
51
|
+
return {
|
|
52
|
+
oflagDup: syn ? deps.ofIndex(syn.code) : OF_NONE,
|
|
53
|
+
oflagSyn: syn ? syn.exact !== 0 : false,
|
|
54
|
+
tempResist: rec.resist !== undefined ? deps.elemIndex(rec.resist) : -1,
|
|
55
|
+
tempBrand: brandCode
|
|
56
|
+
? deps.brands.findIndex((b) => b !== null && b.code === brandCode)
|
|
57
|
+
: -1,
|
|
58
|
+
tempSlay: slayCode
|
|
59
|
+
? deps.slays.findIndex((s) => s !== null && s.code === slayCode)
|
|
60
|
+
: -1,
|
|
61
|
+
fail: (rec.fail ?? []).map((f) => {
|
|
62
|
+
let idx = -1;
|
|
63
|
+
if (f.code === TMD_FAIL_FLAG_OBJECT)
|
|
64
|
+
idx = deps.ofIndex(f.flag);
|
|
65
|
+
else if (f.code === TMD_FAIL_FLAG_RESIST ||
|
|
66
|
+
f.code === TMD_FAIL_FLAG_VULN) {
|
|
67
|
+
idx = deps.elemIndex(f.flag);
|
|
68
|
+
}
|
|
69
|
+
return { code: f.code, idx };
|
|
70
|
+
}),
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Build the activation summarizer injected into remove_contradictory_activation.
|
|
75
|
+
* The returned function is a faithful transcription of
|
|
76
|
+
* effect_summarize_properties (effects-info.c L898).
|
|
77
|
+
*/
|
|
78
|
+
export function makeActivationSummarizer(deps) {
|
|
79
|
+
/* Precompute the resolved timed data keyed by TMD name (upstream indexes
|
|
80
|
+
* timed_effects[] by the integer subtype; the port looks up by `type`). A
|
|
81
|
+
* missing name is equivalent to upstream's `subtype < 0 || subtype >= TMD_MAX`
|
|
82
|
+
* bounds failure. */
|
|
83
|
+
const byName = new Map();
|
|
84
|
+
for (const rec of deps.timedRecords) {
|
|
85
|
+
byName.set(rec.name, resolveTimed(rec, deps));
|
|
86
|
+
}
|
|
87
|
+
const ofNoTeleport = deps.ofIndex("NO_TELEPORT");
|
|
88
|
+
return (effect) => {
|
|
89
|
+
const props = [];
|
|
90
|
+
let unsummarized = 0;
|
|
91
|
+
/* EF_SET_VALUE remembers a dice for later timed effects; EF_CLEAR_VALUE
|
|
92
|
+
* forgets it (effects-info.c L920-L934). */
|
|
93
|
+
let rememberedDice;
|
|
94
|
+
const add = (idx, reslevelMin, reslevelMax, kind) => {
|
|
95
|
+
props.push({ kind, idx, reslevelMin, reslevelMax });
|
|
96
|
+
};
|
|
97
|
+
/* summarize_cure (effects-info.c L868): a cure grants the object flags /
|
|
98
|
+
* resists that would have blocked the condition. */
|
|
99
|
+
const summarizeCure = (td) => {
|
|
100
|
+
if (!td)
|
|
101
|
+
return;
|
|
102
|
+
for (const f of td.fail) {
|
|
103
|
+
if (f.code === TMD_FAIL_FLAG_OBJECT) {
|
|
104
|
+
add(f.idx, 0, 0, EFPROP.CURE_FLAG);
|
|
105
|
+
}
|
|
106
|
+
else if (f.code === TMD_FAIL_FLAG_RESIST) {
|
|
107
|
+
add(f.idx, -1, 0, EFPROP.CURE_RESIST);
|
|
108
|
+
}
|
|
109
|
+
else {
|
|
110
|
+
++unsummarized;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
};
|
|
114
|
+
/* The value a timed effect is set/incremented to, maximised, preferring a
|
|
115
|
+
* remembered SET_VALUE dice over the effect's own (effects-info.c L944). */
|
|
116
|
+
const timedValue = (ef) => rememberedDice !== undefined
|
|
117
|
+
? diceMaximise(rememberedDice)
|
|
118
|
+
: diceMaximise(ef.dice);
|
|
119
|
+
/* The EF_TIMED_INC body (effects-info.c L963-L1045): a positive-duration
|
|
120
|
+
* timed effect grants its flag synonym, temp resist, temp brand/slay, and
|
|
121
|
+
* flags the conditions it conflicts with. */
|
|
122
|
+
const summarizeTimedInc = (td) => {
|
|
123
|
+
let summarized = false;
|
|
124
|
+
if (td.oflagDup !== OF_NONE) {
|
|
125
|
+
add(td.oflagDup, 0, 0, td.oflagSyn ? EFPROP.OBJECT_FLAG_EXACT : EFPROP.OBJECT_FLAG);
|
|
126
|
+
summarized = true;
|
|
127
|
+
}
|
|
128
|
+
if (td.tempResist >= 0) {
|
|
129
|
+
let rmin = -1;
|
|
130
|
+
let rmax = 1;
|
|
131
|
+
for (const f of td.fail) {
|
|
132
|
+
if (f.idx === td.tempResist) {
|
|
133
|
+
if (f.code === TMD_FAIL_FLAG_RESIST)
|
|
134
|
+
rmax = Math.min(rmax, 0);
|
|
135
|
+
else if (f.code === TMD_FAIL_FLAG_VULN)
|
|
136
|
+
rmin = Math.max(rmin, 0);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
add(td.tempResist, rmin, rmax, EFPROP.RESIST);
|
|
140
|
+
summarized = true;
|
|
141
|
+
}
|
|
142
|
+
for (const f of td.fail) {
|
|
143
|
+
switch (f.code) {
|
|
144
|
+
case TMD_FAIL_FLAG_OBJECT:
|
|
145
|
+
add(f.idx, 0, 0, EFPROP.CONFLICT_FLAG);
|
|
146
|
+
summarized = true;
|
|
147
|
+
break;
|
|
148
|
+
case TMD_FAIL_FLAG_RESIST:
|
|
149
|
+
if (f.idx !== td.tempResist) {
|
|
150
|
+
add(f.idx, -1, 0, EFPROP.CONFLICT_RESIST);
|
|
151
|
+
summarized = true;
|
|
152
|
+
}
|
|
153
|
+
break;
|
|
154
|
+
case TMD_FAIL_FLAG_VULN:
|
|
155
|
+
if (f.idx !== td.tempResist) {
|
|
156
|
+
add(f.idx, 0, 3, EFPROP.CONFLICT_VULN);
|
|
157
|
+
summarized = true;
|
|
158
|
+
}
|
|
159
|
+
break;
|
|
160
|
+
default:
|
|
161
|
+
/* Nothing special is needed. */
|
|
162
|
+
break;
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
if (td.tempBrand >= 0) {
|
|
166
|
+
add(td.tempBrand, 0, 0, EFPROP.BRAND);
|
|
167
|
+
summarized = true;
|
|
168
|
+
}
|
|
169
|
+
if (td.tempSlay >= 0) {
|
|
170
|
+
add(td.tempSlay, 0, 0, EFPROP.SLAY);
|
|
171
|
+
summarized = true;
|
|
172
|
+
}
|
|
173
|
+
if (!summarized)
|
|
174
|
+
++unsummarized;
|
|
175
|
+
};
|
|
176
|
+
for (const ef of effect) {
|
|
177
|
+
switch (ef.eff) {
|
|
178
|
+
case "RANDOM":
|
|
179
|
+
case "SELECT":
|
|
180
|
+
/* Summarize all sub-effects (any is possible); that is the same as
|
|
181
|
+
* stepping over the random/select effect. */
|
|
182
|
+
break;
|
|
183
|
+
case "SET_VALUE":
|
|
184
|
+
rememberedDice = ef.dice;
|
|
185
|
+
break;
|
|
186
|
+
case "CLEAR_VALUE":
|
|
187
|
+
rememberedDice = undefined;
|
|
188
|
+
break;
|
|
189
|
+
case "CURE":
|
|
190
|
+
if (ef.type !== undefined)
|
|
191
|
+
summarizeCure(byName.get(ef.type));
|
|
192
|
+
break;
|
|
193
|
+
case "TIMED_SET": {
|
|
194
|
+
const value = timedValue(ef);
|
|
195
|
+
if (value <= 0 && ef.type !== undefined && byName.has(ef.type)) {
|
|
196
|
+
/* It's equivalent to a cure. */
|
|
197
|
+
summarizeCure(byName.get(ef.type));
|
|
198
|
+
break;
|
|
199
|
+
}
|
|
200
|
+
/* Fall through to the TIMED_INC handling. */
|
|
201
|
+
if (value > 0 && ef.type !== undefined) {
|
|
202
|
+
const td = byName.get(ef.type);
|
|
203
|
+
if (td)
|
|
204
|
+
summarizeTimedInc(td);
|
|
205
|
+
}
|
|
206
|
+
break;
|
|
207
|
+
}
|
|
208
|
+
case "TIMED_INC":
|
|
209
|
+
case "TIMED_INC_NO_RES": {
|
|
210
|
+
const value = timedValue(ef);
|
|
211
|
+
if (value > 0 && ef.type !== undefined) {
|
|
212
|
+
const td = byName.get(ef.type);
|
|
213
|
+
if (td)
|
|
214
|
+
summarizeTimedInc(td);
|
|
215
|
+
}
|
|
216
|
+
break;
|
|
217
|
+
}
|
|
218
|
+
case "TIMED_DEC": {
|
|
219
|
+
const value = timedValue(ef);
|
|
220
|
+
/* If it decreases the duration, it's a partial cure. */
|
|
221
|
+
if (value > 0 && ef.type !== undefined) {
|
|
222
|
+
summarizeCure(byName.get(ef.type));
|
|
223
|
+
}
|
|
224
|
+
break;
|
|
225
|
+
}
|
|
226
|
+
case "TELEPORT":
|
|
227
|
+
case "TELEPORT_TO":
|
|
228
|
+
case "TELEPORT_LEVEL":
|
|
229
|
+
add(ofNoTeleport, 0, 0, EFPROP.CONFLICT_FLAG);
|
|
230
|
+
break;
|
|
231
|
+
default:
|
|
232
|
+
/* Everything else isn't related to an object property. */
|
|
233
|
+
++unsummarized;
|
|
234
|
+
break;
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
return { props, unsummarizedCount: unsummarized };
|
|
238
|
+
};
|
|
239
|
+
}
|
|
240
|
+
//# sourceMappingURL=effects-info.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"effects-info.js","sourceRoot":"","sources":["../../src/obj/effects-info.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Flavour assignment, ported from reference/src/obj-util.c (Angband 4.2.6):
|
|
3
|
+
* flavor_init and its helpers flavor_assign_fixed, flavor_assign_random and
|
|
4
|
+
* flavor_reset_fixed, plus the scroll-title generation loop.
|
|
5
|
+
*
|
|
6
|
+
* The "colour / metal / type" of a flavoured object (rings, amulets, staves,
|
|
7
|
+
* wands, rods, mushrooms, potions, scrolls) is picked randomly per game, from
|
|
8
|
+
* a seed (seed_flavor) so it stays stable across a save/reload. Upstream this
|
|
9
|
+
* mutates the shared object_kind template (kind->flavor) and the flavour
|
|
10
|
+
* records (flavor->sval); the port keeps ObjRegistry immutable and reusable
|
|
11
|
+
* across games (mirroring FlavorKnowledge), so flavorInit builds a separate
|
|
12
|
+
* per-game FlavorAssignment map keyed by kind index instead of mutating the
|
|
13
|
+
* bound records.
|
|
14
|
+
*
|
|
15
|
+
* The one gameplay-visible effect folded in here is the aware-marking of
|
|
16
|
+
* non-flavoured ordinary kinds (L233-246): a kind with no flavour is known on
|
|
17
|
+
* sight, which is why food, torches, weapons, etc. always read by their real
|
|
18
|
+
* name. That is written into the per-game FlavorKnowledge.
|
|
19
|
+
*/
|
|
20
|
+
import type { FlavorKnowledge } from "./knowledge.js";
|
|
21
|
+
import type { Flavor, ObjectKind } from "./types.js";
|
|
22
|
+
/** The flavour resolved for one kind: its text (adjective / title) and glyph. */
|
|
23
|
+
export interface AssignedFlavor {
|
|
24
|
+
fidx: number;
|
|
25
|
+
/** flavor->text: the "Smoky" adjective, or a scroll's random title. */
|
|
26
|
+
text: string;
|
|
27
|
+
/** flavor->d_attr: the display colour name for the flavoured glyph. */
|
|
28
|
+
attr: string;
|
|
29
|
+
/** flavor->d_char: the display glyph. */
|
|
30
|
+
char: string;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* The per-game outcome of flavor_init: which flavour each flavoured kind was
|
|
34
|
+
* assigned. Reads exactly where upstream reads obj->kind->flavor.
|
|
35
|
+
*/
|
|
36
|
+
export declare class FlavorAssignment {
|
|
37
|
+
private readonly byKind;
|
|
38
|
+
/** Assign (or overwrite) a kind's flavour. */
|
|
39
|
+
set(kidx: number, flavor: AssignedFlavor): void;
|
|
40
|
+
/** obj->kind->flavor != NULL: does this kind carry an assigned flavour? */
|
|
41
|
+
hasFlavor(kind: ObjectKind): boolean;
|
|
42
|
+
/** obj->kind->flavor->text, or "" when the kind has no flavour. */
|
|
43
|
+
text(kind: ObjectKind): string;
|
|
44
|
+
/** obj->kind->flavor->d_attr, or "" when the kind has no flavour. */
|
|
45
|
+
attr(kind: ObjectKind): string;
|
|
46
|
+
/** The full record for a kind, or undefined when unassigned. */
|
|
47
|
+
get(kind: ObjectKind): AssignedFlavor | undefined;
|
|
48
|
+
/** A JSON-safe [kidx, fidx] snapshot, for diagnostics/tests (not the save). */
|
|
49
|
+
snapshot(): Array<[number, number]>;
|
|
50
|
+
}
|
|
51
|
+
/** Inputs to flavorInit. Kinds must be in kidx order, flavours in file order. */
|
|
52
|
+
export interface FlavorInitDeps {
|
|
53
|
+
kinds: readonly ObjectKind[];
|
|
54
|
+
flavors: readonly Flavor[];
|
|
55
|
+
ordinaryKindCount: number;
|
|
56
|
+
/** RANDNAME sections, keyed by section index (2 = scroll titles). */
|
|
57
|
+
nameSections: ReadonlyMap<number, readonly string[]>;
|
|
58
|
+
/** OPT(player, birth_randarts): scrub fixed flavours (except the One Ring). */
|
|
59
|
+
birthRandarts?: boolean;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* flavor_init (obj-util.c L154): assign a flavour to every flavoured kind and
|
|
63
|
+
* mark the non-flavoured ordinary kinds aware. Deterministic in `seed` (the
|
|
64
|
+
* upstream seed_flavor + Rand_quick trick), so a reload with the same seed
|
|
65
|
+
* reproduces the same colours and titles.
|
|
66
|
+
*/
|
|
67
|
+
export declare function flavorInit(seed: number, awareness: FlavorKnowledge, deps: FlavorInitDeps): FlavorAssignment;
|
|
68
|
+
//# sourceMappingURL=flavor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flavor.d.ts","sourceRoot":"","sources":["../../src/obj/flavor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAIH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEtD,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAerD,iFAAiF;AACjF,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,uEAAuE;IACvE,IAAI,EAAE,MAAM,CAAC;IACb,uEAAuE;IACvE,IAAI,EAAE,MAAM,CAAC;IACb,yCAAyC;IACzC,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;GAGG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqC;IAE5D,8CAA8C;IAC9C,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,GAAG,IAAI;IAI/C,2EAA2E;IAC3E,SAAS,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO;IAIpC,mEAAmE;IACnE,IAAI,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM;IAI9B,qEAAqE;IACrE,IAAI,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM;IAI9B,gEAAgE;IAChE,GAAG,CAAC,IAAI,EAAE,UAAU,GAAG,cAAc,GAAG,SAAS;IAIjD,+EAA+E;IAC/E,QAAQ,IAAI,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAGpC;AAED,iFAAiF;AACjF,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,SAAS,UAAU,EAAE,CAAC;IAC7B,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,qEAAqE;IACrE,YAAY,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC;IACrD,+EAA+E;IAC/E,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAQD;;;;;GAKG;AACH,wBAAgB,UAAU,CACxB,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,eAAe,EAC1B,IAAI,EAAE,cAAc,GACnB,gBAAgB,CA4IlB"}
|
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Flavour assignment, ported from reference/src/obj-util.c (Angband 4.2.6):
|
|
3
|
+
* flavor_init and its helpers flavor_assign_fixed, flavor_assign_random and
|
|
4
|
+
* flavor_reset_fixed, plus the scroll-title generation loop.
|
|
5
|
+
*
|
|
6
|
+
* The "colour / metal / type" of a flavoured object (rings, amulets, staves,
|
|
7
|
+
* wands, rods, mushrooms, potions, scrolls) is picked randomly per game, from
|
|
8
|
+
* a seed (seed_flavor) so it stays stable across a save/reload. Upstream this
|
|
9
|
+
* mutates the shared object_kind template (kind->flavor) and the flavour
|
|
10
|
+
* records (flavor->sval); the port keeps ObjRegistry immutable and reusable
|
|
11
|
+
* across games (mirroring FlavorKnowledge), so flavorInit builds a separate
|
|
12
|
+
* per-game FlavorAssignment map keyed by kind index instead of mutating the
|
|
13
|
+
* bound records.
|
|
14
|
+
*
|
|
15
|
+
* The one gameplay-visible effect folded in here is the aware-marking of
|
|
16
|
+
* non-flavoured ordinary kinds (L233-246): a kind with no flavour is known on
|
|
17
|
+
* sight, which is why food, torches, weapons, etc. always read by their real
|
|
18
|
+
* name. That is written into the per-game FlavorKnowledge.
|
|
19
|
+
*/
|
|
20
|
+
import { KF, TV } from "../generated/index.js";
|
|
21
|
+
import { Rng } from "../rng.js";
|
|
22
|
+
import { buildProb, randnameMake } from "./randname.js";
|
|
23
|
+
import { tvalCanHaveFlavor } from "./object.js";
|
|
24
|
+
/** SV_UNKNOWN (obj-tval.h L27): a flavour not yet bound to a specific sval. */
|
|
25
|
+
const SV_UNKNOWN = 0;
|
|
26
|
+
/** MAX_TITLES (obj-util.h L23): the number of scroll titles generated. */
|
|
27
|
+
const MAX_TITLES = 50;
|
|
28
|
+
/** sizeof(scroll_adj[0]) (obj-util.c L56): title buffer width, incl. quotes. */
|
|
29
|
+
const SCROLL_ADJ_LEN = 18;
|
|
30
|
+
/** RANDNAME_SCROLL (randname.h L27): the scroll-title corpus section. */
|
|
31
|
+
const RANDNAME_SCROLL = 2;
|
|
32
|
+
/**
|
|
33
|
+
* The per-game outcome of flavor_init: which flavour each flavoured kind was
|
|
34
|
+
* assigned. Reads exactly where upstream reads obj->kind->flavor.
|
|
35
|
+
*/
|
|
36
|
+
export class FlavorAssignment {
|
|
37
|
+
byKind = new Map();
|
|
38
|
+
/** Assign (or overwrite) a kind's flavour. */
|
|
39
|
+
set(kidx, flavor) {
|
|
40
|
+
this.byKind.set(kidx, flavor);
|
|
41
|
+
}
|
|
42
|
+
/** obj->kind->flavor != NULL: does this kind carry an assigned flavour? */
|
|
43
|
+
hasFlavor(kind) {
|
|
44
|
+
return this.byKind.has(kind.kidx);
|
|
45
|
+
}
|
|
46
|
+
/** obj->kind->flavor->text, or "" when the kind has no flavour. */
|
|
47
|
+
text(kind) {
|
|
48
|
+
return this.byKind.get(kind.kidx)?.text ?? "";
|
|
49
|
+
}
|
|
50
|
+
/** obj->kind->flavor->d_attr, or "" when the kind has no flavour. */
|
|
51
|
+
attr(kind) {
|
|
52
|
+
return this.byKind.get(kind.kidx)?.attr ?? "";
|
|
53
|
+
}
|
|
54
|
+
/** The full record for a kind, or undefined when unassigned. */
|
|
55
|
+
get(kind) {
|
|
56
|
+
return this.byKind.get(kind.kidx);
|
|
57
|
+
}
|
|
58
|
+
/** A JSON-safe [kidx, fidx] snapshot, for diagnostics/tests (not the save). */
|
|
59
|
+
snapshot() {
|
|
60
|
+
return Array.from(this.byKind, ([kidx, f]) => [kidx, f.fidx]);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* flavor_init (obj-util.c L154): assign a flavour to every flavoured kind and
|
|
65
|
+
* mark the non-flavoured ordinary kinds aware. Deterministic in `seed` (the
|
|
66
|
+
* upstream seed_flavor + Rand_quick trick), so a reload with the same seed
|
|
67
|
+
* reproduces the same colours and titles.
|
|
68
|
+
*/
|
|
69
|
+
export function flavorInit(seed, awareness, deps) {
|
|
70
|
+
const assignment = new FlavorAssignment();
|
|
71
|
+
/* Rand_quick = true; Rand_value = seed_flavor (L158-162). */
|
|
72
|
+
const rng = new Rng(seed, { quick: true });
|
|
73
|
+
/* Working copies of the flavour svals so the bound records stay immutable.
|
|
74
|
+
* Fixed flavours start with their real sval; random ones start UNKNOWN. */
|
|
75
|
+
const work = deps.flavors.map((flavor) => ({
|
|
76
|
+
flavor,
|
|
77
|
+
sval: flavor.sval,
|
|
78
|
+
}));
|
|
79
|
+
/* flavor_reset_fixed (L121): for randarts, scrub every fixed sval except the
|
|
80
|
+
* One Ring ("Plain Gold"), so standard fixed flavours are not predictable. */
|
|
81
|
+
if (deps.birthRandarts) {
|
|
82
|
+
for (const w of work) {
|
|
83
|
+
if (w.flavor.tval === TV.RING && w.flavor.text.includes("Plain Gold")) {
|
|
84
|
+
continue;
|
|
85
|
+
}
|
|
86
|
+
w.sval = SV_UNKNOWN;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
const assign = (kidx, w, text) => {
|
|
90
|
+
assignment.set(kidx, {
|
|
91
|
+
fidx: w.flavor.fidx,
|
|
92
|
+
text,
|
|
93
|
+
attr: w.flavor.dAttr,
|
|
94
|
+
char: w.flavor.dChar,
|
|
95
|
+
});
|
|
96
|
+
};
|
|
97
|
+
/* flavor_assign_fixed (L58): bind each flavour that names a specific sval to
|
|
98
|
+
* every kind of that tval/sval. */
|
|
99
|
+
for (const w of work) {
|
|
100
|
+
if (w.sval === SV_UNKNOWN)
|
|
101
|
+
continue;
|
|
102
|
+
for (const kind of deps.kinds) {
|
|
103
|
+
if (kind.tval === w.flavor.tval && kind.sval === w.sval) {
|
|
104
|
+
assign(kind.kidx, w, w.flavor.text);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
/* flavor_assign_random (L76): give each still-unflavoured kind of `tval` a
|
|
109
|
+
* random one of that tval's still-unassigned flavours. Kinds walk in kidx
|
|
110
|
+
* order. Flavours walk REVERSE file order: C prepends into a linked list
|
|
111
|
+
* (init.c:4239-4270), so head = last parsed and choice=0 selects the last
|
|
112
|
+
* remaining random flavour of that tval in file order (obj-util.c:76-112).
|
|
113
|
+
* `titleFor` supplies the scroll title (flavour text) when relevant. */
|
|
114
|
+
const assignRandom = (tval, titleFor) => {
|
|
115
|
+
let flavorCount = 0;
|
|
116
|
+
for (const w of work) {
|
|
117
|
+
if (w.flavor.tval === tval && w.sval === SV_UNKNOWN)
|
|
118
|
+
flavorCount++;
|
|
119
|
+
}
|
|
120
|
+
for (const kind of deps.kinds) {
|
|
121
|
+
if (kind.tval !== tval || assignment.hasFlavor(kind))
|
|
122
|
+
continue;
|
|
123
|
+
if (flavorCount === 0) {
|
|
124
|
+
throw new Error(`flavor_init: not enough flavors for tval ${tval}`);
|
|
125
|
+
}
|
|
126
|
+
let choice = rng.randint0(flavorCount);
|
|
127
|
+
for (let fi = work.length - 1; fi >= 0; fi--) {
|
|
128
|
+
const w = work[fi];
|
|
129
|
+
if (w.flavor.tval !== tval || w.sval !== SV_UNKNOWN)
|
|
130
|
+
continue;
|
|
131
|
+
if (choice === 0) {
|
|
132
|
+
w.sval = kind.sval;
|
|
133
|
+
const text = titleFor ? titleFor(kind.sval) : w.flavor.text;
|
|
134
|
+
assign(kind.kidx, w, text);
|
|
135
|
+
flavorCount--;
|
|
136
|
+
break;
|
|
137
|
+
}
|
|
138
|
+
choice--;
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
};
|
|
142
|
+
assignRandom(TV.RING);
|
|
143
|
+
assignRandom(TV.AMULET);
|
|
144
|
+
assignRandom(TV.STAFF);
|
|
145
|
+
assignRandom(TV.WAND);
|
|
146
|
+
assignRandom(TV.ROD);
|
|
147
|
+
assignRandom(TV.MUSHROOM);
|
|
148
|
+
assignRandom(TV.POTION);
|
|
149
|
+
/* Scroll titles (L193-227): generate MAX_TITLES unique random titles, then
|
|
150
|
+
* assign scroll flavours with scroll_adj[sval] as their text. A pack that
|
|
151
|
+
* ships no names corpus (nameSections empty) has no words to build from, so
|
|
152
|
+
* titles are skipped and unaware scrolls fall back to the plain base form -
|
|
153
|
+
* randnameMake could never satisfy its min-length/vowel test on an empty
|
|
154
|
+
* corpus, so it must not be called. */
|
|
155
|
+
const scrollWords = deps.nameSections.get(RANDNAME_SCROLL) ?? [];
|
|
156
|
+
const scrollAdj = [];
|
|
157
|
+
if (scrollWords.length > 0) {
|
|
158
|
+
const scrollProbs = buildProb(scrollWords);
|
|
159
|
+
const cap = SCROLL_ADJ_LEN - 3; // titlelen must stay below this
|
|
160
|
+
for (let i = 0; i < MAX_TITLES; i++) {
|
|
161
|
+
const words = [];
|
|
162
|
+
let titlelen = 0;
|
|
163
|
+
let word = randnameMake(rng, 2, 8, scrollProbs);
|
|
164
|
+
while (titlelen + word.length < cap) {
|
|
165
|
+
words.push(word);
|
|
166
|
+
titlelen += word.length + 1;
|
|
167
|
+
/* The final word (drawn when the loop exits) is discarded, but the draw
|
|
168
|
+
* still happens - faithful to the upstream buffer bookkeeping. */
|
|
169
|
+
word = randnameMake(rng, 2, 8, scrollProbs);
|
|
170
|
+
}
|
|
171
|
+
const title = `"${words.join(" ")}"`;
|
|
172
|
+
if (scrollAdj.includes(title)) {
|
|
173
|
+
i--; // collision: have another go (L223-225)
|
|
174
|
+
continue;
|
|
175
|
+
}
|
|
176
|
+
scrollAdj[i] = title;
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
assignRandom(TV.SCROLL, (sval) => scrollAdj[sval] ?? "");
|
|
180
|
+
/* Rand_quick = false (L230). The port's Rng is per-instance, so nothing to
|
|
181
|
+
* restore - the game stream is untouched by this local quick RNG. */
|
|
182
|
+
/* Aware-marking (L232-246): a non-flavoured ordinary kind is known on sight.
|
|
183
|
+
* Empty kinds (no name) and INSTA_ART dummies (kidx >= ordinary_kind_max)
|
|
184
|
+
* are skipped. */
|
|
185
|
+
for (const kind of deps.kinds) {
|
|
186
|
+
if (!kind.name)
|
|
187
|
+
continue;
|
|
188
|
+
/* flavor_init (obj-util.c:238-245): "no flavor and not a kind that only has
|
|
189
|
+
* one instance (an artifact) yields aware". Upstream spells the second half
|
|
190
|
+
* as `kidx < ordinary_kind_max`, which is its proxy for "not one of the
|
|
191
|
+
* write_dummy_object_record INSTA_ART kinds". The port tests the FLAG
|
|
192
|
+
* instead, because its class-book kinds are appended after those dummies
|
|
193
|
+
* (see registerBookKinds) - with the index test every spellbook stayed
|
|
194
|
+
* unaware, so every book in a store came out tagged "{unseen}". */
|
|
195
|
+
if (!assignment.hasFlavor(kind) && !kind.kindFlags.has(KF.INSTA_ART)) {
|
|
196
|
+
awareness.setAware(kind);
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
return assignment;
|
|
200
|
+
}
|
|
201
|
+
//# sourceMappingURL=flavor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flavor.js","sourceRoot":"","sources":["../../src/obj/flavor.ts"],"names":[],"mappings":"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"}
|