- Added Heartseeker to BUFF_PRIORITY (+25% phys dmg, +10% crit self-buff) - Channeling consumption: mp_cost/(dur+1) scoring, no arbitrary cutoff - KickstartChanneling: prefers highest-MP-cost buffs for better proc chance - Raised minTurns on all buffs for 100% uptime (Haste/Protect/Regen/Absorb/Shadow 2->4, Spark 1->3) - Updated knowledge-base spellUnlocks and milestones - Removed <10 turn hard cutoff from channeling target selection
86 lines
3.8 KiB
JavaScript
86 lines
3.8 KiB
JavaScript
// ═══════════════════════════════════════════════════════════════════════
|
|
// 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.' },
|
|
],
|
|
};
|