@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
|
@@ -42,6 +42,14 @@ export interface ProjectPlayerSource {
|
|
|
42
42
|
isPlayer: boolean;
|
|
43
43
|
/** origin.what == SRC_MONSTER. */
|
|
44
44
|
isMonster: boolean;
|
|
45
|
+
/**
|
|
46
|
+
* origin.which.monster (midx), 0 when the source is not a monster. This is
|
|
47
|
+
* `cave->mon_current` for the side-effect handlers: player_inc_check gates
|
|
48
|
+
* update_smart_learn and "You resist the effect!" on it (player-timed.c:941,
|
|
49
|
+
* :946-952), so without it a breath could learn a rune but never teach the
|
|
50
|
+
* caster or say anything.
|
|
51
|
+
*/
|
|
52
|
+
monster?: number;
|
|
45
53
|
/** Whether the source monster is visible (false hides the source). */
|
|
46
54
|
monsterVisible?: boolean;
|
|
47
55
|
/** The kb_str death cause ("yourself", a monster/trap name, "a bug"). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-player.d.ts","sourceRoot":"","sources":["../../src/game/project-player.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAIH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAMrC,OAAO,KAAK,EACV,eAAe,EACf,YAAY,EACZ,aAAa,EACd,MAAM,uBAAuB,CAAC;AAE/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAE7D,oDAAoD;AACpD,MAAM,WAAW,eAAgB,SAAQ,aAAa;IACpD,oEAAoE;IACpE,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAClC,0CAA0C;IAC1C,SAAS,EAAE,eAAe,CAAC;IAC3B;;;;;;OAMG;IACH,OAAO,EAAE,MAAM,OAAO,CAAC;CACxB;AAED,6DAA6D;AAC7D,MAAM,WAAW,mBAAmB;IAClC,iCAAiC;IACjC,QAAQ,EAAE,OAAO,CAAC;IAClB,kCAAkC;IAClC,SAAS,EAAE,OAAO,CAAC;IACnB,sEAAsE;IACtE,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,yEAAyE;IACzE,MAAM,EAAE,MAAM,CAAC;IACf,0EAA0E;IAC1E,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,qEAAqE;IACrE,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,kFAAkF;AAClF,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,mBAAmB,CAAC;IAC5B,sCAAsC;IACtC,CAAC,EAAE,MAAM,CAAC;IACV,IAAI,EAAE,GAAG,CAAC;IACV,6EAA6E;IAC7E,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,uDAAuD;IACvD,KAAK,EAAE,MAAM,CAAC;IACd,oEAAoE;IACpE,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,wDAAwD;AACxD,MAAM,WAAW,kBAAkB;IACjC,aAAa;IACb,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,kBAAkB;IAClB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB;;;OAGG;IACH,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,wBAAwB,KAAK,MAAM,CAAC;IAC1D,yDAAyD;IACzD,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,gCAAgC;IAChC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;;;;OAOG;IACH,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAC/C;AAED,mDAAmD;AACnD,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,GAAG,CAAC;IACT,KAAK,EAAE,eAAe,CAAC;IACvB,iDAAiD;IACjD,UAAU,EAAE,GAAG,CAAC;IAChB,WAAW,EAAE,SAAS,cAAc,EAAE,CAAC;IACvC,MAAM,EAAE,mBAAmB,CAAC;IAC5B,8DAA8D;IAC9D,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,kBAAkB,CAAC;CAC3B;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,gBAAgB,EACtB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,GAAG,EACT,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,OAAO,GACZ,OAAO,CA2FT"}
|
|
1
|
+
{"version":3,"file":"project-player.d.ts","sourceRoot":"","sources":["../../src/game/project-player.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAIH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAMrC,OAAO,KAAK,EACV,eAAe,EACf,YAAY,EACZ,aAAa,EACd,MAAM,uBAAuB,CAAC;AAE/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAE7D,oDAAoD;AACpD,MAAM,WAAW,eAAgB,SAAQ,aAAa;IACpD,oEAAoE;IACpE,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAClC,0CAA0C;IAC1C,SAAS,EAAE,eAAe,CAAC;IAC3B;;;;;;OAMG;IACH,OAAO,EAAE,MAAM,OAAO,CAAC;CACxB;AAED,6DAA6D;AAC7D,MAAM,WAAW,mBAAmB;IAClC,iCAAiC;IACjC,QAAQ,EAAE,OAAO,CAAC;IAClB,kCAAkC;IAClC,SAAS,EAAE,OAAO,CAAC;IACnB;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sEAAsE;IACtE,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,yEAAyE;IACzE,MAAM,EAAE,MAAM,CAAC;IACf,0EAA0E;IAC1E,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,qEAAqE;IACrE,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,kFAAkF;AAClF,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,mBAAmB,CAAC;IAC5B,sCAAsC;IACtC,CAAC,EAAE,MAAM,CAAC;IACV,IAAI,EAAE,GAAG,CAAC;IACV,6EAA6E;IAC7E,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,uDAAuD;IACvD,KAAK,EAAE,MAAM,CAAC;IACd,oEAAoE;IACpE,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,wDAAwD;AACxD,MAAM,WAAW,kBAAkB;IACjC,aAAa;IACb,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,kBAAkB;IAClB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB;;;OAGG;IACH,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,wBAAwB,KAAK,MAAM,CAAC;IAC1D,yDAAyD;IACzD,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,gCAAgC;IAChC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;;;;OAOG;IACH,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAC/C;AAED,mDAAmD;AACnD,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,GAAG,CAAC;IACT,KAAK,EAAE,eAAe,CAAC;IACvB,iDAAiD;IACjD,UAAU,EAAE,GAAG,CAAC;IAChB,WAAW,EAAE,SAAS,cAAc,EAAE,CAAC;IACvC,MAAM,EAAE,mBAAmB,CAAC;IAC5B,8DAA8D;IAC9D,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,kBAAkB,CAAC;CAC3B;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,gBAAgB,EACtB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,GAAG,EACT,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,OAAO,GACZ,OAAO,CA2FT"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-player.js","sourceRoot":"","sources":["../../src/game/project-player.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAGlC,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EACL,0BAA0B,EAC1B,OAAO,GACR,MAAM,uBAAuB,CAAC;AAM/B,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"project-player.js","sourceRoot":"","sources":["../../src/game/project-player.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The producer for the three projection handler tables.
|
|
3
|
+
*
|
|
4
|
+
* project_f (37 arms), project_o (11) and project_p (21) each became a keyed
|
|
5
|
+
* registry on 2026-08-08/09, each with an override field - `env.featHandlers`,
|
|
6
|
+
* `env.objHandlers`, `deps.playerHandlers`. Nothing wrote any of them. The
|
|
7
|
+
* conversions were the hard, parity-sensitive half (6,912 golden vectors for
|
|
8
|
+
* project_p alone) and they bought a mod nothing at all, because a field a mod
|
|
9
|
+
* cannot set is not a seam a mod can use.
|
|
10
|
+
*
|
|
11
|
+
* This is the other half: one registry per game, seeded from core's tables,
|
|
12
|
+
* reachable through `registry:projection`.
|
|
13
|
+
*
|
|
14
|
+
* PER CODE, NOT PER TABLE. The override fields are typed as whole tables and
|
|
15
|
+
* their comments said composing several mods' tables was "the host's job" - and
|
|
16
|
+
* a whole table cannot compose. Two mods each handing over a complete map means
|
|
17
|
+
* the second silently discards the first, including its brand-new projection.
|
|
18
|
+
* So a mod writes ONE code at a time, and `handlerFor(code)` hands back whatever
|
|
19
|
+
* is installed right now - core's handler, or an earlier mod's. Mod B wrapping
|
|
20
|
+
* mod A's WATER handler works exactly the way mod A wrapping core's does, which
|
|
21
|
+
* is what "one modder can overwrite or extend another's" requires.
|
|
22
|
+
*
|
|
23
|
+
* THE TABLE IS LIVE. `table` returns the registry's own Map, and the engine
|
|
24
|
+
* holds that object from `wireGame` onward. `register(host, ctx)` runs with a
|
|
25
|
+
* live game - after the wiring - so a snapshot taken at wiring time would be a
|
|
26
|
+
* seam that silently ignored every mod. The identity is the mechanism, and
|
|
27
|
+
* `projection-registry.test.ts` asserts it directly.
|
|
28
|
+
*
|
|
29
|
+
* PER GAME, NEVER SHARED. Constructed with a COPY of each core table, for the
|
|
30
|
+
* same reason `BlowEffectRegistry` and `StoreBehaviourRegistry` are built per
|
|
31
|
+
* game in wireGame: a module-level singleton would carry one character's mod
|
|
32
|
+
* into the next character's game, and mutating PROJECT_FEAT_HANDLERS itself
|
|
33
|
+
* would carry it into every game in the process.
|
|
34
|
+
*/
|
|
35
|
+
import type { ProjectFeatHandler } from "./project-feat.js";
|
|
36
|
+
import type { ProjectObjHandler } from "./project-obj.js";
|
|
37
|
+
import type { PlayerSideHandler } from "./player-side.js";
|
|
38
|
+
/**
|
|
39
|
+
* One handler table, keyed by projection CODE.
|
|
40
|
+
*
|
|
41
|
+
* The key is the code (`"FIRE"`, `"my-mod:sludge"`), never the numeric PROJ
|
|
42
|
+
* value, because a mod's projection is appended at a slot core never compiled
|
|
43
|
+
* in - `projectionCodeFor` resolves the number through the bound projection
|
|
44
|
+
* table first, and a numeric key would look in the wrong place.
|
|
45
|
+
*/
|
|
46
|
+
export declare class ProjectionHandlerTable<H> {
|
|
47
|
+
private readonly handlers;
|
|
48
|
+
constructor(core: ReadonlyMap<string, H>);
|
|
49
|
+
/** Install (or replace) the handler for one projection code. */
|
|
50
|
+
set(code: string, handler: H): void;
|
|
51
|
+
/**
|
|
52
|
+
* The handler currently installed for a code, or null. This is the wrap
|
|
53
|
+
* seam: take what is there, install one that calls through to it. What comes
|
|
54
|
+
* back is core's handler until some mod has replaced it, and that mod's
|
|
55
|
+
* afterwards - the caller neither knows nor needs to.
|
|
56
|
+
*/
|
|
57
|
+
handlerFor(code: string): H | null;
|
|
58
|
+
/** Whether anything answers for this code. */
|
|
59
|
+
has(code: string): boolean;
|
|
60
|
+
/** Every code with a handler, in insertion order (core's first). */
|
|
61
|
+
codes(): readonly string[];
|
|
62
|
+
/**
|
|
63
|
+
* The LIVE table the engine dispatches through. Held by identity from
|
|
64
|
+
* wireGame onward, so a `set` after the game is wired is seen by the next
|
|
65
|
+
* projection - which is the only time a mod's `register` can run.
|
|
66
|
+
*/
|
|
67
|
+
get table(): ReadonlyMap<string, H>;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* The three projection tables a mod can reach, seeded with core's 69 handlers.
|
|
71
|
+
* Built per game in `wireGame` and published on `GameState.projectionHandlers`.
|
|
72
|
+
*/
|
|
73
|
+
export declare class ProjectionHandlerRegistry {
|
|
74
|
+
/** project_f: what a projection does to TERRAIN. */
|
|
75
|
+
readonly feat: ProjectionHandlerTable<ProjectFeatHandler>;
|
|
76
|
+
/** project_o: what a projection does to OBJECTS on the floor. */
|
|
77
|
+
readonly obj: ProjectionHandlerTable<ProjectObjHandler>;
|
|
78
|
+
/** project_p: what a projection does to the PLAYER. */
|
|
79
|
+
readonly player: ProjectionHandlerTable<PlayerSideHandler>;
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=projection-handlers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"projection-handlers.d.ts","sourceRoot":"","sources":["../../src/game/projection-handlers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAGH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAE5D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAE1D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAE1D;;;;;;;GAOG;AACH,qBAAa,sBAAsB,CAAC,CAAC;IACnC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAiB;gBAE9B,IAAI,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC;IAIxC,gEAAgE;IAChE,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI;IAInC;;;;;OAKG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI;IAIlC,8CAA8C;IAC9C,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI1B,oEAAoE;IACpE,KAAK,IAAI,SAAS,MAAM,EAAE;IAI1B;;;;OAIG;IACH,IAAI,KAAK,IAAI,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,CAElC;CACF;AAED;;;GAGG;AACH,qBAAa,yBAAyB;IACpC,oDAAoD;IACpD,QAAQ,CAAC,IAAI,6CAEX;IACF,iEAAiE;IACjE,QAAQ,CAAC,GAAG,4CAEV;IACF,uDAAuD;IACvD,QAAQ,CAAC,MAAM,4CAEb;CACH"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The producer for the three projection handler tables.
|
|
3
|
+
*
|
|
4
|
+
* project_f (37 arms), project_o (11) and project_p (21) each became a keyed
|
|
5
|
+
* registry on 2026-08-08/09, each with an override field - `env.featHandlers`,
|
|
6
|
+
* `env.objHandlers`, `deps.playerHandlers`. Nothing wrote any of them. The
|
|
7
|
+
* conversions were the hard, parity-sensitive half (6,912 golden vectors for
|
|
8
|
+
* project_p alone) and they bought a mod nothing at all, because a field a mod
|
|
9
|
+
* cannot set is not a seam a mod can use.
|
|
10
|
+
*
|
|
11
|
+
* This is the other half: one registry per game, seeded from core's tables,
|
|
12
|
+
* reachable through `registry:projection`.
|
|
13
|
+
*
|
|
14
|
+
* PER CODE, NOT PER TABLE. The override fields are typed as whole tables and
|
|
15
|
+
* their comments said composing several mods' tables was "the host's job" - and
|
|
16
|
+
* a whole table cannot compose. Two mods each handing over a complete map means
|
|
17
|
+
* the second silently discards the first, including its brand-new projection.
|
|
18
|
+
* So a mod writes ONE code at a time, and `handlerFor(code)` hands back whatever
|
|
19
|
+
* is installed right now - core's handler, or an earlier mod's. Mod B wrapping
|
|
20
|
+
* mod A's WATER handler works exactly the way mod A wrapping core's does, which
|
|
21
|
+
* is what "one modder can overwrite or extend another's" requires.
|
|
22
|
+
*
|
|
23
|
+
* THE TABLE IS LIVE. `table` returns the registry's own Map, and the engine
|
|
24
|
+
* holds that object from `wireGame` onward. `register(host, ctx)` runs with a
|
|
25
|
+
* live game - after the wiring - so a snapshot taken at wiring time would be a
|
|
26
|
+
* seam that silently ignored every mod. The identity is the mechanism, and
|
|
27
|
+
* `projection-registry.test.ts` asserts it directly.
|
|
28
|
+
*
|
|
29
|
+
* PER GAME, NEVER SHARED. Constructed with a COPY of each core table, for the
|
|
30
|
+
* same reason `BlowEffectRegistry` and `StoreBehaviourRegistry` are built per
|
|
31
|
+
* game in wireGame: a module-level singleton would carry one character's mod
|
|
32
|
+
* into the next character's game, and mutating PROJECT_FEAT_HANDLERS itself
|
|
33
|
+
* would carry it into every game in the process.
|
|
34
|
+
*/
|
|
35
|
+
import { PROJECT_FEAT_HANDLERS } from "./project-feat.js";
|
|
36
|
+
import { PROJECT_OBJ_HANDLERS } from "./project-obj.js";
|
|
37
|
+
import { PLAYER_SIDE_HANDLERS } from "./player-side.js";
|
|
38
|
+
/**
|
|
39
|
+
* One handler table, keyed by projection CODE.
|
|
40
|
+
*
|
|
41
|
+
* The key is the code (`"FIRE"`, `"my-mod:sludge"`), never the numeric PROJ
|
|
42
|
+
* value, because a mod's projection is appended at a slot core never compiled
|
|
43
|
+
* in - `projectionCodeFor` resolves the number through the bound projection
|
|
44
|
+
* table first, and a numeric key would look in the wrong place.
|
|
45
|
+
*/
|
|
46
|
+
export class ProjectionHandlerTable {
|
|
47
|
+
handlers;
|
|
48
|
+
constructor(core) {
|
|
49
|
+
this.handlers = new Map(core);
|
|
50
|
+
}
|
|
51
|
+
/** Install (or replace) the handler for one projection code. */
|
|
52
|
+
set(code, handler) {
|
|
53
|
+
this.handlers.set(code, handler);
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* The handler currently installed for a code, or null. This is the wrap
|
|
57
|
+
* seam: take what is there, install one that calls through to it. What comes
|
|
58
|
+
* back is core's handler until some mod has replaced it, and that mod's
|
|
59
|
+
* afterwards - the caller neither knows nor needs to.
|
|
60
|
+
*/
|
|
61
|
+
handlerFor(code) {
|
|
62
|
+
return this.handlers.get(code) ?? null;
|
|
63
|
+
}
|
|
64
|
+
/** Whether anything answers for this code. */
|
|
65
|
+
has(code) {
|
|
66
|
+
return this.handlers.has(code);
|
|
67
|
+
}
|
|
68
|
+
/** Every code with a handler, in insertion order (core's first). */
|
|
69
|
+
codes() {
|
|
70
|
+
return [...this.handlers.keys()];
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* The LIVE table the engine dispatches through. Held by identity from
|
|
74
|
+
* wireGame onward, so a `set` after the game is wired is seen by the next
|
|
75
|
+
* projection - which is the only time a mod's `register` can run.
|
|
76
|
+
*/
|
|
77
|
+
get table() {
|
|
78
|
+
return this.handlers;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* The three projection tables a mod can reach, seeded with core's 69 handlers.
|
|
83
|
+
* Built per game in `wireGame` and published on `GameState.projectionHandlers`.
|
|
84
|
+
*/
|
|
85
|
+
export class ProjectionHandlerRegistry {
|
|
86
|
+
/** project_f: what a projection does to TERRAIN. */
|
|
87
|
+
feat = new ProjectionHandlerTable(PROJECT_FEAT_HANDLERS);
|
|
88
|
+
/** project_o: what a projection does to OBJECTS on the floor. */
|
|
89
|
+
obj = new ProjectionHandlerTable(PROJECT_OBJ_HANDLERS);
|
|
90
|
+
/** project_p: what a projection does to the PLAYER. */
|
|
91
|
+
player = new ProjectionHandlerTable(PLAYER_SIDE_HANDLERS);
|
|
92
|
+
}
|
|
93
|
+
//# sourceMappingURL=projection-handlers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"projection-handlers.js","sourceRoot":"","sources":["../../src/game/projection-handlers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAE1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAExD,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAGxD;;;;;;;GAOG;AACH,MAAM,OAAO,sBAAsB;IAChB,QAAQ,CAAiB;IAE1C,YAAY,IAA4B;QACtC,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAED,gEAAgE;IAChE,GAAG,CAAC,IAAY,EAAE,OAAU;QAC1B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACnC,CAAC;IAED;;;;;OAKG;IACH,UAAU,CAAC,IAAY;QACrB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;IACzC,CAAC;IAED,8CAA8C;IAC9C,GAAG,CAAC,IAAY;QACd,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAED,oEAAoE;IACpE,KAAK;QACH,OAAO,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IACnC,CAAC;IAED;;;;OAIG;IACH,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,OAAO,yBAAyB;IACpC,oDAAoD;IAC3C,IAAI,GAAG,IAAI,sBAAsB,CACxC,qBAAqB,CACtB,CAAC;IACF,iEAAiE;IACxD,GAAG,GAAG,IAAI,sBAAsB,CACvC,oBAAoB,CACrB,CAAC;IACF,uDAAuD;IAC9C,MAAM,GAAG,IAAI,sBAAsB,CAC1C,oBAAoB,CACrB,CAAC;CACH"}
|
package/dist/game/quest.d.ts
CHANGED
|
@@ -87,6 +87,29 @@ export declare function dungeonGetNextLevel(p: Player, dlev: number, added: numb
|
|
|
87
87
|
readonly stairSkip: number;
|
|
88
88
|
readonly maxDepth: number;
|
|
89
89
|
}): number;
|
|
90
|
+
/**
|
|
91
|
+
* player_set_recall_depth (player-util.c L79): settle where a Word of Recall
|
|
92
|
+
* read in TOWN is about to drop the player. Called at the moment the countdown
|
|
93
|
+
* fires (game-world.c:803), not when the scroll is read.
|
|
94
|
+
*
|
|
95
|
+
* Provenance is player-util.c; it lives here for the same reason
|
|
96
|
+
* dungeonGetNextLevel does - the force_descend arm is a quest scan, and refusing
|
|
97
|
+
* to step past `max_depth` when max_depth itself is an unfinished quest is the
|
|
98
|
+
* rule that keeps a force_descend character from being recalled straight past
|
|
99
|
+
* Sauron.
|
|
100
|
+
*
|
|
101
|
+
* Note what it does NOT do: outside force_descend it leaves `recall_depth`
|
|
102
|
+
* exactly as it stands. The value is maintained elsewhere - on_new_level sets
|
|
103
|
+
* `max_depth = recall_depth = depth` on reaching a new deepest level
|
|
104
|
+
* (game-world.c:1024), EF_RECALL re-anchors it when read in the dungeon, and
|
|
105
|
+
* player_get_recall_depth sets it from the prompt under persistent levels. The
|
|
106
|
+
* only floor is the final MAX(recall_depth, 1): a character who reads Word of
|
|
107
|
+
* Recall in town having never descended goes to level 1, not to the town.
|
|
108
|
+
*/
|
|
109
|
+
export declare function playerSetRecallDepth(p: Player, forceDescend: boolean, z: {
|
|
110
|
+
readonly stairSkip: number;
|
|
111
|
+
readonly maxDepth: number;
|
|
112
|
+
}): void;
|
|
90
113
|
/**
|
|
91
114
|
* quest_check (player-quest.c L219): the now-dead monster `m` may be a quest
|
|
92
115
|
* guardian. Increments the matching quest's kill count when the current depth
|
package/dist/game/quest.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quest.d.ts","sourceRoot":"","sources":["../../src/game/quest.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAIH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAElD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAI9C,6EAA6E;AAC7E,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,oEAAoE;IACpE,IAAI,EAAE,MAAM,CAAC;IACb,mDAAmD;IACnD,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,MAAM,WAAW,KAAK;IACpB,8DAA8D;IAC9D,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,+CAA+C;IAC/C,IAAI,EAAE,WAAW,CAAC;IAClB,sBAAsB;IACtB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CACxB,OAAO,EAAE,SAAS,eAAe,EAAE,EACnC,QAAQ,EAAE,eAAe,GACxB,KAAK,EAAE,CAUT;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,KAAK,EAAE,GAAG,IAAI,CAQ3E;AAED;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAOzD;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,mBAAmB,CACjC,CAAC,EAAE,MAAM,EACT,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,CAAC,EAAE;IAAE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAC3D,MAAM,CAcR;AAyDD;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,GAAG,OAAO,CAoC3E"}
|
|
1
|
+
{"version":3,"file":"quest.d.ts","sourceRoot":"","sources":["../../src/game/quest.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAIH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAElD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAI9C,6EAA6E;AAC7E,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,oEAAoE;IACpE,IAAI,EAAE,MAAM,CAAC;IACb,mDAAmD;IACnD,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,MAAM,WAAW,KAAK;IACpB,8DAA8D;IAC9D,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,+CAA+C;IAC/C,IAAI,EAAE,WAAW,CAAC;IAClB,sBAAsB;IACtB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CACxB,OAAO,EAAE,SAAS,eAAe,EAAE,EACnC,QAAQ,EAAE,eAAe,GACxB,KAAK,EAAE,CAUT;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,KAAK,EAAE,GAAG,IAAI,CAQ3E;AAED;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAOzD;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,mBAAmB,CACjC,CAAC,EAAE,MAAM,EACT,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,CAAC,EAAE;IAAE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAC3D,MAAM,CAcR;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,oBAAoB,CAClC,CAAC,EAAE,MAAM,EACT,YAAY,EAAE,OAAO,EACrB,CAAC,EAAE;IAAE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAC3D,IAAI,CAuBN;AAyDD;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,GAAG,OAAO,CAoC3E"}
|
package/dist/game/quest.js
CHANGED
|
@@ -99,6 +99,48 @@ export function dungeonGetNextLevel(p, dlev, added, z) {
|
|
|
99
99
|
}
|
|
100
100
|
return target;
|
|
101
101
|
}
|
|
102
|
+
/**
|
|
103
|
+
* player_set_recall_depth (player-util.c L79): settle where a Word of Recall
|
|
104
|
+
* read in TOWN is about to drop the player. Called at the moment the countdown
|
|
105
|
+
* fires (game-world.c:803), not when the scroll is read.
|
|
106
|
+
*
|
|
107
|
+
* Provenance is player-util.c; it lives here for the same reason
|
|
108
|
+
* dungeonGetNextLevel does - the force_descend arm is a quest scan, and refusing
|
|
109
|
+
* to step past `max_depth` when max_depth itself is an unfinished quest is the
|
|
110
|
+
* rule that keeps a force_descend character from being recalled straight past
|
|
111
|
+
* Sauron.
|
|
112
|
+
*
|
|
113
|
+
* Note what it does NOT do: outside force_descend it leaves `recall_depth`
|
|
114
|
+
* exactly as it stands. The value is maintained elsewhere - on_new_level sets
|
|
115
|
+
* `max_depth = recall_depth = depth` on reaching a new deepest level
|
|
116
|
+
* (game-world.c:1024), EF_RECALL re-anchors it when read in the dungeon, and
|
|
117
|
+
* player_get_recall_depth sets it from the prompt under persistent levels. The
|
|
118
|
+
* only floor is the final MAX(recall_depth, 1): a character who reads Word of
|
|
119
|
+
* Recall in town having never descended goes to level 1, not to the town.
|
|
120
|
+
*/
|
|
121
|
+
export function playerSetRecallDepth(p, forceDescend, z) {
|
|
122
|
+
/* Account for forced descent. */
|
|
123
|
+
if (forceDescend) {
|
|
124
|
+
/* Force descent to a lower level if allowed.
|
|
125
|
+
*
|
|
126
|
+
* MUTATION NOTE. Both conjuncts are unkillable through gameplay, and the
|
|
127
|
+
* reason is worth writing down rather than rediscovering. dungeonGetNextLevel
|
|
128
|
+
* already clamps to maxDepth - 1 and already returns the first quest depth
|
|
129
|
+
* it scans over, so whenever recall_depth equals max_depth this guard and
|
|
130
|
+
* the call it guards give the same answer - dropping either conjunct changes
|
|
131
|
+
* nothing. And recall_depth DOES always equal max_depth under force_descend:
|
|
132
|
+
* on_new_level assigns them together, EF_RECALL's re-anchor assigns them
|
|
133
|
+
* together, and player_get_recall_depth returns early under this very
|
|
134
|
+
* option. The conjuncts are kept because they are upstream's, and covered by
|
|
135
|
+
* a contract test on the exported function (quest.test.ts) that constructs
|
|
136
|
+
* the differing recall_depth play cannot produce. */
|
|
137
|
+
if (p.maxDepth < z.maxDepth - 1 && !isQuest(p, p.maxDepth)) {
|
|
138
|
+
p.recallDepth = dungeonGetNextLevel(p, p.maxDepth, 1, z);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
/* Players who haven't left town before go to level 1. */
|
|
142
|
+
p.recallDepth = Math.max(p.recallDepth, 1);
|
|
143
|
+
}
|
|
102
144
|
/**
|
|
103
145
|
* square_changeable (cave-square.c L868): a grid that may be "destroyed" - no
|
|
104
146
|
* permanent walls, shops or stairs, and no artifact lying on it. Reimplemented
|
package/dist/game/quest.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quest.js","sourceRoot":"","sources":["../../src/game/quest.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"quest.js","sourceRoot":"","sources":["../../src/game/quest.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
* mon_take_hit routing so ranged hits generate fear, "flees in terror", and
|
|
18
18
|
* message_pain (player-attack.c:1191-1195, gap 2.4).
|
|
19
19
|
*
|
|
20
|
-
*
|
|
20
|
+
* NOTES (ledgered in parity/ledger/ranged-cmd.yaml): the out-of-range "Fire
|
|
21
21
|
* anyway?" prompt (UI) and the crit-flavour line (the hit verb still varies).
|
|
22
22
|
* The show_damage " (N)" suffix is now wired (player-attack.c:1168-1170), and
|
|
23
23
|
* the invisible-monster "finds a mark" branch is now ported
|
|
@@ -26,7 +26,18 @@
|
|
|
26
26
|
* Missile / equipment / brand-slay learn-on-attack is wired below (W2-001/002/
|
|
27
27
|
* 010/011; player-attack.c:1137-1140, 1255-1259, 1296-1299).
|
|
28
28
|
*/
|
|
29
|
+
import type { FloorEnv } from "./floor.js";
|
|
29
30
|
import type { ActionRegistry } from "./player-turn.js";
|
|
30
31
|
/** Install the fire and throw commands over the live action registry. */
|
|
31
|
-
export declare function installRangedCommands(registry: ActionRegistry
|
|
32
|
+
export declare function installRangedCommands(registry: ActionRegistry,
|
|
33
|
+
/**
|
|
34
|
+
* The shared drop_near environment (session/game.ts floorEnv). BOTH drop
|
|
35
|
+
* sites below passed a bare `{}` until 2026-08-09, so a fired arrow or a
|
|
36
|
+
* thrown flask landed with no ignore rule, no trap rule, no
|
|
37
|
+
* sound(MSG_DROP) - and, worse, floor_carry_fail's "The %s breaks." was
|
|
38
|
+
* dropped, which is the line that tells a player their potion of Death was
|
|
39
|
+
* the one that shattered. Every other dropNear call site in the port already
|
|
40
|
+
* threaded this.
|
|
41
|
+
*/
|
|
42
|
+
floorEnv?: FloorEnv): void;
|
|
32
43
|
//# sourceMappingURL=ranged-cmd.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ranged-cmd.d.ts","sourceRoot":"","sources":["../../src/game/ranged-cmd.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;
|
|
1
|
+
{"version":3,"file":"ranged-cmd.d.ts","sourceRoot":"","sources":["../../src/game/ranged-cmd.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAyBH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAkB3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAoNvD,yEAAyE;AACzE,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,cAAc;AACxB;;;;;;;;GAQG;AACH,QAAQ,GAAE,QAAa,GACtB,IAAI,CA2JN"}
|
package/dist/game/ranged-cmd.js
CHANGED
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
* mon_take_hit routing so ranged hits generate fear, "flees in terror", and
|
|
18
18
|
* message_pain (player-attack.c:1191-1195, gap 2.4).
|
|
19
19
|
*
|
|
20
|
-
*
|
|
20
|
+
* NOTES (ledgered in parity/ledger/ranged-cmd.yaml): the out-of-range "Fire
|
|
21
21
|
* anyway?" prompt (UI) and the crit-flavour line (the hit verb still varies).
|
|
22
22
|
* The show_damage " (N)" suffix is now wired (player-attack.c:1168-1170), and
|
|
23
23
|
* the invisible-monster "finds a mark" branch is now ported
|
|
@@ -42,10 +42,11 @@ import { playerClearTimed } from "../player/timed.js";
|
|
|
42
42
|
import { gearGet, gearObjectForUse } from "./gear.js";
|
|
43
43
|
import { dropNear, floorPile, floorObjectForUse, itemIsAvailable } from "./floor.js";
|
|
44
44
|
import { invenTakeoff, playerConfuseDir } from "./obj-cmd.js";
|
|
45
|
-
import { squareMonster, deleteMonster, arenaInterceptDeath } from "./context.js";
|
|
45
|
+
import { squareMonster, deleteMonster, arenaInterceptDeath, gameTakeHitHooks, } from "./context.js";
|
|
46
46
|
import { targetOkay, targetGet, targetSetClosest, TARGET } from "./target.js";
|
|
47
47
|
import { describeObject } from "./describe.js";
|
|
48
|
-
import { formatMonsterMessage,
|
|
48
|
+
import { addMonsterMessage, formatMonsterMessage, messagePain, monMessageSoundType, } from "./mon-message.js";
|
|
49
|
+
import { noticeStuff } from "./notice.js";
|
|
49
50
|
/* Keypad direction deltas (ddx/ddy), indexed by keypad digit 1..9. */
|
|
50
51
|
const DDX = [0, -1, 0, 1, -1, 0, 1, -1, 0, 1];
|
|
51
52
|
const DDY = [0, 1, 1, 1, 0, 0, 0, -1, -1, -1];
|
|
@@ -106,9 +107,13 @@ function rangedHelper(state, missile, launcher, dir, range, throwing) {
|
|
|
106
107
|
* Chebyshev max, so diagonal shots are penalized faithfully (gap 2.6). */
|
|
107
108
|
const dist = distance(start, grid);
|
|
108
109
|
const percentDamage = state.options?.get("birth_percent_damage") ?? false;
|
|
110
|
+
/* object_to_hit / object_to_dam / object_weight_one read the curse
|
|
111
|
+
* templates of the missile's and launcher's active curses (obj-util.c
|
|
112
|
+
* :296-330), exactly as the melee path does - a cursed bow's penalty has
|
|
113
|
+
* to reach a shot as well as a swing. */
|
|
109
114
|
const result = throwing
|
|
110
|
-
? makeRangedThrow(state.rng, player, state.actor.combat, missile, mon, state.brands, state.slays, dist, monObvious, percentDamage)
|
|
111
|
-
: makeRangedShot(state.rng, player, state.actor.combat, missile, launcher, mon, state.brands, state.slays, dist, monObvious, percentDamage);
|
|
115
|
+
? makeRangedThrow(state.rng, player, state.actor.combat, missile, mon, state.brands, state.slays, dist, monObvious, percentDamage, state.curses)
|
|
116
|
+
: makeRangedShot(state.rng, player, state.actor.combat, missile, launcher, mon, state.brands, state.slays, dist, monObvious, percentDamage, state.curses);
|
|
112
117
|
if (result.success) {
|
|
113
118
|
hit = true;
|
|
114
119
|
/*
|
|
@@ -177,6 +182,7 @@ function rangedHelper(state, missile, launcher, dir, range, throwing) {
|
|
|
177
182
|
* is handled uniformly (player-attack.c:1191). Death messaging stays
|
|
178
183
|
* explicit here (empty note), matching the port's ranged death lines. */
|
|
179
184
|
const res = monTakeHit(state.rng, mon, dmg, "", {
|
|
185
|
+
...gameTakeHitHooks(state, mon),
|
|
180
186
|
...(state.becomeAware ? { becomeAware: state.becomeAware } : {}),
|
|
181
187
|
...(state.arenaLevel
|
|
182
188
|
? { onArenaDeath: (m) => void arenaInterceptDeath(state, m) }
|
|
@@ -184,6 +190,10 @@ function rangedHelper(state, missile, launcher, dir, range, throwing) {
|
|
|
184
190
|
});
|
|
185
191
|
if (res.died) {
|
|
186
192
|
if (!state.arenaLevel) {
|
|
193
|
+
/* "Make sure to flush any monster messages first" (mon-util.c:1046):
|
|
194
|
+
* a piercing shot that hurt one monster and killed the next has to
|
|
195
|
+
* report the pain before the kill. */
|
|
196
|
+
noticeStuff(state);
|
|
187
197
|
const dieMsg = monsterIsDestroyed(mon) ? MON_MSG.DESTROYED : MON_MSG.DIE;
|
|
188
198
|
const text = formatMonsterMessage(mon, dieMsg);
|
|
189
199
|
/* get_message_type (mon-msg.c:450): a unique's death plays
|
|
@@ -197,14 +207,11 @@ function rangedHelper(state, missile, launcher, dir, range, throwing) {
|
|
|
197
207
|
}
|
|
198
208
|
}
|
|
199
209
|
else {
|
|
200
|
-
/* message_pain, then the delayed flee message (player-attack.c:1192).
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
state.msg?.(pain);
|
|
210
|
+
/* message_pain, then the delayed flee message (player-attack.c:1192).
|
|
211
|
+
* Both go on the queue; the flee line takes the delayed pass. */
|
|
212
|
+
messagePain(state, mon, dmg);
|
|
204
213
|
if (res.fear && monsterIsObvious(mon)) {
|
|
205
|
-
|
|
206
|
-
if (flee)
|
|
207
|
-
state.msg?.(flee);
|
|
214
|
+
addMonsterMessage(state, mon, MON_MSG.FLEE_IN_TERROR, true);
|
|
208
215
|
}
|
|
209
216
|
}
|
|
210
217
|
}
|
|
@@ -231,7 +238,17 @@ function rangedHelper(state, missile, launcher, dir, range, throwing) {
|
|
|
231
238
|
return { hit, landing };
|
|
232
239
|
}
|
|
233
240
|
/** Install the fire and throw commands over the live action registry. */
|
|
234
|
-
export function installRangedCommands(registry
|
|
241
|
+
export function installRangedCommands(registry,
|
|
242
|
+
/**
|
|
243
|
+
* The shared drop_near environment (session/game.ts floorEnv). BOTH drop
|
|
244
|
+
* sites below passed a bare `{}` until 2026-08-09, so a fired arrow or a
|
|
245
|
+
* thrown flask landed with no ignore rule, no trap rule, no
|
|
246
|
+
* sound(MSG_DROP) - and, worse, floor_carry_fail's "The %s breaks." was
|
|
247
|
+
* dropped, which is the line that tells a player their potion of Death was
|
|
248
|
+
* the one that shattered. Every other dropNear call site in the port already
|
|
249
|
+
* threaded this.
|
|
250
|
+
*/
|
|
251
|
+
floorEnv = {}) {
|
|
235
252
|
registry.register("fire", (state, cmd) => {
|
|
236
253
|
const player = state.actor.player;
|
|
237
254
|
const args = cmd.args ?? {};
|
|
@@ -277,7 +294,7 @@ export function installRangedCommands(registry) {
|
|
|
277
294
|
const range = Math.min(6 + 2 * state.actor.combat.ammoMult, state.z.maxRange);
|
|
278
295
|
const { hit, landing } = rangedHelper(state, missile, launcher, dir, range, false);
|
|
279
296
|
/* Drop the (surviving) missile where it landed. */
|
|
280
|
-
dropNear(state, missile, breakageChance(missile, hit), landing, true, false,
|
|
297
|
+
dropNear(state, missile, breakageChance(missile, hit), landing, true, false, floorEnv);
|
|
281
298
|
const shots = Math.max(10, state.actor.combat.numShots);
|
|
282
299
|
return Math.trunc((state.z.moveEnergy * 10) / shots);
|
|
283
300
|
});
|
|
@@ -365,7 +382,7 @@ export function installRangedCommands(registry) {
|
|
|
365
382
|
const weight = Math.max(objectWeightOne(missile), 10);
|
|
366
383
|
const range = Math.min(Math.trunc(((str + 20) * 10) / weight), 10);
|
|
367
384
|
const { hit, landing } = rangedHelper(state, missile, null, dir, range, true);
|
|
368
|
-
dropNear(state, missile, breakageChance(missile, hit), landing, true, false,
|
|
385
|
+
dropNear(state, missile, breakageChance(missile, hit), landing, true, false, floorEnv);
|
|
369
386
|
return state.z.moveEnergy;
|
|
370
387
|
});
|
|
371
388
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ranged-cmd.js","sourceRoot":"","sources":["../../src/game/ranged-cmd.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ranged-cmd.js","sourceRoot":"","sources":["../../src/game/ranged-cmd.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* cmd_disable_repeat / cmd_disable_repeat_floor_item (cmd-core.c L539-577) and
|
|
3
|
+
* the `repeat_prev_allowed` static they write, on the path this port actually
|
|
4
|
+
* runs. PORT_TODO 2.12.
|
|
5
|
+
*
|
|
6
|
+
* WHAT WAS WRONG, AND WHY IT LOOKED PORTED. `cmd.ts`'s CommandQueue is a
|
|
7
|
+
* faithful port of upstream's whole ring buffer - `repeat_prev_allowed`,
|
|
8
|
+
* `disableRepeat`, the `cmdq_push_copy` gate, all of it - and **nothing drives
|
|
9
|
+
* it**. `mod/registry-host.ts:15` states that plainly: "cmd.ts CommandQueue is a
|
|
10
|
+
* faithful port the web loop does not drive." The repeat the player gets is the
|
|
11
|
+
* shell re-dispatching `lastRepeatCmd`, and that had no gate, so:
|
|
12
|
+
*
|
|
13
|
+
* - all SEVEN `cmd_disable_repeat` sites were unported: taking the last of a
|
|
14
|
+
* stack (obj-gear.c:613), wielding (L1020), a full combine_pack (L1321),
|
|
15
|
+
* taking the last of a floor pile (obj-pile.c:856), accepting a character
|
|
16
|
+
* (player-birth.c:1309), creating a trap in wizard mode (cmd-wizard.c:932),
|
|
17
|
+
* and a store transaction (ui-store.c:1317, which is the shell's);
|
|
18
|
+
* - all FOUR `cmd_disable_repeat_floor_item` sites were too: leaving a level
|
|
19
|
+
* (game-world.c:1068), a monster dying or being deleted (mon-util.c:624,
|
|
20
|
+
* :671), and an object destroyed by a projection (project-obj.c:575).
|
|
21
|
+
*
|
|
22
|
+
* So this is the shipped-is-not-reachable shape, and PORT_TODO 2.12's own
|
|
23
|
+
* description - "`repeatAllowed` in cmd.ts is a static table property, not the
|
|
24
|
+
* runtime disable-for-this-item call" - was true of a class with no callers.
|
|
25
|
+
* Adding the call there would have been perfectly faithful and completely inert.
|
|
26
|
+
*
|
|
27
|
+
* THE FLOOR-ITEM CASE IS WORSE HERE THAN UPSTREAM. Upstream's guard exists to
|
|
28
|
+
* avoid dereferencing an object pointer the command still holds after the object
|
|
29
|
+
* was freed; its own comment says so. This port addresses a floor object as
|
|
30
|
+
* `args.floor`, an INDEX into the pile under the player. An index does not
|
|
31
|
+
* dangle - it silently re-binds. Quaff the first potion off a two-item pile and
|
|
32
|
+
* press the repeat key: index 0 is now the other object.
|
|
33
|
+
*
|
|
34
|
+
* ONE OF THE SEVEN IS NOT OWED, and that is a finding rather than a skip:
|
|
35
|
+
* do_cmd_accept_character's `cmd_disable_repeat` (player-birth.c:1309, "so we
|
|
36
|
+
* don't try to be born again") guards against CMD_BIRTH_* sitting in the same
|
|
37
|
+
* queue as game commands. In this port birth is a shell flow, not a registry
|
|
38
|
+
* command, so `lastRepeatCmd` can never hold a birth step - there is nothing for
|
|
39
|
+
* the guard to stop. The other six are wired, plus all four floor-item sites.
|
|
40
|
+
*
|
|
41
|
+
* The flag lives on `player.upkeep` rather than in a module static or on
|
|
42
|
+
* GameState; see PlayerUpkeep.repeatPrevAllowed for why (three of its writers are
|
|
43
|
+
* in game/gear.ts, which cannot see a GameState).
|
|
44
|
+
*/
|
|
45
|
+
import type { Player } from "../player/player.js";
|
|
46
|
+
import type { PlayerCommand } from "./context.js";
|
|
47
|
+
/**
|
|
48
|
+
* cmd-core.c:353, inside process_command: every command starts out repeatable
|
|
49
|
+
* and the handler gets to say otherwise. Also records whether this command
|
|
50
|
+
* addressed a floor object, which is what disableRepeatFloorItem needs and what
|
|
51
|
+
* upstream reads back off the queued command's args.
|
|
52
|
+
*/
|
|
53
|
+
export declare function repeatBeginCommand(p: Player, cmd: PlayerCommand): void;
|
|
54
|
+
/**
|
|
55
|
+
* cmd_disable_repeat (cmd-core.c:539): "do not allow the current command to be
|
|
56
|
+
* repeated by the user using the repeat last command command".
|
|
57
|
+
*/
|
|
58
|
+
export declare function cmdDisableRepeat(p: Player): void;
|
|
59
|
+
/**
|
|
60
|
+
* cmd_disable_repeat_floor_item (cmd-core.c:548): the same, but only when the
|
|
61
|
+
* command being remembered used an item from the floor.
|
|
62
|
+
*
|
|
63
|
+
* MEASURED: upstream's early return at L556 ("avoids access to dangling object
|
|
64
|
+
* references") is UNOBSERVABLE in this port, and not just untested. Clearing a
|
|
65
|
+
* false flag is a no-op, so `if (!allowed) return; if (floor) allowed = false;`
|
|
66
|
+
* and the second line alone agree on every input - deleting it kills no test, and
|
|
67
|
+
* no test could be written that it would kill. It exists in the C to skip reading
|
|
68
|
+
* freed object pointers; this port reads an index off `upkeep`, which is always
|
|
69
|
+
* safe. Kept because it is upstream's control flow, recorded here rather than
|
|
70
|
+
* counted as covered.
|
|
71
|
+
*/
|
|
72
|
+
export declare function cmdDisableRepeatFloorItem(p: Player): void;
|
|
73
|
+
/**
|
|
74
|
+
* cmdq_push_copy's CMD_REPEAT gate (cmd-core.c:296-297): whether the repeat key
|
|
75
|
+
* may re-dispatch the remembered command. Read by the shell.
|
|
76
|
+
*/
|
|
77
|
+
export declare function repeatPrevAllowed(p: Player): boolean;
|
|
78
|
+
//# sourceMappingURL=repeat.d.ts.map
|