594eec1ab4
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 1m20s
Priority 4 fixes: - #50: getUnlockedAttunements filter now only returns active attunements - #48: doPrestige return type changed from void to boolean - #47: ConfirmDialog now catches and displays async errors from onConfirm - #46: GameStateDebug Fill Mana now uses direct setState instead of loop - #55: DisciplinesTab statBonus/baseValue props verified correct - #56: DisciplinesTab tab filtering verified working Priority 3 fixes: - #45: drain spell description changed from 'life force' to 'vital energy' - #44: removed banned 'ascension' skill category - #43: renamed lifeEssenceDrop to vitalityEssenceDrop - #42: pactMaster achievement requirement changed from 12 to 9 - #40: golems/utils.ts and equipment/utils.ts now import from index - #39: removed duplicate RoomType from constants/rooms.ts - #38: consolidated EquipmentSlot type in types/equipmentSlot.ts - #37: removed duplicate EnchantmentEffectDef from spell-effects/types.ts - #36: renamed RARITY_COLORS in loot-drops.ts to LOOT_RARITY_COLORS
162 lines
3.3 KiB
TypeScript
162 lines
3.3 KiB
TypeScript
// ─── Basic Elemental Spells (Tier 1) ────────────────────────────────────────
|
|
import type { SpellDef } from '../../types';
|
|
import { elemCost } from '../elements';
|
|
|
|
export const BASIC_ELEMENTAL_SPELLS: Record<string, SpellDef> = {
|
|
// Tier 1 - Basic Elemental Spells (2-4 hours study)
|
|
fireball: {
|
|
name: "Fireball",
|
|
elem: "fire",
|
|
dmg: 15,
|
|
cost: elemCost("fire", 2),
|
|
tier: 1,
|
|
castSpeed: 2,
|
|
unlock: 100,
|
|
studyTime: 2,
|
|
desc: "Hurl a ball of fire at your enemy."
|
|
},
|
|
emberShot: {
|
|
name: "Ember Shot",
|
|
elem: "fire",
|
|
dmg: 10,
|
|
cost: elemCost("fire", 1),
|
|
tier: 1,
|
|
castSpeed: 3,
|
|
unlock: 75,
|
|
studyTime: 1,
|
|
desc: "A quick shot of embers. Efficient fire damage."
|
|
},
|
|
waterJet: {
|
|
name: "Water Jet",
|
|
elem: "water",
|
|
dmg: 12,
|
|
cost: elemCost("water", 2),
|
|
tier: 1,
|
|
castSpeed: 2,
|
|
unlock: 100,
|
|
studyTime: 2,
|
|
desc: "A high-pressure jet of water."
|
|
},
|
|
iceShard: {
|
|
name: "Ice Shard",
|
|
elem: "water",
|
|
dmg: 14,
|
|
cost: elemCost("water", 2),
|
|
tier: 1,
|
|
castSpeed: 2,
|
|
unlock: 120,
|
|
studyTime: 2,
|
|
desc: "Launch a sharp shard of ice."
|
|
},
|
|
gust: {
|
|
name: "Gust",
|
|
elem: "air",
|
|
dmg: 10,
|
|
cost: elemCost("air", 2),
|
|
tier: 1,
|
|
castSpeed: 3,
|
|
unlock: 100,
|
|
studyTime: 2,
|
|
desc: "A powerful gust of wind."
|
|
},
|
|
windSlash: {
|
|
name: "Wind Slash",
|
|
elem: "air",
|
|
dmg: 12,
|
|
cost: elemCost("air", 2),
|
|
tier: 1,
|
|
castSpeed: 2.5,
|
|
unlock: 110,
|
|
studyTime: 2,
|
|
desc: "A cutting blade of wind."
|
|
},
|
|
stoneBullet: {
|
|
name: "Stone Bullet",
|
|
elem: "earth",
|
|
dmg: 16,
|
|
cost: elemCost("earth", 2),
|
|
tier: 1,
|
|
castSpeed: 2,
|
|
unlock: 150,
|
|
studyTime: 3,
|
|
desc: "Launch a bullet of solid stone."
|
|
},
|
|
rockSpike: {
|
|
name: "Rock Spike",
|
|
elem: "earth",
|
|
dmg: 18,
|
|
cost: elemCost("earth", 3),
|
|
tier: 1,
|
|
castSpeed: 1.5,
|
|
unlock: 180,
|
|
studyTime: 3,
|
|
desc: "Summon a spike of rock from below."
|
|
},
|
|
lightLance: {
|
|
name: "Light Lance",
|
|
elem: "light",
|
|
dmg: 18,
|
|
cost: elemCost("light", 2),
|
|
tier: 1,
|
|
castSpeed: 2,
|
|
unlock: 200,
|
|
studyTime: 4,
|
|
desc: "A piercing lance of pure light."
|
|
},
|
|
radiance: {
|
|
name: "Radiance",
|
|
elem: "light",
|
|
dmg: 14,
|
|
cost: elemCost("light", 2),
|
|
tier: 1,
|
|
castSpeed: 2.5,
|
|
unlock: 180,
|
|
studyTime: 3,
|
|
desc: "Burst of radiant energy."
|
|
},
|
|
shadowBolt: {
|
|
name: "Shadow Bolt",
|
|
elem: "dark",
|
|
dmg: 16,
|
|
cost: elemCost("dark", 2),
|
|
tier: 1,
|
|
castSpeed: 2,
|
|
unlock: 200,
|
|
studyTime: 4,
|
|
desc: "A bolt of shadowy energy."
|
|
},
|
|
darkPulse: {
|
|
name: "Dark Pulse",
|
|
elem: "dark",
|
|
dmg: 12,
|
|
cost: elemCost("dark", 1),
|
|
tier: 1,
|
|
castSpeed: 3,
|
|
unlock: 150,
|
|
studyTime: 2,
|
|
desc: "A quick pulse of darkness."
|
|
},
|
|
drain: {
|
|
name: "Drain",
|
|
elem: "death",
|
|
dmg: 10,
|
|
cost: elemCost("death", 2),
|
|
tier: 1,
|
|
castSpeed: 2,
|
|
unlock: 150,
|
|
studyTime: 3,
|
|
desc: "Siphon vital energy from your enemy."
|
|
},
|
|
rotTouch: {
|
|
name: "Rot Touch",
|
|
elem: "death",
|
|
dmg: 14,
|
|
cost: elemCost("death", 2),
|
|
tier: 1,
|
|
castSpeed: 2,
|
|
unlock: 170,
|
|
studyTime: 3,
|
|
desc: "Touch of decay and rot."
|
|
},
|
|
};
|