@rpgm-tools/neo-angband-core 0.18.0 → 0.20.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/cmd.d.ts +44 -2
- package/dist/cmd.d.ts.map +1 -1
- package/dist/cmd.js +59 -3
- package/dist/cmd.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 +244 -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 +123 -8
- package/dist/game/display.d.ts.map +1 -1
- package/dist/game/display.js +273 -35
- package/dist/game/display.js.map +1 -1
- package/dist/game/dump-level.d.ts +1 -1
- package/dist/game/dump-level.d.ts.map +1 -1
- package/dist/game/dump-level.js +4 -3
- 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 +37 -30
- 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 +99 -47
- 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 +146 -86
- 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 +153 -28
- package/dist/game/effect-teleport.js.map +1 -1
- package/dist/game/effect-terrain.d.ts +2 -4
- package/dist/game/effect-terrain.d.ts.map +1 -1
- package/dist/game/effect-terrain.js +39 -23
- package/dist/game/effect-terrain.js.map +1 -1
- package/dist/game/equip-cmp.d.ts +17 -6
- package/dist/game/equip-cmp.d.ts.map +1 -1
- package/dist/game/equip-cmp.js +53 -31
- package/dist/game/equip-cmp.js.map +1 -1
- package/dist/game/floor.d.ts +48 -4
- package/dist/game/floor.d.ts.map +1 -1
- package/dist/game/floor.js +64 -4
- package/dist/game/floor.js.map +1 -1
- package/dist/game/gear.d.ts +118 -16
- package/dist/game/gear.d.ts.map +1 -1
- package/dist/game/gear.js +185 -26
- 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/inscription-confirm.d.ts +13 -6
- package/dist/game/inscription-confirm.d.ts.map +1 -1
- package/dist/game/inscription-confirm.js +13 -6
- package/dist/game/inscription-confirm.js.map +1 -1
- package/dist/game/known.d.ts +254 -40
- package/dist/game/known.d.ts.map +1 -1
- package/dist/game/known.js +382 -80
- 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 +39 -7
- 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 +83 -33
- 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 +266 -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 +19 -21
- package/dist/game/mon-side.js.map +1 -1
- package/dist/game/monster-turn.d.ts +24 -11
- package/dist/game/monster-turn.d.ts.map +1 -1
- package/dist/game/monster-turn.js +118 -87
- 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 +130 -38
- 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 +27 -7
- package/dist/game/player-turn.d.ts.map +1 -1
- package/dist/game/player-turn.js +181 -34
- 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 +58 -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 +31 -8
- package/dist/game/project-monster.d.ts.map +1 -1
- package/dist/game/project-monster.js +56 -23
- 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 +89 -0
- package/dist/game/projection-handlers.d.ts.map +1 -0
- package/dist/game/projection-handlers.js +101 -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 +38 -17
- package/dist/game/ranged-cmd.js.map +1 -1
- package/dist/game/repeat.d.ts +115 -0
- package/dist/game/repeat.d.ts.map +1 -0
- package/dist/game/repeat.js +111 -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 +90 -41
- 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/take-hit-hooks.d.ts.map +1 -1
- package/dist/game/take-hit-hooks.js +4 -12
- package/dist/game/take-hit-hooks.js.map +1 -1
- package/dist/game/target-loop.d.ts +23 -12
- package/dist/game/target-loop.d.ts.map +1 -1
- package/dist/game/target-loop.js +55 -20
- 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-registry.d.ts +124 -0
- package/dist/game/ui-entry-registry.d.ts.map +1 -0
- package/dist/game/ui-entry-registry.js +102 -0
- package/dist/game/ui-entry-registry.js.map +1 -0
- package/dist/game/ui-entry.d.ts +153 -24
- package/dist/game/ui-entry.d.ts.map +1 -1
- package/dist/game/ui-entry.js +656 -333
- package/dist/game/ui-entry.js.map +1 -1
- package/dist/game/wizard.d.ts +47 -25
- package/dist/game/wizard.d.ts.map +1 -1
- package/dist/game/wizard.js +123 -37
- 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/gen-monster.d.ts +4 -2
- package/dist/gen/gen-monster.d.ts.map +1 -1
- package/dist/gen/gen-monster.js +11 -8
- package/dist/gen/gen-monster.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 +12 -3
- 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 +26 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +42 -0
- package/dist/index.js.map +1 -1
- package/dist/mod/extension.d.ts +135 -0
- package/dist/mod/extension.d.ts.map +1 -0
- package/dist/mod/extension.js +95 -0
- package/dist/mod/extension.js.map +1 -0
- package/dist/mod/ids.d.ts +22 -0
- package/dist/mod/ids.d.ts.map +1 -1
- package/dist/mod/ids.js +196 -22
- package/dist/mod/ids.js.map +1 -1
- package/dist/mod/message-declarations.d.ts +132 -0
- package/dist/mod/message-declarations.d.ts.map +1 -0
- package/dist/mod/message-declarations.js +223 -0
- package/dist/mod/message-declarations.js.map +1 -0
- package/dist/mod/record-keys.d.ts +44 -0
- package/dist/mod/record-keys.d.ts.map +1 -0
- package/dist/mod/record-keys.js +101 -0
- package/dist/mod/record-keys.js.map +1 -0
- package/dist/mod/registry-host.d.ts +639 -1
- package/dist/mod/registry-host.d.ts.map +1 -1
- package/dist/mod/registry-host.js +408 -1
- package/dist/mod/registry-host.js.map +1 -1
- package/dist/mod/save-blocks.d.ts +8 -3
- package/dist/mod/save-blocks.d.ts.map +1 -1
- package/dist/mod/save-blocks.js +153 -14
- package/dist/mod/save-blocks.js.map +1 -1
- package/dist/mon/bind.d.ts +5 -0
- package/dist/mon/bind.d.ts.map +1 -1
- package/dist/mon/bind.js +18 -13
- 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 +13 -9
- 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 +77 -24
- 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 +301 -0
- package/dist/mon/lore-file.js.map +1 -0
- package/dist/mon/lore.d.ts +15 -3
- package/dist/mon/lore.d.ts.map +1 -1
- package/dist/mon/lore.js +19 -6
- 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 +17 -11
- package/dist/mon/predicate.js.map +1 -1
- package/dist/mon/project-mon.d.ts +64 -7
- package/dist/mon/project-mon.d.ts.map +1 -1
- package/dist/mon/project-mon.js +61 -9
- package/dist/mon/project-mon.js.map +1 -1
- package/dist/mon/spell-declarations.d.ts +44 -0
- package/dist/mon/spell-declarations.d.ts.map +1 -0
- package/dist/mon/spell-declarations.js +57 -0
- package/dist/mon/spell-declarations.js.map +1 -0
- package/dist/mon/spell-registry.d.ts +136 -0
- package/dist/mon/spell-registry.d.ts.map +1 -0
- package/dist/mon/spell-registry.js +178 -0
- package/dist/mon/spell-registry.js.map +1 -0
- package/dist/mon/spell.js +2 -2
- package/dist/mon/spell.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 +23 -5
- package/dist/mon/types.d.ts.map +1 -1
- package/dist/mon/types.js +18 -1
- package/dist/mon/types.js.map +1 -1
- package/dist/msg.d.ts +66 -1
- package/dist/msg.d.ts.map +1 -1
- package/dist/msg.js +69 -1
- package/dist/msg.js.map +1 -1
- package/dist/obj/artifact-fake.d.ts +47 -15
- package/dist/obj/artifact-fake.d.ts.map +1 -1
- package/dist/obj/artifact-fake.js +47 -18
- package/dist/obj/artifact-fake.js.map +1 -1
- package/dist/obj/artifact-known.d.ts +4 -4
- package/dist/obj/artifact-known.js +3 -3
- package/dist/obj/bind.d.ts +25 -2
- package/dist/obj/bind.d.ts.map +1 -1
- package/dist/obj/bind.js +54 -13
- 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 +48 -5
- package/dist/obj/knowledge.d.ts.map +1 -1
- package/dist/obj/knowledge.js +171 -153
- 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 +16 -5
- package/dist/obj/make.d.ts.map +1 -1
- package/dist/obj/make.js +52 -30
- package/dist/obj/make.js.map +1 -1
- package/dist/obj/object-info.d.ts +11 -1
- package/dist/obj/object-info.d.ts.map +1 -1
- package/dist/obj/object-info.js +94 -8
- package/dist/obj/object-info.js.map +1 -1
- package/dist/obj/object.d.ts +50 -5
- package/dist/obj/object.d.ts.map +1 -1
- package/dist/obj/object.js +373 -149
- 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 +232 -66
- 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 +457 -403
- 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 +348 -221
- 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 +43 -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 +96 -0
- package/dist/parser.d.ts.map +1 -0
- package/dist/parser.js +116 -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 +3 -2
- package/dist/player/birth.d.ts.map +1 -1
- package/dist/player/birth.js +4 -3
- 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 +155 -0
- package/dist/player/options-file.d.ts.map +1 -0
- package/dist/player/options-file.js +295 -0
- package/dist/player/options-file.js.map +1 -0
- package/dist/player/options.d.ts +3 -2
- package/dist/player/options.d.ts.map +1 -1
- package/dist/player/options.js +3 -2
- 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 +12 -8
- package/dist/player/shape-lore.d.ts.map +1 -1
- package/dist/player/shape-lore.js +31 -15
- package/dist/player/shape-lore.js.map +1 -1
- package/dist/player/spell.d.ts.map +1 -1
- package/dist/player/spell.js +24 -2
- package/dist/player/spell.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/score/display.d.ts.map +1 -1
- package/dist/score/display.js +39 -18
- package/dist/score/display.js.map +1 -1
- package/dist/score/score.d.ts +7 -7
- package/dist/score/score.js +3 -3
- package/dist/score/types.d.ts +51 -0
- package/dist/score/types.d.ts.map +1 -1
- package/dist/score/types.js.map +1 -1
- package/dist/session/boot.d.ts +28 -2
- package/dist/session/boot.d.ts.map +1 -1
- package/dist/session/boot.js +43 -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 +727 -144
- package/dist/session/game.js.map +1 -1
- package/dist/session/save-migrate.d.ts +3 -3
- package/dist/session/save-migrate.d.ts.map +1 -1
- package/dist/session/save-migrate.js +505 -22
- package/dist/session/save-migrate.js.map +1 -1
- package/dist/session/save.d.ts +513 -36
- package/dist/session/save.d.ts.map +1 -1
- package/dist/session/save.js +864 -65
- package/dist/session/save.js.map +1 -1
- package/dist/sound/engine.d.ts +17 -0
- package/dist/sound/engine.d.ts.map +1 -1
- package/dist/sound/engine.js +55 -6
- package/dist/sound/engine.js.map +1 -1
- package/dist/sound/index.d.ts +2 -0
- package/dist/sound/index.d.ts.map +1 -1
- package/dist/sound/index.js +2 -0
- package/dist/sound/index.js.map +1 -1
- package/dist/sound/message-types.d.ts +89 -0
- package/dist/sound/message-types.d.ts.map +1 -0
- package/dist/sound/message-types.js +126 -0
- package/dist/sound/message-types.js.map +1 -0
- package/dist/sound/sound-registry.d.ts +93 -0
- package/dist/sound/sound-registry.d.ts.map +1 -0
- package/dist/sound/sound-registry.js +117 -0
- package/dist/sound/sound-registry.js.map +1 -0
- 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 +113 -15
- package/dist/store/store.d.ts.map +1 -1
- package/dist/store/store.js +213 -91
- package/dist/store/store.js.map +1 -1
- package/dist/store/transact.d.ts +37 -10
- package/dist/store/transact.d.ts.map +1 -1
- package/dist/store/transact.js +42 -23
- 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/glyph-table.d.ts +2 -2
- package/dist/visuals/glyph-table.js +2 -2
- package/dist/visuals/hallucination.d.ts +140 -0
- package/dist/visuals/hallucination.d.ts.map +1 -0
- package/dist/visuals/hallucination.js +122 -0
- package/dist/visuals/hallucination.js.map +1 -0
- package/dist/visuals/index.d.ts +2 -0
- package/dist/visuals/index.d.ts.map +1 -1
- package/dist/visuals/index.js +2 -0
- package/dist/visuals/index.js.map +1 -1
- package/dist/visuals/map-text.d.ts +13 -4
- package/dist/visuals/map-text.d.ts.map +1 -1
- package/dist/visuals/map-text.js +6 -5
- package/dist/visuals/map-text.js.map +1 -1
- package/dist/visuals/object-glyph.d.ts +61 -0
- package/dist/visuals/object-glyph.d.ts.map +1 -0
- package/dist/visuals/object-glyph.js +57 -0
- package/dist/visuals/object-glyph.js.map +1 -0
- package/dist/visuals/prefs.d.ts +174 -27
- package/dist/visuals/prefs.d.ts.map +1 -1
- package/dist/visuals/prefs.js +223 -46
- 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 +3 -2
- 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/cmd.ts +67 -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 +313 -167
- 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 +324 -27
- package/src/game/describe.ts +34 -4
- package/src/game/display.ts +359 -41
- package/src/game/dump-level.ts +4 -3
- package/src/game/effect-attack.ts +42 -30
- package/src/game/effect-detect.ts +45 -8
- package/src/game/effect-env.ts +8 -0
- package/src/game/effect-general.ts +115 -51
- package/src/game/effect-item.ts +168 -87
- package/src/game/effect-melee.ts +51 -18
- package/src/game/effect-monster.ts +55 -9
- package/src/game/effect-teleport.ts +183 -39
- package/src/game/effect-terrain.ts +39 -23
- package/src/game/equip-cmp.ts +513 -480
- package/src/game/floor.ts +74 -4
- package/src/game/gear.ts +228 -25
- package/src/game/harness.ts +12 -1
- package/src/game/ignore-cmd.ts +96 -8
- package/src/game/inscription-confirm.ts +15 -7
- package/src/game/known.ts +475 -85
- package/src/game/loop.ts +695 -670
- package/src/game/lore-color.ts +13 -1
- package/src/game/mon-cast.ts +39 -12
- package/src/game/mon-cmd.ts +98 -36
- package/src/game/mon-death.ts +14 -12
- package/src/game/mon-group.ts +9 -5
- package/src/game/mon-message.ts +362 -65
- package/src/game/mon-place.ts +15 -3
- package/src/game/mon-ranged.ts +14 -5
- package/src/game/mon-side.ts +20 -18
- package/src/game/monster-turn.ts +128 -91
- package/src/game/notice.ts +85 -0
- package/src/game/obj-cmd.ts +145 -39
- 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 -32
- package/src/game/poly.ts +107 -0
- package/src/game/project-cast.ts +72 -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 +93 -33
- 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 +121 -0
- package/src/game/quest.ts +48 -0
- package/src/game/ranged-cmd.ts +50 -14
- package/src/game/repeat.ts +147 -0
- package/src/game/shape-inspect.ts +166 -0
- package/src/game/spell-cmd.ts +39 -6
- package/src/game/spoil.ts +93 -40
- package/src/game/steal.ts +9 -4
- package/src/game/take-hit-hooks.ts +4 -11
- package/src/game/target-loop.ts +57 -18
- package/src/game/target.ts +18 -7
- package/src/game/ui-entry-registry.ts +159 -0
- package/src/game/ui-entry.ts +2531 -2075
- package/src/game/wizard.ts +128 -37
- package/src/game/world.ts +6 -0
- package/src/gen/cave.ts +3057 -2858
- package/src/gen/gen-monster.ts +11 -8
- package/src/gen/generate.ts +576 -523
- 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 +33 -10
- package/src/i18n/i18n.ts +492 -0
- package/src/i18n/text.ts +117 -0
- package/src/index.ts +57 -0
- package/src/mod/extension.ts +171 -0
- package/src/mod/hooks.ts +521 -521
- package/src/mod/ids.ts +239 -21
- package/src/mod/message-declarations.ts +293 -0
- package/src/mod/record-keys.ts +103 -0
- package/src/mod/registry-host.ts +1095 -1
- package/src/mod/save-blocks.ts +162 -15
- package/src/mon/bind.ts +28 -18
- package/src/mon/knowledge-groups.ts +13 -13
- package/src/mon/lore-describe.ts +96 -28
- package/src/mon/lore-file.ts +375 -0
- package/src/mon/lore.ts +19 -6
- package/src/mon/make.ts +4 -2
- package/src/mon/monster.ts +1 -1
- package/src/mon/predicate.ts +17 -11
- package/src/mon/project-mon.ts +88 -9
- package/src/mon/spell-declarations.ts +80 -0
- package/src/mon/spell-registry.ts +221 -0
- package/src/mon/spell.ts +2 -2
- 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 +38 -5
- package/src/msg.ts +83 -1
- package/src/obj/artifact-fake.ts +48 -18
- package/src/obj/artifact-known.ts +4 -4
- package/src/obj/bind.ts +56 -13
- 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 +293 -141
- package/src/obj/known-object.ts +126 -11
- package/src/obj/make.ts +56 -31
- package/src/obj/object-info.ts +104 -7
- package/src/obj/object.ts +403 -153
- package/src/obj/power.ts +298 -60
- package/src/obj/randart-build.ts +601 -459
- package/src/obj/randart-data.ts +427 -252
- 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 +214 -44
- 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 +40 -7
- package/src/obj/value.ts +26 -20
- package/src/parser.ts +125 -0
- package/src/player/bind.ts +5 -2
- package/src/player/birth.ts +4 -3
- package/src/player/calcs.ts +123 -42
- package/src/player/death.ts +78 -0
- package/src/player/options-file.ts +351 -0
- package/src/player/options.ts +3 -2
- package/src/player/player.ts +60 -4
- package/src/player/shape-lore.ts +40 -18
- package/src/player/spell.ts +31 -2
- package/src/player/timed.ts +14 -4
- package/src/player/types.ts +30 -4
- package/src/score/display.ts +38 -17
- package/src/score/score.ts +8 -8
- package/src/score/types.ts +52 -0
- package/src/session/boot.ts +101 -1
- package/src/session/game.ts +835 -167
- package/src/session/save-migrate.ts +598 -23
- package/src/session/save.ts +1177 -92
- package/src/sound/engine.ts +59 -4
- package/src/sound/index.ts +2 -0
- package/src/sound/message-types.ts +164 -0
- package/src/sound/sound-registry.ts +149 -0
- 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 +282 -77
- package/src/store/transact.ts +67 -26
- package/src/store/types.ts +3 -2
- package/src/version.ts +1 -1
- package/src/visuals/glyph-table.ts +2 -2
- package/src/visuals/hallucination.ts +200 -0
- package/src/visuals/index.ts +2 -0
- package/src/visuals/map-text.ts +6 -5
- package/src/visuals/object-glyph.ts +81 -0
- package/src/visuals/prefs.ts +1236 -981
- package/src/visuals/tile-prefs.ts +215 -183
- 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 +26 -22
- package/src/world/view.ts +11 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-feat.js","sourceRoot":"","sources":["../../src/game/project-feat.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"project-feat.js","sourceRoot":"","sources":["../../src/game/project-feat.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,6 +24,8 @@
|
|
|
24
24
|
*/
|
|
25
25
|
import type { Loc } from "../loc.js";
|
|
26
26
|
import type { Monster } from "../mon/monster.js";
|
|
27
|
+
import type { MonsterRace } from "../mon/types.js";
|
|
28
|
+
import type { MonHandler } from "../mon/project-mon.js";
|
|
27
29
|
import type { MonTimedMessageSink } from "../mon/timed.js";
|
|
28
30
|
import type { MonsterHitResult } from "../world/project.js";
|
|
29
31
|
import type { ProjectionInfo } from "../world/projection.js";
|
|
@@ -33,10 +35,12 @@ export interface ProjectMonsterHooks {
|
|
|
33
35
|
/**
|
|
34
36
|
* add_monster_message(mon, msg_code, delay): queue a message about the monster
|
|
35
37
|
* (by MON_MSG index). `delay` is upstream's third argument (what_delay,
|
|
36
|
-
* mon-msg.c:238), not a comma flag
|
|
37
|
-
*
|
|
38
|
+
* mon-msg.c:238), not a comma flag, and is REQUIRED - upstream writes it out
|
|
39
|
+
* at every call site, and a default here would silently move a line from the
|
|
40
|
+
* delayed pass into the immediate one. When `damage` is given the caller must
|
|
41
|
+
* use add_monster_message_show_damage (mon-msg.c:288) and append " (N)".
|
|
38
42
|
*/
|
|
39
|
-
message?: (mon: Monster, msg: number, delay
|
|
43
|
+
message?: (mon: Monster, msg: number, delay: boolean, damage?: number) => void;
|
|
40
44
|
/**
|
|
41
45
|
* message_pain: a graded "it is hurt" message from the damage amount. With
|
|
42
46
|
* `showDamage` the caller must use message_pain_show_damage (mon-msg.c:132).
|
|
@@ -65,18 +69,28 @@ export interface ProjectMonsterHooks {
|
|
|
65
69
|
/** multiply_monster (PROJ_MON_CLONE). */
|
|
66
70
|
multiplyMonster?: (mon: Monster) => boolean;
|
|
67
71
|
/**
|
|
68
|
-
* poly_race
|
|
69
|
-
*
|
|
72
|
+
* poly_race (project-mon.c L45): the race to polymorph into. Returns the race
|
|
73
|
+
* it was GIVEN when nothing legal turned up, which is upstream's "no change"
|
|
74
|
+
* signal - so a hook that cannot pick returns its argument, not null.
|
|
75
|
+
*
|
|
76
|
+
* Split from the swap below because upstream queues MON_MSG_CHANGE between
|
|
77
|
+
* the two (L1223-1224), naming the old monster before deleting it. A single
|
|
78
|
+
* combined hook cannot reproduce that order.
|
|
70
79
|
*/
|
|
71
|
-
|
|
80
|
+
polyRace?: (race: MonsterRace) => MonsterRace;
|
|
81
|
+
/**
|
|
82
|
+
* delete_monster_idx + place_new_monster (project-mon.c L1225-1229): swap the
|
|
83
|
+
* monster for one of `race` on the same grid. Returns whatever now stands
|
|
84
|
+
* there - null when placement failed, since the old monster is gone by then
|
|
85
|
+
* either way and the caller must stop using it.
|
|
86
|
+
*/
|
|
87
|
+
replaceMonster?: (mon: Monster, race: MonsterRace) => Monster | null;
|
|
72
88
|
/** effect_simple EF_TELEPORT: teleport the monster up to `distance` grids. */
|
|
73
89
|
teleport?: (mon: Monster, distance: number) => void;
|
|
74
90
|
/** thrust_away(centre, target, gridsAway): knock a monster back (PROJ_FORCE). */
|
|
75
91
|
thrustAway?: (centre: Loc, target: Loc, gridsAway: number) => void;
|
|
76
92
|
/** update_mon + square_light_spot + PR_MONSTER: refresh a surviving monster. */
|
|
77
93
|
onUpdate?: (mon: Monster) => void;
|
|
78
|
-
/** clear the player's TMD_COVERTRACKS once player damage lands. */
|
|
79
|
-
coverTracksBroken?: () => void;
|
|
80
94
|
}
|
|
81
95
|
/** The projection source, resolved for the driver. */
|
|
82
96
|
export interface ProjectMonsterSource {
|
|
@@ -95,6 +109,15 @@ export interface ProjectMonsterCtx {
|
|
|
95
109
|
projections: readonly ProjectionInfo[];
|
|
96
110
|
origin: ProjectMonsterSource;
|
|
97
111
|
hooks: ProjectMonsterHooks;
|
|
112
|
+
/**
|
|
113
|
+
* project_m's type-handler table, keyed by projection CODE.
|
|
114
|
+
*
|
|
115
|
+
* SUPPLIED BY wireGame, by identity, from `GameState.projectionHandlers` -
|
|
116
|
+
* exactly as `featHandlers`, `objHandlers` and `playerHandlers` are on the
|
|
117
|
+
* other three sides. Absent means core's `MONSTER_HANDLERS`, dispatched by
|
|
118
|
+
* PROJ index as it always was, which is what every parity vector replays.
|
|
119
|
+
*/
|
|
120
|
+
monHandlers?: ReadonlyMap<string, MonHandler>;
|
|
98
121
|
}
|
|
99
122
|
/**
|
|
100
123
|
* project_m for one grid: affect the monster (if any) in `grid` with projection
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-monster.d.ts","sourceRoot":"","sources":["../../src/game/project-monster.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAGH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"project-monster.d.ts","sourceRoot":"","sources":["../../src/game/project-monster.ts"],"names":[],"mappings":"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"}
|
|
@@ -28,7 +28,8 @@ import { newMonProjectContext, runMonsterHandler } from "../mon/project-mon.js";
|
|
|
28
28
|
import { monsterWake, monTakeHit } from "../mon/take-hit.js";
|
|
29
29
|
import { MON_TMD_FLG_NOTIFY, monIncTimed } from "../mon/timed.js";
|
|
30
30
|
import { PROJECT } from "../world/project.js";
|
|
31
|
-
import {
|
|
31
|
+
import { projectionCodeFor } from "../world/projection.js";
|
|
32
|
+
import { arenaInterceptDeath, deleteMonster, gameTakeHitHooks } from "./context.js";
|
|
32
33
|
const NO_HIT = { didHit: false, wasObvious: false };
|
|
33
34
|
/**
|
|
34
35
|
* project_m for one grid: affect the monster (if any) in `grid` with projection
|
|
@@ -68,6 +69,10 @@ export function projectMonster(pctx, dist, grid, dam, typ, flg) {
|
|
|
68
69
|
r: dist,
|
|
69
70
|
grid,
|
|
70
71
|
charm: origin.charm,
|
|
72
|
+
/* player->upkeep->health_who == mon (project-mon.c:929). PROJ_MON_HEAL's
|
|
73
|
+
* redraw and its "looks healthier" message are an if/ELSE, so a tracked
|
|
74
|
+
* monster - the one you just hit, or your target - is healed silently. */
|
|
75
|
+
healthTracked: state.healthWho === mon,
|
|
71
76
|
seen,
|
|
72
77
|
obvious: (flg & PROJECT.AWARE) !== 0,
|
|
73
78
|
hooks: {
|
|
@@ -94,8 +99,16 @@ export function projectMonster(pctx, dist, grid, dam, typ, flg) {
|
|
|
94
99
|
const info = pctx.projections[typ];
|
|
95
100
|
if (info && info.obvious && ctx.seen)
|
|
96
101
|
ctx.obvious = true;
|
|
97
|
-
/* Run the type handler (accumulates damage / timers / poly / teleport).
|
|
98
|
-
|
|
102
|
+
/* Run the type handler (accumulates damage / timers / poly / teleport).
|
|
103
|
+
* With a wired registry the dispatch is by projection CODE, so a mod's own
|
|
104
|
+
* projection - appended past the 56 compiled PROJ slots - reaches a handler
|
|
105
|
+
* at all, and a core code can be replaced or wrapped. */
|
|
106
|
+
runMonsterHandler(ctx, pctx.monHandlers
|
|
107
|
+
? {
|
|
108
|
+
code: projectionCodeFor(typ, pctx.projections),
|
|
109
|
+
monHandlers: pctx.monHandlers,
|
|
110
|
+
}
|
|
111
|
+
: {});
|
|
99
112
|
/* PROJ_FORCE thrust happens in the handler upstream, before wake / damage. */
|
|
100
113
|
if (ctx.thrustGridsAway > 0) {
|
|
101
114
|
hooks.thrustAway?.(origin.grid, grid, ctx.thrustGridsAway);
|
|
@@ -110,10 +123,11 @@ export function projectMonster(pctx, dist, grid, dam, typ, flg) {
|
|
|
110
123
|
const monDied = origin.monster !== 0
|
|
111
124
|
? monsterAttack(pctx, ctx, mIdx, seen)
|
|
112
125
|
: playerAttack(pctx, ctx, mIdx, seen);
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
126
|
+
/* The side-effect appliers can change the monster (polymorph) or leave the
|
|
127
|
+
* grid empty when the replacement could not be placed. */
|
|
128
|
+
const finalMon = monDied
|
|
129
|
+
? null
|
|
130
|
+
: applySideEffects(pctx, ctx, typ, flg, seen);
|
|
117
131
|
if (finalMon && !monDied)
|
|
118
132
|
hooks.onUpdate?.(finalMon);
|
|
119
133
|
return {
|
|
@@ -144,20 +158,18 @@ function playerAttack(pctx, ctx, mIdx, seen) {
|
|
|
144
158
|
if (displayDam)
|
|
145
159
|
hooks.message?.(mon, dieMsg, false, dam);
|
|
146
160
|
else
|
|
147
|
-
hooks.message?.(mon, dieMsg);
|
|
161
|
+
hooks.message?.(mon, dieMsg, false);
|
|
148
162
|
}
|
|
149
163
|
let died = false;
|
|
150
164
|
let fear = false;
|
|
151
165
|
if (dam) {
|
|
152
166
|
const res = monTakeHit(state.rng, mon, dam, "", {
|
|
167
|
+
...gameTakeHitHooks(state, mon),
|
|
153
168
|
onKill: (m) => {
|
|
154
169
|
hooks.onKill?.(m);
|
|
155
170
|
deleteMonster(state, mIdx);
|
|
156
171
|
},
|
|
157
172
|
...(hooks.becomeAware ? { becomeAware: hooks.becomeAware } : {}),
|
|
158
|
-
...(hooks.coverTracksBroken
|
|
159
|
-
? { coverTracksBroken: hooks.coverTracksBroken }
|
|
160
|
-
: {}),
|
|
161
173
|
/* Single combat: the kill waits for the arena exit. */
|
|
162
174
|
...(state.arenaLevel
|
|
163
175
|
? { onArenaDeath: (m) => void arenaInterceptDeath(state, m) }
|
|
@@ -174,7 +186,7 @@ function playerAttack(pctx, ctx, mIdx, seen) {
|
|
|
174
186
|
if (displayDam)
|
|
175
187
|
hooks.message?.(mon, ctx.hurtMsg, false, dam);
|
|
176
188
|
else
|
|
177
|
-
hooks.message?.(mon, ctx.hurtMsg);
|
|
189
|
+
hooks.message?.(mon, ctx.hurtMsg, false);
|
|
178
190
|
}
|
|
179
191
|
else if (dam > 0) {
|
|
180
192
|
hooks.messagePain?.(mon, dam, displayDam);
|
|
@@ -201,14 +213,14 @@ function monsterAttack(pctx, ctx, mIdx, seen) {
|
|
|
201
213
|
if (mon.hp < 0) {
|
|
202
214
|
hooks.revertShape?.(mon);
|
|
203
215
|
const dieMsg = seen ? ctx.dieMsg : MON_MSG.MORIA_DEATH;
|
|
204
|
-
hooks.message?.(mon, dieMsg);
|
|
216
|
+
hooks.message?.(mon, dieMsg, false);
|
|
205
217
|
hooks.onMonsterDeath?.(mon);
|
|
206
218
|
deleteMonster(state, mIdx);
|
|
207
219
|
return true;
|
|
208
220
|
}
|
|
209
221
|
if (!monsterIsCamouflaged(mon)) {
|
|
210
222
|
if (ctx.hurtMsg !== MON_MSG.NONE && seen) {
|
|
211
|
-
hooks.message?.(mon, ctx.hurtMsg);
|
|
223
|
+
hooks.message?.(mon, ctx.hurtMsg, false);
|
|
212
224
|
}
|
|
213
225
|
else if (dam > 0) {
|
|
214
226
|
hooks.messagePain?.(mon, dam);
|
|
@@ -229,8 +241,8 @@ function applySideEffects(pctx, ctx, typ, _flg, seen) {
|
|
|
229
241
|
* (project-mon.c L1197: monster_is_unique(mon) || player->arena_level). PR3. */
|
|
230
242
|
if (monsterIsUnique(mon) || state.arenaLevel) {
|
|
231
243
|
if (seen)
|
|
232
|
-
hooks.message?.(mon, MON_MSG.UNAFFECTED);
|
|
233
|
-
return;
|
|
244
|
+
hooks.message?.(mon, MON_MSG.UNAFFECTED, false);
|
|
245
|
+
return mon;
|
|
234
246
|
}
|
|
235
247
|
if (seen)
|
|
236
248
|
ctx.obvious = true;
|
|
@@ -240,18 +252,38 @@ function applySideEffects(pctx, ctx, typ, _flg, seen) {
|
|
|
240
252
|
: state.rng.randint1(90);
|
|
241
253
|
if (mon.race.level > savelvl) {
|
|
242
254
|
if (seen) {
|
|
243
|
-
hooks.message?.(mon, typ === PROJ.MON_POLY ? MON_MSG.MAINTAIN_SHAPE : MON_MSG.UNAFFECTED);
|
|
255
|
+
hooks.message?.(mon, typ === PROJ.MON_POLY ? MON_MSG.MAINTAIN_SHAPE : MON_MSG.UNAFFECTED, false);
|
|
244
256
|
}
|
|
245
|
-
return;
|
|
257
|
+
return mon;
|
|
246
258
|
}
|
|
247
|
-
|
|
248
|
-
|
|
259
|
+
/* `old` is the monster's REAL race: a shapechanged monster polymorphs from
|
|
260
|
+
* what it is underneath, not from the shape it is wearing (L1215). */
|
|
261
|
+
const old = mon.originalRace ?? mon.race;
|
|
262
|
+
const next = hooks.polyRace?.(old) ?? old;
|
|
263
|
+
if (next !== old) {
|
|
264
|
+
/* "Report the polymorph before changing the monster" (L1222-1224): the
|
|
265
|
+
* message names the OLD monster, and must be queued while it still
|
|
266
|
+
* exists so it precedes anything the swap itself queues. */
|
|
249
267
|
if (seen)
|
|
250
|
-
hooks.message?.(mon, MON_MSG.CHANGE);
|
|
251
|
-
|
|
268
|
+
hooks.message?.(mon, MON_MSG.CHANGE, false);
|
|
269
|
+
const newMon = hooks.replaceMonster?.(mon, next) ?? null;
|
|
270
|
+
/* ctx.mon stays non-null for the handlers that read it; the REPLACEMENT
|
|
271
|
+
* is returned instead, because upstream's context->mon can be NULL here
|
|
272
|
+
* (square_monster on a failed placement, L1229) and widening the shared
|
|
273
|
+
* context to match would make every handler in project-mon.ts nullable
|
|
274
|
+
* for a case none of them can reach. */
|
|
275
|
+
if (newMon)
|
|
276
|
+
ctx.mon = newMon;
|
|
277
|
+
/* "Note the appearance of the new one if it is visible but the old one
|
|
278
|
+
* wasn't" (L1232-1238). Absent until now, so a polymorph out of an unseen
|
|
279
|
+
* monster into a visible one said nothing at all. */
|
|
280
|
+
if (!seen && newMon && monsterIsVisible(newMon)) {
|
|
281
|
+
hooks.message?.(newMon, MON_MSG.APPEAR, false);
|
|
282
|
+
}
|
|
283
|
+
return newMon;
|
|
252
284
|
}
|
|
253
285
|
else if (seen) {
|
|
254
|
-
hooks.message?.(mon, MON_MSG.MAINTAIN_SHAPE);
|
|
286
|
+
hooks.message?.(mon, MON_MSG.MAINTAIN_SHAPE, false);
|
|
255
287
|
}
|
|
256
288
|
}
|
|
257
289
|
else if (ctx.teleportDistance > 0) {
|
|
@@ -268,5 +300,6 @@ function applySideEffects(pctx, ctx, typ, _flg, seen) {
|
|
|
268
300
|
}
|
|
269
301
|
}
|
|
270
302
|
}
|
|
303
|
+
return ctx.mon;
|
|
271
304
|
}
|
|
272
305
|
//# sourceMappingURL=project-monster.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-monster.js","sourceRoot":"","sources":["../../src/game/project-monster.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"project-monster.js","sourceRoot":"","sources":["../../src/game/project-monster.ts"],"names":[],"mappings":"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"}
|
|
@@ -25,6 +25,7 @@
|
|
|
25
25
|
*/
|
|
26
26
|
import type { Loc } from "../loc.js";
|
|
27
27
|
import type { GameObject } from "../obj/object.js";
|
|
28
|
+
import type { ProjectionInfo } from "../world/projection.js";
|
|
28
29
|
import type { GameState } from "./context.js";
|
|
29
30
|
import { gearToLabel } from "./gear.js";
|
|
30
31
|
/**
|
|
@@ -36,6 +37,20 @@ export { gearToLabel };
|
|
|
36
37
|
/** The world seams project_o/project_f need beyond the GameState. */
|
|
37
38
|
export interface ProjectWorldEnv {
|
|
38
39
|
msg?(text: string): void;
|
|
40
|
+
/**
|
|
41
|
+
* The bound projection table, so a `typ` can be resolved to the CODE both
|
|
42
|
+
* handler registries are keyed by. Without it only the compiled-in 56
|
|
43
|
+
* resolve - which is every projection core ships; a mod's projection needs
|
|
44
|
+
* this to reach its own handler. `castProjection` supplies it.
|
|
45
|
+
*/
|
|
46
|
+
projections?: readonly ProjectionInfo[];
|
|
47
|
+
/**
|
|
48
|
+
* The object-handler table to dispatch through, defaulting to
|
|
49
|
+
* PROJECT_OBJ_HANDLERS. Supplied by wireGame from
|
|
50
|
+
* `GameState.projectionHandlers`, by identity, exactly as `featHandlers` is -
|
|
51
|
+
* see that field and game/projection-handlers.ts.
|
|
52
|
+
*/
|
|
53
|
+
objHandlers?: ReadonlyMap<string, ProjectObjHandler>;
|
|
39
54
|
/**
|
|
40
55
|
* protected_obj (project-obj.c L537): the object that created the
|
|
41
56
|
* projection, which must not destroy itself. Absent when the projection has
|
|
@@ -44,6 +59,53 @@ export interface ProjectWorldEnv {
|
|
|
44
59
|
*/
|
|
45
60
|
protectedObj?: GameObject;
|
|
46
61
|
}
|
|
62
|
+
/** One handler outcome (project_object_handler_context_t's out fields). */
|
|
63
|
+
interface ObjHandlerResult {
|
|
64
|
+
doKill: boolean;
|
|
65
|
+
ignore: boolean;
|
|
66
|
+
noteKill: string | null;
|
|
67
|
+
}
|
|
68
|
+
/** What an object handler is handed. Mirrors project_object_handler_context_t. */
|
|
69
|
+
export interface ProjectObjCtx {
|
|
70
|
+
/** The object being affected. */
|
|
71
|
+
readonly obj: GameObject;
|
|
72
|
+
/** The PROJ_ value, for a handler that wants it. */
|
|
73
|
+
readonly typ: number;
|
|
74
|
+
/** The out fields, written in place exactly as upstream's context is. */
|
|
75
|
+
readonly out: ObjHandlerResult;
|
|
76
|
+
}
|
|
77
|
+
/** One projection's effect on an object. Writes `ctx.out`; returns nothing. */
|
|
78
|
+
export type ProjectObjHandler = (ctx: ProjectObjCtx) => void;
|
|
79
|
+
/**
|
|
80
|
+
* project_o's switch, as a table keyed by projection CODE.
|
|
81
|
+
*
|
|
82
|
+
* Same rule as PROJECT_FEAT_HANDLERS and for the same reason: a PROJ_ number is
|
|
83
|
+
* an index into a compiled-in enum and a mod's projection is appended past the
|
|
84
|
+
* end of it, so only the `code` is a stable name. See project-feat.ts.
|
|
85
|
+
*
|
|
86
|
+
* Only the 11 codes with an object effect are here. Every other projection has
|
|
87
|
+
* an empty stub upstream, so absence IS the faithful answer rather than an
|
|
88
|
+
* omission - and `project-obj-vectors.json` records the outcome for all 56
|
|
89
|
+
* codes, so a code that quietly gained or lost an effect fails there.
|
|
90
|
+
*
|
|
91
|
+
* PLASMA and METEOR call two elements IN ORDER, and the order is load-bearing:
|
|
92
|
+
* the second `elemental` overwrites `noteKill` when it also hits, so PLASMA on
|
|
93
|
+
* an object that hates both fire and electricity reports "is destroyed", not
|
|
94
|
+
* "burns up".
|
|
95
|
+
*/
|
|
96
|
+
export declare const PROJECT_OBJ_HANDLERS: ReadonlyMap<string, ProjectObjHandler>;
|
|
97
|
+
/**
|
|
98
|
+
* Run the object handler for one projection type.
|
|
99
|
+
*
|
|
100
|
+
* This was an 11-case switch until 2026-08-08. KILL_TRAP's chest unlock is NOT
|
|
101
|
+
* here and never was: it mutates the object and messages instead of destroying
|
|
102
|
+
* it, so projectObject handles it ahead of this dispatch. That exception is
|
|
103
|
+
* asserted rather than left implicit - see project-obj-vectors.test.ts.
|
|
104
|
+
*
|
|
105
|
+
* Exported because it is the entry point the recorded vectors replay through,
|
|
106
|
+
* and because a caller with its own table needs somewhere to pass it.
|
|
107
|
+
*/
|
|
108
|
+
export declare function runObjectHandler(typ: number, obj: GameObject, env?: ProjectWorldEnv): ObjHandlerResult;
|
|
47
109
|
/**
|
|
48
110
|
* project_o: affect every object in the pile at `grid` (PROJECT_ITEM).
|
|
49
111
|
* Returns whether anything the player can see happened.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-obj.d.ts","sourceRoot":"","sources":["../../src/game/project-obj.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"project-obj.d.ts","sourceRoot":"","sources":["../../src/game/project-obj.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAIrC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAMnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAI9C,OAAO,EAAoB,WAAW,EAAE,MAAM,WAAW,CAAC;AAE1D;;;;GAIG;AACH,OAAO,EAAE,WAAW,EAAE,CAAC;AAEvB,qEAAqE;AACrE,MAAM,WAAW,eAAe;IAC9B,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,SAAS,cAAc,EAAE,CAAC;IACxC;;;;;OAKG;IACH,WAAW,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IACrD;;;;;OAKG;IACH,YAAY,CAAC,EAAE,UAAU,CAAC;CAC3B;AAOD,2EAA2E;AAC3E,UAAU,gBAAgB;IACxB,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAkBD,kFAAkF;AAClF,MAAM,WAAW,aAAa;IAC5B,iCAAiC;IACjC,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC;IACzB,oDAAoD;IACpD,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,yEAAyE;IACzE,QAAQ,CAAC,GAAG,EAAE,gBAAgB,CAAC;CAChC;AAED,+EAA+E;AAC/E,MAAM,MAAM,iBAAiB,GAAG,CAAC,GAAG,EAAE,aAAa,KAAK,IAAI,CAAC;AAS7D;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,oBAAoB,EAAE,WAAW,CAAC,MAAM,EAAE,iBAAiB,CAgCpE,CAAC;AAEL;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,UAAU,EACf,GAAG,GAAE,eAAoB,GACxB,gBAAgB,CAMlB;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,SAAS,EAChB,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,GAAG,EACT,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,EACX,GAAG,GAAE,eAAoB,GACxB,OAAO,CA+DT;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CACzB,KAAK,EAAE,SAAS,EAChB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACb,GAAG,GAAE,eAAoB,GACxB,MAAM,CA+ER"}
|
package/dist/game/project-obj.js
CHANGED
|
@@ -23,14 +23,17 @@
|
|
|
23
23
|
* stands in for the obj->known visibility half, matching the rest of this
|
|
24
24
|
* driver (the persistent floor twin is game/known.ts' reduced glyph memory).
|
|
25
25
|
*/
|
|
26
|
+
import { locEq } from "../loc.js";
|
|
26
27
|
import { ELEM, PROJ } from "../generated/index.js";
|
|
27
28
|
import { EL_INFO_HATES, EL_INFO_IGNORE } from "../obj/types.js";
|
|
28
29
|
import { tvalIsAmmo, tvalIsArmor, tvalIsRod, tvalIsWeapon } from "../obj/object.js";
|
|
29
30
|
import { isLockedChest, unlockChest } from "../obj/chest.js";
|
|
30
31
|
import { ODESC } from "../obj/desc.js";
|
|
31
32
|
import { squareIsSeen } from "../world/view.js";
|
|
33
|
+
import { projectionCodeFor } from "../world/projection.js";
|
|
32
34
|
import { describeObject } from "./describe.js";
|
|
33
35
|
import { floorExcise, floorPile } from "./floor.js";
|
|
36
|
+
import { cmdDisableRepeatFloorItem } from "./repeat.js";
|
|
34
37
|
import { gearObjectForUse, gearToLabel } from "./gear.js";
|
|
35
38
|
/**
|
|
36
39
|
* gear_to_label (obj-gear.c:443) lives in game/gear.ts, beside the Gear it reads.
|
|
@@ -51,53 +54,75 @@ function elemental(obj, out, element, singular, plural) {
|
|
|
51
54
|
out.ignore = (info.flags & EL_INFO_IGNORE) !== 0;
|
|
52
55
|
}
|
|
53
56
|
}
|
|
54
|
-
/**
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
57
|
+
/** An elemental arm: destruction gated by that element's HATES/IGNORE bits. */
|
|
58
|
+
const hates = (element, singular, plural) => ({ obj, out }) => {
|
|
59
|
+
elemental(obj, out, element, singular, plural);
|
|
60
|
+
};
|
|
61
|
+
/**
|
|
62
|
+
* project_o's switch, as a table keyed by projection CODE.
|
|
63
|
+
*
|
|
64
|
+
* Same rule as PROJECT_FEAT_HANDLERS and for the same reason: a PROJ_ number is
|
|
65
|
+
* an index into a compiled-in enum and a mod's projection is appended past the
|
|
66
|
+
* end of it, so only the `code` is a stable name. See project-feat.ts.
|
|
67
|
+
*
|
|
68
|
+
* Only the 11 codes with an object effect are here. Every other projection has
|
|
69
|
+
* an empty stub upstream, so absence IS the faithful answer rather than an
|
|
70
|
+
* omission - and `project-obj-vectors.json` records the outcome for all 56
|
|
71
|
+
* codes, so a code that quietly gained or lost an effect fails there.
|
|
72
|
+
*
|
|
73
|
+
* PLASMA and METEOR call two elements IN ORDER, and the order is load-bearing:
|
|
74
|
+
* the second `elemental` overwrites `noteKill` when it also hits, so PLASMA on
|
|
75
|
+
* an object that hates both fire and electricity reports "is destroyed", not
|
|
76
|
+
* "burns up".
|
|
77
|
+
*/
|
|
78
|
+
export const PROJECT_OBJ_HANDLERS = new Map([
|
|
79
|
+
["ACID", hates(ELEM.ACID, "melts", "melt")],
|
|
80
|
+
["ELEC", hates(ELEM.ELEC, "is destroyed", "are destroyed")],
|
|
81
|
+
["FIRE", hates(ELEM.FIRE, "burns up", "burn up")],
|
|
82
|
+
["COLD", hates(ELEM.COLD, "shatters", "shatter")],
|
|
83
|
+
["SOUND", hates(ELEM.SOUND, "shatters", "shatter")],
|
|
84
|
+
["SHARD", hates(ELEM.SHARD, "shatters", "shatter")],
|
|
85
|
+
["ICE", hates(ELEM.ICE, "shatters", "shatter")],
|
|
86
|
+
["FORCE", hates(ELEM.FORCE, "shatters", "shatter")],
|
|
87
|
+
[
|
|
88
|
+
"PLASMA",
|
|
89
|
+
({ obj, out }) => {
|
|
83
90
|
elemental(obj, out, ELEM.FIRE, "burns up", "burn up");
|
|
84
91
|
elemental(obj, out, ELEM.ELEC, "is destroyed", "are destroyed");
|
|
85
|
-
|
|
86
|
-
|
|
92
|
+
},
|
|
93
|
+
],
|
|
94
|
+
[
|
|
95
|
+
"METEOR",
|
|
96
|
+
({ obj, out }) => {
|
|
87
97
|
elemental(obj, out, ELEM.FIRE, "burns up", "burn up");
|
|
88
98
|
elemental(obj, out, ELEM.COLD, "shatters", "shatter");
|
|
89
|
-
|
|
90
|
-
|
|
99
|
+
},
|
|
100
|
+
],
|
|
101
|
+
[
|
|
102
|
+
"MANA",
|
|
103
|
+
({ obj, out }) => {
|
|
91
104
|
/* Mana -- destroys everything. */
|
|
92
105
|
out.doKill = true;
|
|
93
106
|
out.noteKill = verbAgree(obj.number, "is destroyed", "are destroyed");
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
107
|
+
},
|
|
108
|
+
],
|
|
109
|
+
]);
|
|
110
|
+
/**
|
|
111
|
+
* Run the object handler for one projection type.
|
|
112
|
+
*
|
|
113
|
+
* This was an 11-case switch until 2026-08-08. KILL_TRAP's chest unlock is NOT
|
|
114
|
+
* here and never was: it mutates the object and messages instead of destroying
|
|
115
|
+
* it, so projectObject handles it ahead of this dispatch. That exception is
|
|
116
|
+
* asserted rather than left implicit - see project-obj-vectors.test.ts.
|
|
117
|
+
*
|
|
118
|
+
* Exported because it is the entry point the recorded vectors replay through,
|
|
119
|
+
* and because a caller with its own table needs somewhere to pass it.
|
|
120
|
+
*/
|
|
121
|
+
export function runObjectHandler(typ, obj, env = {}) {
|
|
122
|
+
const out = { doKill: false, ignore: false, noteKill: null };
|
|
123
|
+
const code = projectionCodeFor(typ, env.projections);
|
|
124
|
+
const handler = code === undefined ? undefined : (env.objHandlers ?? PROJECT_OBJ_HANDLERS).get(code);
|
|
125
|
+
handler?.({ obj, typ, out });
|
|
101
126
|
return out;
|
|
102
127
|
}
|
|
103
128
|
/**
|
|
@@ -123,7 +148,7 @@ export function projectObject(state, _r, grid, _dam, typ, env = {}) {
|
|
|
123
148
|
}
|
|
124
149
|
continue;
|
|
125
150
|
}
|
|
126
|
-
const { doKill: rawKill, ignore, noteKill } = runObjectHandler(typ, obj);
|
|
151
|
+
const { doKill: rawKill, ignore, noteKill } = runObjectHandler(typ, obj, env);
|
|
127
152
|
/* protected_obj never destroys itself. */
|
|
128
153
|
const doKill = rawKill && obj !== env.protectedObj;
|
|
129
154
|
if (!doKill)
|
|
@@ -153,6 +178,12 @@ export function projectObject(state, _r, grid, _dam, typ, env = {}) {
|
|
|
153
178
|
if (observed && noteKill) {
|
|
154
179
|
env.msg?.(`The ${describeObject(state, obj, ODESC.BASE)} ${noteKill}!`);
|
|
155
180
|
}
|
|
181
|
+
/* "Prevent command repetition, if necessary" (project-obj.c:573-576):
|
|
182
|
+
* gated on the destroyed object being on the PLAYER's own grid, which is
|
|
183
|
+
* the only pile a remembered args.floor can index. */
|
|
184
|
+
if (locEq(grid, state.actor.grid)) {
|
|
185
|
+
cmdDisableRepeatFloorItem(state.actor.player);
|
|
186
|
+
}
|
|
156
187
|
floorExcise(state, grid, obj);
|
|
157
188
|
}
|
|
158
189
|
}
|