// ═══════════════════════════════════════════════════════════════════════ // KNOWLEDGE BASE — game data, spell unlocks, milestones, stat advice // ═══════════════════════════════════════════════════════════════════════ const KB = { qualities: ['Crude', 'Fair', 'Average', 'Superior', 'Exquisite', 'Magnificent', 'Legendary', 'Peerless'], // Stat priority per weapon type (order = importance) statPriority: { '1H': ['STR', 'END', 'DEX', 'AGI', 'WIS', 'INT'], '2H': ['STR', 'DEX', 'END', 'AGI', 'WIS', 'INT'], 'DW': ['STR', 'DEX', 'AGI', 'END', 'WIS', 'INT'], 'Niten': ['STR', 'DEX', 'AGI', 'END', 'WIS', 'INT'], 'Staff': ['INT', 'WIS', 'END', 'AGI', 'DEX', 'STR'], }, // Forum note: stats "barely even matter". These are rough guidelines, not precise. statAllocation: { novice: { '1H': { STR: 30, END: 25, DEX: 20, AGI: 10, WIS: 10, INT: 5 }, 'Staff': { INT: 30, WIS: 25, END: 25, AGI: 10, DEX: 5, STR: 5 }, }, adept: { '1H': { STR: 35, END: 20, DEX: 20, AGI: 10, WIS: 10, INT: 5 }, 'Staff': { INT: 35, WIS: 25, END: 20, AGI: 10, DEX: 5, STR: 5 }, }, veteran: { '1H': { STR: 40, DEX: 25, END: 15, AGI: 10, WIS: 5, INT: 5 }, 'Staff': { INT: 40, WIS: 30, END: 15, AGI: 10, DEX: 3, STR: 2 }, }, master: { '1H': { STR: 45, DEX: 30, END: 10, AGI: 10, WIS: 3, INT: 2 }, 'Staff': { INT: 45, WIS: 35, END: 10, AGI: 5, DEX: 3, STR: 2 }, }, }, // Spell unlock levels (forum-corrected: no MagNet) spellUnlocks: [ { lvl: 5, name: 'Cure' }, { lvl: 10, name: 'Protection' }, { lvl: 15, name: 'Fiery Blast' }, { lvl: 25, name: 'Freeze' }, { lvl: 50, name: 'Regen' }, { lvl: 60, name: 'Haste' }, { lvl: 70, name: 'Weaken' }, { lvl: 130, name: 'Imperil' }, { lvl: 140, name: 'Heartseeker' }, { lvl: 175, name: 'Arcane Focus' }, { lvl: 220, name: 'Full-Cure' }, ], // IW Potency rankings (forum research data) iwPotency: { '1H': ['Butcher', 'Fatality', 'Overpower'], '2H': ['Overpower', 'Butcher', 'Fatality'], 'DW': ['Overpower', 'Fatality', 'Butcher'], 'Niten': ['Overpower', 'Fatality', 'Butcher'], 'Staff': ['Economizer', 'Aether', 'Juggernaut'], }, // Difficulty EXP multipliers difficultyMult: { 'Normal': 1, 'Hard': 2, 'Nightmare': 4, 'Hell': 7, 'Nintendo': 10, 'IWBTH': 15, 'PFUDOR': 20, }, // Milestone tips milestones: [ { lvl: 1, tip: 'Do Arena "First Blood". Use items before spells.' }, { lvl: 5, tip: 'Cure unlocked! Keep Health Draughts.' }, { lvl: 10, tip: 'Protection unlocked — set as autocast.' }, { lvl: 15, tip: 'First damage spell: Fiery Blast.' }, { lvl: 50, tip: 'Regen + Adept tier. Train Adept Learner.' }, { lvl: 60, tip: 'Haste unlocked — +50% action speed.' }, { lvl: 70, tip: 'Weaken: -50% enemy damage. Use items, then Cure.' }, { lvl: 100, tip: 'Level 100! T2 spells available. Accuracy target: 150%.' }, { lvl: 130, tip: 'Imperil — THE most important debuff. Always cast first.' }, { lvl: 140, tip: 'Heartseeker — +25% physical damage, +10% crit. Self-buff, priority over Arcane Focus for 2H.' }, { lvl: 300, tip: 'Master tier. Optimize for speed. Run PFUDOR.' }, ], };