d2d28887b1
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
250 lines
15 KiB
TypeScript
250 lines
15 KiB
TypeScript
// ─── Invocation/Pact Skill Tier Definitions ────────────────────────
|
|
// This file contains: Invocation, Pact Mastery
|
|
|
|
import { createPerk } from './utils';
|
|
import type { SkillTierDef } from '../types';
|
|
|
|
// ─── INVOCATION TALENT TREE (Invoker Attunement) ──────────────────────────────
|
|
// Base: Enhances spell invocation and guardian pacts
|
|
// Paths: A = The Summoner (Guardian Powers), B = The Channeler (Spell Amplification), C = The Pact Keeper (Pact Efficiency)
|
|
|
|
export const INVOCATION_TIERS: SkillTierDef[] = [
|
|
// TIER 1
|
|
{
|
|
tier: 1,
|
|
skillId: 'invocation',
|
|
name: 'Invocation',
|
|
multiplier: 1,
|
|
l5Perks: [
|
|
createPerk('inv_t1_l5_a', 'Guardian\'s Touch', '+10% guardian boon effectiveness', 'A',
|
|
{ type: 'multiplier', stat: 'guardianBoon', value: 0.10 }, false, 1.5, 5),
|
|
createPerk('inv_t1_l5_b', 'Amplified Cast', '+10% spell damage', 'B',
|
|
{ type: 'multiplier', stat: 'spellDamage', value: 0.10 }, false, 1.5, 5),
|
|
createPerk('inv_t1_l5_c', 'Swift Pact', '-10% pact ritual time', 'C',
|
|
{ type: 'multiplier', stat: 'pactTime', value: -0.10 }, false, 1.5, 5),
|
|
],
|
|
l10Perks: [
|
|
createPerk('inv_t1_l10_a', 'Guardian\'s Embrace', '+15% guardian boon effectiveness', 'A',
|
|
{ type: 'multiplier', stat: 'guardianBoon', value: 0.15 }, false, 2.0, 10),
|
|
createPerk('inv_t1_l10_b', 'Empowered Chant', '+15% spell damage', 'B',
|
|
{ type: 'multiplier', stat: 'spellDamage', value: 0.15 }, false, 2.0, 10),
|
|
createPerk('inv_t1_l10_c', 'Efficient Pact', '-15% pact mana cost', 'C',
|
|
{ type: 'multiplier', stat: 'pactCost', value: -0.15 }, false, 2.0, 10),
|
|
],
|
|
},
|
|
// TIER 2
|
|
{
|
|
tier: 2,
|
|
skillId: 'invocation_t2',
|
|
name: 'Greater Invocation',
|
|
multiplier: 10,
|
|
l5Perks: [
|
|
createPerk('inv_t2_l5_a', 'Guardian\'s Shield', 'Signed pacts grant +5% damage reduction', 'A',
|
|
{ type: 'special', specialId: 'guardianShield', specialDesc: 'Pacts grant damage reduction' }, false, 2.0, 5),
|
|
createPerk('inv_t2_l5_b', 'Spell Echo', 'Spells have 10% chance to cast twice', 'B',
|
|
{ type: 'special', specialId: 'spellEcho', specialDesc: 'Chance for double cast' }, false, 2.0, 5),
|
|
createPerk('inv_t2_l5_c', 'Pact Boon', 'Each pact signed reduces all pact costs by 5%', 'C',
|
|
{ type: 'special', specialId: 'pactBoon', specialDesc: 'Scaling pact cost reduction' }, false, 2.0, 5),
|
|
],
|
|
l10Perks: [
|
|
createPerk('inv_t2_l10_a', 'Guardian\'s Wrath', 'Signed pacts grant +10% damage vs guardian type', 'A',
|
|
{ type: 'special', specialId: 'guardianWrath', specialDesc: 'Pacts grant guardian damage' }, false, 2.5, 10),
|
|
createPerk('inv_t2_l10_b', 'Arcane Surge', 'Spells have 15% chance to cast twice', 'B',
|
|
{ type: 'special', specialId: 'arcaneSurge', specialDesc: 'Better chance for double cast' }, false, 2.5, 10),
|
|
createPerk('inv_t2_l10_c', 'Grand Pact', 'Pact multiplier increased by 0.2x', 'C',
|
|
{ type: 'special', specialId: 'grandPact', specialDesc: 'Increased pact multiplier' }, false, 2.5, 10),
|
|
],
|
|
},
|
|
// TIER 3
|
|
{
|
|
tier: 3,
|
|
skillId: 'invocation_t3',
|
|
name: 'Divine Invocation',
|
|
multiplier: 100,
|
|
l5Perks: [
|
|
createPerk('inv_t3_l5_a', 'Guardian\'s Dominance', 'Signed pacts grant +15% damage vs guardian type', 'A',
|
|
{ type: 'special', specialId: 'guardianDominance', specialDesc: 'Enhanced guardian damage' }, false, 3.0, 5),
|
|
createPerk('inv_t3_l5_b', 'Mystic Focus', 'Spells have 20% chance to cast twice', 'B',
|
|
{ type: 'special', specialId: 'mysticFocus', specialDesc: '20% chance double cast' }, false, 3.0, 5),
|
|
createPerk('inv_t3_l5_c', 'Pact Mastery', 'Pact multiplier increased by 0.3x', 'C',
|
|
{ type: 'special', specialId: 'pactMastery', specialDesc: 'Greater pact multiplier' }, false, 3.0, 5),
|
|
],
|
|
l10Perks: [
|
|
createPerk('inv_t3_l10_a', '[ELITE] GUARDIAN LORD', 'All guardian boons are doubled while their pact is signed', 'A',
|
|
{ type: 'special', specialId: 'guardianLord', specialDesc: '2x boons when pact signed' }, true, 5.0, 10),
|
|
createPerk('inv_t3_l10_b', '[ELITE] ARCANE AVALANCHE', 'Spells have 25% chance to cast 3 times simultaneously', 'B',
|
|
{ type: 'special', specialId: 'arcaneAvalanche', specialDesc: '25% chance triple cast' }, true, 5.0, 10),
|
|
createPerk('inv_t3_l10_c', '[ELITE] ETERNAL COVENANT', 'Signed pacts persist across loops', 'C',
|
|
{ type: 'special', specialId: 'eternalCovenant', specialDesc: 'Pacts never expire' }, true, 5.0, 10),
|
|
],
|
|
},
|
|
// TIER 4
|
|
{
|
|
tier: 4,
|
|
skillId: 'invocation_t4',
|
|
name: 'Mythic Invocation',
|
|
multiplier: 1000,
|
|
l5Perks: [
|
|
createPerk('inv_t4_l5_a', 'Titan\'s Protection', 'All signed pacts grant +10% max mana', 'A',
|
|
{ type: 'special', specialId: 'titansProtection', specialDesc: 'Pacts grant max mana' }, false, 4.0, 5),
|
|
createPerk('inv_t4_l5_b', 'Spell Fury', 'Casting speed increased by 25% for 5s after pact signed', 'B',
|
|
{ type: 'special', specialId: 'spellFury', specialDesc: 'Pact boosts cast speed' }, false, 4.0, 5),
|
|
createPerk('inv_t4_l5_c', 'Pact Amplification', 'Pact multiplier increased by 0.5x', 'C',
|
|
{ type: 'special', specialId: 'pactAmplification', specialDesc: 'Major pact multiplier boost' }, false, 4.0, 5),
|
|
],
|
|
l10Perks: [
|
|
createPerk('inv_t4_l10_a', 'Divine Aegis', 'All signed pacts grant +15% damage reduction', 'A',
|
|
{ type: 'special', specialId: 'divineAegis', specialDesc: 'Pacts grant more damage reduction' }, false, 5.0, 10),
|
|
createPerk('inv_t4_l10_b', 'Arcane Tempest', 'Spell damage increased by 25% for 10s after pact signed', 'B',
|
|
{ type: 'special', specialId: 'arcaneTempest', specialDesc: 'Pact boosts spell damage' }, false, 5.0, 10),
|
|
createPerk('inv_t4_l10_c', 'Supreme Pact', 'Pact multiplier increased by 0.75x', 'C',
|
|
{ type: 'special', specialId: 'supremePact', specialDesc: 'Massive pact multiplier boost' }, false, 5.0, 10),
|
|
],
|
|
},
|
|
// TIER 5
|
|
{
|
|
tier: 5,
|
|
skillId: 'invocation_t5',
|
|
name: 'Transcendent Invocation',
|
|
multiplier: 10000,
|
|
l5Perks: [
|
|
createPerk('inv_t5_l5_a', 'God\'s Shield', 'All signed pacts grant +20% damage reduction and +20% max mana', 'A',
|
|
{ type: 'special', specialId: 'godsShield', specialDesc: 'Pacts grant DR and max mana' }, false, 5.0, 5),
|
|
createPerk('inv_t5_l5_b', 'Reality Warp', 'Spells have 30% chance to cast 3 times simultaneously', 'B',
|
|
{ type: 'special', specialId: 'realityWarp', specialDesc: '30% chance triple cast' }, false, 5.0, 5),
|
|
createPerk('inv_t5_l5_c', 'Pact of the Gods', 'Pact multiplier increased by 1.0x', 'C',
|
|
{ type: 'special', specialId: 'pactOfGods', specialDesc: 'Massive 1.0x pact multiplier' }, false, 5.0, 5),
|
|
],
|
|
l10Perks: [
|
|
createPerk('inv_t5_l10_a', '[ELITE] ASCENDED GUARDIAN', 'All guardian boons are tripled and apply at double strength', 'A',
|
|
{ type: 'special', specialId: 'ascendedGuardian', specialDesc: '3x boons at 2x strength' }, true, 10.0, 10),
|
|
createPerk('inv_t5_l10_b', '[ELITE] ARCANE SINGULARITY', 'All spells cast 4 times simultaneously with 50% damage each', 'B',
|
|
{ type: 'special', specialId: 'arcaneSingularity', specialDesc: '4x cast at 50% damage' }, true, 10.0, 10),
|
|
createPerk('inv_t5_l10_c', '[ELITE] OMNIPACT', 'All pacts are permanently signed and multiplier is doubled', 'C',
|
|
{ type: 'special', specialId: 'omnipact', specialDesc: 'All pacts signed, 2x multiplier' }, true, 10.0, 10),
|
|
],
|
|
},
|
|
];
|
|
|
|
// ─── PACT MASTERY TALENT TREE (Invoker Attunement) ───────────────────────────
|
|
// Base: Enhances pact signing and guardian bonuses
|
|
// Paths: A = The Binder (Pact Power), B = The Harvester (Boon Collection), C = The Soul Forge (Soul Effects)
|
|
|
|
export const PACT_MASTERY_TIERS: SkillTierDef[] = [
|
|
// TIER 1
|
|
{
|
|
tier: 1,
|
|
skillId: 'pactMastery',
|
|
name: 'Pact Mastery',
|
|
multiplier: 1,
|
|
l5Perks: [
|
|
createPerk('pm_t1_l5_a', 'Pact Bond', '+10% pact multiplier', 'A',
|
|
{ type: 'multiplier', stat: 'pactMultiplier', value: 0.10 }, false, 1.5, 5),
|
|
createPerk('pm_t1_l5_b', 'Boon Hunter', '+1% boon effectiveness per pact signed', 'B',
|
|
{ type: 'special', specialId: 'boonHunter', specialDesc: 'Scaling boon effectiveness' }, false, 1.5, 5),
|
|
createPerk('pm_t1_l5_c', 'Soul Tether', 'Signed pacts restore 5% mana when entering combat', 'C',
|
|
{ type: 'special', specialId: 'soulTether', specialDesc: 'Pacts restore mana on combat' }, false, 1.5, 5),
|
|
],
|
|
l10Perks: [
|
|
createPerk('pm_t1_l10_a', 'Strong Bond', '+15% pact multiplier', 'A',
|
|
{ type: 'multiplier', stat: 'pactMultiplier', value: 0.15 }, false, 2.0, 10),
|
|
createPerk('pm_t1_l10_b', 'Boon Collector', '+2% boon effectiveness per pact signed', 'B',
|
|
{ type: 'special', specialId: 'boonCollector', specialDesc: 'Better scaling boon effectiveness' }, false, 2.0, 10),
|
|
createPerk('pm_t1_l10_c', 'Soul Link', 'Signed pacts restore 10% mana when entering combat', 'C',
|
|
{ type: 'special', specialId: 'soulLink', specialDesc: 'Better mana restore from pacts' }, false, 2.0, 10),
|
|
],
|
|
},
|
|
// TIER 2
|
|
{
|
|
tier: 2,
|
|
skillId: 'pactMastery_t2',
|
|
name: 'Greater Pact Mastery',
|
|
multiplier: 10,
|
|
l5Perks: [
|
|
createPerk('pm_t2_l5_a', 'Unbreakable Bond', '+25% pact multiplier', 'A',
|
|
{ type: 'multiplier', stat: 'pactMultiplier', value: 0.25 }, false, 2.0, 5),
|
|
createPerk('pm_t2_l5_b', 'Boon Saturation', 'Each boon type grants +5% to all stats', 'B',
|
|
{ type: 'special', specialId: 'boonSaturation', specialDesc: 'Boons grant all stat bonuses' }, false, 2.0, 5),
|
|
createPerk('pm_t2_l5_c', 'Soul Harvest', 'Killing enemies restores 1% mana per signed pact', 'C',
|
|
{ type: 'special', specialId: 'soulHarvest', specialDesc: 'Kills restore mana based on pacts' }, false, 2.0, 5),
|
|
],
|
|
l10Perks: [
|
|
createPerk('pm_t2_l10_a', 'Ultimate Bond', '+35% pact multiplier', 'A',
|
|
{ type: 'multiplier', stat: 'pactMultiplier', value: 0.35 }, false, 2.5, 10),
|
|
createPerk('pm_t2_l10_b', 'Boon Overflow', 'Boons have 10% chance to apply twice', 'B',
|
|
{ type: 'special', specialId: 'boonOverflow', specialDesc: 'Chance for double boon effect' }, false, 2.5, 10),
|
|
createPerk('pm_t2_l10_c', 'Soul Siphon', 'Dealing damage restores 0.5% mana per signed pact', 'C',
|
|
{ type: 'special', specialId: 'soulSiphon', specialDesc: 'Damage restores mana from pacts' }, false, 2.5, 10),
|
|
],
|
|
},
|
|
// TIER 3
|
|
{
|
|
tier: 3,
|
|
skillId: 'pactMastery_t3',
|
|
name: 'Divine Pact Mastery',
|
|
multiplier: 100,
|
|
l5Perks: [
|
|
createPerk('pm_t3_l5_a', 'Godly Bond', '+50% pact multiplier', 'A',
|
|
{ type: 'multiplier', stat: 'pactMultiplier', value: 0.50 }, false, 3.0, 5),
|
|
createPerk('pm_t3_l5_b', 'Boon Symphony', 'Each active boon increases others by 5%', 'B',
|
|
{ type: 'special', specialId: 'boonSymphony', specialDesc: 'Boons amplify each other' }, false, 3.0, 5),
|
|
createPerk('pm_t3_l5_c', 'Soul Forge', 'Signed pacts increase max mana by 5% each', 'C',
|
|
{ type: 'special', specialId: 'soulForge', specialDesc: 'Pacts grant max mana' }, false, 3.0, 5),
|
|
],
|
|
l10Perks: [
|
|
createPerk('pm_t3_l10_a', '[ELITE] ETERNAL BOND', 'Pact multiplier is doubled and applies to all stats', 'A',
|
|
{ type: 'special', specialId: 'eternalBond', specialDesc: '2x pact multiplier, all stats' }, true, 5.0, 10),
|
|
createPerk('pm_t3_l10_b', '[ELITE] BOON GOD', 'All boons are 3x effective and apply at double strength', 'B',
|
|
{ type: 'special', specialId: 'boonGod', specialDesc: '3x boon effectiveness' }, true, 5.0, 10),
|
|
createPerk('pm_t3_l10_c', '[ELITE] SOUL ASCENSION', 'Each signed pact grants +10% to all damage types', 'C',
|
|
{ type: 'special', specialId: 'soulAscension', specialDesc: 'Pacts grant all damage' }, true, 5.0, 10),
|
|
],
|
|
},
|
|
// TIER 4
|
|
{
|
|
tier: 4,
|
|
skillId: 'pactMastery_t4',
|
|
name: 'Mythic Pact Mastery',
|
|
multiplier: 1000,
|
|
l5Perks: [
|
|
createPerk('pm_t4_l5_a', 'Titan\'s Bond', '+75% pact multiplier', 'A',
|
|
{ type: 'multiplier', stat: 'pactMultiplier', value: 0.75 }, false, 4.0, 5),
|
|
createPerk('pm_t4_l5_b', 'Boon Dominance', 'Boons also grant +10% crit chance', 'B',
|
|
{ type: 'special', specialId: 'boonDominance', specialDesc: 'Boons grant crit chance' }, false, 4.0, 5),
|
|
createPerk('pm_t4_l5_c', 'Soul Empowerment', 'Signed pacts increase spell damage by 10% each', 'C',
|
|
{ type: 'special', specialId: 'soulEmpowerment', specialDesc: 'Pacts grant spell damage' }, false, 4.0, 5),
|
|
],
|
|
l10Perks: [
|
|
createPerk('pm_t4_l10_a', 'Divine Bond', '+100% pact multiplier', 'A',
|
|
{ type: 'multiplier', stat: 'pactMultiplier', value: 1.0 }, false, 5.0, 10),
|
|
createPerk('pm_t4_l10_b', 'Boon Paragon', 'Boons also grant +15% cast speed', 'B',
|
|
{ type: 'special', specialId: 'boonParagon', specialDesc: 'Boons grant cast speed' }, false, 5.0, 10),
|
|
createPerk('pm_t4_l10_c', 'Soul Transcendence', 'Signed pacts increase regen by 10% each', 'C',
|
|
{ type: 'special', specialId: 'soulTranscendence', specialDesc: 'Pacts grant regen' }, false, 5.0, 10),
|
|
],
|
|
},
|
|
// TIER 5
|
|
{
|
|
tier: 5,
|
|
skillId: 'pactMastery_t5',
|
|
name: 'Transcendent Pact Mastery',
|
|
multiplier: 10000,
|
|
l5Perks: [
|
|
createPerk('pm_t5_l5_a', 'God\'s Bond', '+150% pact multiplier', 'A',
|
|
{ type: 'multiplier', stat: 'pactMultiplier', value: 1.50 }, false, 5.0, 5),
|
|
createPerk('pm_t5_l5_b', 'Boon Omniscience', 'Boons also grant +20% to all damage types', 'B',
|
|
{ type: 'special', specialId: 'boonOmniscience', specialDesc: 'Boons grant all damage' }, false, 5.0, 5),
|
|
createPerk('pm_t5_l5_c', 'Soul Omnipotence', 'Signed pacts increase all stats by 15% each', 'C',
|
|
{ type: 'special', specialId: 'soulOmnipotence', specialDesc: 'Pacts grant all stats' }, false, 5.0, 5),
|
|
],
|
|
l10Perks: [
|
|
createPerk('pm_t5_l10_a', '[ELITE] PACT OF THE GODS', 'Pact multiplier is 5x and applies to everything', 'A',
|
|
{ type: 'special', specialId: 'pactOfGods2', specialDesc: '5x pact multiplier, universal' }, true, 10.0, 10),
|
|
createPerk('pm_t5_l10_b', '[ELITE] BOON SINGULARITY', 'All boons are 5x effective and never expire', 'B',
|
|
{ type: 'special', specialId: 'boonSingularity', specialDesc: '5x boons, permanent' }, true, 10.0, 10),
|
|
createPerk('pm_t5_l10_c', '[ELITE] SOUL OMNIPOTENCE', 'Each pact grants +25% to ALL stats permanently', 'C',
|
|
{ type: 'special', specialId: 'soulOmnipotenceElite', specialDesc: 'Pacts grant 25% all stats' }, true, 10.0, 10),
|
|
],
|
|
},
|
|
];
|