Add golemancy system, combination skills, and UI redesigns
All checks were successful
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 3m17s

- Remove scroll crafting skill (no consumables in idle game)
- Add golem types (Earth, Metal, Crystal) with variants (Lava, Mud, Forge, Storm)
- Implement golemancy state in store with summoning/drain mechanics
- Add combination skills requiring level 5+ in two attunements:
  - Enchanter+Fabricator: Enchanted Golems, Capacity Overflow
  - Invoker+Fabricator: Pact-Bonded Golems, Guardian Infusion
  - Invoker+Enchanter: Pact Enchantments, Elemental Resonance
- Redesign CraftingTab with sub-tabs for Enchanter/Fabricator
- Redesign SpireTab to show summoned golems and DPS contribution
- Redesign StatsTab with attunement-specific stats sections
- Update documentation (README.md, AGENTS.md)
This commit is contained in:
Z User
2026-03-28 07:56:52 +00:00
parent 3c79e66b87
commit 17c6d5652d
9 changed files with 1596 additions and 139 deletions

View File

@@ -407,3 +407,169 @@ Stage Summary:
- Debug tab enables testing and development
- Skills tab is more manageable with collapsible categories
- Removed unused features (ComboMeter, scrollCrafting)
---
Task ID: 16
Agent: Main
Task: Redesign SpireTab to show summoned golems and their damage contribution
Work Log:
- **Added new imports to SpireTab**:
- Imported `GOLEM_DEFS` and `GOLEM_VARIANTS` from `@/lib/game/constants`
- Using `ELEMENTS` for element colors and symbols
- **Created new "Active Golems" card**:
- Shows list of currently active golems from `store.activeGolems`
- Each golem displays:
- Name and variant (e.g., "Earth Golem" or "Lava Golem")
- HP bar (currentHP / maxHP) with element-colored gradient
- Remaining floors countdown
- DPS contribution (calculated with all bonuses applied)
- Element icon from ELEMENTS constant
- Empty state message: "No golems summoned. Visit the Crafting tab to summon golems."
- Total golem DPS summary at bottom
- Card has earth-colored accent (#F4A261) when golems are active
- **Updated DPS display in Current Floor card**:
- Total DPS now includes both spell DPS and golem DPS
- Shows breakdown: "Spell DPS: X | Golem DPS: Y"
- Only shows breakdown when golems are active
- **Calculated individual golem DPS**:
- Applies variant damage multiplier
- Applies golemancyMaster bonus (+50%)
- Applies pactBondedGolems bonus (+10% per pact)
- Applies guardianInfusion bonus (+25% on guardian floors)
- Multiplies by attack speed
- **Visual styling**:
- Used Card component for the golems section
- Used Progress component for HP bars
- Matches existing dark theme (bg-gray-900/80, border-gray-700)
- Golem cards have element-colored border accent
- Used ScrollArea for long golem lists (max-h-48)
Stage Summary:
- New Active Golems card shows all summoned golems with detailed stats
- DPS display properly accounts for golem damage contribution
- Visual design consistent with existing game theme
- All lint checks pass
---
## Task ID: 17 - CraftingTab Redesign
### Work Task
Redesign the CraftingTab component to have a two-level tab structure based on active attunements, with a new Golemancy sub-tab for summoning golems.
### Work Summary
- **Implemented two-level tab structure**:
- Top-level tabs show active attunements (Enchanter ✨, Fabricator ⚒️)
- If only one attunement is active, skip top-level tabs and show content directly
- If no attunements are active, show locked message
- **Enchanter attunement** (when active):
- Sub-tabs: Design, Prepare, Apply (existing enchantment functionality)
- All existing render functions preserved (renderDesignStage, renderPrepareStage, renderApplyStage)
- **Fabricator attunement** (when active):
- Sub-tabs: Craft, Golemancy
- Craft sub-tab: existing equipment crafting functionality (renderCraftStage)
- Golemancy sub-tab: NEW - summoning and managing golems
- **New Golemancy features**:
- Shows available golem types from `GOLEM_DEFS` with:
- Golem name, description, element color
- Base damage, HP, and attack speed stats
- Summon button with mana cost (e.g., "Summon - 50 Earth Mana")
- Shows locked golem types (greyed out) with unlock conditions
- Shows active golems with:
- HP progress bar
- Remaining floor duration
- Total damage dealt
- Dismiss button
- Shows golem variants info (requires Crystal Embedding skill)
- Uses store methods: `canSummonGolem()`, `summonGolem()`, `dismissGolem()`, `getGolemDuration()`
- Checks attunement status via `store.attunements.enchanter?.active` and `store.attunements.fabricator?.active`
- **New imports added**:
- `GOLEM_DEFS`, `GOLEM_VARIANTS`, `ELEMENTS` from `@/lib/game/constants`
- `ActiveGolem` type from `@/lib/game/types`
- Additional Lucide icons: `Heart`, `Sword`, `Skull`
- **Visual styling**:
- Maintains existing dark theme (bg-gray-900/80, border-gray-700)
- Element-colored accents for golem types
- Uses shadcn/ui components: Card, Button, Progress, Badge, ScrollArea, Tabs
- Consistent with existing CraftingTab styling
---
## Task ID: 18 - StatsTab Redesign for Attunement-Specific Stats
### Work Task
Redesign the StatsTab component to better display attunement-specific stats with Active Attunements card, Combination Skills card, and reorganized attunement-specific stat sections.
### Work Summary
- **Added "Active Attunements" card at the top**:
- Each active attunement displayed as an expandable card/badge with:
- Icon and name (Enchanter ✨, Invoker 💜, Fabricator ⚒️)
- Current level and XP progress bar
- Primary mana type generated as a badge
- Key capability unlocked as a badge
- Click to expand reveals:
- All available skills for that attunement
- Skills currently being studied (highlighted)
- Skill levels displayed with badges
- **Added "Combination Skills" card**:
- Shows combination skills that the player has unlocked (level 5+ in both required attunements)
- Skills they can unlock shown with requirement badges
- Green color scheme for available skills
- Greyed out style for locked skills with red/green requirement indicators
- Displays attunement level requirements for each skill
- **Reorganized existing stats into attunement-specific sections**:
- **Enchanter Stats** (teal accent border):
- Enchantment capacity with Ancient Echo bonus
- Efficiency bonus from efficientEnchant skill
- Designs created count
- Effects unlocked count
- Disenchant recovery rate
- Enchant speed bonus
- **Invoker Stats** (purple accent border):
- Pacts signed count (X/10)
- Pact multiplier calculation
- Pact Mastery bonus
- Guardian Affinity time reduction
- Elemental Bond capacity per pact
- Pact Synergy bonus
- Signed pacts list with guardian colors
- **Fabricator Stats** (earth/amber accent border):
- Golems active count
- Golem DPS (using store.getActiveGolemDPS())
- Golem duration (using store.getGolemDuration())
- Golem Vitality HP bonus
- Crafting speed bonus
- Earth conversion bonus
- Active golems list with HP bars and damage dealt
- **Import requirements fulfilled**:
- Imported `ATTUNEMENTS_DEF` from `@/lib/game/data/attunements`
- Imported `SKILL_CATEGORIES` from `@/lib/game/constants`
- Uses `store.attunements` to check active attunements
- Uses `store.getGolemDuration()` and `store.getActiveGolemDPS()` for Fabricator stats
- **Visual styling**:
- Uses Card, Badge, Progress, Collapsible components from shadcn/ui
- Matches existing dark theme (bg-gray-900/80, border-gray-700)
- Uses attunement colors from ATTUNEMENTS_DEF:
- Enchanter: teal #1ABC9C
- Invoker: purple #9B59B6
- Fabricator: earth #F4A261
- Top border accent for each attunement-specific section
- Conditional rendering - only shows attunement sections if that attunement is active
- **Preserved existing functionality**:
- Mana Stats section retained
- Combat Stats section retained
- Study Stats section retained
- Element Stats section retained
- Active Skill Upgrades section retained
- Loop Stats section retained