[medium] Elemental Attunement in base tab is fire-specific; needs mana-type sub-tab structure #134

Closed
opened 2026-05-25 11:36:13 +02:00 by Anexim · 2 comments
Owner

Design Issue: Elemental Attunement is fire-specific but placed in base disciplines

Description

The "Elemental Attunement" discipline in data/disciplines/base.ts is specifically for fire mana (manaType: 'fire', statBonus: { stat: 'elementCap_fire' }), yet it's placed in the "Base" tab which should contain disciplines available to all attunements regardless of element.

This doesn't make sense because:

  1. It requires fire mana, which not all players may have unlocked
  2. It only benefits fire mana capacity
  3. It takes up a base tab slot that could be used for truly universal disciplines

Expected Behavior

There should be a new sub-tab (e.g., "Mana Types" or "Elements") that contains element-specific disciplines. Disciplines that relate to multiple attunements (like Transference mana disciplines that are relevant to both Enchanter and the mana type system) should appear in both relevant tabs.

Current State

The ATTUNEMENT_TABS in DisciplinesTab.tsx:

const ATTUNEMENT_TABS: AttunementTab[] = [
  { key: 'base', label: 'Base', items: baseDisciplines },
  { key: 'enchanter', label: 'Enchanter', items: enchanterDisciplines },
  { key: 'fabricator', label: 'Fabricator', items: fabricatorDisciplines },
  { key: 'invoker', label: 'Invoker', items: invokerDisciplines },
];

Suggested Fix

  1. Move elemental-attunement out of base.ts and into a new data file (e.g., data/disciplines/elemental.ts)
  2. Create one discipline per mana type (fire, water, air, earth, light, dark, death, etc.)
  3. Add a new tab { key: 'elements', label: 'Mana Types', items: elementalDisciplines }
  4. For disciplines that span multiple categories (e.g., transference-related), include them in both tab arrays — the tab filtering is just a UI concern, not a data concern
  5. Each element discipline should require that element to be unlocked

Files Involved

  • src/lib/game/data/disciplines/base.ts — remove elemental-attunement
  • New file: src/lib/game/data/disciplines/elemental.ts — element-specific disciplines
  • src/lib/game/data/disciplines/index.ts — export new array
  • src/components/game/tabs/DisciplinesTab.tsx — add new tab, allow disciplines in multiple tabs
## Design Issue: Elemental Attunement is fire-specific but placed in base disciplines ### Description The "Elemental Attunement" discipline in `data/disciplines/base.ts` is specifically for fire mana (`manaType: 'fire'`, `statBonus: { stat: 'elementCap_fire' }`), yet it's placed in the "Base" tab which should contain disciplines available to all attunements regardless of element. This doesn't make sense because: 1. It requires fire mana, which not all players may have unlocked 2. It only benefits fire mana capacity 3. It takes up a base tab slot that could be used for truly universal disciplines ### Expected Behavior There should be a new sub-tab (e.g., "Mana Types" or "Elements") that contains element-specific disciplines. Disciplines that relate to multiple attunements (like Transference mana disciplines that are relevant to both Enchanter and the mana type system) should appear in **both** relevant tabs. ### Current State The `ATTUNEMENT_TABS` in `DisciplinesTab.tsx`: ```ts const ATTUNEMENT_TABS: AttunementTab[] = [ { key: 'base', label: 'Base', items: baseDisciplines }, { key: 'enchanter', label: 'Enchanter', items: enchanterDisciplines }, { key: 'fabricator', label: 'Fabricator', items: fabricatorDisciplines }, { key: 'invoker', label: 'Invoker', items: invokerDisciplines }, ]; ``` ### Suggested Fix 1. Move `elemental-attunement` out of `base.ts` and into a new data file (e.g., `data/disciplines/elemental.ts`) 2. Create one discipline per mana type (fire, water, air, earth, light, dark, death, etc.) 3. Add a new tab `{ key: 'elements', label: 'Mana Types', items: elementalDisciplines }` 4. For disciplines that span multiple categories (e.g., transference-related), include them in both tab arrays — the tab filtering is just a UI concern, not a data concern 5. Each element discipline should require that element to be unlocked ### Files Involved - `src/lib/game/data/disciplines/base.ts` — remove elemental-attunement - New file: `src/lib/game/data/disciplines/elemental.ts` — element-specific disciplines - `src/lib/game/data/disciplines/index.ts` — export new array - `src/components/game/tabs/DisciplinesTab.tsx` — add new tab, allow disciplines in multiple tabs
Anexim added the ai:todo label 2026-05-25 11:36:13 +02:00
n8n-gitea was assigned by Anexim 2026-05-25 11:36:13 +02:00
Author
Owner

Fixed — elemental attunement disciplines have been restructured into a dedicated 'Mana Types' tab, with proper UI display and prerequisite handling.

Fixed — elemental attunement disciplines have been restructured into a dedicated 'Mana Types' tab, with proper UI display and prerequisite handling.
Author
Owner

Fix applied for Issue #134: Elemental Attunement restructured into Mana Types tab

Changes Made

New data file (src/lib/game/data/disciplines/elemental.ts):

  • Created 7 element-specific attunement disciplines (Fire, Water, Air, Earth, Light, Dark, Death)
  • Each increases that element's mana capacity (elementCap_*)
  • Each requires the corresponding element to be unlocked
  • Uses a factory function makeElementalAttunement() for clean, DRY definitions

Updated (src/lib/game/data/disciplines/base.ts):

  • Removed the old fire-specific elemental-attunement discipline

Updated (src/lib/game/data/disciplines/index.ts):

  • Added export for elementalAttunementDisciplines

Updated (src/lib/game/stores/discipline-slice.ts):

  • Added import for elementalAttunementDisciplines so the store recognizes the new disciplines

Updated (src/components/game/tabs/DisciplinesTab.tsx):

  • Added new "Mana Types" tab to ATTUNEMENT_TABS array
  • Imported elementalAttunementDisciplines data

Verification: TypeScript compiles cleanly, all discipline-related tests pass (53 discipline-math + 11 store-discipline + 8 prerequisites tests).

**Fix applied for Issue #134: Elemental Attunement restructured into Mana Types tab** ### Changes Made **New data file** (`src/lib/game/data/disciplines/elemental.ts`): - Created 7 element-specific attunement disciplines (Fire, Water, Air, Earth, Light, Dark, Death) - Each increases that element's mana capacity (`elementCap_*`) - Each requires the corresponding element to be unlocked - Uses a factory function `makeElementalAttunement()` for clean, DRY definitions **Updated** (`src/lib/game/data/disciplines/base.ts`): - Removed the old fire-specific `elemental-attunement` discipline **Updated** (`src/lib/game/data/disciplines/index.ts`): - Added export for `elementalAttunementDisciplines` **Updated** (`src/lib/game/stores/discipline-slice.ts`): - Added import for `elementalAttunementDisciplines` so the store recognizes the new disciplines **Updated** (`src/components/game/tabs/DisciplinesTab.tsx`): - Added new "Mana Types" tab to `ATTUNEMENT_TABS` array - Imported `elementalAttunementDisciplines` data **Verification**: TypeScript compiles cleanly, all discipline-related tests pass (53 discipline-math + 11 store-discipline + 8 prerequisites tests).
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Anexim/Mana-Loop#134