[priority: medium-high] Discipline elemental revamp: naming, locking, tab structure, and code deduplication #180
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Description
The Elemental disciplines in the Discipline tab need a major overhaul across six areas:
1. Rename disciplines for clarity
src/lib/game/data/disciplines/elemental.tsline 34,elemental-regen.tsline 292. Lock capacity disciplines behind mana type access
requiresfield, so they're unlocked from the start regardless of whether the player has access to that mana typerequires: [manaType]— capacity disciplines should toorequires: [cfg.manaType]to capacity disciplines inelemental.tssrc/lib/game/data/disciplines/elemental.ts3. Combine "Mana Types" and "Elemental Flow" into a single tab
src/components/game/tabs/DisciplinesTab.tsxlines 43–52 (ATTUNEMENT_TABSarray)4. Add missing capacity disciplines for all mana types
transference,metal,sand,lightning,crystal,stellar,void5. Create utility function to generate identical discipline data for all mana types
createManaCapacityDiscipline(cfg)/createManaConversionDiscipline(cfg)) would eliminate ~50 lines of repetition per fileelemental.tshasmakeElementalAttunement(),elemental-regen.tshasmakeBaseConversion(), butelemental-regen-advanced.ts(233 lines) is entirely hand-written with no factory function6. Remove "/tick" from all stat bonus labels
statBonus.labelAffected Files
src/components/game/tabs/DisciplinesTab.tsx—ATTUNEMENT_TABSarray (lines 43–52),missingSourceManalock check (lines 263–268)src/lib/game/data/disciplines/elemental.ts— capacity disciplines (55 lines)src/lib/game/data/disciplines/elemental-regen.ts— conversion disciplines (102 lines)src/lib/game/data/disciplines/elemental-regen-advanced.ts— advanced conversion disciplines (233 lines, fully manual)src/lib/game/data/disciplines/index.ts— barrel exportssrc/lib/game/utils/discipline-math.ts—checkDisciplinePrerequisites()(lines 118–162)Starting work on Discipline elemental revamp. Will tackle all 6 areas: renaming, locking capacity disciplines, combining tabs, adding missing mana types, creating utility functions for deduplication, and removing "/tick" from labels.
Completed: Discipline Elemental Revamp
All 6 areas addressed:
✅ 1. Renamed disciplines for clarity
elemental.ts,elemental-regen.ts,elemental-regen-advanced.ts✅ 2. Locked capacity disciplines behind mana type access
requires: [manaType]to all capacity disciplines inelemental.ts✅ 3. Combined tabs into single "Elemental" tab
elemental, items: spread of all capacity + conversion disciplinesDisciplinesTab.tsxATTUNEMENT_TABSarray✅ 4. Added missing capacity disciplines for all mana types
transference,metal,sand,lightning,crystal,stellar,void✅ 5. Created utility functions for discipline generation
elemental.ts:createManaCapacityDiscipline()factoryelemental-regen.ts:createManaConversionDiscipline()factoryelemental-regen-advanced.ts:createAdvancedConversionDiscipline()factoryelemental-regen-advanced.ts233→152 (-81 lines)✅ 6. Removed "/tick" from stat bonus labels
✅ Tests
store-actions-discipline.test.tsto reflect new mana type lock behavior