Completely remove legacy skill system and tests
This commit is contained in:
@@ -1,46 +0,0 @@
|
||||
import type { SkillV2Def } from './skills-v2-types';
|
||||
|
||||
// ═══════════════════════════════════════════════════════════════════════
|
||||
// COMBAT SKILLS
|
||||
// ═══════════════════════════════════════════════════════════════════════
|
||||
export const arcaneFury: SkillV2Def = {
|
||||
id: 'arcaneFury', name: 'Arcane Fury', description: 'Increases spell damage per level',
|
||||
category: 'combat', maxLevel: 10, costPerLevel: 200, studyHours: 4,
|
||||
effects: [{ stat: 'damageMultiplier', mode: 'multiply', valuePerLevel: 0.10 }],
|
||||
};
|
||||
|
||||
export const combatTraining: SkillV2Def = {
|
||||
id: 'combatTraining', name: 'Combat Training', description: 'Base damage bonus per level',
|
||||
category: 'combat', maxLevel: 10, costPerLevel: 250, studyHours: 5,
|
||||
effects: [{ stat: 'baseDamage', mode: 'add', valuePerLevel: 5 }],
|
||||
};
|
||||
|
||||
export const precision: SkillV2Def = {
|
||||
id: 'precision', name: 'Precision', description: '+5% crit chance per level',
|
||||
category: 'combat', maxLevel: 10, costPerLevel: 300, studyHours: 6,
|
||||
effects: [{ stat: 'critChance', mode: 'add', valuePerLevel: 0.05 }],
|
||||
};
|
||||
|
||||
export const elementalMastery: SkillV2Def = {
|
||||
id: 'elementalMastery', name: 'Elemental Mastery', description: '+15% elemental damage per level',
|
||||
category: 'combat', maxLevel: 10, costPerLevel: 350, studyHours: 6,
|
||||
effects: [{ stat: 'elementalDamage', mode: 'multiply', valuePerLevel: 0.15 }],
|
||||
};
|
||||
|
||||
export const attackSpeed: SkillV2Def = {
|
||||
id: 'attackSpeed', name: 'Attack Speed', description: '-10% attack time per level (faster)',
|
||||
category: 'combat', maxLevel: 5, costPerLevel: 400, studyHours: 6,
|
||||
effects: [{ stat: 'attackSpeed', mode: 'multiply', valuePerLevel: -0.10 }],
|
||||
};
|
||||
|
||||
export const armorPiercing: SkillV2Def = {
|
||||
id: 'armorPiercing', name: 'Armor Piercing', description: '+5% armor penetration per level',
|
||||
category: 'combat', maxLevel: 5, costPerLevel: 400, studyHours: 6,
|
||||
effects: [{ stat: 'armorPierce', mode: 'add', valuePerLevel: 0.05 }],
|
||||
};
|
||||
|
||||
export const spellDamage: SkillV2Def = {
|
||||
id: 'spellDamage', name: 'Spell Damage', description: '+5% spell damage per level',
|
||||
category: 'combat', maxLevel: 10, costPerLevel: 250, studyHours: 5,
|
||||
effects: [{ stat: 'spellDamage', mode: 'multiply', valuePerLevel: 0.05 }],
|
||||
};
|
||||
@@ -1,86 +0,0 @@
|
||||
import type { SkillV2Def } from './skills-v2-types';
|
||||
|
||||
// ═══════════════════════════════════════════════════════════════════════
|
||||
// CORE MANA SKILLS
|
||||
// ═══════════════════════════════════════════════════════════════════════
|
||||
export const manaWell: SkillV2Def = {
|
||||
id: 'manaWell', name: 'Mana Well', description: 'Increases maximum mana capacity',
|
||||
category: 'mana', maxLevel: 10, costPerLevel: 100, studyHours: 4,
|
||||
effects: [{ stat: 'maxMana', mode: 'add', valuePerLevel: 100 }],
|
||||
};
|
||||
|
||||
export const manaFlow: SkillV2Def = {
|
||||
id: 'manaFlow', name: 'Mana Flow', description: 'Increases mana regeneration rate',
|
||||
category: 'mana', maxLevel: 10, costPerLevel: 150, studyHours: 5,
|
||||
effects: [{ stat: 'manaRegen', mode: 'add', valuePerLevel: 1 }],
|
||||
};
|
||||
|
||||
export const manaOverflow: SkillV2Def = {
|
||||
id: 'manaOverflow', name: 'Mana Overflow', description: 'Increases mana gained from clicks',
|
||||
category: 'mana', maxLevel: 5, costPerLevel: 400, studyHours: 6,
|
||||
prerequisites: { manaWell: 3 },
|
||||
effects: [{ stat: 'clickMana', mode: 'multiply', valuePerLevel: 0.25 }],
|
||||
};
|
||||
|
||||
export const manaTap: SkillV2Def = {
|
||||
id: 'manaTap', name: 'Mana Tap', description: '+1 mana per click',
|
||||
category: 'mana', maxLevel: 1, costPerLevel: 300, studyHours: 12,
|
||||
effects: [{ stat: 'clickMana', mode: 'add', valuePerLevel: 1 }],
|
||||
};
|
||||
|
||||
export const manaSurge: SkillV2Def = {
|
||||
id: 'manaSurge', name: 'Mana Surge', description: '+3 mana per click',
|
||||
category: 'mana', maxLevel: 1, costPerLevel: 800, studyHours: 36,
|
||||
prerequisites: { manaTap: 1 },
|
||||
effects: [{ stat: 'clickMana', mode: 'add', valuePerLevel: 3 }],
|
||||
};
|
||||
|
||||
export const manaSpring: SkillV2Def = {
|
||||
id: 'manaSpring', name: 'Mana Spring', description: '+2 mana regen',
|
||||
category: 'mana', maxLevel: 1, costPerLevel: 600, studyHours: 24,
|
||||
effects: [{ stat: 'manaRegen', mode: 'add', valuePerLevel: 2 }],
|
||||
};
|
||||
|
||||
// ═══════════════════════════════════════════════════════════════════════
|
||||
// STUDY SKILLS
|
||||
// ═══════════════════════════════════════════════════════════════════════
|
||||
export const quickLearner: SkillV2Def = {
|
||||
id: 'quickLearner', name: 'Quick Learner', description: 'Increases study speed',
|
||||
category: 'study', maxLevel: 10, costPerLevel: 250, studyHours: 4,
|
||||
effects: [{ stat: 'studySpeed', mode: 'multiply', valuePerLevel: 0.10 }],
|
||||
};
|
||||
|
||||
export const focusedMind: SkillV2Def = {
|
||||
id: 'focusedMind', name: 'Focused Mind', description: 'Reduces study mana cost',
|
||||
category: 'study', maxLevel: 10, costPerLevel: 300, studyHours: 5,
|
||||
effects: [{ stat: 'studyCostMult', mode: 'multiply', valuePerLevel: -0.05 }],
|
||||
};
|
||||
|
||||
export const knowledgeRetention: SkillV2Def = {
|
||||
id: 'knowledgeRetention', name: 'Knowledge Retention', description: 'Preserves study progress on cancellation',
|
||||
category: 'study', maxLevel: 3, costPerLevel: 350, studyHours: 5,
|
||||
effects: [{ stat: 'progressRetention', mode: 'add', valuePerLevel: 0.20 }],
|
||||
};
|
||||
|
||||
// ═══════════════════════════════════════════════════════════════════════
|
||||
// MEDITATION SKILLS
|
||||
// ═══════════════════════════════════════════════════════════════════════
|
||||
export const meditation: SkillV2Def = {
|
||||
id: 'meditation', name: 'Meditation Focus', description: 'Unlocks meditation regen boost (2.5x at 4hrs)',
|
||||
category: 'mana', maxLevel: 1, costPerLevel: 400, studyHours: 6,
|
||||
effects: [{ stat: 'meditationEfficiency', mode: 'multiply', valuePerLevel: 1.5 }],
|
||||
};
|
||||
|
||||
export const deepTrance: SkillV2Def = {
|
||||
id: 'deepTrance', name: 'Deep Trance', description: 'Extends meditation to 6hrs for 3x',
|
||||
category: 'mana', maxLevel: 1, costPerLevel: 900, studyHours: 48,
|
||||
prerequisites: { meditation: 1 },
|
||||
effects: [{ stat: 'meditationEfficiency', mode: 'multiply', valuePerLevel: 1.8 }],
|
||||
};
|
||||
|
||||
export const voidMeditation: SkillV2Def = {
|
||||
id: 'voidMeditation', name: 'Void Meditation', description: 'Extends meditation to 8hrs for 5x',
|
||||
category: 'mana', maxLevel: 1, costPerLevel: 1500, studyHours: 72,
|
||||
prerequisites: { deepTrance: 1 },
|
||||
effects: [{ stat: 'meditationEfficiency', mode: 'multiply', valuePerLevel: 2.5 }],
|
||||
};
|
||||
@@ -1,16 +0,0 @@
|
||||
import type { SkillV2Def } from './skills-v2-types';
|
||||
|
||||
// ═══════════════════════════════════════════════════════════════════════
|
||||
// CRAFTING SKILLS (Legacy — kept for store compat)
|
||||
// ═══════════════════════════════════════════════════════════════════════
|
||||
export const effCrafting: SkillV2Def = {
|
||||
id: 'effCrafting', name: 'Eff. Crafting', description: '-10% craft time',
|
||||
category: 'craft', maxLevel: 1, costPerLevel: 300, studyHours: 4,
|
||||
effects: [{ stat: 'craftSpeed', mode: 'multiply', valuePerLevel: -0.10 }],
|
||||
};
|
||||
|
||||
export const fieldRepair: SkillV2Def = {
|
||||
id: 'fieldRepair', name: 'Field Repair', description: '+20% repair efficiency',
|
||||
category: 'craft', maxLevel: 1, costPerLevel: 350, studyHours: 4,
|
||||
effects: [{ stat: 'repairSpeed', mode: 'multiply', valuePerLevel: -0.10 }],
|
||||
};
|
||||
@@ -1,70 +0,0 @@
|
||||
import type { SkillV2Def } from './skills-v2-types';
|
||||
|
||||
// ═══════════════════════════════════════════════════════════════════════
|
||||
// PER-ELEMENT CAPACITY SKILLS
|
||||
// ═══════════════════════════════════════════════════════════════════════
|
||||
export const fireManaCap: SkillV2Def = {
|
||||
id: 'fireManaCap', name: 'Fire Mana Capacity', description: '+10% fire capacity per level',
|
||||
category: 'mana', maxLevel: 10, costPerLevel: 200, studyHours: 4,
|
||||
effects: [{ stat: 'fireCap', mode: 'add', valuePerLevel: 10 }],
|
||||
};
|
||||
|
||||
export const waterManaCap: SkillV2Def = {
|
||||
id: 'waterManaCap', name: 'Water Mana Capacity', description: '+10% water capacity per level',
|
||||
category: 'mana', maxLevel: 10, costPerLevel: 200, studyHours: 4,
|
||||
effects: [{ stat: 'waterCap', mode: 'add', valuePerLevel: 10 }],
|
||||
};
|
||||
|
||||
export const airManaCap: SkillV2Def = {
|
||||
id: 'airManaCap', name: 'Air Mana Capacity', description: '+10% air capacity per level',
|
||||
category: 'mana', maxLevel: 10, costPerLevel: 200, studyHours: 4,
|
||||
effects: [{ stat: 'airCap', mode: 'add', valuePerLevel: 10 }],
|
||||
};
|
||||
|
||||
export const earthManaCap: SkillV2Def = {
|
||||
id: 'earthManaCap', name: 'Earth Mana Capacity', description: '+10% earth capacity per level',
|
||||
category: 'mana', maxLevel: 10, costPerLevel: 200, studyHours: 4,
|
||||
effects: [{ stat: 'earthCap', mode: 'add', valuePerLevel: 10 }],
|
||||
};
|
||||
|
||||
export const lightManaCap: SkillV2Def = {
|
||||
id: 'lightManaCap', name: 'Light Mana Capacity', description: '+10% light capacity per level',
|
||||
category: 'mana', maxLevel: 10, costPerLevel: 250, studyHours: 5,
|
||||
effects: [{ stat: 'lightCap', mode: 'add', valuePerLevel: 10 }],
|
||||
};
|
||||
|
||||
export const darkManaCap: SkillV2Def = {
|
||||
id: 'darkManaCap', name: 'Dark Mana Capacity', description: '+10% dark capacity per level',
|
||||
category: 'mana', maxLevel: 10, costPerLevel: 250, studyHours: 5,
|
||||
effects: [{ stat: 'darkCap', mode: 'add', valuePerLevel: 10 }],
|
||||
};
|
||||
|
||||
export const deathManaCap: SkillV2Def = {
|
||||
id: 'deathManaCap', name: 'Death Mana Capacity', description: '+10% death capacity per level',
|
||||
category: 'mana', maxLevel: 10, costPerLevel: 300, studyHours: 6,
|
||||
effects: [{ stat: 'deathCap', mode: 'add', valuePerLevel: 10 }],
|
||||
};
|
||||
|
||||
export const metalManaCap: SkillV2Def = {
|
||||
id: 'metalManaCap', name: 'Metal Mana Capacity', description: '+10% metal capacity per level',
|
||||
category: 'mana', maxLevel: 10, costPerLevel: 350, studyHours: 6,
|
||||
effects: [{ stat: 'metalCap', mode: 'add', valuePerLevel: 10 }],
|
||||
};
|
||||
|
||||
export const sandManaCap: SkillV2Def = {
|
||||
id: 'sandManaCap', name: 'Sand Mana Capacity', description: '+10% sand capacity per level',
|
||||
category: 'mana', maxLevel: 10, costPerLevel: 350, studyHours: 6,
|
||||
effects: [{ stat: 'sandCap', mode: 'add', valuePerLevel: 10 }],
|
||||
};
|
||||
|
||||
export const lightningManaCap: SkillV2Def = {
|
||||
id: 'lightningManaCap', name: 'Lightning Mana Capacity', description: '+10% lightning capacity per level',
|
||||
category: 'mana', maxLevel: 10, costPerLevel: 350, studyHours: 6,
|
||||
effects: [{ stat: 'lightningCap', mode: 'add', valuePerLevel: 10 }],
|
||||
};
|
||||
|
||||
export const transferenceManaCap: SkillV2Def = {
|
||||
id: 'transferenceManaCap', name: 'Transference Mana Capacity', description: '+10% transference capacity per level',
|
||||
category: 'mana', maxLevel: 10, costPerLevel: 200, studyHours: 4,
|
||||
effects: [{ stat: 'transferenceCap', mode: 'add', valuePerLevel: 10 }],
|
||||
};
|
||||
@@ -1,42 +0,0 @@
|
||||
import type { SkillV2Def } from './skills-v2-types';
|
||||
|
||||
// ═══════════════════════════════════════════════════════════════════════
|
||||
// ENCHANTING SKILLS
|
||||
// ═══════════════════════════════════════════════════════════════════════
|
||||
export const enchanting: SkillV2Def = {
|
||||
id: 'enchanting', name: 'Enchanting', description: 'Unlocks enchantment design',
|
||||
category: 'enchant', maxLevel: 10, costPerLevel: 200, studyHours: 5,
|
||||
attunementRequired: 'enchanter',
|
||||
effects: [
|
||||
{ stat: 'enchantCapacity', mode: 'add', valuePerLevel: 10 },
|
||||
{ stat: 'enchantSpeed', mode: 'multiply', valuePerLevel: -0.02 },
|
||||
],
|
||||
};
|
||||
|
||||
export const efficientEnchant: SkillV2Def = {
|
||||
id: 'efficientEnchant', name: 'Efficient Enchant', description: 'Reduces capacity cost',
|
||||
category: 'enchant', maxLevel: 5, costPerLevel: 350, studyHours: 6,
|
||||
prerequisites: { enchanting: 3 }, attunementRequired: 'enchanter',
|
||||
effects: [{ stat: 'enchantCapacity', mode: 'multiply', valuePerLevel: -0.05 }],
|
||||
};
|
||||
|
||||
export const enchantSpeed: SkillV2Def = {
|
||||
id: 'enchantSpeed', name: 'Enchant Speed', description: 'Reduces enchantment time',
|
||||
category: 'enchant', maxLevel: 5, costPerLevel: 300, studyHours: 4,
|
||||
prerequisites: { enchanting: 2 }, attunementRequired: 'enchanter',
|
||||
effects: [{ stat: 'enchantSpeed', mode: 'multiply', valuePerLevel: -0.10 }],
|
||||
};
|
||||
|
||||
export const essenceRefining: SkillV2Def = {
|
||||
id: 'essenceRefining', name: 'Essence Refining', description: 'Increases enchantment power',
|
||||
category: 'enchant', maxLevel: 3, costPerLevel: 400, studyHours: 7,
|
||||
prerequisites: { enchanting: 4 }, attunementRequired: 'enchanter',
|
||||
effects: [{ stat: 'enchantPower', mode: 'multiply', valuePerLevel: 0.10 }],
|
||||
};
|
||||
|
||||
export const disenchanting: SkillV2Def = {
|
||||
id: 'disenchanting', name: 'Disenchanting', description: 'Recover mana on removal',
|
||||
category: 'enchant', maxLevel: 3, costPerLevel: 300, studyHours: 3,
|
||||
prerequisites: { enchanting: 2 }, attunementRequired: 'enchanter',
|
||||
effects: [{ stat: 'disenchantRecovery', mode: 'add', valuePerLevel: 0.20 }],
|
||||
};
|
||||
@@ -1,25 +0,0 @@
|
||||
import type { SkillV2Def } from './skills-v2-types';
|
||||
|
||||
// ═══════════════════════════════════════════════════════════════════════
|
||||
// GOLEMANCY SKILLS
|
||||
// ═══════════════════════════════════════════════════════════════════════
|
||||
export const golemMastery: SkillV2Def = {
|
||||
id: 'golemMastery', name: 'Golem Mastery', description: '+10% golem damage per level',
|
||||
category: 'golemancy', maxLevel: 10, costPerLevel: 300, studyHours: 6,
|
||||
attunementRequired: 'fabricator',
|
||||
effects: [{ stat: 'golemDamage', mode: 'multiply', valuePerLevel: 0.10 }],
|
||||
};
|
||||
|
||||
export const golemEfficiency: SkillV2Def = {
|
||||
id: 'golemEfficiency', name: 'Golem Efficiency', description: '+5% golem attack speed per level',
|
||||
category: 'golemancy', maxLevel: 10, costPerLevel: 350, studyHours: 6,
|
||||
attunementRequired: 'fabricator',
|
||||
effects: [{ stat: 'attackSpeed', mode: 'multiply', valuePerLevel: -0.05 }],
|
||||
};
|
||||
|
||||
export const golemLongevity: SkillV2Def = {
|
||||
id: 'golemLongevity', name: 'Golem Longevity', description: '+1 floor duration per level',
|
||||
category: 'golemancy', maxLevel: 10, costPerLevel: 500, studyHours: 8,
|
||||
attunementRequired: 'fabricator',
|
||||
effects: [{ stat: 'golemDuration', mode: 'add', valuePerLevel: 1 }],
|
||||
};
|
||||
@@ -1,28 +0,0 @@
|
||||
import type { SkillV2Def } from './skills-v2-types';
|
||||
|
||||
// ═══════════════════════════════════════════════════════════════════════
|
||||
// HYBRID SKILLS (require 2 attunements at level 5+)
|
||||
// ═══════════════════════════════════════════════════════════════════════
|
||||
export const pactWeaving: SkillV2Def = {
|
||||
id: 'pactWeaving', name: 'Pact-Weaving', description: 'Weave guardian essence into enchantments',
|
||||
category: 'hybrid', maxLevel: 10, costPerLevel: 750, studyHours: 15,
|
||||
effects: [{ stat: 'enchantPower', mode: 'multiply', valuePerLevel: 0.10 }],
|
||||
};
|
||||
|
||||
export const guardianConstructs: SkillV2Def = {
|
||||
id: 'guardianConstructs', name: 'Guardian Constructs', description: 'Build durable singular golems',
|
||||
category: 'hybrid', maxLevel: 10, costPerLevel: 800, studyHours: 18,
|
||||
effects: [
|
||||
{ stat: 'golemDamage', mode: 'multiply', valuePerLevel: 0.15 },
|
||||
{ stat: 'golemDuration', mode: 'add', valuePerLevel: 0.25 },
|
||||
],
|
||||
};
|
||||
|
||||
export const enchantedGolemancy: SkillV2Def = {
|
||||
id: 'enchantedGolemancy', name: 'Enchanted Golemancy', description: 'Imbue golems with spell logic',
|
||||
category: 'hybrid', maxLevel: 10, costPerLevel: 850, studyHours: 20,
|
||||
effects: [
|
||||
{ stat: 'enchantPower', mode: 'multiply', valuePerLevel: 0.05 },
|
||||
{ stat: 'golemDamage', mode: 'multiply', valuePerLevel: 0.10 },
|
||||
],
|
||||
};
|
||||
@@ -1,25 +0,0 @@
|
||||
import type { SkillV2Def } from './skills-v2-types';
|
||||
|
||||
// ═══════════════════════════════════════════════════════════════════════
|
||||
// INVOCATION / PACT SKILLS (Invoker Attunement)
|
||||
// ═══════════════════════════════════════════════════════════════════════
|
||||
export const invocation: SkillV2Def = {
|
||||
id: 'invocation', name: 'Invocation', description: 'Enhances spell invocation',
|
||||
category: 'invocation', maxLevel: 10, costPerLevel: 300, studyHours: 6,
|
||||
attunementRequired: 'invoker',
|
||||
effects: [{ stat: 'spellDamage', mode: 'multiply', valuePerLevel: 0.05 }],
|
||||
};
|
||||
|
||||
export const pactMastery: SkillV2Def = {
|
||||
id: 'pactMastery', name: 'Pact Mastery', description: 'Enhances pact signing bonuses',
|
||||
category: 'pact', maxLevel: 10, costPerLevel: 350, studyHours: 6,
|
||||
attunementRequired: 'invoker',
|
||||
effects: [{ stat: 'pactMultiplier', mode: 'multiply', valuePerLevel: 0.10 }],
|
||||
};
|
||||
|
||||
export const guardianLore: SkillV2Def = {
|
||||
id: 'guardianLore', name: 'Guardian Lore', description: '+20% damage vs guardians',
|
||||
category: 'invocation', maxLevel: 5, costPerLevel: 400, studyHours: 8,
|
||||
attunementRequired: 'invoker',
|
||||
effects: [{ stat: 'guardianDamage', mode: 'multiply', valuePerLevel: 0.20 }],
|
||||
};
|
||||
@@ -1,385 +0,0 @@
|
||||
import type { SkillV2Def } from './skills-v2-types';
|
||||
|
||||
// ═══════════════════════════════════════════════════════════════════════
|
||||
// ELEMENT RESEARCH SKILLS (max:1, long study – unlock enchantment effects)
|
||||
// Kept for store/UI compat; effect unlocks handled via EFFECT_RESEARCH_MAPPING
|
||||
// ═══════════════════════════════════════════════════════════════════════
|
||||
export const researchManaSpells: SkillV2Def = {
|
||||
id: 'researchManaSpells', name: 'Mana Spell Research', description: 'Unlock Mana Strike spell enchantment',
|
||||
category: 'effectResearch', maxLevel: 1, costPerLevel: 200, studyHours: 4,
|
||||
effects: [],
|
||||
};
|
||||
|
||||
export const researchFireSpells: SkillV2Def = {
|
||||
id: 'researchFireSpells', name: 'Fire Spell Research', description: 'Unlock Ember Shot, Fireball spell enchantments',
|
||||
category: 'effectResearch', maxLevel: 1, costPerLevel: 300, studyHours: 6,
|
||||
effects: [],
|
||||
};
|
||||
|
||||
export const researchWaterSpells: SkillV2Def = {
|
||||
id: 'researchWaterSpells', name: 'Water Spell Research', description: 'Unlock Water Jet, Ice Shard spell enchantments',
|
||||
category: 'effectResearch', maxLevel: 1, costPerLevel: 300, studyHours: 6,
|
||||
effects: [],
|
||||
};
|
||||
|
||||
export const researchAirSpells: SkillV2Def = {
|
||||
id: 'researchAirSpells', name: 'Air Spell Research', description: 'Unlock Gust, Wind Slash spell enchantments',
|
||||
category: 'effectResearch', maxLevel: 1, costPerLevel: 300, studyHours: 6,
|
||||
effects: [],
|
||||
};
|
||||
|
||||
export const researchEarthSpells: SkillV2Def = {
|
||||
id: 'researchEarthSpells', name: 'Earth Spell Research', description: 'Unlock Stone Bullet, Rock Spike spell enchantments',
|
||||
category: 'effectResearch', maxLevel: 1, costPerLevel: 350, studyHours: 6,
|
||||
effects: [],
|
||||
};
|
||||
|
||||
export const researchLightSpells: SkillV2Def = {
|
||||
id: 'researchLightSpells', name: 'Light Spell Research', description: 'Unlock Light Lance, Radiance spell enchantments',
|
||||
category: 'effectResearch', maxLevel: 1, costPerLevel: 400, studyHours: 8,
|
||||
effects: [],
|
||||
};
|
||||
|
||||
export const researchDarkSpells: SkillV2Def = {
|
||||
id: 'researchDarkSpells', name: 'Dark Spell Research', description: 'Unlock Shadow Bolt, Dark Pulse spell enchantments',
|
||||
category: 'effectResearch', maxLevel: 1, costPerLevel: 400, studyHours: 8,
|
||||
effects: [],
|
||||
};
|
||||
|
||||
export const researchLifeDeathSpells: SkillV2Def = {
|
||||
id: 'researchLifeDeathSpells', name: 'Death Research', description: 'Unlock Drain spell enchantment',
|
||||
category: 'effectResearch', maxLevel: 1, costPerLevel: 400, studyHours: 8,
|
||||
effects: [],
|
||||
};
|
||||
|
||||
// Tier 2 advanced spell research
|
||||
export const researchAdvancedFire: SkillV2Def = {
|
||||
id: 'researchAdvancedFire', name: 'Advanced Fire Research', description: 'Unlock Inferno, Flame Wave',
|
||||
category: 'effectResearch', maxLevel: 1, costPerLevel: 600, studyHours: 12,
|
||||
effects: [],
|
||||
};
|
||||
|
||||
export const researchAdvancedWater: SkillV2Def = {
|
||||
id: 'researchAdvancedWater', name: 'Advanced Water Research', description: 'Unlock Tidal Wave, Ice Storm',
|
||||
category: 'effectResearch', maxLevel: 1, costPerLevel: 600, studyHours: 12,
|
||||
effects: [],
|
||||
};
|
||||
|
||||
export const researchAdvancedAir: SkillV2Def = {
|
||||
id: 'researchAdvancedAir', name: 'Advanced Air Research', description: 'Unlock Hurricane, Wind Blade',
|
||||
category: 'effectResearch', maxLevel: 1, costPerLevel: 600, studyHours: 12,
|
||||
effects: [],
|
||||
};
|
||||
|
||||
export const researchAdvancedEarth: SkillV2Def = {
|
||||
id: 'researchAdvancedEarth', name: 'Advanced Earth Research', description: 'Unlock Earthquake, Stone Barrage',
|
||||
category: 'effectResearch', maxLevel: 1, costPerLevel: 600, studyHours: 12,
|
||||
effects: [],
|
||||
};
|
||||
|
||||
export const researchAdvancedLight: SkillV2Def = {
|
||||
id: 'researchAdvancedLight', name: 'Advanced Light Research', description: 'Unlock Solar Flare, Divine Smite',
|
||||
category: 'effectResearch', maxLevel: 1, costPerLevel: 700, studyHours: 14,
|
||||
effects: [],
|
||||
};
|
||||
|
||||
export const researchAdvancedDark: SkillV2Def = {
|
||||
id: 'researchAdvancedDark', name: 'Advanced Dark Research', description: 'Unlock Void Rift, Shadow Storm',
|
||||
category: 'effectResearch', maxLevel: 1, costPerLevel: 700, studyHours: 14,
|
||||
effects: [],
|
||||
};
|
||||
|
||||
// Tier 3 master spell research
|
||||
export const researchMasterFire: SkillV2Def = {
|
||||
id: 'researchMasterFire', name: 'Master Fire Research', description: 'Unlock Pyroclasm',
|
||||
category: 'effectResearch', maxLevel: 1, costPerLevel: 1200, studyHours: 24,
|
||||
effects: [],
|
||||
};
|
||||
|
||||
export const researchMasterWater: SkillV2Def = {
|
||||
id: 'researchMasterWater', name: 'Master Water Research', description: 'Unlock Tsunami',
|
||||
category: 'effectResearch', maxLevel: 1, costPerLevel: 1200, studyHours: 24,
|
||||
effects: [],
|
||||
};
|
||||
|
||||
export const researchMasterEarth: SkillV2Def = {
|
||||
id: 'researchMasterEarth', name: 'Master Earth Research', description: 'Unlock Meteor Strike',
|
||||
category: 'effectResearch', maxLevel: 1, costPerLevel: 1300, studyHours: 26,
|
||||
effects: [],
|
||||
};
|
||||
|
||||
// Combat/misc research
|
||||
export const researchDamageEffects: SkillV2Def = {
|
||||
id: 'researchDamageEffects', name: 'Damage Effect Research', description: 'Unlock Minor/Moderate Power, Amplification',
|
||||
category: 'effectResearch', maxLevel: 1, costPerLevel: 250, studyHours: 5,
|
||||
effects: [],
|
||||
};
|
||||
|
||||
export const researchCombatEffects: SkillV2Def = {
|
||||
id: 'researchCombatEffects', name: 'Combat Effect Research', description: 'Unlock Sharp Edge, Swift Casting',
|
||||
category: 'effectResearch', maxLevel: 1, costPerLevel: 350, studyHours: 6,
|
||||
effects: [],
|
||||
};
|
||||
|
||||
export const researchManaEffects: SkillV2Def = {
|
||||
id: 'researchManaEffects', name: 'Mana Effect Research', description: 'Unlock Mana Reserve, Trickle, Mana Tap, weapon mana effects',
|
||||
category: 'effectResearch', maxLevel: 1, costPerLevel: 200, studyHours: 4,
|
||||
effects: [],
|
||||
};
|
||||
|
||||
export const researchAdvancedManaEffects: SkillV2Def = {
|
||||
id: 'researchAdvancedManaEffects', name: 'Advanced Mana Research', description: 'Unlock Mana Reservoir, Stream, River, Surge',
|
||||
category: 'effectResearch', maxLevel: 1, costPerLevel: 400, studyHours: 8,
|
||||
effects: [],
|
||||
};
|
||||
|
||||
export const researchUtilityEffects: SkillV2Def = {
|
||||
id: 'researchUtilityEffects', name: 'Utility Effect Research', description: 'Unlock Meditative Focus, Quick Study, Insightful',
|
||||
category: 'effectResearch', maxLevel: 1, costPerLevel: 300, studyHours: 6,
|
||||
effects: [],
|
||||
};
|
||||
|
||||
export const researchSpecialEffects: SkillV2Def = {
|
||||
id: 'researchSpecialEffects', name: 'Special Effect Research', description: 'Unlock Echo Chamber, Siphoning, Bane',
|
||||
category: 'effectResearch', maxLevel: 1, costPerLevel: 500, studyHours: 10,
|
||||
effects: [],
|
||||
};
|
||||
|
||||
export const researchOverpower: SkillV2Def = {
|
||||
id: 'researchOverpower', name: 'Overpower Research', description: 'Unlock Overpower effect',
|
||||
category: 'effectResearch', maxLevel: 1, costPerLevel: 700, studyHours: 12,
|
||||
effects: [],
|
||||
};
|
||||
|
||||
// Compound spell research
|
||||
export const researchMetalSpells: SkillV2Def = {
|
||||
id: 'researchMetalSpells', name: 'Metal Spell Research', description: 'Unlock Metal Shard, Iron Fist',
|
||||
category: 'effectResearch', maxLevel: 1, costPerLevel: 400, studyHours: 6,
|
||||
effects: [],
|
||||
};
|
||||
|
||||
export const researchSandSpells: SkillV2Def = {
|
||||
id: 'researchSandSpells', name: 'Sand Spell Research', description: 'Unlock Sand Blast, Sandstorm',
|
||||
category: 'effectResearch', maxLevel: 1, costPerLevel: 400, studyHours: 6,
|
||||
effects: [],
|
||||
};
|
||||
|
||||
export const researchLightningSpells: SkillV2Def = {
|
||||
id: 'researchLightningSpells', name: 'Lightning Spell Research', description: 'Unlock Spark, Lightning Bolt',
|
||||
category: 'effectResearch', maxLevel: 1, costPerLevel: 400, studyHours: 6,
|
||||
effects: [],
|
||||
};
|
||||
|
||||
export const researchAdvancedMetal: SkillV2Def = {
|
||||
id: 'researchAdvancedMetal', name: 'Advanced Metal Research', description: 'Unlock Steel Tempest',
|
||||
category: 'effectResearch', maxLevel: 1, costPerLevel: 700, studyHours: 12,
|
||||
effects: [],
|
||||
};
|
||||
|
||||
export const researchAdvancedSand: SkillV2Def = {
|
||||
id: 'researchAdvancedSand', name: 'Advanced Sand Research', description: 'Unlock Desert Wind',
|
||||
category: 'effectResearch', maxLevel: 1, costPerLevel: 700, studyHours: 12,
|
||||
effects: [],
|
||||
};
|
||||
|
||||
export const researchAdvancedLightning: SkillV2Def = {
|
||||
id: 'researchAdvancedLightning', name: 'Advanced Lightning Research', description: 'Unlock Chain Lightning, Storm Call',
|
||||
category: 'effectResearch', maxLevel: 1, costPerLevel: 700, studyHours: 12,
|
||||
effects: [],
|
||||
};
|
||||
|
||||
export const researchMasterMetal: SkillV2Def = {
|
||||
id: 'researchMasterMetal', name: 'Master Metal Research', description: 'Unlock Furnace Blast',
|
||||
category: 'effectResearch', maxLevel: 1, costPerLevel: 1300, studyHours: 26,
|
||||
effects: [],
|
||||
};
|
||||
|
||||
export const researchMasterSand: SkillV2Def = {
|
||||
id: 'researchMasterSand', name: 'Master Sand Research', description: 'Unlock Dune Collapse',
|
||||
category: 'effectResearch', maxLevel: 1, costPerLevel: 1300, studyHours: 26,
|
||||
effects: [],
|
||||
};
|
||||
|
||||
export const researchMasterLightning: SkillV2Def = {
|
||||
id: 'researchMasterLightning', name: 'Master Lightning Research', description: 'Unlock Thunder Strike',
|
||||
category: 'effectResearch', maxLevel: 1, costPerLevel: 1300, studyHours: 26,
|
||||
effects: [],
|
||||
};
|
||||
|
||||
export const researchTransferenceSpells: SkillV2Def = {
|
||||
id: 'researchTransferenceSpells', name: 'Transference Spell Research', description: 'Unlock Transfer Strike, Mana Rip',
|
||||
category: 'effectResearch', maxLevel: 1, costPerLevel: 350, studyHours: 5,
|
||||
effects: [],
|
||||
};
|
||||
|
||||
export const researchAdvancedTransference: SkillV2Def = {
|
||||
id: 'researchAdvancedTransference', name: 'Advanced Transference Research', description: 'Unlock Essence Drain',
|
||||
category: 'effectResearch', maxLevel: 1, costPerLevel: 650, studyHours: 12,
|
||||
effects: [],
|
||||
};
|
||||
|
||||
export const researchMasterTransference: SkillV2Def = {
|
||||
id: 'researchMasterTransference', name: 'Master Transference Research', description: 'Unlock Soul Transfer',
|
||||
category: 'effectResearch', maxLevel: 1, costPerLevel: 1300, studyHours: 26,
|
||||
effects: [],
|
||||
};
|
||||
|
||||
// Element capacity research (Tier 2 — +25 per stack)
|
||||
export const researchAdvancedFireCap: SkillV2Def = {
|
||||
id: 'researchAdvancedFireCap', name: 'Advanced Fire Capacity Research', description: '+25 fire cap per level',
|
||||
category: 'effectResearch', maxLevel: 1, costPerLevel: 700, studyHours: 12,
|
||||
effects: [],
|
||||
};
|
||||
|
||||
export const researchAdvancedWaterCap: SkillV2Def = {
|
||||
id: 'researchAdvancedWaterCap', name: 'Advanced Water Capacity Research', description: '+25 water cap per level',
|
||||
category: 'effectResearch', maxLevel: 1, costPerLevel: 700, studyHours: 12,
|
||||
effects: [],
|
||||
};
|
||||
|
||||
export const researchAdvancedAirCap: SkillV2Def = {
|
||||
id: 'researchAdvancedAirCap', name: 'Advanced Air Capacity Research', description: '+25 air cap per level',
|
||||
category: 'effectResearch', maxLevel: 1, costPerLevel: 700, studyHours: 12,
|
||||
effects: [],
|
||||
};
|
||||
|
||||
export const researchAdvancedEarthCap: SkillV2Def = {
|
||||
id: 'researchAdvancedEarthCap', name: 'Advanced Earth Capacity Research', description: '+25 earth cap per level',
|
||||
category: 'effectResearch', maxLevel: 1, costPerLevel: 700, studyHours: 12,
|
||||
effects: [],
|
||||
};
|
||||
|
||||
export const researchAdvancedLightCap: SkillV2Def = {
|
||||
id: 'researchAdvancedLightCap', name: 'Advanced Light Capacity Research', description: '+25 light cap per level',
|
||||
category: 'effectResearch', maxLevel: 1, costPerLevel: 800, studyHours: 14,
|
||||
effects: [],
|
||||
};
|
||||
|
||||
export const researchAdvancedDarkCap: SkillV2Def = {
|
||||
id: 'researchAdvancedDarkCap', name: 'Advanced Dark Capacity Research', description: '+25 dark cap per level',
|
||||
category: 'effectResearch', maxLevel: 1, costPerLevel: 800, studyHours: 14,
|
||||
effects: [],
|
||||
};
|
||||
|
||||
export const researchAdvancedDeathCap: SkillV2Def = {
|
||||
id: 'researchAdvancedDeathCap', name: 'Advanced Death Capacity Research', description: '+25 death cap per level',
|
||||
category: 'effectResearch', maxLevel: 1, costPerLevel: 900, studyHours: 16,
|
||||
effects: [],
|
||||
};
|
||||
|
||||
// Tier 3 — Master (+50 per stack)
|
||||
export const researchMasterFireCap: SkillV2Def = {
|
||||
id: 'researchMasterFireCap', name: 'Master Fire Capacity Research', description: '+50 fire cap per level',
|
||||
category: 'effectResearch', maxLevel: 1, costPerLevel: 1300, studyHours: 24,
|
||||
effects: [],
|
||||
};
|
||||
|
||||
export const researchMasterWaterCap: SkillV2Def = {
|
||||
id: 'researchMasterWaterCap', name: 'Master Water Capacity Research', description: '+50 water cap per level',
|
||||
category: 'effectResearch', maxLevel: 1, costPerLevel: 1300, studyHours: 24,
|
||||
effects: [],
|
||||
};
|
||||
|
||||
export const researchMasterAirCap: SkillV2Def = {
|
||||
id: 'researchMasterAirCap', name: 'Master Air Capacity Research', description: '+50 air cap per level',
|
||||
category: 'effectResearch', maxLevel: 1, costPerLevel: 1300, studyHours: 24,
|
||||
effects: [],
|
||||
};
|
||||
|
||||
export const researchMasterEarthCap: SkillV2Def = {
|
||||
id: 'researchMasterEarthCap', name: 'Master Earth Capacity Research', description: '+50 earth cap per level',
|
||||
category: 'effectResearch', maxLevel: 1, costPerLevel: 1300, studyHours: 24,
|
||||
effects: [],
|
||||
};
|
||||
|
||||
export const researchMasterLightCap: SkillV2Def = {
|
||||
id: 'researchMasterLightCap', name: 'Master Light Capacity Research', description: '+50 light cap per level',
|
||||
category: 'effectResearch', maxLevel: 1, costPerLevel: 1500, studyHours: 28,
|
||||
effects: [],
|
||||
};
|
||||
|
||||
export const researchMasterDarkCap: SkillV2Def = {
|
||||
id: 'researchMasterDarkCap', name: 'Master Dark Capacity Research', description: '+50 dark cap per level',
|
||||
category: 'effectResearch', maxLevel: 1, costPerLevel: 1500, studyHours: 28,
|
||||
effects: [],
|
||||
};
|
||||
|
||||
export const researchMasterDeathCap: SkillV2Def = {
|
||||
id: 'researchMasterDeathCap', name: 'Master Death Capacity Research', description: '+50 death cap per level',
|
||||
category: 'effectResearch', maxLevel: 1, costPerLevel: 1600, studyHours: 30,
|
||||
effects: [],
|
||||
};
|
||||
|
||||
// Compound element capacity research
|
||||
export const researchMetalCapacity: SkillV2Def = {
|
||||
id: 'researchMetalCapacity', name: 'Metal Capacity Research', description: '+10 metal cap',
|
||||
category: 'effectResearch', maxLevel: 1, costPerLevel: 400, studyHours: 6,
|
||||
effects: [],
|
||||
};
|
||||
|
||||
export const researchAdvancedMetalCap: SkillV2Def = {
|
||||
id: 'researchAdvancedMetalCap', name: 'Advanced Metal Capacity Research', description: '+25/+50 metal cap',
|
||||
category: 'effectResearch', maxLevel: 1, costPerLevel: 700, studyHours: 12,
|
||||
effects: [],
|
||||
};
|
||||
|
||||
export const researchSandCapacity: SkillV2Def = {
|
||||
id: 'researchSandCapacity', name: 'Sand Capacity Research', description: '+10 sand cap',
|
||||
category: 'effectResearch', maxLevel: 1, costPerLevel: 400, studyHours: 6,
|
||||
effects: [],
|
||||
};
|
||||
|
||||
export const researchAdvancedSandCap: SkillV2Def = {
|
||||
id: 'researchAdvancedSandCap', name: 'Advanced Sand Capacity Research', description: '+25/+50 sand cap',
|
||||
category: 'effectResearch', maxLevel: 1, costPerLevel: 700, studyHours: 12,
|
||||
effects: [],
|
||||
};
|
||||
|
||||
export const researchLightningCapacity: SkillV2Def = {
|
||||
id: 'researchLightningCapacity', name: 'Lightning Capacity Research', description: '+10 lightning cap',
|
||||
category: 'effectResearch', maxLevel: 1, costPerLevel: 400, studyHours: 6,
|
||||
effects: [],
|
||||
};
|
||||
|
||||
export const researchAdvancedLightningCap: SkillV2Def = {
|
||||
id: 'researchAdvancedLightningCap', name: 'Advanced Lightning Capacity Research', description: '+25/+50 lightning cap',
|
||||
category: 'effectResearch', maxLevel: 1, costPerLevel: 700, studyHours: 12,
|
||||
effects: [],
|
||||
};
|
||||
|
||||
// Exotic capacity research
|
||||
export const researchCrystalCapacity: SkillV2Def = {
|
||||
id: 'researchCrystalCapacity', name: 'Crystal Capacity Research', description: '+10 crystal cap',
|
||||
category: 'effectResearch', maxLevel: 1, costPerLevel: 1000, studyHours: 12,
|
||||
effects: [],
|
||||
};
|
||||
|
||||
export const researchAdvancedCrystalCap: SkillV2Def = {
|
||||
id: 'researchAdvancedCrystalCap', name: 'Advanced Crystal Capacity Research', description: '+25/+50 crystal cap',
|
||||
category: 'effectResearch', maxLevel: 1, costPerLevel: 2000, studyHours: 24,
|
||||
effects: [],
|
||||
};
|
||||
|
||||
export const researchStellarCapacity: SkillV2Def = {
|
||||
id: 'researchStellarCapacity', name: 'Stellar Capacity Research', description: '+10 stellar cap',
|
||||
category: 'effectResearch', maxLevel: 1, costPerLevel: 1000, studyHours: 12,
|
||||
effects: [],
|
||||
};
|
||||
|
||||
export const researchAdvancedStellarCap: SkillV2Def = {
|
||||
id: 'researchAdvancedStellarCap', name: 'Advanced Stellar Capacity Research', description: '+25/+50 stellar cap',
|
||||
category: 'effectResearch', maxLevel: 1, costPerLevel: 2000, studyHours: 24,
|
||||
effects: [],
|
||||
};
|
||||
|
||||
export const researchVoidCapacity: SkillV2Def = {
|
||||
id: 'researchVoidCapacity', name: 'Void Capacity Research', description: '+10 void cap',
|
||||
category: 'effectResearch', maxLevel: 1, costPerLevel: 1500, studyHours: 16,
|
||||
effects: [],
|
||||
};
|
||||
|
||||
export const researchAdvancedVoidCap: SkillV2Def = {
|
||||
id: 'researchAdvancedVoidCap', name: 'Advanced Void Capacity Research', description: '+25/+50 void cap',
|
||||
category: 'effectResearch', maxLevel: 1, costPerLevel: 3000, studyHours: 30,
|
||||
effects: [],
|
||||
};
|
||||
@@ -1,3 +0,0 @@
|
||||
import type { SkillV2Def } from './skills-v2-types';
|
||||
// @ts-expect-error - circular refs resolved at runtime
|
||||
export { SKILLS_V2 } from './skills-v2-registry';
|
||||
@@ -1,292 +0,0 @@
|
||||
import type { SkillV2Def } from './skills-v2-types';
|
||||
import {
|
||||
manaWell,
|
||||
manaFlow,
|
||||
manaOverflow,
|
||||
manaTap,
|
||||
manaSurge,
|
||||
manaSpring,
|
||||
quickLearner,
|
||||
focusedMind,
|
||||
knowledgeRetention,
|
||||
meditation,
|
||||
deepTrance,
|
||||
voidMeditation,
|
||||
} from './skills-core';
|
||||
import {
|
||||
enchanting,
|
||||
efficientEnchant,
|
||||
enchantSpeed,
|
||||
essenceRefining,
|
||||
disenchanting,
|
||||
} from './skills-enchant';
|
||||
import {
|
||||
arcaneFury,
|
||||
combatTraining,
|
||||
precision,
|
||||
elementalMastery,
|
||||
attackSpeed,
|
||||
armorPiercing,
|
||||
spellDamage,
|
||||
} from './skills-combat';
|
||||
import {
|
||||
golemMastery,
|
||||
golemEfficiency,
|
||||
golemLongevity,
|
||||
} from './skills-golemancy';
|
||||
import {
|
||||
invocation,
|
||||
pactMastery,
|
||||
guardianLore,
|
||||
} from './skills-invocation';
|
||||
import {
|
||||
effCrafting,
|
||||
fieldRepair,
|
||||
} from './skills-crafting';
|
||||
import {
|
||||
fireManaCap,
|
||||
waterManaCap,
|
||||
airManaCap,
|
||||
earthManaCap,
|
||||
lightManaCap,
|
||||
darkManaCap,
|
||||
deathManaCap,
|
||||
metalManaCap,
|
||||
sandManaCap,
|
||||
lightningManaCap,
|
||||
transferenceManaCap,
|
||||
} from './skills-element-caps';
|
||||
import {
|
||||
pactWeaving,
|
||||
guardianConstructs,
|
||||
enchantedGolemancy,
|
||||
} from './skills-hybrid';
|
||||
import {
|
||||
researchManaSpells,
|
||||
researchFireSpells,
|
||||
researchWaterSpells,
|
||||
researchAirSpells,
|
||||
researchEarthSpells,
|
||||
researchLightSpells,
|
||||
researchDarkSpells,
|
||||
researchLifeDeathSpells,
|
||||
researchAdvancedFire,
|
||||
researchAdvancedWater,
|
||||
researchAdvancedAir,
|
||||
researchAdvancedEarth,
|
||||
researchAdvancedLight,
|
||||
researchAdvancedDark,
|
||||
researchMasterFire,
|
||||
researchMasterWater,
|
||||
researchMasterEarth,
|
||||
researchDamageEffects,
|
||||
researchCombatEffects,
|
||||
researchManaEffects,
|
||||
researchAdvancedManaEffects,
|
||||
researchUtilityEffects,
|
||||
researchSpecialEffects,
|
||||
researchOverpower,
|
||||
researchMetalSpells,
|
||||
researchSandSpells,
|
||||
researchLightningSpells,
|
||||
researchAdvancedMetal,
|
||||
researchAdvancedSand,
|
||||
researchAdvancedLightning,
|
||||
researchMasterMetal,
|
||||
researchMasterSand,
|
||||
researchMasterLightning,
|
||||
researchTransferenceSpells,
|
||||
researchAdvancedTransference,
|
||||
researchMasterTransference,
|
||||
researchAdvancedFireCap,
|
||||
researchAdvancedWaterCap,
|
||||
researchAdvancedAirCap,
|
||||
researchAdvancedEarthCap,
|
||||
researchAdvancedLightCap,
|
||||
researchAdvancedDarkCap,
|
||||
researchAdvancedDeathCap,
|
||||
researchMasterFireCap,
|
||||
researchMasterWaterCap,
|
||||
researchMasterAirCap,
|
||||
researchMasterEarthCap,
|
||||
researchMasterLightCap,
|
||||
researchMasterDarkCap,
|
||||
researchMasterDeathCap,
|
||||
researchMetalCapacity,
|
||||
researchAdvancedMetalCap,
|
||||
researchSandCapacity,
|
||||
researchAdvancedSandCap,
|
||||
researchLightningCapacity,
|
||||
researchAdvancedLightningCap,
|
||||
researchCrystalCapacity,
|
||||
researchAdvancedCrystalCap,
|
||||
researchStellarCapacity,
|
||||
researchAdvancedStellarCap,
|
||||
researchVoidCapacity,
|
||||
researchAdvancedVoidCap,
|
||||
} from './skills-research';
|
||||
|
||||
// Re-export individual skills
|
||||
export {
|
||||
manaWell,
|
||||
manaFlow,
|
||||
manaOverflow,
|
||||
manaTap,
|
||||
manaSurge,
|
||||
manaSpring,
|
||||
quickLearner,
|
||||
focusedMind,
|
||||
knowledgeRetention,
|
||||
meditation,
|
||||
deepTrance,
|
||||
voidMeditation,
|
||||
} from './skills-core';
|
||||
export {
|
||||
enchanting,
|
||||
efficientEnchant,
|
||||
enchantSpeed,
|
||||
essenceRefining,
|
||||
disenchanting,
|
||||
} from './skills-enchant';
|
||||
export {
|
||||
arcaneFury,
|
||||
combatTraining,
|
||||
precision,
|
||||
elementalMastery,
|
||||
attackSpeed,
|
||||
armorPiercing,
|
||||
spellDamage,
|
||||
} from './skills-combat';
|
||||
export {
|
||||
golemMastery,
|
||||
golemEfficiency,
|
||||
golemLongevity,
|
||||
} from './skills-golemancy';
|
||||
export {
|
||||
invocation,
|
||||
pactMastery,
|
||||
guardianLore,
|
||||
} from './skills-invocation';
|
||||
export {
|
||||
effCrafting,
|
||||
fieldRepair,
|
||||
} from './skills-crafting';
|
||||
export {
|
||||
fireManaCap,
|
||||
waterManaCap,
|
||||
airManaCap,
|
||||
earthManaCap,
|
||||
lightManaCap,
|
||||
darkManaCap,
|
||||
deathManaCap,
|
||||
metalManaCap,
|
||||
sandManaCap,
|
||||
lightningManaCap,
|
||||
transferenceManaCap,
|
||||
} from './skills-element-caps';
|
||||
export {
|
||||
pactWeaving,
|
||||
guardianConstructs,
|
||||
enchantedGolemancy,
|
||||
} from './skills-hybrid';
|
||||
export {
|
||||
researchManaSpells,
|
||||
researchFireSpells,
|
||||
researchWaterSpells,
|
||||
researchAirSpells,
|
||||
researchEarthSpells,
|
||||
researchLightSpells,
|
||||
researchDarkSpells,
|
||||
researchLifeDeathSpells,
|
||||
researchAdvancedFire,
|
||||
researchAdvancedWater,
|
||||
researchAdvancedAir,
|
||||
researchAdvancedEarth,
|
||||
researchAdvancedLight,
|
||||
researchAdvancedDark,
|
||||
researchMasterFire,
|
||||
researchMasterWater,
|
||||
researchMasterEarth,
|
||||
researchDamageEffects,
|
||||
researchCombatEffects,
|
||||
researchManaEffects,
|
||||
researchAdvancedManaEffects,
|
||||
researchUtilityEffects,
|
||||
researchSpecialEffects,
|
||||
researchOverpower,
|
||||
researchMetalSpells,
|
||||
researchSandSpells,
|
||||
researchLightningSpells,
|
||||
researchAdvancedMetal,
|
||||
researchAdvancedSand,
|
||||
researchAdvancedLightning,
|
||||
researchMasterMetal,
|
||||
researchMasterSand,
|
||||
researchMasterLightning,
|
||||
researchTransferenceSpells,
|
||||
researchAdvancedTransference,
|
||||
researchMasterTransference,
|
||||
researchAdvancedFireCap,
|
||||
researchAdvancedWaterCap,
|
||||
researchAdvancedAirCap,
|
||||
researchAdvancedEarthCap,
|
||||
researchAdvancedLightCap,
|
||||
researchAdvancedDarkCap,
|
||||
researchAdvancedDeathCap,
|
||||
researchMasterFireCap,
|
||||
researchMasterWaterCap,
|
||||
researchMasterAirCap,
|
||||
researchMasterEarthCap,
|
||||
researchMasterLightCap,
|
||||
researchMasterDarkCap,
|
||||
researchMasterDeathCap,
|
||||
researchMetalCapacity,
|
||||
researchAdvancedMetalCap,
|
||||
researchSandCapacity,
|
||||
researchAdvancedSandCap,
|
||||
researchLightningCapacity,
|
||||
researchAdvancedLightningCap,
|
||||
researchCrystalCapacity,
|
||||
researchAdvancedCrystalCap,
|
||||
researchStellarCapacity,
|
||||
researchAdvancedStellarCap,
|
||||
researchVoidCapacity,
|
||||
researchAdvancedVoidCap,
|
||||
} from './skills-research';
|
||||
|
||||
// Build the flat SKILLS_V2 record (legacy compat)
|
||||
export const SKILLS_V2: Record<string, SkillV2Def> = {
|
||||
manaWell, manaFlow, manaOverflow, manaTap, manaSurge, manaSpring,
|
||||
quickLearner, focusedMind, knowledgeRetention,
|
||||
meditation, deepTrance, voidMeditation,
|
||||
enchanting, efficientEnchant, enchantSpeed, essenceRefining, disenchanting,
|
||||
arcaneFury, combatTraining, precision, elementalMastery, attackSpeed, armorPiercing, spellDamage,
|
||||
golemMastery, golemEfficiency, golemLongevity,
|
||||
invocation, pactMastery, guardianLore,
|
||||
effCrafting, fieldRepair,
|
||||
fireManaCap, waterManaCap, airManaCap, earthManaCap,
|
||||
lightManaCap, darkManaCap, deathManaCap, metalManaCap,
|
||||
sandManaCap, lightningManaCap, transferenceManaCap,
|
||||
pactWeaving, guardianConstructs, enchantedGolemancy,
|
||||
researchManaSpells, researchFireSpells, researchWaterSpells, researchAirSpells,
|
||||
researchEarthSpells, researchLightSpells, researchDarkSpells, researchLifeDeathSpells,
|
||||
researchAdvancedFire, researchAdvancedWater, researchAdvancedAir, researchAdvancedEarth,
|
||||
researchAdvancedLight, researchAdvancedDark,
|
||||
researchMasterFire, researchMasterWater, researchMasterEarth,
|
||||
researchDamageEffects, researchCombatEffects, researchManaEffects,
|
||||
researchAdvancedManaEffects, researchUtilityEffects, researchSpecialEffects, researchOverpower,
|
||||
researchMetalSpells, researchSandSpells, researchLightningSpells,
|
||||
researchAdvancedMetal, researchAdvancedSand, researchAdvancedLightning,
|
||||
researchMasterMetal, researchMasterSand, researchMasterLightning,
|
||||
researchTransferenceSpells, researchAdvancedTransference, researchMasterTransference,
|
||||
researchAdvancedFireCap, researchAdvancedWaterCap, researchAdvancedAirCap, researchAdvancedEarthCap,
|
||||
researchAdvancedLightCap, researchAdvancedDarkCap, researchAdvancedDeathCap,
|
||||
researchMasterFireCap, researchMasterWaterCap, researchMasterAirCap, researchMasterEarthCap,
|
||||
researchMasterLightCap, researchMasterDarkCap, researchMasterDeathCap,
|
||||
researchMetalCapacity, researchAdvancedMetalCap,
|
||||
researchSandCapacity, researchAdvancedSandCap,
|
||||
researchLightningCapacity, researchAdvancedLightningCap,
|
||||
researchCrystalCapacity, researchAdvancedCrystalCap,
|
||||
researchStellarCapacity, researchAdvancedStellarCap,
|
||||
researchVoidCapacity, researchAdvancedVoidCap,
|
||||
};
|
||||
@@ -1,142 +0,0 @@
|
||||
// ─── Skill System v2 Types ─────────────────────────────────────────────────────
|
||||
// Shared types for the new flat skill system.
|
||||
|
||||
export type StatKey =
|
||||
| 'maxMana'
|
||||
| 'manaRegen'
|
||||
| 'clickMana'
|
||||
| 'elementCap'
|
||||
| 'studySpeed'
|
||||
| 'studyCostMult'
|
||||
| 'meditationEfficiency'
|
||||
| 'enchantCapacity'
|
||||
| 'enchantSpeed'
|
||||
| 'enchantPower'
|
||||
| 'disenchantRecovery'
|
||||
| 'baseDamage'
|
||||
| 'damageMultiplier'
|
||||
| 'attackSpeed'
|
||||
| 'critChance'
|
||||
| 'critMultiplier'
|
||||
| 'armorPierce'
|
||||
| 'insightGain'
|
||||
| 'golemDamage'
|
||||
| 'golemDuration'
|
||||
| 'pactMultiplier'
|
||||
| 'conversionRate'
|
||||
| 'spellDamage'
|
||||
| 'guardianDamage'
|
||||
| 'craftSpeed'
|
||||
| 'repairSpeed'
|
||||
// Per-element capacity stats
|
||||
| 'fireCap'
|
||||
| 'waterCap'
|
||||
| 'airCap'
|
||||
| 'earthCap'
|
||||
| 'lightCap'
|
||||
| 'darkCap'
|
||||
| 'deathCap'
|
||||
| 'metalCap'
|
||||
| 'sandCap'
|
||||
| 'lightningCap'
|
||||
| 'transferenceCap'
|
||||
| 'crystalCap'
|
||||
| 'stellarCap'
|
||||
| 'voidCap';
|
||||
|
||||
export interface SkillEffect {
|
||||
stat: StatKey;
|
||||
mode: 'add' | 'multiply';
|
||||
valuePerLevel: number;
|
||||
}
|
||||
|
||||
export interface SkillV2Def {
|
||||
id: string;
|
||||
name: string;
|
||||
description: string;
|
||||
category: string;
|
||||
maxLevel: number;
|
||||
costPerLevel: number;
|
||||
studyHours: number;
|
||||
effects: SkillEffect[];
|
||||
attunementRequired?: string;
|
||||
prerequisites?: Record<string, number>;
|
||||
}
|
||||
|
||||
export interface ComputedStats {
|
||||
maxMana: number;
|
||||
manaRegen: number;
|
||||
clickMana: number;
|
||||
elementCap: number;
|
||||
studySpeed: number;
|
||||
studyCostMult: number;
|
||||
meditationEfficiency: number;
|
||||
enchantCapacity: number;
|
||||
enchantSpeed: number;
|
||||
enchantPower: number;
|
||||
disenchantRecovery: number;
|
||||
baseDamage: number;
|
||||
damageMultiplier: number;
|
||||
attackSpeed: number;
|
||||
critChance: number;
|
||||
critMultiplier: number;
|
||||
armorPierce: number;
|
||||
insightGain: number;
|
||||
golemDamage: number;
|
||||
golemDuration: number;
|
||||
pactMultiplier: number;
|
||||
conversionRate: number;
|
||||
spellDamage: number;
|
||||
guardianDamage: number;
|
||||
craftSpeed: number;
|
||||
repairSpeed: number;
|
||||
// Per-element capacity (for direct skill contributions)
|
||||
fireCap: number;
|
||||
waterCap: number;
|
||||
airCap: number;
|
||||
earthCap: number;
|
||||
lightCap: number;
|
||||
darkCap: number;
|
||||
deathCap: number;
|
||||
metalCap: number;
|
||||
sandCap: number;
|
||||
lightningCap: number;
|
||||
transferenceCap: number;
|
||||
crystalCap: number;
|
||||
stellarCap: number;
|
||||
voidCap: number;
|
||||
}
|
||||
|
||||
// Default base stats (all skills at zero, no equipment, no prestige)
|
||||
export const BASE_STATS: ComputedStats = {
|
||||
maxMana: 100,
|
||||
manaRegen: 2,
|
||||
clickMana: 1,
|
||||
elementCap: 10,
|
||||
studySpeed: 1,
|
||||
studyCostMult: 1,
|
||||
meditationEfficiency: 1,
|
||||
enchantCapacity: 100,
|
||||
enchantSpeed: 1,
|
||||
enchantPower: 1,
|
||||
disenchantRecovery: 1,
|
||||
baseDamage: 5,
|
||||
damageMultiplier: 1,
|
||||
attackSpeed: 1,
|
||||
critChance: 0,
|
||||
critMultiplier: 1.5,
|
||||
armorPierce: 0,
|
||||
insightGain: 1,
|
||||
golemDamage: 1,
|
||||
golemDuration: 1,
|
||||
pactMultiplier: 1,
|
||||
conversionRate: 1,
|
||||
spellDamage: 1,
|
||||
guardianDamage: 1,
|
||||
craftSpeed: 1,
|
||||
repairSpeed: 1,
|
||||
fireCap: 0, waterCap: 0, airCap: 0, earthCap: 0,
|
||||
lightCap: 0, darkCap: 0, deathCap: 0,
|
||||
metalCap: 0, sandCap: 0, lightningCap: 0,
|
||||
transferenceCap: 0, crystalCap: 0, stellarCap: 0, voidCap: 0,
|
||||
};
|
||||
@@ -1,269 +0,0 @@
|
||||
import type { SkillV2Def, SkillEffect, StatKey, ComputedStats } from './skills-v2-types';
|
||||
import { SKILLS_V2 } from './skills-v2-defs';
|
||||
|
||||
// Re-export individual skills from category modules
|
||||
export {
|
||||
manaWell,
|
||||
manaFlow,
|
||||
manaOverflow,
|
||||
manaTap,
|
||||
manaSurge,
|
||||
manaSpring,
|
||||
quickLearner,
|
||||
focusedMind,
|
||||
knowledgeRetention,
|
||||
meditation,
|
||||
deepTrance,
|
||||
voidMeditation,
|
||||
} from './skills-core';
|
||||
|
||||
export {
|
||||
enchanting,
|
||||
efficientEnchant,
|
||||
enchantSpeed,
|
||||
essenceRefining,
|
||||
disenchanting,
|
||||
} from './skills-enchant';
|
||||
|
||||
export {
|
||||
arcaneFury,
|
||||
combatTraining,
|
||||
precision,
|
||||
elementalMastery,
|
||||
attackSpeed,
|
||||
armorPiercing,
|
||||
spellDamage,
|
||||
} from './skills-combat';
|
||||
|
||||
export {
|
||||
golemMastery,
|
||||
golemEfficiency,
|
||||
golemLongevity,
|
||||
} from './skills-golemancy';
|
||||
|
||||
export {
|
||||
invocation,
|
||||
pactMastery,
|
||||
guardianLore,
|
||||
} from './skills-invocation';
|
||||
|
||||
export {
|
||||
effCrafting,
|
||||
fieldRepair,
|
||||
} from './skills-crafting';
|
||||
|
||||
export {
|
||||
fireManaCap,
|
||||
waterManaCap,
|
||||
airManaCap,
|
||||
earthManaCap,
|
||||
lightManaCap,
|
||||
darkManaCap,
|
||||
deathManaCap,
|
||||
metalManaCap,
|
||||
sandManaCap,
|
||||
lightningManaCap,
|
||||
transferenceManaCap,
|
||||
} from './skills-element-caps';
|
||||
|
||||
export {
|
||||
pactWeaving,
|
||||
guardianConstructs,
|
||||
enchantedGolemancy,
|
||||
} from './skills-hybrid';
|
||||
|
||||
export {
|
||||
researchManaSpells,
|
||||
researchFireSpells,
|
||||
researchWaterSpells,
|
||||
researchAirSpells,
|
||||
researchEarthSpells,
|
||||
researchLightSpells,
|
||||
researchDarkSpells,
|
||||
researchLifeDeathSpells,
|
||||
researchAdvancedFire,
|
||||
researchAdvancedWater,
|
||||
researchAdvancedAir,
|
||||
researchAdvancedEarth,
|
||||
researchAdvancedLight,
|
||||
researchAdvancedDark,
|
||||
researchMasterFire,
|
||||
researchMasterWater,
|
||||
researchMasterEarth,
|
||||
researchDamageEffects,
|
||||
researchCombatEffects,
|
||||
researchManaEffects,
|
||||
researchAdvancedManaEffects,
|
||||
researchUtilityEffects,
|
||||
researchSpecialEffects,
|
||||
researchOverpower,
|
||||
researchMetalSpells,
|
||||
researchSandSpells,
|
||||
researchLightningSpells,
|
||||
researchAdvancedMetal,
|
||||
researchAdvancedSand,
|
||||
researchAdvancedLightning,
|
||||
researchMasterMetal,
|
||||
researchMasterSand,
|
||||
researchMasterLightning,
|
||||
researchTransferenceSpells,
|
||||
researchAdvancedTransference,
|
||||
researchMasterTransference,
|
||||
researchAdvancedFireCap,
|
||||
researchAdvancedWaterCap,
|
||||
researchAdvancedAirCap,
|
||||
researchAdvancedEarthCap,
|
||||
researchAdvancedLightCap,
|
||||
researchAdvancedDarkCap,
|
||||
researchAdvancedDeathCap,
|
||||
researchMasterFireCap,
|
||||
researchMasterWaterCap,
|
||||
researchMasterAirCap,
|
||||
researchMasterEarthCap,
|
||||
researchMasterLightCap,
|
||||
researchMasterDarkCap,
|
||||
researchMasterDeathCap,
|
||||
researchMetalCapacity,
|
||||
researchAdvancedMetalCap,
|
||||
researchSandCapacity,
|
||||
researchAdvancedSandCap,
|
||||
researchLightningCapacity,
|
||||
researchAdvancedLightningCap,
|
||||
researchCrystalCapacity,
|
||||
researchAdvancedCrystalCap,
|
||||
researchStellarCapacity,
|
||||
researchAdvancedStellarCap,
|
||||
researchVoidCapacity,
|
||||
researchAdvancedVoidCap,
|
||||
} from './skills-research';
|
||||
|
||||
export { SKILLS_V2 };
|
||||
|
||||
// Default Base Stats
|
||||
export const BASE_STATS: ComputedStats = {
|
||||
maxMana: 100,
|
||||
manaRegen: 2,
|
||||
clickMana: 1,
|
||||
elementCap: 10,
|
||||
studySpeed: 1,
|
||||
studyCostMult: 1,
|
||||
meditationEfficiency: 1,
|
||||
enchantCapacity: 100,
|
||||
enchantSpeed: 1,
|
||||
enchantPower: 1,
|
||||
disenchantRecovery: 1,
|
||||
baseDamage: 5,
|
||||
damageMultiplier: 1,
|
||||
attackSpeed: 1,
|
||||
critChance: 0,
|
||||
critMultiplier: 1.5,
|
||||
armorPierce: 0,
|
||||
insightGain: 1,
|
||||
golemDamage: 1,
|
||||
golemDuration: 1,
|
||||
pactMultiplier: 1,
|
||||
conversionRate: 1,
|
||||
spellDamage: 1,
|
||||
guardianDamage: 1,
|
||||
craftSpeed: 1,
|
||||
repairSpeed: 1,
|
||||
fireCap: 0, waterCap: 0, airCap: 0, earthCap: 0,
|
||||
lightCap: 0, darkCap: 0, deathCap: 0,
|
||||
metalCap: 0, sandCap: 0, lightningCap: 0,
|
||||
transferenceCap: 0, crystalCap: 0, stellarCap: 0, voidCap: 0,
|
||||
elementalDamage: 1,
|
||||
};
|
||||
|
||||
const ELEMENT_CAP_STATS: Record<string, keyof ComputedStats> = {
|
||||
fire: 'fireCap', water: 'waterCap', air: 'airCap', earth: 'earthCap',
|
||||
light: 'lightCap', dark: 'darkCap', death: 'deathCap', metal: 'metalCap',
|
||||
sand: 'sandCap', lightning: 'lightningCap', transference: 'transferenceCap',
|
||||
crystal: 'crystalCap', stellar: 'stellarCap', void: 'voidCap',
|
||||
};
|
||||
|
||||
/**
|
||||
* Compute all game stats from skill levels.
|
||||
*/
|
||||
export function computeStats(
|
||||
skills: Record<string, number>,
|
||||
prestigeUpgrades: Record<string, number> = {}
|
||||
): ComputedStats {
|
||||
const stats: ComputedStats = { ...BASE_STATS };
|
||||
|
||||
for (const [skillId, level] of Object.entries(skills)) {
|
||||
if (level <= 0) continue;
|
||||
const def = SKILLS_V2[skillId];
|
||||
if (!def) continue;
|
||||
for (const effect of def.effects) {
|
||||
const key = effect.stat as keyof ComputedStats;
|
||||
const currentVal = stats[key] as number;
|
||||
if (effect.mode === 'add') {
|
||||
(stats[key] as number) = currentVal + effect.valuePerLevel * level;
|
||||
} else {
|
||||
const perLevelMultiplier = 1 + effect.valuePerLevel;
|
||||
let result = currentVal;
|
||||
for (let i = 0; i < level; i++) result *= perLevelMultiplier;
|
||||
(stats[key] as number) = result;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (prestigeUpgrades.manaWell) stats.maxMana += prestigeUpgrades.manaWell * 500;
|
||||
if (prestigeUpgrades.manaFlow) stats.manaRegen += prestigeUpgrades.manaFlow * 0.5;
|
||||
if (prestigeUpgrades.elementalAttune) stats.elementCap += prestigeUpgrades.elementalAttune * 25;
|
||||
if (prestigeUpgrades.pactBinding) stats.pactMultiplier += prestigeUpgrades.pactBinding * 0.1;
|
||||
if (prestigeUpgrades.insightAmp) stats.insightGain *= 1 + prestigeUpgrades.insightAmp * 0.25;
|
||||
|
||||
let elementCapFromSkills = 0;
|
||||
for (const [, statKey] of Object.entries(ELEMENT_CAP_STATS)) {
|
||||
const val = stats[statKey] as number;
|
||||
if (val > 0) elementCapFromSkills += val;
|
||||
}
|
||||
if (elementCapFromSkills > 0) stats.elementCap += elementCapFromSkills;
|
||||
|
||||
stats.maxMana = Math.max(1, Math.round(stats.maxMana));
|
||||
stats.manaRegen = Math.round(stats.manaRegen * 100) / 100;
|
||||
stats.clickMana = Math.max(1, stats.clickMana);
|
||||
stats.elementCap = Math.max(10, Math.round(stats.elementCap));
|
||||
stats.baseDamage = Math.max(1, Math.round(stats.baseDamage));
|
||||
stats.critChance = Math.min(1, Math.max(0, stats.critChance));
|
||||
stats.armorPierce = Math.min(1, Math.max(0, stats.armorPierce));
|
||||
stats.attackSpeed = Math.max(0.1, stats.attackSpeed);
|
||||
stats.insightGain = Math.max(0, stats.insightGain);
|
||||
stats.golemDamage = Math.max(0.1, stats.golemDamage);
|
||||
stats.golemDuration = Math.max(1, stats.golemDuration);
|
||||
stats.enchantCapacity = Math.max(10, Math.round(stats.enchantCapacity));
|
||||
stats.conversionRate = Math.max(0, stats.conversionRate);
|
||||
|
||||
return stats;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the base key for a tiered skill (strips _tN suffix).
|
||||
*/
|
||||
export function getBaseSkillId(skillId: string): string {
|
||||
const match = skillId.match(/^(.+?)_t(\d+)$/);
|
||||
return match ? match[1] : skillId;
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if a skill has prerequisites that are met.
|
||||
*/
|
||||
export function hasPrerequisites(
|
||||
skills: Record<string, number>,
|
||||
prerequisites?: Record<string, number>
|
||||
): boolean {
|
||||
if (!prerequisites) return true;
|
||||
for (const [reqId, reqLevel] of Object.entries(prerequisites)) {
|
||||
if ((skills[reqId] || 0) < reqLevel) return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/** Legacy compat wrapper */
|
||||
export function computeStatsLegacy(state: {
|
||||
skills: Record<string, number>;
|
||||
prestigeUpgrades?: Record<string, number>;
|
||||
}): ComputedStats {
|
||||
return computeStats(state.skills, state.prestigeUpgrades || {});
|
||||
}
|
||||
@@ -1,348 +0,0 @@
|
||||
// ─── Skills ───────────────────────────────────────────────────────────────────
|
||||
import type { SkillDef } from '../types';
|
||||
|
||||
export const SKILLS_DEF: Record<string, SkillDef> = {
|
||||
// Mana Skills (4-8 hours study) - Core, no attunement required
|
||||
manaWell: { name: "Mana Well", desc: "+100 max mana", cat: "mana", max: 10, base: 100, studyTime: 4 },
|
||||
manaFlow: { name: "Mana Flow", desc: "+1 regen/hr", cat: "mana", max: 10, base: 150, studyTime: 5 },
|
||||
// Per-mana-type capacity upgrades (Bug 9)
|
||||
fireManaCap: { name: "Fire Mana Capacity +10%", desc: "+10% fire mana capacity", cat: "mana", max: 10, base: 200, studyTime: 4, cost: { type: 'element', element: 'fire', amount: 100 } },
|
||||
waterManaCap: { name: "Water Mana Capacity +10%", desc: "+10% water mana capacity", cat: "mana", max: 10, base: 200, studyTime: 4, cost: { type: 'element', element: 'water', amount: 100 } },
|
||||
airManaCap: { name: "Air Mana Capacity +10%", desc: "+10% air mana capacity", cat: "mana", max: 10, base: 200, studyTime: 4, cost: { type: 'element', element: 'air', amount: 100 } },
|
||||
earthManaCap: { name: "Earth Mana Capacity +10%", desc: "+10% earth mana capacity", cat: "mana", max: 10, base: 200, studyTime: 4, cost: { type: 'element', element: 'earth', amount: 100 } },
|
||||
lightManaCap: { name: "Light Mana Capacity +10%", desc: "+10% light mana capacity", cat: "mana", max: 10, base: 250, studyTime: 5, cost: { type: 'element', element: 'light', amount: 150 } },
|
||||
darkManaCap: { name: "Dark Mana Capacity +10%", desc: "+10% dark mana capacity", cat: "mana", max: 10, base: 250, studyTime: 5, cost: { type: 'element', element: 'dark', amount: 150 } },
|
||||
deathManaCap: { name: "Death Mana Capacity +10%", desc: "+10% death mana capacity", cat: "mana", max: 10, base: 300, studyTime: 6, cost: { type: 'element', element: 'death', amount: 200 } },
|
||||
// Composite element capacity upgrades
|
||||
metalManaCap: { name: "Metal Mana Capacity +10%", desc: "+10% metal mana capacity", cat: "mana", max: 10, base: 350, studyTime: 6, cost: { type: 'element', element: 'metal', amount: 250 } },
|
||||
sandManaCap: { name: "Sand Mana Capacity +10%", desc: "+10% sand mana capacity", cat: "mana", max: 10, base: 350, studyTime: 6, cost: { type: 'element', element: 'sand', amount: 250 } },
|
||||
lightningManaCap: { name: "Lightning Mana Capacity +10%", desc: "+10% lightning mana capacity", cat: "mana", max: 10, base: 350, studyTime: 6, cost: { type: 'element', element: 'lightning', amount: 250 } },
|
||||
// Utility mana capacity upgrades
|
||||
transferenceManaCap: { name: "Transference Mana Capacity +10%", desc: "+10% transference mana capacity", cat: "mana", max: 10, base: 200, studyTime: 4, cost: { type: 'element', element: 'transference', amount: 100 } },
|
||||
manaOverflow: { name: "Mana Overflow", desc: "+25% mana from clicks", cat: "mana", max: 5, base: 400, req: { manaWell: 3 }, studyTime: 6 },
|
||||
|
||||
// Study Skills (3-6 hours study) - Core, no attunement required
|
||||
quickLearner: { name: "Quick Learner", desc: "+10% study speed", cat: "study", max: 10, base: 250, studyTime: 4 },
|
||||
focusedMind: { name: "Focused Mind", desc: "-5% study mana cost", cat: "study", max: 10, base: 300, studyTime: 5 },
|
||||
meditation: { name: "Meditation Focus", desc: "Up to 2.5x regen after 4hrs meditating", cat: "mana", max: 1, base: 400, studyTime: 6 },
|
||||
knowledgeRetention: { name: "Knowledge Retention", desc: "+20% study progress saved on cancel", cat: "study", max: 3, base: 350, studyTime: 5 },
|
||||
|
||||
// Enchanting Skills (4-8 hours study) - Requires Enchanter attunement levels
|
||||
enchanting: { name: "Enchanting", desc: "Unlocks enchantment design", cat: "enchant", max: 10, base: 200, studyTime: 5, attunement: 'enchanter', attunementReq: { enchanter: 1 } },
|
||||
efficientEnchant:{ name: "Efficient Enchant", desc: "-5% enchantment capacity cost", cat: "enchant", max: 5, base: 350, studyTime: 6, req: { enchanting: 3 }, attunementReq: { enchanter: 2 } },
|
||||
|
||||
enchantSpeed: { name: "Enchant Speed", desc: "-10% enchantment time", cat: "enchant", max: 5, base: 300, studyTime: 4, req: { enchanting: 2 }, attunementReq: { enchanter: 1 } },
|
||||
essenceRefining: { name: "Essence Refining", desc: "+10% enchantment effect power", cat: "enchant", max: 1, base: 450, studyTime: 7, req: { enchanting: 4 }, attunementReq: { enchanter: 2 } },
|
||||
|
||||
// Crafting Skills (4-6 hours study) - Some require Fabricator
|
||||
effCrafting: { name: "Eff. Crafting", desc: "-10% craft time", cat: "craft", max: 1, base: 300, studyTime: 4 },
|
||||
fieldRepair: { name: "Field Repair", desc: "+15% repair efficiency", cat: "craft", max: 1, base: 350, studyTime: 4 },
|
||||
elemCrafting: { name: "Elem. Crafting", desc: "+25% craft output", cat: "craft", max: 1, base: 500, req: { effCrafting: 1 }, studyTime: 8, attunementReq: { enchanter: 1 } },
|
||||
|
||||
// Effect Research Skills (unlock enchantment effects for designing) - Requires Enchanter
|
||||
// Tier 1 - Basic Spell Effects
|
||||
researchManaSpells: { name: "Mana Spell Research", desc: "Unlock Mana Strike spell enchantment", cat: "effectResearch", max: 1, base: 200, studyTime: 4, req: { enchanting: 1 }, cost: { type: 'element', element: 'transference', amount: 100 }, attunementReq: { enchanter: 1 } },
|
||||
researchFireSpells: { name: "Fire Spell Research", desc: "Unlock Ember Shot, Fireball spell enchantments", cat: "effectResearch", max: 1, base: 300, studyTime: 6, req: { enchanting: 2 }, cost: { type: 'element', element: 'fire', amount: 100 }, attunementReq: { enchanter: 1 } },
|
||||
researchWaterSpells: { name: "Water Spell Research", desc: "Unlock Water Jet, Ice Shard spell enchantments", cat: "effectResearch", max: 1, base: 300, studyTime: 6, req: { enchanting: 2 }, cost: { type: 'element', element: 'water', amount: 100 }, attunementReq: { enchanter: 1 } },
|
||||
researchAirSpells: { name: "Air Spell Research", desc: "Unlock Gust, Wind Slash spell enchantments", cat: "effectResearch", max: 1, base: 300, studyTime: 6, req: { enchanting: 2 }, cost: { type: 'element', element: 'air', amount: 100 }, attunementReq: { enchanter: 1 } },
|
||||
researchEarthSpells: { name: "Earth Spell Research", desc: "Unlock Stone Bullet, Rock Spike spell enchantments", cat: "effectResearch", max: 1, base: 350, studyTime: 6, req: { enchanting: 2 }, cost: { type: 'element', element: 'earth', amount: 100 }, attunementReq: { enchanter: 1 } },
|
||||
researchLightSpells: { name: "Light Spell Research", desc: "Unlock Light Lance, Radiance spell enchantments", cat: "effectResearch", max: 1, base: 400, studyTime: 8, req: { enchanting: 3 }, cost: { type: 'element', element: 'light', amount: 100 }, attunementReq: { enchanter: 2 } },
|
||||
researchDarkSpells: { name: "Dark Spell Research", desc: "Unlock Shadow Bolt, Dark Pulse spell enchantments", cat: "effectResearch", max: 1, base: 400, studyTime: 8, req: { enchanting: 3 }, cost: { type: 'element', element: 'dark', amount: 100 }, attunementReq: { enchanter: 2 } },
|
||||
researchLifeDeathSpells: { name: "Death Research", desc: "Unlock Drain spell enchantment", cat: "effectResearch", max: 1, base: 400, studyTime: 8, req: { enchanting: 3 }, cost: { type: 'element', element: 'death', amount: 100 }, attunementReq: { enchanter: 2 } },
|
||||
|
||||
// Tier 2 - Advanced Spell Effects - Require Enchanter 3
|
||||
researchAdvancedFire: { name: "Advanced Fire Research", desc: "Unlock Inferno, Flame Wave spell enchantments", cat: "effectResearch", max: 1, base: 600, studyTime: 12, req: { researchFireSpells: 1, enchanting: 4 }, cost: { type: 'element', element: 'fire', amount: 100 }, attunementReq: { enchanter: 3 } },
|
||||
researchAdvancedWater: { name: "Advanced Water Research", desc: "Unlock Tidal Wave, Ice Storm spell enchantments", cat: "effectResearch", max: 1, base: 600, studyTime: 12, req: { researchWaterSpells: 1, enchanting: 4 }, cost: { type: 'element', element: 'water', amount: 100 }, attunementReq: { enchanter: 3 } },
|
||||
researchAdvancedAir: { name: "Advanced Air Research", desc: "Unlock Hurricane, Wind Blade spell enchantments", cat: "effectResearch", max: 1, base: 600, studyTime: 12, req: { researchAirSpells: 1, enchanting: 4 }, cost: { type: 'element', element: 'air', amount: 100 }, attunementReq: { enchanter: 3 } },
|
||||
researchAdvancedEarth: { name: "Advanced Earth Research", desc: "Unlock Earthquake, Stone Barrage spell enchantments", cat: "effectResearch", max: 1, base: 600, studyTime: 12, req: { researchEarthSpells: 1, enchanting: 4 }, cost: { type: 'element', element: 'earth', amount: 100 }, attunementReq: { enchanter: 3 } },
|
||||
researchAdvancedLight: { name: "Advanced Light Research", desc: "Unlock Solar Flare, Divine Smite spell enchantments", cat: "effectResearch", max: 1, base: 700, studyTime: 14, req: { researchLightSpells: 1, enchanting: 5 }, cost: { type: 'element', element: 'light', amount: 100 }, attunementReq: { enchanter: 4 } },
|
||||
researchAdvancedDark: { name: "Advanced Dark Research", desc: "Unlock Void Rift, Shadow Storm spell enchantments", cat: "effectResearch", max: 1, base: 700, studyTime: 14, req: { researchDarkSpells: 1, enchanting: 5 }, cost: { type: 'element', element: 'dark', amount: 100 }, attunementReq: { enchanter: 4 } },
|
||||
|
||||
// Tier 3 - Master Spell Effects - Require Enchanter 5
|
||||
researchMasterFire: { name: "Master Fire Research", desc: "Unlock Pyroclasm spell enchantment", cat: "effectResearch", max: 1, base: 1200, studyTime: 24, req: { researchAdvancedFire: 1, enchanting: 7 }, cost: { type: 'element', element: 'fire', amount: 200 }, attunementReq: { enchanter: 5 } },
|
||||
researchMasterWater: { name: "Master Water Research", desc: "Unlock Tsunami spell enchantment", cat: "effectResearch", max: 1, base: 1200, studyTime: 24, req: { researchAdvancedWater: 1, enchanting: 7 }, cost: { type: 'element', element: 'water', amount: 200 }, attunementReq: { enchanter: 5 } },
|
||||
researchMasterEarth: { name: "Master Earth Research", desc: "Unlock Meteor Strike spell enchantment", cat: "effectResearch", max: 1, base: 1300, studyTime: 26, req: { researchAdvancedEarth: 1, enchanting: 8 }, cost: { type: 'element', element: 'earth', amount: 200 }, attunementReq: { enchanter: 5 } },
|
||||
|
||||
// Combat Effect Research
|
||||
researchDamageEffects: { name: "Damage Effect Research", desc: "Unlock Minor/Moderate Power, Amplification effects", cat: "effectResearch", max: 1, base: 250, studyTime: 5, req: { enchanting: 1 }, attunementReq: { enchanter: 1 } },
|
||||
researchCombatEffects: { name: "Combat Effect Research", desc: "Unlock Sharp Edge, Swift Casting effects", cat: "effectResearch", max: 1, base: 350, studyTime: 6, req: { researchDamageEffects: 1, enchanting: 3 }, attunementReq: { enchanter: 2 } },
|
||||
|
||||
// Mana Effect Research - Also unlocks weapon mana effects at Enchanter 3
|
||||
researchManaEffects: { name: "Mana Effect Research", desc: "Unlock Mana Reserve, Trickle, Mana Tap, and weapon mana effects", cat: "effectResearch", max: 1, base: 200, studyTime: 4, req: { enchanting: 1 }, attunementReq: { enchanter: 1 } },
|
||||
researchAdvancedManaEffects: { name: "Advanced Mana Research", desc: "Unlock Mana Reservoir, Stream, River, Mana Surge, and advanced weapon mana effects", cat: "effectResearch", max: 1, base: 400, studyTime: 8, req: { researchManaEffects: 1, enchanting: 3 }, attunementReq: { enchanter: 3 } },
|
||||
|
||||
// Utility Effect Research
|
||||
researchUtilityEffects: { name: "Utility Effect Research", desc: "Unlock Meditative Focus, Quick Study, Insightful effects", cat: "effectResearch", max: 1, base: 300, studyTime: 6, req: { enchanting: 2 }, attunementReq: { enchanter: 1 } },
|
||||
|
||||
// Special Effect Research
|
||||
researchSpecialEffects: { name: "Special Effect Research", desc: "Unlock Echo Chamber, Siphoning, Bane effects", cat: "effectResearch", max: 1, base: 500, studyTime: 10, req: { enchanting: 4 }, attunementReq: { enchanter: 3 } },
|
||||
researchOverpower: { name: "Overpower Research", desc: "Unlock Overpower effect", cat: "effectResearch", max: 1, base: 700, studyTime: 12, req: { researchSpecialEffects: 1, enchanting: 5 }, attunementReq: { enchanter: 4 } },
|
||||
|
||||
// ═══════════════════════════════════════════════════════════════════════════
|
||||
// COMPOUND MANA SPELL RESEARCH - Metal, Sand, Lightning
|
||||
// ═══════════════════════════════════════════════════════════════════════════
|
||||
|
||||
// Tier 1 - Basic Compound Spells
|
||||
researchMetalSpells: { name: "Metal Spell Research", desc: "Unlock Metal Shard, Iron Fist spell enchantments", cat: "effectResearch", max: 1, base: 400, studyTime: 6, req: { researchFireSpells: 1, researchEarthSpells: 1, enchanting: 3 }, cost: { type: 'element', element: 'metal', amount: 100 }, attunementReq: { enchanter: 2 } },
|
||||
researchSandSpells: { name: "Sand Spell Research", desc: "Unlock Sand Blast, Sandstorm spell enchantments", cat: "effectResearch", max: 1, base: 400, studyTime: 6, req: { researchEarthSpells: 1, researchWaterSpells: 1, enchanting: 3 }, cost: { type: 'element', element: 'sand', amount: 100 }, attunementReq: { enchanter: 2 } },
|
||||
researchLightningSpells: { name: "Lightning Spell Research", desc: "Unlock Spark, Lightning Bolt spell enchantments", cat: "effectResearch", max: 1, base: 400, studyTime: 6, req: { researchFireSpells: 1, researchAirSpells: 1, enchanting: 3 }, cost: { type: 'element', element: 'lightning', amount: 100 }, attunementReq: { enchanter: 2 } },
|
||||
|
||||
// Tier 2 - Advanced Compound Spells
|
||||
researchAdvancedMetal: { name: "Advanced Metal Research", desc: "Unlock Steel Tempest spell enchantment", cat: "effectResearch", max: 1, base: 700, studyTime: 12, req: { researchMetalSpells: 1, enchanting: 5 }, cost: { type: 'element', element: 'metal', amount: 100 }, attunementReq: { enchanter: 3 } },
|
||||
researchAdvancedSand: { name: "Advanced Sand Research", desc: "Unlock Desert Wind spell enchantment", cat: "effectResearch", max: 1, base: 700, studyTime: 12, req: { researchSandSpells: 1, enchanting: 5 }, cost: { type: 'element', element: 'sand', amount: 100 }, attunementReq: { enchanter: 3 } },
|
||||
researchAdvancedLightning: { name: "Advanced Lightning Research", desc: "Unlock Chain Lightning, Storm Call spell enchantments", cat: "effectResearch", max: 1, base: 700, studyTime: 12, req: { researchLightningSpells: 1, enchanting: 5 }, cost: { type: 'element', element: 'lightning', amount: 100 }, attunementReq: { enchanter: 3 } },
|
||||
|
||||
// Tier 3 - Master Compound Spells
|
||||
researchMasterMetal: { name: "Master Metal Research", desc: "Unlock Furnace Blast spell enchantment", cat: "effectResearch", max: 1, base: 1300, studyTime: 26, req: { researchAdvancedMetal: 1, enchanting: 7 }, cost: { type: 'element', element: 'metal', amount: 200 }, attunementReq: { enchanter: 5 } },
|
||||
researchMasterSand: { name: "Master Sand Research", desc: "Unlock Dune Collapse spell enchantment", cat: "effectResearch", max: 1, base: 1300, studyTime: 26, req: { researchAdvancedSand: 1, enchanting: 7 }, cost: { type: 'element', element: 'sand', amount: 200 }, attunementReq: { enchanter: 5 } },
|
||||
researchMasterLightning: { name: "Master Lightning Research", desc: "Unlock Thunder Strike spell enchantment", cat: "effectResearch", max: 1, base: 1300, studyTime: 26, req: { researchAdvancedLightning: 1, enchanting: 7 }, cost: { type: 'element', element: 'lightning', amount: 200 }, attunementReq: { enchanter: 5 } },
|
||||
|
||||
// ═══════════════════════════════════════════════════════════════════════════
|
||||
// UTILITY MANA SPELL RESEARCH - Transference
|
||||
// ═══════════════════════════════════════════════════════════════════════════
|
||||
|
||||
// Tier 1 - Basic Utility Spells
|
||||
researchTransferenceSpells: { name: "Transference Spell Research", desc: "Unlock Transfer Strike, Mana Rip spell enchantments", cat: "effectResearch", max: 1, base: 350, studyTime: 5, req: { enchanting: 3 }, attunementReq: { enchanter: 1 } },
|
||||
|
||||
// Tier 2 - Advanced Utility Spells
|
||||
researchAdvancedTransference: { name: "Advanced Transference Research", desc: "Unlock Essence Drain spell enchantment", cat: "effectResearch", max: 1, base: 650, studyTime: 12, req: { researchTransferenceSpells: 1, enchanting: 5 }, attunementReq: { enchanter: 3 } },
|
||||
|
||||
// Tier 3 - Master Utility Spells
|
||||
researchMasterTransference: { name: "Master Transference Research", desc: "Unlock Soul Transfer spell enchantment", cat: "effectResearch", max: 1, base: 1300, studyTime: 26, req: { researchAdvancedTransference: 1, enchanting: 7 }, attunementReq: { enchanter: 5 } },
|
||||
|
||||
// Research Skills (longer study times: 12-72 hours) - Core skills, any attunement level 3
|
||||
manaTap: { name: "Mana Tap", desc: "+1 mana/click", cat: "mana", max: 1, base: 300, studyTime: 12 },
|
||||
manaSurge: { name: "Mana Surge", desc: "+3 mana/click", cat: "mana", max: 1, base: 800, studyTime: 36, req: { manaTap: 1 } },
|
||||
manaSpring: { name: "Mana Spring", desc: "+2 mana regen", cat: "mana", max: 1, base: 600, studyTime: 24 },
|
||||
deepTrance: { name: "Deep Trance", desc: "Extend meditation bonus to 6hrs for 3x", cat: "mana", max: 1, base: 900, studyTime: 48, req: { meditation: 1 } },
|
||||
voidMeditation:{ name: "Void Meditation", desc: "Extend meditation bonus to 8hrs for 5x", cat: "mana", max: 1, base: 1500, studyTime: 72, req: { deepTrance: 1 } },
|
||||
|
||||
// ═══════════════════════════════════════════════════════════════════════════
|
||||
// INVOKER SKILLS - Require Invoker attunement
|
||||
// ═══════════════════════════════════════════════════════════════════════════
|
||||
|
||||
// Invocation - Invoker attunement skill
|
||||
invocation: {
|
||||
name: "Invocation",
|
||||
desc: "Enhances spell invocation and guardian pacts",
|
||||
cat: "invocation",
|
||||
attunement: 'invoker',
|
||||
max: 10,
|
||||
base: 300,
|
||||
studyTime: 6,
|
||||
attunementReq: { invoker: 1 }
|
||||
},
|
||||
// Pact Mastery - Invoker attunement skill
|
||||
pactMastery: {
|
||||
name: "Pact Mastery",
|
||||
desc: "Enhances pact signing and guardian bonuses",
|
||||
cat: "pact",
|
||||
attunement: 'invoker',
|
||||
max: 10,
|
||||
base: 350,
|
||||
studyTime: 6,
|
||||
attunementReq: { invoker: 1 }
|
||||
},
|
||||
|
||||
// ═══════════════════════════════════════════════════════════════════════════
|
||||
// GOLEMANCY SKILLS - Require Fabricator attunement
|
||||
// ═══════════════════════════════════════════════════════════════════════════
|
||||
|
||||
// Core Golemancy
|
||||
golemMastery: { name: "Golem Mastery", desc: "+10% golem damage", cat: "golemancy", max: 1, base: 300, studyTime: 6, attunementReq: { fabricator: 2 } },
|
||||
golemEfficiency: { name: "Golem Efficiency", desc: "+5% golem attack speed", cat: "golemancy", max: 1, base: 350, studyTime: 6, attunementReq: { fabricator: 2 } },
|
||||
golemLongevity: { name: "Golem Longevity", desc: "+1 floor duration", cat: "golemancy", max: 1, base: 500, studyTime: 8, attunementReq: { fabricator: 3 } },
|
||||
golemSiphon: { name: "Golem Siphon", desc: "-10% golem maintenance", cat: "golemancy", max: 1, base: 400, studyTime: 8, attunementReq: { fabricator: 3 } },
|
||||
|
||||
// Advanced Golemancy
|
||||
advancedGolemancy: { name: "Advanced Golemancy", desc: "Unlock hybrid golem recipes", cat: "golemancy", max: 1, base: 800, studyTime: 16, req: { golemMastery: 1 }, attunementReq: { fabricator: 5 } },
|
||||
golemResonance: { name: "Golem Resonance", desc: "+1 golem slot at Fabricator 10", cat: "golemancy", max: 1, base: 1200, studyTime: 24, req: { golemMastery: 1 }, attunementReq: { fabricator: 8 } },
|
||||
|
||||
// ═══════════════════════════════════════════════════════════════════════════
|
||||
// HYBRID SKILLS - Require TWO attunements at level 5+
|
||||
// ═══════════════════════════════════════════════════════════════════════════
|
||||
|
||||
// Pact-Weaving (Invoker + Enchanter)
|
||||
pactWeaving: {
|
||||
name: "Pact-Weaving",
|
||||
desc: "Weave Guardian essence into weapon enchantments OR world-effects",
|
||||
cat: "hybrid",
|
||||
max: 10,
|
||||
base: 750,
|
||||
studyTime: 15,
|
||||
attunementReq: { invoker: 5, enchanter: 5 }
|
||||
},
|
||||
|
||||
// Guardian Constructs (Fabricator + Invoker)
|
||||
guardianConstructs: {
|
||||
name: "Guardian Constructs",
|
||||
desc: "Build monumental, singular golems. Only 1 active at a time, vastly more durable, costs less maintenance.",
|
||||
cat: "hybrid",
|
||||
max: 10,
|
||||
base: 800,
|
||||
studyTime: 18,
|
||||
attunementReq: { fabricator: 5, invoker: 5 }
|
||||
},
|
||||
|
||||
// Enchanted Golemancy (Fabricator + Enchanter)
|
||||
enchantedGolemancy: {
|
||||
name: "Enchanted Golemancy",
|
||||
desc: "Imbuing golems with elemental spell logic",
|
||||
cat: "hybrid",
|
||||
max: 10,
|
||||
base: 850,
|
||||
studyTime: 20,
|
||||
attunementReq: { fabricator: 5, enchanter: 5 }
|
||||
},
|
||||
};
|
||||
|
||||
// ─── Skill Categories ─────────────────────────────────────────────────────────
|
||||
// Skills are now organized by attunement - each attunement grants access to specific skill categories
|
||||
export const SKILL_CATEGORIES = [
|
||||
// Core categories (always available)
|
||||
{ id: 'mana', name: 'Mana', icon: '💧', attunement: null },
|
||||
{ id: 'study', name: 'Study', icon: '📚', attunement: null },
|
||||
// Research category moved to Mana (Bug 12)
|
||||
|
||||
// Enchanter attunement (Right Hand)
|
||||
{ id: 'enchant', name: 'Enchanting', icon: '✨', attunement: 'enchanter' },
|
||||
{ id: 'effectResearch', name: 'Effect Research', icon: '🔬', attunement: 'enchanter' },
|
||||
|
||||
// Invoker attunement (Chest)
|
||||
{ id: 'invocation', name: 'Invocation', icon: '💜', attunement: 'invoker' },
|
||||
{ id: 'pact', name: 'Pact Mastery', icon: '🤝', attunement: 'invoker' },
|
||||
|
||||
// Fabricator attunement (Left Hand)
|
||||
{ id: 'fabrication', name: 'Fabrication', icon: '⚒️', attunement: 'fabricator' },
|
||||
{ id: 'golemancy', name: 'Golemancy', icon: '🗿', attunement: 'fabricator' },
|
||||
|
||||
// Legacy category (for backward compatibility)
|
||||
{ id: 'craft', name: 'Crafting', icon: '🔧', attunement: null },
|
||||
];
|
||||
|
||||
// ─── Effect Research Mapping ───────────────────────────────────────────────────
|
||||
// Maps research skill IDs to the effect IDs they unlock
|
||||
export const EFFECT_RESEARCH_MAPPING: Record<string, string[]> = {
|
||||
// Tier 1 - Basic Spell Effects
|
||||
researchManaSpells: ['spell_manaStrike'],
|
||||
researchFireSpells: ['spell_emberShot', 'spell_fireball'],
|
||||
researchWaterSpells: ['spell_waterJet', 'spell_iceShard'],
|
||||
researchAirSpells: ['spell_gust', 'spell_windSlash'],
|
||||
researchEarthSpells: ['spell_stoneBullet', 'spell_rockSpike'],
|
||||
researchLightSpells: ['spell_lightLance', 'spell_radiance'],
|
||||
researchDarkSpells: ['spell_shadowBolt', 'spell_darkPulse'],
|
||||
researchLifeDeathSpells: ['spell_drain'],
|
||||
|
||||
// Tier 2 - Advanced Spell Effects
|
||||
researchAdvancedFire: ['spell_inferno', 'spell_flameWave'],
|
||||
researchAdvancedWater: ['spell_tidalWave', 'spell_iceStorm'],
|
||||
researchAdvancedAir: ['spell_hurricane', 'spell_windBlade'],
|
||||
researchAdvancedEarth: ['spell_earthquake', 'spell_stoneBarrage'],
|
||||
researchAdvancedLight: ['spell_solarFlare', 'spell_divineSmite'],
|
||||
researchAdvancedDark: ['spell_voidRift', 'spell_shadowStorm'],
|
||||
|
||||
// Tier 3 - Master Spell Effects
|
||||
researchMasterFire: ['spell_pyroclasm'],
|
||||
researchMasterWater: ['spell_tsunami'],
|
||||
researchMasterEarth: ['spell_meteorStrike'],
|
||||
|
||||
// Combat Effect Research
|
||||
researchDamageEffects: ['damage_5', 'damage_10', 'damage_pct_10'],
|
||||
researchCombatEffects: ['crit_5', 'attack_speed_10'],
|
||||
|
||||
// Mana Effect Research
|
||||
researchManaEffects: ['mana_cap_50', 'mana_regen_1', 'click_mana_1'],
|
||||
researchAdvancedManaEffects: ['mana_cap_100', 'mana_regen_2', 'mana_regen_5', 'click_mana_3'],
|
||||
|
||||
// Utility Effect Research
|
||||
researchUtilityEffects: ['meditate_10', 'study_10', 'insight_5'],
|
||||
|
||||
// Special Effect Research
|
||||
researchSpecialEffects: ['spell_echo_10', 'guardian_dmg_10'],
|
||||
researchOverpower: ['overpower_80'],
|
||||
|
||||
// ═══════════════════════════════════════════════════════════════════════════
|
||||
// COMPOUND MANA SPELL RESEARCH - Metal, Sand, Lightning
|
||||
// ═══════════════════════════════════════════════════════════════════════════
|
||||
|
||||
// Tier 1 - Basic Compound Spells
|
||||
researchMetalSpells: ['spell_metalShard', 'spell_ironFist'],
|
||||
researchSandSpells: ['spell_sandBlast', 'spell_sandstorm'],
|
||||
researchLightningSpells: ['spell_spark', 'spell_lightningBolt'],
|
||||
|
||||
// Tier 2 - Advanced Compound Spells
|
||||
researchAdvancedMetal: ['spell_steelTempest'],
|
||||
researchAdvancedSand: ['spell_desertWind'],
|
||||
researchAdvancedLightning: ['spell_chainLightning', 'spell_stormCall'],
|
||||
|
||||
// Tier 3 - Master Compound Spells
|
||||
researchMasterMetal: ['spell_furnaceBlast'],
|
||||
researchMasterSand: ['spell_duneCollapse'],
|
||||
researchMasterLightning: ['spell_thunderStrike'],
|
||||
|
||||
// ═══════════════════════════════════════════════════════════════════════════
|
||||
// UTILITY MANA SPELL RESEARCH - Transference
|
||||
// ═══════════════════════════════════════════════════════════════════════════
|
||||
|
||||
// Tier 1 - Basic Utility Spells
|
||||
researchTransferenceSpells: ['spell_transferStrike', 'spell_manaRip'],
|
||||
|
||||
// Tier 2 - Advanced Utility Spells
|
||||
researchAdvancedTransference: ['spell_essenceDrain'],
|
||||
|
||||
// Tier 3 - Master Utility Spells
|
||||
researchMasterTransference: ['spell_soulTransfer'],
|
||||
|
||||
// ═══════════════════════════════════════════════════════════════════════════
|
||||
// PER-ELEMENT CAPACITY RESEARCH - Unlocks per-element capacity effects
|
||||
// ═══════════════════════════════════════════════════════════════════════════
|
||||
|
||||
// Basic Element Capacity Effects (Tier 1 - +10 per stack)
|
||||
researchFireCapacity: ['fire_cap_10'],
|
||||
researchWaterCapacity: ['water_cap_10'],
|
||||
researchAirCapacity: ['air_cap_10'],
|
||||
researchEarthCapacity: ['earth_cap_10'],
|
||||
researchLightCapacity: ['light_cap_10'],
|
||||
researchDarkCapacity: ['dark_cap_10'],
|
||||
researchDeathCapacity: ['death_cap_10'],
|
||||
|
||||
// Advanced Element Capacity Effects (Tier 2 - +25 per stack)
|
||||
researchAdvancedFireCap: ['fire_cap_25'],
|
||||
researchAdvancedWaterCap: ['water_cap_25'],
|
||||
researchAdvancedAirCap: ['air_cap_25'],
|
||||
researchAdvancedEarthCap: ['earth_cap_25'],
|
||||
researchAdvancedLightCap: ['light_cap_25'],
|
||||
researchAdvancedDarkCap: ['dark_cap_25'],
|
||||
researchAdvancedDeathCap: ['death_cap_25'],
|
||||
|
||||
// Master Element Capacity Effects (Tier 3 - +50 per stack)
|
||||
researchMasterFireCap: ['fire_cap_50'],
|
||||
researchMasterWaterCap: ['water_cap_50'],
|
||||
researchMasterAirCap: ['air_cap_50'],
|
||||
researchMasterEarthCap: ['earth_cap_50'],
|
||||
researchMasterLightCap: ['light_cap_50'],
|
||||
researchMasterDarkCap: ['dark_cap_50'],
|
||||
researchMasterDeathCap: ['death_cap_50'],
|
||||
|
||||
// Composite Element Capacity Effects
|
||||
researchMetalCapacity: ['metal_cap_10'],
|
||||
researchAdvancedMetalCap: ['metal_cap_25', 'metal_cap_50'],
|
||||
researchSandCapacity: ['sand_cap_10'],
|
||||
researchAdvancedSandCap: ['sand_cap_25', 'sand_cap_50'],
|
||||
researchLightningCapacity: ['lightning_cap_10'],
|
||||
researchAdvancedLightningCap: ['lightning_cap_25', 'lightning_cap_50'],
|
||||
|
||||
// Exotic Element Capacity Effects
|
||||
researchCrystalCapacity: ['crystal_cap_10'],
|
||||
researchAdvancedCrystalCap: ['crystal_cap_25', 'crystal_cap_50'],
|
||||
researchStellarCapacity: ['stellar_cap_10'],
|
||||
researchAdvancedStellarCap: ['stellar_cap_25', 'stellar_cap_50'],
|
||||
researchVoidCapacity: ['void_cap_10'],
|
||||
researchAdvancedVoidCap: ['void_cap_25', 'void_cap_50'],
|
||||
};
|
||||
|
||||
// Base effects unlocked when player gets enchanting skill level 1
|
||||
export const BASE_UNLOCKED_EFFECTS: string[] = []; // No effects at game start
|
||||
|
||||
// Effects that unlock when getting enchanting skill level 1
|
||||
export const ENCHANTING_UNLOCK_EFFECTS = ['spell_manaBolt'];
|
||||
Reference in New Issue
Block a user