feature: add new composite and exotic mana types (ticket #202)
Build and Publish Mana Loop Docker Image / build-and-publish (push) Failing after 17s
Build and Publish Mana Loop Docker Image / build-and-publish (push) Failing after 17s
This commit is contained in:
@@ -32,10 +32,18 @@ export const ELEMENTS: Record<string, ElementDef> = {
|
||||
sand: { name: "Sand", sym: "⏳", color: "#D4AC0D", glow: "#D4AC0D40", cat: "composite", recipe: ["earth", "water"] },
|
||||
lightning: { name: "Lightning", sym: "⚡", color: "#FFEB3B", glow: "#FFEB3B40", cat: "composite", recipe: ["fire", "air"] },
|
||||
|
||||
frost: { name: "Frost", sym: "❄️", color: "#A8D8EA", glow: "#A8D8EA40", cat: "composite", recipe: ["air", "water"] },
|
||||
blackflame: { name: "BlackFlame", sym: "🌋", color: "#8B2500", glow: "#8B250040", cat: "composite", recipe: ["dark", "fire"] },
|
||||
radiantflames: { name: "Radiant Flames", sym: "🌟", color: "#FFAA33", glow: "#FFAA3340", cat: "composite", recipe: ["light", "fire"] },
|
||||
miasma: { name: "Miasma", sym: "☁️", color: "#6B8E23", glow: "#6B8E2340", cat: "composite", recipe: ["air", "death"] },
|
||||
shadowglass: { name: "Shadow Glass", sym: "🖤", color: "#2C2C54", glow: "#2C2C5440", cat: "composite", recipe: ["earth", "dark"] },
|
||||
// Exotic Elements
|
||||
crystal: { name: "Crystal", sym: "💎", color: "#85C1E9", glow: "#85C1E940", cat: "exotic", recipe: ["sand", "sand", "light"] },
|
||||
stellar: { name: "Stellar", sym: "⭐", color: "#F0E68C", glow: "#F0E68C40", cat: "exotic", recipe: ["fire", "fire", "light"] },
|
||||
stellar: { name: "Stellar", sym: "⭐", color: "#F0E68C", glow: "#F0E68C40", cat: "exotic", recipe: ["plasma", "light", "fire"] },
|
||||
void: { name: "Void", sym: "🕳️", color: "#4A235A", glow: "#4A235A40", cat: "exotic", recipe: ["dark", "dark", "death"] },
|
||||
soul: { name: "Soul", sym: "💫", color: "#E8D5F5", glow: "#E8D5F540", cat: "exotic", recipe: ["light", "dark", "transference"] },
|
||||
time: { name: "Time", sym: "⏱️", color: "#C5B99A", glow: "#C5B99A40", cat: "exotic", recipe: ["soul", "sand", "transference"] },
|
||||
plasma: { name: "Plasma", sym: "⚡", color: "#FF6B9D", glow: "#FF6B9D40", cat: "exotic", recipe: ["lightning", "fire", "transference"] },
|
||||
};
|
||||
|
||||
// NOTE: Life, Blood, Wood, Mental, and Force mana types have been removed.
|
||||
@@ -50,6 +58,11 @@ export const ELEMENT_OPPOSITES: Record<string, string> = {
|
||||
air: 'earth', earth: 'air',
|
||||
light: 'dark', dark: 'light',
|
||||
lightning: 'earth', // Lightning is weak to earth (grounding)
|
||||
frost: 'fire', // Frost is weak to fire (melting)
|
||||
blackflame: 'light', // BlackFlame is weak to light (purification)
|
||||
radiantflames: 'dark', // Radiant Flames are weak to dark (extinguishing)
|
||||
miasma: 'air', // Miasma is weak to air (dispersion)
|
||||
shadowglass: 'light', // Shadow Glass is weak to light (shattering)
|
||||
};
|
||||
|
||||
// ─── Element Icon Mapping (Lucide Icons) ──────────────────────────────────────
|
||||
@@ -71,6 +84,14 @@ export const ELEMENT_ICON_NAMES: Record<string, string> = {
|
||||
stellar: 'Star',
|
||||
void: 'CircleDot',
|
||||
raw: 'Circle',
|
||||
frost: 'Snowflake',
|
||||
blackflame: 'Flame',
|
||||
radiantflames: 'Sun',
|
||||
miasma: 'Cloud',
|
||||
shadowglass: 'EyeOff',
|
||||
soul: 'Ghost',
|
||||
time: 'Clock',
|
||||
plasma: 'Zap',
|
||||
};
|
||||
|
||||
// ─── Base Unlocked Elements ───────────────────────────────────────────────────
|
||||
|
||||
@@ -0,0 +1,72 @@
|
||||
// ─── BlackFlame Spells ───────────────────────────────────────────────────────
|
||||
// BlackFlame magic - Dark + Fire compound, curse/DoT focus
|
||||
import type { SpellDef } from '../../types';
|
||||
import { elemCost } from '../elements';
|
||||
|
||||
export const BLACKFLAME_SPELLS: Record<string, SpellDef> = {
|
||||
// Tier 1 - Basic BlackFlame
|
||||
blackFire: {
|
||||
name: "Black Fire",
|
||||
elem: "blackflame",
|
||||
dmg: 12,
|
||||
cost: elemCost("blackflame", 2),
|
||||
tier: 1,
|
||||
castSpeed: 2.2,
|
||||
unlock: 200,
|
||||
studyTime: 3,
|
||||
desc: "Dark fire that burns with cursed flames. Applies curse DoT.",
|
||||
effects: [{ type: 'burn', value: 0.15 }, { type: 'curse', value: 0.1 }]
|
||||
},
|
||||
shadowEmber: {
|
||||
name: "Shadow Ember",
|
||||
elem: "blackflame",
|
||||
dmg: 20,
|
||||
cost: elemCost("blackflame", 3),
|
||||
tier: 1,
|
||||
castSpeed: 1.8,
|
||||
unlock: 320,
|
||||
studyTime: 4,
|
||||
desc: "Embers of shadow fire. Reduces enemy resistances.",
|
||||
effects: [{ type: 'curse', value: 0.15 }]
|
||||
},
|
||||
|
||||
// Tier 2 - Advanced BlackFlame
|
||||
darkInferno: {
|
||||
name: "Dark Inferno",
|
||||
elem: "blackflame",
|
||||
dmg: 38,
|
||||
cost: elemCost("blackflame", 6),
|
||||
tier: 2,
|
||||
castSpeed: 1.3,
|
||||
unlock: 1000,
|
||||
studyTime: 9,
|
||||
desc: "A cursed inferno that weakens and burns.",
|
||||
effects: [{ type: 'burn', value: 0.25 }, { type: 'curse', value: 0.2 }]
|
||||
},
|
||||
umbralBlaze: {
|
||||
name: "Umbral Blaze",
|
||||
elem: "blackflame",
|
||||
dmg: 55,
|
||||
cost: elemCost("blackflame", 8),
|
||||
tier: 2,
|
||||
castSpeed: 1,
|
||||
unlock: 1500,
|
||||
studyTime: 12,
|
||||
desc: "Flames from the abyss. Stacks curse on enemies.",
|
||||
effects: [{ type: 'curse', value: 0.3 }, { type: 'burn', value: 0.2 }]
|
||||
},
|
||||
|
||||
// Tier 3 - Master BlackFlame
|
||||
hellfireCurse: {
|
||||
name: "Hellfire Curse",
|
||||
elem: "blackflame",
|
||||
dmg: 140,
|
||||
cost: elemCost("blackflame", 20),
|
||||
tier: 3,
|
||||
castSpeed: 0.5,
|
||||
unlock: 15000,
|
||||
studyTime: 30,
|
||||
desc: "Ultimate cursed flames. Devastating DoT and resistance shred.",
|
||||
effects: [{ type: 'burn', value: 0.35 }, { type: 'curse', value: 0.35 }]
|
||||
},
|
||||
};
|
||||
@@ -0,0 +1,74 @@
|
||||
// ─── Frost Spells ────────────────────────────────────────────────────────────
|
||||
// Frost magic - Air + Water compound, freeze/slow focus
|
||||
import type { SpellDef } from '../../types';
|
||||
import { elemCost } from '../elements';
|
||||
|
||||
export const FROST_SPELLS: Record<string, SpellDef> = {
|
||||
// Tier 1 - Basic Frost
|
||||
frostBite: {
|
||||
name: "Frost Bite",
|
||||
elem: "frost",
|
||||
dmg: 10,
|
||||
cost: elemCost("frost", 2),
|
||||
tier: 1,
|
||||
castSpeed: 2.5,
|
||||
unlock: 180,
|
||||
studyTime: 3,
|
||||
desc: "A chilling bite of frost. Fast casting with freeze chance.",
|
||||
effects: [{ type: 'freeze', value: 0.15 }]
|
||||
},
|
||||
iceShard: {
|
||||
name: "Ice Shard",
|
||||
elem: "frost",
|
||||
dmg: 18,
|
||||
cost: elemCost("frost", 3),
|
||||
tier: 1,
|
||||
castSpeed: 2,
|
||||
unlock: 250,
|
||||
studyTime: 4,
|
||||
desc: "A sharp shard of ice. Moderate speed, freeze effect.",
|
||||
effects: [{ type: 'freeze', value: 0.2 }]
|
||||
},
|
||||
|
||||
// Tier 2 - Advanced Frost
|
||||
frostNova: {
|
||||
name: "Frost Nova",
|
||||
elem: "frost",
|
||||
dmg: 30,
|
||||
cost: elemCost("frost", 5),
|
||||
tier: 2,
|
||||
castSpeed: 1.5,
|
||||
unlock: 800,
|
||||
studyTime: 8,
|
||||
desc: "An explosion of freezing cold. Slows all enemies.",
|
||||
isAoe: true,
|
||||
aoeTargets: 3,
|
||||
effects: [{ type: 'slow', value: 0.3 }, { type: 'freeze', value: 0.15 }]
|
||||
},
|
||||
glacialSpike: {
|
||||
name: "Glacial Spike",
|
||||
elem: "frost",
|
||||
dmg: 45,
|
||||
cost: elemCost("frost", 7),
|
||||
tier: 2,
|
||||
castSpeed: 1.2,
|
||||
unlock: 1200,
|
||||
studyTime: 10,
|
||||
desc: "A massive spike of ice. High damage with guaranteed freeze.",
|
||||
effects: [{ type: 'freeze', value: 0.35 }]
|
||||
},
|
||||
|
||||
// Tier 3 - Master Frost
|
||||
absoluteZero: {
|
||||
name: "Absolute Zero",
|
||||
elem: "frost",
|
||||
dmg: 120,
|
||||
cost: elemCost("frost", 18),
|
||||
tier: 3,
|
||||
castSpeed: 0.6,
|
||||
unlock: 12000,
|
||||
studyTime: 28,
|
||||
desc: "Freeze the very air. Devastating cold that stops all movement.",
|
||||
effects: [{ type: 'freeze', value: 0.5 }, { type: 'slow', value: 0.4 }]
|
||||
},
|
||||
};
|
||||
@@ -14,7 +14,7 @@ export const LEGENDARY_SPELLS: Record<string, SpellDef> = {
|
||||
castSpeed: 0.4,
|
||||
unlock: 50000,
|
||||
studyTime: 48,
|
||||
desc: "A nova of stellar energy."
|
||||
desc: "A nova of stellar energy. Blinding and devastating."
|
||||
},
|
||||
voidCollapse: {
|
||||
name: "Void Collapse",
|
||||
|
||||
@@ -0,0 +1,76 @@
|
||||
// ─── Miasma Spells ────────────────────────────────────────────────────────────
|
||||
// Miasma magic - Air + Death compound, toxic/plague/armor corrosion focus
|
||||
import type { SpellDef } from '../../types';
|
||||
import { elemCost } from '../elements';
|
||||
|
||||
export const MIASMA_SPELLS: Record<string, SpellDef> = {
|
||||
// Tier 1 - Basic Miasma
|
||||
toxicCloud: {
|
||||
name: "Toxic Cloud",
|
||||
elem: "miasma",
|
||||
dmg: 9,
|
||||
cost: elemCost("miasma", 2),
|
||||
tier: 1,
|
||||
castSpeed: 2.8,
|
||||
unlock: 190,
|
||||
studyTime: 3,
|
||||
desc: "A cloud of toxic gas. Spreads to nearby enemies.",
|
||||
effects: [{ type: 'poison', value: 0.12 }]
|
||||
},
|
||||
plagueTouch: {
|
||||
name: "Plague Touch",
|
||||
elem: "miasma",
|
||||
dmg: 16,
|
||||
cost: elemCost("miasma", 3),
|
||||
tier: 1,
|
||||
castSpeed: 2.2,
|
||||
unlock: 280,
|
||||
studyTime: 4,
|
||||
desc: "Touch of plague. Corrodes armor and poisons.",
|
||||
effects: [{ type: 'poison', value: 0.15 }, { type: 'armor_corrode', value: 0.1 }]
|
||||
},
|
||||
|
||||
// Tier 2 - Advanced Miasma
|
||||
miasmaBurst: {
|
||||
name: "Miasma Burst",
|
||||
elem: "miasma",
|
||||
dmg: 32,
|
||||
cost: elemCost("miasma", 5),
|
||||
tier: 2,
|
||||
castSpeed: 1.6,
|
||||
unlock: 900,
|
||||
studyTime: 8,
|
||||
desc: "A burst of toxic miasma. Hits all enemies in swarm rooms.",
|
||||
isAoe: true,
|
||||
aoeTargets: 4,
|
||||
effects: [{ type: 'poison', value: 0.2 }, { type: 'armor_corrode', value: 0.15 }]
|
||||
},
|
||||
pestilence: {
|
||||
name: "Pestilence",
|
||||
elem: "miasma",
|
||||
dmg: 48,
|
||||
cost: elemCost("miasma", 7),
|
||||
tier: 2,
|
||||
castSpeed: 1.2,
|
||||
unlock: 1300,
|
||||
studyTime: 11,
|
||||
desc: "Spreading plague. Reduces armor and stacks poison.",
|
||||
effects: [{ type: 'poison', value: 0.25 }, { type: 'armor_corrode', value: 0.2 }]
|
||||
},
|
||||
|
||||
// Tier 3 - Master Miasma
|
||||
deathMiasma: {
|
||||
name: "Death Miasma",
|
||||
elem: "miasma",
|
||||
dmg: 130,
|
||||
cost: elemCost("miasma", 18),
|
||||
tier: 3,
|
||||
castSpeed: 0.5,
|
||||
unlock: 14000,
|
||||
studyTime: 28,
|
||||
desc: "Ultimate toxic cloud. Melts armor and spreads deadly plague.",
|
||||
isAoe: true,
|
||||
aoeTargets: 5,
|
||||
effects: [{ type: 'poison', value: 0.35 }, { type: 'armor_corrode', value: 0.3 }]
|
||||
},
|
||||
};
|
||||
@@ -0,0 +1,34 @@
|
||||
// ─── Plasma Spells ────────────────────────────────────────────────────────────
|
||||
// Plasma magic - Lightning + Fire + Transference exotic, high raw damage
|
||||
import type { SpellDef } from '../../types';
|
||||
import { elemCost } from '../elements';
|
||||
|
||||
export const PLASMA_SPELLS: Record<string, SpellDef> = {
|
||||
// Tier 4 - Plasma Spells (raw energy devastation)
|
||||
plasmaBolt: {
|
||||
name: "Plasma Bolt",
|
||||
elem: "plasma",
|
||||
dmg: 320,
|
||||
cost: elemCost("plasma", 10),
|
||||
tier: 4,
|
||||
castSpeed: 0.65,
|
||||
unlock: 40000,
|
||||
studyTime: 38,
|
||||
desc: "A bolt of superheated plasma. Extremely high raw damage.",
|
||||
effects: [{ type: 'raw_damage', value: 0.3 }]
|
||||
},
|
||||
plasmaStorm: {
|
||||
name: "Plasma Storm",
|
||||
elem: "plasma",
|
||||
dmg: 600,
|
||||
cost: elemCost("plasma", 18),
|
||||
tier: 4,
|
||||
castSpeed: 0.35,
|
||||
unlock: 75000,
|
||||
studyTime: 55,
|
||||
desc: "A storm of plasma energy. Devastating area damage.",
|
||||
isAoe: true,
|
||||
aoeTargets: 4,
|
||||
effects: [{ type: 'raw_damage', value: 0.4 }, { type: 'chain', value: 2 }]
|
||||
},
|
||||
};
|
||||
@@ -0,0 +1,74 @@
|
||||
// ─── Radiant Flames Spells ───────────────────────────────────────────────────
|
||||
// Radiant Flames magic - Light + Fire compound, blinding/heavy DoT focus
|
||||
import type { SpellDef } from '../../types';
|
||||
import { elemCost } from '../elements';
|
||||
|
||||
export const RADIANTFLAMES_SPELLS: Record<string, SpellDef> = {
|
||||
// Tier 1 - Basic Radiant Flames
|
||||
radiantBurst: {
|
||||
name: "Radiant Burst",
|
||||
elem: "radiantflames",
|
||||
dmg: 14,
|
||||
cost: elemCost("radiantflames", 2),
|
||||
tier: 1,
|
||||
castSpeed: 2,
|
||||
unlock: 210,
|
||||
studyTime: 3,
|
||||
desc: "A burst of blinding holy fire. Chance to blind enemies.",
|
||||
effects: [{ type: 'burn', value: 0.18 }, { type: 'blind', value: 0.1 }]
|
||||
},
|
||||
holyFlame: {
|
||||
name: "Holy Flame",
|
||||
elem: "radiantflames",
|
||||
dmg: 22,
|
||||
cost: elemCost("radiantflames", 3),
|
||||
tier: 1,
|
||||
castSpeed: 1.7,
|
||||
unlock: 340,
|
||||
studyTime: 4,
|
||||
desc: "Sacred fire that sears the unholy. Heavy burn effect.",
|
||||
effects: [{ type: 'burn', value: 0.22 }]
|
||||
},
|
||||
|
||||
// Tier 2 - Advanced Radiant Flames
|
||||
blindingSun: {
|
||||
name: "Blinding Sun",
|
||||
elem: "radiantflames",
|
||||
dmg: 40,
|
||||
cost: elemCost("radiantflames", 6),
|
||||
tier: 2,
|
||||
castSpeed: 1.2,
|
||||
unlock: 1100,
|
||||
studyTime: 10,
|
||||
desc: "Summon a miniature sun. Blinds and burns all enemies.",
|
||||
isAoe: true,
|
||||
aoeTargets: 3,
|
||||
effects: [{ type: 'blind', value: 0.25 }, { type: 'burn', value: 0.25 }]
|
||||
},
|
||||
purifyingFire: {
|
||||
name: "Purifying Fire",
|
||||
elem: "radiantflames",
|
||||
dmg: 58,
|
||||
cost: elemCost("radiantflames", 8),
|
||||
tier: 2,
|
||||
castSpeed: 0.9,
|
||||
unlock: 1600,
|
||||
studyTime: 12,
|
||||
desc: "Holy flames that purify. Highest burn damage.",
|
||||
effects: [{ type: 'burn', value: 0.35 }]
|
||||
},
|
||||
|
||||
// Tier 3 - Master Radiant Flames
|
||||
supernovaBlast: {
|
||||
name: "Supernova Blast",
|
||||
elem: "radiantflames",
|
||||
dmg: 150,
|
||||
cost: elemCost("radiantflames", 20),
|
||||
tier: 3,
|
||||
castSpeed: 0.5,
|
||||
unlock: 16000,
|
||||
studyTime: 30,
|
||||
desc: "Unleash the fury of a supernova. Blinds and incinerates.",
|
||||
effects: [{ type: 'blind', value: 0.4 }, { type: 'burn', value: 0.4 }]
|
||||
},
|
||||
};
|
||||
@@ -0,0 +1,74 @@
|
||||
// ─── Shadow Glass Spells ─────────────────────────────────────────────────────
|
||||
// Shadow Glass magic - Earth + Dark compound, spike/armor pierce focus
|
||||
import type { SpellDef } from '../../types';
|
||||
import { elemCost } from '../elements';
|
||||
|
||||
export const SHADOWGLASS_SPELLS: Record<string, SpellDef> = {
|
||||
// Tier 1 - Basic Shadow Glass
|
||||
shadowSpike: {
|
||||
name: "Shadow Spike",
|
||||
elem: "shadowglass",
|
||||
dmg: 15,
|
||||
cost: elemCost("shadowglass", 2),
|
||||
tier: 1,
|
||||
castSpeed: 2,
|
||||
unlock: 220,
|
||||
studyTime: 3,
|
||||
desc: "A spike of shadow glass erupts from the ground. Sharp and fast.",
|
||||
effects: [{ type: 'armor_pierce', value: 0.2 }]
|
||||
},
|
||||
darkShard: {
|
||||
name: "Dark Shard",
|
||||
elem: "shadowglass",
|
||||
dmg: 24,
|
||||
cost: elemCost("shadowglass", 3),
|
||||
tier: 1,
|
||||
castSpeed: 1.6,
|
||||
unlock: 360,
|
||||
studyTime: 4,
|
||||
desc: "A shard of pure shadow glass. High armor pierce.",
|
||||
effects: [{ type: 'armor_pierce', value: 0.28 }]
|
||||
},
|
||||
|
||||
// Tier 2 - Advanced Shadow Glass
|
||||
obsidianStorm: {
|
||||
name: "Obsidian Storm",
|
||||
elem: "shadowglass",
|
||||
dmg: 42,
|
||||
cost: elemCost("shadowglass", 6),
|
||||
tier: 2,
|
||||
castSpeed: 1.3,
|
||||
unlock: 1000,
|
||||
studyTime: 9,
|
||||
desc: "A storm of shadow glass shards. Hits multiple enemies.",
|
||||
isAoe: true,
|
||||
aoeTargets: 3,
|
||||
effects: [{ type: 'armor_pierce', value: 0.3 }]
|
||||
},
|
||||
voidBlade: {
|
||||
name: "Void Blade",
|
||||
elem: "shadowglass",
|
||||
dmg: 60,
|
||||
cost: elemCost("shadowglass", 9),
|
||||
tier: 2,
|
||||
castSpeed: 0.9,
|
||||
unlock: 1700,
|
||||
studyTime: 12,
|
||||
desc: "A blade of condensed shadow. Ignores most armor.",
|
||||
effects: [{ type: 'armor_pierce', value: 0.42 }]
|
||||
},
|
||||
|
||||
// Tier 3 - Master Shadow Glass
|
||||
shadowGlassCataclysm: {
|
||||
name: "Shadow Glass Cataclysm",
|
||||
elem: "shadowglass",
|
||||
dmg: 155,
|
||||
cost: elemCost("shadowglass", 20),
|
||||
tier: 3,
|
||||
castSpeed: 0.5,
|
||||
unlock: 17000,
|
||||
studyTime: 30,
|
||||
desc: "Shatter the earth into a storm of shadow glass. Ignores all armor.",
|
||||
effects: [{ type: 'armor_pierce', value: 0.55 }]
|
||||
},
|
||||
};
|
||||
@@ -0,0 +1,32 @@
|
||||
// ─── Soul Spells ──────────────────────────────────────────────────────────────
|
||||
// Soul magic - Light + Dark + Transference exotic, bypasses defenses
|
||||
import type { SpellDef } from '../../types';
|
||||
import { elemCost } from '../elements';
|
||||
|
||||
export const SOUL_SPELLS: Record<string, SpellDef> = {
|
||||
// Tier 4 - Soul Spells (defense bypass)
|
||||
soulPierce: {
|
||||
name: "Soul Pierce",
|
||||
elem: "soul",
|
||||
dmg: 350,
|
||||
cost: elemCost("soul", 10),
|
||||
tier: 4,
|
||||
castSpeed: 0.6,
|
||||
unlock: 30000,
|
||||
studyTime: 36,
|
||||
desc: "Strike at the soul. Bypasses all armor and resistances.",
|
||||
effects: [{ type: 'defense_bypass', value: 1.0 }]
|
||||
},
|
||||
spiritBlast: {
|
||||
name: "Spirit Blast",
|
||||
elem: "soul",
|
||||
dmg: 550,
|
||||
cost: elemCost("soul", 16),
|
||||
tier: 4,
|
||||
castSpeed: 0.4,
|
||||
unlock: 60000,
|
||||
studyTime: 50,
|
||||
desc: "A blast of pure soul energy. Ignores all defenses entirely.",
|
||||
effects: [{ type: 'defense_bypass', value: 1.0 }, { type: 'resist_ignore', value: 0.5 }]
|
||||
},
|
||||
};
|
||||
@@ -0,0 +1,32 @@
|
||||
// ─── Time Spells ──────────────────────────────────────────────────────────────
|
||||
// Time magic - Soul + Sand + Transference exotic, slow/temporal focus
|
||||
import type { SpellDef } from '../../types';
|
||||
import { elemCost } from '../elements';
|
||||
|
||||
export const TIME_SPELLS: Record<string, SpellDef> = {
|
||||
// Tier 4 - Time Spells (temporal manipulation)
|
||||
temporalWarp: {
|
||||
name: "Temporal Warp",
|
||||
elem: "time",
|
||||
dmg: 280,
|
||||
cost: elemCost("time", 10),
|
||||
tier: 4,
|
||||
castSpeed: 0.7,
|
||||
unlock: 45000,
|
||||
studyTime: 40,
|
||||
desc: "Warp time around enemies. Slows speed, reduces dodge.",
|
||||
effects: [{ type: 'slow', value: 0.5 }, { type: 'temporal_dodge_reduction', value: 0.4 }]
|
||||
},
|
||||
chronoStasis: {
|
||||
name: "Chrono Stasis",
|
||||
elem: "time",
|
||||
dmg: 500,
|
||||
cost: elemCost("time", 18),
|
||||
tier: 4,
|
||||
castSpeed: 0.35,
|
||||
unlock: 70000,
|
||||
studyTime: 55,
|
||||
desc: "Freeze enemies in time. Stops mage room recast entirely.",
|
||||
effects: [{ type: 'slow', value: 0.7 }, { type: 'temporal_dodge_reduction', value: 0.6 }, { type: 'mage_lock', value: 1.0 }]
|
||||
},
|
||||
};
|
||||
@@ -12,6 +12,14 @@ export { LEGENDARY_SPELLS } from './spells-modules/legendary-spells';
|
||||
export { ENCHANTMENT_SPELLS } from './spells-modules/enchantment-spells';
|
||||
export { COMPOUND_SPELLS } from './spells-modules/compound-spells';
|
||||
export { UTILITY_SPELLS } from './spells-modules/utility-spells';
|
||||
export { FROST_SPELLS } from './spells-modules/frost-spells';
|
||||
export { BLACKFLAME_SPELLS } from './spells-modules/blackflame-spells';
|
||||
export { RADIANTFLAMES_SPELLS } from './spells-modules/radiantflames-spells';
|
||||
export { MIASMA_SPELLS } from './spells-modules/miasma-spells';
|
||||
export { SHADOWGLASS_SPELLS } from './spells-modules/shadowglass-spells';
|
||||
export { SOUL_SPELLS } from './spells-modules/soul-spells';
|
||||
export { TIME_SPELLS } from './spells-modules/time-spells';
|
||||
export { PLASMA_SPELLS } from './spells-modules/plasma-spells';
|
||||
|
||||
// Convenience: export combined SPELLS_DEF for backward compatibility
|
||||
import { RAW_SPELLS } from './spells-modules/raw-spells';
|
||||
@@ -24,6 +32,14 @@ import { LEGENDARY_SPELLS } from './spells-modules/legendary-spells';
|
||||
import { ENCHANTMENT_SPELLS } from './spells-modules/enchantment-spells';
|
||||
import { COMPOUND_SPELLS } from './spells-modules/compound-spells';
|
||||
import { UTILITY_SPELLS } from './spells-modules/utility-spells';
|
||||
import { FROST_SPELLS } from './spells-modules/frost-spells';
|
||||
import { BLACKFLAME_SPELLS } from './spells-modules/blackflame-spells';
|
||||
import { RADIANTFLAMES_SPELLS } from './spells-modules/radiantflames-spells';
|
||||
import { MIASMA_SPELLS } from './spells-modules/miasma-spells';
|
||||
import { SHADOWGLASS_SPELLS } from './spells-modules/shadowglass-spells';
|
||||
import { SOUL_SPELLS } from './spells-modules/soul-spells';
|
||||
import { TIME_SPELLS } from './spells-modules/time-spells';
|
||||
import { PLASMA_SPELLS } from './spells-modules/plasma-spells';
|
||||
|
||||
export const SPELLS_DEF: Record<string, import('../types').SpellDef> = {
|
||||
...RAW_SPELLS,
|
||||
@@ -36,4 +52,12 @@ export const SPELLS_DEF: Record<string, import('../types').SpellDef> = {
|
||||
...ENCHANTMENT_SPELLS,
|
||||
...COMPOUND_SPELLS,
|
||||
...UTILITY_SPELLS,
|
||||
...FROST_SPELLS,
|
||||
...BLACKFLAME_SPELLS,
|
||||
...RADIANTFLAMES_SPELLS,
|
||||
...MIASMA_SPELLS,
|
||||
...SHADOWGLASS_SPELLS,
|
||||
...SOUL_SPELLS,
|
||||
...TIME_SPELLS,
|
||||
...PLASMA_SPELLS,
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user