Some checks failed
Build and Publish Mana Loop Docker Image / build-and-publish (push) Failing after 1m14s
- Create AttunementsTab component with visual display of all 3 attunements - Show primary mana type, regen stats, and capabilities for each attunement - Add visual effects for active attunements (color, glow) - Filter skill categories based on active attunements in SkillsTab - Add attunement tab navigation in main page - Display available skill categories summary in AttunementsTab
264 lines
12 KiB
Markdown
Executable File
264 lines
12 KiB
Markdown
Executable File
# Mana Loop Worklog
|
|
|
|
---
|
|
Task ID: 1
|
|
Agent: Main
|
|
Task: Fix skill upgrade effects not being applied
|
|
|
|
Work Log:
|
|
- Identified the issue: special effects like Mana Cascade were defined but never processed
|
|
- Added `specials: Set<string>` to ComputedEffects interface in upgrade-effects.ts
|
|
- Created SPECIAL_EFFECTS constant with all special effect IDs
|
|
- Added `hasSpecial()` helper function to check if a special is active
|
|
- Updated `computeEffects()` to collect special effects into the set
|
|
|
|
Stage Summary:
|
|
- Created the foundation for special effect tracking
|
|
- All special effects are now recognized and can be checked with hasSpecial()
|
|
|
|
---
|
|
Task ID: 2
|
|
Agent: Main
|
|
Task: Implement special effect application in game logic
|
|
|
|
Work Log:
|
|
- Created `computeEffectiveRegen()` function that applies:
|
|
- Mana Cascade: +0.1 regen per 100 max mana
|
|
- Mana Torrent: +50% regen when above 75% mana
|
|
- Desperate Wells: +50% regen when below 25% mana
|
|
- Steady Stream: Immune to incursion penalty
|
|
- Updated `gatherMana()` to apply Mana Echo (10% chance double mana)
|
|
- Updated combat in tick() to apply:
|
|
- Damage multipliers/bonuses from upgrades
|
|
- Executioner: +100% damage to enemies below 25% HP
|
|
- Berserker: +50% damage when mana < 50%
|
|
- Adrenaline Rush: Restore 5% mana on kill
|
|
- Updated study in tick() to apply:
|
|
- Study speed multipliers from upgrades
|
|
- Mental Clarity: +10% study speed when mana > 75%
|
|
- Study Rush: First hour is 2x speed
|
|
- Study Refund: 25% mana back on completion
|
|
|
|
Stage Summary:
|
|
- Key tier 1 special effects are now functional
|
|
- Regen, combat, and study systems all apply upgrades correctly
|
|
|
|
---
|
|
Task ID: 3
|
|
Agent: Main
|
|
Task: Display special effects in UI
|
|
|
|
Work Log:
|
|
- Imported computeEffects, hasSpecial, SPECIAL_EFFECTS to page.tsx
|
|
- Added `upgradeEffects` computation in derived stats
|
|
- Added `manaCascadeBonus` calculation for display
|
|
- Updated `effectiveRegen` to use `effectiveRegenWithSpecials`
|
|
- Updated Mana Stats section to show:
|
|
- Steady Stream immunity indicator
|
|
- Mana Cascade bonus amount
|
|
- Mana Torrent/Desperate Wells conditional bonuses
|
|
- Updated Active Upgrades section to render special effects with cyan color
|
|
|
|
Stage Summary:
|
|
- Special effects are now visible in the Stats tab
|
|
- Players can see exactly how much Mana Cascade contributes
|
|
- Active Upgrades shows all effect types including specials
|
|
|
|
---
|
|
Task ID: 4
|
|
Agent: Main
|
|
Task: Test and verify implementation
|
|
|
|
Work Log:
|
|
- Added 11 new tests for special effects:
|
|
- Mana Cascade recognition and calculation
|
|
- Steady Stream recognition
|
|
- Mana Echo recognition
|
|
- Combat special effects (Executioner, Berserker, Adrenaline Rush)
|
|
- Study special effects (Mental Clarity, Study Rush)
|
|
- Effect stacking tests
|
|
- All 203 tests pass
|
|
|
|
Stage Summary:
|
|
- Complete test coverage for implemented special effects
|
|
- All lint checks pass
|
|
- Dev server running without errors
|
|
|
|
---
|
|
Task ID: 5
|
|
Agent: Main
|
|
Task: Fix Deep Wellspring meditation efficiency upgrade
|
|
|
|
Work Log:
|
|
- Identified issue: `meditationEfficiency` was tracked in computed effects but not used
|
|
- Updated `getMeditationBonus()` function signature to accept `meditationEfficiency` parameter
|
|
- Updated meditation bonus calculation to multiply by efficiency
|
|
- Updated `tick()` in store.ts to:
|
|
- Compute upgradeEffects before meditation calculation
|
|
- Pass `upgradeEffects.meditationEfficiency` to `getMeditationBonus()`
|
|
- Updated page.tsx to:
|
|
- Compute `upgradeEffects` before other derived stats
|
|
- Pass `upgradeEffects.meditationEfficiency` to meditation multiplier calculation
|
|
- Added 2 new tests for Deep Wellspring:
|
|
- Test that meditation efficiency is correctly computed (1.5x for +50%)
|
|
- Test that meditation bonus is boosted by efficiency (2.5 * 1.5 = 3.75)
|
|
|
|
Stage Summary:
|
|
- Deep Wellspring (+50% meditation efficiency) now works correctly
|
|
- All 205 tests pass
|
|
- Dev server running without errors
|
|
|
|
---
|
|
Task ID: 6
|
|
Agent: Main
|
|
Task: Fix multiple issues: Quick Learner tier-up reset, Parallel Mind upgrade, meditation display location, parallel study UI, combat spell usage verification
|
|
|
|
Work Log:
|
|
- **Fixed Quick Learner tier-up reset issue**: Modified `tierUpSkill()` to NOT copy upgrades from old tier to new tier. Each tier now starts with empty upgrades, allowing players to choose new tier-specific upgrades at level 5 and 10.
|
|
- **Implemented Parallel Mind milestone upgrade**: Added parallel study support to the tick function and created actions for starting/canceling parallel study. Players can now study two things at once at 50% speed each.
|
|
- **Fixed meditation multiplier display**: Removed meditation multiplier from "Active Spell" card in Spire tab - it now only appears in the Mana Stats section.
|
|
- **Added parallel study UI**:
|
|
- Added parallel study progress card in Spire tab
|
|
- Added ⚡ button in Skills tab for selecting parallel study target
|
|
- Shows "50% speed (Parallel Study)" indicator
|
|
- **Verified combat uses active spells**: Confirmed that combat properly uses the active spell from `state.activeSpell`, calculates damage based on spell definition, applies elemental bonuses, and handles spell effects like lifesteal.
|
|
- **Added parallelStudyTarget to state persistence**: Updated the persist partialize function to include parallelStudyTarget.
|
|
- **Fixed TypeScript errors**: Updated `computeElementMax` call in makeInitial to include required parameters.
|
|
|
|
Stage Summary:
|
|
- Quick Learner and other skills no longer lose progress when tiering up - players choose new upgrades for each tier
|
|
- Parallel Mind upgrade is now functional - allows studying two skills/spells simultaneously
|
|
- Meditation multiplier moved to correct location (Mana Stats only)
|
|
- Combat verified to use active spells properly with all effects
|
|
- All lint checks pass, dev server running without errors
|
|
|
|
---
|
|
Task ID: 7
|
|
Agent: Main
|
|
Task: Implement cast speed system for combat
|
|
|
|
Work Log:
|
|
- Added `castSpeed` property to `SpellDef` type in types.ts (default 1 cast/hour)
|
|
- Added cast speeds to all spells in SPELLS_DEF:
|
|
- Tier 0 (basic): 2.5-3 casts/hr (fast, cheap)
|
|
- Tier 1 (elemental): 1.5-3 casts/hr (varies by spell nature)
|
|
- Tier 2 (advanced): 0.8-1.8 casts/hr (slower, more powerful)
|
|
- Tier 3 (master): 0.5-0.75 casts/hr (slow but devastating)
|
|
- Tier 4 (legendary): 0.4-0.5 casts/hr (very slow, extremely powerful)
|
|
- Added `castProgress` to GameState (tracks progress to next cast, 0-1)
|
|
- Updated combat tick logic:
|
|
- Accumulates cast progress based on spell cast speed and attack speed bonuses
|
|
- When progress >= 1, triggers a spell cast (deducts mana, applies damage)
|
|
- Handles multiple casts per tick if cast speed is high
|
|
- Resets progress on floor change
|
|
- Attack speed affected by:
|
|
- Quick Cast skill: +5% per level
|
|
- Attack Speed upgrade multipliers from skill milestones
|
|
- Updated UI:
|
|
- Active Spell card now shows cast speed (casts/hr)
|
|
- Added cast progress bar when climbing
|
|
- DPS calculation now uses actual cast speed formula
|
|
|
|
Stage Summary:
|
|
- Combat now properly uses spell cast speed instead of arbitrary damage multiplier
|
|
- Each spell has unique cast speed (faster spells = more DPS but lower damage per cast)
|
|
- Attack speed upgrades (Quick Cast, Quick Strikes) properly speed up casting
|
|
- Players can see cast progress and DPS in real-time
|
|
|
|
---
|
|
Task ID: 8
|
|
Agent: Main
|
|
Task: Implement Crafting/Equipment System (Replace Combat Skills with Enchanting)
|
|
|
|
Work Log:
|
|
- **Verified combat skills removed and enchanting skills added**: constants.ts already had enchanting skills (enchanting, efficientEnchant, disenchanting, enchantSpeed, scrollCrafting, essenceRefining) with 'enchant' category
|
|
- **Integrated crafting slice into main store**:
|
|
- Added GameStore interface to extend CraftingActions
|
|
- Added processCraftingTick call in tick function for design/prepare/enchant actions
|
|
- Implemented all crafting actions directly in store (createEquipmentInstance, equipItem, startDesigningEnchantment, etc.)
|
|
- Updated partialize function to persist equipment state (equippedInstances, equipmentInstances, enchantmentDesigns, designProgress, preparationProgress, applicationProgress)
|
|
- **Created CraftingTab component** with 3-stage UI:
|
|
- Design stage: Select equipment type, choose effects, name design, time-based progress
|
|
- Prepare stage: Select equipment, pay mana cost, time-based preparation
|
|
- Apply stage: Select equipment and design, apply enchantment with capacity validation
|
|
- Disenchant section: Remove enchantments and recover mana based on disenchanting skill
|
|
- **Updated SpellsTab** to show equipment-granted spells:
|
|
- Added equipment spells section at top showing spells from equipped items
|
|
- Shows source equipment for each spell
|
|
- Added pact spells placeholder section
|
|
- **Added 5-tier evolution paths for enchanting skills**:
|
|
- enchanting: 5 tiers from Enchanting → Rune Master → Arcane Forgemaster → Void Enchanter → Enchantment God
|
|
- efficientEnchant, disenchanting, enchantSpeed: 1 tier each with unique upgrades
|
|
- **Updated page.tsx** with Crafting tab:
|
|
- Added CraftingTab import and TabsTrigger for crafting
|
|
- Added TabsContent rendering CraftingTab with all required props
|
|
|
|
Stage Summary:
|
|
- Complete 3-stage enchantment system (Design → Prepare → Apply)
|
|
- Equipment capacity limits enchantments
|
|
- Starting equipment: Basic Staff (with Mana Bolt), Civilian Shirt, Civilian Shoes
|
|
- Spells only learnable from equipment and pacts
|
|
- All crafting skills have evolution paths
|
|
- All lint checks pass
|
|
|
|
---
|
|
Task ID: 9
|
|
Agent: Main
|
|
Task: Implement Attunement System - Core Framework
|
|
|
|
Work Log:
|
|
- **Created attunement type definitions in types.ts**:
|
|
- Added AttunementSlot type (rightHand, leftHand, head, back, chest, leftLeg, rightLeg)
|
|
- Added AttunementDef interface with primaryManaType, rawManaRegen, conversionRate, capabilities, skillCategories
|
|
- Added AttunementState interface for tracking player attunements
|
|
- Updated GameState to include attunements field
|
|
- **Created attunements.ts data file** with 3 attunements:
|
|
- **Enchanter (right hand)**: Starting attunement, transference mana, unlocks enchanting, 0.5 raw regen/hr, 0.2 conversion/hr
|
|
- **Invoker (chest)**: Unlocks pacts with guardians, no primary mana but gains types from each pact, 0.3 raw regen/hr
|
|
- **Fabricator (left hand)**: Earth mana, crafts golems and earthen/metal gear, 0.4 raw regen/hr, 0.25 conversion/hr
|
|
- **Updated store.ts**:
|
|
- Added attunement imports
|
|
- Updated makeInitial() to start with Enchanter attunement active
|
|
- Unlocks transference element for Enchanter
|
|
- Added attunement mana conversion logic in tick()
|
|
- Updated computeRegen() to include attunement bonuses
|
|
- **Updated SKILL_CATEGORIES** to be attunement-based:
|
|
- Core categories (always available): mana, study, research, ascension
|
|
- Enchanter categories: enchant, effectResearch
|
|
- Invoker categories: invocation, pact
|
|
- Fabricator categories: fabrication, golemancy
|
|
|
|
Stage Summary:
|
|
- Player starts with Enchanter attunement on right hand
|
|
- Attunements provide raw mana regen and convert to primary mana types
|
|
- Skills are now organized by attunement (foundation for skill tab overhaul)
|
|
- Lint checks pass, ready for UI implementation
|
|
|
|
---
|
|
Task ID: 10
|
|
Agent: Main
|
|
Task: Implement Attunement System - UI Overhaul
|
|
|
|
Work Log:
|
|
- **Created AttunementsTab component** (src/components/game/tabs/AttunementsTab.tsx):
|
|
- Displays all 3 attunements with their status (active/locked)
|
|
- Shows primary mana type and current mana for active attunements
|
|
- Displays raw mana regen and conversion rate stats
|
|
- Shows capabilities unlocked by each attunement
|
|
- Displays available skill categories based on active attunements
|
|
- Uses color coding and visual effects for active attunements
|
|
- **Updated page.tsx**:
|
|
- Added AttunementsTab import
|
|
- Added "✨ Attune" tab between Spire and Skills
|
|
- Added TabsContent for attunements
|
|
- **Updated SkillsTab.tsx**:
|
|
- Added import for getAvailableSkillCategories
|
|
- Modified skill rendering to filter categories by attunement access
|
|
- Skills now only show if the player has the appropriate attunement
|
|
|
|
Stage Summary:
|
|
- New Attunements tab shows all attunement details
|
|
- Skills are filtered based on active attunements
|
|
- Player can see exactly which skill categories they have access to
|
|
- Visual feedback shows active vs locked attunements
|