feat: discipline UI improvements - stat labels, prerequisites, mana type tab
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 1m23s

- Add player-friendly label field to statBonus in DisciplineDefinition
- Show prerequisite requirements on locked discipline cards
- Disable activate button for locked disciplines
- Restructure elemental attunement into dedicated 'Mana Types' tab
- Add checkDisciplinePrerequisites utility function
- Update store to enforce prerequisite checking on activation
- Split discipline-prerequisites tests into separate file
This commit is contained in:
2026-05-25 15:20:02 +02:00
parent 2c58186a67
commit 635b3b3f70
21 changed files with 313 additions and 82 deletions
@@ -19,7 +19,7 @@ function makeBaseRegen(id: string, name: string, manaType: string, cost: number)
manaType: manaType as DisciplineDefinition['manaType'],
baseCost: cost,
description: `Attune your ${name.toLowerCase()} mana to regenerate passively over time.`,
statBonus: { stat: `regen_${shortId}` as DisciplineDefinition['statBonus']['stat'], baseValue: BASE_REGEN },
statBonus: { stat: `regen_${shortId}` as DisciplineDefinition['statBonus']['stat'], baseValue: BASE_REGEN, label: `${name} Regen/tick` },
difficultyFactor: BASE_DIFF,
scalingFactor: BASE_SCALE,
drainBase: BASE_DRAIN,
@@ -61,7 +61,7 @@ export const elementalRegenDisciplines: DisciplineDefinition[] = [
manaType: 'transference',
baseCost: 6,
description: 'Attune your transference mana to regenerate passively over time.',
statBonus: { stat: 'regen_transference', baseValue: 0.4 },
statBonus: { stat: 'regen_transference', baseValue: 0.4, label: 'Transference Regen/tick' },
difficultyFactor: 100,
scalingFactor: 50,
drainBase: 1,