feat: implement Room Enchantments system for Enchanter attunement
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 1m23s
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)
This commit is contained in:
@@ -0,0 +1,102 @@
|
||||
// ─── 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'],
|
||||
},
|
||||
],
|
||||
},
|
||||
];
|
||||
Reference in New Issue
Block a user