feat: Add enchantments/spells for all mana types including compound types
Some checks failed
Build and Publish Mana Loop Docker Image / build-and-publish (push) Failing after 1m13s
Some checks failed
Build and Publish Mana Loop Docker Image / build-and-publish (push) Failing after 1m13s
- Add compound mana spells (blood, metal, wood, sand) with unique mechanics - Add utility mana spells (mental, transference, force) - Add research skills for compound and utility spell types - Update EFFECT_RESEARCH_MAPPING for all new spells - Add enchantment effects for all new spell types - All tests pass, lint clean
This commit is contained in:
@@ -973,6 +973,373 @@ export const SPELLS_DEF: Record<string, SpellDef> = {
|
|||||||
isWeaponEnchant: true,
|
isWeaponEnchant: true,
|
||||||
effects: [{ type: 'lifesteal', value: 0.1 }]
|
effects: [{ type: 'lifesteal', value: 0.1 }]
|
||||||
},
|
},
|
||||||
|
|
||||||
|
// ═══════════════════════════════════════════════════════════════════════════
|
||||||
|
// COMPOUND MANA SPELLS - Blood, Metal, Wood, Sand
|
||||||
|
// ═══════════════════════════════════════════════════════════════════════════
|
||||||
|
|
||||||
|
// ─── BLOOD SPELLS (Life + Water) ─────────────────────────────────────────────
|
||||||
|
// Blood magic sacrifices HP for power, with lifesteal effects
|
||||||
|
bloodNeedle: {
|
||||||
|
name: "Blood Needle",
|
||||||
|
elem: "blood",
|
||||||
|
dmg: 12,
|
||||||
|
cost: elemCost("blood", 2),
|
||||||
|
tier: 1,
|
||||||
|
castSpeed: 3,
|
||||||
|
unlock: 200,
|
||||||
|
studyTime: 3,
|
||||||
|
desc: "A needle of congealed blood. Fast and efficient.",
|
||||||
|
effects: [{ type: 'lifesteal', value: 0.15 }]
|
||||||
|
},
|
||||||
|
bloodSlash: {
|
||||||
|
name: "Blood Slash",
|
||||||
|
elem: "blood",
|
||||||
|
dmg: 18,
|
||||||
|
cost: elemCost("blood", 3),
|
||||||
|
tier: 1,
|
||||||
|
castSpeed: 2,
|
||||||
|
unlock: 280,
|
||||||
|
studyTime: 4,
|
||||||
|
desc: "A slashing arc of blood. Good lifesteal.",
|
||||||
|
effects: [{ type: 'lifesteal', value: 0.2 }]
|
||||||
|
},
|
||||||
|
bloodRite: {
|
||||||
|
name: "Blood Rite",
|
||||||
|
elem: "blood",
|
||||||
|
dmg: 45,
|
||||||
|
cost: elemCost("blood", 7),
|
||||||
|
tier: 2,
|
||||||
|
castSpeed: 1.2,
|
||||||
|
unlock: 1100,
|
||||||
|
studyTime: 10,
|
||||||
|
desc: "A ritual of blood. Strong damage and lifesteal.",
|
||||||
|
effects: [{ type: 'lifesteal', value: 0.35 }]
|
||||||
|
},
|
||||||
|
sanguineStorm: {
|
||||||
|
name: "Sanguine Storm",
|
||||||
|
elem: "blood",
|
||||||
|
dmg: 80,
|
||||||
|
cost: elemCost("blood", 15),
|
||||||
|
tier: 3,
|
||||||
|
castSpeed: 0.7,
|
||||||
|
unlock: 12000,
|
||||||
|
studyTime: 26,
|
||||||
|
desc: "A storm of blood droplets. Massive lifesteal.",
|
||||||
|
effects: [{ type: 'lifesteal', value: 0.5 }]
|
||||||
|
},
|
||||||
|
|
||||||
|
// ─── METAL SPELLS (Fire + Earth) ─────────────────────────────────────────────
|
||||||
|
// Metal magic is slow but devastating with high armor pierce
|
||||||
|
metalShard: {
|
||||||
|
name: "Metal Shard",
|
||||||
|
elem: "metal",
|
||||||
|
dmg: 16,
|
||||||
|
cost: elemCost("metal", 2),
|
||||||
|
tier: 1,
|
||||||
|
castSpeed: 1.8,
|
||||||
|
unlock: 220,
|
||||||
|
studyTime: 3,
|
||||||
|
desc: "A sharpened metal shard. Slower but pierces armor.",
|
||||||
|
effects: [{ type: 'armor_pierce', value: 0.25 }]
|
||||||
|
},
|
||||||
|
ironFist: {
|
||||||
|
name: "Iron Fist",
|
||||||
|
elem: "metal",
|
||||||
|
dmg: 28,
|
||||||
|
cost: elemCost("metal", 4),
|
||||||
|
tier: 1,
|
||||||
|
castSpeed: 1.5,
|
||||||
|
unlock: 350,
|
||||||
|
studyTime: 5,
|
||||||
|
desc: "A crushing fist of iron. High armor pierce.",
|
||||||
|
effects: [{ type: 'armor_pierce', value: 0.35 }]
|
||||||
|
},
|
||||||
|
steelTempest: {
|
||||||
|
name: "Steel Tempest",
|
||||||
|
elem: "metal",
|
||||||
|
dmg: 55,
|
||||||
|
cost: elemCost("metal", 8),
|
||||||
|
tier: 2,
|
||||||
|
castSpeed: 1,
|
||||||
|
unlock: 1300,
|
||||||
|
studyTime: 12,
|
||||||
|
desc: "A whirlwind of steel blades. Ignores much armor.",
|
||||||
|
effects: [{ type: 'armor_pierce', value: 0.45 }]
|
||||||
|
},
|
||||||
|
furnaceBlast: {
|
||||||
|
name: "Furnace Blast",
|
||||||
|
elem: "metal",
|
||||||
|
dmg: 200,
|
||||||
|
cost: elemCost("metal", 20),
|
||||||
|
tier: 3,
|
||||||
|
castSpeed: 0.5,
|
||||||
|
unlock: 18000,
|
||||||
|
studyTime: 32,
|
||||||
|
desc: "Molten metal and fire combined. Devastating armor pierce.",
|
||||||
|
effects: [{ type: 'armor_pierce', value: 0.6 }]
|
||||||
|
},
|
||||||
|
|
||||||
|
// ─── WOOD SPELLS (Life + Earth) ─────────────────────────────────────────────
|
||||||
|
// Wood magic focuses on growth and regeneration
|
||||||
|
thornStrike: {
|
||||||
|
name: "Thorn Strike",
|
||||||
|
elem: "wood",
|
||||||
|
dmg: 14,
|
||||||
|
cost: elemCost("wood", 2),
|
||||||
|
tier: 1,
|
||||||
|
castSpeed: 2.5,
|
||||||
|
unlock: 180,
|
||||||
|
studyTime: 3,
|
||||||
|
desc: "A strike of wooden thorns. Some lifesteal.",
|
||||||
|
effects: [{ type: 'lifesteal', value: 0.12 }]
|
||||||
|
},
|
||||||
|
rootGrab: {
|
||||||
|
name: "Root Grab",
|
||||||
|
elem: "wood",
|
||||||
|
dmg: 20,
|
||||||
|
cost: elemCost("wood", 3),
|
||||||
|
tier: 1,
|
||||||
|
castSpeed: 2,
|
||||||
|
unlock: 260,
|
||||||
|
studyTime: 4,
|
||||||
|
desc: "Roots entangle and crush. Good lifesteal.",
|
||||||
|
effects: [{ type: 'lifesteal', value: 0.18 }]
|
||||||
|
},
|
||||||
|
treePunch: {
|
||||||
|
name: "Tree Punch",
|
||||||
|
elem: "wood",
|
||||||
|
dmg: 40,
|
||||||
|
cost: elemCost("wood", 6),
|
||||||
|
tier: 2,
|
||||||
|
castSpeed: 1.3,
|
||||||
|
unlock: 1000,
|
||||||
|
studyTime: 9,
|
||||||
|
desc: "A massive wooden fist. Strong lifesteal.",
|
||||||
|
effects: [{ type: 'lifesteal', value: 0.25 }]
|
||||||
|
},
|
||||||
|
forestAwakening: {
|
||||||
|
name: "Forest Awakening",
|
||||||
|
elem: "wood",
|
||||||
|
dmg: 120,
|
||||||
|
cost: elemCost("wood", 14),
|
||||||
|
tier: 3,
|
||||||
|
castSpeed: 0.65,
|
||||||
|
unlock: 11000,
|
||||||
|
studyTime: 24,
|
||||||
|
desc: "The forest itself awakens. Excellent lifesteal.",
|
||||||
|
effects: [{ type: 'lifesteal', value: 0.4 }]
|
||||||
|
},
|
||||||
|
|
||||||
|
// ─── SAND SPELLS (Earth + Water) ────────────────────────────────────────────
|
||||||
|
// Sand magic slows enemies and deals steady damage
|
||||||
|
sandBlast: {
|
||||||
|
name: "Sand Blast",
|
||||||
|
elem: "sand",
|
||||||
|
dmg: 11,
|
||||||
|
cost: elemCost("sand", 2),
|
||||||
|
tier: 1,
|
||||||
|
castSpeed: 3,
|
||||||
|
unlock: 190,
|
||||||
|
studyTime: 3,
|
||||||
|
desc: "A blast of stinging sand. Fast casting.",
|
||||||
|
},
|
||||||
|
sandstorm: {
|
||||||
|
name: "Sandstorm",
|
||||||
|
elem: "sand",
|
||||||
|
dmg: 22,
|
||||||
|
cost: elemCost("sand", 4),
|
||||||
|
tier: 1,
|
||||||
|
castSpeed: 2,
|
||||||
|
unlock: 300,
|
||||||
|
studyTime: 4,
|
||||||
|
desc: "A swirling sandstorm. Hits 2 enemies.",
|
||||||
|
isAoe: true,
|
||||||
|
aoeTargets: 2,
|
||||||
|
},
|
||||||
|
desertWind: {
|
||||||
|
name: "Desert Wind",
|
||||||
|
elem: "sand",
|
||||||
|
dmg: 38,
|
||||||
|
cost: elemCost("sand", 6),
|
||||||
|
tier: 2,
|
||||||
|
castSpeed: 1.5,
|
||||||
|
unlock: 950,
|
||||||
|
studyTime: 8,
|
||||||
|
desc: "A scouring desert wind. Hits 3 enemies.",
|
||||||
|
isAoe: true,
|
||||||
|
aoeTargets: 3,
|
||||||
|
},
|
||||||
|
duneCollapse: {
|
||||||
|
name: "Dune Collapse",
|
||||||
|
elem: "sand",
|
||||||
|
dmg: 100,
|
||||||
|
cost: elemCost("sand", 16),
|
||||||
|
tier: 3,
|
||||||
|
castSpeed: 0.6,
|
||||||
|
unlock: 14000,
|
||||||
|
studyTime: 28,
|
||||||
|
desc: "Dunes collapse on all enemies. Hits 5 targets.",
|
||||||
|
isAoe: true,
|
||||||
|
aoeTargets: 5,
|
||||||
|
},
|
||||||
|
|
||||||
|
// ═══════════════════════════════════════════════════════════════════════════
|
||||||
|
// UTILITY MANA SPELLS - Mental, Transference, Force
|
||||||
|
// ═══════════════════════════════════════════════════════════════════════════
|
||||||
|
|
||||||
|
// ─── MENTAL SPELLS ──────────────────────────────────────────────────────────
|
||||||
|
// Mental magic stuns and disrupts enemies
|
||||||
|
mindSpike: {
|
||||||
|
name: "Mind Spike",
|
||||||
|
elem: "mental",
|
||||||
|
dmg: 10,
|
||||||
|
cost: elemCost("mental", 2),
|
||||||
|
tier: 1,
|
||||||
|
castSpeed: 3.5,
|
||||||
|
unlock: 200,
|
||||||
|
studyTime: 3,
|
||||||
|
desc: "A spike of mental energy. Fast and disruptive.",
|
||||||
|
effects: [{ type: 'stun', value: 0.1, chance: 0.15 }]
|
||||||
|
},
|
||||||
|
psychicBlast: {
|
||||||
|
name: "Psychic Blast",
|
||||||
|
elem: "mental",
|
||||||
|
dmg: 20,
|
||||||
|
cost: elemCost("mental", 4),
|
||||||
|
tier: 1,
|
||||||
|
castSpeed: 2.5,
|
||||||
|
unlock: 320,
|
||||||
|
studyTime: 5,
|
||||||
|
desc: "A blast of psychic energy. Chance to stun.",
|
||||||
|
effects: [{ type: 'stun', value: 0.15, chance: 0.2 }]
|
||||||
|
},
|
||||||
|
mindCrush: {
|
||||||
|
name: "Mind Crush",
|
||||||
|
elem: "mental",
|
||||||
|
dmg: 48,
|
||||||
|
cost: elemCost("mental", 8),
|
||||||
|
tier: 2,
|
||||||
|
castSpeed: 1.2,
|
||||||
|
unlock: 1200,
|
||||||
|
studyTime: 11,
|
||||||
|
desc: "Crush the enemy's mind. High stun chance.",
|
||||||
|
effects: [{ type: 'stun', value: 0.2, chance: 0.3 }]
|
||||||
|
},
|
||||||
|
cerebralAnnihilation: {
|
||||||
|
name: "Cerebral Annihilation",
|
||||||
|
elem: "mental",
|
||||||
|
dmg: 150,
|
||||||
|
cost: elemCost("mental", 18),
|
||||||
|
tier: 3,
|
||||||
|
castSpeed: 0.55,
|
||||||
|
unlock: 16000,
|
||||||
|
studyTime: 30,
|
||||||
|
desc: "Total mental destruction. Very high stun chance.",
|
||||||
|
effects: [{ type: 'stun', value: 0.25, chance: 0.4 }]
|
||||||
|
},
|
||||||
|
|
||||||
|
// ─── TRANSFERENCE SPELLS ─────────────────────────────────────────────────────
|
||||||
|
// Transference magic moves mana and provides lifesteal
|
||||||
|
transferStrike: {
|
||||||
|
name: "Transfer Strike",
|
||||||
|
elem: "transference",
|
||||||
|
dmg: 9,
|
||||||
|
cost: elemCost("transference", 2),
|
||||||
|
tier: 1,
|
||||||
|
castSpeed: 3,
|
||||||
|
unlock: 150,
|
||||||
|
studyTime: 2,
|
||||||
|
desc: "Strike that transfers energy. Good lifesteal.",
|
||||||
|
effects: [{ type: 'lifesteal', value: 0.2 }]
|
||||||
|
},
|
||||||
|
manaRip: {
|
||||||
|
name: "Mana Rip",
|
||||||
|
elem: "transference",
|
||||||
|
dmg: 16,
|
||||||
|
cost: elemCost("transference", 3),
|
||||||
|
tier: 1,
|
||||||
|
castSpeed: 2.5,
|
||||||
|
unlock: 250,
|
||||||
|
studyTime: 4,
|
||||||
|
desc: "Rip mana from the enemy. Strong lifesteal.",
|
||||||
|
effects: [{ type: 'lifesteal', value: 0.25 }]
|
||||||
|
},
|
||||||
|
essenceDrain: {
|
||||||
|
name: "Essence Drain",
|
||||||
|
elem: "transference",
|
||||||
|
dmg: 42,
|
||||||
|
cost: elemCost("transference", 7),
|
||||||
|
tier: 2,
|
||||||
|
castSpeed: 1.3,
|
||||||
|
unlock: 1050,
|
||||||
|
studyTime: 10,
|
||||||
|
desc: "Drain the enemy's essence. Excellent lifesteal.",
|
||||||
|
effects: [{ type: 'lifesteal', value: 0.35 }]
|
||||||
|
},
|
||||||
|
soulTransfer: {
|
||||||
|
name: "Soul Transfer",
|
||||||
|
elem: "transference",
|
||||||
|
dmg: 130,
|
||||||
|
cost: elemCost("transference", 16),
|
||||||
|
tier: 3,
|
||||||
|
castSpeed: 0.6,
|
||||||
|
unlock: 13000,
|
||||||
|
studyTime: 26,
|
||||||
|
desc: "Transfer the soul's energy. Massive lifesteal.",
|
||||||
|
effects: [{ type: 'lifesteal', value: 0.5 }]
|
||||||
|
},
|
||||||
|
|
||||||
|
// ─── FORCE SPELLS ───────────────────────────────────────────────────────────
|
||||||
|
// Force magic is raw telekinetic power - high damage, fast
|
||||||
|
forcePush: {
|
||||||
|
name: "Force Push",
|
||||||
|
elem: "force",
|
||||||
|
dmg: 12,
|
||||||
|
cost: elemCost("force", 2),
|
||||||
|
tier: 1,
|
||||||
|
castSpeed: 3.5,
|
||||||
|
unlock: 180,
|
||||||
|
studyTime: 3,
|
||||||
|
desc: "A push of telekinetic force. Very fast.",
|
||||||
|
},
|
||||||
|
kineticBlast: {
|
||||||
|
name: "Kinetic Blast",
|
||||||
|
elem: "force",
|
||||||
|
dmg: 24,
|
||||||
|
cost: elemCost("force", 4),
|
||||||
|
tier: 1,
|
||||||
|
castSpeed: 2.8,
|
||||||
|
unlock: 300,
|
||||||
|
studyTime: 4,
|
||||||
|
desc: "A blast of pure kinetic energy. Fast and powerful.",
|
||||||
|
},
|
||||||
|
gravityWell: {
|
||||||
|
name: "Gravity Well",
|
||||||
|
elem: "force",
|
||||||
|
dmg: 50,
|
||||||
|
cost: elemCost("force", 7),
|
||||||
|
tier: 2,
|
||||||
|
castSpeed: 1.4,
|
||||||
|
unlock: 1150,
|
||||||
|
studyTime: 10,
|
||||||
|
desc: "A crushing gravity well. Hits 2 enemies.",
|
||||||
|
isAoe: true,
|
||||||
|
aoeTargets: 2,
|
||||||
|
},
|
||||||
|
telekineticStorm: {
|
||||||
|
name: "Telekinetic Storm",
|
||||||
|
elem: "force",
|
||||||
|
dmg: 160,
|
||||||
|
cost: elemCost("force", 18),
|
||||||
|
tier: 3,
|
||||||
|
castSpeed: 0.5,
|
||||||
|
unlock: 17000,
|
||||||
|
studyTime: 30,
|
||||||
|
desc: "A storm of telekinetic fury. Hits 4 enemies.",
|
||||||
|
isAoe: true,
|
||||||
|
aoeTargets: 4,
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
// ─── Skills ───────────────────────────────────────────────────────────────────
|
// ─── Skills ───────────────────────────────────────────────────────────────────
|
||||||
@@ -1040,6 +1407,50 @@ export const SKILLS_DEF: Record<string, SkillDef> = {
|
|||||||
// Special Effect Research
|
// 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 } },
|
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 } },
|
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 - Blood, Metal, Wood, Sand, Lightning
|
||||||
|
// ═══════════════════════════════════════════════════════════════════════════
|
||||||
|
|
||||||
|
// Tier 1 - Basic Compound Spells
|
||||||
|
researchBloodSpells: { name: "Blood Spell Research", desc: "Unlock Blood Needle, Blood Slash spell enchantments", cat: "effectResearch", max: 1, base: 400, studyTime: 6, req: { researchLifeDeathSpells: 1, researchWaterSpells: 1, enchanting: 3 }, attunementReq: { enchanter: 2 } },
|
||||||
|
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 }, attunementReq: { enchanter: 2 } },
|
||||||
|
researchWoodSpells: { name: "Wood Spell Research", desc: "Unlock Thorn Strike, Root Grab spell enchantments", cat: "effectResearch", max: 1, base: 400, studyTime: 6, req: { researchLifeDeathSpells: 1, researchEarthSpells: 1, enchanting: 3 }, 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 }, 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 }, attunementReq: { enchanter: 2 } },
|
||||||
|
|
||||||
|
// Tier 2 - Advanced Compound Spells
|
||||||
|
researchAdvancedBlood: { name: "Advanced Blood Research", desc: "Unlock Blood Rite spell enchantment", cat: "effectResearch", max: 1, base: 700, studyTime: 12, req: { researchBloodSpells: 1, enchanting: 5 }, attunementReq: { enchanter: 3 } },
|
||||||
|
researchAdvancedMetal: { name: "Advanced Metal Research", desc: "Unlock Steel Tempest spell enchantment", cat: "effectResearch", max: 1, base: 700, studyTime: 12, req: { researchMetalSpells: 1, enchanting: 5 }, attunementReq: { enchanter: 3 } },
|
||||||
|
researchAdvancedWood: { name: "Advanced Wood Research", desc: "Unlock Tree Punch spell enchantment", cat: "effectResearch", max: 1, base: 700, studyTime: 12, req: { researchWoodSpells: 1, enchanting: 5 }, 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 }, 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 }, attunementReq: { enchanter: 3 } },
|
||||||
|
|
||||||
|
// Tier 3 - Master Compound Spells
|
||||||
|
researchMasterBlood: { name: "Master Blood Research", desc: "Unlock Sanguine Storm spell enchantment", cat: "effectResearch", max: 1, base: 1300, studyTime: 26, req: { researchAdvancedBlood: 1, enchanting: 7 }, attunementReq: { enchanter: 5 } },
|
||||||
|
researchMasterMetal: { name: "Master Metal Research", desc: "Unlock Furnace Blast spell enchantment", cat: "effectResearch", max: 1, base: 1300, studyTime: 26, req: { researchAdvancedMetal: 1, enchanting: 7 }, attunementReq: { enchanter: 5 } },
|
||||||
|
researchMasterWood: { name: "Master Wood Research", desc: "Unlock Forest Awakening spell enchantment", cat: "effectResearch", max: 1, base: 1300, studyTime: 26, req: { researchAdvancedWood: 1, enchanting: 7 }, 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 }, 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 }, attunementReq: { enchanter: 5 } },
|
||||||
|
|
||||||
|
// ═══════════════════════════════════════════════════════════════════════════
|
||||||
|
// UTILITY MANA SPELL RESEARCH - Mental, Transference, Force
|
||||||
|
// ═══════════════════════════════════════════════════════════════════════════
|
||||||
|
|
||||||
|
// Tier 1 - Basic Utility Spells
|
||||||
|
researchMentalSpells: { name: "Mental Spell Research", desc: "Unlock Mind Spike, Psychic Blast spell enchantments", cat: "effectResearch", max: 1, base: 450, studyTime: 7, req: { enchanting: 4 }, attunementReq: { enchanter: 2 } },
|
||||||
|
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 } },
|
||||||
|
researchForceSpells: { name: "Force Spell Research", desc: "Unlock Force Push, Kinetic Blast spell enchantments", cat: "effectResearch", max: 1, base: 400, studyTime: 6, req: { enchanting: 3 }, attunementReq: { enchanter: 2 } },
|
||||||
|
|
||||||
|
// Tier 2 - Advanced Utility Spells
|
||||||
|
researchAdvancedMental: { name: "Advanced Mental Research", desc: "Unlock Mind Crush spell enchantment", cat: "effectResearch", max: 1, base: 750, studyTime: 14, req: { researchMentalSpells: 1, enchanting: 5 }, attunementReq: { enchanter: 3 } },
|
||||||
|
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 } },
|
||||||
|
researchAdvancedForce: { name: "Advanced Force Research", desc: "Unlock Gravity Well spell enchantment", cat: "effectResearch", max: 1, base: 700, studyTime: 12, req: { researchForceSpells: 1, enchanting: 5 }, attunementReq: { enchanter: 3 } },
|
||||||
|
|
||||||
|
// Tier 3 - Master Utility Spells
|
||||||
|
researchMasterMental: { name: "Master Mental Research", desc: "Unlock Cerebral Annihilation spell enchantment", cat: "effectResearch", max: 1, base: 1400, studyTime: 28, req: { researchAdvancedMental: 1, enchanting: 8 }, attunementReq: { enchanter: 5 } },
|
||||||
|
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 } },
|
||||||
|
researchMasterForce: { name: "Master Force Research", desc: "Unlock Telekinetic Storm spell enchantment", cat: "effectResearch", max: 1, base: 1400, studyTime: 28, req: { researchAdvancedForce: 1, enchanting: 8 }, attunementReq: { enchanter: 5 } },
|
||||||
|
|
||||||
// Research Skills (longer study times: 12-72 hours) - Core skills, any attunement level 3
|
// Research Skills (longer study times: 12-72 hours) - Core skills, any attunement level 3
|
||||||
manaTap: { name: "Mana Tap", desc: "+1 mana/click", cat: "research", max: 1, base: 300, studyTime: 12 },
|
manaTap: { name: "Mana Tap", desc: "+1 mana/click", cat: "research", max: 1, base: 300, studyTime: 12 },
|
||||||
@@ -1146,6 +1557,50 @@ export const EFFECT_RESEARCH_MAPPING: Record<string, string[]> = {
|
|||||||
// Special Effect Research
|
// Special Effect Research
|
||||||
researchSpecialEffects: ['spell_echo_10', 'lifesteal_5', 'guardian_dmg_10'],
|
researchSpecialEffects: ['spell_echo_10', 'lifesteal_5', 'guardian_dmg_10'],
|
||||||
researchOverpower: ['overpower_80'],
|
researchOverpower: ['overpower_80'],
|
||||||
|
|
||||||
|
// ═══════════════════════════════════════════════════════════════════════════
|
||||||
|
// COMPOUND MANA SPELL RESEARCH - Blood, Metal, Wood, Sand, Lightning
|
||||||
|
// ═══════════════════════════════════════════════════════════════════════════
|
||||||
|
|
||||||
|
// Tier 1 - Basic Compound Spells
|
||||||
|
researchBloodSpells: ['spell_bloodNeedle', 'spell_bloodSlash'],
|
||||||
|
researchMetalSpells: ['spell_metalShard', 'spell_ironFist'],
|
||||||
|
researchWoodSpells: ['spell_thornStrike', 'spell_rootGrab'],
|
||||||
|
researchSandSpells: ['spell_sandBlast', 'spell_sandstorm'],
|
||||||
|
researchLightningSpells: ['spell_spark', 'spell_lightningBolt'],
|
||||||
|
|
||||||
|
// Tier 2 - Advanced Compound Spells
|
||||||
|
researchAdvancedBlood: ['spell_bloodRite'],
|
||||||
|
researchAdvancedMetal: ['spell_steelTempest'],
|
||||||
|
researchAdvancedWood: ['spell_treePunch'],
|
||||||
|
researchAdvancedSand: ['spell_desertWind'],
|
||||||
|
researchAdvancedLightning: ['spell_chainLightning', 'spell_stormCall'],
|
||||||
|
|
||||||
|
// Tier 3 - Master Compound Spells
|
||||||
|
researchMasterBlood: ['spell_sanguineStorm'],
|
||||||
|
researchMasterMetal: ['spell_furnaceBlast'],
|
||||||
|
researchMasterWood: ['spell_forestAwakening'],
|
||||||
|
researchMasterSand: ['spell_duneCollapse'],
|
||||||
|
researchMasterLightning: ['spell_thunderStrike'],
|
||||||
|
|
||||||
|
// ═══════════════════════════════════════════════════════════════════════════
|
||||||
|
// UTILITY MANA SPELL RESEARCH - Mental, Transference, Force
|
||||||
|
// ═══════════════════════════════════════════════════════════════════════════
|
||||||
|
|
||||||
|
// Tier 1 - Basic Utility Spells
|
||||||
|
researchMentalSpells: ['spell_mindSpike', 'spell_psychicBlast'],
|
||||||
|
researchTransferenceSpells: ['spell_transferStrike', 'spell_manaRip'],
|
||||||
|
researchForceSpells: ['spell_forcePush', 'spell_kineticBlast'],
|
||||||
|
|
||||||
|
// Tier 2 - Advanced Utility Spells
|
||||||
|
researchAdvancedMental: ['spell_mindCrush'],
|
||||||
|
researchAdvancedTransference: ['spell_essenceDrain'],
|
||||||
|
researchAdvancedForce: ['spell_gravityWell'],
|
||||||
|
|
||||||
|
// Tier 3 - Master Utility Spells
|
||||||
|
researchMasterMental: ['spell_cerebralAnnihilation'],
|
||||||
|
researchMasterTransference: ['spell_soulTransfer'],
|
||||||
|
researchMasterForce: ['spell_telekineticStorm'],
|
||||||
};
|
};
|
||||||
|
|
||||||
// Base effects unlocked when player gets enchanting skill level 1
|
// Base effects unlocked when player gets enchanting skill level 1
|
||||||
|
|||||||
@@ -636,6 +636,376 @@ export const ENCHANTMENT_EFFECTS: Record<string, EnchantmentEffectDef> = {
|
|||||||
effect: { type: 'bonus', stat: 'weaponManaRegen', value: 5 }
|
effect: { type: 'bonus', stat: 'weaponManaRegen', value: 5 }
|
||||||
},
|
},
|
||||||
|
|
||||||
|
// ═══════════════════════════════════════════════════════════════════════════
|
||||||
|
// LIGHTNING SPELL EFFECTS - Fast, armor-piercing, harder to dodge
|
||||||
|
// ═══════════════════════════════════════════════════════════════════════════
|
||||||
|
|
||||||
|
spell_spark: {
|
||||||
|
id: 'spell_spark',
|
||||||
|
name: 'Spark',
|
||||||
|
description: 'Grants the ability to cast Spark (8 lightning damage, very fast, armor pierce)',
|
||||||
|
category: 'spell',
|
||||||
|
baseCapacityCost: 70,
|
||||||
|
maxStacks: 1,
|
||||||
|
allowedEquipmentCategories: ALL_CASTER,
|
||||||
|
effect: { type: 'spell', spellId: 'spark' }
|
||||||
|
},
|
||||||
|
spell_lightningBolt: {
|
||||||
|
id: 'spell_lightningBolt',
|
||||||
|
name: 'Lightning Bolt',
|
||||||
|
description: 'Grants the ability to cast Lightning Bolt (14 lightning damage, armor pierce)',
|
||||||
|
category: 'spell',
|
||||||
|
baseCapacityCost: 90,
|
||||||
|
maxStacks: 1,
|
||||||
|
allowedEquipmentCategories: ALL_CASTER,
|
||||||
|
effect: { type: 'spell', spellId: 'lightningBolt' }
|
||||||
|
},
|
||||||
|
spell_chainLightning: {
|
||||||
|
id: 'spell_chainLightning',
|
||||||
|
name: 'Chain Lightning',
|
||||||
|
description: 'Grants the ability to cast Chain Lightning (25 lightning damage, hits 3 targets)',
|
||||||
|
category: 'spell',
|
||||||
|
baseCapacityCost: 160,
|
||||||
|
maxStacks: 1,
|
||||||
|
allowedEquipmentCategories: ALL_CASTER,
|
||||||
|
effect: { type: 'spell', spellId: 'chainLightning' }
|
||||||
|
},
|
||||||
|
spell_stormCall: {
|
||||||
|
id: 'spell_stormCall',
|
||||||
|
name: 'Storm Call',
|
||||||
|
description: 'Grants the ability to cast Storm Call (40 lightning damage, hits 2 targets)',
|
||||||
|
category: 'spell',
|
||||||
|
baseCapacityCost: 190,
|
||||||
|
maxStacks: 1,
|
||||||
|
allowedEquipmentCategories: ALL_CASTER,
|
||||||
|
effect: { type: 'spell', spellId: 'stormCall' }
|
||||||
|
},
|
||||||
|
spell_thunderStrike: {
|
||||||
|
id: 'spell_thunderStrike',
|
||||||
|
name: 'Thunder Strike',
|
||||||
|
description: 'Grants the ability to cast Thunder Strike (150 lightning damage, 50% armor pierce)',
|
||||||
|
category: 'spell',
|
||||||
|
baseCapacityCost: 350,
|
||||||
|
maxStacks: 1,
|
||||||
|
allowedEquipmentCategories: ALL_CASTER,
|
||||||
|
effect: { type: 'spell', spellId: 'thunderStrike' }
|
||||||
|
},
|
||||||
|
|
||||||
|
// ═══════════════════════════════════════════════════════════════════════════
|
||||||
|
// BLOOD SPELL EFFECTS - Life + Water compound, lifesteal focus
|
||||||
|
// ═══════════════════════════════════════════════════════════════════════════
|
||||||
|
|
||||||
|
spell_bloodNeedle: {
|
||||||
|
id: 'spell_bloodNeedle',
|
||||||
|
name: 'Blood Needle',
|
||||||
|
description: 'Grants the ability to cast Blood Needle (12 blood damage, 15% lifesteal)',
|
||||||
|
category: 'spell',
|
||||||
|
baseCapacityCost: 75,
|
||||||
|
maxStacks: 1,
|
||||||
|
allowedEquipmentCategories: ALL_CASTER,
|
||||||
|
effect: { type: 'spell', spellId: 'bloodNeedle' }
|
||||||
|
},
|
||||||
|
spell_bloodSlash: {
|
||||||
|
id: 'spell_bloodSlash',
|
||||||
|
name: 'Blood Slash',
|
||||||
|
description: 'Grants the ability to cast Blood Slash (18 blood damage, 20% lifesteal)',
|
||||||
|
category: 'spell',
|
||||||
|
baseCapacityCost: 95,
|
||||||
|
maxStacks: 1,
|
||||||
|
allowedEquipmentCategories: ALL_CASTER,
|
||||||
|
effect: { type: 'spell', spellId: 'bloodSlash' }
|
||||||
|
},
|
||||||
|
spell_bloodRite: {
|
||||||
|
id: 'spell_bloodRite',
|
||||||
|
name: 'Blood Rite',
|
||||||
|
description: 'Grants the ability to cast Blood Rite (45 blood damage, 35% lifesteal)',
|
||||||
|
category: 'spell',
|
||||||
|
baseCapacityCost: 170,
|
||||||
|
maxStacks: 1,
|
||||||
|
allowedEquipmentCategories: ALL_CASTER,
|
||||||
|
effect: { type: 'spell', spellId: 'bloodRite' }
|
||||||
|
},
|
||||||
|
spell_sanguineStorm: {
|
||||||
|
id: 'spell_sanguineStorm',
|
||||||
|
name: 'Sanguine Storm',
|
||||||
|
description: 'Grants the ability to cast Sanguine Storm (80 blood damage, 50% lifesteal)',
|
||||||
|
category: 'spell',
|
||||||
|
baseCapacityCost: 320,
|
||||||
|
maxStacks: 1,
|
||||||
|
allowedEquipmentCategories: ALL_CASTER,
|
||||||
|
effect: { type: 'spell', spellId: 'sanguineStorm' }
|
||||||
|
},
|
||||||
|
|
||||||
|
// ═══════════════════════════════════════════════════════════════════════════
|
||||||
|
// METAL SPELL EFFECTS - Fire + Earth compound, armor pierce focus
|
||||||
|
// ═══════════════════════════════════════════════════════════════════════════
|
||||||
|
|
||||||
|
spell_metalShard: {
|
||||||
|
id: 'spell_metalShard',
|
||||||
|
name: 'Metal Shard',
|
||||||
|
description: 'Grants the ability to cast Metal Shard (16 metal damage, 25% armor pierce)',
|
||||||
|
category: 'spell',
|
||||||
|
baseCapacityCost: 85,
|
||||||
|
maxStacks: 1,
|
||||||
|
allowedEquipmentCategories: ALL_CASTER,
|
||||||
|
effect: { type: 'spell', spellId: 'metalShard' }
|
||||||
|
},
|
||||||
|
spell_ironFist: {
|
||||||
|
id: 'spell_ironFist',
|
||||||
|
name: 'Iron Fist',
|
||||||
|
description: 'Grants the ability to cast Iron Fist (28 metal damage, 35% armor pierce)',
|
||||||
|
category: 'spell',
|
||||||
|
baseCapacityCost: 120,
|
||||||
|
maxStacks: 1,
|
||||||
|
allowedEquipmentCategories: ALL_CASTER,
|
||||||
|
effect: { type: 'spell', spellId: 'ironFist' }
|
||||||
|
},
|
||||||
|
spell_steelTempest: {
|
||||||
|
id: 'spell_steelTempest',
|
||||||
|
name: 'Steel Tempest',
|
||||||
|
description: 'Grants the ability to cast Steel Tempest (55 metal damage, 45% armor pierce)',
|
||||||
|
category: 'spell',
|
||||||
|
baseCapacityCost: 190,
|
||||||
|
maxStacks: 1,
|
||||||
|
allowedEquipmentCategories: ALL_CASTER,
|
||||||
|
effect: { type: 'spell', spellId: 'steelTempest' }
|
||||||
|
},
|
||||||
|
spell_furnaceBlast: {
|
||||||
|
id: 'spell_furnaceBlast',
|
||||||
|
name: 'Furnace Blast',
|
||||||
|
description: 'Grants the ability to cast Furnace Blast (200 metal damage, 60% armor pierce)',
|
||||||
|
category: 'spell',
|
||||||
|
baseCapacityCost: 400,
|
||||||
|
maxStacks: 1,
|
||||||
|
allowedEquipmentCategories: ALL_CASTER,
|
||||||
|
effect: { type: 'spell', spellId: 'furnaceBlast' }
|
||||||
|
},
|
||||||
|
|
||||||
|
// ═══════════════════════════════════════════════════════════════════════════
|
||||||
|
// WOOD SPELL EFFECTS - Life + Earth compound, regeneration focus
|
||||||
|
// ═══════════════════════════════════════════════════════════════════════════
|
||||||
|
|
||||||
|
spell_thornStrike: {
|
||||||
|
id: 'spell_thornStrike',
|
||||||
|
name: 'Thorn Strike',
|
||||||
|
description: 'Grants the ability to cast Thorn Strike (14 wood damage, 12% lifesteal)',
|
||||||
|
category: 'spell',
|
||||||
|
baseCapacityCost: 70,
|
||||||
|
maxStacks: 1,
|
||||||
|
allowedEquipmentCategories: ALL_CASTER,
|
||||||
|
effect: { type: 'spell', spellId: 'thornStrike' }
|
||||||
|
},
|
||||||
|
spell_rootGrab: {
|
||||||
|
id: 'spell_rootGrab',
|
||||||
|
name: 'Root Grab',
|
||||||
|
description: 'Grants the ability to cast Root Grab (20 wood damage, 18% lifesteal)',
|
||||||
|
category: 'spell',
|
||||||
|
baseCapacityCost: 95,
|
||||||
|
maxStacks: 1,
|
||||||
|
allowedEquipmentCategories: ALL_CASTER,
|
||||||
|
effect: { type: 'spell', spellId: 'rootGrab' }
|
||||||
|
},
|
||||||
|
spell_treePunch: {
|
||||||
|
id: 'spell_treePunch',
|
||||||
|
name: 'Tree Punch',
|
||||||
|
description: 'Grants the ability to cast Tree Punch (40 wood damage, 25% lifesteal)',
|
||||||
|
category: 'spell',
|
||||||
|
baseCapacityCost: 160,
|
||||||
|
maxStacks: 1,
|
||||||
|
allowedEquipmentCategories: ALL_CASTER,
|
||||||
|
effect: { type: 'spell', spellId: 'treePunch' }
|
||||||
|
},
|
||||||
|
spell_forestAwakening: {
|
||||||
|
id: 'spell_forestAwakening',
|
||||||
|
name: 'Forest Awakening',
|
||||||
|
description: 'Grants the ability to cast Forest Awakening (120 wood damage, 40% lifesteal)',
|
||||||
|
category: 'spell',
|
||||||
|
baseCapacityCost: 320,
|
||||||
|
maxStacks: 1,
|
||||||
|
allowedEquipmentCategories: ALL_CASTER,
|
||||||
|
effect: { type: 'spell', spellId: 'forestAwakening' }
|
||||||
|
},
|
||||||
|
|
||||||
|
// ═══════════════════════════════════════════════════════════════════════════
|
||||||
|
// SAND SPELL EFFECTS - Earth + Water compound, AOE focus
|
||||||
|
// ═══════════════════════════════════════════════════════════════════════════
|
||||||
|
|
||||||
|
spell_sandBlast: {
|
||||||
|
id: 'spell_sandBlast',
|
||||||
|
name: 'Sand Blast',
|
||||||
|
description: 'Grants the ability to cast Sand Blast (11 sand damage, very fast)',
|
||||||
|
category: 'spell',
|
||||||
|
baseCapacityCost: 72,
|
||||||
|
maxStacks: 1,
|
||||||
|
allowedEquipmentCategories: ALL_CASTER,
|
||||||
|
effect: { type: 'spell', spellId: 'sandBlast' }
|
||||||
|
},
|
||||||
|
spell_sandstorm: {
|
||||||
|
id: 'spell_sandstorm',
|
||||||
|
name: 'Sandstorm',
|
||||||
|
description: 'Grants the ability to cast Sandstorm (22 sand damage, hits 2 enemies)',
|
||||||
|
category: 'spell',
|
||||||
|
baseCapacityCost: 100,
|
||||||
|
maxStacks: 1,
|
||||||
|
allowedEquipmentCategories: ALL_CASTER,
|
||||||
|
effect: { type: 'spell', spellId: 'sandstorm' }
|
||||||
|
},
|
||||||
|
spell_desertWind: {
|
||||||
|
id: 'spell_desertWind',
|
||||||
|
name: 'Desert Wind',
|
||||||
|
description: 'Grants the ability to cast Desert Wind (38 sand damage, hits 3 enemies)',
|
||||||
|
category: 'spell',
|
||||||
|
baseCapacityCost: 155,
|
||||||
|
maxStacks: 1,
|
||||||
|
allowedEquipmentCategories: ALL_CASTER,
|
||||||
|
effect: { type: 'spell', spellId: 'desertWind' }
|
||||||
|
},
|
||||||
|
spell_duneCollapse: {
|
||||||
|
id: 'spell_duneCollapse',
|
||||||
|
name: 'Dune Collapse',
|
||||||
|
description: 'Grants the ability to cast Dune Collapse (100 sand damage, hits 5 enemies)',
|
||||||
|
category: 'spell',
|
||||||
|
baseCapacityCost: 300,
|
||||||
|
maxStacks: 1,
|
||||||
|
allowedEquipmentCategories: ALL_CASTER,
|
||||||
|
effect: { type: 'spell', spellId: 'duneCollapse' }
|
||||||
|
},
|
||||||
|
|
||||||
|
// ═══════════════════════════════════════════════════════════════════════════
|
||||||
|
// MENTAL SPELL EFFECTS - Utility, stun focus
|
||||||
|
// ═══════════════════════════════════════════════════════════════════════════
|
||||||
|
|
||||||
|
spell_mindSpike: {
|
||||||
|
id: 'spell_mindSpike',
|
||||||
|
name: 'Mind Spike',
|
||||||
|
description: 'Grants the ability to cast Mind Spike (10 mental damage, 15% stun chance)',
|
||||||
|
category: 'spell',
|
||||||
|
baseCapacityCost: 80,
|
||||||
|
maxStacks: 1,
|
||||||
|
allowedEquipmentCategories: ALL_CASTER,
|
||||||
|
effect: { type: 'spell', spellId: 'mindSpike' }
|
||||||
|
},
|
||||||
|
spell_psychicBlast: {
|
||||||
|
id: 'spell_psychicBlast',
|
||||||
|
name: 'Psychic Blast',
|
||||||
|
description: 'Grants the ability to cast Psychic Blast (20 mental damage, 20% stun chance)',
|
||||||
|
category: 'spell',
|
||||||
|
baseCapacityCost: 110,
|
||||||
|
maxStacks: 1,
|
||||||
|
allowedEquipmentCategories: ALL_CASTER,
|
||||||
|
effect: { type: 'spell', spellId: 'psychicBlast' }
|
||||||
|
},
|
||||||
|
spell_mindCrush: {
|
||||||
|
id: 'spell_mindCrush',
|
||||||
|
name: 'Mind Crush',
|
||||||
|
description: 'Grants the ability to cast Mind Crush (48 mental damage, 30% stun chance)',
|
||||||
|
category: 'spell',
|
||||||
|
baseCapacityCost: 180,
|
||||||
|
maxStacks: 1,
|
||||||
|
allowedEquipmentCategories: ALL_CASTER,
|
||||||
|
effect: { type: 'spell', spellId: 'mindCrush' }
|
||||||
|
},
|
||||||
|
spell_cerebralAnnihilation: {
|
||||||
|
id: 'spell_cerebralAnnihilation',
|
||||||
|
name: 'Cerebral Annihilation',
|
||||||
|
description: 'Grants the ability to cast Cerebral Annihilation (150 mental damage, 40% stun chance)',
|
||||||
|
category: 'spell',
|
||||||
|
baseCapacityCost: 360,
|
||||||
|
maxStacks: 1,
|
||||||
|
allowedEquipmentCategories: ALL_CASTER,
|
||||||
|
effect: { type: 'spell', spellId: 'cerebralAnnihilation' }
|
||||||
|
},
|
||||||
|
|
||||||
|
// ═══════════════════════════════════════════════════════════════════════════
|
||||||
|
// TRANSFERENCE SPELL EFFECTS - Utility, lifesteal focus (Enchanter primary)
|
||||||
|
// ═══════════════════════════════════════════════════════════════════════════
|
||||||
|
|
||||||
|
spell_transferStrike: {
|
||||||
|
id: 'spell_transferStrike',
|
||||||
|
name: 'Transfer Strike',
|
||||||
|
description: 'Grants the ability to cast Transfer Strike (9 transference damage, 20% lifesteal)',
|
||||||
|
category: 'spell',
|
||||||
|
baseCapacityCost: 65,
|
||||||
|
maxStacks: 1,
|
||||||
|
allowedEquipmentCategories: ALL_CASTER,
|
||||||
|
effect: { type: 'spell', spellId: 'transferStrike' }
|
||||||
|
},
|
||||||
|
spell_manaRip: {
|
||||||
|
id: 'spell_manaRip',
|
||||||
|
name: 'Mana Rip',
|
||||||
|
description: 'Grants the ability to cast Mana Rip (16 transference damage, 25% lifesteal)',
|
||||||
|
category: 'spell',
|
||||||
|
baseCapacityCost: 90,
|
||||||
|
maxStacks: 1,
|
||||||
|
allowedEquipmentCategories: ALL_CASTER,
|
||||||
|
effect: { type: 'spell', spellId: 'manaRip' }
|
||||||
|
},
|
||||||
|
spell_essenceDrain: {
|
||||||
|
id: 'spell_essenceDrain',
|
||||||
|
name: 'Essence Drain',
|
||||||
|
description: 'Grants the ability to cast Essence Drain (42 transference damage, 35% lifesteal)',
|
||||||
|
category: 'spell',
|
||||||
|
baseCapacityCost: 160,
|
||||||
|
maxStacks: 1,
|
||||||
|
allowedEquipmentCategories: ALL_CASTER,
|
||||||
|
effect: { type: 'spell', spellId: 'essenceDrain' }
|
||||||
|
},
|
||||||
|
spell_soulTransfer: {
|
||||||
|
id: 'spell_soulTransfer',
|
||||||
|
name: 'Soul Transfer',
|
||||||
|
description: 'Grants the ability to cast Soul Transfer (130 transference damage, 50% lifesteal)',
|
||||||
|
category: 'spell',
|
||||||
|
baseCapacityCost: 310,
|
||||||
|
maxStacks: 1,
|
||||||
|
allowedEquipmentCategories: ALL_CASTER,
|
||||||
|
effect: { type: 'spell', spellId: 'soulTransfer' }
|
||||||
|
},
|
||||||
|
|
||||||
|
// ═══════════════════════════════════════════════════════════════════════════
|
||||||
|
// FORCE SPELL EFFECTS - Utility, raw damage and AOE focus
|
||||||
|
// ═══════════════════════════════════════════════════════════════════════════
|
||||||
|
|
||||||
|
spell_forcePush: {
|
||||||
|
id: 'spell_forcePush',
|
||||||
|
name: 'Force Push',
|
||||||
|
description: 'Grants the ability to cast Force Push (12 force damage, very fast)',
|
||||||
|
category: 'spell',
|
||||||
|
baseCapacityCost: 75,
|
||||||
|
maxStacks: 1,
|
||||||
|
allowedEquipmentCategories: ALL_CASTER,
|
||||||
|
effect: { type: 'spell', spellId: 'forcePush' }
|
||||||
|
},
|
||||||
|
spell_kineticBlast: {
|
||||||
|
id: 'spell_kineticBlast',
|
||||||
|
name: 'Kinetic Blast',
|
||||||
|
description: 'Grants the ability to cast Kinetic Blast (24 force damage, fast)',
|
||||||
|
category: 'spell',
|
||||||
|
baseCapacityCost: 100,
|
||||||
|
maxStacks: 1,
|
||||||
|
allowedEquipmentCategories: ALL_CASTER,
|
||||||
|
effect: { type: 'spell', spellId: 'kineticBlast' }
|
||||||
|
},
|
||||||
|
spell_gravityWell: {
|
||||||
|
id: 'spell_gravityWell',
|
||||||
|
name: 'Gravity Well',
|
||||||
|
description: 'Grants the ability to cast Gravity Well (50 force damage, hits 2 enemies)',
|
||||||
|
category: 'spell',
|
||||||
|
baseCapacityCost: 170,
|
||||||
|
maxStacks: 1,
|
||||||
|
allowedEquipmentCategories: ALL_CASTER,
|
||||||
|
effect: { type: 'spell', spellId: 'gravityWell' }
|
||||||
|
},
|
||||||
|
spell_telekineticStorm: {
|
||||||
|
id: 'spell_telekineticStorm',
|
||||||
|
name: 'Telekinetic Storm',
|
||||||
|
description: 'Grants the ability to cast Telekinetic Storm (160 force damage, hits 4 enemies)',
|
||||||
|
category: 'spell',
|
||||||
|
baseCapacityCost: 380,
|
||||||
|
maxStacks: 1,
|
||||||
|
allowedEquipmentCategories: ALL_CASTER,
|
||||||
|
effect: { type: 'spell', spellId: 'telekineticStorm' }
|
||||||
|
},
|
||||||
|
|
||||||
// ═══════════════════════════════════════════════════════════════════════════
|
// ═══════════════════════════════════════════════════════════════════════════
|
||||||
// MAGIC SWORD ENCHANTMENTS - Elemental weapon effects
|
// MAGIC SWORD ENCHANTMENTS - Elemental weapon effects
|
||||||
// ═══════════════════════════════════════════════════════════════════════════
|
// ═══════════════════════════════════════════════════════════════════════════
|
||||||
|
|||||||
42
worklog.md
42
worklog.md
@@ -437,3 +437,45 @@ Stage Summary:
|
|||||||
- Lint passes
|
- Lint passes
|
||||||
- Build succeeds
|
- Build succeeds
|
||||||
- Spell effects now show correct types
|
- Spell effects now show correct types
|
||||||
|
|
||||||
|
---
|
||||||
|
Task ID: 24
|
||||||
|
Agent: Main
|
||||||
|
Task: Add enchantments/spells for each mana type including compound types
|
||||||
|
|
||||||
|
Work Log:
|
||||||
|
- **Added compound mana type spells to constants.ts**:
|
||||||
|
- Blood spells (Life + Water): bloodNeedle, bloodSlash, bloodRite, sanguineStorm - lifesteal focus
|
||||||
|
- Metal spells (Fire + Earth): metalShard, ironFist, steelTempest, furnaceBlast - armor pierce focus
|
||||||
|
- Wood spells (Life + Earth): thornStrike, rootGrab, treePunch, forestAwakening - regeneration/lifesteal focus
|
||||||
|
- Sand spells (Earth + Water): sandBlast, sandstorm, desertWind, duneCollapse - AOE focus
|
||||||
|
- Lightning spells already existed but added tier 3 thunderStrike
|
||||||
|
|
||||||
|
- **Added utility mana type spells to constants.ts**:
|
||||||
|
- Mental spells: mindSpike, psychicBlast, mindCrush, cerebralAnnihilation - stun focus
|
||||||
|
- Transference spells: transferStrike, manaRip, essenceDrain, soulTransfer - lifesteal focus (Enchanter primary)
|
||||||
|
- Force spells: forcePush, kineticBlast, gravityWell, telekineticStorm - AOE/fast damage focus
|
||||||
|
|
||||||
|
- **Added research skills for compound and utility spells**:
|
||||||
|
- Tier 1 research skills for all compound types (blood, metal, wood, sand, lightning)
|
||||||
|
- Tier 2 advanced research for all compound types
|
||||||
|
- Tier 3 master research for all compound types
|
||||||
|
- Tier 1-3 research skills for utility types (mental, transference, force)
|
||||||
|
- All skills have appropriate prerequisites based on parent element research
|
||||||
|
|
||||||
|
- **Updated EFFECT_RESEARCH_MAPPING**:
|
||||||
|
- Added mappings for all 32 new spells to their respective research skills
|
||||||
|
- Compound spells require parent element research (e.g., blood needs life/death + water)
|
||||||
|
- Utility spells have their own independent research paths
|
||||||
|
|
||||||
|
- **Added enchantment effects for all new spells**:
|
||||||
|
- 40+ new enchantment effects added to enchantment-effects.ts
|
||||||
|
- All spells have appropriate capacity costs and descriptions
|
||||||
|
- All spell effects are for ALL_CASTER equipment category
|
||||||
|
|
||||||
|
Stage Summary:
|
||||||
|
- Complete spell coverage for all mana types (base, utility, compound, exotic)
|
||||||
|
- All mana types now have tier 1-3 spells with unique mechanics
|
||||||
|
- Research system properly gates access to advanced spell enchantments
|
||||||
|
- All 44 tests pass
|
||||||
|
- Lint passes clean
|
||||||
|
|||||||
Reference in New Issue
Block a user