@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 @@
|
|
|
1
|
+
{"version":3,"file":"mon-cmd.js","sourceRoot":"","sources":["../../src/game/mon-cmd.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Monster death and its loot, ported from reference/src/mon-make.c:mon_create_drop
|
|
3
|
+
* (L751), reference/src/mon-util.c:monster_death (L949) and
|
|
4
|
+
* mon_take_nonplayer_hit / monster_take_terrain_damage (L1193, L1327), Angband
|
|
5
|
+
* 4.2.6.
|
|
6
|
+
*
|
|
7
|
+
* DROP TIMING (faithful): drops are generated at PLACEMENT and carried onto the
|
|
8
|
+
* monster's held pile via monster_carry, stamped with the placement origin
|
|
9
|
+
* (ORIGIN.DROP for live spawns; DROP_PIT / DROP_VAULT / DROP_SPECIAL / DROP for
|
|
10
|
+
* the matching generation contexts, DROP_SUMMON / DROP_BREED / DROP_WIZARD for
|
|
11
|
+
* live summons / breeders / wizard). place_monster calls mon_create_drop when
|
|
12
|
+
* origin != 0 (mon-make.c L1044-1046); the port mirrors that in BOTH placement
|
|
13
|
+
* paths: the GameState-free `createDrop` core here is invoked from
|
|
14
|
+
* game/mon-place.ts placeMonsterLive (live spawns) and gen/util.ts
|
|
15
|
+
* placeNewMonsterOne (level generation). monster_death merely drops that pile to
|
|
16
|
+
* the floor. This matches the upstream RNG-stream position (drops draw during
|
|
17
|
+
* level generation, not at death) and preserves the true drop origins - the
|
|
18
|
+
* earlier "generate at death" deviation is RESCINDED.
|
|
19
|
+
*
|
|
20
|
+
* mon_take_nonplayer_hit is the shared "a non-player source hurt this monster"
|
|
21
|
+
* primitive (terrain, monster-vs-monster) that funnels through monster_death and
|
|
22
|
+
* delete_monster_idx on a kill, mirroring mon_take_hit for player kills.
|
|
23
|
+
*/
|
|
24
|
+
import type { Rng } from "../rng.js";
|
|
25
|
+
import type { MakeDeps } from "../obj/make.js";
|
|
26
|
+
import type { ObjRegistry } from "../obj/bind.js";
|
|
27
|
+
import type { Monster } from "../mon/monster.js";
|
|
28
|
+
import type { LoreStore } from "../mon/lore.js";
|
|
29
|
+
import type { GameState } from "./context.js";
|
|
30
|
+
import type { FloorEnv } from "./floor.js";
|
|
31
|
+
/** Everything monsterDeath needs beyond the GameState (all built in wireGame). */
|
|
32
|
+
export interface MonsterDeathDeps {
|
|
33
|
+
/** MakeDeps for makeObject / makeGold / applyMagic / objectPrep. */
|
|
34
|
+
makeDeps: MakeDeps;
|
|
35
|
+
/** The object registry, for the specified-drop tval/kind/sval lookups. */
|
|
36
|
+
reg: ObjRegistry;
|
|
37
|
+
/** The floor drop environment (isIgnored / isTrap) for dropNear. */
|
|
38
|
+
floorEnv: FloorEnv;
|
|
39
|
+
/** The lore store, for the unique theft reduction and loreTreasure. */
|
|
40
|
+
lore: LoreStore;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* The minimal, GameState-free surface mon_create_drop needs so BOTH the live
|
|
44
|
+
* cave (game/mon-place.ts placeMonsterLive) and level generation (gen/util.ts
|
|
45
|
+
* placeNewMonsterOne) build a monster's drops off the same code, matching
|
|
46
|
+
* upstream where place_monster (mon-make.c L1044) is the single call site both
|
|
47
|
+
* generation and live placement funnel through. The two paths differ only in
|
|
48
|
+
* which stream they draw from (live state.rng vs generation g.rng) and which
|
|
49
|
+
* depth they read; the held-pile carry (monster_carry) never draws RNG, so the
|
|
50
|
+
* object's draws land at the same stream position on either path.
|
|
51
|
+
*/
|
|
52
|
+
export interface DropTarget {
|
|
53
|
+
/** c->depth: origin_depth and the make_object / make_gold creation level. */
|
|
54
|
+
depth: number;
|
|
55
|
+
/** The stream to draw from (live state.rng or generation g.rng). */
|
|
56
|
+
rng: Rng;
|
|
57
|
+
/** make_object / make_gold / apply_magic / object_prep dependencies. */
|
|
58
|
+
makeDeps: MakeDeps;
|
|
59
|
+
/**
|
|
60
|
+
* The lore store, for the unique theft reduction (mon-make.c L778-780).
|
|
61
|
+
* Absent / null => thefts treated as 0, which is faithful for a freshly
|
|
62
|
+
* generated monster that has not been stolen from (and every standalone /
|
|
63
|
+
* unit-test harness with no lore).
|
|
64
|
+
*/
|
|
65
|
+
lore?: LoreStore | null;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* mon_create_drop (mon-make.c L751): generate a monster's gold/items at
|
|
69
|
+
* PLACEMENT and carry them onto its held pile (monster_carry), stamped with the
|
|
70
|
+
* placement `origin` (ORIGIN.DROP for live spawns, DROP_PIT / DROP_VAULT /
|
|
71
|
+
* DROP_SPECIAL for the corresponding generation contexts). Returns whether
|
|
72
|
+
* anything was carried. monster_death (below) later drops this pile.
|
|
73
|
+
*
|
|
74
|
+
* RNG DRAW ORDER (all via target.rng), faithful to mon_create_drop:
|
|
75
|
+
* 1. mon_create_drop_count non-maximize (mon-make.c L775 / L721-734): the DROP_*
|
|
76
|
+
* rolls and the specified-drop loop (which draws even though its count is
|
|
77
|
+
* discarded here) - see mon/make.ts monCreateDropCount.
|
|
78
|
+
* 2. QUESTOR/Morgoth QUEST_ART force-drop (L794): a level-100 QUESTOR force-drops
|
|
79
|
+
* every QUEST_ART artifact - object_prep(RANDOMISE) at lev 100 plus
|
|
80
|
+
* copy_artifact_data curse timeouts per artifact - BEFORE the specified-drop
|
|
81
|
+
* loop, matching upstream's stream position.
|
|
82
|
+
* 3. specified-drops loop (L830): per entry randint0(100) gate FIRST, then object
|
|
83
|
+
* creation (objectPrep+applyMagic by-kind, or makeObject by-tval), then
|
|
84
|
+
* randint0(max-min) for the stack count.
|
|
85
|
+
* 4. generic-drops loop (L867), `number` times: the gold/item decision draws
|
|
86
|
+
* randint0(100) ONLY when goldOk && itemOk are both true (C short-circuit),
|
|
87
|
+
* then makeGold/makeObject internals.
|
|
88
|
+
* monster_carry never fails here (the port's held pile is unbounded), so
|
|
89
|
+
* upstream's mark-uncreated / object_wipe rollback path is unreachable.
|
|
90
|
+
*/
|
|
91
|
+
export declare function createDrop(target: DropTarget, mon: Monster, origin: number): boolean;
|
|
92
|
+
/**
|
|
93
|
+
* Live-cave mon_create_drop: a thin wrapper binding the running GameState to the
|
|
94
|
+
* shared, GameState-free createDrop core (state.rng, state.chunk.depth,
|
|
95
|
+
* deps.makeDeps, deps.lore). RNG- and byte-identical to the pre-refactor
|
|
96
|
+
* function for every live-placed monster; the generation path calls createDrop
|
|
97
|
+
* directly off the Gen context (gen/util.ts).
|
|
98
|
+
*/
|
|
99
|
+
export declare function monCreateDrop(state: GameState, mon: Monster, origin: number, deps: MonsterDeathDeps): boolean;
|
|
100
|
+
/**
|
|
101
|
+
* monster_death (mon-util.c L949): delete the monster's mimicked object, then
|
|
102
|
+
* drop its held pile (the placement-time mon_create_drop items plus anything
|
|
103
|
+
* stolen during play) to the floor at mon.grid, counting the drop for lore.
|
|
104
|
+
* Silent on drops, as upstream. quest_check (L1005) rides the player-kill seam
|
|
105
|
+
* (session/game.ts onPlayerKill), which is the only reachable quest-completing
|
|
106
|
+
* path (only the player kills uniques / quest monsters).
|
|
107
|
+
*
|
|
108
|
+
* The old placement-vs-death drop deviation is RESCINDED: generation now runs at
|
|
109
|
+
* placement (monCreateDrop, called from game/mon-place.ts), so drops land at the
|
|
110
|
+
* upstream RNG-stream position and keep their true DROP_PIT / DROP_VAULT /
|
|
111
|
+
* DROP_SUMMON origins. This function no longer draws generation RNG - only the
|
|
112
|
+
* dropNear grid tie-breaks and loreTreasure.
|
|
113
|
+
*/
|
|
114
|
+
export declare function monsterDeath(state: GameState, mon: Monster, deps: MonsterDeathDeps): void;
|
|
115
|
+
/** The hooks mon_take_nonplayer_hit needs beyond the death deps. */
|
|
116
|
+
export interface NonplayerHitDeps extends MonsterDeathDeps {
|
|
117
|
+
/** add_monster_message text sink (routes formatted lines to state.msg). */
|
|
118
|
+
message?: (text: string) => void;
|
|
119
|
+
}
|
|
120
|
+
/** Install the mon_take_nonplayer_hit deps for a state (session wiring). */
|
|
121
|
+
export declare function installNonplayerHitDeps(state: GameState, deps: NonplayerHitDeps): void;
|
|
122
|
+
/** The installed mon_take_nonplayer_hit deps for a state, or null. */
|
|
123
|
+
export declare function getNonplayerHitDeps(state: GameState): NonplayerHitDeps | null;
|
|
124
|
+
/**
|
|
125
|
+
* mon_take_nonplayer_hit (mon-util.c L1193): inflict `dam` on `tMon` from a
|
|
126
|
+
* non-player source (terrain, another monster). Uniques/arena monsters cannot
|
|
127
|
+
* be killed this way (damage is capped to leave them alive). Wakes the monster
|
|
128
|
+
* without making it player-aware, applies damage, and on death reverts a
|
|
129
|
+
* shapechange, shows the die message, generates loot (monster_death) and deletes
|
|
130
|
+
* the monster; otherwise shows the hurt / pain message and rolls fear. Returns
|
|
131
|
+
* whether the monster died. `hurtMsgCode` / `dieMsgCode` are MON_MSG_* indices
|
|
132
|
+
* (MON_MSG_NONE for hurtMsg falls through to message_pain).
|
|
133
|
+
*/
|
|
134
|
+
export declare function monTakeNonplayerHit(state: GameState, tMon: Monster, dam: number, hurtMsgCode: number, dieMsgCode: number, deps: NonplayerHitDeps): boolean;
|
|
135
|
+
/**
|
|
136
|
+
* monster_take_terrain_damage (mon-util.c L1327): a monster standing on fiery
|
|
137
|
+
* terrain it does not resist takes 100 + 1d100 fire damage via
|
|
138
|
+
* mon_take_nonplayer_hit (MON_MSG_CATCH_FIRE / MON_MSG_DISINTEGRATES). Upstream
|
|
139
|
+
* quirk preserved: the local `fear` flag is never set, so the FLEE_IN_TERROR
|
|
140
|
+
* message never fires. square_isdamaging is feat_is_fiery in 4.2.6 (lava only).
|
|
141
|
+
*/
|
|
142
|
+
export declare function monsterTakeTerrainDamage(state: GameState, mon: Monster, deps: NonplayerHitDeps): void;
|
|
143
|
+
//# sourceMappingURL=mon-death.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mon-death.d.ts","sourceRoot":"","sources":["../../src/game/mon-death.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAGH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAGrC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAQ/C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AASjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAK9C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAG3C,kFAAkF;AAClF,MAAM,WAAW,gBAAgB;IAC/B,oEAAoE;IACpE,QAAQ,EAAE,QAAQ,CAAC;IACnB,0EAA0E;IAC1E,GAAG,EAAE,WAAW,CAAC;IACjB,oEAAoE;IACpE,QAAQ,EAAE,QAAQ,CAAC;IACnB,uEAAuE;IACvE,IAAI,EAAE,SAAS,CAAC;CACjB;AAqBD;;;;;;;;;GASG;AACH,MAAM,WAAW,UAAU;IACzB,6EAA6E;IAC7E,KAAK,EAAE,MAAM,CAAC;IACd,oEAAoE;IACpE,GAAG,EAAE,GAAG,CAAC;IACT,wEAAwE;IACxE,QAAQ,EAAE,QAAQ,CAAC;IACnB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;CACzB;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,UAAU,CACxB,MAAM,EAAE,UAAU,EAClB,GAAG,EAAE,OAAO,EACZ,MAAM,EAAE,MAAM,GACb,OAAO,CA+GT;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,SAAS,EAChB,GAAG,EAAE,OAAO,EACZ,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,gBAAgB,GACrB,OAAO,CAWT;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,YAAY,CAC1B,KAAK,EAAE,SAAS,EAChB,GAAG,EAAE,OAAO,EACZ,IAAI,EAAE,gBAAgB,GACrB,IAAI,CA6CN;AAED,oEAAoE;AACpE,MAAM,WAAW,gBAAiB,SAAQ,gBAAgB;IACxD,2EAA2E;IAC3E,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAClC;AAUD,4EAA4E;AAC5E,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,SAAS,EAChB,IAAI,EAAE,gBAAgB,GACrB,IAAI,CAEN;AAED,sEAAsE;AACtE,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,SAAS,GAAG,gBAAgB,GAAG,IAAI,CAE7E;AAED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,SAAS,EAChB,IAAI,EAAE,OAAO,EACb,GAAG,EAAE,MAAM,EACX,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,gBAAgB,GACrB,OAAO,CA6CT;AAED;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,SAAS,EAChB,GAAG,EAAE,OAAO,EACZ,IAAI,EAAE,gBAAgB,GACrB,IAAI,CAWN"}
|
|
@@ -0,0 +1,328 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Monster death and its loot, ported from reference/src/mon-make.c:mon_create_drop
|
|
3
|
+
* (L751), reference/src/mon-util.c:monster_death (L949) and
|
|
4
|
+
* mon_take_nonplayer_hit / monster_take_terrain_damage (L1193, L1327), Angband
|
|
5
|
+
* 4.2.6.
|
|
6
|
+
*
|
|
7
|
+
* DROP TIMING (faithful): drops are generated at PLACEMENT and carried onto the
|
|
8
|
+
* monster's held pile via monster_carry, stamped with the placement origin
|
|
9
|
+
* (ORIGIN.DROP for live spawns; DROP_PIT / DROP_VAULT / DROP_SPECIAL / DROP for
|
|
10
|
+
* the matching generation contexts, DROP_SUMMON / DROP_BREED / DROP_WIZARD for
|
|
11
|
+
* live summons / breeders / wizard). place_monster calls mon_create_drop when
|
|
12
|
+
* origin != 0 (mon-make.c L1044-1046); the port mirrors that in BOTH placement
|
|
13
|
+
* paths: the GameState-free `createDrop` core here is invoked from
|
|
14
|
+
* game/mon-place.ts placeMonsterLive (live spawns) and gen/util.ts
|
|
15
|
+
* placeNewMonsterOne (level generation). monster_death merely drops that pile to
|
|
16
|
+
* the floor. This matches the upstream RNG-stream position (drops draw during
|
|
17
|
+
* level generation, not at death) and preserves the true drop origins - the
|
|
18
|
+
* earlier "generate at death" deviation is RESCINDED.
|
|
19
|
+
*
|
|
20
|
+
* mon_take_nonplayer_hit is the shared "a non-player source hurt this monster"
|
|
21
|
+
* primitive (terrain, monster-vs-monster) that funnels through monster_death and
|
|
22
|
+
* delete_monster_idx on a kill, mirroring mon_take_hit for player kills.
|
|
23
|
+
*/
|
|
24
|
+
import { KF, MON_MSG, ORIGIN, RF } from "../generated/index.js";
|
|
25
|
+
import { tvalIsMoney } from "../obj/object.js";
|
|
26
|
+
import { applyMagic, copyArtifactData, makeGold, makeObject, objectPrep, } from "../obj/make.js";
|
|
27
|
+
import { tvalFindIdx } from "../obj/bind.js";
|
|
28
|
+
import { monCreateDropCount, monsterCarry } from "../mon/make.js";
|
|
29
|
+
import { monsterIsCamouflaged, monsterIsUnique, monsterIsVisible, } from "../mon/predicate.js";
|
|
30
|
+
import { monsterScaredByDamage, monsterWake } from "../mon/take-hit.js";
|
|
31
|
+
import { MON_TMD } from "../generated/index.js";
|
|
32
|
+
import { getLore, loreTreasure } from "../mon/lore.js";
|
|
33
|
+
import { deleteMonster } from "./context.js";
|
|
34
|
+
import { monsterPrimaryGroupSize } from "./mon-group.js";
|
|
35
|
+
import { monsterRevertShape } from "./mon-shape.js";
|
|
36
|
+
import { formatMonsterMessage, formatPainMessage } from "./mon-message.js";
|
|
37
|
+
import { dropNear, floorExcise, floorPile } from "./floor.js";
|
|
38
|
+
/**
|
|
39
|
+
* The subset of ORIGIN_* values that monster_death (mon-util.c L975-982) counts
|
|
40
|
+
* as a dropped item for lore. Generated drops carry their placement origin
|
|
41
|
+
* (DROP / DROP_PIT / DROP_VAULT / DROP_SUMMON / ...); a stolen item keeps
|
|
42
|
+
* ORIGIN.STOLEN and so is NOT counted.
|
|
43
|
+
*/
|
|
44
|
+
function isDropOrigin(origin) {
|
|
45
|
+
return (origin === ORIGIN.DROP ||
|
|
46
|
+
origin === ORIGIN.DROP_PIT ||
|
|
47
|
+
origin === ORIGIN.DROP_VAULT ||
|
|
48
|
+
origin === ORIGIN.DROP_SUMMON ||
|
|
49
|
+
origin === ORIGIN.DROP_SPECIAL ||
|
|
50
|
+
origin === ORIGIN.DROP_BREED ||
|
|
51
|
+
origin === ORIGIN.DROP_POLY ||
|
|
52
|
+
origin === ORIGIN.DROP_WIZARD);
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* mon_create_drop (mon-make.c L751): generate a monster's gold/items at
|
|
56
|
+
* PLACEMENT and carry them onto its held pile (monster_carry), stamped with the
|
|
57
|
+
* placement `origin` (ORIGIN.DROP for live spawns, DROP_PIT / DROP_VAULT /
|
|
58
|
+
* DROP_SPECIAL for the corresponding generation contexts). Returns whether
|
|
59
|
+
* anything was carried. monster_death (below) later drops this pile.
|
|
60
|
+
*
|
|
61
|
+
* RNG DRAW ORDER (all via target.rng), faithful to mon_create_drop:
|
|
62
|
+
* 1. mon_create_drop_count non-maximize (mon-make.c L775 / L721-734): the DROP_*
|
|
63
|
+
* rolls and the specified-drop loop (which draws even though its count is
|
|
64
|
+
* discarded here) - see mon/make.ts monCreateDropCount.
|
|
65
|
+
* 2. QUESTOR/Morgoth QUEST_ART force-drop (L794): a level-100 QUESTOR force-drops
|
|
66
|
+
* every QUEST_ART artifact - object_prep(RANDOMISE) at lev 100 plus
|
|
67
|
+
* copy_artifact_data curse timeouts per artifact - BEFORE the specified-drop
|
|
68
|
+
* loop, matching upstream's stream position.
|
|
69
|
+
* 3. specified-drops loop (L830): per entry randint0(100) gate FIRST, then object
|
|
70
|
+
* creation (objectPrep+applyMagic by-kind, or makeObject by-tval), then
|
|
71
|
+
* randint0(max-min) for the stack count.
|
|
72
|
+
* 4. generic-drops loop (L867), `number` times: the gold/item decision draws
|
|
73
|
+
* randint0(100) ONLY when goldOk && itemOk are both true (C short-circuit),
|
|
74
|
+
* then makeGold/makeObject internals.
|
|
75
|
+
* monster_carry never fails here (the port's held pile is unbounded), so
|
|
76
|
+
* upstream's mark-uncreated / object_wipe rollback path is unreachable.
|
|
77
|
+
*/
|
|
78
|
+
export function createDrop(target, mon, origin) {
|
|
79
|
+
const rng = target.rng;
|
|
80
|
+
const { makeDeps, depth } = target;
|
|
81
|
+
const reg = makeDeps.reg;
|
|
82
|
+
/* effective_race (mon-make.c L767): the pre-shapechange race, if any. */
|
|
83
|
+
const effectiveRace = mon.originalRace ?? mon.race;
|
|
84
|
+
/* thefts (mon-make.c L779): only uniques that have been stolen from care;
|
|
85
|
+
* absent lore (fresh generation) => 0, as a never-stolen-from monster. */
|
|
86
|
+
const thefts = target.lore ? getLore(target.lore, mon.race).thefts : 0;
|
|
87
|
+
const great = effectiveRace.flags.has(RF.DROP_GREAT);
|
|
88
|
+
const good = great || effectiveRace.flags.has(RF.DROP_GOOD);
|
|
89
|
+
const goldOk = !effectiveRace.flags.has(RF.ONLY_ITEM);
|
|
90
|
+
const itemOk = !effectiveRace.flags.has(RF.ONLY_GOLD);
|
|
91
|
+
/* How many generic drops (mon-make.c L775). */
|
|
92
|
+
let number = monCreateDropCount(rng, effectiveRace, false, false).number;
|
|
93
|
+
/* Uniques that have been stolen from get their quantity reduced (L778). */
|
|
94
|
+
if (monsterIsUnique(mon)) {
|
|
95
|
+
number = Math.max(0, number - thefts);
|
|
96
|
+
}
|
|
97
|
+
/* Unique bonus to the effective monster level (L783-787). */
|
|
98
|
+
let monlevel = effectiveRace.level;
|
|
99
|
+
let extraRoll = false;
|
|
100
|
+
if (monsterIsUnique(mon)) {
|
|
101
|
+
monlevel = Math.min(monlevel + 15, monlevel * 2);
|
|
102
|
+
extraRoll = true;
|
|
103
|
+
}
|
|
104
|
+
/* Reward fighting OOD monsters (L791-792, integer division). */
|
|
105
|
+
let level = Math.max(Math.trunc((monlevel + depth) / 2), monlevel);
|
|
106
|
+
level = Math.min(level, 100);
|
|
107
|
+
let any = false;
|
|
108
|
+
/* Morgoth's QUEST_ART force-drop (mon-make.c L794-827). */
|
|
109
|
+
if (effectiveRace.flags.has(RF.QUESTOR) && effectiveRace.level === 100) {
|
|
110
|
+
for (let j = 1; j < reg.artifacts.length; j++) {
|
|
111
|
+
const art = reg.artifacts[j];
|
|
112
|
+
if (!art)
|
|
113
|
+
continue;
|
|
114
|
+
const kind = reg.lookupKind(art.tval, art.sval);
|
|
115
|
+
if (!kind || !kind.kindFlags.has(KF.QUEST_ART))
|
|
116
|
+
continue;
|
|
117
|
+
const obj = objectPrep(rng, reg, makeDeps.constants, kind, 100, "randomise");
|
|
118
|
+
obj.artifact = art;
|
|
119
|
+
copyArtifactData(rng, reg, obj, art);
|
|
120
|
+
makeDeps.artifacts.markCreated(art.aidx, true);
|
|
121
|
+
obj.origin = origin;
|
|
122
|
+
obj.originDepth = depth;
|
|
123
|
+
obj.originRace = effectiveRace.ridx;
|
|
124
|
+
obj.number = 1;
|
|
125
|
+
monsterCarry(mon.heldObj, obj, mon.midx);
|
|
126
|
+
any = true;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
/* Specified drops (mon-make.c L830). */
|
|
130
|
+
for (const drop of effectiveRace.drops) {
|
|
131
|
+
if (rng.randint0(100) >= drop.percentChance)
|
|
132
|
+
continue;
|
|
133
|
+
const tvalNum = tvalFindIdx(drop.tval);
|
|
134
|
+
let obj;
|
|
135
|
+
if (drop.sval !== null) {
|
|
136
|
+
/* Specified by kind (drop->kind). */
|
|
137
|
+
const sval = reg.lookupSval(tvalNum, drop.sval);
|
|
138
|
+
const kind = reg.lookupKind(tvalNum, sval);
|
|
139
|
+
if (!kind)
|
|
140
|
+
continue;
|
|
141
|
+
obj = objectPrep(rng, reg, makeDeps.constants, kind, level, "randomise");
|
|
142
|
+
applyMagic(rng, makeDeps, obj, level, true, good, great, extraRoll, depth);
|
|
143
|
+
}
|
|
144
|
+
else {
|
|
145
|
+
/* Specified by tval (drop->tval). */
|
|
146
|
+
obj = makeObject(rng, makeDeps, level, good, great, extraRoll, tvalNum, depth);
|
|
147
|
+
}
|
|
148
|
+
if (!obj)
|
|
149
|
+
continue;
|
|
150
|
+
obj.origin = origin;
|
|
151
|
+
obj.originDepth = depth;
|
|
152
|
+
obj.originRace = effectiveRace.ridx;
|
|
153
|
+
obj.number = obj.artifact
|
|
154
|
+
? 1
|
|
155
|
+
: rng.randint0(drop.max - drop.min) + drop.min;
|
|
156
|
+
monsterCarry(mon.heldObj, obj, mon.midx);
|
|
157
|
+
any = true;
|
|
158
|
+
}
|
|
159
|
+
/* Generic drops (mon-make.c L867). */
|
|
160
|
+
for (let j = 0; j < number; j++) {
|
|
161
|
+
let obj;
|
|
162
|
+
if (goldOk && (!itemOk || rng.randint0(100) < 50)) {
|
|
163
|
+
obj = makeGold(rng, makeDeps, level, "any");
|
|
164
|
+
}
|
|
165
|
+
else {
|
|
166
|
+
obj = makeObject(rng, makeDeps, level, good, great, extraRoll, 0, depth);
|
|
167
|
+
if (!obj)
|
|
168
|
+
continue;
|
|
169
|
+
}
|
|
170
|
+
obj.origin = origin;
|
|
171
|
+
obj.originDepth = depth;
|
|
172
|
+
obj.originRace = effectiveRace.ridx;
|
|
173
|
+
monsterCarry(mon.heldObj, obj, mon.midx);
|
|
174
|
+
any = true;
|
|
175
|
+
}
|
|
176
|
+
return any;
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Live-cave mon_create_drop: a thin wrapper binding the running GameState to the
|
|
180
|
+
* shared, GameState-free createDrop core (state.rng, state.chunk.depth,
|
|
181
|
+
* deps.makeDeps, deps.lore). RNG- and byte-identical to the pre-refactor
|
|
182
|
+
* function for every live-placed monster; the generation path calls createDrop
|
|
183
|
+
* directly off the Gen context (gen/util.ts).
|
|
184
|
+
*/
|
|
185
|
+
export function monCreateDrop(state, mon, origin, deps) {
|
|
186
|
+
return createDrop({
|
|
187
|
+
rng: state.rng,
|
|
188
|
+
depth: state.chunk.depth,
|
|
189
|
+
makeDeps: deps.makeDeps,
|
|
190
|
+
lore: deps.lore,
|
|
191
|
+
}, mon, origin);
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* monster_death (mon-util.c L949): delete the monster's mimicked object, then
|
|
195
|
+
* drop its held pile (the placement-time mon_create_drop items plus anything
|
|
196
|
+
* stolen during play) to the floor at mon.grid, counting the drop for lore.
|
|
197
|
+
* Silent on drops, as upstream. quest_check (L1005) rides the player-kill seam
|
|
198
|
+
* (session/game.ts onPlayerKill), which is the only reachable quest-completing
|
|
199
|
+
* path (only the player kills uniques / quest monsters).
|
|
200
|
+
*
|
|
201
|
+
* The old placement-vs-death drop deviation is RESCINDED: generation now runs at
|
|
202
|
+
* placement (monCreateDrop, called from game/mon-place.ts), so drops land at the
|
|
203
|
+
* upstream RNG-stream position and keep their true DROP_PIT / DROP_VAULT /
|
|
204
|
+
* DROP_SUMMON origins. This function no longer draws generation RNG - only the
|
|
205
|
+
* dropNear grid tie-breaks and loreTreasure.
|
|
206
|
+
*/
|
|
207
|
+
export function monsterDeath(state, mon, deps) {
|
|
208
|
+
const rng = state.rng;
|
|
209
|
+
const lore = getLore(deps.lore, mon.race);
|
|
210
|
+
const visible = monsterIsVisible(mon) || monsterIsUnique(mon);
|
|
211
|
+
/* Delete any mimicked object (mon-util.c L957-961): square_delete_object of
|
|
212
|
+
* the fake floor item this monster was imitating, before dropping loot. */
|
|
213
|
+
if (mon.mimickedObj) {
|
|
214
|
+
const pile = floorPile(state, mon.grid);
|
|
215
|
+
const fake = pile.find((o) => o.mimickingMIdx === mon.midx);
|
|
216
|
+
if (fake)
|
|
217
|
+
floorExcise(state, mon.grid, fake);
|
|
218
|
+
mon.mimickedObj = 0;
|
|
219
|
+
}
|
|
220
|
+
/* Drop objects being carried (monster_death L963-992). */
|
|
221
|
+
const held = mon.heldObj;
|
|
222
|
+
mon.heldObj = [];
|
|
223
|
+
let dumpItem = 0;
|
|
224
|
+
let dumpGold = 0;
|
|
225
|
+
for (const obj of held) {
|
|
226
|
+
obj.heldMIdx = 0;
|
|
227
|
+
/* Count it for lore BEFORE any origin change (L972-984). */
|
|
228
|
+
if (tvalIsMoney(obj.tval) && obj.origin !== ORIGIN.STOLEN) {
|
|
229
|
+
dumpGold++;
|
|
230
|
+
}
|
|
231
|
+
else if (!tvalIsMoney(obj.tval) && isDropOrigin(obj.origin)) {
|
|
232
|
+
dumpItem++;
|
|
233
|
+
}
|
|
234
|
+
/* Change origin if the monster is invisible (L987-988). */
|
|
235
|
+
if (!visible)
|
|
236
|
+
obj.origin = ORIGIN.DROP_UNKNOWN;
|
|
237
|
+
/* drop_near(cave, &obj, 0, mon->grid, true, false): chance 0, prefer_pile
|
|
238
|
+
* FALSE (mon-util.c L990; the port's boolean slot is preferPile). */
|
|
239
|
+
dropNear(state, obj, 0, mon.grid, true, false, deps.floorEnv);
|
|
240
|
+
}
|
|
241
|
+
/* Take note of any dropped treasure (monster_death L998-999). */
|
|
242
|
+
if (visible && (dumpItem || dumpGold)) {
|
|
243
|
+
loreTreasure(rng, lore, dumpItem, dumpGold);
|
|
244
|
+
}
|
|
245
|
+
/* DEFERRED: the PR_MONLIST redraw (L1002, UI). quest_check (L1005) is wired at
|
|
246
|
+
* the player-kill seam (session/game.ts). */
|
|
247
|
+
}
|
|
248
|
+
/**
|
|
249
|
+
* The per-state registry the scheduler reads for terrain damage
|
|
250
|
+
* (monster_take_terrain_damage runs inside process_monsters, which has no deps
|
|
251
|
+
* of its own). The session installs the deps once after building the death
|
|
252
|
+
* deps; absent, terrain damage is inert (the pre-port behaviour).
|
|
253
|
+
*/
|
|
254
|
+
const NONPLAYER_HIT_DEPS = new WeakMap();
|
|
255
|
+
/** Install the mon_take_nonplayer_hit deps for a state (session wiring). */
|
|
256
|
+
export function installNonplayerHitDeps(state, deps) {
|
|
257
|
+
NONPLAYER_HIT_DEPS.set(state, deps);
|
|
258
|
+
}
|
|
259
|
+
/** The installed mon_take_nonplayer_hit deps for a state, or null. */
|
|
260
|
+
export function getNonplayerHitDeps(state) {
|
|
261
|
+
return NONPLAYER_HIT_DEPS.get(state) ?? null;
|
|
262
|
+
}
|
|
263
|
+
/**
|
|
264
|
+
* mon_take_nonplayer_hit (mon-util.c L1193): inflict `dam` on `tMon` from a
|
|
265
|
+
* non-player source (terrain, another monster). Uniques/arena monsters cannot
|
|
266
|
+
* be killed this way (damage is capped to leave them alive). Wakes the monster
|
|
267
|
+
* without making it player-aware, applies damage, and on death reverts a
|
|
268
|
+
* shapechange, shows the die message, generates loot (monster_death) and deletes
|
|
269
|
+
* the monster; otherwise shows the hurt / pain message and rolls fear. Returns
|
|
270
|
+
* whether the monster died. `hurtMsgCode` / `dieMsgCode` are MON_MSG_* indices
|
|
271
|
+
* (MON_MSG_NONE for hurtMsg falls through to message_pain).
|
|
272
|
+
*/
|
|
273
|
+
export function monTakeNonplayerHit(state, tMon, dam, hurtMsgCode, dieMsgCode, deps) {
|
|
274
|
+
const rng = state.rng;
|
|
275
|
+
const emit = (text) => {
|
|
276
|
+
if (text)
|
|
277
|
+
(deps.message ?? state.msg ?? (() => { }))(text);
|
|
278
|
+
};
|
|
279
|
+
/* "Unique" or arena monsters can only be "killed" by the player. */
|
|
280
|
+
if (monsterIsUnique(tMon) || state.arenaLevel) {
|
|
281
|
+
if (dam > tMon.hp)
|
|
282
|
+
dam = tMon.hp;
|
|
283
|
+
}
|
|
284
|
+
/* Wake the monster up, but it does not become aware of the player. */
|
|
285
|
+
monsterWake(rng, tMon, false, 0);
|
|
286
|
+
/* Hurt the monster. */
|
|
287
|
+
tMon.hp -= dam;
|
|
288
|
+
if (tMon.hp < 0) {
|
|
289
|
+
/* Shapechanged monsters revert on death. */
|
|
290
|
+
if (tMon.originalRace)
|
|
291
|
+
monsterRevertShape(state, tMon);
|
|
292
|
+
/* Death message. */
|
|
293
|
+
emit(formatMonsterMessage(tMon, dieMsgCode));
|
|
294
|
+
/* Generate treasure and delete the monster. */
|
|
295
|
+
monsterDeath(state, tMon, deps);
|
|
296
|
+
deleteMonster(state, tMon.midx);
|
|
297
|
+
return true;
|
|
298
|
+
}
|
|
299
|
+
/* Give detailed messages if visible and not camouflaged. */
|
|
300
|
+
if (!monsterIsCamouflaged(tMon)) {
|
|
301
|
+
if (hurtMsgCode !== MON_MSG.NONE) {
|
|
302
|
+
emit(formatMonsterMessage(tMon, hurtMsgCode));
|
|
303
|
+
}
|
|
304
|
+
else if (dam > 0) {
|
|
305
|
+
emit(formatPainMessage(tMon, dam));
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
/* Sometimes a monster gets scared by damage (group fear-save per member). */
|
|
309
|
+
if (!tMon.mTimed[MON_TMD.FEAR] && dam > 0) {
|
|
310
|
+
monsterScaredByDamage(rng, tMon, dam, monsterPrimaryGroupSize(state, tMon));
|
|
311
|
+
}
|
|
312
|
+
return false;
|
|
313
|
+
}
|
|
314
|
+
/**
|
|
315
|
+
* monster_take_terrain_damage (mon-util.c L1327): a monster standing on fiery
|
|
316
|
+
* terrain it does not resist takes 100 + 1d100 fire damage via
|
|
317
|
+
* mon_take_nonplayer_hit (MON_MSG_CATCH_FIRE / MON_MSG_DISINTEGRATES). Upstream
|
|
318
|
+
* quirk preserved: the local `fear` flag is never set, so the FLEE_IN_TERROR
|
|
319
|
+
* message never fires. square_isdamaging is feat_is_fiery in 4.2.6 (lava only).
|
|
320
|
+
*/
|
|
321
|
+
export function monsterTakeTerrainDamage(state, mon, deps) {
|
|
322
|
+
if (!state.chunk.isFiery(mon.grid))
|
|
323
|
+
return;
|
|
324
|
+
if (mon.race.flags.has(state.chunk.feature(mon.grid).resistFlag))
|
|
325
|
+
return;
|
|
326
|
+
monTakeNonplayerHit(state, mon, 100 + state.rng.randint1(100), MON_MSG.CATCH_FIRE, MON_MSG.DISINTEGRATES, deps);
|
|
327
|
+
}
|
|
328
|
+
//# sourceMappingURL=mon-death.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mon-death.js","sourceRoot":"","sources":["../../src/game/mon-death.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Monster group behaviours, ported from reference/src/mon-group.c (Angband
|
|
3
|
+
* 4.2.6): the pack bookkeeping that lets monsters share a leader, split when the
|
|
4
|
+
* leader dies, rouse each other and track the player as a group. Groups live on
|
|
5
|
+
* the GameState (state.groups, parallel to state.monsters), so this is a game-
|
|
6
|
+
* layer module.
|
|
7
|
+
*
|
|
8
|
+
* The upstream member list is a linked list whose head is the most recently
|
|
9
|
+
* added member; here it is an array with the same head-first order (add
|
|
10
|
+
* prepends), so the leader-succession scan and the split behaviour match. The
|
|
11
|
+
* group model (Monster.group_info primary/summon slots and the MON_GROUP roles)
|
|
12
|
+
* is already on the monster (mon/monster.ts).
|
|
13
|
+
*
|
|
14
|
+
* monster_group_free (mon-group.c:39) has no counterpart: it only mem_frees the
|
|
15
|
+
* member-list entries and the group struct. Its observable half - clearing the
|
|
16
|
+
* chunk's group slot - is `state.groups[index] = null` at both upstream call
|
|
17
|
+
* sites (monster_group_remove_leader L128 and monster_remove_from_groups L169);
|
|
18
|
+
* the third caller, wipe_mon_list (mon-make.c:613), is level teardown that the
|
|
19
|
+
* port does by dropping the whole state.groups array.
|
|
20
|
+
*
|
|
21
|
+
* Divergences: state.groups grows on demand rather than being capped at
|
|
22
|
+
* z_info->level_monster_max (monster_group_index_new never "fails" here); the
|
|
23
|
+
* rouse visibility test uses line of sight (monster_can_see, which also weighs
|
|
24
|
+
* range and light, is not ported). Placement assignment and delete removal are
|
|
25
|
+
* wired by their callers (monster generation / deleteMonster); the AI consumers
|
|
26
|
+
* (rouse in the monster turn, group tracking in get_move) are wired separately.
|
|
27
|
+
*/
|
|
28
|
+
import type { Monster, MonsterGroupInfo } from "../mon/monster.js";
|
|
29
|
+
import type { GameState, MonsterGroup } from "./context.js";
|
|
30
|
+
/** Allocate a new (empty) monster group with the given index. */
|
|
31
|
+
export declare function monsterGroupNew(index: number): MonsterGroup;
|
|
32
|
+
/** monster_group_by_index. */
|
|
33
|
+
export declare function monsterGroupByIndex(state: GameState, index: number): MonsterGroup | null;
|
|
34
|
+
/** monster_group_index. */
|
|
35
|
+
export declare function monsterGroupIndex(group: MonsterGroup): number;
|
|
36
|
+
/** monster_group_leader_idx. */
|
|
37
|
+
export declare function monsterGroupLeaderIdx(group: MonsterGroup): number;
|
|
38
|
+
/** monster_group_leader: the leader monster of a monster's primary group. */
|
|
39
|
+
export declare function monsterGroupLeader(state: GameState, mon: Monster): Monster | null;
|
|
40
|
+
/** monster_group_index_new: the next free group slot (grows the array). */
|
|
41
|
+
export declare function monsterGroupIndexNew(state: GameState): number;
|
|
42
|
+
/** monster_add_to_group: prepend the monster to a group's member list. */
|
|
43
|
+
export declare function monsterAddToGroup(state: GameState, mon: Monster, group: MonsterGroup): void;
|
|
44
|
+
/** monster_group_start: make a one-monster group led by `mon` in slot `which`. */
|
|
45
|
+
export declare function monsterGroupStart(state: GameState, mon: Monster, which: number): void;
|
|
46
|
+
/**
|
|
47
|
+
* monster_remove_from_groups: drop a monster from its groups, removing an empty
|
|
48
|
+
* group and handling the loss of a leader.
|
|
49
|
+
*/
|
|
50
|
+
export declare function monsterRemoveFromGroups(state: GameState, mon: Monster): void;
|
|
51
|
+
/**
|
|
52
|
+
* monster_group_assign: place a monster into its group(s). For a freshly
|
|
53
|
+
* created monster (loading=false) start or join the primary group; when loading
|
|
54
|
+
* a savefile build both slots by hand from the saved info.
|
|
55
|
+
*/
|
|
56
|
+
export declare function monsterGroupAssign(state: GameState, mon: Monster, info: MonsterGroupInfo[], loading: boolean): void;
|
|
57
|
+
/**
|
|
58
|
+
* monster_group_change_index: rewrite a monster's midx in its group(s) (used
|
|
59
|
+
* when the monster list is compacted). Returns whether the old midx was found.
|
|
60
|
+
*/
|
|
61
|
+
export declare function monsterGroupChangeIndex(state: GameState, newMidx: number, oldMidx: number): boolean;
|
|
62
|
+
/** summon_group: the group summoned creatures join for a given summoner. */
|
|
63
|
+
export declare function summonGroup(state: GameState, midx: number): MonsterGroup | null;
|
|
64
|
+
/**
|
|
65
|
+
* monster_group_rouse: an aware monster tries to wake sleeping group-mates it
|
|
66
|
+
* can see, more likely the closer they are. Visibility uses line of sight.
|
|
67
|
+
*/
|
|
68
|
+
export declare function monsterGroupRouse(state: GameState, mon: Monster): void;
|
|
69
|
+
/** monster_primary_group_size: the member count of a monster's primary group. */
|
|
70
|
+
export declare function monsterPrimaryGroupSize(state: GameState, mon: Monster): number;
|
|
71
|
+
/**
|
|
72
|
+
* group_monster_tracking: a group-mate that is actively tracking the player
|
|
73
|
+
* (so a monster with no direct trail can follow the pack), or null.
|
|
74
|
+
*/
|
|
75
|
+
export declare function groupMonsterTracking(state: GameState, mon: Monster): Monster | null;
|
|
76
|
+
/**
|
|
77
|
+
* monster_groups_verify: assert every group member's group_info points back at
|
|
78
|
+
* the group it is listed in (throws on an inconsistency, as upstream quits).
|
|
79
|
+
*/
|
|
80
|
+
export declare function monsterGroupsVerify(state: GameState): void;
|
|
81
|
+
//# sourceMappingURL=mon-group.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mon-group.d.ts","sourceRoot":"","sources":["../../src/game/mon-group.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAQH,OAAO,KAAK,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAEnE,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5D,iEAAiE;AACjE,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,CAE3D;AAED,8BAA8B;AAC9B,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,SAAS,EAChB,KAAK,EAAE,MAAM,GACZ,YAAY,GAAG,IAAI,CAErB;AAED,2BAA2B;AAC3B,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,CAE7D;AAED,gCAAgC;AAChC,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,CAEjE;AAED,6EAA6E;AAC7E,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,SAAS,EAChB,GAAG,EAAE,OAAO,GACX,OAAO,GAAG,IAAI,CAIhB;AAED,2EAA2E;AAC3E,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CAK7D;AAED,0EAA0E;AAC1E,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,SAAS,EAChB,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,YAAY,GAClB,IAAI,CAEN;AAED,kFAAkF;AAClF,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,SAAS,EAChB,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,MAAM,GACZ,IAAI,CAON;AAoED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,GAAG,IAAI,CAqB5E;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,SAAS,EAChB,GAAG,EAAE,OAAO,EACZ,IAAI,EAAE,gBAAgB,EAAE,EACxB,OAAO,EAAE,OAAO,GACf,IAAI,CAyBN;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,SAAS,EAChB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GACd,OAAO,CAyBT;AAED,4EAA4E;AAC5E,wBAAgB,WAAW,CACzB,KAAK,EAAE,SAAS,EAChB,IAAI,EAAE,MAAM,GACX,YAAY,GAAG,IAAI,CAgBrB;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,GAAG,IAAI,CAatE;AAED,iFAAiF;AACjF,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,SAAS,EAChB,GAAG,EAAE,OAAO,GACX,MAAM,CAGR;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,SAAS,EAChB,GAAG,EAAE,OAAO,GACX,OAAO,GAAG,IAAI,CAehB;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,CAsB1D"}
|