@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
package/src/color.ts
ADDED
|
@@ -0,0 +1,267 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The Angband color palette, ported from reference/src/z-color.h and
|
|
3
|
+
* z-color.c (Angband 4.2.6): 28 named colors plus four zero-initialized
|
|
4
|
+
* color_table rows, their pref-file attr characters, the classic RGB values
|
|
5
|
+
* front ends render with, and the color_table[].color_translate[] matrix
|
|
6
|
+
* (z-color.c L66-155) used by get_color() to remap colors for mono/16-color
|
|
7
|
+
* terms, torchlight/darkness, mouse highlight, and metallic shimmer.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
export const COLOUR_DARK = 0;
|
|
11
|
+
export const COLOUR_WHITE = 1;
|
|
12
|
+
export const COLOUR_SLATE = 2;
|
|
13
|
+
export const COLOUR_ORANGE = 3;
|
|
14
|
+
export const COLOUR_RED = 4;
|
|
15
|
+
export const COLOUR_GREEN = 5;
|
|
16
|
+
export const COLOUR_BLUE = 6;
|
|
17
|
+
export const COLOUR_UMBER = 7;
|
|
18
|
+
export const COLOUR_L_DARK = 8;
|
|
19
|
+
export const COLOUR_L_WHITE = 9;
|
|
20
|
+
export const COLOUR_L_PURPLE = 10;
|
|
21
|
+
export const COLOUR_YELLOW = 11;
|
|
22
|
+
export const COLOUR_L_RED = 12;
|
|
23
|
+
export const COLOUR_L_GREEN = 13;
|
|
24
|
+
export const COLOUR_L_BLUE = 14;
|
|
25
|
+
export const COLOUR_L_UMBER = 15;
|
|
26
|
+
export const COLOUR_PURPLE = 16;
|
|
27
|
+
export const COLOUR_VIOLET = 17;
|
|
28
|
+
export const COLOUR_TEAL = 18;
|
|
29
|
+
export const COLOUR_MUD = 19;
|
|
30
|
+
export const COLOUR_L_YELLOW = 20;
|
|
31
|
+
export const COLOUR_MAGENTA = 21;
|
|
32
|
+
export const COLOUR_L_TEAL = 22;
|
|
33
|
+
export const COLOUR_L_VIOLET = 23;
|
|
34
|
+
export const COLOUR_L_PINK = 24;
|
|
35
|
+
export const COLOUR_MUSTARD = 25;
|
|
36
|
+
export const COLOUR_BLUE_SLATE = 26;
|
|
37
|
+
export const COLOUR_DEEP_L_BLUE = 27;
|
|
38
|
+
export const COLOUR_SHADE = 28;
|
|
39
|
+
|
|
40
|
+
/** z-color.h:77-78: the table has 32 rows, 29 of them basic colours. */
|
|
41
|
+
export const MAX_COLORS = 32;
|
|
42
|
+
export const BASIC_COLORS = 29;
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Column indices into ColorInfo.translate, matching z-color.h's
|
|
46
|
+
* ATTR_* defines (MAX_ATTR = 9). The column order mirrors the
|
|
47
|
+
* "full mono vga blind lighter darker highlight metallic misc"
|
|
48
|
+
* comment above color_table[] in z-color.c.
|
|
49
|
+
*/
|
|
50
|
+
export const ATTR_FULL = 0;
|
|
51
|
+
export const ATTR_MONO = 1;
|
|
52
|
+
export const ATTR_VGA = 2;
|
|
53
|
+
export const ATTR_BLIND = 3;
|
|
54
|
+
export const ATTR_LIGHT = 4;
|
|
55
|
+
export const ATTR_DARK = 5;
|
|
56
|
+
export const ATTR_HIGH = 6;
|
|
57
|
+
export const ATTR_METAL = 7;
|
|
58
|
+
export const ATTR_MISC = 8;
|
|
59
|
+
export const MAX_ATTR = 9;
|
|
60
|
+
|
|
61
|
+
export interface ColorInfo {
|
|
62
|
+
/** The pref-file attr character (color_table[].index_char). */
|
|
63
|
+
char: string;
|
|
64
|
+
/** The human-readable name (color_table[].name). */
|
|
65
|
+
name: string;
|
|
66
|
+
/** Default RGB for named rows; shade RGB exists only in angbandColorTable. */
|
|
67
|
+
rgb: readonly [number, number, number];
|
|
68
|
+
/**
|
|
69
|
+
* color_table[].color_translate[]: one COLOUR_* index per ATTR_*
|
|
70
|
+
* column (full/mono/vga/blind/lighter/darker/highlight/metallic/misc).
|
|
71
|
+
* Index 28 (Shade) has no explicit row in z-color.c -- the C array
|
|
72
|
+
* relies on static zero-initialization, so it translates to
|
|
73
|
+
* COLOUR_DARK (0) in every column here as well.
|
|
74
|
+
*/
|
|
75
|
+
translate: readonly number[];
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
/** Indexed by COLOUR_* value. */
|
|
79
|
+
export const COLOR_TABLE: readonly ColorInfo[] = [
|
|
80
|
+
// full mono vga blind lighter darker highlight metallic misc
|
|
81
|
+
{ char: "d", name: "Dark", rgb: [0x00, 0x00, 0x00],
|
|
82
|
+
translate: [0, 0, 0, 0, 8, 0, 8, 8, 0] },
|
|
83
|
+
{ char: "w", name: "White", rgb: [0xff, 0xff, 0xff],
|
|
84
|
+
translate: [1, 1, 1, 1, 11, 9, 14, 11, 1] },
|
|
85
|
+
{ char: "s", name: "Slate", rgb: [0x80, 0x80, 0x80],
|
|
86
|
+
translate: [2, 1, 2, 2, 9, 8, 9, 9, 2] },
|
|
87
|
+
{ char: "o", name: "Orange", rgb: [0xff, 0x80, 0x00],
|
|
88
|
+
translate: [3, 1, 3, 9, 11, 2, 11, 11, 3] },
|
|
89
|
+
{ char: "r", name: "Red", rgb: [0xc0, 0x00, 0x00],
|
|
90
|
+
translate: [4, 1, 4, 2, 12, 2, 12, 12, 4] },
|
|
91
|
+
{ char: "g", name: "Green", rgb: [0x00, 0x80, 0x40],
|
|
92
|
+
translate: [5, 1, 5, 2, 13, 2, 13, 13, 5] },
|
|
93
|
+
{ char: "b", name: "Blue", rgb: [0x00, 0x40, 0xff],
|
|
94
|
+
translate: [6, 1, 6, 2, 14, 2, 14, 14, 6] },
|
|
95
|
+
{ char: "u", name: "Umber", rgb: [0x80, 0x40, 0x00],
|
|
96
|
+
translate: [7, 1, 7, 8, 15, 8, 15, 15, 7] },
|
|
97
|
+
{ char: "D", name: "Light Dark", rgb: [0x60, 0x60, 0x60],
|
|
98
|
+
translate: [8, 1, 8, 8, 2, 8, 2, 2, 8] },
|
|
99
|
+
{ char: "W", name: "Light Slate", rgb: [0xc0, 0xc0, 0xc0],
|
|
100
|
+
translate: [9, 1, 9, 9, 1, 2, 1, 1, 2] },
|
|
101
|
+
{ char: "P", name: "Light Purple", rgb: [0xff, 0x00, 0xff],
|
|
102
|
+
translate: [10, 1, 10, 2, 11, 2, 11, 11, 10] },
|
|
103
|
+
{ char: "y", name: "Yellow", rgb: [0xff, 0xff, 0x00],
|
|
104
|
+
translate: [11, 1, 11, 9, 20, 9, 1, 1, 11] },
|
|
105
|
+
{ char: "R", name: "Light Red", rgb: [0xff, 0x40, 0x40],
|
|
106
|
+
translate: [12, 1, 12, 9, 11, 4, 11, 11, 12] },
|
|
107
|
+
{ char: "G", name: "Light Green", rgb: [0x00, 0xff, 0x00],
|
|
108
|
+
translate: [13, 1, 13, 9, 11, 5, 11, 11, 13] },
|
|
109
|
+
{ char: "B", name: "Light Blue", rgb: [0x00, 0xff, 0xff],
|
|
110
|
+
translate: [14, 1, 14, 9, 11, 6, 11, 11, 14] },
|
|
111
|
+
{ char: "U", name: "Light Umber", rgb: [0xc0, 0x80, 0x40],
|
|
112
|
+
translate: [15, 1, 15, 9, 11, 7, 11, 11, 15] },
|
|
113
|
+
{ char: "p", name: "Purple", rgb: [0x90, 0x00, 0x90],
|
|
114
|
+
translate: [16, 1, 10, 2, 10, 2, 10, 10, 10] },
|
|
115
|
+
{ char: "v", name: "Violet", rgb: [0x90, 0x20, 0xff],
|
|
116
|
+
translate: [17, 1, 10, 2, 10, 2, 10, 10, 10] },
|
|
117
|
+
{ char: "t", name: "Teal", rgb: [0x00, 0xa0, 0xa0],
|
|
118
|
+
translate: [18, 1, 6, 2, 22, 2, 22, 22, 14] },
|
|
119
|
+
{ char: "m", name: "Mud", rgb: [0x6c, 0x6c, 0x30],
|
|
120
|
+
translate: [19, 1, 5, 2, 25, 2, 25, 25, 7] },
|
|
121
|
+
{ char: "Y", name: "Light Yellow", rgb: [0xff, 0xff, 0x90],
|
|
122
|
+
translate: [20, 1, 11, 1, 1, 11, 1, 1, 20] },
|
|
123
|
+
{ char: "i", name: "Magenta-Pink", rgb: [0xff, 0x00, 0xa0],
|
|
124
|
+
translate: [21, 1, 12, 2, 24, 4, 24, 24, 10] },
|
|
125
|
+
{ char: "T", name: "Light Teal", rgb: [0x20, 0xff, 0xdc],
|
|
126
|
+
translate: [22, 1, 14, 9, 11, 18, 11, 11, 14] },
|
|
127
|
+
{ char: "V", name: "Light Violet", rgb: [0xb8, 0xa8, 0xff],
|
|
128
|
+
translate: [23, 1, 10, 9, 11, 17, 11, 11, 10] },
|
|
129
|
+
{ char: "I", name: "Light Pink", rgb: [0xff, 0x80, 0x80],
|
|
130
|
+
translate: [24, 1, 12, 9, 11, 21, 11, 11, 10] },
|
|
131
|
+
{ char: "M", name: "Mustard", rgb: [0xb4, 0xb4, 0x00],
|
|
132
|
+
translate: [25, 1, 11, 2, 11, 2, 11, 11, 11] },
|
|
133
|
+
{ char: "z", name: "Blue Slate", rgb: [0xa0, 0xc0, 0xd0],
|
|
134
|
+
translate: [26, 1, 9, 2, 27, 2, 27, 27, 9] },
|
|
135
|
+
{ char: "Z", name: "Deep Light Blue", rgb: [0x00, 0xb0, 0xff],
|
|
136
|
+
translate: [27, 1, 14, 9, 14, 26, 14, 14, 14] },
|
|
137
|
+
// z-color.c:154-155: rows 28-31 are zero-initialised; shade has no
|
|
138
|
+
// index_char or name in color_table (its RGB is below, in angbandColorTable).
|
|
139
|
+
{ char: "", name: "", rgb: [0, 0, 0],
|
|
140
|
+
translate: [0, 0, 0, 0, 0, 0, 0, 0, 0] },
|
|
141
|
+
{ char: "", name: "", rgb: [0, 0, 0],
|
|
142
|
+
translate: [0, 0, 0, 0, 0, 0, 0, 0, 0] },
|
|
143
|
+
{ char: "", name: "", rgb: [0, 0, 0],
|
|
144
|
+
translate: [0, 0, 0, 0, 0, 0, 0, 0, 0] },
|
|
145
|
+
{ char: "", name: "", rgb: [0, 0, 0],
|
|
146
|
+
translate: [0, 0, 0, 0, 0, 0, 0, 0, 0] },
|
|
147
|
+
];
|
|
148
|
+
|
|
149
|
+
/** color_char_to_attr (z-color.c:165-184): NUL/space are dark; unknown is white. */
|
|
150
|
+
export function colorCharToAttr(ch: string): number {
|
|
151
|
+
if (ch === "" || ch === "\0" || ch === " ") return COLOUR_DARK;
|
|
152
|
+
for (let i = 0; i < BASIC_COLORS; i++) {
|
|
153
|
+
const info = COLOR_TABLE[i];
|
|
154
|
+
if (info && info.char === ch) return i;
|
|
155
|
+
}
|
|
156
|
+
return COLOUR_WHITE;
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
/** color_text_to_attr (z-color.c:191-201): unknown names default to white. */
|
|
160
|
+
export function colorTextToAttr(name: string): number {
|
|
161
|
+
const lower = name.toLowerCase();
|
|
162
|
+
for (let i = 0; i < MAX_COLORS; i++) {
|
|
163
|
+
const info = COLOR_TABLE[i];
|
|
164
|
+
if (info && info.name.toLowerCase() === lower) return i;
|
|
165
|
+
}
|
|
166
|
+
return COLOUR_WHITE;
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
/**
|
|
170
|
+
* angband_color_table (z-color.c): the LIVE colour values, mutable exactly like
|
|
171
|
+
* the C global, one [K, R, G, B] row per COLOUR_* index. Initialised from
|
|
172
|
+
* COLOR_TABLE with K = 0 (upstream's leading 0x00 byte). do_cmd_colors
|
|
173
|
+
* (colors_modify) edits these bytes and colorToCss reads R,G,B from here, so an
|
|
174
|
+
* edit takes effect immediately (Term_xtra REACT + redraw). K is the extra
|
|
175
|
+
* "kv" channel upstream keeps for palette backends; the web renderer ignores it
|
|
176
|
+
* but the editor still shows and edits it for faithfulness. Persisted by the
|
|
177
|
+
* front end as a user pref (like graphics/font), not in the character save.
|
|
178
|
+
*/
|
|
179
|
+
const angbandColorTable: [number, number, number, number][] = COLOR_TABLE.map(
|
|
180
|
+
(c, i) => i === COLOUR_SHADE
|
|
181
|
+
? [0, 0x28, 0x28, 0x28]
|
|
182
|
+
: [0, c.rgb[0], c.rgb[1], c.rgb[2]],
|
|
183
|
+
);
|
|
184
|
+
|
|
185
|
+
/** Clamp to a uint8 with C wraparound (colors_modify's (uint8_t)(x +/- 1)). */
|
|
186
|
+
function u8(n: number): number {
|
|
187
|
+
return ((n % 256) + 256) % 256;
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
/** angband_color_table[attr][channel] (0=K, 1=R, 2=G, 3=B). */
|
|
191
|
+
export function colorChannel(attr: number, channel: 0 | 1 | 2 | 3): number {
|
|
192
|
+
return angbandColorTable[attr]?.[channel] ?? 0;
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
/** Set one live colour channel (wraps uint8), like colors_modify's k/K/r/R/... */
|
|
196
|
+
export function setColorChannel(attr: number, channel: 0 | 1 | 2 | 3, value: number): void {
|
|
197
|
+
const row = angbandColorTable[attr];
|
|
198
|
+
if (row) row[channel] = u8(value);
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
/** The live [K,R,G,B] rows, copied - for persisting the user's colour edits. */
|
|
202
|
+
export function colorTableSnapshot(): [number, number, number, number][] {
|
|
203
|
+
return angbandColorTable.map((r) => [r[0], r[1], r[2], r[3]]);
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
/** Restore live colours from a snapshot (front-end pref load); ignores extras. */
|
|
207
|
+
export function restoreColorTable(rows: readonly (readonly number[])[]): void {
|
|
208
|
+
for (let i = 0; i < angbandColorTable.length && i < rows.length; i++) {
|
|
209
|
+
const src = rows[i];
|
|
210
|
+
const dst = angbandColorTable[i];
|
|
211
|
+
if (src && dst) {
|
|
212
|
+
dst[0] = u8(src[0] ?? 0);
|
|
213
|
+
dst[1] = u8(src[1] ?? dst[1]);
|
|
214
|
+
dst[2] = u8(src[2] ?? dst[2]);
|
|
215
|
+
dst[3] = u8(src[3] ?? dst[3]);
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
/** Reset every live colour to z-color.c:30-61 defaults (K = 0). */
|
|
221
|
+
export function resetColorTable(): void {
|
|
222
|
+
for (let i = 0; i < COLOR_TABLE.length; i++) {
|
|
223
|
+
const c = COLOR_TABLE[i]!;
|
|
224
|
+
angbandColorTable[i] = i === COLOUR_SHADE
|
|
225
|
+
? [0, 0x28, 0x28, 0x28]
|
|
226
|
+
: [0, c.rgb[0], c.rgb[1], c.rgb[2]];
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
/** attr_to_text (z-color.c:208-214): basic attrs expose their table name. */
|
|
231
|
+
export function attrToText(attr: number): string {
|
|
232
|
+
return attr >= 0 && attr < BASIC_COLORS
|
|
233
|
+
? COLOR_TABLE[attr]!.name
|
|
234
|
+
: "Icky";
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
/** CSS hex string for a COLOUR_* index (front-end convenience). Reads the LIVE
|
|
238
|
+
* angband_color_table so do_cmd_colors edits are reflected immediately. */
|
|
239
|
+
export function colorToCss(attr: number): string {
|
|
240
|
+
const row = angbandColorTable[attr] ?? angbandColorTable[COLOUR_WHITE]!;
|
|
241
|
+
const hex = (n: number) => n.toString(16).padStart(2, "0");
|
|
242
|
+
return `#${hex(row[1])}${hex(row[2])}${hex(row[3])}`;
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
/**
|
|
246
|
+
* get_color(a, attr, n): translate color `a` through the color_translate
|
|
247
|
+
* matrix, `n` times, using the `attr` column (one of ATTR_*).
|
|
248
|
+
*
|
|
249
|
+
* Graphical tile attrs (high bit set, a & 0x80) pass through unchanged,
|
|
250
|
+
* and attr === ATTR_FULL (0) is treated as "no translation" -- matching
|
|
251
|
+
* upstream's `if (!attr) return (a);` full-color-term short-circuit, so
|
|
252
|
+
* ATTR_FULL is never actually used to index color_translate[0] at runtime.
|
|
253
|
+
*/
|
|
254
|
+
export function getColor(a: number, attr: number, n: number): number {
|
|
255
|
+
if (a & 0x80) return a;
|
|
256
|
+
if (!attr) return a;
|
|
257
|
+
|
|
258
|
+
let result = a;
|
|
259
|
+
for (let i = 0; i < n; i++) {
|
|
260
|
+
const info = COLOR_TABLE[result];
|
|
261
|
+
if (!info) return result;
|
|
262
|
+
const next = info.translate[attr];
|
|
263
|
+
if (next === undefined) return result;
|
|
264
|
+
result = next;
|
|
265
|
+
}
|
|
266
|
+
return result;
|
|
267
|
+
}
|
|
@@ -0,0 +1,360 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Brand and slay selection for combat, ported VERBATIM from
|
|
3
|
+
* reference/src/obj-slays.c (Angband 4.2.6): get_monster_brand_multiplier and
|
|
4
|
+
* improve_attack_modifier, plus the small object bonus accessors from
|
|
5
|
+
* obj-util.c (object_to_hit / object_to_dam). object_weight_one now lives in
|
|
6
|
+
* obj/object.ts (its curse-aware home); combat imports it from there.
|
|
7
|
+
*
|
|
8
|
+
* These live in the combat domain rather than obj/ because they are combat
|
|
9
|
+
* math and the obj domain does not export them; obj/ owns the Brand/Slay
|
|
10
|
+
* record shapes and the bound brands[]/slays[] arrays, which are passed in.
|
|
11
|
+
*
|
|
12
|
+
* Temporary brands/slays (improve_attack_modifier's obj == NULL path and the
|
|
13
|
+
* learn helper's allow_temp path, obj-slays.c:378-406,501-503,558-560) are now
|
|
14
|
+
* ported: the player_has_temporary_brand/slay lookups (obj-slays.c:287-317)
|
|
15
|
+
* become an injected TempBrandSlay predicate, since the TMD->brand/slay binding
|
|
16
|
+
* (player_timed.txt brand:/slay:) is resolved by the caller (game layer). Only
|
|
17
|
+
* melee's py_attack_real / learn_brand_slay_from_melee consult it upstream
|
|
18
|
+
* (allow_temp = true); the launcher/throw paths pass allow_temp = false.
|
|
19
|
+
*
|
|
20
|
+
* DEFERRED (ledgered in parity/ledger/combat-melee.yaml):
|
|
21
|
+
* - Curse contributions to object_to_hit/to_dam (obj->curses); no object
|
|
22
|
+
* carries curses through combat yet. object_weight_one's curse adjustment is
|
|
23
|
+
* likewise skipped there, since combat does not thread the curse table.
|
|
24
|
+
*/
|
|
25
|
+
|
|
26
|
+
import type { Brand, Slay } from "../obj/types.js";
|
|
27
|
+
import type { GameObject } from "../obj/object.js";
|
|
28
|
+
import { tvalIsLauncher, tvalIsWeapon } from "../obj/object.js";
|
|
29
|
+
import type { MonsterRace } from "../mon/types.js";
|
|
30
|
+
import type { Player } from "../player/player.js";
|
|
31
|
+
import type { RuneEnv } from "../obj/knowledge.js";
|
|
32
|
+
import {
|
|
33
|
+
playerKnowsBrand,
|
|
34
|
+
playerKnowsSlay,
|
|
35
|
+
playerLearnBrand,
|
|
36
|
+
playerLearnSlay,
|
|
37
|
+
} from "../obj/knowledge.js";
|
|
38
|
+
|
|
39
|
+
/** The monster fields brand/slay selection reads. */
|
|
40
|
+
export interface BrandSlayTarget {
|
|
41
|
+
race: MonsterRace;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* player_has_temporary_brand / player_has_temporary_slay (obj-slays.c:287-317),
|
|
46
|
+
* as an injected predicate over brand/slay indices. The caller builds it from
|
|
47
|
+
* the player's active timed effects and each effect's temp_brand / temp_slay
|
|
48
|
+
* binding (player_timed.txt brand: / slay:), which combat cannot reach directly.
|
|
49
|
+
*/
|
|
50
|
+
export interface TempBrandSlay {
|
|
51
|
+
/** whether a temporary brand with the given index is active. */
|
|
52
|
+
hasBrand(idx: number): boolean;
|
|
53
|
+
/** whether a temporary slay with the given index is active. */
|
|
54
|
+
hasSlay(idx: number): boolean;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/** object_to_hit(obj): the object's to-hit bonus (curses DEFERRED). */
|
|
58
|
+
export function objectToHit(obj: GameObject): number {
|
|
59
|
+
return obj.toH;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
/** object_to_dam(obj): the object's to-dam bonus (curses DEFERRED). */
|
|
63
|
+
export function objectToDam(obj: GameObject): number {
|
|
64
|
+
return obj.toD;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* get_monster_brand_multiplier: the multiplicative factor for a brand hitting
|
|
69
|
+
* a monster. Elemental vulnerability doubles the extra damage; resistances are
|
|
70
|
+
* accounted for by the caller (improve_attack_modifier skips resisted brands).
|
|
71
|
+
*/
|
|
72
|
+
export function getMonsterBrandMultiplier(
|
|
73
|
+
mon: BrandSlayTarget,
|
|
74
|
+
b: Brand,
|
|
75
|
+
isOCombat: boolean,
|
|
76
|
+
): number {
|
|
77
|
+
let mult = isOCombat ? b.oMultiplier : b.multiplier;
|
|
78
|
+
|
|
79
|
+
if (b.vulnFlag && mon.race.flags.has(b.vulnFlag)) {
|
|
80
|
+
/* Especially vulnerable: apply a factor of two to the extra damage. */
|
|
81
|
+
if (isOCombat) {
|
|
82
|
+
mult = 2 * (mult - 10) + 10;
|
|
83
|
+
} else {
|
|
84
|
+
mult *= 2;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
return mult;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* A best-of brand/slay selection accumulator. `brand` and `slay` are indices
|
|
93
|
+
* into the brands[]/slays[] arrays (0 = none), mirroring the upstream
|
|
94
|
+
* *brand_used / *slay_used out-parameters.
|
|
95
|
+
*/
|
|
96
|
+
export interface AttackModifier {
|
|
97
|
+
brand: number;
|
|
98
|
+
slay: number;
|
|
99
|
+
/** Attack verb, updated as the best brand/slay changes ("smite", etc). */
|
|
100
|
+
verb: string;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
/**
|
|
104
|
+
* react_to_specific_slay (obj-slays.c): does this slay affect this monster?
|
|
105
|
+
*/
|
|
106
|
+
function reactToSpecificSlay(s: Slay, mon: BrandSlayTarget): boolean {
|
|
107
|
+
if (!s.name) return false;
|
|
108
|
+
/* Upstream also requires mon->race->base; every bound race has one. */
|
|
109
|
+
if (s.raceFlag && mon.race.flags.has(s.raceFlag)) return true;
|
|
110
|
+
if (s.base && s.base === mon.race.base.name) return true;
|
|
111
|
+
return false;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
/**
|
|
115
|
+
* react_to_slay (obj-slays.c L435): does `obj` carry a slay that would affect
|
|
116
|
+
* `mon`? Iterates the object's slay runes and returns true on the first whose
|
|
117
|
+
* race flag or base name matches (react_to_specific_slay). Draws no RNG. Used
|
|
118
|
+
* by the thief blows (a slay-bearing item resists being stolen) and by the
|
|
119
|
+
* monster-turn item-pickup guard.
|
|
120
|
+
*/
|
|
121
|
+
export function reactToSlay(
|
|
122
|
+
obj: GameObject,
|
|
123
|
+
mon: BrandSlayTarget,
|
|
124
|
+
slays: readonly (Slay | null)[],
|
|
125
|
+
): boolean {
|
|
126
|
+
if (!obj.slays) return false;
|
|
127
|
+
for (let i = 0; i < slays.length; i++) {
|
|
128
|
+
const s = slays[i];
|
|
129
|
+
if (s && obj.slays[i] && reactToSpecificSlay(s, mon)) return true;
|
|
130
|
+
}
|
|
131
|
+
return false;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
/**
|
|
135
|
+
* improve_attack_modifier: fold the best applicable brand or slay for `obj`
|
|
136
|
+
* against `mon` into `mod`, updating mod.brand/mod.slay/mod.verb.
|
|
137
|
+
*
|
|
138
|
+
* Faithful to upstream, including the quirk that the brand loop sets
|
|
139
|
+
* mod.brand without clearing mod.slay (only the slay loop clears mod.brand);
|
|
140
|
+
* the damage code then prefers a set slay. When `obj` is null the loops read
|
|
141
|
+
* temporary brands/slays from `temp` (player_has_temporary_brand/slay), exactly
|
|
142
|
+
* as improve_attack_modifier(p, NULL, ...) does; passing no `temp` leaves the
|
|
143
|
+
* obj == null call a no-op (no temporary brand/slay active).
|
|
144
|
+
*
|
|
145
|
+
* \param isOCombat selects the O-combat multipliers (birth_percent_damage);
|
|
146
|
+
* the standard path passes false.
|
|
147
|
+
* \param temp temporary brand/slay predicate, consulted only when obj is null.
|
|
148
|
+
*/
|
|
149
|
+
export function improveAttackModifier(
|
|
150
|
+
obj: GameObject | null,
|
|
151
|
+
mon: BrandSlayTarget,
|
|
152
|
+
brands: readonly (Brand | null)[],
|
|
153
|
+
slays: readonly (Slay | null)[],
|
|
154
|
+
mod: AttackModifier,
|
|
155
|
+
range: boolean,
|
|
156
|
+
isOCombat = false,
|
|
157
|
+
temp?: TempBrandSlay,
|
|
158
|
+
): void {
|
|
159
|
+
let bestMult = 1;
|
|
160
|
+
|
|
161
|
+
/* Set the current best multiplier from any already-chosen brand/slay. */
|
|
162
|
+
if (mod.brand) {
|
|
163
|
+
const b = brands[mod.brand] as Brand;
|
|
164
|
+
bestMult = Math.max(bestMult, getMonsterBrandMultiplier(mon, b, isOCombat));
|
|
165
|
+
} else if (mod.slay) {
|
|
166
|
+
const s = slays[mod.slay] as Slay;
|
|
167
|
+
const mult = isOCombat ? s.oMultiplier : s.multiplier;
|
|
168
|
+
bestMult = Math.max(bestMult, mult);
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
/* Brands */
|
|
172
|
+
for (let i = 1; i < brands.length; i++) {
|
|
173
|
+
const b = brands[i];
|
|
174
|
+
if (!b) continue;
|
|
175
|
+
if (obj) {
|
|
176
|
+
if (!obj.brands || !obj.brands[i]) continue;
|
|
177
|
+
} else {
|
|
178
|
+
/* Temporary brand (player_has_temporary_brand). */
|
|
179
|
+
if (!temp || !temp.hasBrand(i)) continue;
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
/* Is the monster vulnerable (not resistant)? */
|
|
183
|
+
if (!mon.race.flags.has(b.resistFlag)) {
|
|
184
|
+
const mult = getMonsterBrandMultiplier(mon, b, isOCombat);
|
|
185
|
+
if (bestMult < mult) {
|
|
186
|
+
bestMult = mult;
|
|
187
|
+
mod.brand = i;
|
|
188
|
+
mod.verb = range ? `${b.verb}s` : b.verb;
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
/* Slays */
|
|
194
|
+
for (let i = 1; i < slays.length; i++) {
|
|
195
|
+
const s = slays[i];
|
|
196
|
+
if (!s) continue;
|
|
197
|
+
if (obj) {
|
|
198
|
+
if (!obj.slays || !obj.slays[i]) continue;
|
|
199
|
+
} else {
|
|
200
|
+
/* Temporary slay (player_has_temporary_slay). */
|
|
201
|
+
if (!temp || !temp.hasSlay(i)) continue;
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
if (reactToSpecificSlay(s, mon)) {
|
|
205
|
+
const mult = isOCombat ? s.oMultiplier : s.multiplier;
|
|
206
|
+
if (bestMult < mult) {
|
|
207
|
+
bestMult = mult;
|
|
208
|
+
mod.brand = 0;
|
|
209
|
+
mod.slay = i;
|
|
210
|
+
mod.verb = range ? s.rangeVerb : s.meleeVerb;
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
/** The monster fields brand/slay LEARNING reads (visibility gates slays). */
|
|
217
|
+
export interface BrandSlayLearnTarget extends BrandSlayTarget {
|
|
218
|
+
/** monster_is_visible(mon). */
|
|
219
|
+
visible: boolean;
|
|
220
|
+
/**
|
|
221
|
+
* The monster's lore record (mon/lore.ts getLore), for the
|
|
222
|
+
* lore_learn_flag_if_visible learns. Optional: absent (worldless
|
|
223
|
+
* tests), only the player-rune half runs.
|
|
224
|
+
*/
|
|
225
|
+
lore?: import("../mon/lore.js").MonsterLore;
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
/** lore_learn_flag_if_visible over the reduced learn target. */
|
|
229
|
+
function loreLearnFlag(mon: BrandSlayLearnTarget, flag: number): void {
|
|
230
|
+
if (flag && mon.lore && mon.visible) mon.lore.flags.on(flag);
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
/**
|
|
234
|
+
* learn_brand_slay_helper (obj-slays.c L463): after an attack, learn the
|
|
235
|
+
* brand/slay runes carried by the objects involved (and, for melee/throws,
|
|
236
|
+
* by off-weapon equipment) that the monster did not resist, and note the
|
|
237
|
+
* monster's resist/vulnerability flags in its lore. Slays are only
|
|
238
|
+
* learned on visible monsters; brands teach whenever they bite.
|
|
239
|
+
*
|
|
240
|
+
* `allowTemp` enables the temporary-brand/slay path (obj-slays.c:501,558):
|
|
241
|
+
* a temporary brand/slay whose rune the objects do NOT carry still teaches the
|
|
242
|
+
* monster's lore (resist/vuln/race flags), but does NOT teach the rune itself
|
|
243
|
+
* (upstream guards player_learn_* on `learn`, which stays false for temp-only).
|
|
244
|
+
*/
|
|
245
|
+
function learnBrandSlayHelper(
|
|
246
|
+
p: Player,
|
|
247
|
+
env: RuneEnv,
|
|
248
|
+
obj1: GameObject | null,
|
|
249
|
+
obj2: GameObject | null,
|
|
250
|
+
mon: BrandSlayLearnTarget,
|
|
251
|
+
allowOff: boolean,
|
|
252
|
+
allowTemp: boolean,
|
|
253
|
+
temp?: TempBrandSlay,
|
|
254
|
+
): void {
|
|
255
|
+
/* Handle brands. */
|
|
256
|
+
for (let i = 1; i < env.brands.length; i++) {
|
|
257
|
+
const b = env.brands[i];
|
|
258
|
+
if (!b) continue;
|
|
259
|
+
let learn = Boolean(obj1?.brands?.[i]) || Boolean(obj2?.brands?.[i]);
|
|
260
|
+
if (allowOff && !learn) {
|
|
261
|
+
for (let j = 0; j < p.body.count; j++) {
|
|
262
|
+
const obj = env.slotObject(j);
|
|
263
|
+
if (
|
|
264
|
+
obj?.brands?.[i] &&
|
|
265
|
+
!tvalIsWeapon(obj.tval) &&
|
|
266
|
+
!tvalIsLauncher(obj.tval)
|
|
267
|
+
) {
|
|
268
|
+
learn = true;
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
/* Temporary brand: relevant only if not already carried by an object. */
|
|
273
|
+
if (!learn && !(allowTemp && (temp?.hasBrand(i) ?? false))) continue;
|
|
274
|
+
|
|
275
|
+
if (!b.resistFlag || !mon.race.flags.has(b.resistFlag)) {
|
|
276
|
+
/* Learn the rune only from a real object, not a temporary brand. */
|
|
277
|
+
if (learn) playerLearnBrand(p, env, i);
|
|
278
|
+
/* Learn about the monster (the flag's known absence / presence). */
|
|
279
|
+
loreLearnFlag(mon, b.resistFlag);
|
|
280
|
+
loreLearnFlag(mon, b.vulnFlag);
|
|
281
|
+
} else if (playerKnowsBrand(p, i)) {
|
|
282
|
+
/* A known brand fizzles: learn the monster resists. */
|
|
283
|
+
loreLearnFlag(mon, b.resistFlag);
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
/* Handle slays. */
|
|
288
|
+
for (let i = 1; i < env.slays.length; i++) {
|
|
289
|
+
const s = env.slays[i];
|
|
290
|
+
if (!s) continue;
|
|
291
|
+
let learn = Boolean(obj1?.slays?.[i]) || Boolean(obj2?.slays?.[i]);
|
|
292
|
+
if (allowOff && !learn) {
|
|
293
|
+
for (let j = 0; j < p.body.count; j++) {
|
|
294
|
+
const obj = env.slotObject(j);
|
|
295
|
+
if (
|
|
296
|
+
obj?.slays?.[i] &&
|
|
297
|
+
!tvalIsWeapon(obj.tval) &&
|
|
298
|
+
!tvalIsLauncher(obj.tval)
|
|
299
|
+
) {
|
|
300
|
+
learn = true;
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
/* Temporary slay: relevant only if not already carried by an object. */
|
|
305
|
+
if (!learn && !(allowTemp && (temp?.hasSlay(i) ?? false))) continue;
|
|
306
|
+
|
|
307
|
+
if (reactToSpecificSlay(s, mon)) {
|
|
308
|
+
/* Learn about the monster. */
|
|
309
|
+
loreLearnFlag(mon, s.raceFlag);
|
|
310
|
+
/* Learn the rune only from a real object on a visible monster. */
|
|
311
|
+
if (mon.visible && learn) playerLearnSlay(p, env, i);
|
|
312
|
+
} else if (playerKnowsSlay(p, i)) {
|
|
313
|
+
/* Learn about unaffected monsters. */
|
|
314
|
+
loreLearnFlag(mon, s.raceFlag);
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
|
|
319
|
+
/**
|
|
320
|
+
* learn_brand_slay_from_melee: weapon (or unarmed) plus off-weapon gear, plus
|
|
321
|
+
* temporary brands/slays (allow_off = true, allow_temp = true).
|
|
322
|
+
*/
|
|
323
|
+
export function learnBrandSlayFromMelee(
|
|
324
|
+
p: Player,
|
|
325
|
+
env: RuneEnv,
|
|
326
|
+
weapon: GameObject | null,
|
|
327
|
+
mon: BrandSlayLearnTarget,
|
|
328
|
+
temp?: TempBrandSlay,
|
|
329
|
+
): void {
|
|
330
|
+
learnBrandSlayHelper(p, env, weapon, null, mon, true, true, temp);
|
|
331
|
+
}
|
|
332
|
+
|
|
333
|
+
/**
|
|
334
|
+
* learn_brand_slay_from_launch: missile and launcher only (allow_off = false,
|
|
335
|
+
* allow_temp = false).
|
|
336
|
+
*/
|
|
337
|
+
export function learnBrandSlayFromLaunch(
|
|
338
|
+
p: Player,
|
|
339
|
+
env: RuneEnv,
|
|
340
|
+
missile: GameObject,
|
|
341
|
+
launcher: GameObject | null,
|
|
342
|
+
mon: BrandSlayLearnTarget,
|
|
343
|
+
): void {
|
|
344
|
+
learnBrandSlayHelper(p, env, missile, launcher, mon, false, false);
|
|
345
|
+
}
|
|
346
|
+
|
|
347
|
+
/**
|
|
348
|
+
* learn_brand_slay_from_throw: thrown object only (allow_off = false,
|
|
349
|
+
* allow_temp = false) - obj-slays.c:633. The previous port passed allow_off
|
|
350
|
+
* true, which wrongly taught brand/slay runes from worn off-weapon gear on a
|
|
351
|
+
* throw (gap 3.1).
|
|
352
|
+
*/
|
|
353
|
+
export function learnBrandSlayFromThrow(
|
|
354
|
+
p: Player,
|
|
355
|
+
env: RuneEnv,
|
|
356
|
+
missile: GameObject,
|
|
357
|
+
mon: BrandSlayLearnTarget,
|
|
358
|
+
): void {
|
|
359
|
+
learnBrandSlayHelper(p, env, missile, null, mon, false, false);
|
|
360
|
+
}
|