@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,199 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Low-level bit vector manipulation, ported from reference/src/z-bitflag.c/h
|
|
3
|
+
* (Angband 4.2.6).
|
|
4
|
+
*
|
|
5
|
+
* A flag set is a Uint8Array of bytes ("bitflag" is uint8_t upstream). Flags
|
|
6
|
+
* are 1-indexed: FLAG_START is 1 and flag 0 is the upstream FLAG_END
|
|
7
|
+
* sentinel, which never tests as set. The byte size of a set able to hold n
|
|
8
|
+
* flags is flagSize(n), mirroring the upstream FLAG_SIZE macro.
|
|
9
|
+
*
|
|
10
|
+
* Sentinel mapping: upstream flag_next() returns FLAG_END (0) when no more
|
|
11
|
+
* flags are set. This port returns NO_FLAG (-1) instead so that the "no
|
|
12
|
+
* flag" pseudo-value 0 is never conflated with an iteration result; loops
|
|
13
|
+
* must compare against NO_FLAG. Upstream's variadic functions (flags_test
|
|
14
|
+
* and friends) terminate their argument list with FLAG_END; this port uses
|
|
15
|
+
* rest parameters instead, so no terminator is passed.
|
|
16
|
+
*
|
|
17
|
+
* Intentional divergences, each noted on the function it affects:
|
|
18
|
+
* - The C functions take an explicit byte size next to the array; here the
|
|
19
|
+
* Uint8Array length is the size. Binary operations require equal lengths.
|
|
20
|
+
* - flag_on/flag_off with flag 0 is undefined behavior upstream (1 << -1);
|
|
21
|
+
* this port throws a RangeError instead.
|
|
22
|
+
* - flagCompUnion/flagCompInter/flagCompDiff: upstream 4.2.6 declares no
|
|
23
|
+
* such functions; the only trace is the never-expanded macro
|
|
24
|
+
* rf_comp_union in src/monster.h line 114. They are defined here as the
|
|
25
|
+
* natural complement reading: apply union/inter/diff with the bitwise
|
|
26
|
+
* complement of the second operand.
|
|
27
|
+
*/
|
|
28
|
+
/** Bits per bitflag array element (sizeof(uint8_t) * 8). */
|
|
29
|
+
export declare const FLAG_WIDTH = 8;
|
|
30
|
+
/** Enum flag value of the first valid flag in a set. */
|
|
31
|
+
export declare const FLAG_START = 1;
|
|
32
|
+
/**
|
|
33
|
+
* The upstream sentinel meaning "no flag" (FLAG_START - 1). flag 0 is never
|
|
34
|
+
* set. Note that flagNext returns NO_FLAG, not FLAG_END; see module docs.
|
|
35
|
+
*/
|
|
36
|
+
export declare const FLAG_END: number;
|
|
37
|
+
/** Iteration sentinel returned by flagNext when no further flag is set. */
|
|
38
|
+
export declare const NO_FLAG = -1;
|
|
39
|
+
/** The array size (in bytes) necessary to hold n flags (FLAG_SIZE). */
|
|
40
|
+
export declare function flagSize(n: number): number;
|
|
41
|
+
/** The highest flag value plus one in an array of size bytes (FLAG_MAX). */
|
|
42
|
+
export declare function flagMax(size: number): number;
|
|
43
|
+
/**
|
|
44
|
+
* flag_has: tests if a flag is on in a bitflag set. Flag 0 (FLAG_END) is
|
|
45
|
+
* always false, as upstream.
|
|
46
|
+
*/
|
|
47
|
+
export declare function flagHas(flags: Uint8Array, flag: number): boolean;
|
|
48
|
+
/**
|
|
49
|
+
* flag_next: returns the next on flag, starting from (and including) flag.
|
|
50
|
+
* Returns NO_FLAG when the end of the set is reached (upstream returns
|
|
51
|
+
* FLAG_END). Iteration starts at the beginning of the set when flag is
|
|
52
|
+
* FLAG_END or lower; upstream relies on x86 shift masking for flag 0, which
|
|
53
|
+
* skips it, so starting at FLAG_START is behavior-identical.
|
|
54
|
+
*/
|
|
55
|
+
export declare function flagNext(flags: Uint8Array, flag: number): number;
|
|
56
|
+
/** flag_count: counts the flags which are on in a bitflag set. */
|
|
57
|
+
export declare function flagCount(flags: Uint8Array): number;
|
|
58
|
+
/** flag_is_empty: true when no flags are set. */
|
|
59
|
+
export declare function flagIsEmpty(flags: Uint8Array): boolean;
|
|
60
|
+
/**
|
|
61
|
+
* flag_is_full: true when all flags are set. As upstream, this checks whole
|
|
62
|
+
* bytes (0xff), so trailing padding bits beyond the last real flag count.
|
|
63
|
+
*/
|
|
64
|
+
export declare function flagIsFull(flags: Uint8Array): boolean;
|
|
65
|
+
/** flag_is_inter: true when any flag is set in both sets. */
|
|
66
|
+
export declare function flagIsInter(flags1: Uint8Array, flags2: Uint8Array): boolean;
|
|
67
|
+
/**
|
|
68
|
+
* flag_is_subset: true when every set flag in flags2 is also set in flags1
|
|
69
|
+
* (i.e. flags2 is a subset of flags1). Argument order follows upstream.
|
|
70
|
+
*/
|
|
71
|
+
export declare function flagIsSubset(flags1: Uint8Array, flags2: Uint8Array): boolean;
|
|
72
|
+
/** flag_is_equal: true when both sets have identical flags. */
|
|
73
|
+
export declare function flagIsEqual(flags1: Uint8Array, flags2: Uint8Array): boolean;
|
|
74
|
+
/**
|
|
75
|
+
* flag_on: sets one flag. Returns true when a change was made, false when
|
|
76
|
+
* the flag was already set.
|
|
77
|
+
*/
|
|
78
|
+
export declare function flagOn(flags: Uint8Array, flag: number): boolean;
|
|
79
|
+
/**
|
|
80
|
+
* flag_off: clears one flag. Returns true when a change was made, false
|
|
81
|
+
* when the flag was already clear.
|
|
82
|
+
*/
|
|
83
|
+
export declare function flagOff(flags: Uint8Array, flag: number): boolean;
|
|
84
|
+
/** flag_wipe: clears all flags. */
|
|
85
|
+
export declare function flagWipe(flags: Uint8Array): void;
|
|
86
|
+
/** flag_setall: sets all flags (whole bytes, as upstream memset 255). */
|
|
87
|
+
export declare function flagSetall(flags: Uint8Array): void;
|
|
88
|
+
/** flag_negate: toggles all flags. */
|
|
89
|
+
export declare function flagNegate(flags: Uint8Array): void;
|
|
90
|
+
/** flag_copy: copies flags2 into flags1. */
|
|
91
|
+
export declare function flagCopy(flags1: Uint8Array, flags2: Uint8Array): void;
|
|
92
|
+
/**
|
|
93
|
+
* flag_union: flags1 |= flags2. Returns true when changes were made (some
|
|
94
|
+
* flag of flags2 was not already set in flags1).
|
|
95
|
+
*/
|
|
96
|
+
export declare function flagUnion(flags1: Uint8Array, flags2: Uint8Array): boolean;
|
|
97
|
+
/**
|
|
98
|
+
* flag_inter: flags1 &= flags2. Upstream quirk kept faithfully: the return
|
|
99
|
+
* value reports whether flags1 and flags2 DIFFERED (per byte), not whether
|
|
100
|
+
* flags1 was actually modified. E.g. flags1 = 0x01, flags2 = 0x03 returns
|
|
101
|
+
* true even though flags1 is unchanged.
|
|
102
|
+
*/
|
|
103
|
+
export declare function flagInter(flags1: Uint8Array, flags2: Uint8Array): boolean;
|
|
104
|
+
/**
|
|
105
|
+
* flag_diff: flags1 &= ~flags2 (clears every flag set in flags2). Returns
|
|
106
|
+
* true when changes were made (the sets intersected).
|
|
107
|
+
*/
|
|
108
|
+
export declare function flagDiff(flags1: Uint8Array, flags2: Uint8Array): boolean;
|
|
109
|
+
/**
|
|
110
|
+
* flag_comp_union: flags1 |= ~flags2 (union with the complement of flags2).
|
|
111
|
+
* Not defined upstream (see module docs); returns true when flags1 changed.
|
|
112
|
+
*/
|
|
113
|
+
export declare function flagCompUnion(flags1: Uint8Array, flags2: Uint8Array): boolean;
|
|
114
|
+
/**
|
|
115
|
+
* flag_comp_inter: flags1 &= ~flags2 (intersection with the complement of
|
|
116
|
+
* flags2, i.e. the same mutation as flagDiff). Not defined upstream; returns
|
|
117
|
+
* true when flags1 changed.
|
|
118
|
+
*/
|
|
119
|
+
export declare function flagCompInter(flags1: Uint8Array, flags2: Uint8Array): boolean;
|
|
120
|
+
/**
|
|
121
|
+
* flag_comp_diff: flags1 &= ~(~flags2), i.e. flags1 &= flags2 (difference
|
|
122
|
+
* with the complement of flags2, the same mutation as flagInter). Not
|
|
123
|
+
* defined upstream; returns true when flags1 changed (NOT the flagInter
|
|
124
|
+
* inequality quirk).
|
|
125
|
+
*/
|
|
126
|
+
export declare function flagCompDiff(flags1: Uint8Array, flags2: Uint8Array): boolean;
|
|
127
|
+
/**
|
|
128
|
+
* flags_test: true if any of the given flags are set. Upstream is variadic
|
|
129
|
+
* with a FLAG_END terminator; this port takes rest parameters.
|
|
130
|
+
*/
|
|
131
|
+
export declare function flagsTest(flags: Uint8Array, ...check: number[]): boolean;
|
|
132
|
+
/** flags_test_all: true if all of the given flags are set. */
|
|
133
|
+
export declare function flagsTestAll(flags: Uint8Array, ...check: number[]): boolean;
|
|
134
|
+
/**
|
|
135
|
+
* flags_clear: clears the given flags. Returns true when changes were made.
|
|
136
|
+
*/
|
|
137
|
+
export declare function flagsClear(flags: Uint8Array, ...clear: number[]): boolean;
|
|
138
|
+
/** flags_set: sets the given flags. Returns true when changes were made. */
|
|
139
|
+
export declare function flagsSet(flags: Uint8Array, ...set: number[]): boolean;
|
|
140
|
+
/** flags_init: wipes the set, then sets the given flags. */
|
|
141
|
+
export declare function flagsInit(flags: Uint8Array, ...set: number[]): void;
|
|
142
|
+
/**
|
|
143
|
+
* flags_mask: clears the flags NOT given (intersects with a mask built from
|
|
144
|
+
* the given flags). Return value keeps the upstream flag_inter inequality
|
|
145
|
+
* quirk, because upstream implements this via flag_inter.
|
|
146
|
+
*/
|
|
147
|
+
export declare function flagsMask(flags: Uint8Array, ...mask: number[]): boolean;
|
|
148
|
+
/**
|
|
149
|
+
* An object wrapper around a Uint8Array flag set with the upstream API as
|
|
150
|
+
* methods. Sizes are byte sizes, exactly like the upstream `size`
|
|
151
|
+
* parameters; use FlagSet.forFlags(maxFlag) to size a set by its highest
|
|
152
|
+
* flag value (the equivalent of bitflag name[FLAG_SIZE(MAX)]).
|
|
153
|
+
*/
|
|
154
|
+
export declare class FlagSet {
|
|
155
|
+
readonly bits: Uint8Array;
|
|
156
|
+
constructor(size: number | Uint8Array);
|
|
157
|
+
/** Size a set to hold flags FLAG_START..maxFlag - 1 (FLAG_SIZE(max)). */
|
|
158
|
+
static forFlags(maxFlag: number): FlagSet;
|
|
159
|
+
/** The byte size of the set (the upstream `size` parameter). */
|
|
160
|
+
get size(): number;
|
|
161
|
+
has(flag: number): boolean;
|
|
162
|
+
/** Next on flag at or after `flag`; NO_FLAG when exhausted. */
|
|
163
|
+
next(flag: number): number;
|
|
164
|
+
count(): number;
|
|
165
|
+
isEmpty(): boolean;
|
|
166
|
+
isFull(): boolean;
|
|
167
|
+
/** True when any flag is set in both this set and `other`. */
|
|
168
|
+
isInter(other: FlagSet): boolean;
|
|
169
|
+
/**
|
|
170
|
+
* True when `other` is a subset of this set (every flag set in `other`
|
|
171
|
+
* is also set in this). Mirrors upstream flag_is_subset(this, other).
|
|
172
|
+
*/
|
|
173
|
+
isSubset(other: FlagSet): boolean;
|
|
174
|
+
isEqual(other: FlagSet): boolean;
|
|
175
|
+
on(flag: number): boolean;
|
|
176
|
+
off(flag: number): boolean;
|
|
177
|
+
wipe(): void;
|
|
178
|
+
setall(): void;
|
|
179
|
+
negate(): void;
|
|
180
|
+
/** Copies `other` into this set (upstream flag_copy(this, other)). */
|
|
181
|
+
copy(other: FlagSet): void;
|
|
182
|
+
/** A new FlagSet with the same contents. */
|
|
183
|
+
clone(): FlagSet;
|
|
184
|
+
union(other: FlagSet): boolean;
|
|
185
|
+
inter(other: FlagSet): boolean;
|
|
186
|
+
diff(other: FlagSet): boolean;
|
|
187
|
+
compUnion(other: FlagSet): boolean;
|
|
188
|
+
compInter(other: FlagSet): boolean;
|
|
189
|
+
compDiff(other: FlagSet): boolean;
|
|
190
|
+
test(...check: number[]): boolean;
|
|
191
|
+
testAll(...check: number[]): boolean;
|
|
192
|
+
clear(...clear: number[]): boolean;
|
|
193
|
+
set(...set: number[]): boolean;
|
|
194
|
+
init(...set: number[]): void;
|
|
195
|
+
mask(...mask: number[]): boolean;
|
|
196
|
+
/** Iterate the set flags in ascending order. */
|
|
197
|
+
[Symbol.iterator](): IterableIterator<number>;
|
|
198
|
+
}
|
|
199
|
+
//# sourceMappingURL=bitflag.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bitflag.d.ts","sourceRoot":"","sources":["../src/bitflag.ts"],"names":[],"mappings":"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"}
|
package/dist/bitflag.js
ADDED
|
@@ -0,0 +1,478 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Low-level bit vector manipulation, ported from reference/src/z-bitflag.c/h
|
|
3
|
+
* (Angband 4.2.6).
|
|
4
|
+
*
|
|
5
|
+
* A flag set is a Uint8Array of bytes ("bitflag" is uint8_t upstream). Flags
|
|
6
|
+
* are 1-indexed: FLAG_START is 1 and flag 0 is the upstream FLAG_END
|
|
7
|
+
* sentinel, which never tests as set. The byte size of a set able to hold n
|
|
8
|
+
* flags is flagSize(n), mirroring the upstream FLAG_SIZE macro.
|
|
9
|
+
*
|
|
10
|
+
* Sentinel mapping: upstream flag_next() returns FLAG_END (0) when no more
|
|
11
|
+
* flags are set. This port returns NO_FLAG (-1) instead so that the "no
|
|
12
|
+
* flag" pseudo-value 0 is never conflated with an iteration result; loops
|
|
13
|
+
* must compare against NO_FLAG. Upstream's variadic functions (flags_test
|
|
14
|
+
* and friends) terminate their argument list with FLAG_END; this port uses
|
|
15
|
+
* rest parameters instead, so no terminator is passed.
|
|
16
|
+
*
|
|
17
|
+
* Intentional divergences, each noted on the function it affects:
|
|
18
|
+
* - The C functions take an explicit byte size next to the array; here the
|
|
19
|
+
* Uint8Array length is the size. Binary operations require equal lengths.
|
|
20
|
+
* - flag_on/flag_off with flag 0 is undefined behavior upstream (1 << -1);
|
|
21
|
+
* this port throws a RangeError instead.
|
|
22
|
+
* - flagCompUnion/flagCompInter/flagCompDiff: upstream 4.2.6 declares no
|
|
23
|
+
* such functions; the only trace is the never-expanded macro
|
|
24
|
+
* rf_comp_union in src/monster.h line 114. They are defined here as the
|
|
25
|
+
* natural complement reading: apply union/inter/diff with the bitwise
|
|
26
|
+
* complement of the second operand.
|
|
27
|
+
*/
|
|
28
|
+
/** Bits per bitflag array element (sizeof(uint8_t) * 8). */
|
|
29
|
+
export const FLAG_WIDTH = 8;
|
|
30
|
+
/** Enum flag value of the first valid flag in a set. */
|
|
31
|
+
export const FLAG_START = 1;
|
|
32
|
+
/**
|
|
33
|
+
* The upstream sentinel meaning "no flag" (FLAG_START - 1). flag 0 is never
|
|
34
|
+
* set. Note that flagNext returns NO_FLAG, not FLAG_END; see module docs.
|
|
35
|
+
*/
|
|
36
|
+
export const FLAG_END = FLAG_START - 1;
|
|
37
|
+
/** Iteration sentinel returned by flagNext when no further flag is set. */
|
|
38
|
+
export const NO_FLAG = -1;
|
|
39
|
+
/** The array size (in bytes) necessary to hold n flags (FLAG_SIZE). */
|
|
40
|
+
export function flagSize(n) {
|
|
41
|
+
return Math.trunc((n + FLAG_WIDTH - 1) / FLAG_WIDTH);
|
|
42
|
+
}
|
|
43
|
+
/** The highest flag value plus one in an array of size bytes (FLAG_MAX). */
|
|
44
|
+
export function flagMax(size) {
|
|
45
|
+
return size * FLAG_WIDTH + FLAG_START;
|
|
46
|
+
}
|
|
47
|
+
/** Convert a flag value to its array index (FLAG_OFFSET). */
|
|
48
|
+
function flagOffset(flag) {
|
|
49
|
+
return Math.trunc((flag - FLAG_START) / FLAG_WIDTH);
|
|
50
|
+
}
|
|
51
|
+
/** Convert a flag value to its binary bit value (FLAG_BINARY). */
|
|
52
|
+
function flagBinary(flag) {
|
|
53
|
+
return 1 << ((flag - FLAG_START) % FLAG_WIDTH);
|
|
54
|
+
}
|
|
55
|
+
function assertValidFlag(flags, flag, fn) {
|
|
56
|
+
if (flag < FLAG_START) {
|
|
57
|
+
throw new RangeError(`${fn}: flag ${flag} is below FLAG_START`);
|
|
58
|
+
}
|
|
59
|
+
if (flagOffset(flag) >= flags.length) {
|
|
60
|
+
throw new RangeError(`${fn}: flag ${flag} does not fit in ${flags.length} byte(s)`);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
function assertSameSize(a, b, fn) {
|
|
64
|
+
if (a.length !== b.length) {
|
|
65
|
+
throw new RangeError(`${fn}: flag set sizes differ (${a.length} vs ${b.length})`);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* flag_has: tests if a flag is on in a bitflag set. Flag 0 (FLAG_END) is
|
|
70
|
+
* always false, as upstream.
|
|
71
|
+
*/
|
|
72
|
+
export function flagHas(flags, flag) {
|
|
73
|
+
if (flag === FLAG_END)
|
|
74
|
+
return false;
|
|
75
|
+
assertValidFlag(flags, flag, "flagHas");
|
|
76
|
+
return (flags[flagOffset(flag)] & flagBinary(flag)) !== 0;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* flag_next: returns the next on flag, starting from (and including) flag.
|
|
80
|
+
* Returns NO_FLAG when the end of the set is reached (upstream returns
|
|
81
|
+
* FLAG_END). Iteration starts at the beginning of the set when flag is
|
|
82
|
+
* FLAG_END or lower; upstream relies on x86 shift masking for flag 0, which
|
|
83
|
+
* skips it, so starting at FLAG_START is behavior-identical.
|
|
84
|
+
*/
|
|
85
|
+
export function flagNext(flags, flag) {
|
|
86
|
+
const maxFlags = flagMax(flags.length);
|
|
87
|
+
for (let f = Math.max(flag, FLAG_START); f < maxFlags; f++) {
|
|
88
|
+
if ((flags[flagOffset(f)] & flagBinary(f)) !== 0)
|
|
89
|
+
return f;
|
|
90
|
+
}
|
|
91
|
+
return NO_FLAG;
|
|
92
|
+
}
|
|
93
|
+
/** flag_count: counts the flags which are on in a bitflag set. */
|
|
94
|
+
export function flagCount(flags) {
|
|
95
|
+
let count = 0;
|
|
96
|
+
for (let i = 0; i < flags.length; i++) {
|
|
97
|
+
for (let j = 1; j <= FLAG_WIDTH; j++) {
|
|
98
|
+
if ((flags[i] & flagBinary(j)) !== 0)
|
|
99
|
+
count++;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
return count;
|
|
103
|
+
}
|
|
104
|
+
/** flag_is_empty: true when no flags are set. */
|
|
105
|
+
export function flagIsEmpty(flags) {
|
|
106
|
+
for (let i = 0; i < flags.length; i++) {
|
|
107
|
+
if (flags[i] > 0)
|
|
108
|
+
return false;
|
|
109
|
+
}
|
|
110
|
+
return true;
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* flag_is_full: true when all flags are set. As upstream, this checks whole
|
|
114
|
+
* bytes (0xff), so trailing padding bits beyond the last real flag count.
|
|
115
|
+
*/
|
|
116
|
+
export function flagIsFull(flags) {
|
|
117
|
+
for (let i = 0; i < flags.length; i++) {
|
|
118
|
+
if (flags[i] !== 0xff)
|
|
119
|
+
return false;
|
|
120
|
+
}
|
|
121
|
+
return true;
|
|
122
|
+
}
|
|
123
|
+
/** flag_is_inter: true when any flag is set in both sets. */
|
|
124
|
+
export function flagIsInter(flags1, flags2) {
|
|
125
|
+
assertSameSize(flags1, flags2, "flagIsInter");
|
|
126
|
+
for (let i = 0; i < flags1.length; i++) {
|
|
127
|
+
if ((flags1[i] & flags2[i]) !== 0)
|
|
128
|
+
return true;
|
|
129
|
+
}
|
|
130
|
+
return false;
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* flag_is_subset: true when every set flag in flags2 is also set in flags1
|
|
134
|
+
* (i.e. flags2 is a subset of flags1). Argument order follows upstream.
|
|
135
|
+
*/
|
|
136
|
+
export function flagIsSubset(flags1, flags2) {
|
|
137
|
+
assertSameSize(flags1, flags2, "flagIsSubset");
|
|
138
|
+
for (let i = 0; i < flags1.length; i++) {
|
|
139
|
+
if ((~flags1[i] & flags2[i]) !== 0)
|
|
140
|
+
return false;
|
|
141
|
+
}
|
|
142
|
+
return true;
|
|
143
|
+
}
|
|
144
|
+
/** flag_is_equal: true when both sets have identical flags. */
|
|
145
|
+
export function flagIsEqual(flags1, flags2) {
|
|
146
|
+
assertSameSize(flags1, flags2, "flagIsEqual");
|
|
147
|
+
for (let i = 0; i < flags1.length; i++) {
|
|
148
|
+
if (flags1[i] !== flags2[i])
|
|
149
|
+
return false;
|
|
150
|
+
}
|
|
151
|
+
return true;
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* flag_on: sets one flag. Returns true when a change was made, false when
|
|
155
|
+
* the flag was already set.
|
|
156
|
+
*/
|
|
157
|
+
export function flagOn(flags, flag) {
|
|
158
|
+
assertValidFlag(flags, flag, "flagOn");
|
|
159
|
+
const offset = flagOffset(flag);
|
|
160
|
+
const binary = flagBinary(flag);
|
|
161
|
+
if ((flags[offset] & binary) !== 0)
|
|
162
|
+
return false;
|
|
163
|
+
flags[offset] = flags[offset] | binary;
|
|
164
|
+
return true;
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* flag_off: clears one flag. Returns true when a change was made, false
|
|
168
|
+
* when the flag was already clear.
|
|
169
|
+
*/
|
|
170
|
+
export function flagOff(flags, flag) {
|
|
171
|
+
assertValidFlag(flags, flag, "flagOff");
|
|
172
|
+
const offset = flagOffset(flag);
|
|
173
|
+
const binary = flagBinary(flag);
|
|
174
|
+
if ((flags[offset] & binary) === 0)
|
|
175
|
+
return false;
|
|
176
|
+
flags[offset] = flags[offset] & ~binary & 0xff;
|
|
177
|
+
return true;
|
|
178
|
+
}
|
|
179
|
+
/** flag_wipe: clears all flags. */
|
|
180
|
+
export function flagWipe(flags) {
|
|
181
|
+
flags.fill(0);
|
|
182
|
+
}
|
|
183
|
+
/** flag_setall: sets all flags (whole bytes, as upstream memset 255). */
|
|
184
|
+
export function flagSetall(flags) {
|
|
185
|
+
flags.fill(0xff);
|
|
186
|
+
}
|
|
187
|
+
/** flag_negate: toggles all flags. */
|
|
188
|
+
export function flagNegate(flags) {
|
|
189
|
+
for (let i = 0; i < flags.length; i++) {
|
|
190
|
+
flags[i] = ~flags[i] & 0xff;
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
/** flag_copy: copies flags2 into flags1. */
|
|
194
|
+
export function flagCopy(flags1, flags2) {
|
|
195
|
+
assertSameSize(flags1, flags2, "flagCopy");
|
|
196
|
+
flags1.set(flags2);
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* flag_union: flags1 |= flags2. Returns true when changes were made (some
|
|
200
|
+
* flag of flags2 was not already set in flags1).
|
|
201
|
+
*/
|
|
202
|
+
export function flagUnion(flags1, flags2) {
|
|
203
|
+
assertSameSize(flags1, flags2, "flagUnion");
|
|
204
|
+
let delta = false;
|
|
205
|
+
for (let i = 0; i < flags1.length; i++) {
|
|
206
|
+
const a = flags1[i];
|
|
207
|
+
const b = flags2[i];
|
|
208
|
+
if ((~a & b) !== 0)
|
|
209
|
+
delta = true;
|
|
210
|
+
flags1[i] = (a | b) & 0xff;
|
|
211
|
+
}
|
|
212
|
+
return delta;
|
|
213
|
+
}
|
|
214
|
+
/**
|
|
215
|
+
* flag_inter: flags1 &= flags2. Upstream quirk kept faithfully: the return
|
|
216
|
+
* value reports whether flags1 and flags2 DIFFERED (per byte), not whether
|
|
217
|
+
* flags1 was actually modified. E.g. flags1 = 0x01, flags2 = 0x03 returns
|
|
218
|
+
* true even though flags1 is unchanged.
|
|
219
|
+
*/
|
|
220
|
+
export function flagInter(flags1, flags2) {
|
|
221
|
+
assertSameSize(flags1, flags2, "flagInter");
|
|
222
|
+
let delta = false;
|
|
223
|
+
for (let i = 0; i < flags1.length; i++) {
|
|
224
|
+
const a = flags1[i];
|
|
225
|
+
const b = flags2[i];
|
|
226
|
+
if (a !== b)
|
|
227
|
+
delta = true;
|
|
228
|
+
flags1[i] = a & b;
|
|
229
|
+
}
|
|
230
|
+
return delta;
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* flag_diff: flags1 &= ~flags2 (clears every flag set in flags2). Returns
|
|
234
|
+
* true when changes were made (the sets intersected).
|
|
235
|
+
*/
|
|
236
|
+
export function flagDiff(flags1, flags2) {
|
|
237
|
+
assertSameSize(flags1, flags2, "flagDiff");
|
|
238
|
+
let delta = false;
|
|
239
|
+
for (let i = 0; i < flags1.length; i++) {
|
|
240
|
+
const a = flags1[i];
|
|
241
|
+
const b = flags2[i];
|
|
242
|
+
if ((a & b) !== 0)
|
|
243
|
+
delta = true;
|
|
244
|
+
flags1[i] = a & ~b & 0xff;
|
|
245
|
+
}
|
|
246
|
+
return delta;
|
|
247
|
+
}
|
|
248
|
+
/**
|
|
249
|
+
* flag_comp_union: flags1 |= ~flags2 (union with the complement of flags2).
|
|
250
|
+
* Not defined upstream (see module docs); returns true when flags1 changed.
|
|
251
|
+
*/
|
|
252
|
+
export function flagCompUnion(flags1, flags2) {
|
|
253
|
+
assertSameSize(flags1, flags2, "flagCompUnion");
|
|
254
|
+
let delta = false;
|
|
255
|
+
for (let i = 0; i < flags1.length; i++) {
|
|
256
|
+
const a = flags1[i];
|
|
257
|
+
const nb = ~flags2[i] & 0xff;
|
|
258
|
+
if ((~a & nb) !== 0)
|
|
259
|
+
delta = true;
|
|
260
|
+
flags1[i] = (a | nb) & 0xff;
|
|
261
|
+
}
|
|
262
|
+
return delta;
|
|
263
|
+
}
|
|
264
|
+
/**
|
|
265
|
+
* flag_comp_inter: flags1 &= ~flags2 (intersection with the complement of
|
|
266
|
+
* flags2, i.e. the same mutation as flagDiff). Not defined upstream; returns
|
|
267
|
+
* true when flags1 changed.
|
|
268
|
+
*/
|
|
269
|
+
export function flagCompInter(flags1, flags2) {
|
|
270
|
+
assertSameSize(flags1, flags2, "flagCompInter");
|
|
271
|
+
let delta = false;
|
|
272
|
+
for (let i = 0; i < flags1.length; i++) {
|
|
273
|
+
const a = flags1[i];
|
|
274
|
+
const nb = ~flags2[i] & 0xff;
|
|
275
|
+
if ((a & ~nb) !== 0)
|
|
276
|
+
delta = true;
|
|
277
|
+
flags1[i] = a & nb;
|
|
278
|
+
}
|
|
279
|
+
return delta;
|
|
280
|
+
}
|
|
281
|
+
/**
|
|
282
|
+
* flag_comp_diff: flags1 &= ~(~flags2), i.e. flags1 &= flags2 (difference
|
|
283
|
+
* with the complement of flags2, the same mutation as flagInter). Not
|
|
284
|
+
* defined upstream; returns true when flags1 changed (NOT the flagInter
|
|
285
|
+
* inequality quirk).
|
|
286
|
+
*/
|
|
287
|
+
export function flagCompDiff(flags1, flags2) {
|
|
288
|
+
assertSameSize(flags1, flags2, "flagCompDiff");
|
|
289
|
+
let delta = false;
|
|
290
|
+
for (let i = 0; i < flags1.length; i++) {
|
|
291
|
+
const a = flags1[i];
|
|
292
|
+
const b = flags2[i];
|
|
293
|
+
if ((a & ~b) !== 0)
|
|
294
|
+
delta = true;
|
|
295
|
+
flags1[i] = a & b;
|
|
296
|
+
}
|
|
297
|
+
return delta;
|
|
298
|
+
}
|
|
299
|
+
/**
|
|
300
|
+
* flags_test: true if any of the given flags are set. Upstream is variadic
|
|
301
|
+
* with a FLAG_END terminator; this port takes rest parameters.
|
|
302
|
+
*/
|
|
303
|
+
export function flagsTest(flags, ...check) {
|
|
304
|
+
for (const f of check) {
|
|
305
|
+
if (flagHas(flags, f))
|
|
306
|
+
return true;
|
|
307
|
+
}
|
|
308
|
+
return false;
|
|
309
|
+
}
|
|
310
|
+
/** flags_test_all: true if all of the given flags are set. */
|
|
311
|
+
export function flagsTestAll(flags, ...check) {
|
|
312
|
+
for (const f of check) {
|
|
313
|
+
if (!flagHas(flags, f))
|
|
314
|
+
return false;
|
|
315
|
+
}
|
|
316
|
+
return true;
|
|
317
|
+
}
|
|
318
|
+
/**
|
|
319
|
+
* flags_clear: clears the given flags. Returns true when changes were made.
|
|
320
|
+
*/
|
|
321
|
+
export function flagsClear(flags, ...clear) {
|
|
322
|
+
let delta = false;
|
|
323
|
+
for (const f of clear) {
|
|
324
|
+
if (flagOff(flags, f))
|
|
325
|
+
delta = true;
|
|
326
|
+
}
|
|
327
|
+
return delta;
|
|
328
|
+
}
|
|
329
|
+
/** flags_set: sets the given flags. Returns true when changes were made. */
|
|
330
|
+
export function flagsSet(flags, ...set) {
|
|
331
|
+
let delta = false;
|
|
332
|
+
for (const f of set) {
|
|
333
|
+
if (flagOn(flags, f))
|
|
334
|
+
delta = true;
|
|
335
|
+
}
|
|
336
|
+
return delta;
|
|
337
|
+
}
|
|
338
|
+
/** flags_init: wipes the set, then sets the given flags. */
|
|
339
|
+
export function flagsInit(flags, ...set) {
|
|
340
|
+
flagWipe(flags);
|
|
341
|
+
for (const f of set)
|
|
342
|
+
flagOn(flags, f);
|
|
343
|
+
}
|
|
344
|
+
/**
|
|
345
|
+
* flags_mask: clears the flags NOT given (intersects with a mask built from
|
|
346
|
+
* the given flags). Return value keeps the upstream flag_inter inequality
|
|
347
|
+
* quirk, because upstream implements this via flag_inter.
|
|
348
|
+
*/
|
|
349
|
+
export function flagsMask(flags, ...mask) {
|
|
350
|
+
const m = new Uint8Array(flags.length);
|
|
351
|
+
for (const f of mask)
|
|
352
|
+
flagOn(m, f);
|
|
353
|
+
return flagInter(flags, m);
|
|
354
|
+
}
|
|
355
|
+
/**
|
|
356
|
+
* An object wrapper around a Uint8Array flag set with the upstream API as
|
|
357
|
+
* methods. Sizes are byte sizes, exactly like the upstream `size`
|
|
358
|
+
* parameters; use FlagSet.forFlags(maxFlag) to size a set by its highest
|
|
359
|
+
* flag value (the equivalent of bitflag name[FLAG_SIZE(MAX)]).
|
|
360
|
+
*/
|
|
361
|
+
export class FlagSet {
|
|
362
|
+
bits;
|
|
363
|
+
constructor(size) {
|
|
364
|
+
if (typeof size === "number") {
|
|
365
|
+
if (size < 1 || !Number.isInteger(size)) {
|
|
366
|
+
throw new RangeError(`FlagSet: invalid byte size ${size}`);
|
|
367
|
+
}
|
|
368
|
+
this.bits = new Uint8Array(size);
|
|
369
|
+
}
|
|
370
|
+
else {
|
|
371
|
+
this.bits = size;
|
|
372
|
+
}
|
|
373
|
+
}
|
|
374
|
+
/** Size a set to hold flags FLAG_START..maxFlag - 1 (FLAG_SIZE(max)). */
|
|
375
|
+
static forFlags(maxFlag) {
|
|
376
|
+
return new FlagSet(flagSize(maxFlag));
|
|
377
|
+
}
|
|
378
|
+
/** The byte size of the set (the upstream `size` parameter). */
|
|
379
|
+
get size() {
|
|
380
|
+
return this.bits.length;
|
|
381
|
+
}
|
|
382
|
+
has(flag) {
|
|
383
|
+
return flagHas(this.bits, flag);
|
|
384
|
+
}
|
|
385
|
+
/** Next on flag at or after `flag`; NO_FLAG when exhausted. */
|
|
386
|
+
next(flag) {
|
|
387
|
+
return flagNext(this.bits, flag);
|
|
388
|
+
}
|
|
389
|
+
count() {
|
|
390
|
+
return flagCount(this.bits);
|
|
391
|
+
}
|
|
392
|
+
isEmpty() {
|
|
393
|
+
return flagIsEmpty(this.bits);
|
|
394
|
+
}
|
|
395
|
+
isFull() {
|
|
396
|
+
return flagIsFull(this.bits);
|
|
397
|
+
}
|
|
398
|
+
/** True when any flag is set in both this set and `other`. */
|
|
399
|
+
isInter(other) {
|
|
400
|
+
return flagIsInter(this.bits, other.bits);
|
|
401
|
+
}
|
|
402
|
+
/**
|
|
403
|
+
* True when `other` is a subset of this set (every flag set in `other`
|
|
404
|
+
* is also set in this). Mirrors upstream flag_is_subset(this, other).
|
|
405
|
+
*/
|
|
406
|
+
isSubset(other) {
|
|
407
|
+
return flagIsSubset(this.bits, other.bits);
|
|
408
|
+
}
|
|
409
|
+
isEqual(other) {
|
|
410
|
+
return flagIsEqual(this.bits, other.bits);
|
|
411
|
+
}
|
|
412
|
+
on(flag) {
|
|
413
|
+
return flagOn(this.bits, flag);
|
|
414
|
+
}
|
|
415
|
+
off(flag) {
|
|
416
|
+
return flagOff(this.bits, flag);
|
|
417
|
+
}
|
|
418
|
+
wipe() {
|
|
419
|
+
flagWipe(this.bits);
|
|
420
|
+
}
|
|
421
|
+
setall() {
|
|
422
|
+
flagSetall(this.bits);
|
|
423
|
+
}
|
|
424
|
+
negate() {
|
|
425
|
+
flagNegate(this.bits);
|
|
426
|
+
}
|
|
427
|
+
/** Copies `other` into this set (upstream flag_copy(this, other)). */
|
|
428
|
+
copy(other) {
|
|
429
|
+
flagCopy(this.bits, other.bits);
|
|
430
|
+
}
|
|
431
|
+
/** A new FlagSet with the same contents. */
|
|
432
|
+
clone() {
|
|
433
|
+
return new FlagSet(Uint8Array.from(this.bits));
|
|
434
|
+
}
|
|
435
|
+
union(other) {
|
|
436
|
+
return flagUnion(this.bits, other.bits);
|
|
437
|
+
}
|
|
438
|
+
inter(other) {
|
|
439
|
+
return flagInter(this.bits, other.bits);
|
|
440
|
+
}
|
|
441
|
+
diff(other) {
|
|
442
|
+
return flagDiff(this.bits, other.bits);
|
|
443
|
+
}
|
|
444
|
+
compUnion(other) {
|
|
445
|
+
return flagCompUnion(this.bits, other.bits);
|
|
446
|
+
}
|
|
447
|
+
compInter(other) {
|
|
448
|
+
return flagCompInter(this.bits, other.bits);
|
|
449
|
+
}
|
|
450
|
+
compDiff(other) {
|
|
451
|
+
return flagCompDiff(this.bits, other.bits);
|
|
452
|
+
}
|
|
453
|
+
test(...check) {
|
|
454
|
+
return flagsTest(this.bits, ...check);
|
|
455
|
+
}
|
|
456
|
+
testAll(...check) {
|
|
457
|
+
return flagsTestAll(this.bits, ...check);
|
|
458
|
+
}
|
|
459
|
+
clear(...clear) {
|
|
460
|
+
return flagsClear(this.bits, ...clear);
|
|
461
|
+
}
|
|
462
|
+
set(...set) {
|
|
463
|
+
return flagsSet(this.bits, ...set);
|
|
464
|
+
}
|
|
465
|
+
init(...set) {
|
|
466
|
+
flagsInit(this.bits, ...set);
|
|
467
|
+
}
|
|
468
|
+
mask(...mask) {
|
|
469
|
+
return flagsMask(this.bits, ...mask);
|
|
470
|
+
}
|
|
471
|
+
/** Iterate the set flags in ascending order. */
|
|
472
|
+
*[Symbol.iterator]() {
|
|
473
|
+
for (let f = flagNext(this.bits, FLAG_START); f !== NO_FLAG; f = flagNext(this.bits, f + 1)) {
|
|
474
|
+
yield f;
|
|
475
|
+
}
|
|
476
|
+
}
|
|
477
|
+
}
|
|
478
|
+
//# sourceMappingURL=bitflag.js.map
|