9b559bb9f9
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 1m23s
- Add roomEnchantment field to FloorState (coverage meter 0-100) - Add 8 room enchantment effect definitions (fire/frost/death/lightning/dark/earth/transference) - Add room-enchanting discipline with perks (room-coverage-rate capped, resonant-stamps once, 8 unlock perks) - Add room enchantment combat tick phase (after DoT) with coverage growth and effect application - Add coverage carryover between rooms via resonant-stamps perk - Add RoomDisplay coverage bar and effect magnitude UI - Add room-enchantments-utils.ts for coverage/effect computation - Extract combat-room-enchantments.ts to keep combat-actions.ts under 400 lines - Add 25 tests covering all acceptance criteria (AC-1 through AC-22)
103 lines
3.2 KiB
TypeScript
103 lines
3.2 KiB
TypeScript
// ─── Enchanter Combat Disciplines ──────────────────────────────────────────────
|
|
// Room Enchanting discipline for the Room Enchantments system
|
|
|
|
import { DisciplinesAttunementType } from '../../types/disciplines';
|
|
import type { DisciplineDefinition } from '../../types/disciplines';
|
|
|
|
export const enchanterCombatDisciplines: DisciplineDefinition[] = [
|
|
{
|
|
id: 'room-enchanting',
|
|
name: 'Room Enchanting',
|
|
attunement: DisciplinesAttunementType.ENCHANTER,
|
|
manaType: 'transference',
|
|
baseCost: 10,
|
|
description: 'Empower your footwear enchantments to fill the room with elemental auras during combat. Higher mastery increases aura magnitude.',
|
|
statBonus: { stat: 'roomEnchantmentAuraMagnitude', baseValue: 0.10, label: 'Room Aura Magnitude' },
|
|
difficultyFactor: 150,
|
|
scalingFactor: 100,
|
|
drainBase: 3,
|
|
perks: [
|
|
{
|
|
id: 'room-coverage-rate',
|
|
type: 'capped',
|
|
threshold: 100,
|
|
value: 150,
|
|
maxTier: 4,
|
|
description: '+0.03 coverage/tick per tier (max 4)',
|
|
bonus: { stat: 'roomCoverageRate', amount: 0.03 },
|
|
},
|
|
{
|
|
id: 'resonant-stamps',
|
|
type: 'once',
|
|
threshold: 500,
|
|
value: 0,
|
|
description: 'Carry 20% coverage between rooms (max 20%)',
|
|
},
|
|
{
|
|
id: 'room-sigil-fire',
|
|
type: 'once',
|
|
threshold: 50,
|
|
value: 0,
|
|
description: 'Unlock Blazing Footsteps room enchantment',
|
|
unlocksEffects: ['boots_sigil_fire'],
|
|
},
|
|
{
|
|
id: 'room-sigil-frost',
|
|
type: 'once',
|
|
threshold: 75,
|
|
value: 0,
|
|
description: 'Unlock Frozen Trail room enchantment',
|
|
unlocksEffects: ['boots_sigil_frost'],
|
|
},
|
|
{
|
|
id: 'room-sigil-death',
|
|
type: 'once',
|
|
threshold: 100,
|
|
value: 0,
|
|
description: 'Unlock Necrotic Tread room enchantment',
|
|
unlocksEffects: ['boots_sigil_death'],
|
|
},
|
|
{
|
|
id: 'room-sigil-lightning',
|
|
type: 'once',
|
|
threshold: 125,
|
|
value: 0,
|
|
description: 'Unlock Shocking Stride room enchantment',
|
|
unlocksEffects: ['boots_sigil_lightning'],
|
|
},
|
|
{
|
|
id: 'room-sigil-dark',
|
|
type: 'once',
|
|
threshold: 150,
|
|
value: 0,
|
|
description: 'Unlock Shadow Patch room enchantment',
|
|
unlocksEffects: ['boots_sigil_dark'],
|
|
},
|
|
{
|
|
id: 'room-sigil-earth',
|
|
type: 'once',
|
|
threshold: 175,
|
|
value: 0,
|
|
description: 'Unlock Scoured Earth room enchantment',
|
|
unlocksEffects: ['boots_sigil_earth'],
|
|
},
|
|
{
|
|
id: 'room-sigil-transference-ground',
|
|
type: 'once',
|
|
threshold: 100,
|
|
value: 0,
|
|
description: 'Unlock Transference Grounds room enchantment',
|
|
unlocksEffects: ['boots_sigil_transference_ground'],
|
|
},
|
|
{
|
|
id: 'room-sigil-transference-path',
|
|
type: 'once',
|
|
threshold: 125,
|
|
value: 0,
|
|
description: 'Unlock Conductive Path room enchantment',
|
|
unlocksEffects: ['boots_sigil_transference_path'],
|
|
},
|
|
],
|
|
},
|
|
];
|