playlist-data-engine 1.1.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 +21 -0
- package/README.md +352 -0
- package/dist/__vite-browser-external-DYxpcVy9.js +4 -0
- package/dist/constants/DefaultClasses.d.ts +46 -0
- package/dist/constants/DefaultClasses.d.ts.map +1 -0
- package/dist/constants/DefaultEnchantments.d.ts +337 -0
- package/dist/constants/DefaultEnchantments.d.ts.map +1 -0
- package/dist/constants/DefaultEnemies.d.ts +83 -0
- package/dist/constants/DefaultEnemies.d.ts.map +1 -0
- package/dist/constants/DefaultEquipment.d.ts +23 -0
- package/dist/constants/DefaultEquipment.d.ts.map +1 -0
- package/dist/constants/DefaultFeatures.d.ts +22 -0
- package/dist/constants/DefaultFeatures.d.ts.map +1 -0
- package/dist/constants/DefaultRaces.d.ts +102 -0
- package/dist/constants/DefaultRaces.d.ts.map +1 -0
- package/dist/constants/DefaultSkills.d.ts +26 -0
- package/dist/constants/DefaultSkills.d.ts.map +1 -0
- package/dist/constants/DefaultSpells.d.ts +41 -0
- package/dist/constants/DefaultSpells.d.ts.map +1 -0
- package/dist/constants/EncounterBalance.d.ts +208 -0
- package/dist/constants/EncounterBalance.d.ts.map +1 -0
- package/dist/constants/EnemyEquipment.d.ts +71 -0
- package/dist/constants/EnemyEquipment.d.ts.map +1 -0
- package/dist/constants/EnemyRarity.d.ts +79 -0
- package/dist/constants/EnemyRarity.d.ts.map +1 -0
- package/dist/constants/EnemyTemplates/Construct.d.ts +63 -0
- package/dist/constants/EnemyTemplates/Construct.d.ts.map +1 -0
- package/dist/constants/EnemyTemplates/Dragon.d.ts +68 -0
- package/dist/constants/EnemyTemplates/Dragon.d.ts.map +1 -0
- package/dist/constants/EnemyTemplates/Elemental.d.ts +64 -0
- package/dist/constants/EnemyTemplates/Elemental.d.ts.map +1 -0
- package/dist/constants/EnemyTemplates/Fiend.d.ts +62 -0
- package/dist/constants/EnemyTemplates/Fiend.d.ts.map +1 -0
- package/dist/constants/EnemyTemplates/Monstrosity.d.ts +63 -0
- package/dist/constants/EnemyTemplates/Monstrosity.d.ts.map +1 -0
- package/dist/constants/EnemyTemplates/Undead.d.ts +61 -0
- package/dist/constants/EnemyTemplates/Undead.d.ts.map +1 -0
- package/dist/constants/ItemTemplates.d.ts +40 -0
- package/dist/constants/ItemTemplates.d.ts.map +1 -0
- package/dist/constants/MagicItems.d.ts +30 -0
- package/dist/constants/MagicItems.d.ts.map +1 -0
- package/dist/constants/SpellSlots.d.ts +30 -0
- package/dist/constants/SpellSlots.d.ts.map +1 -0
- package/dist/constants/StatScaling.d.ts +113 -0
- package/dist/constants/StatScaling.d.ts.map +1 -0
- package/dist/core/analysis/AudioAnalyzer.d.ts +599 -0
- package/dist/core/analysis/AudioAnalyzer.d.ts.map +1 -0
- package/dist/core/analysis/ColorExtractor.d.ts +64 -0
- package/dist/core/analysis/ColorExtractor.d.ts.map +1 -0
- package/dist/core/analysis/EssentiaPitchDetector.d.ts +282 -0
- package/dist/core/analysis/EssentiaPitchDetector.d.ts.map +1 -0
- package/dist/core/analysis/LevelSerializer.d.ts +265 -0
- package/dist/core/analysis/LevelSerializer.d.ts.map +1 -0
- package/dist/core/analysis/MelodyContourAnalyzer.d.ts +283 -0
- package/dist/core/analysis/MelodyContourAnalyzer.d.ts.map +1 -0
- package/dist/core/analysis/MultiBandAnalyzer.d.ts +214 -0
- package/dist/core/analysis/MultiBandAnalyzer.d.ts.map +1 -0
- package/dist/core/analysis/MusicClassifier.d.ts +524 -0
- package/dist/core/analysis/MusicClassifier.d.ts.map +1 -0
- package/dist/core/analysis/PitchAnalyzer.d.ts +266 -0
- package/dist/core/analysis/PitchAnalyzer.d.ts.map +1 -0
- package/dist/core/analysis/PitchDetector.d.ts +251 -0
- package/dist/core/analysis/PitchDetector.d.ts.map +1 -0
- package/dist/core/analysis/SpectrumScanner.d.ts +52 -0
- package/dist/core/analysis/SpectrumScanner.d.ts.map +1 -0
- package/dist/core/analysis/beat/BeatInterpolator.d.ts +477 -0
- package/dist/core/analysis/beat/BeatInterpolator.d.ts.map +1 -0
- package/dist/core/analysis/beat/BeatMapGenerator.d.ts +170 -0
- package/dist/core/analysis/beat/BeatMapGenerator.d.ts.map +1 -0
- package/dist/core/analysis/beat/BeatStream.d.ts +316 -0
- package/dist/core/analysis/beat/BeatStream.d.ts.map +1 -0
- package/dist/core/analysis/beat/BeatSubdivider.d.ts +205 -0
- package/dist/core/analysis/beat/BeatSubdivider.d.ts.map +1 -0
- package/dist/core/analysis/beat/BeatTracker.d.ts +137 -0
- package/dist/core/analysis/beat/BeatTracker.d.ts.map +1 -0
- package/dist/core/analysis/beat/CompositeStreamGenerator.d.ts +180 -0
- package/dist/core/analysis/beat/CompositeStreamGenerator.d.ts.map +1 -0
- package/dist/core/analysis/beat/DensityAnalyzer.d.ts +246 -0
- package/dist/core/analysis/beat/DensityAnalyzer.d.ts.map +1 -0
- package/dist/core/analysis/beat/DifficultyVariantGenerator.d.ts +1082 -0
- package/dist/core/analysis/beat/DifficultyVariantGenerator.d.ts.map +1 -0
- package/dist/core/analysis/beat/GrooveAnalyzer.d.ts +192 -0
- package/dist/core/analysis/beat/GrooveAnalyzer.d.ts.map +1 -0
- package/dist/core/analysis/beat/OnsetStrengthEnvelope.d.ts +133 -0
- package/dist/core/analysis/beat/OnsetStrengthEnvelope.d.ts.map +1 -0
- package/dist/core/analysis/beat/PhraseAnalyzer.d.ts +230 -0
- package/dist/core/analysis/beat/PhraseAnalyzer.d.ts.map +1 -0
- package/dist/core/analysis/beat/RhythmQuantizer.d.ts +399 -0
- package/dist/core/analysis/beat/RhythmQuantizer.d.ts.map +1 -0
- package/dist/core/analysis/beat/RhythmicBalancer.d.ts +262 -0
- package/dist/core/analysis/beat/RhythmicBalancer.d.ts.map +1 -0
- package/dist/core/analysis/beat/StreamScorer.d.ts +275 -0
- package/dist/core/analysis/beat/StreamScorer.d.ts.map +1 -0
- package/dist/core/analysis/beat/TempoAwareQuantizer.d.ts +256 -0
- package/dist/core/analysis/beat/TempoAwareQuantizer.d.ts.map +1 -0
- package/dist/core/analysis/beat/TempoDetector.d.ts +220 -0
- package/dist/core/analysis/beat/TempoDetector.d.ts.map +1 -0
- package/dist/core/analysis/beat/TransientDetector.d.ts +303 -0
- package/dist/core/analysis/beat/TransientDetector.d.ts.map +1 -0
- package/dist/core/analysis/beat/beatKeyHelpers.d.ts +180 -0
- package/dist/core/analysis/beat/beatKeyHelpers.d.ts.map +1 -0
- package/dist/core/analysis/beat/index.d.ts +41 -0
- package/dist/core/analysis/beat/index.d.ts.map +1 -0
- package/dist/core/analysis/beat/utils/audioUtils.d.ts +204 -0
- package/dist/core/analysis/beat/utils/audioUtils.d.ts.map +1 -0
- package/dist/core/analysis/beat/utils/beatInterpolationDebug.d.ts +404 -0
- package/dist/core/analysis/beat/utils/beatInterpolationDebug.d.ts.map +1 -0
- package/dist/core/analysis/beat/utils/subdivideBeatMap.d.ts +61 -0
- package/dist/core/analysis/beat/utils/subdivideBeatMap.d.ts.map +1 -0
- package/dist/core/analysis/beat/utils/unifyBeatMap.d.ts +33 -0
- package/dist/core/analysis/beat/utils/unifyBeatMap.d.ts.map +1 -0
- package/dist/core/analysis/index.d.ts +18 -0
- package/dist/core/analysis/index.d.ts.map +1 -0
- package/dist/core/combat/AI/AICombatRunner.d.ts +108 -0
- package/dist/core/combat/AI/AICombatRunner.d.ts.map +1 -0
- package/dist/core/combat/AI/CombatAI.d.ts +179 -0
- package/dist/core/combat/AI/CombatAI.d.ts.map +1 -0
- package/dist/core/combat/AI/CombatMetricsTracker.d.ts +30 -0
- package/dist/core/combat/AI/CombatMetricsTracker.d.ts.map +1 -0
- package/dist/core/combat/Analysis/BalanceValidator.d.ts +170 -0
- package/dist/core/combat/Analysis/BalanceValidator.d.ts.map +1 -0
- package/dist/core/combat/Analysis/ComparativeAnalyzer.d.ts +231 -0
- package/dist/core/combat/Analysis/ComparativeAnalyzer.d.ts.map +1 -0
- package/dist/core/combat/Analysis/DifficultyCalculator.d.ts +203 -0
- package/dist/core/combat/Analysis/DifficultyCalculator.d.ts.map +1 -0
- package/dist/core/combat/Analysis/ParameterSweep.d.ts +201 -0
- package/dist/core/combat/Analysis/ParameterSweep.d.ts.map +1 -0
- package/dist/core/combat/AttackResolver.d.ts +220 -0
- package/dist/core/combat/AttackResolver.d.ts.map +1 -0
- package/dist/core/combat/CombatEngine.d.ts +388 -0
- package/dist/core/combat/CombatEngine.d.ts.map +1 -0
- package/dist/core/combat/DiceRoller.d.ts +115 -0
- package/dist/core/combat/DiceRoller.d.ts.map +1 -0
- package/dist/core/combat/InitiativeRoller.d.ts +62 -0
- package/dist/core/combat/InitiativeRoller.d.ts.map +1 -0
- package/dist/core/combat/PartyAnalyzer.d.ts +215 -0
- package/dist/core/combat/PartyAnalyzer.d.ts.map +1 -0
- package/dist/core/combat/SeededDiceRoller.d.ts +120 -0
- package/dist/core/combat/SeededDiceRoller.d.ts.map +1 -0
- package/dist/core/combat/Simulation/CombatSimulator.d.ts +366 -0
- package/dist/core/combat/Simulation/CombatSimulator.d.ts.map +1 -0
- package/dist/core/combat/SpellCaster.d.ts +113 -0
- package/dist/core/combat/SpellCaster.d.ts.map +1 -0
- package/dist/core/config/index.d.ts +24 -0
- package/dist/core/config/index.d.ts.map +1 -0
- package/dist/core/config/progressionConfig.d.ts +73 -0
- package/dist/core/config/progressionConfig.d.ts.map +1 -0
- package/dist/core/config/sensorConfig.d.ts +134 -0
- package/dist/core/config/sensorConfig.d.ts.map +1 -0
- package/dist/core/equipment/BoxOpener.d.ts +175 -0
- package/dist/core/equipment/BoxOpener.d.ts.map +1 -0
- package/dist/core/equipment/EquipmentEffectApplier.d.ts +189 -0
- package/dist/core/equipment/EquipmentEffectApplier.d.ts.map +1 -0
- package/dist/core/equipment/EquipmentModifier.d.ts +327 -0
- package/dist/core/equipment/EquipmentModifier.d.ts.map +1 -0
- package/dist/core/equipment/EquipmentSpawnHelper.d.ts +246 -0
- package/dist/core/equipment/EquipmentSpawnHelper.d.ts.map +1 -0
- package/dist/core/equipment/EquipmentValidator.d.ts +173 -0
- package/dist/core/equipment/EquipmentValidator.d.ts.map +1 -0
- package/dist/core/extensions/ExtensionManager.d.ts +517 -0
- package/dist/core/extensions/ExtensionManager.d.ts.map +1 -0
- package/dist/core/extensions/WeightedSelector.d.ts +156 -0
- package/dist/core/extensions/WeightedSelector.d.ts.map +1 -0
- package/dist/core/extensions/index.d.ts +11 -0
- package/dist/core/extensions/index.d.ts.map +1 -0
- package/dist/core/extensions/initializeDefaults.d.ts +170 -0
- package/dist/core/extensions/initializeDefaults.d.ts.map +1 -0
- package/dist/core/features/FeatureEffectApplier.d.ts +102 -0
- package/dist/core/features/FeatureEffectApplier.d.ts.map +1 -0
- package/dist/core/features/FeatureQuery.d.ts +368 -0
- package/dist/core/features/FeatureQuery.d.ts.map +1 -0
- package/dist/core/features/FeatureTypes.d.ts +199 -0
- package/dist/core/features/FeatureTypes.d.ts.map +1 -0
- package/dist/core/features/FeatureValidator.d.ts +149 -0
- package/dist/core/features/FeatureValidator.d.ts.map +1 -0
- package/dist/core/features/index.d.ts +12 -0
- package/dist/core/features/index.d.ts.map +1 -0
- package/dist/core/generation/AbilityScoreCalculator.d.ts +83 -0
- package/dist/core/generation/AbilityScoreCalculator.d.ts.map +1 -0
- package/dist/core/generation/AppearanceGenerator.d.ts +32 -0
- package/dist/core/generation/AppearanceGenerator.d.ts.map +1 -0
- package/dist/core/generation/BeatConverter.d.ts +127 -0
- package/dist/core/generation/BeatConverter.d.ts.map +1 -0
- package/dist/core/generation/ButtonMapper.d.ts +346 -0
- package/dist/core/generation/ButtonMapper.d.ts.map +1 -0
- package/dist/core/generation/ButtonPatternLibrary.d.ts +92 -0
- package/dist/core/generation/ButtonPatternLibrary.d.ts.map +1 -0
- package/dist/core/generation/CRLevelConverter.d.ts +242 -0
- package/dist/core/generation/CRLevelConverter.d.ts.map +1 -0
- package/dist/core/generation/CharacterGenerator.d.ts +194 -0
- package/dist/core/generation/CharacterGenerator.d.ts.map +1 -0
- package/dist/core/generation/ClassSuggester.d.ts +184 -0
- package/dist/core/generation/ClassSuggester.d.ts.map +1 -0
- package/dist/core/generation/EnemyEquipmentGenerator.d.ts +151 -0
- package/dist/core/generation/EnemyEquipmentGenerator.d.ts.map +1 -0
- package/dist/core/generation/EnemyGenerator.d.ts +595 -0
- package/dist/core/generation/EnemyGenerator.d.ts.map +1 -0
- package/dist/core/generation/EquipmentGenerator.d.ts +204 -0
- package/dist/core/generation/EquipmentGenerator.d.ts.map +1 -0
- package/dist/core/generation/LegendaryGenerator.d.ts +213 -0
- package/dist/core/generation/LegendaryGenerator.d.ts.map +1 -0
- package/dist/core/generation/LevelGenerator.d.ts +390 -0
- package/dist/core/generation/LevelGenerator.d.ts.map +1 -0
- package/dist/core/generation/NamingEngine.d.ts +136 -0
- package/dist/core/generation/NamingEngine.d.ts.map +1 -0
- package/dist/core/generation/PitchBeatLinker.d.ts +150 -0
- package/dist/core/generation/PitchBeatLinker.d.ts.map +1 -0
- package/dist/core/generation/RaceSelector.d.ts +58 -0
- package/dist/core/generation/RaceSelector.d.ts.map +1 -0
- package/dist/core/generation/RhythmGenerator.d.ts +597 -0
- package/dist/core/generation/RhythmGenerator.d.ts.map +1 -0
- package/dist/core/generation/SkillAssigner.d.ts +78 -0
- package/dist/core/generation/SkillAssigner.d.ts.map +1 -0
- package/dist/core/generation/SpellManager.d.ts +132 -0
- package/dist/core/generation/SpellManager.d.ts.map +1 -0
- package/dist/core/generation/SpellcastingGenerator.d.ts +255 -0
- package/dist/core/generation/SpellcastingGenerator.d.ts.map +1 -0
- package/dist/core/generation/index.d.ts +41 -0
- package/dist/core/generation/index.d.ts.map +1 -0
- package/dist/core/parser/MetadataExtractor.d.ts +66 -0
- package/dist/core/parser/MetadataExtractor.d.ts.map +1 -0
- package/dist/core/parser/PlaylistParser.d.ts +45 -0
- package/dist/core/parser/PlaylistParser.d.ts.map +1 -0
- package/dist/core/playback/SubdivisionPlaybackController.d.ts +333 -0
- package/dist/core/playback/SubdivisionPlaybackController.d.ts.map +1 -0
- package/dist/core/playback/index.d.ts +5 -0
- package/dist/core/playback/index.d.ts.map +1 -0
- package/dist/core/progression/CharacterUpdater.d.ts +203 -0
- package/dist/core/progression/CharacterUpdater.d.ts.map +1 -0
- package/dist/core/progression/LevelUpProcessor.d.ts +234 -0
- package/dist/core/progression/LevelUpProcessor.d.ts.map +1 -0
- package/dist/core/progression/PrestigeSystem.d.ts +217 -0
- package/dist/core/progression/PrestigeSystem.d.ts.map +1 -0
- package/dist/core/progression/RhythmXPCalculator.d.ts +182 -0
- package/dist/core/progression/RhythmXPCalculator.d.ts.map +1 -0
- package/dist/core/progression/SessionTracker.d.ts +169 -0
- package/dist/core/progression/SessionTracker.d.ts.map +1 -0
- package/dist/core/progression/XPCalculator.d.ts +128 -0
- package/dist/core/progression/XPCalculator.d.ts.map +1 -0
- package/dist/core/progression/stat/StatIncreaseStrategy.d.ts +97 -0
- package/dist/core/progression/stat/StatIncreaseStrategy.d.ts.map +1 -0
- package/dist/core/progression/stat/StatManager.d.ts +179 -0
- package/dist/core/progression/stat/StatManager.d.ts.map +1 -0
- package/dist/core/sensors/EnvironmentalSensors.d.ts +301 -0
- package/dist/core/sensors/EnvironmentalSensors.d.ts.map +1 -0
- package/dist/core/sensors/GamingPlatformSensors.d.ts +162 -0
- package/dist/core/sensors/GamingPlatformSensors.d.ts.map +1 -0
- package/dist/core/sensors/GeolocationProvider.d.ts +156 -0
- package/dist/core/sensors/GeolocationProvider.d.ts.map +1 -0
- package/dist/core/sensors/MotionDetector.d.ts +58 -0
- package/dist/core/sensors/MotionDetector.d.ts.map +1 -0
- package/dist/core/sensors/SteamAPIClient.d.ts +108 -0
- package/dist/core/sensors/SteamAPIClient.d.ts.map +1 -0
- package/dist/core/sensors/WeatherAPIClient.d.ts +360 -0
- package/dist/core/sensors/WeatherAPIClient.d.ts.map +1 -0
- package/dist/core/sensors/schemas/weather.schema.d.ts +144 -0
- package/dist/core/sensors/schemas/weather.schema.d.ts.map +1 -0
- package/dist/core/skills/SkillQuery.d.ts +159 -0
- package/dist/core/skills/SkillQuery.d.ts.map +1 -0
- package/dist/core/skills/SkillTypes.d.ts +233 -0
- package/dist/core/skills/SkillTypes.d.ts.map +1 -0
- package/dist/core/skills/SkillValidator.d.ts +146 -0
- package/dist/core/skills/SkillValidator.d.ts.map +1 -0
- package/dist/core/skills/index.d.ts +11 -0
- package/dist/core/skills/index.d.ts.map +1 -0
- package/dist/core/spells/SpellQuery.d.ts +194 -0
- package/dist/core/spells/SpellQuery.d.ts.map +1 -0
- package/dist/core/spells/SpellTypes.d.ts +71 -0
- package/dist/core/spells/SpellTypes.d.ts.map +1 -0
- package/dist/core/spells/SpellValidator.d.ts +129 -0
- package/dist/core/spells/SpellValidator.d.ts.map +1 -0
- package/dist/core/spells/index.d.ts +11 -0
- package/dist/core/spells/index.d.ts.map +1 -0
- package/dist/core/types/AudioProfile.d.ts +143 -0
- package/dist/core/types/AudioProfile.d.ts.map +1 -0
- package/dist/core/types/BeatMap.d.ts +1825 -0
- package/dist/core/types/BeatMap.d.ts.map +1 -0
- package/dist/core/types/ButtonMapping.d.ts +345 -0
- package/dist/core/types/ButtonMapping.d.ts.map +1 -0
- package/dist/core/types/Character.d.ts +397 -0
- package/dist/core/types/Character.d.ts.map +1 -0
- package/dist/core/types/ChartedBeatMap.d.ts +169 -0
- package/dist/core/types/ChartedBeatMap.d.ts.map +1 -0
- package/dist/core/types/Combat.d.ts +268 -0
- package/dist/core/types/Combat.d.ts.map +1 -0
- package/dist/core/types/CombatAI.d.ts +143 -0
- package/dist/core/types/CombatAI.d.ts.map +1 -0
- package/dist/core/types/Enemy.d.ts +447 -0
- package/dist/core/types/Enemy.d.ts.map +1 -0
- package/dist/core/types/Environmental.d.ts +213 -0
- package/dist/core/types/Environmental.d.ts.map +1 -0
- package/dist/core/types/Equipment.d.ts +309 -0
- package/dist/core/types/Equipment.d.ts.map +1 -0
- package/dist/core/types/ISessionTracker.d.ts +48 -0
- package/dist/core/types/ISessionTracker.d.ts.map +1 -0
- package/dist/core/types/LevelExport.d.ts +366 -0
- package/dist/core/types/LevelExport.d.ts.map +1 -0
- package/dist/core/types/Playlist.d.ts +70 -0
- package/dist/core/types/Playlist.d.ts.map +1 -0
- package/dist/core/types/Prestige.d.ts +94 -0
- package/dist/core/types/Prestige.d.ts.map +1 -0
- package/dist/core/types/Progression.d.ts +214 -0
- package/dist/core/types/Progression.d.ts.map +1 -0
- package/dist/core/types/RhythmXP.d.ts +398 -0
- package/dist/core/types/RhythmXP.d.ts.map +1 -0
- package/dist/core/utils/AbilityConstants.d.ts +31 -0
- package/dist/core/utils/AbilityConstants.d.ts.map +1 -0
- package/dist/core/utils/EffectApplierUtils.d.ts +56 -0
- package/dist/core/utils/EffectApplierUtils.d.ts.map +1 -0
- package/dist/core/utils/ImageValidator.d.ts +66 -0
- package/dist/core/utils/ImageValidator.d.ts.map +1 -0
- package/dist/core/utils/PrerequisiteValidator.d.ts +88 -0
- package/dist/core/utils/PrerequisiteValidator.d.ts.map +1 -0
- package/dist/essentia-wasm.es-BUEnKUts.js +2990 -0
- package/dist/essentia.js-model.es-CGA0xotH.js +306 -0
- package/dist/index.d.ts +176 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/playlist-data-engine.js +124 -0
- package/dist/playlist-data-engine.mjs +49251 -0
- package/dist/utils/EnchantmentLibrary.d.ts +378 -0
- package/dist/utils/EnchantmentLibrary.d.ts.map +1 -0
- package/dist/utils/arweaveGatewayManager.d.ts +485 -0
- package/dist/utils/arweaveGatewayManager.d.ts.map +1 -0
- package/dist/utils/arweaveUtils.d.ts +118 -0
- package/dist/utils/arweaveUtils.d.ts.map +1 -0
- package/dist/utils/constants.d.ts +439 -0
- package/dist/utils/constants.d.ts.map +1 -0
- package/dist/utils/equipmentConstants.d.ts +60 -0
- package/dist/utils/equipmentConstants.d.ts.map +1 -0
- package/dist/utils/hash.d.ts +33 -0
- package/dist/utils/hash.d.ts.map +1 -0
- package/dist/utils/logger.d.ts +192 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/magicItemExamples.d.ts +46 -0
- package/dist/utils/magicItemExamples.d.ts.map +1 -0
- package/dist/utils/playlistUtils.d.ts +149 -0
- package/dist/utils/playlistUtils.d.ts.map +1 -0
- package/dist/utils/random.d.ts +34 -0
- package/dist/utils/random.d.ts.map +1 -0
- package/dist/utils/sensorDashboard.d.ts +60 -0
- package/dist/utils/sensorDashboard.d.ts.map +1 -0
- package/dist/utils/validators.d.ts +189 -0
- package/dist/utils/validators.d.ts.map +1 -0
- package/dist/vite.svg +1 -0
- package/package.json +82 -0
|
@@ -0,0 +1,309 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Enhanced Equipment Type Definitions
|
|
3
|
+
*
|
|
4
|
+
* Defines interfaces for the Advanced Equipment System.
|
|
5
|
+
*
|
|
6
|
+
* These interfaces provide:
|
|
7
|
+
* - Equipment properties affecting gameplay
|
|
8
|
+
* - Equipment-granted features and skills
|
|
9
|
+
* - D&D 5e standard stats (damage dice, AC, properties)
|
|
10
|
+
* - Runtime equipment modification (templates + per-instance)
|
|
11
|
+
* - Spawn weight system for generation control
|
|
12
|
+
*/
|
|
13
|
+
import type { Equipment as BaseEquipment } from '../../utils/constants.ts';
|
|
14
|
+
/**
|
|
15
|
+
* Equipment rarity levels following D&D 5e conventions
|
|
16
|
+
*/
|
|
17
|
+
export type EquipmentRarity = 'common' | 'uncommon' | 'rare' | 'very_rare' | 'legendary';
|
|
18
|
+
/**
|
|
19
|
+
* Equipment type categories
|
|
20
|
+
*/
|
|
21
|
+
export type EquipmentType = 'weapon' | 'armor' | 'item' | 'box';
|
|
22
|
+
/**
|
|
23
|
+
* Equipment property types that affect gameplay
|
|
24
|
+
*/
|
|
25
|
+
export type EquipmentPropertyType = 'stat_bonus' | 'skill_proficiency' | 'ability_unlock' | 'passive_modifier' | 'special_property' | 'damage_bonus' | 'stat_requirement';
|
|
26
|
+
/**
|
|
27
|
+
* Structured condition types for equipment properties
|
|
28
|
+
* Properties only apply when their condition is met
|
|
29
|
+
*/
|
|
30
|
+
export type EquipmentCondition = {
|
|
31
|
+
type: 'vs_creature_type';
|
|
32
|
+
value: string;
|
|
33
|
+
} | {
|
|
34
|
+
type: 'at_time_of_day';
|
|
35
|
+
value: 'day' | 'night' | 'dawn' | 'dusk';
|
|
36
|
+
} | {
|
|
37
|
+
type: 'wielder_race';
|
|
38
|
+
value: string;
|
|
39
|
+
} | {
|
|
40
|
+
type: 'wielder_class';
|
|
41
|
+
value: string;
|
|
42
|
+
} | {
|
|
43
|
+
type: 'while_equipped';
|
|
44
|
+
value: boolean;
|
|
45
|
+
} | {
|
|
46
|
+
type: 'on_hit';
|
|
47
|
+
value: boolean;
|
|
48
|
+
} | {
|
|
49
|
+
type: 'on_damage_taken';
|
|
50
|
+
value: boolean;
|
|
51
|
+
} | {
|
|
52
|
+
type: 'custom';
|
|
53
|
+
value: string;
|
|
54
|
+
description: string;
|
|
55
|
+
};
|
|
56
|
+
/**
|
|
57
|
+
* Equipment property that provides mechanical benefits
|
|
58
|
+
*/
|
|
59
|
+
export interface EquipmentProperty {
|
|
60
|
+
type: EquipmentPropertyType;
|
|
61
|
+
target: string;
|
|
62
|
+
value: number | string | boolean;
|
|
63
|
+
condition?: EquipmentCondition;
|
|
64
|
+
description?: string;
|
|
65
|
+
stackable?: boolean;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Inline mini-feature definition for equipment-specific abilities
|
|
69
|
+
* These don't go in the main FeatureQuery but are treated like features for this item
|
|
70
|
+
*/
|
|
71
|
+
export interface EquipmentMiniFeature {
|
|
72
|
+
id: string;
|
|
73
|
+
name: string;
|
|
74
|
+
description: string;
|
|
75
|
+
effects: EquipmentProperty[];
|
|
76
|
+
source: 'equipment_inline';
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Pool entry for a single item that can drop from a box
|
|
80
|
+
*
|
|
81
|
+
* Each entry in a drop pool represents a possible item that could be
|
|
82
|
+
* generated when a box is opened. The weight determines the probability
|
|
83
|
+
* relative to other entries in the same pool.
|
|
84
|
+
*/
|
|
85
|
+
export interface BoxDropPool {
|
|
86
|
+
/** Probability weight (weights in pool should sum to 100) */
|
|
87
|
+
weight: number;
|
|
88
|
+
/** Item name to spawn (must exist in equipment registry) */
|
|
89
|
+
itemName?: string;
|
|
90
|
+
/** Quantity if selected (e.g., 10 torches, 20 arrows) */
|
|
91
|
+
quantity?: number;
|
|
92
|
+
/** Gold amount instead of item (mutually exclusive with itemName) */
|
|
93
|
+
gold?: number;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* A single "drop" - one item generated from a pool
|
|
97
|
+
*
|
|
98
|
+
* When a box is opened, each drop generates one item by selecting
|
|
99
|
+
* from its pool using weighted random selection.
|
|
100
|
+
*/
|
|
101
|
+
export interface BoxDrop {
|
|
102
|
+
/** Pool of possible items. Weights should sum to 100. */
|
|
103
|
+
pool: BoxDropPool[];
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Box contents configuration
|
|
107
|
+
*
|
|
108
|
+
* Defines what a box item contains when opened. Supports both
|
|
109
|
+
* guaranteed containers (like Explorer's Pack) and probability-based
|
|
110
|
+
* loot boxes.
|
|
111
|
+
*/
|
|
112
|
+
export interface BoxContents {
|
|
113
|
+
/** Number of drops to generate when box is opened */
|
|
114
|
+
drops: BoxDrop[];
|
|
115
|
+
/** Whether box is consumed on open (default: true) */
|
|
116
|
+
consumeOnOpen?: boolean;
|
|
117
|
+
/** Optional requirements to open this box (all must be satisfied) */
|
|
118
|
+
openRequirements?: BoxOpenRequirement[];
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Result of opening a box
|
|
122
|
+
*
|
|
123
|
+
* Contains all items and gold generated from opening a box,
|
|
124
|
+
* along with metadata about whether the box should be consumed.
|
|
125
|
+
*/
|
|
126
|
+
export interface BoxOpenResult {
|
|
127
|
+
/** Whether the box was successfully opened */
|
|
128
|
+
success: boolean;
|
|
129
|
+
/** Items generated from the box (empty if not opened) */
|
|
130
|
+
items: BaseEquipment[];
|
|
131
|
+
/** Gold generated from the box */
|
|
132
|
+
gold: number;
|
|
133
|
+
/** Whether the box should be consumed */
|
|
134
|
+
consumeBox: boolean;
|
|
135
|
+
/** Error if box could not be opened */
|
|
136
|
+
error?: BoxOpenError;
|
|
137
|
+
/** Items consumed to open the box */
|
|
138
|
+
consumedItems?: {
|
|
139
|
+
name: string;
|
|
140
|
+
quantity: number;
|
|
141
|
+
}[];
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* A single requirement that must be met to open a box
|
|
145
|
+
*
|
|
146
|
+
* Represents an item (and quantity) that must be consumed from inventory.
|
|
147
|
+
* Gold requirements use a "Gold Coin" item with quantity.
|
|
148
|
+
*/
|
|
149
|
+
export interface BoxOpenRequirement {
|
|
150
|
+
/** Item name that must be consumed (must exist in character inventory) */
|
|
151
|
+
itemName: string;
|
|
152
|
+
/** Quantity of item required (default: 1) */
|
|
153
|
+
quantity?: number;
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Error returned when box cannot be opened due to unmet requirements
|
|
157
|
+
*/
|
|
158
|
+
export interface BoxOpenError {
|
|
159
|
+
/** Error code for programmatic handling */
|
|
160
|
+
code: 'MISSING_ITEM' | 'INSUFFICIENT_QUANTITY' | 'NO_BOX_CONTENTS';
|
|
161
|
+
/** Human-readable error message */
|
|
162
|
+
message: string;
|
|
163
|
+
/** The requirement that was not met */
|
|
164
|
+
requirement?: BoxOpenRequirement;
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Enhanced equipment interface with optional advanced properties
|
|
168
|
+
*
|
|
169
|
+
* NOTE: This is now an alias to the Equipment type from constants.ts.
|
|
170
|
+
* The Equipment interface has been updated to include all the same properties
|
|
171
|
+
* as the original EnhancedEquipment interface.
|
|
172
|
+
*
|
|
173
|
+
* This alias is kept for backward compatibility with existing code.
|
|
174
|
+
* New code should use the Equipment type directly from constants.ts.
|
|
175
|
+
*/
|
|
176
|
+
export type EnhancedEquipment = BaseEquipment;
|
|
177
|
+
/**
|
|
178
|
+
* Runtime modification to equipment (enchanting, curses, upgrades)
|
|
179
|
+
*/
|
|
180
|
+
export interface EquipmentModification {
|
|
181
|
+
id: string;
|
|
182
|
+
name: string;
|
|
183
|
+
properties: EquipmentProperty[];
|
|
184
|
+
addsFeatures?: Array<string | EquipmentMiniFeature>;
|
|
185
|
+
addsSkills?: Array<{
|
|
186
|
+
skillId: string;
|
|
187
|
+
level: 'proficient' | 'expertise';
|
|
188
|
+
}>;
|
|
189
|
+
addsSpells?: Array<{
|
|
190
|
+
spellId: string;
|
|
191
|
+
level?: number;
|
|
192
|
+
uses?: number;
|
|
193
|
+
recharge?: string;
|
|
194
|
+
}>;
|
|
195
|
+
appliedAt: string;
|
|
196
|
+
source: string;
|
|
197
|
+
/** Optional: User-facing description of this modification */
|
|
198
|
+
description?: string;
|
|
199
|
+
}
|
|
200
|
+
/**
|
|
201
|
+
* Enhanced inventory item with per-instance modifications
|
|
202
|
+
*/
|
|
203
|
+
export interface EnhancedInventoryItem {
|
|
204
|
+
name: string;
|
|
205
|
+
quantity: number;
|
|
206
|
+
equipped: boolean;
|
|
207
|
+
modifications?: EquipmentModification[];
|
|
208
|
+
templateId?: string;
|
|
209
|
+
instanceId?: string;
|
|
210
|
+
damage?: {
|
|
211
|
+
dice: string;
|
|
212
|
+
damageType: string;
|
|
213
|
+
versatile?: string;
|
|
214
|
+
};
|
|
215
|
+
weaponProperties?: string[];
|
|
216
|
+
type?: EquipmentType;
|
|
217
|
+
acBonus?: number;
|
|
218
|
+
tags?: string[];
|
|
219
|
+
}
|
|
220
|
+
/**
|
|
221
|
+
* Character equipment state
|
|
222
|
+
* Contains all inventory items organized by category with weight tracking
|
|
223
|
+
*/
|
|
224
|
+
export interface CharacterEquipment {
|
|
225
|
+
weapons: EnhancedInventoryItem[];
|
|
226
|
+
armor: EnhancedInventoryItem[];
|
|
227
|
+
items: EnhancedInventoryItem[];
|
|
228
|
+
totalWeight: number;
|
|
229
|
+
equippedWeight: number;
|
|
230
|
+
}
|
|
231
|
+
/**
|
|
232
|
+
* Equipment-granted feature tracking
|
|
233
|
+
*/
|
|
234
|
+
export interface EquipmentFeature {
|
|
235
|
+
featureId: string;
|
|
236
|
+
source: 'equipment';
|
|
237
|
+
equipmentName: string;
|
|
238
|
+
instanceId?: string;
|
|
239
|
+
sourceType: 'default' | 'custom';
|
|
240
|
+
}
|
|
241
|
+
/**
|
|
242
|
+
* Equipment-granted skill tracking
|
|
243
|
+
*/
|
|
244
|
+
export interface EquipmentSkill {
|
|
245
|
+
skillId: string;
|
|
246
|
+
level: 'proficient' | 'expertise';
|
|
247
|
+
source: 'equipment';
|
|
248
|
+
equipmentName: string;
|
|
249
|
+
instanceId?: string;
|
|
250
|
+
sourceType: 'default' | 'custom';
|
|
251
|
+
}
|
|
252
|
+
/**
|
|
253
|
+
* Equipment-granted spell tracking
|
|
254
|
+
*/
|
|
255
|
+
export interface EquipmentSpell {
|
|
256
|
+
spellId: string;
|
|
257
|
+
level?: number;
|
|
258
|
+
uses?: number;
|
|
259
|
+
recharge?: string;
|
|
260
|
+
source?: 'equipment';
|
|
261
|
+
equipmentName?: string;
|
|
262
|
+
instanceId?: string;
|
|
263
|
+
sourceType?: 'default' | 'custom';
|
|
264
|
+
}
|
|
265
|
+
/**
|
|
266
|
+
* Result type for equipment effect application/removal operations
|
|
267
|
+
*/
|
|
268
|
+
export interface EffectApplicationResult {
|
|
269
|
+
/** Whether any effects were applied or removed */
|
|
270
|
+
applied: boolean;
|
|
271
|
+
/** Number of effects affected */
|
|
272
|
+
count: number;
|
|
273
|
+
/** Errors encountered during application */
|
|
274
|
+
errors: string[];
|
|
275
|
+
}
|
|
276
|
+
/**
|
|
277
|
+
* Result type for equipment validation operations
|
|
278
|
+
*/
|
|
279
|
+
export interface EquipmentValidationResult {
|
|
280
|
+
/** Whether the validation passed */
|
|
281
|
+
valid: boolean;
|
|
282
|
+
/** Array of error messages (undefined if valid) */
|
|
283
|
+
errors?: string[];
|
|
284
|
+
}
|
|
285
|
+
/**
|
|
286
|
+
* Options for random equipment spawning
|
|
287
|
+
*/
|
|
288
|
+
export interface SpawnRandomOptions {
|
|
289
|
+
/** Exclude items with spawnWeight: 0 (game-only items) */
|
|
290
|
+
excludeZeroWeight?: boolean;
|
|
291
|
+
/** Only include specific equipment types */
|
|
292
|
+
includeTypes?: ('weapon' | 'armor' | 'item' | 'box')[];
|
|
293
|
+
/** Minimum rarity level (inclusive) */
|
|
294
|
+
minRarity?: 'common' | 'uncommon' | 'rare' | 'very_rare' | 'legendary';
|
|
295
|
+
/** Maximum rarity level (inclusive) */
|
|
296
|
+
maxRarity?: 'common' | 'uncommon' | 'rare' | 'very_rare' | 'legendary';
|
|
297
|
+
}
|
|
298
|
+
/**
|
|
299
|
+
* Treasure hoard result with additional metadata
|
|
300
|
+
*/
|
|
301
|
+
export interface TreasureHoardResult {
|
|
302
|
+
/** Generated equipment items */
|
|
303
|
+
items: EnhancedEquipment[];
|
|
304
|
+
/** Total gold piece value (estimated) */
|
|
305
|
+
totalValue: number;
|
|
306
|
+
/** Challenge rating used for generation */
|
|
307
|
+
cr: number;
|
|
308
|
+
}
|
|
309
|
+
//# sourceMappingURL=Equipment.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Equipment.d.ts","sourceRoot":"","sources":["../../../src/core/types/Equipment.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Interface for session tracking operations required by the prestige system.
|
|
3
|
+
* Allows consumers to provide adapters for their own state management.
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
* ```typescript
|
|
7
|
+
* // Using with Zustand adapter
|
|
8
|
+
* const zustandAdapter: ISessionTracker = {
|
|
9
|
+
* getTrackListenCount: (id) => useSessionStore.getState().getTrackListenCount(id),
|
|
10
|
+
* getTrackXPTotal: (id) => useSessionStore.getState().getTrackXPTotal(id),
|
|
11
|
+
* clearTrackSessions: (id) => useSessionStore.getState().clearTrackSessions(id),
|
|
12
|
+
* };
|
|
13
|
+
*
|
|
14
|
+
* const result = updater.resetCharacterForPrestige(character, zustandAdapter, trackUuid, audioProfile, track);
|
|
15
|
+
* ```
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* ```typescript
|
|
19
|
+
* // Using with mock for testing
|
|
20
|
+
* const mockTracker: ISessionTracker = {
|
|
21
|
+
* getTrackListenCount: () => 15,
|
|
22
|
+
* getTrackXPTotal: () => 2000,
|
|
23
|
+
* clearTrackSessions: () => 10,
|
|
24
|
+
* };
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
export interface ISessionTracker {
|
|
28
|
+
/**
|
|
29
|
+
* Get the number of listening sessions for a specific track.
|
|
30
|
+
* @param trackUuid - The track UUID to check
|
|
31
|
+
* @returns Number of completed sessions for this track
|
|
32
|
+
*/
|
|
33
|
+
getTrackListenCount(trackUuid: string): number;
|
|
34
|
+
/**
|
|
35
|
+
* Get the total XP earned for a specific track.
|
|
36
|
+
* @param trackUuid - The track UUID to check
|
|
37
|
+
* @returns Total XP earned from all sessions for this track
|
|
38
|
+
*/
|
|
39
|
+
getTrackXPTotal(trackUuid: string): number;
|
|
40
|
+
/**
|
|
41
|
+
* Clear all listening sessions for a specific track.
|
|
42
|
+
* Used by the prestige system to reset track progress after prestiging.
|
|
43
|
+
* @param trackUuid - The track UUID to clear sessions for
|
|
44
|
+
* @returns Number of sessions that were removed
|
|
45
|
+
*/
|
|
46
|
+
clearTrackSessions(trackUuid: string): number;
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=ISessionTracker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ISessionTracker.d.ts","sourceRoot":"","sources":["../../../src/core/types/ISessionTracker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,WAAW,eAAe;IAC5B;;;;OAIG;IACH,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IAE/C;;;;OAIG;IACH,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IAE3C;;;;;OAKG;IACH,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;CACjD"}
|