@rpgm-tools/neo-angband-core 0.18.0 → 0.19.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/README.md +1 -1
- package/dist/agent/perceive.d.ts.map +1 -1
- package/dist/agent/perceive.js +2 -2
- package/dist/agent/perceive.js.map +1 -1
- package/dist/combat/blow-vectors.d.ts +78 -0
- package/dist/combat/blow-vectors.d.ts.map +1 -0
- package/dist/combat/blow-vectors.fixtures.d.ts +19 -0
- package/dist/combat/blow-vectors.fixtures.d.ts.map +1 -0
- package/dist/combat/blow-vectors.fixtures.js +81 -0
- package/dist/combat/blow-vectors.fixtures.js.map +1 -0
- package/dist/combat/blow-vectors.js +195 -0
- package/dist/combat/blow-vectors.js.map +1 -0
- package/dist/combat/brand-slay.d.ts +22 -9
- package/dist/combat/brand-slay.d.ts.map +1 -1
- package/dist/combat/brand-slay.js +37 -10
- package/dist/combat/brand-slay.js.map +1 -1
- package/dist/combat/index.d.ts +1 -1
- package/dist/combat/index.js +1 -1
- package/dist/combat/melee.d.ts +25 -13
- package/dist/combat/melee.d.ts.map +1 -1
- package/dist/combat/melee.js +23 -19
- package/dist/combat/melee.js.map +1 -1
- package/dist/combat/mon-melee.d.ts +166 -7
- package/dist/combat/mon-melee.d.ts.map +1 -1
- package/dist/combat/mon-melee.js +469 -338
- package/dist/combat/mon-melee.js.map +1 -1
- package/dist/combat/ranged.d.ts +15 -13
- package/dist/combat/ranged.d.ts.map +1 -1
- package/dist/combat/ranged.js +31 -29
- package/dist/combat/ranged.js.map +1 -1
- package/dist/constants.d.ts +14 -0
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +14 -0
- package/dist/constants.js.map +1 -1
- package/dist/datafile.d.ts +48 -0
- package/dist/datafile.d.ts.map +1 -0
- package/dist/datafile.js +102 -0
- package/dist/datafile.js.map +1 -0
- package/dist/effects/effect-info-registry.d.ts +237 -0
- package/dist/effects/effect-info-registry.d.ts.map +1 -0
- package/dist/effects/effect-info-registry.js +138 -0
- package/dist/effects/effect-info-registry.js.map +1 -0
- package/dist/effects/effect-info-vectors.d.ts +92 -0
- package/dist/effects/effect-info-vectors.d.ts.map +1 -0
- package/dist/effects/effect-info-vectors.fixtures.d.ts +18 -0
- package/dist/effects/effect-info-vectors.fixtures.d.ts.map +1 -0
- package/dist/effects/effect-info-vectors.fixtures.js +51 -0
- package/dist/effects/effect-info-vectors.fixtures.js.map +1 -0
- package/dist/effects/effect-info-vectors.js +315 -0
- package/dist/effects/effect-info-vectors.js.map +1 -0
- package/dist/effects/effect-info.d.ts +5 -1
- package/dist/effects/effect-info.d.ts.map +1 -1
- package/dist/effects/effect-info.js +245 -143
- package/dist/effects/effect-info.js.map +1 -1
- package/dist/effects/effect.d.ts +4 -3
- package/dist/effects/effect.d.ts.map +1 -1
- package/dist/effects/effect.js +88 -70
- package/dist/effects/effect.js.map +1 -1
- package/dist/effects/handlers.d.ts +1 -1
- package/dist/effects/handlers.d.ts.map +1 -1
- package/dist/effects/handlers.js +5 -2
- package/dist/effects/handlers.js.map +1 -1
- package/dist/effects/interpreter.d.ts +11 -0
- package/dist/effects/interpreter.d.ts.map +1 -1
- package/dist/effects/interpreter.js +13 -0
- package/dist/effects/interpreter.js.map +1 -1
- package/dist/game/cave-cmd.d.ts +9 -5
- package/dist/game/cave-cmd.d.ts.map +1 -1
- package/dist/game/cave-cmd.js +56 -11
- package/dist/game/cave-cmd.js.map +1 -1
- package/dist/game/cave-square.d.ts +42 -0
- package/dist/game/cave-square.d.ts.map +1 -0
- package/dist/game/cave-square.js +73 -0
- package/dist/game/cave-square.js.map +1 -0
- package/dist/game/char-sheet.d.ts +12 -8
- package/dist/game/char-sheet.d.ts.map +1 -1
- package/dist/game/char-sheet.js +41 -8
- package/dist/game/char-sheet.js.map +1 -1
- package/dist/game/chest.d.ts +2 -3
- package/dist/game/chest.d.ts.map +1 -1
- package/dist/game/chest.js +17 -6
- package/dist/game/chest.js.map +1 -1
- package/dist/game/context.d.ts +213 -22
- package/dist/game/context.d.ts.map +1 -1
- package/dist/game/context.js +109 -17
- package/dist/game/context.js.map +1 -1
- package/dist/game/describe.d.ts +13 -0
- package/dist/game/describe.d.ts.map +1 -1
- package/dist/game/describe.js +32 -4
- package/dist/game/describe.js.map +1 -1
- package/dist/game/display.d.ts +97 -8
- package/dist/game/display.d.ts.map +1 -1
- package/dist/game/display.js +157 -13
- package/dist/game/display.js.map +1 -1
- package/dist/game/dump-level.d.ts.map +1 -1
- package/dist/game/dump-level.js +3 -2
- package/dist/game/dump-level.js.map +1 -1
- package/dist/game/effect-attack.d.ts.map +1 -1
- package/dist/game/effect-attack.js +36 -27
- package/dist/game/effect-attack.js.map +1 -1
- package/dist/game/effect-detect.d.ts +4 -4
- package/dist/game/effect-detect.d.ts.map +1 -1
- package/dist/game/effect-detect.js +42 -9
- package/dist/game/effect-detect.js.map +1 -1
- package/dist/game/effect-env.d.ts +7 -1
- package/dist/game/effect-env.d.ts.map +1 -1
- package/dist/game/effect-env.js +1 -0
- package/dist/game/effect-env.js.map +1 -1
- package/dist/game/effect-general.d.ts +5 -3
- package/dist/game/effect-general.d.ts.map +1 -1
- package/dist/game/effect-general.js +94 -43
- package/dist/game/effect-general.js.map +1 -1
- package/dist/game/effect-item.d.ts +2 -1
- package/dist/game/effect-item.d.ts.map +1 -1
- package/dist/game/effect-item.js +136 -82
- package/dist/game/effect-item.js.map +1 -1
- package/dist/game/effect-melee.d.ts +10 -4
- package/dist/game/effect-melee.d.ts.map +1 -1
- package/dist/game/effect-melee.js +44 -19
- package/dist/game/effect-melee.js.map +1 -1
- package/dist/game/effect-monster.d.ts +26 -4
- package/dist/game/effect-monster.d.ts.map +1 -1
- package/dist/game/effect-monster.js +52 -9
- package/dist/game/effect-monster.js.map +1 -1
- package/dist/game/effect-teleport.d.ts +58 -19
- package/dist/game/effect-teleport.d.ts.map +1 -1
- package/dist/game/effect-teleport.js +143 -27
- package/dist/game/effect-teleport.js.map +1 -1
- package/dist/game/effect-terrain.d.ts +1 -3
- package/dist/game/effect-terrain.d.ts.map +1 -1
- package/dist/game/effect-terrain.js +38 -22
- package/dist/game/effect-terrain.js.map +1 -1
- package/dist/game/equip-cmp.d.ts.map +1 -1
- package/dist/game/equip-cmp.js +10 -7
- package/dist/game/equip-cmp.js.map +1 -1
- package/dist/game/floor.d.ts +16 -4
- package/dist/game/floor.d.ts.map +1 -1
- package/dist/game/floor.js +22 -4
- package/dist/game/floor.js.map +1 -1
- package/dist/game/gear.d.ts +101 -13
- package/dist/game/gear.d.ts.map +1 -1
- package/dist/game/gear.js +183 -24
- package/dist/game/gear.js.map +1 -1
- package/dist/game/harness.d.ts +2 -1
- package/dist/game/harness.d.ts.map +1 -1
- package/dist/game/harness.js +12 -1
- package/dist/game/harness.js.map +1 -1
- package/dist/game/ignore-cmd.d.ts +47 -8
- package/dist/game/ignore-cmd.d.ts.map +1 -1
- package/dist/game/ignore-cmd.js +76 -8
- package/dist/game/ignore-cmd.js.map +1 -1
- package/dist/game/known.d.ts +223 -34
- package/dist/game/known.d.ts.map +1 -1
- package/dist/game/known.js +301 -67
- package/dist/game/known.js.map +1 -1
- package/dist/game/loop.d.ts +4 -3
- package/dist/game/loop.d.ts.map +1 -1
- package/dist/game/loop.js +49 -29
- package/dist/game/loop.js.map +1 -1
- package/dist/game/lore-color.d.ts.map +1 -1
- package/dist/game/lore-color.js +13 -1
- package/dist/game/lore-color.js.map +1 -1
- package/dist/game/mon-cast.d.ts +3 -4
- package/dist/game/mon-cast.d.ts.map +1 -1
- package/dist/game/mon-cast.js +30 -2
- package/dist/game/mon-cast.js.map +1 -1
- package/dist/game/mon-cmd.d.ts +4 -5
- package/dist/game/mon-cmd.d.ts.map +1 -1
- package/dist/game/mon-cmd.js +80 -27
- package/dist/game/mon-cmd.js.map +1 -1
- package/dist/game/mon-death.d.ts +8 -4
- package/dist/game/mon-death.d.ts.map +1 -1
- package/dist/game/mon-death.js +6 -9
- package/dist/game/mon-death.js.map +1 -1
- package/dist/game/mon-group.d.ts +9 -5
- package/dist/game/mon-group.d.ts.map +1 -1
- package/dist/game/mon-group.js +9 -5
- package/dist/game/mon-group.js.map +1 -1
- package/dist/game/mon-message.d.ts +90 -40
- package/dist/game/mon-message.d.ts.map +1 -1
- package/dist/game/mon-message.js +267 -59
- package/dist/game/mon-message.js.map +1 -1
- package/dist/game/mon-place.d.ts +11 -1
- package/dist/game/mon-place.d.ts.map +1 -1
- package/dist/game/mon-place.js +15 -3
- package/dist/game/mon-place.js.map +1 -1
- package/dist/game/mon-ranged.d.ts +2 -1
- package/dist/game/mon-ranged.d.ts.map +1 -1
- package/dist/game/mon-ranged.js +11 -5
- package/dist/game/mon-ranged.js.map +1 -1
- package/dist/game/mon-side.d.ts +3 -2
- package/dist/game/mon-side.d.ts.map +1 -1
- package/dist/game/mon-side.js +15 -14
- package/dist/game/mon-side.js.map +1 -1
- package/dist/game/monster-turn.d.ts +20 -10
- package/dist/game/monster-turn.d.ts.map +1 -1
- package/dist/game/monster-turn.js +110 -83
- package/dist/game/monster-turn.js.map +1 -1
- package/dist/game/notice.d.ts +36 -0
- package/dist/game/notice.d.ts.map +1 -0
- package/dist/game/notice.js +79 -0
- package/dist/game/notice.js.map +1 -0
- package/dist/game/obj-cmd.d.ts +14 -3
- package/dist/game/obj-cmd.d.ts.map +1 -1
- package/dist/game/obj-cmd.js +109 -35
- package/dist/game/obj-cmd.js.map +1 -1
- package/dist/game/obj-list.d.ts +13 -2
- package/dist/game/obj-list.d.ts.map +1 -1
- package/dist/game/obj-list.js +42 -27
- package/dist/game/obj-list.js.map +1 -1
- package/dist/game/object-inspect.d.ts +9 -0
- package/dist/game/object-inspect.d.ts.map +1 -1
- package/dist/game/object-inspect.js +4 -0
- package/dist/game/object-inspect.js.map +1 -1
- package/dist/game/pickup.d.ts +0 -2
- package/dist/game/pickup.d.ts.map +1 -1
- package/dist/game/pickup.js +18 -3
- package/dist/game/pickup.js.map +1 -1
- package/dist/game/player-side-vectors.d.ts +174 -0
- package/dist/game/player-side-vectors.d.ts.map +1 -0
- package/dist/game/player-side-vectors.fixtures.d.ts +33 -0
- package/dist/game/player-side-vectors.fixtures.d.ts.map +1 -0
- package/dist/game/player-side-vectors.fixtures.js +191 -0
- package/dist/game/player-side-vectors.fixtures.js.map +1 -0
- package/dist/game/player-side-vectors.js +292 -0
- package/dist/game/player-side-vectors.js.map +1 -0
- package/dist/game/player-side.d.ts +129 -1
- package/dist/game/player-side.d.ts.map +1 -1
- package/dist/game/player-side.js +520 -338
- package/dist/game/player-side.js.map +1 -1
- package/dist/game/player-turn.d.ts +26 -7
- package/dist/game/player-turn.d.ts.map +1 -1
- package/dist/game/player-turn.js +180 -33
- package/dist/game/player-turn.js.map +1 -1
- package/dist/game/poly.d.ts +38 -0
- package/dist/game/poly.d.ts.map +1 -0
- package/dist/game/poly.js +82 -0
- package/dist/game/poly.js.map +1 -0
- package/dist/game/project-cast.d.ts +20 -3
- package/dist/game/project-cast.d.ts.map +1 -1
- package/dist/game/project-cast.js +49 -6
- package/dist/game/project-cast.js.map +1 -1
- package/dist/game/project-feat-vectors.d.ts +124 -0
- package/dist/game/project-feat-vectors.d.ts.map +1 -0
- package/dist/game/project-feat-vectors.fixtures.d.ts +13 -0
- package/dist/game/project-feat-vectors.fixtures.d.ts.map +1 -0
- package/dist/game/project-feat-vectors.fixtures.js +94 -0
- package/dist/game/project-feat-vectors.fixtures.js.map +1 -0
- package/dist/game/project-feat-vectors.js +229 -0
- package/dist/game/project-feat-vectors.js.map +1 -0
- package/dist/game/project-feat.d.ts +53 -1
- package/dist/game/project-feat.d.ts.map +1 -1
- package/dist/game/project-feat.js +374 -247
- package/dist/game/project-feat.js.map +1 -1
- package/dist/game/project-monster.d.ts +21 -8
- package/dist/game/project-monster.d.ts.map +1 -1
- package/dist/game/project-monster.js +45 -21
- package/dist/game/project-monster.js.map +1 -1
- package/dist/game/project-obj.d.ts +62 -0
- package/dist/game/project-obj.d.ts.map +1 -1
- package/dist/game/project-obj.js +72 -41
- package/dist/game/project-obj.js.map +1 -1
- package/dist/game/project-player.d.ts +8 -0
- package/dist/game/project-player.d.ts.map +1 -1
- package/dist/game/project-player.js.map +1 -1
- package/dist/game/projection-handlers.d.ts +81 -0
- package/dist/game/projection-handlers.d.ts.map +1 -0
- package/dist/game/projection-handlers.js +93 -0
- package/dist/game/projection-handlers.js.map +1 -0
- package/dist/game/quest.d.ts +23 -0
- package/dist/game/quest.d.ts.map +1 -1
- package/dist/game/quest.js +42 -0
- package/dist/game/quest.js.map +1 -1
- package/dist/game/ranged-cmd.d.ts +13 -2
- package/dist/game/ranged-cmd.d.ts.map +1 -1
- package/dist/game/ranged-cmd.js +32 -15
- package/dist/game/ranged-cmd.js.map +1 -1
- package/dist/game/repeat.d.ts +78 -0
- package/dist/game/repeat.d.ts.map +1 -0
- package/dist/game/repeat.js +88 -0
- package/dist/game/repeat.js.map +1 -0
- package/dist/game/shape-inspect.d.ts +74 -0
- package/dist/game/shape-inspect.d.ts.map +1 -0
- package/dist/game/shape-inspect.js +114 -0
- package/dist/game/shape-inspect.js.map +1 -0
- package/dist/game/spell-cmd.d.ts +15 -4
- package/dist/game/spell-cmd.d.ts.map +1 -1
- package/dist/game/spell-cmd.js +35 -6
- package/dist/game/spell-cmd.js.map +1 -1
- package/dist/game/spoil.d.ts.map +1 -1
- package/dist/game/spoil.js +89 -40
- package/dist/game/spoil.js.map +1 -1
- package/dist/game/steal.d.ts +3 -3
- package/dist/game/steal.d.ts.map +1 -1
- package/dist/game/steal.js +9 -4
- package/dist/game/steal.js.map +1 -1
- package/dist/game/target-loop.d.ts +10 -4
- package/dist/game/target-loop.d.ts.map +1 -1
- package/dist/game/target-loop.js +14 -8
- package/dist/game/target-loop.js.map +1 -1
- package/dist/game/target.d.ts +4 -4
- package/dist/game/target.d.ts.map +1 -1
- package/dist/game/target.js +19 -8
- package/dist/game/target.js.map +1 -1
- package/dist/game/ui-entry.d.ts +63 -4
- package/dist/game/ui-entry.d.ts.map +1 -1
- package/dist/game/ui-entry.js +151 -23
- package/dist/game/ui-entry.js.map +1 -1
- package/dist/game/wizard.d.ts +23 -5
- package/dist/game/wizard.d.ts.map +1 -1
- package/dist/game/wizard.js +93 -11
- package/dist/game/wizard.js.map +1 -1
- package/dist/game/world.d.ts.map +1 -1
- package/dist/game/world.js +6 -0
- package/dist/game/world.js.map +1 -1
- package/dist/gen/cave.d.ts +49 -8
- package/dist/gen/cave.d.ts.map +1 -1
- package/dist/gen/cave.js +200 -28
- package/dist/gen/cave.js.map +1 -1
- package/dist/gen/generate.d.ts +54 -9
- package/dist/gen/generate.d.ts.map +1 -1
- package/dist/gen/generate.js +55 -8
- package/dist/gen/generate.js.map +1 -1
- package/dist/gen/glyph-vectors.d.ts +109 -0
- package/dist/gen/glyph-vectors.d.ts.map +1 -0
- package/dist/gen/glyph-vectors.fixtures.d.ts +18 -0
- package/dist/gen/glyph-vectors.fixtures.d.ts.map +1 -0
- package/dist/gen/glyph-vectors.fixtures.js +94 -0
- package/dist/gen/glyph-vectors.fixtures.js.map +1 -0
- package/dist/gen/glyph-vectors.js +218 -0
- package/dist/gen/glyph-vectors.js.map +1 -0
- package/dist/gen/glyph.d.ts +104 -0
- package/dist/gen/glyph.d.ts.map +1 -0
- package/dist/gen/glyph.js +72 -0
- package/dist/gen/glyph.js.map +1 -0
- package/dist/gen/room.d.ts +26 -2
- package/dist/gen/room.d.ts.map +1 -1
- package/dist/gen/room.js +414 -264
- package/dist/gen/room.js.map +1 -1
- package/dist/gen/util.d.ts +11 -2
- package/dist/gen/util.d.ts.map +1 -1
- package/dist/gen/util.js +31 -9
- package/dist/gen/util.js.map +1 -1
- package/dist/i18n/i18n.d.ts +207 -0
- package/dist/i18n/i18n.d.ts.map +1 -0
- package/dist/i18n/i18n.js +405 -0
- package/dist/i18n/i18n.js.map +1 -0
- package/dist/i18n/text.d.ts +62 -0
- package/dist/i18n/text.d.ts.map +1 -0
- package/dist/i18n/text.js +120 -0
- package/dist/i18n/text.js.map +1 -0
- package/dist/index.d.ts +25 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +38 -0
- package/dist/index.js.map +1 -1
- package/dist/mod/extension.d.ts +115 -0
- package/dist/mod/extension.d.ts.map +1 -0
- package/dist/mod/extension.js +85 -0
- package/dist/mod/extension.js.map +1 -0
- package/dist/mod/ids.d.ts +10 -0
- package/dist/mod/ids.d.ts.map +1 -1
- package/dist/mod/ids.js +90 -21
- package/dist/mod/ids.js.map +1 -1
- package/dist/mod/record-keys.d.ts +43 -0
- package/dist/mod/record-keys.d.ts.map +1 -0
- package/dist/mod/record-keys.js +100 -0
- package/dist/mod/record-keys.js.map +1 -0
- package/dist/mod/registry-host.d.ts +472 -0
- package/dist/mod/registry-host.d.ts.map +1 -1
- package/dist/mod/registry-host.js +313 -0
- package/dist/mod/registry-host.js.map +1 -1
- package/dist/mod/save-blocks.d.ts +1 -1
- package/dist/mon/bind.d.ts.map +1 -1
- package/dist/mon/bind.js +6 -3
- package/dist/mon/bind.js.map +1 -1
- package/dist/mon/knowledge-groups.d.ts +0 -6
- package/dist/mon/knowledge-groups.d.ts.map +1 -1
- package/dist/mon/knowledge-groups.js +12 -8
- package/dist/mon/knowledge-groups.js.map +1 -1
- package/dist/mon/lore-describe.d.ts +46 -10
- package/dist/mon/lore-describe.d.ts.map +1 -1
- package/dist/mon/lore-describe.js +74 -22
- package/dist/mon/lore-describe.js.map +1 -1
- package/dist/mon/lore-file.d.ts +126 -0
- package/dist/mon/lore-file.d.ts.map +1 -0
- package/dist/mon/lore-file.js +291 -0
- package/dist/mon/lore-file.js.map +1 -0
- package/dist/mon/lore.d.ts +9 -3
- package/dist/mon/lore.d.ts.map +1 -1
- package/dist/mon/lore.js +9 -3
- package/dist/mon/lore.js.map +1 -1
- package/dist/mon/make.d.ts +4 -2
- package/dist/mon/make.d.ts.map +1 -1
- package/dist/mon/make.js +4 -2
- package/dist/mon/make.js.map +1 -1
- package/dist/mon/monster.d.ts +1 -1
- package/dist/mon/monster.js +1 -1
- package/dist/mon/predicate.d.ts +14 -9
- package/dist/mon/predicate.d.ts.map +1 -1
- package/dist/mon/predicate.js +14 -9
- package/dist/mon/predicate.js.map +1 -1
- package/dist/mon/project-mon.d.ts +16 -3
- package/dist/mon/project-mon.d.ts.map +1 -1
- package/dist/mon/project-mon.js +14 -5
- package/dist/mon/project-mon.js.map +1 -1
- package/dist/mon/steal.d.ts +31 -4
- package/dist/mon/steal.d.ts.map +1 -1
- package/dist/mon/steal.js +20 -7
- package/dist/mon/steal.js.map +1 -1
- package/dist/mon/take-hit.d.ts +8 -3
- package/dist/mon/take-hit.d.ts.map +1 -1
- package/dist/mon/take-hit.js +8 -3
- package/dist/mon/take-hit.js.map +1 -1
- package/dist/mon/timed.d.ts +15 -9
- package/dist/mon/timed.d.ts.map +1 -1
- package/dist/mon/timed.js +13 -8
- package/dist/mon/timed.js.map +1 -1
- package/dist/mon/types.d.ts +11 -4
- package/dist/mon/types.d.ts.map +1 -1
- package/dist/mon/types.js.map +1 -1
- package/dist/msg.d.ts +40 -1
- package/dist/msg.d.ts.map +1 -1
- package/dist/msg.js +42 -1
- package/dist/msg.js.map +1 -1
- package/dist/obj/artifact-fake.d.ts +46 -14
- package/dist/obj/artifact-fake.d.ts.map +1 -1
- package/dist/obj/artifact-fake.js +46 -17
- package/dist/obj/artifact-fake.js.map +1 -1
- package/dist/obj/bind.d.ts +23 -0
- package/dist/obj/bind.d.ts.map +1 -1
- package/dist/obj/bind.js +49 -9
- package/dist/obj/bind.js.map +1 -1
- package/dist/obj/desc-vectors.d.ts +68 -0
- package/dist/obj/desc-vectors.d.ts.map +1 -0
- package/dist/obj/desc-vectors.fixtures.d.ts +12 -0
- package/dist/obj/desc-vectors.fixtures.d.ts.map +1 -0
- package/dist/obj/desc-vectors.fixtures.js +95 -0
- package/dist/obj/desc-vectors.fixtures.js.map +1 -0
- package/dist/obj/desc-vectors.js +86 -0
- package/dist/obj/desc-vectors.js.map +1 -0
- package/dist/obj/desc.d.ts +17 -2
- package/dist/obj/desc.d.ts.map +1 -1
- package/dist/obj/desc.js +129 -54
- package/dist/obj/desc.js.map +1 -1
- package/dist/obj/effects-info.d.ts.map +1 -1
- package/dist/obj/effects-info.js +87 -58
- package/dist/obj/effects-info.js.map +1 -1
- package/dist/obj/fake-object.d.ts +70 -0
- package/dist/obj/fake-object.d.ts.map +1 -0
- package/dist/obj/fake-object.js +104 -0
- package/dist/obj/fake-object.js.map +1 -0
- package/dist/obj/ignore.d.ts +55 -12
- package/dist/obj/ignore.d.ts.map +1 -1
- package/dist/obj/ignore.js +68 -31
- package/dist/obj/ignore.js.map +1 -1
- package/dist/obj/knowledge.d.ts +46 -3
- package/dist/obj/knowledge.d.ts.map +1 -1
- package/dist/obj/knowledge.js +169 -151
- package/dist/obj/knowledge.js.map +1 -1
- package/dist/obj/known-object.d.ts +68 -8
- package/dist/obj/known-object.d.ts.map +1 -1
- package/dist/obj/known-object.js +90 -10
- package/dist/obj/known-object.js.map +1 -1
- package/dist/obj/make.d.ts +15 -4
- package/dist/obj/make.d.ts.map +1 -1
- package/dist/obj/make.js +49 -27
- package/dist/obj/make.js.map +1 -1
- package/dist/obj/object-info.d.ts +10 -0
- package/dist/obj/object-info.d.ts.map +1 -1
- package/dist/obj/object-info.js +93 -7
- package/dist/obj/object-info.js.map +1 -1
- package/dist/obj/object.d.ts +42 -4
- package/dist/obj/object.d.ts.map +1 -1
- package/dist/obj/object.js +362 -147
- package/dist/obj/object.js.map +1 -1
- package/dist/obj/power.d.ts +23 -4
- package/dist/obj/power.d.ts.map +1 -1
- package/dist/obj/power.js +231 -65
- package/dist/obj/power.js.map +1 -1
- package/dist/obj/randart-build.d.ts +27 -22
- package/dist/obj/randart-build.d.ts.map +1 -1
- package/dist/obj/randart-build.js +435 -357
- package/dist/obj/randart-build.js.map +1 -1
- package/dist/obj/randart-data.d.ts +62 -24
- package/dist/obj/randart-data.d.ts.map +1 -1
- package/dist/obj/randart-data.js +333 -189
- package/dist/obj/randart-data.js.map +1 -1
- package/dist/obj/randart-file.d.ts +21 -0
- package/dist/obj/randart-file.d.ts.map +1 -0
- package/dist/obj/randart-file.js +119 -0
- package/dist/obj/randart-file.js.map +1 -0
- package/dist/obj/randart-log.d.ts +63 -0
- package/dist/obj/randart-log.d.ts.map +1 -0
- package/dist/obj/randart-log.js +72 -0
- package/dist/obj/randart-log.js.map +1 -0
- package/dist/obj/randart-registry.d.ts +178 -0
- package/dist/obj/randart-registry.d.ts.map +1 -0
- package/dist/obj/randart-registry.js +140 -0
- package/dist/obj/randart-registry.js.map +1 -0
- package/dist/obj/randart-vectors.d.ts +97 -0
- package/dist/obj/randart-vectors.d.ts.map +1 -0
- package/dist/obj/randart-vectors.fixtures.d.ts +18 -0
- package/dist/obj/randart-vectors.fixtures.d.ts.map +1 -0
- package/dist/obj/randart-vectors.fixtures.js +50 -0
- package/dist/obj/randart-vectors.fixtures.js.map +1 -0
- package/dist/obj/randart-vectors.js +311 -0
- package/dist/obj/randart-vectors.js.map +1 -0
- package/dist/obj/randart.d.ts +53 -15
- package/dist/obj/randart.d.ts.map +1 -1
- package/dist/obj/randart.js +166 -44
- package/dist/obj/randart.js.map +1 -1
- package/dist/obj/rune-registry.d.ts +180 -0
- package/dist/obj/rune-registry.d.ts.map +1 -0
- package/dist/obj/rune-registry.js +161 -0
- package/dist/obj/rune-registry.js.map +1 -0
- package/dist/obj/rune-vectors.d.ts +99 -0
- package/dist/obj/rune-vectors.d.ts.map +1 -0
- package/dist/obj/rune-vectors.fixtures.d.ts +44 -0
- package/dist/obj/rune-vectors.fixtures.d.ts.map +1 -0
- package/dist/obj/rune-vectors.fixtures.js +125 -0
- package/dist/obj/rune-vectors.fixtures.js.map +1 -0
- package/dist/obj/rune-vectors.js +159 -0
- package/dist/obj/rune-vectors.js.map +1 -0
- package/dist/obj/tval-registry.d.ts +174 -0
- package/dist/obj/tval-registry.d.ts.map +1 -0
- package/dist/obj/tval-registry.js +151 -0
- package/dist/obj/tval-registry.js.map +1 -0
- package/dist/obj/tval-vectors.d.ts +85 -0
- package/dist/obj/tval-vectors.d.ts.map +1 -0
- package/dist/obj/tval-vectors.fixtures.d.ts +24 -0
- package/dist/obj/tval-vectors.fixtures.d.ts.map +1 -0
- package/dist/obj/tval-vectors.fixtures.js +41 -0
- package/dist/obj/tval-vectors.fixtures.js.map +1 -0
- package/dist/obj/tval-vectors.js +76 -0
- package/dist/obj/tval-vectors.js.map +1 -0
- package/dist/obj/types.d.ts +18 -7
- package/dist/obj/types.d.ts.map +1 -1
- package/dist/obj/types.js.map +1 -1
- package/dist/obj/value.d.ts.map +1 -1
- package/dist/obj/value.js +23 -20
- package/dist/obj/value.js.map +1 -1
- package/dist/parser.d.ts +116 -0
- package/dist/parser.d.ts.map +1 -0
- package/dist/parser.js +205 -0
- package/dist/parser.js.map +1 -0
- package/dist/player/bind.d.ts.map +1 -1
- package/dist/player/bind.js +3 -2
- package/dist/player/bind.js.map +1 -1
- package/dist/player/birth.d.ts +2 -1
- package/dist/player/birth.d.ts.map +1 -1
- package/dist/player/birth.js +2 -1
- package/dist/player/birth.js.map +1 -1
- package/dist/player/calcs.d.ts +58 -23
- package/dist/player/calcs.d.ts.map +1 -1
- package/dist/player/calcs.js +93 -36
- package/dist/player/calcs.js.map +1 -1
- package/dist/player/death.d.ts +50 -0
- package/dist/player/death.d.ts.map +1 -0
- package/dist/player/death.js +46 -0
- package/dist/player/death.js.map +1 -0
- package/dist/player/options-file.d.ts +129 -0
- package/dist/player/options-file.d.ts.map +1 -0
- package/dist/player/options-file.js +309 -0
- package/dist/player/options-file.js.map +1 -0
- package/dist/player/options.d.ts +2 -1
- package/dist/player/options.d.ts.map +1 -1
- package/dist/player/options.js +2 -1
- package/dist/player/options.js.map +1 -1
- package/dist/player/player.d.ts +50 -3
- package/dist/player/player.d.ts.map +1 -1
- package/dist/player/player.js +10 -1
- package/dist/player/player.js.map +1 -1
- package/dist/player/shape-lore.d.ts +11 -7
- package/dist/player/shape-lore.d.ts.map +1 -1
- package/dist/player/shape-lore.js +24 -11
- package/dist/player/shape-lore.js.map +1 -1
- package/dist/player/timed.d.ts +5 -3
- package/dist/player/timed.d.ts.map +1 -1
- package/dist/player/timed.js +11 -2
- package/dist/player/timed.js.map +1 -1
- package/dist/player/types.d.ts +29 -4
- package/dist/player/types.d.ts.map +1 -1
- package/dist/player/types.js +24 -1
- package/dist/player/types.js.map +1 -1
- package/dist/session/boot.d.ts +26 -2
- package/dist/session/boot.d.ts.map +1 -1
- package/dist/session/boot.js +21 -2
- package/dist/session/boot.js.map +1 -1
- package/dist/session/game.d.ts +15 -0
- package/dist/session/game.d.ts.map +1 -1
- package/dist/session/game.js +616 -140
- package/dist/session/game.js.map +1 -1
- package/dist/session/save-migrate.d.ts.map +1 -1
- package/dist/session/save-migrate.js +76 -1
- package/dist/session/save-migrate.js.map +1 -1
- package/dist/session/save.d.ts +75 -12
- package/dist/session/save.d.ts.map +1 -1
- package/dist/session/save.js +177 -18
- package/dist/session/save.js.map +1 -1
- package/dist/store/bind.d.ts +1 -1
- package/dist/store/bind.d.ts.map +1 -1
- package/dist/store/bind.js +4 -3
- package/dist/store/bind.js.map +1 -1
- package/dist/store/mass-produce-vectors.d.ts +40 -0
- package/dist/store/mass-produce-vectors.d.ts.map +1 -0
- package/dist/store/mass-produce-vectors.fixtures.d.ts +13 -0
- package/dist/store/mass-produce-vectors.fixtures.d.ts.map +1 -0
- package/dist/store/mass-produce-vectors.fixtures.js +52 -0
- package/dist/store/mass-produce-vectors.fixtures.js.map +1 -0
- package/dist/store/mass-produce-vectors.js +44 -0
- package/dist/store/mass-produce-vectors.js.map +1 -0
- package/dist/store/store.d.ts +104 -7
- package/dist/store/store.d.ts.map +1 -1
- package/dist/store/store.js +199 -77
- package/dist/store/store.js.map +1 -1
- package/dist/store/transact.d.ts +14 -5
- package/dist/store/transact.d.ts.map +1 -1
- package/dist/store/transact.js +17 -16
- package/dist/store/transact.js.map +1 -1
- package/dist/store/types.d.ts +3 -2
- package/dist/store/types.d.ts.map +1 -1
- package/dist/store/types.js +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/dist/visuals/index.d.ts +1 -0
- package/dist/visuals/index.d.ts.map +1 -1
- package/dist/visuals/index.js +1 -0
- package/dist/visuals/index.js.map +1 -1
- package/dist/visuals/map-text.d.ts +8 -0
- package/dist/visuals/map-text.d.ts.map +1 -1
- package/dist/visuals/map-text.js +1 -1
- package/dist/visuals/map-text.js.map +1 -1
- package/dist/visuals/object-glyph.d.ts +56 -0
- package/dist/visuals/object-glyph.d.ts.map +1 -0
- package/dist/visuals/object-glyph.js +52 -0
- package/dist/visuals/object-glyph.js.map +1 -0
- package/dist/visuals/prefs.d.ts +14 -22
- package/dist/visuals/prefs.d.ts.map +1 -1
- package/dist/visuals/prefs.js +4 -23
- package/dist/visuals/prefs.js.map +1 -1
- package/dist/visuals/tile-prefs.d.ts +26 -0
- package/dist/visuals/tile-prefs.d.ts.map +1 -1
- package/dist/visuals/tile-prefs.js +28 -0
- package/dist/visuals/tile-prefs.js.map +1 -1
- package/dist/world/feature.d.ts +2 -1
- package/dist/world/feature.d.ts.map +1 -1
- package/dist/world/feature.js +2 -0
- package/dist/world/feature.js.map +1 -1
- package/dist/world/project.d.ts +10 -2
- package/dist/world/project.d.ts.map +1 -1
- package/dist/world/project.js +18 -6
- package/dist/world/project.js.map +1 -1
- package/dist/world/projection.d.ts +37 -3
- package/dist/world/projection.d.ts.map +1 -1
- package/dist/world/projection.js +69 -7
- package/dist/world/projection.js.map +1 -1
- package/dist/world/trap.d.ts +2 -1
- package/dist/world/trap.d.ts.map +1 -1
- package/dist/world/trap.js +2 -1
- package/dist/world/trap.js.map +1 -1
- package/dist/world/view.d.ts +1 -1
- package/dist/world/view.d.ts.map +1 -1
- package/dist/world/view.js +11 -3
- package/dist/world/view.js.map +1 -1
- package/package.json +1 -1
- package/src/agent/perceive.ts +2 -3
- package/src/combat/blow-vectors.fixtures.ts +99 -0
- package/src/combat/blow-vectors.json +482 -0
- package/src/combat/blow-vectors.ts +280 -0
- package/src/combat/brand-slay.ts +42 -11
- package/src/combat/index.ts +1 -1
- package/src/combat/melee.ts +37 -19
- package/src/combat/mon-melee.ts +611 -364
- package/src/combat/ranged.ts +43 -26
- package/src/constants.ts +15 -0
- package/src/datafile.ts +148 -0
- package/src/effects/effect-info-registry.ts +313 -0
- package/src/effects/effect-info-vectors.fixtures.ts +61 -0
- package/src/effects/effect-info-vectors.json +11532 -0
- package/src/effects/effect-info-vectors.ts +376 -0
- package/src/effects/effect-info.ts +1005 -859
- package/src/effects/effect.ts +96 -62
- package/src/effects/handlers.ts +5 -2
- package/src/effects/interpreter.ts +14 -0
- package/src/game/cave-cmd.ts +54 -11
- package/src/game/cave-square.ts +80 -0
- package/src/game/char-sheet.ts +59 -16
- package/src/game/chest.ts +25 -8
- package/src/game/context.ts +293 -27
- package/src/game/describe.ts +34 -4
- package/src/game/display.ts +215 -19
- package/src/game/dump-level.ts +3 -2
- package/src/game/effect-attack.ts +41 -28
- package/src/game/effect-detect.ts +45 -8
- package/src/game/effect-env.ts +8 -0
- package/src/game/effect-general.ts +110 -47
- package/src/game/effect-item.ts +1075 -999
- package/src/game/effect-melee.ts +51 -18
- package/src/game/effect-monster.ts +55 -9
- package/src/game/effect-teleport.ts +173 -38
- package/src/game/effect-terrain.ts +38 -22
- package/src/game/equip-cmp.ts +483 -480
- package/src/game/floor.ts +22 -4
- package/src/game/gear.ts +210 -21
- package/src/game/harness.ts +12 -1
- package/src/game/ignore-cmd.ts +96 -8
- package/src/game/known.ts +392 -73
- package/src/game/loop.ts +52 -27
- package/src/game/lore-color.ts +13 -1
- package/src/game/mon-cast.ts +31 -6
- package/src/game/mon-cmd.ts +95 -30
- package/src/game/mon-death.ts +14 -12
- package/src/game/mon-group.ts +9 -5
- package/src/game/mon-message.ts +363 -65
- package/src/game/mon-place.ts +15 -3
- package/src/game/mon-ranged.ts +14 -5
- package/src/game/mon-side.ts +16 -12
- package/src/game/monster-turn.ts +120 -87
- package/src/game/notice.ts +85 -0
- package/src/game/obj-cmd.ts +126 -37
- package/src/game/obj-list.ts +44 -26
- package/src/game/object-inspect.ts +13 -0
- package/src/game/pickup.ts +29 -5
- package/src/game/player-side-vectors.fixtures.ts +215 -0
- package/src/game/player-side-vectors.json +6914 -0
- package/src/game/player-side-vectors.ts +420 -0
- package/src/game/player-side.ts +622 -340
- package/src/game/player-turn.ts +228 -31
- package/src/game/poly.ts +107 -0
- package/src/game/project-cast.ts +63 -6
- package/src/game/project-feat-vectors.fixtures.ts +106 -0
- package/src/game/project-feat-vectors.json +6554 -0
- package/src/game/project-feat-vectors.ts +323 -0
- package/src/game/project-feat.ts +417 -248
- package/src/game/project-monster.ts +69 -30
- package/src/game/project-obj-vectors.json +1 -0
- package/src/game/project-obj.ts +115 -47
- package/src/game/project-player.ts +8 -0
- package/src/game/projection-handlers.ts +110 -0
- package/src/game/quest.ts +48 -0
- package/src/game/ranged-cmd.ts +45 -11
- package/src/game/repeat.ts +92 -0
- package/src/game/shape-inspect.ts +166 -0
- package/src/game/spell-cmd.ts +39 -6
- package/src/game/spoil.ts +92 -39
- package/src/game/steal.ts +9 -4
- package/src/game/target-loop.ts +14 -7
- package/src/game/target.ts +18 -7
- package/src/game/ui-entry.ts +172 -22
- package/src/game/wizard.ts +97 -10
- package/src/game/world.ts +6 -0
- package/src/gen/cave.ts +225 -26
- package/src/gen/generate.ts +62 -9
- package/src/gen/glyph-vectors.fixtures.ts +122 -0
- package/src/gen/glyph-vectors.json +5996 -0
- package/src/gen/glyph-vectors.ts +280 -0
- package/src/gen/glyph.ts +132 -0
- package/src/gen/room.ts +446 -265
- package/src/gen/util.ts +32 -9
- package/src/i18n/i18n.ts +492 -0
- package/src/i18n/text.ts +117 -0
- package/src/index.ts +307 -254
- package/src/mod/extension.ts +136 -0
- package/src/mod/ids.ts +92 -21
- package/src/mod/record-keys.ts +102 -0
- package/src/mod/registry-host.ts +1063 -234
- package/src/mon/bind.ts +14 -8
- package/src/mon/knowledge-groups.ts +12 -12
- package/src/mon/lore-describe.ts +93 -26
- package/src/mon/lore-file.ts +365 -0
- package/src/mon/lore.ts +9 -3
- package/src/mon/make.ts +4 -2
- package/src/mon/monster.ts +1 -1
- package/src/mon/predicate.ts +14 -9
- package/src/mon/project-mon.ts +23 -5
- package/src/mon/steal.ts +39 -7
- package/src/mon/take-hit.ts +8 -3
- package/src/mon/timed.ts +15 -9
- package/src/mon/types.ts +11 -4
- package/src/msg.ts +55 -1
- package/src/obj/artifact-fake.ts +47 -17
- package/src/obj/bind.ts +52 -9
- package/src/obj/desc-vectors.fixtures.ts +119 -0
- package/src/obj/desc-vectors.json +2360 -0
- package/src/obj/desc-vectors.ts +128 -0
- package/src/obj/desc.ts +159 -55
- package/src/obj/effects-info.ts +90 -59
- package/src/obj/fake-object.ts +135 -0
- package/src/obj/ignore.ts +95 -28
- package/src/obj/knowledge.ts +291 -139
- package/src/obj/known-object.ts +126 -11
- package/src/obj/make.ts +53 -29
- package/src/obj/object-info.ts +103 -6
- package/src/obj/object.ts +392 -151
- package/src/obj/power.ts +297 -59
- package/src/obj/randart-build.ts +1875 -1705
- package/src/obj/randart-data.ts +1547 -1344
- package/src/obj/randart-file.ts +130 -0
- package/src/obj/randart-log.ts +78 -0
- package/src/obj/randart-registry.ts +247 -0
- package/src/obj/randart-vectors.fixtures.ts +61 -0
- package/src/obj/randart-vectors.json +836 -0
- package/src/obj/randart-vectors.ts +369 -0
- package/src/obj/randart.ts +722 -552
- package/src/obj/rune-registry.ts +270 -0
- package/src/obj/rune-vectors.fixtures.ts +164 -0
- package/src/obj/rune-vectors.json +121 -0
- package/src/obj/rune-vectors.ts +229 -0
- package/src/obj/tval-kind-vectors.json +391 -0
- package/src/obj/tval-registry.ts +243 -0
- package/src/obj/tval-vectors.fixtures.ts +50 -0
- package/src/obj/tval-vectors.json +38 -0
- package/src/obj/tval-vectors.ts +126 -0
- package/src/obj/types.ts +18 -7
- package/src/obj/value.ts +26 -20
- package/src/parser.ts +214 -0
- package/src/player/bind.ts +5 -2
- package/src/player/birth.ts +2 -1
- package/src/player/calcs.ts +123 -42
- package/src/player/death.ts +78 -0
- package/src/player/options-file.ts +387 -0
- package/src/player/options.ts +2 -1
- package/src/player/player.ts +60 -4
- package/src/player/shape-lore.ts +33 -14
- package/src/player/timed.ts +14 -4
- package/src/player/types.ts +30 -4
- package/src/session/boot.ts +51 -1
- package/src/session/game.ts +720 -163
- package/src/session/save-migrate.ts +81 -1
- package/src/session/save.ts +264 -22
- package/src/store/bind.ts +4 -3
- package/src/store/mass-produce-vectors.fixtures.ts +64 -0
- package/src/store/mass-produce-vectors.json +1169 -0
- package/src/store/mass-produce-vectors.ts +67 -0
- package/src/store/store.ts +266 -63
- package/src/store/transact.ts +39 -16
- package/src/store/types.ts +3 -2
- package/src/version.ts +1 -1
- package/src/visuals/index.ts +1 -0
- package/src/visuals/map-text.ts +1 -1
- package/src/visuals/object-glyph.ts +76 -0
- package/src/visuals/prefs.ts +22 -32
- package/src/visuals/tile-prefs.ts +32 -0
- package/src/world/feature.ts +4 -1
- package/src/world/project.ts +19 -4
- package/src/world/projection.ts +79 -8
- package/src/world/trap.ts +25 -21
- package/src/world/view.ts +11 -1
|
@@ -0,0 +1,376 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Golden vectors for EFFECT INFO: the five closed switches of MOD_REACH gap 17.
|
|
3
|
+
*
|
|
4
|
+
* WHY THIS EXISTS. Five `switch` statements decide everything the game says
|
|
5
|
+
* about an effect, and each one is closed against a code it has never heard of:
|
|
6
|
+
*
|
|
7
|
+
* - `effectMenuName` (effect-info.ts, keyed on the EFINFO_* flag) - the row
|
|
8
|
+
* text in the "Activate which item?" / spell menus.
|
|
9
|
+
* - `formatEffectDesc` (effect-info.ts, same key) - effect_describe's body,
|
|
10
|
+
* the sentence in object recall and spell descriptions.
|
|
11
|
+
* - the activation summary walker (obj/effects-info.ts, keyed on the effect
|
|
12
|
+
* CODE) - which object properties an activation grants, read by
|
|
13
|
+
* remove_contradictory_activation.
|
|
14
|
+
* - `effectSubtype` (effect.ts, keyed on the EF index) - how a gamedata
|
|
15
|
+
* `type:` NAME becomes the integer subtype.
|
|
16
|
+
*
|
|
17
|
+
* Turning them into keyed registries is a refactor of every string the player
|
|
18
|
+
* reads about an effect, so what has to be proven is not "the effect tests still
|
|
19
|
+
* pass" but "every effect, at every subtype and dice shape the port can build,
|
|
20
|
+
* still produces exactly the same text".
|
|
21
|
+
*
|
|
22
|
+
* NO RNG PROBE HERE, AND THAT IS A MEASURED CLAIM, NOT AN OVERSIGHT. The glyph
|
|
23
|
+
* vectors carry one because level generation draws; this path does not. Upstream
|
|
24
|
+
* `effect_describe` calls `dice_roll()` to populate the random_value it formats;
|
|
25
|
+
* the port substitutes `Dice.randomValue()` at every such site precisely so that
|
|
26
|
+
* rendering a menu row cannot perturb the stream (see effect-info.ts's header).
|
|
27
|
+
* There is no Rng threaded into any of these functions to probe. What is at risk
|
|
28
|
+
* is the TEXT, so the text is what is recorded.
|
|
29
|
+
*
|
|
30
|
+
* THE DEPS ARE SYNTHETIC ON PURPOSE. `timedDesc`, `statName`, `summonDesc` and
|
|
31
|
+
* the projection table are injected, so the real pack would add nothing to
|
|
32
|
+
* dispatch coverage - and stub values that are DISTINCT per index ("tmd7",
|
|
33
|
+
* "proj3-player") are strictly better at catching an arm that reads the wrong
|
|
34
|
+
* field, which real prose ("poison", "a lash of fire") can hide. The activation
|
|
35
|
+
* summary is the exception: it resolves TMD names through the real compiled
|
|
36
|
+
* player_timed records, so those are injected as fixtures.
|
|
37
|
+
*
|
|
38
|
+
* Regenerate with `node packages/core/scripts/gen-effect-info-vectors.mjs` -
|
|
39
|
+
* which OVERWRITES the evidence, so only do it when the change is intended and
|
|
40
|
+
* say so in the commit.
|
|
41
|
+
*/
|
|
42
|
+
|
|
43
|
+
import { Dice } from "../dice.js";
|
|
44
|
+
import { EFFECT_ENTRIES } from "../generated/index.js";
|
|
45
|
+
import type { EffectRecordJson } from "../obj/types.js";
|
|
46
|
+
import type { ActivationSummarizerDeps } from "../obj/effects-info.js";
|
|
47
|
+
import { makeActivationSummarizer } from "../obj/effects-info.js";
|
|
48
|
+
import { describeEffect, effectMenuName } from "./effect-info.js";
|
|
49
|
+
import type { EffectDescribeDeps, EffectMenuNameDeps } from "./effect-info.js";
|
|
50
|
+
import { effectNew, effectSubtype } from "./effect.js";
|
|
51
|
+
import type { Effect } from "./effect.js";
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* One recorded call. Flat and all-string so a diff names the effect and the
|
|
55
|
+
* scenario that moved rather than reflowing a nested object.
|
|
56
|
+
*/
|
|
57
|
+
export interface EffectInfoVector {
|
|
58
|
+
/** Which switch this exercises: "menu" | "desc" | "summary" | "subtype". */
|
|
59
|
+
kind: string;
|
|
60
|
+
/** The effect: an EFFECT_ENTRIES name, or a chain label for "summary". */
|
|
61
|
+
effect: string;
|
|
62
|
+
/** The inputs, spelled out. */
|
|
63
|
+
scenario: string;
|
|
64
|
+
/** What the code produced, as a string ("null" for a null return). */
|
|
65
|
+
out: string;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
/** What the activation-summary vectors need from the shipped pack. */
|
|
69
|
+
export interface EffectInfoVectorFixtures {
|
|
70
|
+
/** The real deps makeActivationSummarizer is bound with at the session site. */
|
|
71
|
+
summarizerDeps(): ActivationSummarizerDeps;
|
|
72
|
+
/** Every TMD name of the pack, in index order - the summary's real keys. */
|
|
73
|
+
timedNames(): readonly string[];
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
/* ------------------------------------------------------------------ *
|
|
77
|
+
* Synthetic dependency bags. Distinct per index, so a wrong field shows.
|
|
78
|
+
* ------------------------------------------------------------------ */
|
|
79
|
+
|
|
80
|
+
const PROJECTIONS = Array.from({ length: 24 }, (_unused, i) => ({
|
|
81
|
+
desc: `proj${i}-desc`,
|
|
82
|
+
playerDesc: `proj${i}-player`,
|
|
83
|
+
lashDesc: `proj${i}-lash`,
|
|
84
|
+
}));
|
|
85
|
+
|
|
86
|
+
const MENU_DEPS: EffectMenuNameDeps = {
|
|
87
|
+
projections: PROJECTIONS,
|
|
88
|
+
timedDesc: (i) => `tmd${i}`,
|
|
89
|
+
statName: (i) => `stat${i}`,
|
|
90
|
+
summonDesc: (i) => `summ${i}`,
|
|
91
|
+
};
|
|
92
|
+
|
|
93
|
+
const DESC_DEPS: EffectDescribeDeps = {
|
|
94
|
+
projections: PROJECTIONS,
|
|
95
|
+
timedDesc: (i) => `tmd${i}`,
|
|
96
|
+
statName: (i) => `stat${i}`,
|
|
97
|
+
summonDesc: (i) => `summ${i}`,
|
|
98
|
+
playerLevel: 23,
|
|
99
|
+
};
|
|
100
|
+
|
|
101
|
+
/* ------------------------------------------------------------------ *
|
|
102
|
+
* Scenario axes.
|
|
103
|
+
* ------------------------------------------------------------------ */
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* Subtypes. 0-3 are the whole domain of the hand-rolled cases (NOURISH's four
|
|
107
|
+
* modes, EARTHQUAKE's TARGETED, GLYPH's two); 7 lands inside the synthetic
|
|
108
|
+
* projection / timed / stat tables so those lookups are distinguishable.
|
|
109
|
+
*/
|
|
110
|
+
const SUBTYPES = [0, 1, 2, 3, 7] as const;
|
|
111
|
+
|
|
112
|
+
/**
|
|
113
|
+
* Dice shapes: absent, a plain roll, and one with both a base and an m_bonus -
|
|
114
|
+
* the only combination that reaches EFINFO_HEAL's "(or N%, whichever is
|
|
115
|
+
* greater)" and EFINFO_TELE's level-dependent-distance arms.
|
|
116
|
+
*/
|
|
117
|
+
const DICE: readonly (string | null)[] = [null, "3d4", "2+5d6M20"];
|
|
118
|
+
|
|
119
|
+
/** (radius, other): EFINFO_QUAKE, _SPOT, _BREATH and _SHORT read these. */
|
|
120
|
+
const SHAPES: readonly (readonly [number, number])[] = [
|
|
121
|
+
[0, 0],
|
|
122
|
+
[3, 4],
|
|
123
|
+
];
|
|
124
|
+
|
|
125
|
+
/** Device-skill boost: zero and non-zero are different arms of append_damage. */
|
|
126
|
+
const BOOSTS = [0, 25] as const;
|
|
127
|
+
|
|
128
|
+
function diceFor(text: string | null): Dice | null {
|
|
129
|
+
if (text === null) return null;
|
|
130
|
+
const d = new Dice();
|
|
131
|
+
d.parseString(text);
|
|
132
|
+
return d;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
function makeEffect(
|
|
136
|
+
index: number,
|
|
137
|
+
subtype: number,
|
|
138
|
+
dice: string | null,
|
|
139
|
+
radius: number,
|
|
140
|
+
other: number,
|
|
141
|
+
): Effect {
|
|
142
|
+
const e = effectNew(index);
|
|
143
|
+
e.subtype = subtype;
|
|
144
|
+
e.dice = diceFor(dice);
|
|
145
|
+
e.diceString = dice;
|
|
146
|
+
e.radius = radius;
|
|
147
|
+
e.other = other;
|
|
148
|
+
return e;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
/* ------------------------------------------------------------------ *
|
|
152
|
+
* The four vector families.
|
|
153
|
+
* ------------------------------------------------------------------ */
|
|
154
|
+
|
|
155
|
+
/** effect_get_menu_name over every effect at every scenario. */
|
|
156
|
+
export function computeMenuVectors(): EffectInfoVector[] {
|
|
157
|
+
const out: EffectInfoVector[] = [];
|
|
158
|
+
for (let index = 1; index <= EFFECT_ENTRIES.length; index++) {
|
|
159
|
+
const name = (EFFECT_ENTRIES[index - 1] as { name: string }).name;
|
|
160
|
+
for (const subtype of SUBTYPES) {
|
|
161
|
+
for (const dice of DICE) {
|
|
162
|
+
const e = makeEffect(index, subtype, dice, 0, 0);
|
|
163
|
+
out.push({
|
|
164
|
+
kind: "menu",
|
|
165
|
+
effect: name,
|
|
166
|
+
scenario: `subtype=${subtype} dice=${dice ?? "-"}`,
|
|
167
|
+
out: effectMenuName(e, MENU_DEPS),
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
return out;
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
/**
|
|
176
|
+
* effect_describe over every effect at every scenario, `onlyFirst` so exactly
|
|
177
|
+
* one pass through formatEffectDesc is recorded per vector.
|
|
178
|
+
*/
|
|
179
|
+
export function computeDescVectors(): EffectInfoVector[] {
|
|
180
|
+
const out: EffectInfoVector[] = [];
|
|
181
|
+
for (let index = 1; index <= EFFECT_ENTRIES.length; index++) {
|
|
182
|
+
const name = (EFFECT_ENTRIES[index - 1] as { name: string }).name;
|
|
183
|
+
for (const subtype of SUBTYPES) {
|
|
184
|
+
for (const dice of DICE) {
|
|
185
|
+
for (const [radius, other] of SHAPES) {
|
|
186
|
+
for (const boost of BOOSTS) {
|
|
187
|
+
const e = makeEffect(index, subtype, dice, radius, other);
|
|
188
|
+
out.push({
|
|
189
|
+
kind: "desc",
|
|
190
|
+
effect: name,
|
|
191
|
+
scenario: `subtype=${subtype} dice=${dice ?? "-"} r=${radius} o=${other} boost=${boost}`,
|
|
192
|
+
out: String(describeEffect(e, null, boost, true, DESC_DEPS)),
|
|
193
|
+
});
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
return out;
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
/**
|
|
203
|
+
* The chained arms of effect_describe - RANDOM and SELECT walk their
|
|
204
|
+
* sub-effects through create_nested_effect_description, which calls the same
|
|
205
|
+
* switch from a second call site. A chain of BREATHs with matching dice is the
|
|
206
|
+
* combining arm; a mixed chain is the "or"-joined arm.
|
|
207
|
+
*/
|
|
208
|
+
export function computeChainVectors(): EffectInfoVector[] {
|
|
209
|
+
const byName = new Map<string, number>();
|
|
210
|
+
EFFECT_ENTRIES.forEach((entry, i) => {
|
|
211
|
+
byName.set((entry as { name: string }).name, i + 1);
|
|
212
|
+
});
|
|
213
|
+
const idx = (n: string): number => byName.get(n) ?? 1;
|
|
214
|
+
|
|
215
|
+
const chain = (label: string, names: readonly string[], head: string, count: string): EffectInfoVector => {
|
|
216
|
+
const headEffect = makeEffect(idx(head), 0, count, 0, 0);
|
|
217
|
+
let cursor = headEffect;
|
|
218
|
+
for (const [i, n] of names.entries()) {
|
|
219
|
+
const sub = makeEffect(idx(n), i + 1, "4d6", 2, 3);
|
|
220
|
+
cursor.next = sub;
|
|
221
|
+
cursor = sub;
|
|
222
|
+
}
|
|
223
|
+
return {
|
|
224
|
+
kind: "chain",
|
|
225
|
+
effect: label,
|
|
226
|
+
scenario: `${head}(${count}) -> ${names.join(",")}`,
|
|
227
|
+
out: String(describeEffect(headEffect, "prefix: ", 10, false, DESC_DEPS)),
|
|
228
|
+
};
|
|
229
|
+
};
|
|
230
|
+
|
|
231
|
+
return [
|
|
232
|
+
chain("random-breaths", ["BREATH", "BREATH", "BREATH"], "RANDOM", "3"),
|
|
233
|
+
chain("select-breaths", ["BREATH", "BREATH"], "SELECT", "2"),
|
|
234
|
+
chain("random-mixed", ["BALL", "TIMED_INC", "CURE"], "RANDOM", "3"),
|
|
235
|
+
chain("select-mixed", ["BOLT", "HEAL_HP", "TELEPORT"], "SELECT", "3"),
|
|
236
|
+
chain("random-overrun", ["SPOT"], "RANDOM", "4"),
|
|
237
|
+
];
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
/**
|
|
241
|
+
* effect_summarize_properties over chains that reach all twelve arms of the
|
|
242
|
+
* activation walker, against the real compiled player_timed records.
|
|
243
|
+
*/
|
|
244
|
+
export function computeSummaryVectors(
|
|
245
|
+
fixtures: EffectInfoVectorFixtures,
|
|
246
|
+
): EffectInfoVector[] {
|
|
247
|
+
const summarize = makeActivationSummarizer(fixtures.summarizerDeps());
|
|
248
|
+
const names = fixtures.timedNames();
|
|
249
|
+
const out: EffectInfoVector[] = [];
|
|
250
|
+
|
|
251
|
+
const record = (label: string, chain: readonly EffectRecordJson[]): void => {
|
|
252
|
+
const { props, unsummarizedCount } = summarize(chain);
|
|
253
|
+
out.push({
|
|
254
|
+
kind: "summary",
|
|
255
|
+
effect: label,
|
|
256
|
+
scenario: chain.map((e) => `${e.eff}${e.type ? `:${e.type}` : ""}${e.dice ? `(${e.dice})` : ""}`).join(" "),
|
|
257
|
+
out: JSON.stringify({ props, unsummarizedCount }),
|
|
258
|
+
});
|
|
259
|
+
};
|
|
260
|
+
|
|
261
|
+
/* Every TMD name through each of the timed arms: this is the exhaustive
|
|
262
|
+
* half, because which properties a cure or an increase yields is entirely a
|
|
263
|
+
* function of the record, and a record with no fail directives and a record
|
|
264
|
+
* with three take different paths through summarize_cure. */
|
|
265
|
+
for (const name of names) {
|
|
266
|
+
record(`CURE ${name}`, [{ eff: "CURE", type: name }]);
|
|
267
|
+
record(`TIMED_INC ${name}`, [{ eff: "TIMED_INC", type: name, dice: "20" }]);
|
|
268
|
+
record(`TIMED_INC_NO_RES ${name}`, [
|
|
269
|
+
{ eff: "TIMED_INC_NO_RES", type: name, dice: "20" },
|
|
270
|
+
]);
|
|
271
|
+
record(`TIMED_DEC ${name}`, [{ eff: "TIMED_DEC", type: name, dice: "20" }]);
|
|
272
|
+
record(`TIMED_SET+ ${name}`, [{ eff: "TIMED_SET", type: name, dice: "20" }]);
|
|
273
|
+
record(`TIMED_SET0 ${name}`, [{ eff: "TIMED_SET", type: name, dice: "0" }]);
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
/* The structural arms, which do not vary per TMD name. */
|
|
277
|
+
const anyTimed = names[0] ?? "FAST";
|
|
278
|
+
record("teleport-family", [
|
|
279
|
+
{ eff: "TELEPORT", dice: "10" },
|
|
280
|
+
{ eff: "TELEPORT_TO" },
|
|
281
|
+
{ eff: "TELEPORT_LEVEL" },
|
|
282
|
+
]);
|
|
283
|
+
record("random-skips", [
|
|
284
|
+
{ eff: "RANDOM", dice: "2" },
|
|
285
|
+
{ eff: "TIMED_INC", type: anyTimed, dice: "20" },
|
|
286
|
+
]);
|
|
287
|
+
record("select-skips", [
|
|
288
|
+
{ eff: "SELECT", dice: "2" },
|
|
289
|
+
{ eff: "CURE", type: anyTimed },
|
|
290
|
+
]);
|
|
291
|
+
record("set-then-clear", [
|
|
292
|
+
{ eff: "SET_VALUE", dice: "30" },
|
|
293
|
+
{ eff: "TIMED_INC", type: anyTimed },
|
|
294
|
+
{ eff: "CLEAR_VALUE" },
|
|
295
|
+
{ eff: "TIMED_INC", type: anyTimed },
|
|
296
|
+
]);
|
|
297
|
+
record("unsummarized", [{ eff: "DAMAGE", dice: "5d5" }, { eff: "LIGHT_AREA" }]);
|
|
298
|
+
record("unknown-tmd", [{ eff: "TIMED_INC", type: "NOT_A_TIMED_EFFECT", dice: "5" }]);
|
|
299
|
+
record("no-type", [{ eff: "CURE" }, { eff: "TIMED_INC", dice: "5" }]);
|
|
300
|
+
|
|
301
|
+
return out;
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
/**
|
|
305
|
+
* effect_subtype: every effect index against every subtype NAME any effect
|
|
306
|
+
* accepts, plus the numeric and garbage paths. -1 means "no such subtype for
|
|
307
|
+
* this effect", and a refactor that widens or narrows that is exactly what
|
|
308
|
+
* this catches.
|
|
309
|
+
*/
|
|
310
|
+
export function computeSubtypeVectors(): EffectInfoVector[] {
|
|
311
|
+
/* Every literal name the hand-rolled arms accept, plus a representative of
|
|
312
|
+
* each table-driven family and two inputs that must fail. */
|
|
313
|
+
const NAMES = [
|
|
314
|
+
"NONE",
|
|
315
|
+
"INC_BY",
|
|
316
|
+
"DEC_BY",
|
|
317
|
+
"SET_TO",
|
|
318
|
+
"INC_TO",
|
|
319
|
+
"TOBOTH",
|
|
320
|
+
"TOHIT",
|
|
321
|
+
"TODAM",
|
|
322
|
+
"TOAC",
|
|
323
|
+
"TARGETED",
|
|
324
|
+
"WARDING",
|
|
325
|
+
"DECOY",
|
|
326
|
+
"AWAY",
|
|
327
|
+
"SELF",
|
|
328
|
+
"FIRE",
|
|
329
|
+
"POIS",
|
|
330
|
+
"STR",
|
|
331
|
+
"CON",
|
|
332
|
+
"FAST",
|
|
333
|
+
"POISONED",
|
|
334
|
+
"12",
|
|
335
|
+
" 12 ",
|
|
336
|
+
"12x",
|
|
337
|
+
"NOT_A_NAME",
|
|
338
|
+
"",
|
|
339
|
+
];
|
|
340
|
+
/* SUMMON and SHAPECHANGE resolve through injected lookups the session binds
|
|
341
|
+
* from the summon and shape registries. Left unsupplied they return -1 for
|
|
342
|
+
* every input, which would make those two arms indistinguishable from the
|
|
343
|
+
* "no such subtype" default - a vector that cannot disagree. Distinct stubs
|
|
344
|
+
* keep them measurable. */
|
|
345
|
+
const inject = {
|
|
346
|
+
summonNameToIdx: (type: string): number => 900 + type.length,
|
|
347
|
+
shapeNameToIdx: (type: string): number => 800 + type.length,
|
|
348
|
+
};
|
|
349
|
+
|
|
350
|
+
const out: EffectInfoVector[] = [];
|
|
351
|
+
for (let index = 1; index <= EFFECT_ENTRIES.length; index++) {
|
|
352
|
+
const name = (EFFECT_ENTRIES[index - 1] as { name: string }).name;
|
|
353
|
+
for (const type of NAMES) {
|
|
354
|
+
out.push({
|
|
355
|
+
kind: "subtype",
|
|
356
|
+
effect: name,
|
|
357
|
+
scenario: `type=${JSON.stringify(type)}`,
|
|
358
|
+
out: String(effectSubtype(index, type, inject)),
|
|
359
|
+
});
|
|
360
|
+
}
|
|
361
|
+
}
|
|
362
|
+
return out;
|
|
363
|
+
}
|
|
364
|
+
|
|
365
|
+
/** Every family, in a stable order. */
|
|
366
|
+
export function computeEffectInfoVectors(
|
|
367
|
+
fixtures: EffectInfoVectorFixtures,
|
|
368
|
+
): EffectInfoVector[] {
|
|
369
|
+
return [
|
|
370
|
+
...computeMenuVectors(),
|
|
371
|
+
...computeDescVectors(),
|
|
372
|
+
...computeChainVectors(),
|
|
373
|
+
...computeSummaryVectors(fixtures),
|
|
374
|
+
...computeSubtypeVectors(),
|
|
375
|
+
];
|
|
376
|
+
}
|