Files
Mana-Loop/src/lib/game/constants/skills-core.ts
T
n8n-gitea b0eea7dadd
Build and Publish Mana Loop Docker Image / build-and-publish (push) Failing after 35s
feat: split skills-v2-defs into category modules and fix export
- Split 636-line skills-v2-defs.ts into 9 category files (all under 400 lines)
- Add skills-v2-registry.ts to build SKILLS_V2 flat record from modules
- Fix missing re-export of SKILLS_V2 from skills-v2.ts
- Fix clickMana clamping: remove Math.round to allow fractional values
- Fix golemDuration clamping: remove Math.round to allow fractional values
- Fix guardianConstructs effect: duration uses 'add' mode instead of 'multiply'
- All 70 existing tests pass
2026-05-12 11:28:44 +02:00

86 lines
4.7 KiB
TypeScript

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 }],
};