Files
Mana-Loop/docs/specs/attunements/enchanter/enchanter-spec.md
T
n8n-gitea b506f0bcc3
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 1m18s
feat: implement DoT/debuff runtime system (spec §6, AC-12, AC-13)
- Add ActiveEffect, EffectType types to game.ts; activeEffects + effectiveArmor on EnemyState
- Add SpellOnHitEffect + onHitEffect field to SpellDefinition
- Wire onHitEffect to fire (burn), death (curse), lightning (armor_corrode), frost (freeze), soul (bypassArmor burn)
- Add applyOnHitEffect() — applies on-hit effect on successful spell hit (spec §6.2)
- Add processDoTPhase() — ticks all active effects after weapon/golem attacks (spec §6.3)
- Add bypassArmor/bypassBarrier support in applyEnemyDefenses() (AC-13)
- Export standalone applyEnemyDefenses from combat-tick.ts for DoT pipeline
- Split DoT runtime into separate dot-runtime.ts (135 lines) to keep combat-actions.ts under 400 lines
- Update all enemy generation sites with activeEffects/effectiveArmor defaults
- Fix test helpers for new required fields

All 921 tests pass (45 test files)
2026-06-03 18:38:01 +02:00

12 KiB
Raw Blame History

Enchanter Attunement — Design Spec

Describes the Enchanter attunement: identity, unlock flow, mana behavior, full discipline list with stats/perks, systems unlocked, and attunement level interactions.


1. Objective

The Enchanter is the starting attunement and the gateway to the enchanting system. It provides access to Transference-based disciplines that unlock enchantment effects, boost enchantment power, and provide study/utility bonuses. The Enchanter is always the first attunement a player uses, and it remains relevant throughout all stages of the game through its 10 disciplines and the deep enchanting pipeline.


2. Identity

Property Value
ID enchanter
Slot rightHand
Icon
Color #1ABC9C (Teal)
Primary Mana transference
Raw Mana Regen +0.5/hour (base, scales with 1.5^(level-1))
Conversion Rate 0.2 raw→transference/hour (base, scales with 1.5^(level-1))
Unlock Starting attunement (unlocked by default)
Capabilities ['enchanting']
Skill Categories ['enchant', 'effectResearch']

3. Unlock Condition and Flow

The Enchanter is always unlocked — it is present in the initial game state:

attunements: {
  enchanter: { id: 'enchanter', active: true, level: 1, experience: 0 }
}

No unlock flow is required. The player begins the game with Enchanter active.


4. Raw Mana Regen Contribution

Base regen: +0.5/hour (at level 1). Scales exponentially:

effectiveRegen = 0.5 × 1.5^(level - 1)
Level Raw Regen
1 0.500/hr
5 2.531/hr
10 19.221/hr

5. Mana Conversion Behavior

The Enchanter is the only attunement that converts raw mana to Transference:

effectiveConversionRate = 0.2 × 1.5^(level - 1)

This is an automatic per-hour conversion. Each tick:

  • 0.2 × 1.5^(level-1) × HOURS_PER_TICK raw mana is consumed
  • The same amount is added to the Transference mana pool

At level 10, the Enchanter converts 7.69 raw→transference/hour.


6. Disciplines

The Enchanter's discipline pool contains 10 disciplines across 4 files.

6.1 Core Disciplines (enchanter.ts) — 4 disciplines

Enchantment Crafting (enchant-crafting)

Field Value
Mana Type transference
Base Cost 8
Stat Bonus enchantPower +8 (base)
Scaling Factor 60
Difficulty Factor 120
Drain Base 3
Perk ID Type Threshold Bonus
enchant-1 infinite 150 +5 enchantPower per tier (repeats every 150 XP)
enchant-2 capped 300 +10 enchantPower per tier, interval 200 XP, max 3 tiers

Mana Channeling (mana-channeling)

Field Value
Mana Type transference
Base Cost 12
Stat Bonus clickManaMultiplier +0.3 (base)
Scaling Factor 90
Difficulty Factor 180
Drain Base 5
Perk ID Type Threshold Bonus
channel-1 once 250 elementCap_lightning +15

Study Basic Weapon Enchantments (study-basic-weapon-enchantments)

Field Value
Mana Type transference
Base Cost 10
Stat Bonus enchantPower +3 (base)
Scaling Factor 80
Difficulty Factor 100
Drain Base 2
Perk ID Type Threshold Unlocks
basic-weapon-fire once 50 sword_fire
basic-weapon-frost once 100 sword_frost
basic-weapon-lightning once 150 sword_lightning

Study Advanced Weapon Enchantments (study-advanced-weapon-enchantments)

Field Value
Mana Type transference
Base Cost 20
Requires study-basic-weapon-enchantments
Stat Bonus enchantPower +5 (base)
Scaling Factor 120
Difficulty Factor 200
Drain Base 4
Perk ID Type Threshold Unlocks
advanced-weapon-void once 100 sword_void
advanced-weapon-damage-5 once 150 damage_5
advanced-weapon-crit once 200 crit_5
advanced-weapon-attack-speed once 250 attack_speed_10

6.2 Utility Disciplines (enchanter-utility.ts) — 2 disciplines

Study Utility Enchantments (study-utility-enchantments)

Field Value
Mana Type transference
Base Cost 8
Stat Bonus studySpeed +0.05 (base)
Scaling Factor 60
Difficulty Factor 80
Drain Base 2
Perk ID Type Threshold Unlocks
utility-meditate once 50 meditate_10
utility-study once 100 study_10
utility-insight once 150 insight_5

Study Mana Enchantments (study-mana-enchantments)

Field Value
Mana Type transference
Base Cost 15
Stat Bonus maxManaBonus +10 (base)
Scaling Factor 100
Difficulty Factor 150
Drain Base 3
Perk ID Type Threshold Unlocks
mana-cap-50 once 75 mana_cap_50
mana-cap-100 once 150 mana_cap_100
mana-regen-1 once 100 mana_regen_1
mana-regen-2 once 200 mana_regen_2
click-mana-1 once 125 click_mana_1
click-mana-3 once 225 click_mana_3

6.3 Spell Disciplines (enchanter-spells.ts) — 3 disciplines

Study Basic Spell Enchantments (study-basic-spell-enchantments)

Field Value
Mana Type transference
Base Cost 18
Stat Bonus enchantPower +4 (base)
Scaling Factor 100
Difficulty Factor 160
Drain Base 3
Perk ID Type Threshold Unlocks
spell-mana-bolt once 50 spell_manaBolt
spell-fireball once 100 spell_fireball
spell-water-jet once 100 spell_waterJet
spell-gust once 100 spell_gust
spell-stone-bullet once 100 spell_stoneBullet
spell-light-lance once 150 spell_lightLance
spell-shadow-bolt once 150 spell_shadowBolt
spell-drain once 150 spell_drain

Study Intermediate Spell Enchantments (study-intermediate-spell-enchantments)

Field Value
Mana Type transference
Base Cost 25
Requires study-basic-spell-enchantments
Stat Bonus enchantPower +6 (base)
Scaling Factor 150
Difficulty Factor 250
Drain Base 5
Perk ID Type Threshold Unlocks
spell-inferno once 100 spell_inferno
spell-tidal-wave once 100 spell_tidalWave
spell-earthquake once 120 spell_earthquake
spell-chain-lightning once 100 spell_chainLightning
spell-metal-shard once 80 spell_metalShard
spell-sand-blast once 80 spell_sandBlast

Study Advanced Spell Enchantments (study-advanced-spell-enchantments)

Field Value
Mana Type transference
Base Cost 35
Requires study-intermediate-spell-enchantments
Stat Bonus enchantPower +10 (base)
Scaling Factor 200
Difficulty Factor 350
Drain Base 7
Perk ID Type Threshold Unlocks
spell-pyroclasm once 100 spell_pyroclasm
spell-tsunami once 100 spell_tsunami
spell-meteor-strike once 120 spell_meteorStrike
spell-heaven-light once 100 spell_heavenLight
spell-oblivion once 100 spell_oblivion
spell-furnace-blast once 100 spell_furnaceBlast
spell-dune-collapse once 100 spell_duneCollapse
spell-stellar-nova once 200 spell_stellarNova
spell-void-collapse once 180 spell_voidCollapse
spell-crystal-shatter once 160 spell_crystalShatter

6.4 Special Discipline (enchanter-special.ts) — 1 discipline

Study Special Enchantments (study-special-enchantments)

Field Value
Mana Type transference
Base Cost 22
Requires study-advanced-weapon-enchantments
Stat Bonus enchantPower +5 (base)
Scaling Factor 130
Difficulty Factor 220
Drain Base 4
Perk ID Type Threshold Unlocks
special-spell-echo once 100 spell_echo_10
special-guardian-dmg once 80 guardian_dmg_10
special-overpower once 150 overpower_80
special-first-strike once 120 first_strike
special-combo-master once 200 combo_master
special-adrenaline-rush once 180 adrenaline_rush

7. Systems Unlocked

The Enchanter attunement gates the Enchanting System (see enchanting-spec.md):

  • Design stage: Create named enchantment designs
  • Prepare stage: Clear existing enchantments, ready equipment
  • Apply stage: Apply saved designs to prepared equipment

8. Puzzle Room Behavior

In the spire, every 7th floor has a puzzle room. When the room type is enchanter_trial, progress scales at 2.53% per tick per Enchanter level.


9. Attunement Level Interactions

Higher Enchanter level affects:

  1. Raw mana regen: 0.5 × 1.5^(level-1) per hour
  2. Transference conversion rate: 0.2 × 1.5^(level-1) per hour
  3. Enchanting XP → Attunement XP: Enchanting awards Enchanter XP (1 per 10 capacity used), feeding back into leveling

Attunement level does not directly affect enchantment strength or discipline power — those scale through discipline XP alone.


10. Discipline Dependency Chain

enchant-crafting                     (root)
mana-channeling                      (root)
study-basic-weapon-enchantments      (root)
  └── study-advanced-weapon-enchantments
        └── study-special-enchantments
study-utility-enchantments           (root)
study-mana-enchantments              (root)
study-basic-spell-enchantments       (root)
  └── study-intermediate-spell-enchantments
        └── study-advanced-spell-enchantments

6 root disciplines. Maximum dependency depth: 3.


11. Acceptance Criteria

# Criterion
AC-1 Enchanter starts unlocked at level 1 with 0 XP.
AC-2 All 10 Enchanter disciplines are available when Enchanter is active.
AC-3 Discipline dependency chains are enforced — Advanced Weapon Enchantments requires Basic Weapon Enchantments.
AC-4 All perk thresholds unlock the correct enchantment effects at the specified XP values.
AC-5 Enchantment Power stat bonus from all active Enchanter disciplines stacks additively.
AC-6 The enchant-1 infinite perk grants +5 enchantPower every 150 XP beyond threshold.
AC-7 The enchant-2 capped perk grants +10 enchantPower per tier, max 3 tiers, interval 200 XP beyond threshold.
AC-8 Enchanting system is accessible when Enchanter is active, locked when inactive.
AC-9 Enchanter enchanter_trial puzzle rooms grant bonus progress per Enchanter level.
AC-10 Enchanter level scales raw regen and conversion rate by 1.5^(level-1).

12. Files Reference

File Role
src/lib/game/data/attunements.ts Enchanter definition
src/lib/game/data/disciplines/enchanter.ts Core Enchanter disciplines (4)
src/lib/game/data/disciplines/enchanter-utility.ts Utility enchantment disciplines (2)
src/lib/game/data/disciplines/enchanter-spells.ts Spell enchantment disciplines (3)
src/lib/game/data/disciplines/enchanter-special.ts Special enchantment discipline (1)
docs/specs/attunements/enchanter/systems/enchanting-spec.md Enchanting system spec