- Add attunement types and state to game state - Create attunements.ts with Enchanter, Invoker, Fabricator definitions - Player starts with Enchanter attunement (right hand) - Enchanter: transference mana, unlocks enchanting - Invoker: gains mana types from pacts with guardians - Fabricator: earth mana, crafts golems and earthen/metal gear - Skills now have attunement field for categorization - Update skill categories to be attunement-based
11 KiB
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
upgradeEffectscomputation in derived stats - Added
manaCascadeBonuscalculation for display - Updated
effectiveRegento useeffectiveRegenWithSpecials - 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:
meditationEfficiencywas tracked in computed effects but not used - Updated
getMeditationBonus()function signature to acceptmeditationEfficiencyparameter - Updated meditation bonus calculation to multiply by efficiency
- Updated
tick()in store.ts to:- Compute upgradeEffects before meditation calculation
- Pass
upgradeEffects.meditationEfficiencytogetMeditationBonus()
- Updated page.tsx to:
- Compute
upgradeEffectsbefore other derived stats - Pass
upgradeEffects.meditationEfficiencyto meditation multiplier calculation
- Compute
- 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
computeElementMaxcall 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
castSpeedproperty toSpellDeftype 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
castProgressto 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