@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,311 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Golden vectors for RANDOM ARTIFACT construction: MOD_REACH gap 14.
|
|
3
|
+
*
|
|
4
|
+
* WHY THIS EXISTS. Four closed `switch` statements build every random artifact
|
|
5
|
+
* in the game, and they are the largest dispatch left in the tree:
|
|
6
|
+
*
|
|
7
|
+
* - `addAbilityAux` (randart-build.ts, keyed on the `ART_IDX` ability, 87
|
|
8
|
+
* cases) - what "add this ability" actually does to the artifact.
|
|
9
|
+
* - `artifactPrep` (randart-build.ts, keyed on the base item's tval, 15) -
|
|
10
|
+
* the starting to-hit / to-dam / AC an item class is given.
|
|
11
|
+
* - the item-class census (randart-data.ts, keyed on tval, 14) - which
|
|
12
|
+
* `data.*Total` bucket a standard artifact counts toward, which feeds the
|
|
13
|
+
* frequency table the design loop spends.
|
|
14
|
+
* - the redundancy test (randart-build.ts, keyed on the `EFPROP` kind, 9) -
|
|
15
|
+
* whether an activation only duplicates something the artifact already has.
|
|
16
|
+
*
|
|
17
|
+
* Converting them into keyed registries so a mod can define a NEW ability, or a
|
|
18
|
+
* new item class, is a refactor of the most RNG-dense code in the port. What has
|
|
19
|
+
* to be proven is not "the randart tests still pass" but "the same seed still
|
|
20
|
+
* produces the same artifacts, drawn in the same order".
|
|
21
|
+
*
|
|
22
|
+
* WHY THE EXISTING TESTS ARE NOT THAT. `randart.test.ts` asserts do_randart is
|
|
23
|
+
* deterministic by running it TWICE IN ONE PROCESS and comparing. That is a real
|
|
24
|
+
* property and it catches real bugs - but it cannot fail across a refactor,
|
|
25
|
+
* because a change that moves every artifact moves both runs identically.
|
|
26
|
+
* Agreement is symmetric; a fixture recorded on disk is not.
|
|
27
|
+
*
|
|
28
|
+
* THE PROBE IS THE POINT, AND IT NEEDED A SEAM TO EXIST. `doRandart` owns its
|
|
29
|
+
* Rng internally, so the whole-set family below has no probe: what defends it is
|
|
30
|
+
* that all ~130 artifacts come off ONE stream in sequence, so a changed draw
|
|
31
|
+
* count anywhere but after the final draw moves everything downstream of it. The
|
|
32
|
+
* blind spot that leaves - a draw added at the very end - is closed by the
|
|
33
|
+
* per-arm families, which drive `artifactPrep` and `addAbilityAux` with an Rng
|
|
34
|
+
* this module owns and probe it afterwards. That is also what makes those two
|
|
35
|
+
* families per-ARM coverage rather than aggregate: a vector per `ART_IDX` fails
|
|
36
|
+
* naming the ability that moved.
|
|
37
|
+
*
|
|
38
|
+
* Fixtures are INJECTED rather than loaded here, so this module pulls in no
|
|
39
|
+
* node:fs and no content pack, and can be imported from anywhere.
|
|
40
|
+
*
|
|
41
|
+
* Regenerate with `node packages/core/scripts/gen-randart-vectors.mjs` - which
|
|
42
|
+
* OVERWRITES the evidence, so only do it when artifact generation is
|
|
43
|
+
* deliberately changing, and say so in the commit.
|
|
44
|
+
*/
|
|
45
|
+
import { FLAG_START, NO_FLAG } from "../bitflag.js";
|
|
46
|
+
import { ART_IDX, TV } from "../generated/index.js";
|
|
47
|
+
import { Rng } from "../rng.js";
|
|
48
|
+
import { addAbilityAux, artifactPrep, getBaseItem } from "./randart-build.js";
|
|
49
|
+
import { collectArtifactData } from "./randart-data.js";
|
|
50
|
+
import { cloneArtifact, doRandart } from "./randart.js";
|
|
51
|
+
/** The seeds the whole-set family runs. Three, because a set is expensive. */
|
|
52
|
+
export const RANDART_VECTOR_SEEDS = [1, 4242, 999999];
|
|
53
|
+
/** The seeds the cheap per-arm families run, on both sides of a coin flip. */
|
|
54
|
+
export const RANDART_ARM_SEEDS = [7, 31337];
|
|
55
|
+
/**
|
|
56
|
+
* The target powers the ability family runs at, and the second one is not
|
|
57
|
+
* decoration. `ART_IDX.WEAPON_AGGR` / `NONWEAPON_AGGR` only grant AGGRAVATE
|
|
58
|
+
* when `targetPower > AGGR_POWER` (300, obj-randart.h L47), so a family run at
|
|
59
|
+
* one low power records those two arms doing NOTHING - indistinguishable from
|
|
60
|
+
* the `*_SUPER` frequency-table indices that genuinely have no case. The first
|
|
61
|
+
* recording of these vectors had exactly that hole. This is the same failure
|
|
62
|
+
* the glyph work found the expensive way: a scenario grid that never reaches
|
|
63
|
+
* the arm it was written to defend.
|
|
64
|
+
*/
|
|
65
|
+
export const RANDART_TARGET_POWERS = [100, 500];
|
|
66
|
+
/**
|
|
67
|
+
* Every tval `artifactPrep`'s switch names, plus RING, AMULET and LIGHT -
|
|
68
|
+
* which it does NOT name and which therefore take its default arm. A vector
|
|
69
|
+
* that only covers the listed cases cannot tell a missing default from a
|
|
70
|
+
* present one.
|
|
71
|
+
*/
|
|
72
|
+
const PREP_TVALS = [
|
|
73
|
+
["BOW", TV.BOW],
|
|
74
|
+
["DIGGING", TV.DIGGING],
|
|
75
|
+
["HAFTED", TV.HAFTED],
|
|
76
|
+
["SWORD", TV.SWORD],
|
|
77
|
+
["POLEARM", TV.POLEARM],
|
|
78
|
+
["BOOTS", TV.BOOTS],
|
|
79
|
+
["GLOVES", TV.GLOVES],
|
|
80
|
+
["HELM", TV.HELM],
|
|
81
|
+
["CROWN", TV.CROWN],
|
|
82
|
+
["SHIELD", TV.SHIELD],
|
|
83
|
+
["CLOAK", TV.CLOAK],
|
|
84
|
+
["SOFT_ARMOR", TV.SOFT_ARMOR],
|
|
85
|
+
["HARD_ARMOR", TV.HARD_ARMOR],
|
|
86
|
+
["DRAG_ARMOR", TV.DRAG_ARMOR],
|
|
87
|
+
["RING", TV.RING],
|
|
88
|
+
["AMULET", TV.AMULET],
|
|
89
|
+
["LIGHT", TV.LIGHT],
|
|
90
|
+
];
|
|
91
|
+
/** ART_IDX names in index order, so a vector names the ability that moved. */
|
|
92
|
+
function abilityNames() {
|
|
93
|
+
const byIndex = [];
|
|
94
|
+
for (const [name, value] of Object.entries(ART_IDX)) {
|
|
95
|
+
if (typeof value !== "number" || name === "MAX")
|
|
96
|
+
continue;
|
|
97
|
+
byIndex[value] = name;
|
|
98
|
+
}
|
|
99
|
+
return byIndex;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* The flags actually SET, as a list of indices.
|
|
103
|
+
*
|
|
104
|
+
* `FlagSet` has no toString and the default one produces "[object Object]" - a
|
|
105
|
+
* field that is identical for every artifact in the file and therefore cannot
|
|
106
|
+
* disagree. That is not hypothetical: the first recording of these vectors
|
|
107
|
+
* carried exactly that string in all 644 rows, which would have let an ability
|
|
108
|
+
* stop granting its flag without moving a single vector.
|
|
109
|
+
*/
|
|
110
|
+
function flagList(set) {
|
|
111
|
+
const on = [];
|
|
112
|
+
for (let f = set.next(FLAG_START); f !== NO_FLAG; f = set.next(f + 1)) {
|
|
113
|
+
on.push(f);
|
|
114
|
+
}
|
|
115
|
+
return on;
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Everything observable about one artifact. Deliberately EVERY field of the
|
|
119
|
+
* struct rather than the handful `randart.test.ts`'s fingerprint uses: an
|
|
120
|
+
* ability that stops granting a curse, a brand or an activation would otherwise
|
|
121
|
+
* move nothing this file can see.
|
|
122
|
+
*/
|
|
123
|
+
function fingerprint(a) {
|
|
124
|
+
if (!a)
|
|
125
|
+
return "null";
|
|
126
|
+
return JSON.stringify({
|
|
127
|
+
name: a.name,
|
|
128
|
+
tval: a.tval,
|
|
129
|
+
sval: a.sval,
|
|
130
|
+
toH: a.toH,
|
|
131
|
+
toD: a.toD,
|
|
132
|
+
toA: a.toA,
|
|
133
|
+
ac: a.ac,
|
|
134
|
+
dd: a.dd,
|
|
135
|
+
ds: a.ds,
|
|
136
|
+
weight: a.weight,
|
|
137
|
+
cost: a.cost,
|
|
138
|
+
level: a.level,
|
|
139
|
+
alloc: [a.allocProb, a.allocMin, a.allocMax],
|
|
140
|
+
flags: flagList(a.flags),
|
|
141
|
+
mods: a.modifiers,
|
|
142
|
+
el: a.elInfo.map((e) => [e.resLevel, e.flags]),
|
|
143
|
+
brands: a.brands ? a.brands.map((b) => (b ? 1 : 0)) : null,
|
|
144
|
+
slays: a.slays ? a.slays.map((s) => (s ? 1 : 0)) : null,
|
|
145
|
+
curses: a.curses,
|
|
146
|
+
act: a.activation ? a.activation.name : null,
|
|
147
|
+
altMsg: a.altMsg,
|
|
148
|
+
time: [a.time.base, a.time.dice, a.time.sides, a.time.mBonus],
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
/* ------------------------------------------------------------------ *
|
|
152
|
+
* Family 1: whole sets, end to end.
|
|
153
|
+
* ------------------------------------------------------------------ */
|
|
154
|
+
/** do_randart at each seed, one vector per generated artifact. */
|
|
155
|
+
export function computeSetVectors(fixtures) {
|
|
156
|
+
const constants = fixtures.constants();
|
|
157
|
+
const out = [];
|
|
158
|
+
for (const seed of RANDART_VECTOR_SEEDS) {
|
|
159
|
+
/* A fresh registry per seed: do_randart is asserted elsewhere not to mutate
|
|
160
|
+
* the standard artifacts, and this file must not be the thing that would
|
|
161
|
+
* hide it if that stopped being true. */
|
|
162
|
+
const arts = doRandart(fixtures.registry(), constants, seed, false);
|
|
163
|
+
arts.forEach((art, i) => {
|
|
164
|
+
out.push({
|
|
165
|
+
kind: "set",
|
|
166
|
+
subject: art ? art.name : `#${String(i)}`,
|
|
167
|
+
scenario: `seed=${String(seed)} aidx=${String(i)}`,
|
|
168
|
+
out: fingerprint(art),
|
|
169
|
+
});
|
|
170
|
+
});
|
|
171
|
+
}
|
|
172
|
+
return out;
|
|
173
|
+
}
|
|
174
|
+
/* ------------------------------------------------------------------ *
|
|
175
|
+
* Family 2 and 3: the per-arm families, with a probe.
|
|
176
|
+
* ------------------------------------------------------------------ */
|
|
177
|
+
/**
|
|
178
|
+
* A prepped artifact to start an arm from. Cloned from a standard artifact,
|
|
179
|
+
* which is the same object shape `doRandart`'s design loop mutates - derived
|
|
180
|
+
* from the real producer rather than hand-built, so the vector cannot pass
|
|
181
|
+
* against a struct production never sees.
|
|
182
|
+
*/
|
|
183
|
+
function seedArtifact(reg) {
|
|
184
|
+
const src = reg.artifacts.find((a) => a !== null);
|
|
185
|
+
if (!src)
|
|
186
|
+
throw new Error("randart-vectors: the pack has no artifacts");
|
|
187
|
+
return cloneArtifact(src);
|
|
188
|
+
}
|
|
189
|
+
/** artifact_prep per item class, with the RNG position afterwards. */
|
|
190
|
+
export function computePrepVectors(fixtures) {
|
|
191
|
+
const reg = fixtures.registry();
|
|
192
|
+
const constants = fixtures.constants();
|
|
193
|
+
const data = collectArtifactData(reg, constants, reg.artifacts, new Rng(11));
|
|
194
|
+
const out = [];
|
|
195
|
+
for (const [name, tval] of PREP_TVALS) {
|
|
196
|
+
for (const seed of RANDART_ARM_SEEDS) {
|
|
197
|
+
const rng = new Rng(seed);
|
|
198
|
+
const art = seedArtifact(reg);
|
|
199
|
+
const kind = getBaseItem(reg, tval, rng);
|
|
200
|
+
artifactPrep(reg, art, kind, data, rng);
|
|
201
|
+
out.push({
|
|
202
|
+
kind: "prep",
|
|
203
|
+
subject: name,
|
|
204
|
+
scenario: `tval=${name} seed=${String(seed)}`,
|
|
205
|
+
out: fingerprint(art),
|
|
206
|
+
probe: rng.randint0(1 << 24),
|
|
207
|
+
});
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
return out;
|
|
211
|
+
}
|
|
212
|
+
/** add_ability_aux per ART_IDX, with the RNG position afterwards. */
|
|
213
|
+
export function computeAbilityVectors(fixtures) {
|
|
214
|
+
const reg = fixtures.registry();
|
|
215
|
+
const constants = fixtures.constants();
|
|
216
|
+
const data = collectArtifactData(reg, constants, reg.artifacts, new Rng(11));
|
|
217
|
+
const names = abilityNames();
|
|
218
|
+
const out = [];
|
|
219
|
+
for (let r = 0; r < names.length; r++) {
|
|
220
|
+
const name = names[r] ?? `ART_IDX_${String(r)}`;
|
|
221
|
+
for (const seed of RANDART_ARM_SEEDS) {
|
|
222
|
+
for (const power of RANDART_TARGET_POWERS) {
|
|
223
|
+
/* A SWORD base, because most abilities are reachable on a weapon and
|
|
224
|
+
* the ones that are not still have to be recorded doing nothing. */
|
|
225
|
+
const rng = new Rng(seed);
|
|
226
|
+
const art = seedArtifact(reg);
|
|
227
|
+
artifactPrep(reg, art, getBaseItem(reg, TV.SWORD, rng), data, rng);
|
|
228
|
+
/* Re-seed AFTER the prep so the probe measures this ability's draws
|
|
229
|
+
* alone, not the base item's. */
|
|
230
|
+
const abilityRng = new Rng(seed + 1);
|
|
231
|
+
addAbilityAux(reg, art, r, power, data, abilityRng);
|
|
232
|
+
out.push({
|
|
233
|
+
kind: "ability",
|
|
234
|
+
subject: name,
|
|
235
|
+
scenario: `r=${String(r)} seed=${String(seed)} power=${String(power)}`,
|
|
236
|
+
out: fingerprint(art),
|
|
237
|
+
probe: abilityRng.randint0(1 << 24),
|
|
238
|
+
});
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
return out;
|
|
243
|
+
}
|
|
244
|
+
/* ------------------------------------------------------------------ *
|
|
245
|
+
* Family 4: the item-class census the frequency table rests on.
|
|
246
|
+
* ------------------------------------------------------------------ */
|
|
247
|
+
/** collect_artifact_data over the standard set: every scalar it produces. */
|
|
248
|
+
export function computeDataVectors(fixtures) {
|
|
249
|
+
const reg = fixtures.registry();
|
|
250
|
+
const rng = new Rng(11);
|
|
251
|
+
const data = collectArtifactData(reg, fixtures.constants(), reg.artifacts, rng);
|
|
252
|
+
return [
|
|
253
|
+
{
|
|
254
|
+
kind: "data",
|
|
255
|
+
subject: "totals",
|
|
256
|
+
scenario: "standard set, seed=11",
|
|
257
|
+
out: JSON.stringify({
|
|
258
|
+
bow: data.bowTotal,
|
|
259
|
+
melee: data.meleeTotal,
|
|
260
|
+
boot: data.bootTotal,
|
|
261
|
+
glove: data.gloveTotal,
|
|
262
|
+
headgear: data.headgearTotal,
|
|
263
|
+
shield: data.shieldTotal,
|
|
264
|
+
cloak: data.cloakTotal,
|
|
265
|
+
armor: data.armorTotal,
|
|
266
|
+
other: data.otherTotal,
|
|
267
|
+
total: data.total,
|
|
268
|
+
negPower: data.negPowerTotal,
|
|
269
|
+
}),
|
|
270
|
+
probe: rng.randint0(1 << 24),
|
|
271
|
+
},
|
|
272
|
+
{
|
|
273
|
+
kind: "data",
|
|
274
|
+
subject: "power-profile",
|
|
275
|
+
scenario: "standard set, seed=11",
|
|
276
|
+
out: JSON.stringify({
|
|
277
|
+
hitIncrement: data.hitIncrement,
|
|
278
|
+
damIncrement: data.damIncrement,
|
|
279
|
+
hitStartval: data.hitStartval,
|
|
280
|
+
damStartval: data.damStartval,
|
|
281
|
+
acStartval: data.acStartval,
|
|
282
|
+
acIncrement: data.acIncrement,
|
|
283
|
+
maxPower: data.maxPower,
|
|
284
|
+
minPower: data.minPower,
|
|
285
|
+
avgPower: data.avgPower,
|
|
286
|
+
varPower: data.varPower,
|
|
287
|
+
}),
|
|
288
|
+
},
|
|
289
|
+
{
|
|
290
|
+
kind: "data",
|
|
291
|
+
subject: "frequencies",
|
|
292
|
+
scenario: "standard set, seed=11",
|
|
293
|
+
out: JSON.stringify({
|
|
294
|
+
artProbs: data.artProbs,
|
|
295
|
+
tvProbs: data.tvProbs,
|
|
296
|
+
tvNum: data.tvNum,
|
|
297
|
+
tvFreq: data.tvFreq,
|
|
298
|
+
}),
|
|
299
|
+
},
|
|
300
|
+
];
|
|
301
|
+
}
|
|
302
|
+
/** Every family, in a stable order. */
|
|
303
|
+
export function computeRandartVectors(fixtures) {
|
|
304
|
+
return [
|
|
305
|
+
...computeDataVectors(fixtures),
|
|
306
|
+
...computePrepVectors(fixtures),
|
|
307
|
+
...computeAbilityVectors(fixtures),
|
|
308
|
+
...computeSetVectors(fixtures),
|
|
309
|
+
];
|
|
310
|
+
}
|
|
311
|
+
//# sourceMappingURL=randart-vectors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"randart-vectors.js","sourceRoot":"","sources":["../../src/obj/randart-vectors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AAEH,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAEpD,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAIhC,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC9E,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AA6BxD,8EAA8E;AAC9E,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAU,CAAC;AAE/D,8EAA8E;AAC9E,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,EAAE,KAAK,CAAU,CAAC;AAErD;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,GAAG,EAAE,GAAG,CAAU,CAAC;AAEzD;;;;;GAKG;AACH,MAAM,UAAU,GAA2C;IACzD,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC;IACf,CAAC,SAAS,EAAE,EAAE,CAAC,OAAO,CAAC;IACvB,CAAC,QAAQ,EAAE,EAAE,CAAC,MAAM,CAAC;IACrB,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,CAAC;IACnB,CAAC,SAAS,EAAE,EAAE,CAAC,OAAO,CAAC;IACvB,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,CAAC;IACnB,CAAC,QAAQ,EAAE,EAAE,CAAC,MAAM,CAAC;IACrB,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC;IACjB,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,CAAC;IACnB,CAAC,QAAQ,EAAE,EAAE,CAAC,MAAM,CAAC;IACrB,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,CAAC;IACnB,CAAC,YAAY,EAAE,EAAE,CAAC,UAAU,CAAC;IAC7B,CAAC,YAAY,EAAE,EAAE,CAAC,UAAU,CAAC;IAC7B,CAAC,YAAY,EAAE,EAAE,CAAC,UAAU,CAAC;IAC7B,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC;IACjB,CAAC,QAAQ,EAAE,EAAE,CAAC,MAAM,CAAC;IACrB,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,CAAC;CACpB,CAAC;AAEF,8EAA8E;AAC9E,SAAS,YAAY;IACnB,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CACxC,OAA4C,CAC7C,EAAE,CAAC;QACF,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,IAAI,KAAK,KAAK;YAAE,SAAS;QAC1D,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;IACxB,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,QAAQ,CAAC,GAAY;IAC5B,MAAM,EAAE,GAAa,EAAE,CAAC;IACxB,KAAK,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,KAAK,OAAO,EAAE,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;QACtE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACb,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;;;;GAKG;AACH,SAAS,WAAW,CAAC,CAAkB;IACrC,IAAI,CAAC,CAAC;QAAE,OAAO,MAAM,CAAC;IACtB,OAAO,IAAI,CAAC,SAAS,CAAC;QACpB,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,GAAG,EAAE,CAAC,CAAC,GAAG;QACV,GAAG,EAAE,CAAC,CAAC,GAAG;QACV,GAAG,EAAE,CAAC,CAAC,GAAG;QACV,EAAE,EAAE,CAAC,CAAC,EAAE;QACR,EAAE,EAAE,CAAC,CAAC,EAAE;QACR,EAAE,EAAE,CAAC,CAAC,EAAE;QACR,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC;QAC5C,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;QACxB,IAAI,EAAE,CAAC,CAAC,SAAS;QACjB,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;QAC9C,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI;QAC1D,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI;QACvD,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,GAAG,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI;QAC5C,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;KAC9D,CAAC,CAAC;AACL,CAAC;AAED;;wEAEwE;AAExE,kEAAkE;AAClE,MAAM,UAAU,iBAAiB,CAC/B,QAA+B;IAE/B,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,EAAE,CAAC;IACvC,MAAM,GAAG,GAAoB,EAAE,CAAC;IAChC,KAAK,MAAM,IAAI,IAAI,oBAAoB,EAAE,CAAC;QACxC;;iDAEyC;QACzC,MAAM,IAAI,GAAG,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QACpE,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;YACtB,GAAG,CAAC,IAAI,CAAC;gBACP,IAAI,EAAE,KAAK;gBACX,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE;gBACzC,QAAQ,EAAE,QAAQ,MAAM,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,CAAC,CAAC,EAAE;gBAClD,GAAG,EAAE,WAAW,CAAC,GAAG,CAAC;aACtB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;wEAEwE;AAExE;;;;;GAKG;AACH,SAAS,YAAY,CAAC,GAAgB;IACpC,MAAM,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;IAClD,IAAI,CAAC,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IACxE,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC;AAC5B,CAAC;AAED,sEAAsE;AACtE,MAAM,UAAU,kBAAkB,CAChC,QAA+B;IAE/B,MAAM,GAAG,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAC;IAChC,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,EAAE,CAAC;IACvC,MAAM,IAAI,GAAG,mBAAmB,CAAC,GAAG,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7E,MAAM,GAAG,GAAoB,EAAE,CAAC;IAEhC,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,UAAU,EAAE,CAAC;QACtC,KAAK,MAAM,IAAI,IAAI,iBAAiB,EAAE,CAAC;YACrC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;YAC1B,MAAM,GAAG,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;YAC9B,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;YACzC,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;YACxC,GAAG,CAAC,IAAI,CAAC;gBACP,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE,IAAI;gBACb,QAAQ,EAAE,QAAQ,IAAI,SAAS,MAAM,CAAC,IAAI,CAAC,EAAE;gBAC7C,GAAG,EAAE,WAAW,CAAC,GAAG,CAAC;gBACrB,KAAK,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;aAC7B,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,qEAAqE;AACrE,MAAM,UAAU,qBAAqB,CACnC,QAA+B;IAE/B,MAAM,GAAG,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAC;IAChC,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,EAAE,CAAC;IACvC,MAAM,IAAI,GAAG,mBAAmB,CAAC,GAAG,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7E,MAAM,KAAK,GAAG,YAAY,EAAE,CAAC;IAC7B,MAAM,GAAG,GAAoB,EAAE,CAAC;IAEhC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,WAAW,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;QAChD,KAAK,MAAM,IAAI,IAAI,iBAAiB,EAAE,CAAC;YACrC,KAAK,MAAM,KAAK,IAAI,qBAAqB,EAAE,CAAC;gBAC1C;oFACoE;gBACpE,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;gBAC1B,MAAM,GAAG,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;gBAC9B,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,WAAW,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;gBACnE;iDACiC;gBACjC,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;gBACrC,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;gBACpD,GAAG,CAAC,IAAI,CAAC;oBACP,IAAI,EAAE,SAAS;oBACf,OAAO,EAAE,IAAI;oBACb,QAAQ,EAAE,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAC,KAAK,CAAC,EAAE;oBACtE,GAAG,EAAE,WAAW,CAAC,GAAG,CAAC;oBACrB,KAAK,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;iBACpC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;wEAEwE;AAExE,6EAA6E;AAC7E,MAAM,UAAU,kBAAkB,CAChC,QAA+B;IAE/B,MAAM,GAAG,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAC;IAChC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC;IACxB,MAAM,IAAI,GAAG,mBAAmB,CAAC,GAAG,EAAE,QAAQ,CAAC,SAAS,EAAE,EAAE,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;IAChF,OAAO;QACL;YACE,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,QAAQ;YACjB,QAAQ,EAAE,uBAAuB;YACjC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC;gBAClB,GAAG,EAAE,IAAI,CAAC,QAAQ;gBAClB,KAAK,EAAE,IAAI,CAAC,UAAU;gBACtB,IAAI,EAAE,IAAI,CAAC,SAAS;gBACpB,KAAK,EAAE,IAAI,CAAC,UAAU;gBACtB,QAAQ,EAAE,IAAI,CAAC,aAAa;gBAC5B,MAAM,EAAE,IAAI,CAAC,WAAW;gBACxB,KAAK,EAAE,IAAI,CAAC,UAAU;gBACtB,KAAK,EAAE,IAAI,CAAC,UAAU;gBACtB,KAAK,EAAE,IAAI,CAAC,UAAU;gBACtB,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,QAAQ,EAAE,IAAI,CAAC,aAAa;aAC7B,CAAC;YACF,KAAK,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;SAC7B;QACD;YACE,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,eAAe;YACxB,QAAQ,EAAE,uBAAuB;YACjC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC;gBAClB,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC/B,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC/B,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;aACxB,CAAC;SACH;QACD;YACE,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,aAAa;YACtB,QAAQ,EAAE,uBAAuB;YACjC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC;gBAClB,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,MAAM,EAAE,IAAI,CAAC,MAAM;aACpB,CAAC;SACH;KACF,CAAC;AACJ,CAAC;AAED,uCAAuC;AACvC,MAAM,UAAU,qBAAqB,CACnC,QAA+B;IAE/B,OAAO;QACL,GAAG,kBAAkB,CAAC,QAAQ,CAAC;QAC/B,GAAG,kBAAkB,CAAC,QAAQ,CAAC;QAC/B,GAAG,qBAAqB,CAAC,QAAQ,CAAC;QAClC,GAAG,iBAAiB,CAAC,QAAQ,CAAC;KAC/B,CAAC;AACJ,CAAC"}
|
package/dist/obj/randart.d.ts
CHANGED
|
@@ -35,14 +35,20 @@
|
|
|
35
35
|
* (game.ts:2511-2514) - so the in-game randart names draw faithfully too.
|
|
36
36
|
* randNameFallback (a local syllable table) is retained only as a defensive
|
|
37
37
|
* guard for callers that pass no corpus (it never runs on the wired paths).
|
|
38
|
-
* -
|
|
39
|
-
*
|
|
40
|
-
*
|
|
41
|
-
*
|
|
42
|
-
*
|
|
43
|
-
*
|
|
44
|
-
*
|
|
45
|
-
*
|
|
38
|
+
* - randart.log (PORT_TODO 5.5): PORTED bar one line. do_randart opens and
|
|
39
|
+
* closes it through the host; the maintainer's disposition on 2026-08-04 was
|
|
40
|
+
* pursue parity, so the "it never affects an artifact field" argument the old
|
|
41
|
+
* note made here was never a reason to omit it. What is and is not written is
|
|
42
|
+
* MEASURED by obj/randart-log.census.test.ts rather than claimed in prose,
|
|
43
|
+
* including the one site the census's span filter cannot see. See
|
|
44
|
+
* randart-log.ts for the sink and the reason it is a module-level static.
|
|
45
|
+
* - randart.txt: PORTED. obj/randart-file.ts, gated by do_randart's create_file
|
|
46
|
+
* (obj-randart.c L3195-L3215), which is a required parameter here.
|
|
47
|
+
* - The second measurement pass upstream runs after generation
|
|
48
|
+
* (store_base_power/parse_frequencies on the finished set, L3181-L3186):
|
|
49
|
+
* PORTED. It exists only to populate the log's closing statistics, and the
|
|
50
|
+
* set it measures is a parameter here because this port does not overwrite
|
|
51
|
+
* the a_info global the way upstream does.
|
|
46
52
|
* - copy_artifact activation/alt_msg quirk (FAITHFUL): upstream copy_artifact
|
|
47
53
|
* memcpy's the whole struct and then explicitly nulls a_dst->activation and
|
|
48
54
|
* a_dst->alt_msg (obj-randart.c L2689-L2690). copyArtifact reproduces this:
|
|
@@ -56,7 +62,9 @@
|
|
|
56
62
|
* artifact. In the standard set the quest artifacts are last and contiguous,
|
|
57
63
|
* so this is unobservable, but it is reproduced exactly. Noted.
|
|
58
64
|
*/
|
|
65
|
+
import type { HostIo } from "../host/io.js";
|
|
59
66
|
import { Rng } from "../rng.js";
|
|
67
|
+
import type { Constants } from "../constants.js";
|
|
60
68
|
import type { ObjRegistry } from "./bind.js";
|
|
61
69
|
import { type NameProbs } from "./randname.js";
|
|
62
70
|
import { makeBad } from "./randart-build.js";
|
|
@@ -77,6 +85,18 @@ export declare const RANDNAME_TOLKIEN = 1;
|
|
|
77
85
|
* copied. dst keeps its own identity so array references stay valid.
|
|
78
86
|
*/
|
|
79
87
|
export declare function copyArtifact(src: Artifact, dst: Artifact): void;
|
|
88
|
+
/**
|
|
89
|
+
* A full deep copy of an artifact, preserving activation and alt_msg. Used to
|
|
90
|
+
* snapshot the registry's standard artifacts into a mutable working set so
|
|
91
|
+
* do_randart never mutates ObjRegistry.artifacts. This is NOT copy_artifact
|
|
92
|
+
* (which deliberately drops activation/alt_msg); it is the honest clone the
|
|
93
|
+
* working array needs.
|
|
94
|
+
*
|
|
95
|
+
* EXPORTED so a test harness can start from the same object shape production
|
|
96
|
+
* mutates - a hand-built Artifact would be the harness asserting what the
|
|
97
|
+
* struct looks like rather than measuring it.
|
|
98
|
+
*/
|
|
99
|
+
export declare function cloneArtifact(src: Artifact): Artifact;
|
|
80
100
|
/**
|
|
81
101
|
* artifact_gen_name (obj-randart.c L2713): generate a random artifact name.
|
|
82
102
|
* Faithful to upstream: draw a Markov word from the RANDNAME_TOLKIEN corpus via
|
|
@@ -101,7 +121,7 @@ export declare function artifactGenName(rng: Rng, probs: NameProbs | null): stri
|
|
|
101
121
|
* (or, for a cursed artifact, curses) added until its power lands between 19/20
|
|
102
122
|
* and 23/20 of the target.
|
|
103
123
|
*/
|
|
104
|
-
export declare function designArtifact(reg: ObjRegistry, arts: (Artifact | null)[], data: ArtifactSetData, tv: number, aidx: number, rng: Rng, nameProbs: NameProbs | null): number;
|
|
124
|
+
export declare function designArtifact(reg: ObjRegistry, constants: Constants, arts: (Artifact | null)[], data: ArtifactSetData, tv: number, aidx: number, rng: Rng, nameProbs: NameProbs | null): number;
|
|
105
125
|
/**
|
|
106
126
|
* create_artifact_set (obj-randart.c L2954): design a full set of random
|
|
107
127
|
* artifacts into `arts`. The resulting set has at least 80% as many artifacts
|
|
@@ -110,7 +130,7 @@ export declare function designArtifact(reg: ObjRegistry, arts: (Artifact | null)
|
|
|
110
130
|
* artifacts. The final slot (index arts.length - 1) is left as the original,
|
|
111
131
|
* matching the upstream `aidx < z_info->a_max - 1` bound.
|
|
112
132
|
*/
|
|
113
|
-
export declare function createArtifactSet(reg: ObjRegistry, arts: (Artifact | null)[], data: ArtifactSetData, rng: Rng, nameProbs: NameProbs | null): void;
|
|
133
|
+
export declare function createArtifactSet(reg: ObjRegistry, constants: Constants, arts: (Artifact | null)[], data: ArtifactSetData, rng: Rng, nameProbs: NameProbs | null): void;
|
|
114
134
|
/**
|
|
115
135
|
* do_randart (obj-randart.c L3154): generate a full random artifact set from a
|
|
116
136
|
* seed and return it as a fresh (Artifact|null)[] array (index 0 null),
|
|
@@ -119,10 +139,28 @@ export declare function createArtifactSet(reg: ObjRegistry, arts: (Artifact | nu
|
|
|
119
139
|
* Upstream seeds the "quick" LCRNG (Rand_value = seed, Rand_quick = true), so
|
|
120
140
|
* this port creates its Rng in quick mode and draws in upstream order:
|
|
121
141
|
* measure the standard set (store_base_power + parse_frequencies via
|
|
122
|
-
* collectArtifactData),
|
|
123
|
-
*
|
|
124
|
-
*
|
|
125
|
-
*
|
|
142
|
+
* collectArtifactData), design every artifact (create_artifact_set), then
|
|
143
|
+
* measure the finished set the same way. The log file (randart.log), the
|
|
144
|
+
* post-generation measurement pass and the optional spoiler file (create_file /
|
|
145
|
+
* write_randart_entry) are all ported (PORT_TODO 5.5); none of them affects an
|
|
146
|
+
* artifact field or an RNG draw.
|
|
147
|
+
*/
|
|
148
|
+
/** path_build(ANGBAND_DIR_USER, "randart.log") (obj-randart.c L3165). */
|
|
149
|
+
export declare const RANDART_LOG = "randart.log";
|
|
150
|
+
export declare function doRandart(reg: ObjRegistry,
|
|
151
|
+
/**
|
|
152
|
+
* z_info / the player constants object_prep reads. Upstream reaches them as
|
|
153
|
+
* globals; the port passes them, and they arrive here because artifact_power
|
|
154
|
+
* builds a real fake object through make_fake_artifact.
|
|
155
|
+
*/
|
|
156
|
+
constants: Constants, randartSeed: number,
|
|
157
|
+
/**
|
|
158
|
+
* do_randart's `create_file` (obj-randart.c:3154). True writes randart.txt
|
|
159
|
+
* beside randart.log; upstream passes true from birth, from loading a save
|
|
160
|
+
* and from the spoiler generator, and false from the statistics harnesses.
|
|
161
|
+
*
|
|
162
|
+
* REQUIRED, with no default: the two callers that want it differ from the
|
|
163
|
+
* many that do not, and a default would silently pick one of them.
|
|
126
164
|
*/
|
|
127
|
-
|
|
165
|
+
createFile: boolean, tolkienWords?: readonly string[], extras?: Pick<ArtifactSetData, "timedFoil" | "activationSummarize">, io?: HostIo, onLogError?: (message: string) => void): (Artifact | null)[];
|
|
128
166
|
//# sourceMappingURL=randart.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"randart.d.ts","sourceRoot":"","sources":["../../src/obj/randart.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"randart.d.ts","sourceRoot":"","sources":["../../src/obj/randart.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+DG;AAGH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAI5C,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAChC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAE7C,OAAO,EAA2B,KAAK,SAAS,EAAE,MAAM,eAAe,CAAC;AACxE,OAAO,EAKL,OAAO,EAGR,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAMzD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAI3C,OAAO,EAAE,OAAO,EAAE,CAAC;AAanB;;;GAGG;AACH,eAAO,MAAM,gBAAgB,IAAI,CAAC;AAMlC;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,GAAG,IAAI,CA6B/D;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,QAAQ,GAAG,QAAQ,CA6BrD;AA2CD;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,GAAG,IAAI,GAAG,MAAM,CAQzE;AAkBD;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,WAAW,EAChB,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,CAAC,QAAQ,GAAG,IAAI,CAAC,EAAE,EACzB,IAAI,EAAE,eAAe,EACrB,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,SAAS,GAAG,IAAI,GAC1B,MAAM,CAwMR;AAMD;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,WAAW,EAChB,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,CAAC,QAAQ,GAAG,IAAI,CAAC,EAAE,EACzB,IAAI,EAAE,eAAe,EACrB,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,SAAS,GAAG,IAAI,GAC1B,IAAI,CAuCN;AAMD;;;;;;;;;;;;;GAaG;AACH,yEAAyE;AACzE,eAAO,MAAM,WAAW,gBAAgB,CAAC;AAEzC,wBAAgB,SAAS,CACvB,GAAG,EAAE,WAAW;AAChB;;;;GAIG;AACH,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,MAAM;AACnB;;;;;;;GAOG;AACH,UAAU,EAAE,OAAO,EACnB,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,EAChC,MAAM,CAAC,EAAE,IAAI,CAAC,eAAe,EAAE,WAAW,GAAG,qBAAqB,CAAC,EACnE,EAAE,GAAE,MAAe,EACnB,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GACrC,CAAC,QAAQ,GAAG,IAAI,CAAC,EAAE,CAuHrB"}
|