@rpgm-tools/neo-angband-core 0.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.md +43 -0
- package/README.md +80 -0
- package/dist/agent/act.d.ts +22 -0
- package/dist/agent/act.d.ts.map +1 -0
- package/dist/agent/act.js +88 -0
- package/dist/agent/act.js.map +1 -0
- package/dist/agent/controller.d.ts +34 -0
- package/dist/agent/controller.d.ts.map +1 -0
- package/dist/agent/controller.js +90 -0
- package/dist/agent/controller.js.map +1 -0
- package/dist/agent/events.d.ts +27 -0
- package/dist/agent/events.d.ts.map +1 -0
- package/dist/agent/events.js +31 -0
- package/dist/agent/events.js.map +1 -0
- package/dist/agent/index.d.ts +17 -0
- package/dist/agent/index.d.ts.map +1 -0
- package/dist/agent/index.js +15 -0
- package/dist/agent/index.js.map +1 -0
- package/dist/agent/perceive.d.ts +21 -0
- package/dist/agent/perceive.d.ts.map +1 -0
- package/dist/agent/perceive.js +386 -0
- package/dist/agent/perceive.js.map +1 -0
- package/dist/agent/types.d.ts +436 -0
- package/dist/agent/types.d.ts.map +1 -0
- package/dist/agent/types.js +63 -0
- package/dist/agent/types.js.map +1 -0
- package/dist/bitflag.d.ts +199 -0
- package/dist/bitflag.d.ts.map +1 -0
- package/dist/bitflag.js +478 -0
- package/dist/bitflag.js.map +1 -0
- package/dist/cmd.d.ts +164 -0
- package/dist/cmd.d.ts.map +1 -0
- package/dist/cmd.js +350 -0
- package/dist/cmd.js.map +1 -0
- package/dist/color.d.ts +104 -0
- package/dist/color.d.ts.map +1 -0
- package/dist/color.js +240 -0
- package/dist/color.js.map +1 -0
- package/dist/combat/brand-slay.d.ts +119 -0
- package/dist/combat/brand-slay.d.ts.map +1 -0
- package/dist/combat/brand-slay.js +264 -0
- package/dist/combat/brand-slay.js.map +1 -0
- package/dist/combat/hit.d.ts +198 -0
- package/dist/combat/hit.d.ts.map +1 -0
- package/dist/combat/hit.js +310 -0
- package/dist/combat/hit.js.map +1 -0
- package/dist/combat/index.d.ts +15 -0
- package/dist/combat/index.d.ts.map +1 -0
- package/dist/combat/index.js +15 -0
- package/dist/combat/index.js.map +1 -0
- package/dist/combat/melee.d.ts +261 -0
- package/dist/combat/melee.d.ts.map +1 -0
- package/dist/combat/melee.js +402 -0
- package/dist/combat/melee.js.map +1 -0
- package/dist/combat/mon-melee.d.ts +233 -0
- package/dist/combat/mon-melee.d.ts.map +1 -0
- package/dist/combat/mon-melee.js +883 -0
- package/dist/combat/mon-melee.js.map +1 -0
- package/dist/combat/ranged.d.ts +89 -0
- package/dist/combat/ranged.d.ts.map +1 -0
- package/dist/combat/ranged.js +253 -0
- package/dist/combat/ranged.js.map +1 -0
- package/dist/constants.d.ts +134 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +171 -0
- package/dist/constants.js.map +1 -0
- package/dist/dice.d.ts +91 -0
- package/dist/dice.d.ts.map +1 -0
- package/dist/dice.js +424 -0
- package/dist/dice.js.map +1 -0
- package/dist/effects/effect-choice.d.ts +15 -0
- package/dist/effects/effect-choice.d.ts.map +1 -0
- package/dist/effects/effect-choice.js +18 -0
- package/dist/effects/effect-choice.js.map +1 -0
- package/dist/effects/effect-info.d.ts +124 -0
- package/dist/effects/effect-info.d.ts.map +1 -0
- package/dist/effects/effect-info.js +706 -0
- package/dist/effects/effect-info.js.map +1 -0
- package/dist/effects/effect.d.ts +165 -0
- package/dist/effects/effect.d.ts.map +1 -0
- package/dist/effects/effect.js +452 -0
- package/dist/effects/effect.js.map +1 -0
- package/dist/effects/handlers.d.ts +70 -0
- package/dist/effects/handlers.d.ts.map +1 -0
- package/dist/effects/handlers.js +394 -0
- package/dist/effects/handlers.js.map +1 -0
- package/dist/effects/interpreter.d.ts +291 -0
- package/dist/effects/interpreter.d.ts.map +1 -0
- package/dist/effects/interpreter.js +325 -0
- package/dist/effects/interpreter.js.map +1 -0
- package/dist/events.d.ts +188 -0
- package/dist/events.d.ts.map +1 -0
- package/dist/events.js +138 -0
- package/dist/events.js.map +1 -0
- package/dist/expression.d.ts +83 -0
- package/dist/expression.d.ts.map +1 -0
- package/dist/expression.js +333 -0
- package/dist/expression.js.map +1 -0
- package/dist/game/cave-cmd.d.ts +195 -0
- package/dist/game/cave-cmd.d.ts.map +1 -0
- package/dist/game/cave-cmd.js +968 -0
- package/dist/game/cave-cmd.js.map +1 -0
- package/dist/game/char-sheet.d.ts +189 -0
- package/dist/game/char-sheet.d.ts.map +1 -0
- package/dist/game/char-sheet.js +381 -0
- package/dist/game/char-sheet.js.map +1 -0
- package/dist/game/chest.d.ts +94 -0
- package/dist/game/chest.d.ts.map +1 -0
- package/dist/game/chest.js +267 -0
- package/dist/game/chest.js.map +1 -0
- package/dist/game/context.d.ts +970 -0
- package/dist/game/context.d.ts.map +1 -0
- package/dist/game/context.js +353 -0
- package/dist/game/context.js.map +1 -0
- package/dist/game/curse-tick.d.ts +35 -0
- package/dist/game/curse-tick.d.ts.map +1 -0
- package/dist/game/curse-tick.js +100 -0
- package/dist/game/curse-tick.js.map +1 -0
- package/dist/game/describe.d.ts +20 -0
- package/dist/game/describe.d.ts.map +1 -0
- package/dist/game/describe.js +45 -0
- package/dist/game/describe.js.map +1 -0
- package/dist/game/display.d.ts +196 -0
- package/dist/game/display.d.ts.map +1 -0
- package/dist/game/display.js +684 -0
- package/dist/game/display.js.map +1 -0
- package/dist/game/dump-level.d.ts +37 -0
- package/dist/game/dump-level.d.ts.map +1 -0
- package/dist/game/dump-level.js +110 -0
- package/dist/game/dump-level.js.map +1 -0
- package/dist/game/effect-attack.d.ts +36 -0
- package/dist/game/effect-attack.d.ts.map +1 -0
- package/dist/game/effect-attack.js +694 -0
- package/dist/game/effect-attack.js.map +1 -0
- package/dist/game/effect-detect.d.ts +34 -0
- package/dist/game/effect-detect.d.ts.map +1 -0
- package/dist/game/effect-detect.js +456 -0
- package/dist/game/effect-detect.js.map +1 -0
- package/dist/game/effect-env.d.ts +77 -0
- package/dist/game/effect-env.d.ts.map +1 -0
- package/dist/game/effect-env.js +166 -0
- package/dist/game/effect-env.js.map +1 -0
- package/dist/game/effect-game-env.d.ts +76 -0
- package/dist/game/effect-game-env.d.ts.map +1 -0
- package/dist/game/effect-game-env.js +23 -0
- package/dist/game/effect-game-env.js.map +1 -0
- package/dist/game/effect-general.d.ts +98 -0
- package/dist/game/effect-general.d.ts.map +1 -0
- package/dist/game/effect-general.js +914 -0
- package/dist/game/effect-general.js.map +1 -0
- package/dist/game/effect-item.d.ts +124 -0
- package/dist/game/effect-item.d.ts.map +1 -0
- package/dist/game/effect-item.js +789 -0
- package/dist/game/effect-item.js.map +1 -0
- package/dist/game/effect-melee.d.ts +43 -0
- package/dist/game/effect-melee.d.ts.map +1 -0
- package/dist/game/effect-melee.js +477 -0
- package/dist/game/effect-melee.js.map +1 -0
- package/dist/game/effect-mon-origin.d.ts +67 -0
- package/dist/game/effect-mon-origin.d.ts.map +1 -0
- package/dist/game/effect-mon-origin.js +164 -0
- package/dist/game/effect-mon-origin.js.map +1 -0
- package/dist/game/effect-monster.d.ts +29 -0
- package/dist/game/effect-monster.d.ts.map +1 -0
- package/dist/game/effect-monster.js +281 -0
- package/dist/game/effect-monster.js.map +1 -0
- package/dist/game/effect-summon.d.ts +37 -0
- package/dist/game/effect-summon.d.ts.map +1 -0
- package/dist/game/effect-summon.js +113 -0
- package/dist/game/effect-summon.js.map +1 -0
- package/dist/game/effect-teleport.d.ts +130 -0
- package/dist/game/effect-teleport.d.ts.map +1 -0
- package/dist/game/effect-teleport.js +529 -0
- package/dist/game/effect-teleport.js.map +1 -0
- package/dist/game/effect-terrain.d.ts +91 -0
- package/dist/game/effect-terrain.d.ts.map +1 -0
- package/dist/game/effect-terrain.js +812 -0
- package/dist/game/effect-terrain.js.map +1 -0
- package/dist/game/energy.d.ts +45 -0
- package/dist/game/energy.d.ts.map +1 -0
- package/dist/game/energy.js +51 -0
- package/dist/game/energy.js.map +1 -0
- package/dist/game/equip-cmp.d.ts +138 -0
- package/dist/game/equip-cmp.d.ts.map +1 -0
- package/dist/game/equip-cmp.js +363 -0
- package/dist/game/equip-cmp.js.map +1 -0
- package/dist/game/floor.d.ts +182 -0
- package/dist/game/floor.d.ts.map +1 -0
- package/dist/game/floor.js +435 -0
- package/dist/game/floor.js.map +1 -0
- package/dist/game/gear.d.ts +408 -0
- package/dist/game/gear.d.ts.map +1 -0
- package/dist/game/gear.js +1037 -0
- package/dist/game/gear.js.map +1 -0
- package/dist/game/harness.d.ts +61 -0
- package/dist/game/harness.d.ts.map +1 -0
- package/dist/game/harness.js +198 -0
- package/dist/game/harness.js.map +1 -0
- package/dist/game/history.d.ts +49 -0
- package/dist/game/history.d.ts.map +1 -0
- package/dist/game/history.js +55 -0
- package/dist/game/history.js.map +1 -0
- package/dist/game/ignore-cmd.d.ts +42 -0
- package/dist/game/ignore-cmd.d.ts.map +1 -0
- package/dist/game/ignore-cmd.js +59 -0
- package/dist/game/ignore-cmd.js.map +1 -0
- package/dist/game/inscription-confirm.d.ts +80 -0
- package/dist/game/inscription-confirm.d.ts.map +1 -0
- package/dist/game/inscription-confirm.js +95 -0
- package/dist/game/inscription-confirm.js.map +1 -0
- package/dist/game/known.d.ts +297 -0
- package/dist/game/known.d.ts.map +1 -0
- package/dist/game/known.js +849 -0
- package/dist/game/known.js.map +1 -0
- package/dist/game/loop.d.ts +139 -0
- package/dist/game/loop.d.ts.map +1 -0
- package/dist/game/loop.js +631 -0
- package/dist/game/loop.js.map +1 -0
- package/dist/game/lore-color.d.ts +25 -0
- package/dist/game/lore-color.d.ts.map +1 -0
- package/dist/game/lore-color.js +95 -0
- package/dist/game/lore-color.js.map +1 -0
- package/dist/game/mon-cast.d.ts +150 -0
- package/dist/game/mon-cast.d.ts.map +1 -0
- package/dist/game/mon-cast.js +301 -0
- package/dist/game/mon-cast.js.map +1 -0
- package/dist/game/mon-cmd.d.ts +51 -0
- package/dist/game/mon-cmd.d.ts.map +1 -0
- package/dist/game/mon-cmd.js +670 -0
- package/dist/game/mon-cmd.js.map +1 -0
- package/dist/game/mon-death.d.ts +143 -0
- package/dist/game/mon-death.d.ts.map +1 -0
- package/dist/game/mon-death.js +328 -0
- package/dist/game/mon-death.js.map +1 -0
- package/dist/game/mon-group.d.ts +81 -0
- package/dist/game/mon-group.d.ts.map +1 -0
- package/dist/game/mon-group.js +323 -0
- package/dist/game/mon-group.js.map +1 -0
- package/dist/game/mon-list.d.ts +85 -0
- package/dist/game/mon-list.d.ts.map +1 -0
- package/dist/game/mon-list.js +154 -0
- package/dist/game/mon-list.js.map +1 -0
- package/dist/game/mon-message.d.ts +100 -0
- package/dist/game/mon-message.d.ts.map +1 -0
- package/dist/game/mon-message.js +336 -0
- package/dist/game/mon-message.js.map +1 -0
- package/dist/game/mon-place.d.ts +226 -0
- package/dist/game/mon-place.d.ts.map +1 -0
- package/dist/game/mon-place.js +642 -0
- package/dist/game/mon-place.js.map +1 -0
- package/dist/game/mon-ranged.d.ts +87 -0
- package/dist/game/mon-ranged.d.ts.map +1 -0
- package/dist/game/mon-ranged.js +353 -0
- package/dist/game/mon-ranged.js.map +1 -0
- package/dist/game/mon-shape.d.ts +43 -0
- package/dist/game/mon-shape.d.ts.map +1 -0
- package/dist/game/mon-shape.js +115 -0
- package/dist/game/mon-shape.js.map +1 -0
- package/dist/game/mon-side.d.ts +63 -0
- package/dist/game/mon-side.d.ts.map +1 -0
- package/dist/game/mon-side.js +403 -0
- package/dist/game/mon-side.js.map +1 -0
- package/dist/game/monster-turn.d.ts +195 -0
- package/dist/game/monster-turn.d.ts.map +1 -0
- package/dist/game/monster-turn.js +1560 -0
- package/dist/game/monster-turn.js.map +1 -0
- package/dist/game/obj-cmd.d.ts +453 -0
- package/dist/game/obj-cmd.d.ts.map +1 -0
- package/dist/game/obj-cmd.js +1530 -0
- package/dist/game/obj-cmd.js.map +1 -0
- package/dist/game/obj-list.d.ts +92 -0
- package/dist/game/obj-list.d.ts.map +1 -0
- package/dist/game/obj-list.js +251 -0
- package/dist/game/obj-list.js.map +1 -0
- package/dist/game/object-inspect.d.ts +37 -0
- package/dist/game/object-inspect.d.ts.map +1 -0
- package/dist/game/object-inspect.js +106 -0
- package/dist/game/object-inspect.js.map +1 -0
- package/dist/game/pickup.d.ts +126 -0
- package/dist/game/pickup.d.ts.map +1 -0
- package/dist/game/pickup.js +367 -0
- package/dist/game/pickup.js.map +1 -0
- package/dist/game/player-path.d.ts +133 -0
- package/dist/game/player-path.d.ts.map +1 -0
- package/dist/game/player-path.js +1268 -0
- package/dist/game/player-path.js.map +1 -0
- package/dist/game/player-side.d.ts +59 -0
- package/dist/game/player-side.d.ts.map +1 -0
- package/dist/game/player-side.js +506 -0
- package/dist/game/player-side.js.map +1 -0
- package/dist/game/player-turn.d.ts +161 -0
- package/dist/game/player-turn.d.ts.map +1 -0
- package/dist/game/player-turn.js +739 -0
- package/dist/game/player-turn.js.map +1 -0
- package/dist/game/project-cast.d.ts +268 -0
- package/dist/game/project-cast.d.ts.map +1 -0
- package/dist/game/project-cast.js +496 -0
- package/dist/game/project-cast.js.map +1 -0
- package/dist/game/project-feat.d.ts +47 -0
- package/dist/game/project-feat.d.ts.map +1 -0
- package/dist/game/project-feat.js +350 -0
- package/dist/game/project-feat.js.map +1 -0
- package/dist/game/project-monster.d.ts +106 -0
- package/dist/game/project-monster.d.ts.map +1 -0
- package/dist/game/project-monster.js +272 -0
- package/dist/game/project-monster.js.map +1 -0
- package/dist/game/project-obj.d.ts +60 -0
- package/dist/game/project-obj.d.ts.map +1 -0
- package/dist/game/project-obj.js +245 -0
- package/dist/game/project-obj.js.map +1 -0
- package/dist/game/project-player.d.ts +120 -0
- package/dist/game/project-player.d.ts.map +1 -0
- package/dist/game/project-player.js +108 -0
- package/dist/game/project-player.js.map +1 -0
- package/dist/game/quest.d.ts +101 -0
- package/dist/game/quest.d.ts.map +1 -0
- package/dist/game/quest.js +192 -0
- package/dist/game/quest.js.map +1 -0
- package/dist/game/ranged-cmd.d.ts +32 -0
- package/dist/game/ranged-cmd.d.ts.map +1 -0
- package/dist/game/ranged-cmd.js +372 -0
- package/dist/game/ranged-cmd.js.map +1 -0
- package/dist/game/scheduler.d.ts +47 -0
- package/dist/game/scheduler.d.ts.map +1 -0
- package/dist/game/scheduler.js +141 -0
- package/dist/game/scheduler.js.map +1 -0
- package/dist/game/spell-cmd.d.ts +104 -0
- package/dist/game/spell-cmd.d.ts.map +1 -0
- package/dist/game/spell-cmd.js +320 -0
- package/dist/game/spell-cmd.js.map +1 -0
- package/dist/game/spoil.d.ts +28 -0
- package/dist/game/spoil.d.ts.map +1 -0
- package/dist/game/spoil.js +435 -0
- package/dist/game/spoil.js.map +1 -0
- package/dist/game/steal.d.ts +35 -0
- package/dist/game/steal.d.ts.map +1 -0
- package/dist/game/steal.js +145 -0
- package/dist/game/steal.js.map +1 -0
- package/dist/game/take-hit-hooks.d.ts +52 -0
- package/dist/game/take-hit-hooks.d.ts.map +1 -0
- package/dist/game/take-hit-hooks.js +127 -0
- package/dist/game/take-hit-hooks.js.map +1 -0
- package/dist/game/target-loop.d.ts +119 -0
- package/dist/game/target-loop.d.ts.map +1 -0
- package/dist/game/target-loop.js +408 -0
- package/dist/game/target-loop.js.map +1 -0
- package/dist/game/target.d.ts +133 -0
- package/dist/game/target.d.ts.map +1 -0
- package/dist/game/target.js +353 -0
- package/dist/game/target.js.map +1 -0
- package/dist/game/thrust.d.ts +37 -0
- package/dist/game/thrust.d.ts.map +1 -0
- package/dist/game/thrust.js +155 -0
- package/dist/game/thrust.js.map +1 -0
- package/dist/game/trap.d.ts +218 -0
- package/dist/game/trap.d.ts.map +1 -0
- package/dist/game/trap.js +618 -0
- package/dist/game/trap.js.map +1 -0
- package/dist/game/ui-entry.d.ts +282 -0
- package/dist/game/ui-entry.d.ts.map +1 -0
- package/dist/game/ui-entry.js +1838 -0
- package/dist/game/ui-entry.js.map +1 -0
- package/dist/game/wizard.d.ts +654 -0
- package/dist/game/wizard.d.ts.map +1 -0
- package/dist/game/wizard.js +1323 -0
- package/dist/game/wizard.js.map +1 -0
- package/dist/game/world.d.ts +183 -0
- package/dist/game/world.d.ts.map +1 -0
- package/dist/game/world.js +685 -0
- package/dist/game/world.js.map +1 -0
- package/dist/gen/cave.d.ts +247 -0
- package/dist/gen/cave.d.ts.map +1 -0
- package/dist/gen/cave.js +2406 -0
- package/dist/gen/cave.js.map +1 -0
- package/dist/gen/gen-monster.d.ts +151 -0
- package/dist/gen/gen-monster.d.ts.map +1 -0
- package/dist/gen/gen-monster.js +473 -0
- package/dist/gen/gen-monster.js.map +1 -0
- package/dist/gen/generate.d.ts +240 -0
- package/dist/gen/generate.d.ts.map +1 -0
- package/dist/gen/generate.js +358 -0
- package/dist/gen/generate.js.map +1 -0
- package/dist/gen/room.d.ts +160 -0
- package/dist/gen/room.d.ts.map +1 -0
- package/dist/gen/room.js +1910 -0
- package/dist/gen/room.js.map +1 -0
- package/dist/gen/util.d.ts +466 -0
- package/dist/gen/util.d.ts.map +1 -0
- package/dist/gen/util.js +1553 -0
- package/dist/gen/util.js.map +1 -0
- package/dist/generated/dun-profiles.d.ts +44 -0
- package/dist/generated/dun-profiles.d.ts.map +1 -0
- package/dist/generated/dun-profiles.js +28 -0
- package/dist/generated/dun-profiles.js.map +1 -0
- package/dist/generated/effects.d.ts +1021 -0
- package/dist/generated/effects.d.ts.map +1 -0
- package/dist/generated/effects.js +239 -0
- package/dist/generated/effects.js.map +1 -0
- package/dist/generated/elements.d.ts +83 -0
- package/dist/generated/elements.d.ts.map +1 -0
- package/dist/generated/elements.js +60 -0
- package/dist/generated/elements.js.map +1 -0
- package/dist/generated/equip-slots.d.ts +104 -0
- package/dist/generated/equip-slots.d.ts.map +1 -0
- package/dist/generated/equip-slots.js +34 -0
- package/dist/generated/equip-slots.js.map +1 -0
- package/dist/generated/history-types.d.ts +52 -0
- package/dist/generated/history-types.d.ts.map +1 -0
- package/dist/generated/history-types.js +32 -0
- package/dist/generated/history-types.js.map +1 -0
- package/dist/generated/ignore-types.d.ts +116 -0
- package/dist/generated/ignore-types.d.ts.map +1 -0
- package/dist/generated/ignore-types.js +64 -0
- package/dist/generated/ignore-types.js.map +1 -0
- package/dist/generated/index.d.ts +32 -0
- package/dist/generated/index.d.ts.map +1 -0
- package/dist/generated/index.js +33 -0
- package/dist/generated/index.js.map +1 -0
- package/dist/generated/kind-flags.d.ts +72 -0
- package/dist/generated/kind-flags.d.ts.map +1 -0
- package/dist/generated/kind-flags.js +42 -0
- package/dist/generated/kind-flags.js.map +1 -0
- package/dist/generated/message.d.ts +624 -0
- package/dist/generated/message.d.ts.map +1 -0
- package/dist/generated/message.js +318 -0
- package/dist/generated/message.js.map +1 -0
- package/dist/generated/mon-message.d.ts +386 -0
- package/dist/generated/mon-message.d.ts.map +1 -0
- package/dist/generated/mon-message.js +136 -0
- package/dist/generated/mon-message.js.map +1 -0
- package/dist/generated/mon-race-flags.d.ts +433 -0
- package/dist/generated/mon-race-flags.d.ts.map +1 -0
- package/dist/generated/mon-race-flags.js +180 -0
- package/dist/generated/mon-race-flags.js.map +1 -0
- package/dist/generated/mon-spells.d.ts +380 -0
- package/dist/generated/mon-spells.d.ts.map +1 -0
- package/dist/generated/mon-spells.js +196 -0
- package/dist/generated/mon-spells.js.map +1 -0
- package/dist/generated/mon-temp-flags.d.ts +52 -0
- package/dist/generated/mon-temp-flags.d.ts.map +1 -0
- package/dist/generated/mon-temp-flags.js +32 -0
- package/dist/generated/mon-temp-flags.js.map +1 -0
- package/dist/generated/mon-timed.d.ts +118 -0
- package/dist/generated/mon-timed.d.ts.map +1 -0
- package/dist/generated/mon-timed.js +32 -0
- package/dist/generated/mon-timed.js.map +1 -0
- package/dist/generated/object-flags.d.ts +169 -0
- package/dist/generated/object-flags.d.ts.map +1 -0
- package/dist/generated/object-flags.js +93 -0
- package/dist/generated/object-flags.js.map +1 -0
- package/dist/generated/object-modifiers.d.ts +50 -0
- package/dist/generated/object-modifiers.d.ts.map +1 -0
- package/dist/generated/object-modifiers.js +41 -0
- package/dist/generated/object-modifiers.js.map +1 -0
- package/dist/generated/options.d.ts +284 -0
- package/dist/generated/options.d.ts.map +1 -0
- package/dist/generated/options.js +102 -0
- package/dist/generated/options.js.map +1 -0
- package/dist/generated/origins.d.ts +138 -0
- package/dist/generated/origins.d.ts.map +1 -0
- package/dist/generated/origins.js +62 -0
- package/dist/generated/origins.js.map +1 -0
- package/dist/generated/parser-errors.d.ts +264 -0
- package/dist/generated/parser-errors.d.ts.map +1 -0
- package/dist/generated/parser-errors.js +138 -0
- package/dist/generated/parser-errors.js.map +1 -0
- package/dist/generated/player-flags.d.ts +62 -0
- package/dist/generated/player-flags.d.ts.map +1 -0
- package/dist/generated/player-flags.js +46 -0
- package/dist/generated/player-flags.js.map +1 -0
- package/dist/generated/player-timed.d.ts +273 -0
- package/dist/generated/player-timed.d.ts.map +1 -0
- package/dist/generated/player-timed.js +116 -0
- package/dist/generated/player-timed.js.map +1 -0
- package/dist/generated/projections.d.ts +130 -0
- package/dist/generated/projections.d.ts.map +1 -0
- package/dist/generated/projections.js +101 -0
- package/dist/generated/projections.js.map +1 -0
- package/dist/generated/randart-properties.d.ts +388 -0
- package/dist/generated/randart-properties.d.ts.map +1 -0
- package/dist/generated/randart-properties.js +200 -0
- package/dist/generated/randart-properties.js.map +1 -0
- package/dist/generated/room-flags.d.ts +21 -0
- package/dist/generated/room-flags.d.ts.map +1 -0
- package/dist/generated/room-flags.js +19 -0
- package/dist/generated/room-flags.js.map +1 -0
- package/dist/generated/rooms.d.ts +122 -0
- package/dist/generated/rooms.d.ts.map +1 -0
- package/dist/generated/rooms.js +48 -0
- package/dist/generated/rooms.js.map +1 -0
- package/dist/generated/square-flags.d.ts +96 -0
- package/dist/generated/square-flags.d.ts.map +1 -0
- package/dist/generated/square-flags.js +54 -0
- package/dist/generated/square-flags.js.map +1 -0
- package/dist/generated/stats.d.ts +23 -0
- package/dist/generated/stats.d.ts.map +1 -0
- package/dist/generated/stats.js +20 -0
- package/dist/generated/stats.js.map +1 -0
- package/dist/generated/terrain-flags.d.ts +136 -0
- package/dist/generated/terrain-flags.d.ts.map +1 -0
- package/dist/generated/terrain-flags.js +74 -0
- package/dist/generated/terrain-flags.js.map +1 -0
- package/dist/generated/terrain.d.ts +83 -0
- package/dist/generated/terrain.d.ts.map +1 -0
- package/dist/generated/terrain.js +60 -0
- package/dist/generated/terrain.js.map +1 -0
- package/dist/generated/trap-flags.d.ts +68 -0
- package/dist/generated/trap-flags.d.ts.map +1 -0
- package/dist/generated/trap-flags.js +40 -0
- package/dist/generated/trap-flags.js.map +1 -0
- package/dist/generated/tvals.d.ts +152 -0
- package/dist/generated/tvals.d.ts.map +1 -0
- package/dist/generated/tvals.js +82 -0
- package/dist/generated/tvals.js.map +1 -0
- package/dist/generated/ui-entry-renderers.d.ts +62 -0
- package/dist/generated/ui-entry-renderers.d.ts.map +1 -0
- package/dist/generated/ui-entry-renderers.js +22 -0
- package/dist/generated/ui-entry-renderers.js.map +1 -0
- package/dist/guard.d.ts +43 -0
- package/dist/guard.d.ts.map +1 -0
- package/dist/guard.js +65 -0
- package/dist/guard.js.map +1 -0
- package/dist/host/args.d.ts +129 -0
- package/dist/host/args.d.ts.map +1 -0
- package/dist/host/args.js +251 -0
- package/dist/host/args.js.map +1 -0
- package/dist/host/bridge.d.ts +61 -0
- package/dist/host/bridge.d.ts.map +1 -0
- package/dist/host/bridge.js +176 -0
- package/dist/host/bridge.js.map +1 -0
- package/dist/host/index.d.ts +18 -0
- package/dist/host/index.d.ts.map +1 -0
- package/dist/host/index.js +18 -0
- package/dist/host/index.js.map +1 -0
- package/dist/host/io.d.ts +169 -0
- package/dist/host/io.d.ts.map +1 -0
- package/dist/host/io.js +137 -0
- package/dist/host/io.js.map +1 -0
- package/dist/host/memory.d.ts +56 -0
- package/dist/host/memory.d.ts.map +1 -0
- package/dist/host/memory.js +105 -0
- package/dist/host/memory.js.map +1 -0
- package/dist/host/raw.d.ts +114 -0
- package/dist/host/raw.d.ts.map +1 -0
- package/dist/host/raw.js +107 -0
- package/dist/host/raw.js.map +1 -0
- package/dist/index.d.ts +180 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +222 -0
- package/dist/index.js.map +1 -0
- package/dist/loc.d.ts +63 -0
- package/dist/loc.d.ts.map +1 -0
- package/dist/loc.js +128 -0
- package/dist/loc.js.map +1 -0
- package/dist/mod/hooks.d.ts +204 -0
- package/dist/mod/hooks.d.ts.map +1 -0
- package/dist/mod/hooks.js +161 -0
- package/dist/mod/hooks.js.map +1 -0
- package/dist/mod/ids.d.ts +160 -0
- package/dist/mod/ids.d.ts.map +1 -0
- package/dist/mod/ids.js +343 -0
- package/dist/mod/ids.js.map +1 -0
- package/dist/mod/registry-host.d.ts +156 -0
- package/dist/mod/registry-host.d.ts.map +1 -0
- package/dist/mod/registry-host.js +142 -0
- package/dist/mod/registry-host.js.map +1 -0
- package/dist/mod/save-blocks.d.ts +201 -0
- package/dist/mod/save-blocks.d.ts.map +1 -0
- package/dist/mod/save-blocks.js +640 -0
- package/dist/mod/save-blocks.js.map +1 -0
- package/dist/mod/vocabulary.d.ts +104 -0
- package/dist/mod/vocabulary.d.ts.map +1 -0
- package/dist/mod/vocabulary.js +0 -0
- package/dist/mod/vocabulary.js.map +1 -0
- package/dist/mon/bind.d.ts +266 -0
- package/dist/mon/bind.d.ts.map +1 -0
- package/dist/mon/bind.js +610 -0
- package/dist/mon/bind.js.map +1 -0
- package/dist/mon/desc.d.ts +72 -0
- package/dist/mon/desc.d.ts.map +1 -0
- package/dist/mon/desc.js +237 -0
- package/dist/mon/desc.js.map +1 -0
- package/dist/mon/knowledge-groups.d.ts +61 -0
- package/dist/mon/knowledge-groups.d.ts.map +1 -0
- package/dist/mon/knowledge-groups.js +121 -0
- package/dist/mon/knowledge-groups.js.map +1 -0
- package/dist/mon/lore-describe.d.ts +216 -0
- package/dist/mon/lore-describe.d.ts.map +1 -0
- package/dist/mon/lore-describe.js +1105 -0
- package/dist/mon/lore-describe.js.map +1 -0
- package/dist/mon/lore.d.ts +117 -0
- package/dist/mon/lore.d.ts.map +1 -0
- package/dist/mon/lore.js +221 -0
- package/dist/mon/lore.js.map +1 -0
- package/dist/mon/make.d.ts +147 -0
- package/dist/mon/make.d.ts.map +1 -0
- package/dist/mon/make.js +353 -0
- package/dist/mon/make.js.map +1 -0
- package/dist/mon/monster.d.ts +94 -0
- package/dist/mon/monster.d.ts.map +1 -0
- package/dist/mon/monster.js +90 -0
- package/dist/mon/monster.js.map +1 -0
- package/dist/mon/predicate.d.ts +87 -0
- package/dist/mon/predicate.d.ts.map +1 -0
- package/dist/mon/predicate.js +190 -0
- package/dist/mon/predicate.js.map +1 -0
- package/dist/mon/project-mon.d.ts +129 -0
- package/dist/mon/project-mon.d.ts.map +1 -0
- package/dist/mon/project-mon.js +652 -0
- package/dist/mon/project-mon.js.map +1 -0
- package/dist/mon/spell.d.ts +155 -0
- package/dist/mon/spell.d.ts.map +1 -0
- package/dist/mon/spell.js +355 -0
- package/dist/mon/spell.js.map +1 -0
- package/dist/mon/steal.d.ts +112 -0
- package/dist/mon/steal.d.ts.map +1 -0
- package/dist/mon/steal.js +163 -0
- package/dist/mon/steal.js.map +1 -0
- package/dist/mon/summon.d.ts +62 -0
- package/dist/mon/summon.d.ts.map +1 -0
- package/dist/mon/summon.js +111 -0
- package/dist/mon/summon.js.map +1 -0
- package/dist/mon/take-hit.d.ts +75 -0
- package/dist/mon/take-hit.d.ts.map +1 -0
- package/dist/mon/take-hit.js +122 -0
- package/dist/mon/take-hit.js.map +1 -0
- package/dist/mon/timed.d.ts +74 -0
- package/dist/mon/timed.d.ts.map +1 -0
- package/dist/mon/timed.js +219 -0
- package/dist/mon/timed.js.map +1 -0
- package/dist/mon/types.d.ts +252 -0
- package/dist/mon/types.d.ts.map +1 -0
- package/dist/mon/types.js +46 -0
- package/dist/mon/types.js.map +1 -0
- package/dist/msg.d.ts +71 -0
- package/dist/msg.d.ts.map +1 -0
- package/dist/msg.js +126 -0
- package/dist/msg.js.map +1 -0
- package/dist/obj/artifact-fake.d.ts +39 -0
- package/dist/obj/artifact-fake.d.ts.map +1 -0
- package/dist/obj/artifact-fake.js +52 -0
- package/dist/obj/artifact-fake.js.map +1 -0
- package/dist/obj/artifact-known.d.ts +50 -0
- package/dist/obj/artifact-known.d.ts.map +1 -0
- package/dist/obj/artifact-known.js +55 -0
- package/dist/obj/artifact-known.js.map +1 -0
- package/dist/obj/bind.d.ts +219 -0
- package/dist/obj/bind.d.ts.map +1 -0
- package/dist/obj/bind.js +1239 -0
- package/dist/obj/bind.js.map +1 -0
- package/dist/obj/chest.d.ts +91 -0
- package/dist/obj/chest.d.ts.map +1 -0
- package/dist/obj/chest.js +220 -0
- package/dist/obj/chest.js.map +1 -0
- package/dist/obj/desc.d.ts +79 -0
- package/dist/obj/desc.d.ts.map +1 -0
- package/dist/obj/desc.js +602 -0
- package/dist/obj/desc.js.map +1 -0
- package/dist/obj/effects-info.d.ts +78 -0
- package/dist/obj/effects-info.d.ts.map +1 -0
- package/dist/obj/effects-info.js +240 -0
- package/dist/obj/effects-info.js.map +1 -0
- package/dist/obj/flavor.d.ts +68 -0
- package/dist/obj/flavor.d.ts.map +1 -0
- package/dist/obj/flavor.js +201 -0
- package/dist/obj/flavor.js.map +1 -0
- package/dist/obj/ignore.d.ts +143 -0
- package/dist/obj/ignore.d.ts.map +1 -0
- package/dist/obj/ignore.js +345 -0
- package/dist/obj/ignore.js.map +1 -0
- package/dist/obj/knowledge.d.ts +520 -0
- package/dist/obj/knowledge.d.ts.map +1 -0
- package/dist/obj/knowledge.js +1364 -0
- package/dist/obj/knowledge.js.map +1 -0
- package/dist/obj/known-object.d.ts +293 -0
- package/dist/obj/known-object.d.ts.map +1 -0
- package/dist/obj/known-object.js +532 -0
- package/dist/obj/known-object.js.map +1 -0
- package/dist/obj/make.d.ts +292 -0
- package/dist/obj/make.d.ts.map +1 -0
- package/dist/obj/make.js +1055 -0
- package/dist/obj/make.js.map +1 -0
- package/dist/obj/object-info.d.ts +188 -0
- package/dist/obj/object-info.d.ts.map +1 -0
- package/dist/obj/object-info.js +1407 -0
- package/dist/obj/object-info.js.map +1 -0
- package/dist/obj/object.d.ts +335 -0
- package/dist/obj/object.d.ts.map +1 -0
- package/dist/obj/object.js +1051 -0
- package/dist/obj/object.js.map +1 -0
- package/dist/obj/power.d.ts +65 -0
- package/dist/obj/power.d.ts.map +1 -0
- package/dist/obj/power.js +580 -0
- package/dist/obj/power.js.map +1 -0
- package/dist/obj/randart-build.d.ts +223 -0
- package/dist/obj/randart-build.d.ts.map +1 -0
- package/dist/obj/randart-build.js +1444 -0
- package/dist/obj/randart-build.js.map +1 -0
- package/dist/obj/randart-data.d.ts +179 -0
- package/dist/obj/randart-data.d.ts.map +1 -0
- package/dist/obj/randart-data.js +1153 -0
- package/dist/obj/randart-data.js.map +1 -0
- package/dist/obj/randart.d.ts +128 -0
- package/dist/obj/randart.d.ts.map +1 -0
- package/dist/obj/randart.js +458 -0
- package/dist/obj/randart.js.map +1 -0
- package/dist/obj/randname.d.ts +33 -0
- package/dist/obj/randname.d.ts.map +1 -0
- package/dist/obj/randname.js +116 -0
- package/dist/obj/randname.js.map +1 -0
- package/dist/obj/recharge.d.ts +28 -0
- package/dist/obj/recharge.d.ts.map +1 -0
- package/dist/obj/recharge.js +52 -0
- package/dist/obj/recharge.js.map +1 -0
- package/dist/obj/types.d.ts +584 -0
- package/dist/obj/types.d.ts.map +1 -0
- package/dist/obj/types.js +104 -0
- package/dist/obj/types.js.map +1 -0
- package/dist/obj/value.d.ts +64 -0
- package/dist/obj/value.d.ts.map +1 -0
- package/dist/obj/value.js +176 -0
- package/dist/obj/value.js.map +1 -0
- package/dist/player/abilities.d.ts +57 -0
- package/dist/player/abilities.d.ts.map +1 -0
- package/dist/player/abilities.js +118 -0
- package/dist/player/abilities.js.map +1 -0
- package/dist/player/best-digger.d.ts +42 -0
- package/dist/player/best-digger.d.ts.map +1 -0
- package/dist/player/best-digger.js +89 -0
- package/dist/player/best-digger.js.map +1 -0
- package/dist/player/bind.d.ts +270 -0
- package/dist/player/bind.d.ts.map +1 -0
- package/dist/player/bind.js +698 -0
- package/dist/player/bind.js.map +1 -0
- package/dist/player/birth.d.ts +258 -0
- package/dist/player/birth.d.ts.map +1 -0
- package/dist/player/birth.js +639 -0
- package/dist/player/birth.js.map +1 -0
- package/dist/player/calcs.d.ts +403 -0
- package/dist/player/calcs.d.ts.map +1 -0
- package/dist/player/calcs.js +1189 -0
- package/dist/player/calcs.js.map +1 -0
- package/dist/player/combat-regen.d.ts +14 -0
- package/dist/player/combat-regen.d.ts.map +1 -0
- package/dist/player/combat-regen.js +29 -0
- package/dist/player/combat-regen.js.map +1 -0
- package/dist/player/exp.d.ts +96 -0
- package/dist/player/exp.d.ts.map +1 -0
- package/dist/player/exp.js +229 -0
- package/dist/player/exp.js.map +1 -0
- package/dist/player/history.d.ts +91 -0
- package/dist/player/history.d.ts.map +1 -0
- package/dist/player/history.js +145 -0
- package/dist/player/history.js.map +1 -0
- package/dist/player/options.d.ts +123 -0
- package/dist/player/options.d.ts.map +1 -0
- package/dist/player/options.js +199 -0
- package/dist/player/options.js.map +1 -0
- package/dist/player/player.d.ts +242 -0
- package/dist/player/player.d.ts.map +1 -0
- package/dist/player/player.js +119 -0
- package/dist/player/player.js.map +1 -0
- package/dist/player/shape-lore.d.ts +56 -0
- package/dist/player/shape-lore.d.ts.map +1 -0
- package/dist/player/shape-lore.js +221 -0
- package/dist/player/shape-lore.js.map +1 -0
- package/dist/player/spell.d.ts +146 -0
- package/dist/player/spell.d.ts.map +1 -0
- package/dist/player/spell.js +519 -0
- package/dist/player/spell.js.map +1 -0
- package/dist/player/take-hit.d.ts +87 -0
- package/dist/player/take-hit.d.ts.map +1 -0
- package/dist/player/take-hit.js +99 -0
- package/dist/player/take-hit.js.map +1 -0
- package/dist/player/timed.d.ts +205 -0
- package/dist/player/timed.d.ts.map +1 -0
- package/dist/player/timed.js +310 -0
- package/dist/player/timed.js.map +1 -0
- package/dist/player/types.d.ts +390 -0
- package/dist/player/types.d.ts.map +1 -0
- package/dist/player/types.js +51 -0
- package/dist/player/types.js.map +1 -0
- package/dist/rational.d.ts +99 -0
- package/dist/rational.d.ts.map +1 -0
- package/dist/rational.js +345 -0
- package/dist/rational.js.map +1 -0
- package/dist/rng.d.ts +168 -0
- package/dist/rng.d.ts.map +1 -0
- package/dist/rng.js +404 -0
- package/dist/rng.js.map +1 -0
- package/dist/save/buffer.d.ts +120 -0
- package/dist/save/buffer.d.ts.map +1 -0
- package/dist/save/buffer.js +238 -0
- package/dist/save/buffer.js.map +1 -0
- package/dist/save/compress.d.ts +79 -0
- package/dist/save/compress.d.ts.map +1 -0
- package/dist/save/compress.js +97 -0
- package/dist/save/compress.js.map +1 -0
- package/dist/save/description.d.ts +61 -0
- package/dist/save/description.d.ts.map +1 -0
- package/dist/save/description.js +51 -0
- package/dist/save/description.js.map +1 -0
- package/dist/save/integrity.d.ts +59 -0
- package/dist/save/integrity.d.ts.map +1 -0
- package/dist/save/integrity.js +103 -0
- package/dist/save/integrity.js.map +1 -0
- package/dist/score/display.d.ts +40 -0
- package/dist/score/display.d.ts.map +1 -0
- package/dist/score/display.js +86 -0
- package/dist/score/display.js.map +1 -0
- package/dist/score/score.d.ts +166 -0
- package/dist/score/score.d.ts.map +1 -0
- package/dist/score/score.js +244 -0
- package/dist/score/score.js.map +1 -0
- package/dist/score/types.d.ts +98 -0
- package/dist/score/types.d.ts.map +1 -0
- package/dist/score/types.js +27 -0
- package/dist/score/types.js.map +1 -0
- package/dist/session/boot.d.ts +207 -0
- package/dist/session/boot.d.ts.map +1 -0
- package/dist/session/boot.js +151 -0
- package/dist/session/boot.js.map +1 -0
- package/dist/session/game.d.ts +257 -0
- package/dist/session/game.d.ts.map +1 -0
- package/dist/session/game.js +2880 -0
- package/dist/session/game.js.map +1 -0
- package/dist/session/save.d.ts +847 -0
- package/dist/session/save.d.ts.map +1 -0
- package/dist/session/save.js +1306 -0
- package/dist/session/save.js.map +1 -0
- package/dist/sound/engine.d.ts +146 -0
- package/dist/sound/engine.d.ts.map +1 -0
- package/dist/sound/engine.js +332 -0
- package/dist/sound/engine.js.map +1 -0
- package/dist/sound/index.d.ts +13 -0
- package/dist/sound/index.d.ts.map +1 -0
- package/dist/sound/index.js +13 -0
- package/dist/sound/index.js.map +1 -0
- package/dist/sound/sound-prefs-data.d.ts +10 -0
- package/dist/sound/sound-prefs-data.d.ts.map +1 -0
- package/dist/sound/sound-prefs-data.js +165 -0
- package/dist/sound/sound-prefs-data.js.map +1 -0
- package/dist/sound/types.d.ts +64 -0
- package/dist/sound/types.d.ts.map +1 -0
- package/dist/sound/types.js +23 -0
- package/dist/sound/types.js.map +1 -0
- package/dist/store/bind.d.ts +43 -0
- package/dist/store/bind.d.ts.map +1 -0
- package/dist/store/bind.js +130 -0
- package/dist/store/bind.js.map +1 -0
- package/dist/store/price.d.ts +27 -0
- package/dist/store/price.d.ts.map +1 -0
- package/dist/store/price.js +81 -0
- package/dist/store/price.js.map +1 -0
- package/dist/store/store-cmd.d.ts +51 -0
- package/dist/store/store-cmd.d.ts.map +1 -0
- package/dist/store/store-cmd.js +73 -0
- package/dist/store/store-cmd.js.map +1 -0
- package/dist/store/store.d.ts +156 -0
- package/dist/store/store.d.ts.map +1 -0
- package/dist/store/store.js +616 -0
- package/dist/store/store.js.map +1 -0
- package/dist/store/transact.d.ts +198 -0
- package/dist/store/transact.d.ts.map +1 -0
- package/dist/store/transact.js +383 -0
- package/dist/store/transact.js.map +1 -0
- package/dist/store/types.d.ts +101 -0
- package/dist/store/types.d.ts.map +1 -0
- package/dist/store/types.js +14 -0
- package/dist/store/types.js.map +1 -0
- package/dist/version.d.ts +25 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +25 -0
- package/dist/version.js.map +1 -0
- package/dist/visuals/engine.d.ts +223 -0
- package/dist/visuals/engine.d.ts.map +1 -0
- package/dist/visuals/engine.js +357 -0
- package/dist/visuals/engine.js.map +1 -0
- package/dist/visuals/glyph-table.d.ts +112 -0
- package/dist/visuals/glyph-table.d.ts.map +1 -0
- package/dist/visuals/glyph-table.js +156 -0
- package/dist/visuals/glyph-table.js.map +1 -0
- package/dist/visuals/grafmode-data.d.ts +4 -0
- package/dist/visuals/grafmode-data.d.ts.map +1 -0
- package/dist/visuals/grafmode-data.js +88 -0
- package/dist/visuals/grafmode-data.js.map +1 -0
- package/dist/visuals/grafmode.d.ts +83 -0
- package/dist/visuals/grafmode.d.ts.map +1 -0
- package/dist/visuals/grafmode.js +82 -0
- package/dist/visuals/grafmode.js.map +1 -0
- package/dist/visuals/index.d.ts +19 -0
- package/dist/visuals/index.d.ts.map +1 -0
- package/dist/visuals/index.js +19 -0
- package/dist/visuals/index.js.map +1 -0
- package/dist/visuals/map-text.d.ts +79 -0
- package/dist/visuals/map-text.d.ts.map +1 -0
- package/dist/visuals/map-text.js +122 -0
- package/dist/visuals/map-text.js.map +1 -0
- package/dist/visuals/pref-expr.d.ts +56 -0
- package/dist/visuals/pref-expr.d.ts.map +1 -0
- package/dist/visuals/pref-expr.js +173 -0
- package/dist/visuals/pref-expr.js.map +1 -0
- package/dist/visuals/prefs.d.ts +280 -0
- package/dist/visuals/prefs.d.ts.map +1 -0
- package/dist/visuals/prefs.js +835 -0
- package/dist/visuals/prefs.js.map +1 -0
- package/dist/visuals/tile-prefs.d.ts +132 -0
- package/dist/visuals/tile-prefs.d.ts.map +1 -0
- package/dist/visuals/tile-prefs.js +105 -0
- package/dist/visuals/tile-prefs.js.map +1 -0
- package/dist/world/chunk.d.ts +195 -0
- package/dist/world/chunk.d.ts.map +1 -0
- package/dist/world/chunk.js +422 -0
- package/dist/world/chunk.js.map +1 -0
- package/dist/world/feature.d.ts +86 -0
- package/dist/world/feature.d.ts.map +1 -0
- package/dist/world/feature.js +153 -0
- package/dist/world/feature.js.map +1 -0
- package/dist/world/flow.d.ts +33 -0
- package/dist/world/flow.d.ts.map +1 -0
- package/dist/world/flow.js +115 -0
- package/dist/world/flow.js.map +1 -0
- package/dist/world/project.d.ts +176 -0
- package/dist/world/project.d.ts.map +1 -0
- package/dist/world/project.js +543 -0
- package/dist/world/project.js.map +1 -0
- package/dist/world/projection.d.ts +100 -0
- package/dist/world/projection.d.ts.map +1 -0
- package/dist/world/projection.js +152 -0
- package/dist/world/projection.js.map +1 -0
- package/dist/world/scatter.d.ts +25 -0
- package/dist/world/scatter.d.ts.map +1 -0
- package/dist/world/scatter.js +54 -0
- package/dist/world/scatter.js.map +1 -0
- package/dist/world/trap.d.ts +84 -0
- package/dist/world/trap.d.ts.map +1 -0
- package/dist/world/trap.js +106 -0
- package/dist/world/trap.js.map +1 -0
- package/dist/world/view.d.ts +60 -0
- package/dist/world/view.d.ts.map +1 -0
- package/dist/world/view.js +436 -0
- package/dist/world/view.js.map +1 -0
- package/dist/z-queue.d.ts +133 -0
- package/dist/z-queue.d.ts.map +1 -0
- package/dist/z-queue.js +283 -0
- package/dist/z-queue.js.map +1 -0
- package/package.json +75 -0
- package/src/agent/act.ts +114 -0
- package/src/agent/controller.ts +109 -0
- package/src/agent/events.ts +47 -0
- package/src/agent/index.ts +36 -0
- package/src/agent/perceive.ts +440 -0
- package/src/agent/types.ts +464 -0
- package/src/bitflag.ts +536 -0
- package/src/cmd.ts +547 -0
- package/src/color.ts +267 -0
- package/src/combat/brand-slay.ts +360 -0
- package/src/combat/hit.ts +471 -0
- package/src/combat/index.ts +15 -0
- package/src/combat/melee.ts +728 -0
- package/src/combat/mon-melee.ts +1153 -0
- package/src/combat/ranged.ts +397 -0
- package/src/constants.ts +324 -0
- package/src/dice.ts +467 -0
- package/src/effects/effect-choice.ts +32 -0
- package/src/effects/effect-info.ts +859 -0
- package/src/effects/effect.ts +560 -0
- package/src/effects/handlers.ts +452 -0
- package/src/effects/interpreter.ts +603 -0
- package/src/events.ts +317 -0
- package/src/expression.ts +360 -0
- package/src/game/cave-cmd.ts +1147 -0
- package/src/game/char-sheet.ts +557 -0
- package/src/game/chest.ts +348 -0
- package/src/game/context.ts +1218 -0
- package/src/game/curse-tick.ts +130 -0
- package/src/game/describe.ts +62 -0
- package/src/game/display.ts +838 -0
- package/src/game/dump-level.ts +114 -0
- package/src/game/effect-attack.ts +746 -0
- package/src/game/effect-detect.ts +542 -0
- package/src/game/effect-env.ts +252 -0
- package/src/game/effect-game-env.ts +86 -0
- package/src/game/effect-general.ts +1122 -0
- package/src/game/effect-item.ts +999 -0
- package/src/game/effect-melee.ts +557 -0
- package/src/game/effect-mon-origin.ts +196 -0
- package/src/game/effect-monster.ts +310 -0
- package/src/game/effect-summon.ts +161 -0
- package/src/game/effect-teleport.ts +645 -0
- package/src/game/effect-terrain.ts +881 -0
- package/src/game/energy.ts +61 -0
- package/src/game/equip-cmp.ts +476 -0
- package/src/game/floor.ts +524 -0
- package/src/game/gear.ts +1352 -0
- package/src/game/harness.ts +270 -0
- package/src/game/history.ts +78 -0
- package/src/game/ignore-cmd.ts +68 -0
- package/src/game/inscription-confirm.ts +115 -0
- package/src/game/known.ts +960 -0
- package/src/game/loop.ts +671 -0
- package/src/game/lore-color.ts +108 -0
- package/src/game/mon-cast.ts +409 -0
- package/src/game/mon-cmd.ts +767 -0
- package/src/game/mon-death.ts +459 -0
- package/src/game/mon-group.ts +368 -0
- package/src/game/mon-list.ts +213 -0
- package/src/game/mon-message.ts +359 -0
- package/src/game/mon-place.ts +1012 -0
- package/src/game/mon-ranged.ts +405 -0
- package/src/game/mon-shape.ts +161 -0
- package/src/game/mon-side.ts +511 -0
- package/src/game/monster-turn.ts +1750 -0
- package/src/game/obj-cmd.ts +1970 -0
- package/src/game/obj-list.ts +302 -0
- package/src/game/object-inspect.ts +162 -0
- package/src/game/pickup.ts +483 -0
- package/src/game/player-path.ts +1434 -0
- package/src/game/player-side.ts +555 -0
- package/src/game/player-turn.ts +852 -0
- package/src/game/project-cast.ts +766 -0
- package/src/game/project-feat.ts +386 -0
- package/src/game/project-monster.ts +407 -0
- package/src/game/project-obj.ts +298 -0
- package/src/game/project-player.ts +236 -0
- package/src/game/quest.ts +248 -0
- package/src/game/ranged-cmd.ts +417 -0
- package/src/game/scheduler.ts +150 -0
- package/src/game/spell-cmd.ts +404 -0
- package/src/game/spoil.ts +562 -0
- package/src/game/steal.ts +169 -0
- package/src/game/take-hit-hooks.ts +152 -0
- package/src/game/target-loop.ts +501 -0
- package/src/game/target.ts +424 -0
- package/src/game/thrust.ts +174 -0
- package/src/game/trap.ts +791 -0
- package/src/game/ui-entry.ts +2075 -0
- package/src/game/wizard.ts +1760 -0
- package/src/game/world.ts +786 -0
- package/src/gen/cave.ts +2858 -0
- package/src/gen/gen-monster.ts +592 -0
- package/src/gen/generate.ts +523 -0
- package/src/gen/room.ts +2213 -0
- package/src/gen/util.ts +1958 -0
- package/src/generated/dun-profiles.ts +30 -0
- package/src/generated/effects.ts +241 -0
- package/src/generated/elements.ts +62 -0
- package/src/generated/equip-slots.ts +36 -0
- package/src/generated/history-types.ts +34 -0
- package/src/generated/ignore-types.ts +66 -0
- package/src/generated/index.ts +33 -0
- package/src/generated/kind-flags.ts +44 -0
- package/src/generated/message.ts +320 -0
- package/src/generated/mon-message.ts +138 -0
- package/src/generated/mon-race-flags.ts +182 -0
- package/src/generated/mon-spells.ts +198 -0
- package/src/generated/mon-temp-flags.ts +34 -0
- package/src/generated/mon-timed.ts +34 -0
- package/src/generated/object-flags.ts +95 -0
- package/src/generated/object-modifiers.ts +43 -0
- package/src/generated/options.ts +104 -0
- package/src/generated/origins.ts +64 -0
- package/src/generated/parser-errors.ts +140 -0
- package/src/generated/player-flags.ts +48 -0
- package/src/generated/player-timed.ts +118 -0
- package/src/generated/projections.ts +103 -0
- package/src/generated/randart-properties.ts +202 -0
- package/src/generated/room-flags.ts +21 -0
- package/src/generated/rooms.ts +50 -0
- package/src/generated/square-flags.ts +56 -0
- package/src/generated/stats.ts +22 -0
- package/src/generated/terrain-flags.ts +76 -0
- package/src/generated/terrain.ts +62 -0
- package/src/generated/trap-flags.ts +42 -0
- package/src/generated/tvals.ts +84 -0
- package/src/generated/ui-entry-renderers.ts +24 -0
- package/src/guard.ts +70 -0
- package/src/host/args.ts +334 -0
- package/src/host/bridge.ts +193 -0
- package/src/host/index.ts +18 -0
- package/src/host/io.ts +239 -0
- package/src/host/memory.ts +134 -0
- package/src/host/raw.ts +190 -0
- package/src/index.ts +250 -0
- package/src/loc.ts +157 -0
- package/src/mod/hooks.ts +278 -0
- package/src/mod/ids.ts +390 -0
- package/src/mod/registry-host.ts +258 -0
- package/src/mod/save-blocks.ts +787 -0
- package/src/mod/vocabulary.ts +0 -0
- package/src/mon/bind.ts +899 -0
- package/src/mon/desc.ts +212 -0
- package/src/mon/knowledge-groups.ts +164 -0
- package/src/mon/lore-describe.ts +1414 -0
- package/src/mon/lore.ts +306 -0
- package/src/mon/make.ts +422 -0
- package/src/mon/monster.ts +161 -0
- package/src/mon/predicate.ts +220 -0
- package/src/mon/project-mon.ts +855 -0
- package/src/mon/spell.ts +418 -0
- package/src/mon/steal.ts +246 -0
- package/src/mon/summon.ts +145 -0
- package/src/mon/take-hit.ts +195 -0
- package/src/mon/timed.ts +300 -0
- package/src/mon/types.ts +286 -0
- package/src/msg.ts +146 -0
- package/src/obj/artifact-fake.ts +63 -0
- package/src/obj/artifact-known.ts +69 -0
- package/src/obj/bind.ts +1345 -0
- package/src/obj/chest.ts +249 -0
- package/src/obj/desc.ts +699 -0
- package/src/obj/effects-info.ts +349 -0
- package/src/obj/flavor.ts +256 -0
- package/src/obj/ignore.ts +387 -0
- package/src/obj/knowledge.ts +1577 -0
- package/src/obj/known-object.ts +718 -0
- package/src/obj/make.ts +1367 -0
- package/src/obj/object-info.ts +1737 -0
- package/src/obj/object.ts +1296 -0
- package/src/obj/power.ts +674 -0
- package/src/obj/randart-build.ts +1705 -0
- package/src/obj/randart-data.ts +1344 -0
- package/src/obj/randart.ts +552 -0
- package/src/obj/randname.ts +128 -0
- package/src/obj/recharge.ts +62 -0
- package/src/obj/types.ts +559 -0
- package/src/obj/value.ts +215 -0
- package/src/player/abilities.ts +142 -0
- package/src/player/best-digger.ts +118 -0
- package/src/player/bind.ts +1021 -0
- package/src/player/birth.ts +794 -0
- package/src/player/calcs.ts +1522 -0
- package/src/player/combat-regen.ts +33 -0
- package/src/player/exp.ts +275 -0
- package/src/player/history.ts +211 -0
- package/src/player/options.ts +244 -0
- package/src/player/player.ts +356 -0
- package/src/player/shape-lore.ts +250 -0
- package/src/player/spell.ts +627 -0
- package/src/player/take-hit.ts +173 -0
- package/src/player/timed.ts +482 -0
- package/src/player/types.ts +415 -0
- package/src/rational.ts +388 -0
- package/src/rng.ts +476 -0
- package/src/save/buffer.ts +287 -0
- package/src/save/compress.ts +132 -0
- package/src/save/description.ts +70 -0
- package/src/save/integrity.ts +133 -0
- package/src/score/display.ts +125 -0
- package/src/score/score.ts +341 -0
- package/src/score/types.ts +104 -0
- package/src/session/boot.ts +338 -0
- package/src/session/game.ts +3712 -0
- package/src/session/save.ts +2074 -0
- package/src/sound/engine.ts +375 -0
- package/src/sound/index.ts +13 -0
- package/src/sound/sound-prefs-data.ts +173 -0
- package/src/sound/types.ts +68 -0
- package/src/store/bind.ts +145 -0
- package/src/store/price.ts +97 -0
- package/src/store/store-cmd.ts +73 -0
- package/src/store/store.ts +723 -0
- package/src/store/transact.ts +644 -0
- package/src/store/types.ts +110 -0
- package/src/version.ts +26 -0
- package/src/visuals/engine.ts +444 -0
- package/src/visuals/glyph-table.ts +191 -0
- package/src/visuals/grafmode-data.ts +90 -0
- package/src/visuals/grafmode.ts +123 -0
- package/src/visuals/index.ts +19 -0
- package/src/visuals/map-text.ts +152 -0
- package/src/visuals/pref-expr.ts +182 -0
- package/src/visuals/prefs.ts +981 -0
- package/src/visuals/tile-prefs.ts +183 -0
- package/src/world/chunk.ts +531 -0
- package/src/world/feature.ts +215 -0
- package/src/world/flow.ts +128 -0
- package/src/world/project.ts +687 -0
- package/src/world/projection.ts +228 -0
- package/src/world/scatter.ts +72 -0
- package/src/world/trap.ts +155 -0
- package/src/world/view.ts +513 -0
- package/src/z-queue.ts +300 -0
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared monster-origin sub-branches for the effect / projection layer, ported
|
|
3
|
+
* from reference/src (Angband 4.2.6). These are the "a monster cast this"
|
|
4
|
+
* refinements that several handlers share: resolving the monster a caster is
|
|
5
|
+
* really aiming at (monster_target_monster), the confused-direction /
|
|
6
|
+
* target-monster / decoy target selection (get_target's SRC_MONSTER branch,
|
|
7
|
+
* effect-handler-attack.c L38), the decoy predicate and destruction
|
|
8
|
+
* (mon-predicate.c L308, cave-square.c square_destroy_decoy), and the
|
|
9
|
+
* monster-vs-monster damage primitive (mon-util.c L1193 mon_take_nonplayer_hit).
|
|
10
|
+
*
|
|
11
|
+
* They live in game/ (not mon/) because they mutate GameState and reuse the
|
|
12
|
+
* cast-context consequence hooks (drops / messages), the same seam discipline
|
|
13
|
+
* as the project_m / project_p drivers. mon/ exports (monsterWake,
|
|
14
|
+
* monsterScaredByDamage, monsterEffectLevel, the predicates) are called, never
|
|
15
|
+
* edited.
|
|
16
|
+
*/
|
|
17
|
+
import type { Loc } from "../loc.js";
|
|
18
|
+
import type { Rng } from "../rng.js";
|
|
19
|
+
import type { Monster } from "../mon/monster.js";
|
|
20
|
+
import type { GameState } from "./context.js";
|
|
21
|
+
import type { GameEffectEnv } from "./effect-game-env.js";
|
|
22
|
+
import type { TrapDeps } from "./trap.js";
|
|
23
|
+
/**
|
|
24
|
+
* CONF_RANDOM_CHANCE (mon-timed.h L31): the percentage chance, per confusion
|
|
25
|
+
* level, that an aimed monster spell goes in a random direction instead.
|
|
26
|
+
*/
|
|
27
|
+
export declare const CONF_RANDOM_CHANCE = 40;
|
|
28
|
+
/**
|
|
29
|
+
* monster_target_monster (effect-handler-general.c L96): the monster the
|
|
30
|
+
* casting monster is targeting, or null. Only a SRC_MONSTER origin whose
|
|
31
|
+
* caster has a positive target.midx targets another monster.
|
|
32
|
+
*/
|
|
33
|
+
export declare function monsterTargetMonster(state: GameState, casterMidx: number): Monster | null;
|
|
34
|
+
/** cave_find_decoy (cave.c L719): the player's active decoy grid, or null. */
|
|
35
|
+
export declare function caveFindDecoy(state: GameState): Loc | null;
|
|
36
|
+
/**
|
|
37
|
+
* monster_is_decoyed (mon-predicate.c L308): whether a live decoy exists that
|
|
38
|
+
* the monster can see.
|
|
39
|
+
*/
|
|
40
|
+
export declare function monsterIsDecoyed(state: GameState, mon: Monster): boolean;
|
|
41
|
+
/**
|
|
42
|
+
* square_destroy_decoy (cave-square.c): remove the decoy trap at the decoy
|
|
43
|
+
* grid, clear cave->decoy, and announce it if the player can see it. trapDeps
|
|
44
|
+
* supplies the "decoy" trap kind (only its tidx removal differs from a bare
|
|
45
|
+
* clear); absent, the grid state is still cleared.
|
|
46
|
+
*/
|
|
47
|
+
export declare function destroyDecoy(state: GameState, trapDeps: TrapDeps | undefined, msg?: (text: string) => void): void;
|
|
48
|
+
/**
|
|
49
|
+
* get_target's SRC_MONSTER branch (effect-handler-attack.c L38): resolve the
|
|
50
|
+
* grid a monster's aimed spell/projection strikes. Confusion may send it in a
|
|
51
|
+
* random direction (one randint1(100) draw is always made, matching the
|
|
52
|
+
* upstream RNG stream for every monster-aimed projection); otherwise it aims
|
|
53
|
+
* at a targeted monster, the decoy, or the player, in that order.
|
|
54
|
+
*/
|
|
55
|
+
export declare function monsterGetTarget(state: GameState, rng: Rng, casterMidx: number): Loc;
|
|
56
|
+
/**
|
|
57
|
+
* mon_take_nonplayer_hit (mon-util.c L1193): apply `dam` to a monster from a
|
|
58
|
+
* non-player source (another monster's spell, an EF_DAMAGE monster origin).
|
|
59
|
+
* Uniques and arena monsters are reduced to but never killed by it. Death runs
|
|
60
|
+
* the shape revert, death message and drops through the cast-context monster
|
|
61
|
+
* hooks (the same ones project_m uses), then deletes the monster; a survivor
|
|
62
|
+
* shows a pain/hurt message and may take fright (the fear roll is made, but the
|
|
63
|
+
* EF_DAMAGE caller preserves the upstream quirk of not announcing it). Returns
|
|
64
|
+
* whether the monster died.
|
|
65
|
+
*/
|
|
66
|
+
export declare function monTakeNonplayerHit(env: GameEffectEnv, tMon: Monster, dam: number, hurtMsg?: number, dieMsg?: number): boolean;
|
|
67
|
+
//# sourceMappingURL=effect-mon-origin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"effect-mon-origin.d.ts","sourceRoot":"","sources":["../../src/game/effect-mon-origin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAWjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAE1C;;;GAGG;AACH,eAAO,MAAM,kBAAkB,KAAK,CAAC;AAErC;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,SAAS,EAChB,UAAU,EAAE,MAAM,GACjB,OAAO,GAAG,IAAI,CAOhB;AAED,8EAA8E;AAC9E,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,GAAG,GAAG,GAAG,IAAI,CAI1D;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAIxE;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAC1B,KAAK,EAAE,SAAS,EAChB,QAAQ,EAAE,QAAQ,GAAG,SAAS,EAC9B,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAC3B,IAAI,CAUN;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,SAAS,EAChB,GAAG,EAAE,GAAG,EACR,UAAU,EAAE,MAAM,GACjB,GAAG,CA0BL;AAED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,aAAa,EAClB,IAAI,EAAE,OAAO,EACb,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,MAAqB,EAC9B,MAAM,GAAE,MAAoB,GAC3B,OAAO,CAyCT"}
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared monster-origin sub-branches for the effect / projection layer, ported
|
|
3
|
+
* from reference/src (Angband 4.2.6). These are the "a monster cast this"
|
|
4
|
+
* refinements that several handlers share: resolving the monster a caster is
|
|
5
|
+
* really aiming at (monster_target_monster), the confused-direction /
|
|
6
|
+
* target-monster / decoy target selection (get_target's SRC_MONSTER branch,
|
|
7
|
+
* effect-handler-attack.c L38), the decoy predicate and destruction
|
|
8
|
+
* (mon-predicate.c L308, cave-square.c square_destroy_decoy), and the
|
|
9
|
+
* monster-vs-monster damage primitive (mon-util.c L1193 mon_take_nonplayer_hit).
|
|
10
|
+
*
|
|
11
|
+
* They live in game/ (not mon/) because they mutate GameState and reuse the
|
|
12
|
+
* cast-context consequence hooks (drops / messages), the same seam discipline
|
|
13
|
+
* as the project_m / project_p drivers. mon/ exports (monsterWake,
|
|
14
|
+
* monsterScaredByDamage, monsterEffectLevel, the predicates) are called, never
|
|
15
|
+
* edited.
|
|
16
|
+
*/
|
|
17
|
+
import { MON_MSG, MON_TMD, TMD } from "../generated/index.js";
|
|
18
|
+
import { DDGRID, loc, locIsZero, locSum } from "../loc.js";
|
|
19
|
+
import { monsterIsCamouflaged, monsterIsUnique, monsterIsVisible, } from "../mon/predicate.js";
|
|
20
|
+
import { monsterEffectLevel } from "../mon/timed.js";
|
|
21
|
+
import { monsterScaredByDamage, monsterWake } from "../mon/take-hit.js";
|
|
22
|
+
import { los } from "../world/view.js";
|
|
23
|
+
import { lookupTrap } from "../world/trap.js";
|
|
24
|
+
import { deleteMonster } from "./context.js";
|
|
25
|
+
import { squareRemoveAllTraps } from "./trap.js";
|
|
26
|
+
/**
|
|
27
|
+
* CONF_RANDOM_CHANCE (mon-timed.h L31): the percentage chance, per confusion
|
|
28
|
+
* level, that an aimed monster spell goes in a random direction instead.
|
|
29
|
+
*/
|
|
30
|
+
export const CONF_RANDOM_CHANCE = 40;
|
|
31
|
+
/**
|
|
32
|
+
* monster_target_monster (effect-handler-general.c L96): the monster the
|
|
33
|
+
* casting monster is targeting, or null. Only a SRC_MONSTER origin whose
|
|
34
|
+
* caster has a positive target.midx targets another monster.
|
|
35
|
+
*/
|
|
36
|
+
export function monsterTargetMonster(state, casterMidx) {
|
|
37
|
+
const mon = state.monsters[casterMidx];
|
|
38
|
+
if (!mon)
|
|
39
|
+
return null;
|
|
40
|
+
if (mon.target.midx > 0) {
|
|
41
|
+
return state.monsters[mon.target.midx] ?? null;
|
|
42
|
+
}
|
|
43
|
+
return null;
|
|
44
|
+
}
|
|
45
|
+
/** cave_find_decoy (cave.c L719): the player's active decoy grid, or null. */
|
|
46
|
+
export function caveFindDecoy(state) {
|
|
47
|
+
const decoy = state.decoy ?? null;
|
|
48
|
+
if (!decoy || locIsZero(decoy))
|
|
49
|
+
return null;
|
|
50
|
+
return decoy;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* monster_is_decoyed (mon-predicate.c L308): whether a live decoy exists that
|
|
54
|
+
* the monster can see.
|
|
55
|
+
*/
|
|
56
|
+
export function monsterIsDecoyed(state, mon) {
|
|
57
|
+
const decoy = caveFindDecoy(state);
|
|
58
|
+
if (!decoy)
|
|
59
|
+
return false;
|
|
60
|
+
return los(state.chunk, mon.grid, decoy);
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* square_destroy_decoy (cave-square.c): remove the decoy trap at the decoy
|
|
64
|
+
* grid, clear cave->decoy, and announce it if the player can see it. trapDeps
|
|
65
|
+
* supplies the "decoy" trap kind (only its tidx removal differs from a bare
|
|
66
|
+
* clear); absent, the grid state is still cleared.
|
|
67
|
+
*/
|
|
68
|
+
export function destroyDecoy(state, trapDeps, msg) {
|
|
69
|
+
const decoy = caveFindDecoy(state);
|
|
70
|
+
if (!decoy)
|
|
71
|
+
return;
|
|
72
|
+
const decoyKind = trapDeps ? lookupTrap(trapDeps.kinds, "decoy") : null;
|
|
73
|
+
squareRemoveAllTraps(state, decoy, decoyKind ? decoyKind.tidx : -1);
|
|
74
|
+
state.decoy = null;
|
|
75
|
+
const blind = (state.actor.player.timed[TMD.BLIND] ?? 0) > 0;
|
|
76
|
+
if (msg && los(state.chunk, state.actor.grid, decoy) && !blind) {
|
|
77
|
+
msg("The decoy is destroyed!");
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* get_target's SRC_MONSTER branch (effect-handler-attack.c L38): resolve the
|
|
82
|
+
* grid a monster's aimed spell/projection strikes. Confusion may send it in a
|
|
83
|
+
* random direction (one randint1(100) draw is always made, matching the
|
|
84
|
+
* upstream RNG stream for every monster-aimed projection); otherwise it aims
|
|
85
|
+
* at a targeted monster, the decoy, or the player, in that order.
|
|
86
|
+
*/
|
|
87
|
+
export function monsterGetTarget(state, rng, casterMidx) {
|
|
88
|
+
const mon = state.monsters[casterMidx];
|
|
89
|
+
/* Upstream breaks out to the caller's default (player grid) with no draw
|
|
90
|
+
* when the monster is gone; keep that. */
|
|
91
|
+
if (!mon)
|
|
92
|
+
return state.actor.grid;
|
|
93
|
+
let accuracy = 100;
|
|
94
|
+
let confLevel = monsterEffectLevel(mon, MON_TMD.CONF);
|
|
95
|
+
while (confLevel) {
|
|
96
|
+
accuracy = Math.trunc((accuracy * (100 - CONF_RANDOM_CHANCE)) / 100);
|
|
97
|
+
confLevel--;
|
|
98
|
+
}
|
|
99
|
+
if (rng.randint1(100) > accuracy) {
|
|
100
|
+
const dir = rng.randint1(9);
|
|
101
|
+
return locSum(mon.grid, DDGRID[dir] ?? loc(0, 0));
|
|
102
|
+
}
|
|
103
|
+
if (mon.target.midx > 0) {
|
|
104
|
+
const tMon = state.monsters[mon.target.midx];
|
|
105
|
+
if (tMon)
|
|
106
|
+
return tMon.grid;
|
|
107
|
+
}
|
|
108
|
+
if (monsterIsDecoyed(state, mon)) {
|
|
109
|
+
const decoy = caveFindDecoy(state);
|
|
110
|
+
if (decoy)
|
|
111
|
+
return decoy;
|
|
112
|
+
}
|
|
113
|
+
return state.actor.grid;
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* mon_take_nonplayer_hit (mon-util.c L1193): apply `dam` to a monster from a
|
|
117
|
+
* non-player source (another monster's spell, an EF_DAMAGE monster origin).
|
|
118
|
+
* Uniques and arena monsters are reduced to but never killed by it. Death runs
|
|
119
|
+
* the shape revert, death message and drops through the cast-context monster
|
|
120
|
+
* hooks (the same ones project_m uses), then deletes the monster; a survivor
|
|
121
|
+
* shows a pain/hurt message and may take fright (the fear roll is made, but the
|
|
122
|
+
* EF_DAMAGE caller preserves the upstream quirk of not announcing it). Returns
|
|
123
|
+
* whether the monster died.
|
|
124
|
+
*/
|
|
125
|
+
export function monTakeNonplayerHit(env, tMon, dam, hurtMsg = MON_MSG.NONE, dieMsg = MON_MSG.DIE) {
|
|
126
|
+
const { state } = env;
|
|
127
|
+
const rng = state.rng;
|
|
128
|
+
const hooks = env.cast.hooks?.monster;
|
|
129
|
+
/* "Unique" or arena monsters can only be "killed" by the player. */
|
|
130
|
+
if (monsterIsUnique(tMon) || state.arenaLevel) {
|
|
131
|
+
if (dam > tMon.hp)
|
|
132
|
+
dam = tMon.hp;
|
|
133
|
+
}
|
|
134
|
+
/* Wake the monster up, doesn't become aware of the player. */
|
|
135
|
+
monsterWake(rng, tMon, false, 0);
|
|
136
|
+
/* Hurt the monster. */
|
|
137
|
+
tMon.hp -= dam;
|
|
138
|
+
if (tMon.hp < 0) {
|
|
139
|
+
/* Shapechanged monsters revert on death. */
|
|
140
|
+
if (tMon.originalRace)
|
|
141
|
+
hooks?.revertShape?.(tMon);
|
|
142
|
+
if (monsterIsVisible(tMon))
|
|
143
|
+
hooks?.message?.(tMon, dieMsg, false);
|
|
144
|
+
/* Generate treasure, etc. (monster_death; removal done here). */
|
|
145
|
+
hooks?.onMonsterDeath?.(tMon);
|
|
146
|
+
deleteMonster(state, tMon.midx);
|
|
147
|
+
return true;
|
|
148
|
+
}
|
|
149
|
+
if (!monsterIsCamouflaged(tMon)) {
|
|
150
|
+
if (hurtMsg !== MON_MSG.NONE) {
|
|
151
|
+
hooks?.message?.(tMon, hurtMsg, false);
|
|
152
|
+
}
|
|
153
|
+
else if (dam > 0) {
|
|
154
|
+
hooks?.messagePain?.(tMon, dam);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
/* Sometimes a monster gets scared by damage (roll preserved even though the
|
|
158
|
+
* EF_DAMAGE caller does not announce the resulting fear). */
|
|
159
|
+
if (!tMon.mTimed[MON_TMD.FEAR] && dam > 0) {
|
|
160
|
+
monsterScaredByDamage(rng, tMon, dam);
|
|
161
|
+
}
|
|
162
|
+
return false;
|
|
163
|
+
}
|
|
164
|
+
//# sourceMappingURL=effect-mon-origin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"effect-mon-origin.js","sourceRoot":"","sources":["../../src/game/effect-mon-origin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAI3D,OAAO,EACL,oBAAoB,EACpB,eAAe,EACf,gBAAgB,GACjB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,qBAAqB,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACxE,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAG7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAGjD;;;GAGG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,EAAE,CAAC;AAErC;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAClC,KAAgB,EAChB,UAAkB;IAElB,MAAM,GAAG,GAAG,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IACvC,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IACtB,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QACxB,OAAO,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;IACjD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,aAAa,CAAC,KAAgB;IAC5C,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC;IAClC,IAAI,CAAC,KAAK,IAAI,SAAS,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC5C,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAgB,EAAE,GAAY;IAC7D,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IACnC,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IACzB,OAAO,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAC3C,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAC1B,KAAgB,EAChB,QAA8B,EAC9B,GAA4B;IAE5B,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IACnC,IAAI,CAAC,KAAK;QAAE,OAAO;IACnB,MAAM,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACxE,oBAAoB,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACpE,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC;IACnB,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IAC7D,IAAI,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QAC/D,GAAG,CAAC,yBAAyB,CAAC,CAAC;IACjC,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAC9B,KAAgB,EAChB,GAAQ,EACR,UAAkB;IAElB,MAAM,GAAG,GAAG,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IACvC;8CAC0C;IAC1C,IAAI,CAAC,GAAG;QAAE,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;IAElC,IAAI,QAAQ,GAAG,GAAG,CAAC;IACnB,IAAI,SAAS,GAAG,kBAAkB,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACtD,OAAO,SAAS,EAAE,CAAC;QACjB,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,GAAG,CAAC,GAAG,GAAG,kBAAkB,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;QACrE,SAAS,EAAE,CAAC;IACd,CAAC;IAED,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,QAAQ,EAAE,CAAC;QACjC,MAAM,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC5B,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACpD,CAAC;IACD,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC7C,IAAI,IAAI;YAAE,OAAO,IAAI,CAAC,IAAI,CAAC;IAC7B,CAAC;IACD,IAAI,gBAAgB,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC;QACjC,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,KAAK;YAAE,OAAO,KAAK,CAAC;IAC1B,CAAC;IACD,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;AAC1B,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,mBAAmB,CACjC,GAAkB,EAClB,IAAa,EACb,GAAW,EACX,UAAkB,OAAO,CAAC,IAAI,EAC9B,SAAiB,OAAO,CAAC,GAAG;IAE5B,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC;IACtB,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC;IACtB,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC;IAEtC,oEAAoE;IACpE,IAAI,eAAe,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;QAC9C,IAAI,GAAG,GAAG,IAAI,CAAC,EAAE;YAAE,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC;IACnC,CAAC;IAED,8DAA8D;IAC9D,WAAW,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;IAEjC,uBAAuB;IACvB,IAAI,CAAC,EAAE,IAAI,GAAG,CAAC;IAEf,IAAI,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;QAChB,4CAA4C;QAC5C,IAAI,IAAI,CAAC,YAAY;YAAE,KAAK,EAAE,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC;QAClD,IAAI,gBAAgB,CAAC,IAAI,CAAC;YAAE,KAAK,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;QAClE,iEAAiE;QACjE,KAAK,EAAE,cAAc,EAAE,CAAC,IAAI,CAAC,CAAC;QAC9B,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAChC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,CAAC;QAChC,IAAI,OAAO,KAAK,OAAO,CAAC,IAAI,EAAE,CAAC;YAC7B,KAAK,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;QACzC,CAAC;aAAM,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;YACnB,KAAK,EAAE,WAAW,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IAED;iEAC6D;IAC7D,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;QAC1C,qBAAqB,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;IACxC,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Monster-targeting general effect handlers, ported from
|
|
3
|
+
* reference/src/effect-handler-general.c (Angband 4.2.6): EF_WAKE (L2205),
|
|
4
|
+
* EF_BANISH (L2337) and EF_MASS_BANISH (L2401), plus the monster self-heal
|
|
5
|
+
* family from effect-handler-attack.c: EF_MON_HEAL_HP (L254) and
|
|
6
|
+
* EF_MON_HEAL_KIN (L311, healing a nearby injured same-base monster found
|
|
7
|
+
* by choose_nearby_injured_kin's reservoir sample). Each touches the live
|
|
8
|
+
* monsters, so like the attack handlers they live in game/ and are registered
|
|
9
|
+
* into the EffectRegistry from here (registerMonsterHandlers), overriding the
|
|
10
|
+
* NOT_IMPLEMENTED stubs. They read their game environment from
|
|
11
|
+
* context.env.game (effect-game-env.ts) and no-op when it is absent.
|
|
12
|
+
*
|
|
13
|
+
* All the primitives they need are already ported: monster iteration and
|
|
14
|
+
* removal (game/context.ts monsterMax / deleteMonster), waking (mon/take-hit.ts
|
|
15
|
+
* monsterWake), the uniqueness test (mon/predicate.ts monsterIsUnique) and the
|
|
16
|
+
* shared player-damage primitive (player/take-hit.ts). The banish symbol prompt
|
|
17
|
+
* (get_com) is an injected chooser on the game env; absent, EF_BANISH aborts,
|
|
18
|
+
* mirroring a cancelled prompt. The arena-level guard is omitted (arenas are
|
|
19
|
+
* not modelled).
|
|
20
|
+
*/
|
|
21
|
+
import type { EffectRegistry } from "../effects/interpreter.js";
|
|
22
|
+
/**
|
|
23
|
+
* Register the monster-targeting general effect handlers, overriding the stubs
|
|
24
|
+
* registerCoreHandlers installed. Call after registerCoreHandlers.
|
|
25
|
+
*/
|
|
26
|
+
export declare function registerMonsterHandlers(registry: EffectRegistry): void;
|
|
27
|
+
/** The monster-effect EF codes this module registers. */
|
|
28
|
+
export declare const MONSTER_HANDLER_CODES: readonly number[];
|
|
29
|
+
//# sourceMappingURL=effect-monster.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"effect-monster.d.ts","sourceRoot":"","sources":["../../src/game/effect-monster.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAQH,OAAO,KAAK,EAGV,cAAc,EACf,MAAM,2BAA2B,CAAC;AAyQnC;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI,CAItE;AAED,yDAAyD;AACzD,eAAO,MAAM,qBAAqB,EAAE,SAAS,MAAM,EAElD,CAAC"}
|
|
@@ -0,0 +1,281 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Monster-targeting general effect handlers, ported from
|
|
3
|
+
* reference/src/effect-handler-general.c (Angband 4.2.6): EF_WAKE (L2205),
|
|
4
|
+
* EF_BANISH (L2337) and EF_MASS_BANISH (L2401), plus the monster self-heal
|
|
5
|
+
* family from effect-handler-attack.c: EF_MON_HEAL_HP (L254) and
|
|
6
|
+
* EF_MON_HEAL_KIN (L311, healing a nearby injured same-base monster found
|
|
7
|
+
* by choose_nearby_injured_kin's reservoir sample). Each touches the live
|
|
8
|
+
* monsters, so like the attack handlers they live in game/ and are registered
|
|
9
|
+
* into the EffectRegistry from here (registerMonsterHandlers), overriding the
|
|
10
|
+
* NOT_IMPLEMENTED stubs. They read their game environment from
|
|
11
|
+
* context.env.game (effect-game-env.ts) and no-op when it is absent.
|
|
12
|
+
*
|
|
13
|
+
* All the primitives they need are already ported: monster iteration and
|
|
14
|
+
* removal (game/context.ts monsterMax / deleteMonster), waking (mon/take-hit.ts
|
|
15
|
+
* monsterWake), the uniqueness test (mon/predicate.ts monsterIsUnique) and the
|
|
16
|
+
* shared player-damage primitive (player/take-hit.ts). The banish symbol prompt
|
|
17
|
+
* (get_com) is an injected chooser on the game env; absent, EF_BANISH aborts,
|
|
18
|
+
* mirroring a cancelled prompt. The arena-level guard is omitted (arenas are
|
|
19
|
+
* not modelled).
|
|
20
|
+
*/
|
|
21
|
+
import { EF, MON_TMD, TMD } from "../generated/index.js";
|
|
22
|
+
import { distance, loc, locEq } from "../loc.js";
|
|
23
|
+
import { monsterIsUnique, monsterIsVisible } from "../mon/predicate.js";
|
|
24
|
+
import { monsterWake } from "../mon/take-hit.js";
|
|
25
|
+
import { MON_TMD_FLG_NOMESSAGE, monClearTimed } from "../mon/timed.js";
|
|
26
|
+
import { effectCalculateValue } from "../effects/interpreter.js";
|
|
27
|
+
import { playerApplyDamageReduction, takeHit, } from "../player/take-hit.js";
|
|
28
|
+
import { los } from "../world/view.js";
|
|
29
|
+
import { deleteMonster, monsterMax } from "./context.js";
|
|
30
|
+
import { gameEnv } from "./effect-game-env.js";
|
|
31
|
+
/** take_hit through the player-projection actor, with the show-damage message. */
|
|
32
|
+
function hurtPlayer(ctx, env, dam, killer) {
|
|
33
|
+
const actor = env.cast.playerActor;
|
|
34
|
+
const reduced = playerApplyDamageReduction(actor, actor.reduction, dam);
|
|
35
|
+
if (reduced > 0 && ctx.env.showDamage) {
|
|
36
|
+
ctx.env.messages?.msg(`You take ${reduced} damage.`);
|
|
37
|
+
}
|
|
38
|
+
takeHit(actor, reduced, killer, env.takeHitHooks);
|
|
39
|
+
}
|
|
40
|
+
/** EF_WAKE: wake every sleeping monster near the effect origin. */
|
|
41
|
+
const handleWAKE = (ctx) => {
|
|
42
|
+
const env = gameEnv(ctx);
|
|
43
|
+
if (!env)
|
|
44
|
+
return true;
|
|
45
|
+
const { state } = env;
|
|
46
|
+
/* origin_get_loc: a monster source wakes from its own grid. */
|
|
47
|
+
const origin = ctx.origin.what === "monster"
|
|
48
|
+
? (state.monsters[ctx.origin.monster]?.grid ?? state.actor.grid)
|
|
49
|
+
: state.actor.grid;
|
|
50
|
+
const radius = state.z.maxSight * 2;
|
|
51
|
+
let woken = false;
|
|
52
|
+
const max = monsterMax(state);
|
|
53
|
+
for (let i = 1; i < max; i++) {
|
|
54
|
+
const mon = state.monsters[i];
|
|
55
|
+
if (!mon)
|
|
56
|
+
continue;
|
|
57
|
+
const dist = distance(origin, mon.grid);
|
|
58
|
+
if (dist < radius && mon.mTimed[0] > 0) {
|
|
59
|
+
/* MON_TMD.SLEEP: closer means likelier to become aware. */
|
|
60
|
+
monsterWake(state.rng, mon, false, 100 - 2 * dist);
|
|
61
|
+
woken = true;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
if (woken)
|
|
65
|
+
ctx.env.messages?.msg("You hear a sudden stirring in the distance!");
|
|
66
|
+
ctx.ident = true;
|
|
67
|
+
return true;
|
|
68
|
+
};
|
|
69
|
+
/**
|
|
70
|
+
* EF_BANISH: delete all non-unique monsters whose display glyph matches a
|
|
71
|
+
* player-chosen symbol, costing the player 1d4 hitpoints per monster. Returns
|
|
72
|
+
* false (aborting the effect) when no symbol is chosen.
|
|
73
|
+
*/
|
|
74
|
+
const handleBANISH = (ctx) => {
|
|
75
|
+
const env = gameEnv(ctx);
|
|
76
|
+
if (!env)
|
|
77
|
+
return true;
|
|
78
|
+
ctx.ident = true;
|
|
79
|
+
/* Don't allow in an arena. */
|
|
80
|
+
if (env.state.arenaLevel) {
|
|
81
|
+
ctx.env.messages?.msg("Nothing happens.");
|
|
82
|
+
return true;
|
|
83
|
+
}
|
|
84
|
+
const typ = env.banishSymbol ? env.banishSymbol() : null;
|
|
85
|
+
if (typ === null)
|
|
86
|
+
return false;
|
|
87
|
+
const { state } = env;
|
|
88
|
+
let dam = 0;
|
|
89
|
+
const max = monsterMax(state);
|
|
90
|
+
for (let i = 1; i < max; i++) {
|
|
91
|
+
const mon = state.monsters[i];
|
|
92
|
+
if (!mon)
|
|
93
|
+
continue;
|
|
94
|
+
if (monsterIsUnique(mon))
|
|
95
|
+
continue;
|
|
96
|
+
/* Shape-shifters banish by their original race's glyph. */
|
|
97
|
+
const glyph = (mon.originalRace ?? mon.race).dChar;
|
|
98
|
+
if (glyph !== typ)
|
|
99
|
+
continue;
|
|
100
|
+
deleteMonster(state, i);
|
|
101
|
+
dam += state.rng.randint1(4);
|
|
102
|
+
}
|
|
103
|
+
hurtPlayer(ctx, env, dam, "the strain of casting Banishment");
|
|
104
|
+
return true;
|
|
105
|
+
};
|
|
106
|
+
/**
|
|
107
|
+
* EF_MASS_BANISH: delete all nearby non-unique monsters (within context->radius,
|
|
108
|
+
* else the player's sight radius), costing the player 1d3 hitpoints per monster.
|
|
109
|
+
*/
|
|
110
|
+
const handleMASS_BANISH = (ctx) => {
|
|
111
|
+
const env = gameEnv(ctx);
|
|
112
|
+
if (!env)
|
|
113
|
+
return true;
|
|
114
|
+
ctx.ident = true;
|
|
115
|
+
const { state } = env;
|
|
116
|
+
/* Don't allow in an arena. */
|
|
117
|
+
if (state.arenaLevel) {
|
|
118
|
+
ctx.env.messages?.msg("Nothing happens.");
|
|
119
|
+
return true;
|
|
120
|
+
}
|
|
121
|
+
const radius = ctx.radius ? ctx.radius : state.z.maxSight;
|
|
122
|
+
let dam = 0;
|
|
123
|
+
const max = monsterMax(state);
|
|
124
|
+
for (let i = 1; i < max; i++) {
|
|
125
|
+
const mon = state.monsters[i];
|
|
126
|
+
if (!mon)
|
|
127
|
+
continue;
|
|
128
|
+
if (monsterIsUnique(mon))
|
|
129
|
+
continue;
|
|
130
|
+
if (mon.cdis > radius)
|
|
131
|
+
continue;
|
|
132
|
+
deleteMonster(state, i);
|
|
133
|
+
dam += state.rng.randint1(3);
|
|
134
|
+
}
|
|
135
|
+
hurtPlayer(ctx, env, dam, "the strain of casting Mass Banishment");
|
|
136
|
+
return true;
|
|
137
|
+
};
|
|
138
|
+
/**
|
|
139
|
+
* The heal-and-cancel-fear tail shared by MON_HEAL_HP and MON_HEAL_KIN
|
|
140
|
+
* (effect-handler-attack.c L275-299 / L336-354). The MDESC name rides the
|
|
141
|
+
* display layer, so the race name stands in.
|
|
142
|
+
*
|
|
143
|
+
* NOT shared: the messages. Upstream's two handlers look near-identical and
|
|
144
|
+
* differ in exactly two places, both of which a shared body loses --
|
|
145
|
+
* MON_HEAL_HP has "sounds ..." variants for an unseen monster (L282-290) while
|
|
146
|
+
* MON_HEAL_KIN wraps BOTH of its messages in `if (seen)` (L338-344) and says
|
|
147
|
+
* nothing at all when the kin is not seen. Hence `unseenMsg`.
|
|
148
|
+
*/
|
|
149
|
+
function healMonster(ctx, env, mon, amount, unseenMsg) {
|
|
150
|
+
const { state } = env;
|
|
151
|
+
const blind = (env.cast.playerActor.timed[TMD.BLIND] ?? 0) > 0;
|
|
152
|
+
const seen = !blind && monsterIsVisible(mon);
|
|
153
|
+
const name = mon.race.name;
|
|
154
|
+
/* Heal some */
|
|
155
|
+
mon.hp += amount;
|
|
156
|
+
if (mon.hp >= mon.maxhp) {
|
|
157
|
+
mon.hp = mon.maxhp;
|
|
158
|
+
if (seen) {
|
|
159
|
+
ctx.env.messages?.msg(`${name} looks REALLY healthy!`);
|
|
160
|
+
}
|
|
161
|
+
else if (unseenMsg) {
|
|
162
|
+
ctx.env.messages?.msg(`${name} sounds REALLY healthy!`);
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
else if (seen) {
|
|
166
|
+
ctx.env.messages?.msg(`${name} looks healthier.`);
|
|
167
|
+
}
|
|
168
|
+
else if (unseenMsg) {
|
|
169
|
+
ctx.env.messages?.msg(`${name} sounds healthier.`);
|
|
170
|
+
}
|
|
171
|
+
/* Cancel fear */
|
|
172
|
+
if ((mon.mTimed[MON_TMD.FEAR] ?? 0) > 0) {
|
|
173
|
+
monClearTimed(state.rng, mon, MON_TMD.FEAR, MON_TMD_FLG_NOMESSAGE);
|
|
174
|
+
ctx.env.messages?.msg(`${name} recovers its courage.`);
|
|
175
|
+
}
|
|
176
|
+
ctx.ident = true;
|
|
177
|
+
}
|
|
178
|
+
/** EF_MON_HEAL_HP: the casting monster heals itself. */
|
|
179
|
+
const handleMON_HEAL_HP = (ctx) => {
|
|
180
|
+
const env = gameEnv(ctx);
|
|
181
|
+
if (!env)
|
|
182
|
+
return true;
|
|
183
|
+
if (ctx.origin.what !== "monster")
|
|
184
|
+
return true;
|
|
185
|
+
const mon = env.state.monsters[ctx.origin.monster];
|
|
186
|
+
/* The value is computed BEFORE the null-monster guard (L261 precedes L265),
|
|
187
|
+
* so a midx that resolves to no monster still consumes the dice draws. Keep
|
|
188
|
+
* the order: it is the stream the C produces. */
|
|
189
|
+
const amount = effectCalculateValue(ctx, false);
|
|
190
|
+
if (!mon)
|
|
191
|
+
return true;
|
|
192
|
+
healMonster(ctx, env, mon, amount, true);
|
|
193
|
+
return true;
|
|
194
|
+
};
|
|
195
|
+
/**
|
|
196
|
+
* choose_nearby_injured_kin (mon-util.c L907): one injured same-base monster
|
|
197
|
+
* in LOS within MAX_KIN_RADIUS/DISTANCE (both 5) of the caster, chosen by
|
|
198
|
+
* reservoir sampling with k = 1 (RNG draws as upstream).
|
|
199
|
+
*/
|
|
200
|
+
function chooseNearbyInjuredKin(state, mon) {
|
|
201
|
+
const KIN_RANGE = 5; /* MAX_KIN_RADIUS == MAX_KIN_DISTANCE == 5 */
|
|
202
|
+
let nseen = 0;
|
|
203
|
+
let found = null;
|
|
204
|
+
for (let y = mon.grid.y - KIN_RANGE; y <= mon.grid.y + KIN_RANGE; y++) {
|
|
205
|
+
for (let x = mon.grid.x - KIN_RANGE; x <= mon.grid.x + KIN_RANGE; x++) {
|
|
206
|
+
const grid = loc(x, y);
|
|
207
|
+
/* get_injured_kin: not itself, same base, LOS, injured, in range. */
|
|
208
|
+
if (!state.chunk.inBounds(grid))
|
|
209
|
+
continue;
|
|
210
|
+
if (locEq(grid, mon.grid))
|
|
211
|
+
continue;
|
|
212
|
+
const midx = state.chunk.mon(grid);
|
|
213
|
+
if (midx <= 0)
|
|
214
|
+
continue;
|
|
215
|
+
const kin = state.monsters[midx];
|
|
216
|
+
if (!kin)
|
|
217
|
+
continue;
|
|
218
|
+
if (kin.race.base !== mon.race.base)
|
|
219
|
+
continue;
|
|
220
|
+
if (!los(state.chunk, mon.grid, grid))
|
|
221
|
+
continue;
|
|
222
|
+
if (kin.hp === kin.maxhp)
|
|
223
|
+
continue;
|
|
224
|
+
if (distance(mon.grid, grid) > KIN_RANGE)
|
|
225
|
+
continue;
|
|
226
|
+
nseen++;
|
|
227
|
+
if (state.rng.randint0(nseen) === 0)
|
|
228
|
+
found = kin;
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
return found;
|
|
232
|
+
}
|
|
233
|
+
/** EF_MON_HEAL_KIN: the casting monster heals a nearby injured kin. */
|
|
234
|
+
const handleMON_HEAL_KIN = (ctx) => {
|
|
235
|
+
const env = gameEnv(ctx);
|
|
236
|
+
if (!env)
|
|
237
|
+
return true;
|
|
238
|
+
if (ctx.origin.what !== "monster")
|
|
239
|
+
return true;
|
|
240
|
+
const caster = env.state.monsters[ctx.origin.monster];
|
|
241
|
+
if (!caster)
|
|
242
|
+
return true;
|
|
243
|
+
/* The value is rolled BEFORE the kin search (L319 precedes L324), and
|
|
244
|
+
* choose_nearby_injured_kin draws one randint0 per candidate, so computing it
|
|
245
|
+
* afterwards swaps two draw groups and desynchronises the stream. */
|
|
246
|
+
const amount = effectCalculateValue(ctx, false);
|
|
247
|
+
/* Find a nearby injured monster of the same base. */
|
|
248
|
+
const kin = chooseNearbyInjuredKin(env.state, caster);
|
|
249
|
+
if (!kin)
|
|
250
|
+
return true;
|
|
251
|
+
/* No unseen message: L338-344 wraps both messages in `if (seen)`, unlike
|
|
252
|
+
* MON_HEAL_HP. */
|
|
253
|
+
healMonster(ctx, env, kin, amount, false);
|
|
254
|
+
return true;
|
|
255
|
+
};
|
|
256
|
+
/** The monster-effect handlers, keyed by upstream EF code. */
|
|
257
|
+
const MONSTER_HANDLERS = new Map([
|
|
258
|
+
[EF.WAKE, handleWAKE],
|
|
259
|
+
/* effect_handler_BANISH (effect-handler-general.c:2337) */
|
|
260
|
+
[EF.BANISH, handleBANISH],
|
|
261
|
+
/* effect_handler_MASS_BANISH (effect-handler-general.c:2401) */
|
|
262
|
+
[EF.MASS_BANISH, handleMASS_BANISH],
|
|
263
|
+
/* effect_handler_MON_HEAL_HP (effect-handler-attack.c:254) */
|
|
264
|
+
[EF.MON_HEAL_HP, handleMON_HEAL_HP],
|
|
265
|
+
/* effect_handler_MON_HEAL_KIN (effect-handler-attack.c:311) */
|
|
266
|
+
[EF.MON_HEAL_KIN, handleMON_HEAL_KIN],
|
|
267
|
+
]);
|
|
268
|
+
/**
|
|
269
|
+
* Register the monster-targeting general effect handlers, overriding the stubs
|
|
270
|
+
* registerCoreHandlers installed. Call after registerCoreHandlers.
|
|
271
|
+
*/
|
|
272
|
+
export function registerMonsterHandlers(registry) {
|
|
273
|
+
for (const [code, handler] of MONSTER_HANDLERS) {
|
|
274
|
+
registry.register(code, { handler, status: "implemented" });
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
/** The monster-effect EF codes this module registers. */
|
|
278
|
+
export const MONSTER_HANDLER_CODES = [
|
|
279
|
+
...MONSTER_HANDLERS.keys(),
|
|
280
|
+
];
|
|
281
|
+
//# sourceMappingURL=effect-monster.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"effect-monster.js","sourceRoot":"","sources":["../../src/game/effect-monster.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAOvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EACL,0BAA0B,EAC1B,OAAO,GACR,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAEzD,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAG/C,kFAAkF;AAClF,SAAS,UAAU,CACjB,GAAyB,EACzB,GAAkB,EAClB,GAAW,EACX,MAAc;IAEd,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC;IACnC,MAAM,OAAO,GAAG,0BAA0B,CAAC,KAAK,EAAE,KAAK,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;IACxE,IAAI,OAAO,GAAG,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;QACtC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,YAAY,OAAO,UAAU,CAAC,CAAC;IACvD,CAAC;IACD,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC;AACpD,CAAC;AAED,mEAAmE;AACnE,MAAM,UAAU,GAAkB,CAAC,GAAG,EAAE,EAAE;IACxC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACzB,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IACtB,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC;IAEtB,+DAA+D;IAC/D,MAAM,MAAM,GACV,GAAG,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS;QAC3B,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;QAChE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;IAEvB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC;IACpC,IAAI,KAAK,GAAG,KAAK,CAAC;IAClB,MAAM,GAAG,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7B,MAAM,GAAG,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC9B,IAAI,CAAC,GAAG;YAAE,SAAS;QACnB,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,IAAI,GAAG,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAE,GAAG,CAAC,EAAE,CAAC;YACxC,2DAA2D;YAC3D,WAAW,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;YACnD,KAAK,GAAG,IAAI,CAAC;QACf,CAAC;IACH,CAAC;IAED,IAAI,KAAK;QAAE,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,6CAA6C,CAAC,CAAC;IAChF,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC;IACjB,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,YAAY,GAAkB,CAAC,GAAG,EAAE,EAAE;IAC1C,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACzB,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IACtB,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC;IAEjB,8BAA8B;IAC9B,IAAI,GAAG,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;QACzB,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,kBAAkB,CAAC,CAAC;QAC1C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,GAAG,GAAG,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACzD,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAE/B,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC;IACtB,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,MAAM,GAAG,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7B,MAAM,GAAG,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC9B,IAAI,CAAC,GAAG;YAAE,SAAS;QACnB,IAAI,eAAe,CAAC,GAAG,CAAC;YAAE,SAAS;QACnC,2DAA2D;QAC3D,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,YAAY,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC;QACnD,IAAI,KAAK,KAAK,GAAG;YAAE,SAAS;QAC5B,aAAa,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACxB,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC/B,CAAC;IAED,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,kCAAkC,CAAC,CAAC;IAC9D,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,iBAAiB,GAAkB,CAAC,GAAG,EAAE,EAAE;IAC/C,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACzB,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IACtB,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC;IAEjB,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC;IAEtB,8BAA8B;IAC9B,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;QACrB,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,kBAAkB,CAAC,CAAC;QAC1C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC;IAC1D,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,MAAM,GAAG,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7B,MAAM,GAAG,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC9B,IAAI,CAAC,GAAG;YAAE,SAAS;QACnB,IAAI,eAAe,CAAC,GAAG,CAAC;YAAE,SAAS;QACnC,IAAI,GAAG,CAAC,IAAI,GAAG,MAAM;YAAE,SAAS;QAChC,aAAa,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACxB,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC/B,CAAC;IAED,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,uCAAuC,CAAC,CAAC;IACnE,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF;;;;;;;;;;GAUG;AACH,SAAS,WAAW,CAClB,GAAyB,EACzB,GAAkB,EAClB,GAAY,EACZ,MAAc,EACd,SAAkB;IAElB,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC;IACtB,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IAC/D,MAAM,IAAI,GAAG,CAAC,KAAK,IAAI,gBAAgB,CAAC,GAAG,CAAC,CAAC;IAC7C,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;IAE3B,eAAe;IACf,GAAG,CAAC,EAAE,IAAI,MAAM,CAAC;IAEjB,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;QACxB,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC;QACnB,IAAI,IAAI,EAAE,CAAC;YACT,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,GAAG,IAAI,wBAAwB,CAAC,CAAC;QACzD,CAAC;aAAM,IAAI,SAAS,EAAE,CAAC;YACrB,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,GAAG,IAAI,yBAAyB,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;SAAM,IAAI,IAAI,EAAE,CAAC;QAChB,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,GAAG,IAAI,mBAAmB,CAAC,CAAC;IACpD,CAAC;SAAM,IAAI,SAAS,EAAE,CAAC;QACrB,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,GAAG,IAAI,oBAAoB,CAAC,CAAC;IACrD,CAAC;IAED,iBAAiB;IACjB,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;QACxC,aAAa,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,IAAI,EAAE,qBAAqB,CAAC,CAAC;QACnE,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,GAAG,IAAI,wBAAwB,CAAC,CAAC;IACzD,CAAC;IAED,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC;AACnB,CAAC;AAED,wDAAwD;AACxD,MAAM,iBAAiB,GAAkB,CAAC,GAAG,EAAE,EAAE;IAC/C,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACzB,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IACtB,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IAC/C,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACnD;;qDAEiD;IACjD,MAAM,MAAM,GAAG,oBAAoB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAChD,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IACtB,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IACzC,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF;;;;GAIG;AACH,SAAS,sBAAsB,CAC7B,KAAgB,EAChB,GAAY;IAEZ,MAAM,SAAS,GAAG,CAAC,CAAC,CAAC,6CAA6C;IAClE,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,KAAK,GAAmB,IAAI,CAAC;IAEjC,KAAK,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,SAAS,EAAE,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC;QACtE,KAAK,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,SAAS,EAAE,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC;YACtE,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACvB,qEAAqE;YACrE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAAE,SAAS;YAC1C,IAAI,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC;gBAAE,SAAS;YACpC,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACnC,IAAI,IAAI,IAAI,CAAC;gBAAE,SAAS;YACxB,MAAM,GAAG,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACjC,IAAI,CAAC,GAAG;gBAAE,SAAS;YACnB,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,CAAC,IAAI;gBAAE,SAAS;YAC9C,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC;gBAAE,SAAS;YAChD,IAAI,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,KAAK;gBAAE,SAAS;YACnC,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,SAAS;gBAAE,SAAS;YAEnD,KAAK,EAAE,CAAC;YACR,IAAI,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC;gBAAE,KAAK,GAAG,GAAG,CAAC;QACnD,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,uEAAuE;AACvE,MAAM,kBAAkB,GAAkB,CAAC,GAAG,EAAE,EAAE;IAChD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACzB,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IACtB,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IAC/C,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACtD,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IAEzB;;yEAEqE;IACrE,MAAM,MAAM,GAAG,oBAAoB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAEhD,qDAAqD;IACrD,MAAM,GAAG,GAAG,sBAAsB,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACtD,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IAEtB;sBACkB;IAClB,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IAC1C,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,8DAA8D;AAC9D,MAAM,gBAAgB,GAAuC,IAAI,GAAG,CAGlE;IACA,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,CAAC;IACrB,2DAA2D;IAC3D,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,CAAC;IACzB,gEAAgE;IAChE,CAAC,EAAE,CAAC,WAAW,EAAE,iBAAiB,CAAC;IACnC,8DAA8D;IAC9D,CAAC,EAAE,CAAC,WAAW,EAAE,iBAAiB,CAAC;IACnC,+DAA+D;IAC/D,CAAC,EAAE,CAAC,YAAY,EAAE,kBAAkB,CAAC;CACtC,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CAAC,QAAwB;IAC9D,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,gBAAgB,EAAE,CAAC;QAC/C,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC;IAC9D,CAAC;AACH,CAAC;AAED,yDAAyD;AACzD,MAAM,CAAC,MAAM,qBAAqB,GAAsB;IACtD,GAAG,gBAAgB,CAAC,IAAI,EAAE;CAC3B,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* EF_SUMMON, ported from reference/src/effect-handler-general.c
|
|
3
|
+
* effect_handler_SUMMON (L2241, Angband 4.2.6), over the live summoning
|
|
4
|
+
* engine (game/mon-place.ts summonSpecific and the mon/summon.ts table).
|
|
5
|
+
*
|
|
6
|
+
* A monster-origin summon keeps calling until the summoned levels' squares
|
|
7
|
+
* pass depth * rlev or the attempts run out, falling back to the type's
|
|
8
|
+
* fallback on total failure ("But nothing comes." when even that fails); a
|
|
9
|
+
* player-origin summon (scroll / staff / trap) simply rolls `value` times,
|
|
10
|
+
* delayed so the player acts first, each with a 1-in-4 chance of calling an
|
|
11
|
+
* off-screen monster instead of creating one. The blind player hears
|
|
12
|
+
* something (or many things) appear nearby.
|
|
13
|
+
*
|
|
14
|
+
* Like the other game-layer handlers it reads context.env.game and no-ops
|
|
15
|
+
* without it; it additionally needs the summon seam (GameEffectEnv.summon)
|
|
16
|
+
* for the bound table and allocation deps, without which it also no-ops.
|
|
17
|
+
* The arena-level guard is omitted (arenas are not modelled); sound(msgt)
|
|
18
|
+
* rides the sound system (#26).
|
|
19
|
+
*/
|
|
20
|
+
import type { EffectRegistry } from "../effects/interpreter.js";
|
|
21
|
+
import type { SummonTable } from "../mon/summon.js";
|
|
22
|
+
import type { MonPlaceDeps } from "./mon-place.js";
|
|
23
|
+
/** The summoning seam on the game effect environment. */
|
|
24
|
+
export interface SummonEffectEnv {
|
|
25
|
+
/** The bound summon table (mon/summon.ts). */
|
|
26
|
+
summons: SummonTable;
|
|
27
|
+
/** Live placement deps (allocation table, trap predicates, group caps). */
|
|
28
|
+
place: MonPlaceDeps;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Register the summoning handler, overriding the stub registerCoreHandlers
|
|
32
|
+
* installed. Call after registerCoreHandlers.
|
|
33
|
+
*/
|
|
34
|
+
export declare function registerSummonHandlers(registry: EffectRegistry): void;
|
|
35
|
+
/** The EF codes this module registers. */
|
|
36
|
+
export declare const SUMMON_HANDLER_CODES: readonly number[];
|
|
37
|
+
//# sourceMappingURL=effect-summon.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"effect-summon.d.ts","sourceRoot":"","sources":["../../src/game/effect-summon.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAGH,OAAO,KAAK,EAEV,cAAc,EACf,MAAM,2BAA2B,CAAC;AAEnC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD,OAAO,KAAK,EAAE,YAAY,EAAc,MAAM,gBAAgB,CAAC;AAG/D,yDAAyD;AACzD,MAAM,WAAW,eAAe;IAC9B,8CAA8C;IAC9C,OAAO,EAAE,WAAW,CAAC;IACrB,2EAA2E;IAC3E,KAAK,EAAE,YAAY,CAAC;CACrB;AAkHD;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI,CAErE;AAED,0CAA0C;AAC1C,eAAO,MAAM,oBAAoB,EAAE,SAAS,MAAM,EAAgB,CAAC"}
|