[High] [Feature] Redesign Golemancy System: Component-Based Construction (Core + Frame + Mind Circuit + Enchantments) #289
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?
Type: Feature / System Redesign
Priority: High
Overview
Complete redesign of the Golemancy system from predefined golem types (10 fixed golems) to a component-based construction system where players design custom golems by assembling:
This is the full specification as detailed in the updated
docs/specs/attunements/fabricator/systems/golemancy-spec.md(see Gitea issue #268 comment for the original redesign proposal).Scope of Work
Phase 1: Data Definitions (New Files)
src/lib/game/data/golems/cores.ts— 4 Core tiers (Basic, Intermediate, Advanced, Guardian)src/lib/game/data/golems/frames.ts— 7 Frames (Earth, Sand, Frost, Crystal, Steel, Shadowglass, Crystal-Steel Hybrid)src/lib/game/data/golems/mindCircuits.ts— 4 Circuits (Simple, Intermediate, Advanced, Guardian)src/lib/game/data/golems/golemEnchantments.ts— Enchantment definitions (mirror sword enchants)src/lib/game/data/golems/types.ts— New interfaces for component systemsrc/lib/game/data/golems/index.ts— Barrel exportsPhase 2: Discipline Updates
src/lib/game/data/disciplines/fabricator.ts— Golem Crafting discipline perks to match new systemgolem-1: Unlock golem design ability (was "summoning")golem-2: +1 Golem Capacity per tier (unchanged)Phase 3: Golem Design Builder UI
src/components/game/tabs/GolemancyTab.tsxPhase 4: Runtime System (Stores & Pipelines)
src/lib/game/stores/golem-combat-actions.ts— New combat logicsrc/lib/game/stores/pipelines/golem-combat.ts— Pipeline integrationPhase 5: Guardian Constructs (Endgame)
Acceptance Criteria (from spec §18)
floor(fabricatorLevel / 2)+ discipline bonus (max 7)Breaking Changes
src/lib/game/data/golems/base-golems.ts,elemental-golems.ts,hybrid-golems.ts,utils.tsGolemDefinterface with component-basedGolemDesign+ component definitionsDependencies
spire-combat-spec.md §9update (runtime spec)Estimated Effort
Large — This is a full system rewrite. Recommend splitting into sub-issues per phase if needed.
Related
golemancy-spec.md(pre-redesign)docs/specs/spire-combat-spec.md §9(needs parallel update)Updated golemancy-spec.md with the complete component-based construction system redesign per issue #268 comment. Created this implementation issue (#289) to track the full rewrite. Spec now covers:
Ready to begin Phase 1: Data Definitions.
Starting Phase 1: Data Definitions for the Golemancy component-based redesign.
Plan:
Beginning implementation now.
Phase 1 Complete: Data Definitions for Component-Based Golemancy
Files Created/Modified:
New data files:
src/lib/game/data/golems/types.ts— New interfaces (GolemDesign, CoreDefinition, FrameDefinition, MindCircuitDefinition, EnchantmentDefinition, RuntimeActiveGolem, SerializedGolemDesign)src/lib/game/data/golems/cores.ts— 4 Core tiers (Basic, Intermediate, Advanced, Guardian)src/lib/game/data/golems/frames.ts— 7 Frames (Earth, Sand, Frost, Crystal, Steel, Shadowglass, Crystal-Steel Hybrid)src/lib/game/data/golems/mindCircuits.ts— 4 Mind Circuits (Simple, Intermediate, Advanced, Guardian)src/lib/game/data/golems/golemEnchantments.ts— 8 enchantment definitionssrc/lib/game/data/golems/golems-data.ts— Updated barrel exportssrc/lib/game/data/golems/utils.ts— Rewritten for component-based system (computeGolemStats, canAffordGolemDesign, isComponentUnlocked, etc.)src/lib/game/data/golems/index.ts— Updated barrel exportsUpdated types:
src/lib/game/types/game.ts— Added GolemLoadoutEntry, RuntimeActiveGolem, SerializedGolemDesign, updated GolemancyStatesrc/lib/game/types.ts— Added new type re-exportssrc/lib/game/types/index.ts— Added new type re-exportsUpdated discipline:
src/lib/game/data/disciplines/fabricator.ts— Changed "Unlock golem summoning" → "Unlock golem design ability"Updated runtime:
src/lib/game/stores/golem-combat-actions.ts— Rewritten for component-based systemsrc/lib/game/stores/pipelines/golem-combat.ts— Rewritten pipeline integrationsrc/lib/game/stores/combat-state.types.ts— Updated to use RuntimeActiveGolemsrc/lib/game/stores/combatStore.ts— Updated golemancy initial state and processCombatTicksrc/lib/game/stores/combat-actions.ts— Updated to use new golem combat functionssrc/lib/game/stores/combat-descent-actions.ts— Updated golemancy reset statesrc/lib/game/stores/pipelines/combat-tick.ts— Updated golem room-duration countdownUpdated UI:
src/components/game/tabs/GolemancyTab.tsx— Rewritten for component-based design buildersrc/components/game/tabs/golemancy/GolemDesignBuilder.tsx— New componentsrc/components/game/tabs/golemancy/GolemLoadoutPanel.tsx— New componentsrc/components/game/tabs/golemancy/ActiveGolemsPanel.tsx— New componentsrc/components/game/tabs/golemancy/GolemancySharedComponents.tsx— New componentsrc/components/game/tabs/golemancy/golemancy-utils.ts— New utility filesrc/components/game/tabs/golemancy/types.ts— New shared typessrc/components/game/tabs/DebugTab/GolemDebugSection.tsx— Updated for new systemsrc/components/game/tabs/SpireCombatPage/SpireCombatControls.tsx— Updated for new systemUpdated tests:
src/components/game/tabs/golemancy/GolemancyComponents.test.ts— Tests for computeGolemStatssrc/components/game/tabs/golemancy/golemancy-components.test.ts— Tests for component registriessrc/components/game/tabs/golemancy/golemancy-utils.test.ts— Tests for utility functionsVerification:
Next Phases:
Phase 1 (Data Definitions) complete and pushed. 43 files changed, 2755 insertions, 936 deletions. All 941 tests passing. Legacy golem files (base-golems.ts, elemental-golems.ts, hybrid-golems.ts) still exist for backward compatibility but are no longer imported by the new system.
Cleanup Complete — All Phases Finished
Bugs Fixed:
golemLoadoutinstead of the removedenabledGolemsfieldcomputeDisciplineEffects().bonuses.golemCapacity) instead of hardcoded0Legacy Cleanup:
SummonedGolem,ActiveGolem,GolemDefGolemancyStatefields:enabledGolems,summonedGolems,legacyActiveGolemstoggleGolem(),setEnabledGolems()base-golems.ts,elemental-golems.ts,hybrid-golems.tsGolemDebugSection.tsxto use new golemLoadout systemgolemancy-spec.md§17 — all features marked ✅ CompleteVerification:
Commit:
9d4b3f3— 28 files changed, 90 insertions(+), 444 deletions(-)All phases complete. Issue resolved — see comment above for details.