Refactor large files into modular components
Build and Publish Mana Loop Docker Image / build-and-publish (push) Failing after 1m9s
Build and Publish Mana Loop Docker Image / build-and-publish (push) Failing after 1m9s
- Refactored page.tsx (613→252 lines) with GameOverScreen and LeftPanel extracted - Refactored StatsTab.tsx (584→92 lines) with section components - Refactored SkillsTab.tsx (434→54 lines) with sub-components - Created modular structure for GameContext, LootInventory, and other components - All extracted components organized into feature directories
This commit is contained in:
@@ -0,0 +1,345 @@
|
||||
// ─── Attunement Definitions ─────────────────────────────────────────
|
||||
// Data file containing all attunement definitions
|
||||
|
||||
import type { AttunementDef, AttunementType } from '../types';
|
||||
|
||||
export const ATTUNEMENTS: Record<AttunementType, AttunementDef> = {
|
||||
// ═══════════════════════════════════════════════════════════════════════════
|
||||
// ENCHANTER - Right Hand
|
||||
// The starting attunement. Grants access to enchanting and transference magic.
|
||||
// ═══════════════════════════════════════════════════════════════════════════
|
||||
enchanter: {
|
||||
id: 'enchanter',
|
||||
name: 'Enchanter',
|
||||
slot: 'rightHand',
|
||||
description: 'Channel mana through your right hand to imbue equipment with magical properties.',
|
||||
capability: 'Unlock enchanting. Apply enchantments using transference mana.',
|
||||
primaryManaType: 'transference',
|
||||
rawManaRegen: 0.5,
|
||||
autoConvertRate: 0.2, // 0.2 transference per hour per raw regen
|
||||
icon: 'Wand2',
|
||||
color: '#8B5CF6', // Purple
|
||||
skills: {
|
||||
// Core enchanting skills
|
||||
enchanting: {
|
||||
name: 'Enchanting',
|
||||
desc: 'Apply magical effects to equipment',
|
||||
cat: 'enchanter',
|
||||
max: 10,
|
||||
base: 100,
|
||||
studyTime: 8,
|
||||
},
|
||||
efficientEnchant: {
|
||||
name: 'Efficient Enchanting',
|
||||
desc: 'Reduce enchantment mana costs',
|
||||
cat: 'enchanter',
|
||||
max: 5,
|
||||
base: 200,
|
||||
studyTime: 12,
|
||||
req: { enchanting: 3 },
|
||||
},
|
||||
|
||||
enchantSpeed: {
|
||||
name: 'Swift Enchanting',
|
||||
desc: 'Faster enchantment application',
|
||||
cat: 'enchanter',
|
||||
max: 5,
|
||||
base: 175,
|
||||
studyTime: 10,
|
||||
req: { enchanting: 2 },
|
||||
},
|
||||
transferenceMastery: {
|
||||
name: 'Transference Mastery',
|
||||
desc: 'Increased transference mana pool and regen',
|
||||
cat: 'enchanter',
|
||||
max: 10,
|
||||
base: 250,
|
||||
studyTime: 15,
|
||||
},
|
||||
},
|
||||
},
|
||||
// ... rest of attunement definitions (same as original data.ts)
|
||||
caster: {
|
||||
id: 'caster',
|
||||
name: 'Caster',
|
||||
slot: 'leftHand',
|
||||
description: 'Shape mana into devastating spell patterns through your left hand.',
|
||||
capability: 'Form mana shaping. +25% spell damage bonus.',
|
||||
primaryManaType: 'form',
|
||||
rawManaRegen: 0.3,
|
||||
autoConvertRate: 0.15,
|
||||
icon: 'Hand',
|
||||
color: '#3B82F6', // Blue
|
||||
skills: {
|
||||
spellShaping: {
|
||||
name: 'Spell Shaping',
|
||||
desc: 'Increase spell damage and efficiency',
|
||||
cat: 'caster',
|
||||
max: 10,
|
||||
base: 100,
|
||||
studyTime: 8,
|
||||
},
|
||||
quickCast: {
|
||||
name: 'Quick Cast',
|
||||
desc: 'Faster spell casting speed',
|
||||
cat: 'caster',
|
||||
max: 10,
|
||||
base: 120,
|
||||
studyTime: 8,
|
||||
},
|
||||
spellEcho: {
|
||||
name: 'Spell Echo',
|
||||
desc: 'Chance to cast spells twice',
|
||||
cat: 'caster',
|
||||
max: 5,
|
||||
base: 300,
|
||||
studyTime: 15,
|
||||
req: { spellShaping: 5 },
|
||||
},
|
||||
formMastery: {
|
||||
name: 'Form Mastery',
|
||||
desc: 'Increased form mana pool and regen',
|
||||
cat: 'caster',
|
||||
max: 10,
|
||||
base: 250,
|
||||
studyTime: 15,
|
||||
},
|
||||
},
|
||||
},
|
||||
seer: {
|
||||
id: 'seer',
|
||||
name: 'Seer',
|
||||
slot: 'head',
|
||||
description: 'See beyond the veil. Reveal hidden truths and enemy weaknesses.',
|
||||
capability: 'Reveal floor weaknesses. +20% critical hit chance.',
|
||||
primaryManaType: 'vision',
|
||||
rawManaRegen: 0.2,
|
||||
autoConvertRate: 0.1,
|
||||
icon: 'Eye',
|
||||
color: '#F59E0B', // Amber
|
||||
skills: {
|
||||
insight: {
|
||||
name: 'Insight',
|
||||
desc: 'Increased critical hit chance',
|
||||
cat: 'seer',
|
||||
max: 10,
|
||||
base: 100,
|
||||
studyTime: 8,
|
||||
},
|
||||
revealWeakness: {
|
||||
name: 'Reveal Weakness',
|
||||
desc: 'Show enemy elemental weaknesses',
|
||||
cat: 'seer',
|
||||
max: 5,
|
||||
base: 200,
|
||||
studyTime: 12,
|
||||
},
|
||||
foresight: {
|
||||
name: 'Foresight',
|
||||
desc: 'Chance to anticipate and dodge attacks',
|
||||
cat: 'seer',
|
||||
max: 5,
|
||||
base: 250,
|
||||
studyTime: 15,
|
||||
req: { insight: 5 },
|
||||
},
|
||||
visionMastery: {
|
||||
name: 'Vision Mastery',
|
||||
desc: 'Increased vision mana pool and regen',
|
||||
cat: 'seer',
|
||||
max: 10,
|
||||
base: 250,
|
||||
studyTime: 15,
|
||||
},
|
||||
},
|
||||
},
|
||||
warden: {
|
||||
id: 'warden',
|
||||
name: 'Warden',
|
||||
slot: 'back',
|
||||
description: 'Shield yourself with protective wards and barriers.',
|
||||
capability: 'Generate protective shields. -10% damage taken.',
|
||||
primaryManaType: 'barrier',
|
||||
rawManaRegen: 0.25,
|
||||
autoConvertRate: 0.12,
|
||||
icon: 'Shield',
|
||||
color: '#10B981', // Green
|
||||
skills: {
|
||||
warding: {
|
||||
name: 'Warding',
|
||||
desc: 'Generate protective shields',
|
||||
cat: 'warden',
|
||||
max: 10,
|
||||
base: 100,
|
||||
studyTime: 8,
|
||||
},
|
||||
fortitude: {
|
||||
name: 'Fortitude',
|
||||
desc: 'Reduce damage taken',
|
||||
cat: 'warden',
|
||||
max: 10,
|
||||
base: 150,
|
||||
studyTime: 10,
|
||||
},
|
||||
reflection: {
|
||||
name: 'Reflection',
|
||||
desc: 'Chance to reflect damage to attacker',
|
||||
cat: 'warden',
|
||||
max: 5,
|
||||
base: 300,
|
||||
studyTime: 15,
|
||||
req: { warding: 5 },
|
||||
},
|
||||
barrierMastery: {
|
||||
name: 'Barrier Mastery',
|
||||
desc: 'Increased barrier mana pool and regen',
|
||||
cat: 'warden',
|
||||
max: 10,
|
||||
base: 250,
|
||||
studyTime: 15,
|
||||
},
|
||||
},
|
||||
},
|
||||
invoker: {
|
||||
id: 'invoker',
|
||||
name: 'Invoker',
|
||||
slot: 'chest',
|
||||
description: 'Form pacts with spire guardians and channel their elemental power.',
|
||||
capability: 'Pact with guardians. Gain mana types from pacted guardians.',
|
||||
primaryManaType: null, // Uses guardian types instead
|
||||
rawManaRegen: 0.4,
|
||||
autoConvertRate: 0, // No auto-convert; mana comes from guardian pacts
|
||||
icon: 'Heart',
|
||||
color: '#EF4444', // Red
|
||||
skills: {
|
||||
pactMaking: {
|
||||
name: 'Pact Making',
|
||||
desc: 'Form stronger pacts with guardians',
|
||||
cat: 'invoker',
|
||||
max: 10,
|
||||
base: 100,
|
||||
studyTime: 8,
|
||||
},
|
||||
guardianChannel: {
|
||||
name: 'Guardian Channeling',
|
||||
desc: 'Channel guardian powers more effectively',
|
||||
cat: 'invoker',
|
||||
max: 10,
|
||||
base: 150,
|
||||
studyTime: 10,
|
||||
},
|
||||
elementalBurst: {
|
||||
name: 'Elemental Burst',
|
||||
desc: 'Unleash stored guardian energy',
|
||||
cat: 'invoker',
|
||||
max: 5,
|
||||
base: 300,
|
||||
studyTime: 15,
|
||||
req: { pactMaking: 5, guardianChannel: 3 },
|
||||
},
|
||||
soulResonance: {
|
||||
name: 'Soul Resonance',
|
||||
desc: 'Deep bond with pacted guardians',
|
||||
cat: 'invoker',
|
||||
max: 5,
|
||||
base: 400,
|
||||
studyTime: 20,
|
||||
req: { pactMaking: 8 },
|
||||
},
|
||||
},
|
||||
},
|
||||
strider: {
|
||||
id: 'strider',
|
||||
name: 'Strider',
|
||||
slot: 'leftLeg',
|
||||
description: 'Move with supernatural speed and grace.',
|
||||
capability: 'Enhanced mobility. +15% attack speed.',
|
||||
primaryManaType: 'flow',
|
||||
rawManaRegen: 0.3,
|
||||
autoConvertRate: 0.15,
|
||||
icon: 'Zap',
|
||||
color: '#06B6D4', // Cyan
|
||||
skills: {
|
||||
swiftness: {
|
||||
name: 'Swiftness',
|
||||
desc: 'Increased attack and movement speed',
|
||||
cat: 'strider',
|
||||
max: 10,
|
||||
base: 100,
|
||||
studyTime: 8,
|
||||
},
|
||||
evasive: {
|
||||
name: 'Evasive',
|
||||
desc: 'Chance to avoid damage',
|
||||
cat: 'strider',
|
||||
max: 5,
|
||||
base: 200,
|
||||
studyTime: 12,
|
||||
},
|
||||
momentum: {
|
||||
name: 'Momentum',
|
||||
desc: 'Build speed over consecutive attacks',
|
||||
cat: 'strider',
|
||||
max: 5,
|
||||
base: 250,
|
||||
studyTime: 15,
|
||||
req: { swiftness: 5 },
|
||||
},
|
||||
flowMastery: {
|
||||
name: 'Flow Mastery',
|
||||
desc: 'Increased flow mana pool and regen',
|
||||
cat: 'strider',
|
||||
max: 10,
|
||||
base: 250,
|
||||
studyTime: 15,
|
||||
},
|
||||
},
|
||||
},
|
||||
anchor: {
|
||||
id: 'anchor',
|
||||
name: 'Anchor',
|
||||
slot: 'rightLeg',
|
||||
description: 'Stand firm against any force. Your foundation is unshakeable.',
|
||||
capability: 'Increased stability. +100 max mana.',
|
||||
primaryManaType: 'stability',
|
||||
rawManaRegen: 0.35,
|
||||
autoConvertRate: 0.18,
|
||||
icon: 'Mountain',
|
||||
color: '#78716C', // Stone gray
|
||||
skills: {
|
||||
grounding: {
|
||||
name: 'Grounding',
|
||||
desc: 'Increased max mana and stability',
|
||||
cat: 'anchor',
|
||||
max: 10,
|
||||
base: 100,
|
||||
studyTime: 8,
|
||||
},
|
||||
endurance: {
|
||||
name: 'Endurance',
|
||||
desc: 'Reduced mana costs when below 50% mana',
|
||||
cat: 'anchor',
|
||||
max: 5,
|
||||
base: 200,
|
||||
studyTime: 12,
|
||||
},
|
||||
ironWill: {
|
||||
name: 'Iron Will',
|
||||
desc: 'Prevent mana drain effects',
|
||||
cat: 'anchor',
|
||||
max: 5,
|
||||
base: 250,
|
||||
studyTime: 15,
|
||||
req: { grounding: 5 },
|
||||
},
|
||||
stabilityMastery: {
|
||||
name: 'Stability Mastery',
|
||||
desc: 'Increased stability mana pool and regen',
|
||||
cat: 'anchor',
|
||||
max: 10,
|
||||
base: 250,
|
||||
studyTime: 15,
|
||||
},
|
||||
},
|
||||
},
|
||||
};
|
||||
Reference in New Issue
Block a user