Mana-Loop/ ├── .gitea/ │ └── workflows/ │ └── docker-build.yaml ├── .husky/ │ ├── scripts/ │ │ ├── check-file-size.js │ │ └── generate-project-tree.js │ ├── post-merge │ └── pre-commit ├── db/ │ └── custom.db ├── docs/ │ ├── GAME_BRIEFING.md │ ├── project-structure.txt │ └── skills.md ├── download/ │ └── README.md ├── examples/ │ └── websocket/ │ ├── frontend.tsx │ └── server.ts ├── mini-services/ │ └── .gitkeep ├── prisma/ │ └── schema.prisma ├── public/ │ ├── fonts/ │ │ ├── GeistMonoVF.woff │ │ └── GeistVF.woff │ ├── logo.svg │ └── robots.txt ├── src/ │ ├── app/ │ │ ├── api/ │ │ │ └── route.ts │ │ ├── components/ │ │ │ ├── GameOverScreen.tsx │ │ │ └── LeftPanel.tsx │ │ ├── globals.css │ │ ├── layout.tsx │ │ └── page.tsx │ ├── components/ │ │ ├── game/ │ │ │ ├── GameContext/ │ │ │ │ ├── Provider.tsx │ │ │ │ ├── context-create.ts │ │ │ │ ├── hooks.ts │ │ │ │ └── types.ts │ │ │ ├── LootInventory/ │ │ │ │ ├── BlueprintsSection.tsx │ │ │ │ ├── EquipmentItem.tsx │ │ │ │ ├── EssenceItem.tsx │ │ │ │ ├── LootInventoryDisplay.tsx │ │ │ │ ├── MaterialItem.tsx │ │ │ │ ├── icons.ts │ │ │ │ ├── index.tsx │ │ │ │ └── types.ts │ │ │ ├── SkillsTab/ │ │ │ │ ├── SkillCategory.tsx │ │ │ │ ├── SkillRow.tsx │ │ │ │ ├── SkillStudyProgress.tsx │ │ │ │ ├── SkillUpgradeDialog.tsx │ │ │ │ └── skills-utils.ts │ │ │ ├── StatsTab/ │ │ │ │ ├── ActiveUpgradesSection.tsx │ │ │ │ ├── CombatStatsSection.tsx │ │ │ │ ├── ElementStatsSection.tsx │ │ │ │ ├── LoopStatsSection.tsx │ │ │ │ ├── ManaStatsSection.tsx │ │ │ │ ├── PactStatusSection.tsx │ │ │ │ └── StudyStatsSection.tsx │ │ │ ├── crafting/ │ │ │ │ ├── EnchantmentDesigner/ │ │ │ │ │ ├── DesignForm.tsx │ │ │ │ │ ├── EffectSelector.tsx │ │ │ │ │ ├── EquipmentTypeSelector.tsx │ │ │ │ │ ├── SavedDesigns.tsx │ │ │ │ │ ├── types.ts │ │ │ │ │ └── utils.ts │ │ │ │ ├── EnchantmentApplier.tsx │ │ │ │ ├── EnchantmentDesigner.tsx │ │ │ │ ├── EnchantmentPreparer.tsx │ │ │ │ ├── EquipmentCrafter.tsx │ │ │ │ └── index.tsx │ │ │ ├── debug/ │ │ │ │ ├── AttunementDebug.tsx │ │ │ │ ├── ElementDebug.tsx │ │ │ │ ├── GameStateDebug.tsx │ │ │ │ ├── GolemDebug.tsx │ │ │ │ ├── PactDebug.tsx │ │ │ │ ├── SkillDebug.tsx │ │ │ │ └── index.tsx │ │ │ ├── layout/ │ │ │ │ ├── Header.tsx │ │ │ │ └── TabBar.tsx │ │ │ ├── shared/ │ │ │ │ ├── MemorySlotPicker.tsx │ │ │ │ ├── StudyProgress.tsx │ │ │ │ └── UpgradeDialog.tsx │ │ │ ├── stats/ │ │ │ │ ├── CombatStatsSection.tsx │ │ │ │ ├── ManaStatsSection.tsx │ │ │ │ ├── ManaTypeBreakdown.tsx │ │ │ │ ├── StudyStatsSection.tsx │ │ │ │ ├── UpgradeEffectsSection.tsx │ │ │ │ └── index.tsx │ │ │ ├── tabs/ │ │ │ │ ├── AchievementsTab.tsx │ │ │ │ ├── ActivityLog.tsx │ │ │ │ ├── AttunementsTab.tsx │ │ │ │ ├── CategorySkillsList.tsx │ │ │ │ ├── CombatStatsPanel.tsx │ │ │ │ ├── CraftingTab.tsx │ │ │ │ ├── DebugTab.tsx │ │ │ │ ├── EnchantmentsPanel.tsx │ │ │ │ ├── EquipmentControls.tsx │ │ │ │ ├── EquipmentInventory.tsx │ │ │ │ ├── EquipmentSlotGrid.tsx │ │ │ │ ├── EquipmentTab.tsx │ │ │ │ ├── FloorControls.tsx │ │ │ │ ├── GolemancyTab.tsx │ │ │ │ ├── GuardianPanel.tsx │ │ │ │ ├── LabTab.tsx │ │ │ │ ├── LootTab.tsx │ │ │ │ ├── MilestoneProgress.tsx │ │ │ │ ├── PrestigeTab.tsx │ │ │ │ ├── RoomDisplay.tsx │ │ │ │ ├── SkillCategoryHeader.tsx │ │ │ │ ├── SkillMultipliers.tsx │ │ │ │ ├── SkillRow.tsx │ │ │ │ ├── SpellsTab.tsx │ │ │ │ ├── SpireHeader.tsx │ │ │ │ ├── SpireTab.tsx │ │ │ │ ├── StatsTab.tsx │ │ │ │ ├── StudyProgress.tsx │ │ │ │ ├── UpgradeDialog.tsx │ │ │ │ └── index.ts │ │ │ ├── AchievementsDisplay.tsx │ │ │ ├── ActionButtons.tsx │ │ │ ├── CalendarDisplay.tsx │ │ │ ├── ConfirmDialog.tsx │ │ │ ├── CraftingProgress.tsx │ │ │ ├── GameContext.tsx │ │ │ ├── GameToast.tsx │ │ │ ├── LabTab.tsx │ │ │ ├── ManaDisplay.tsx │ │ │ ├── SkillsTab.tsx │ │ │ ├── SpellsTab.tsx │ │ │ ├── StatsTab.tsx │ │ │ ├── StudyProgress.tsx │ │ │ ├── TimeDisplay.tsx │ │ │ ├── UpgradeDialog.tsx │ │ │ ├── index.ts │ │ │ └── types.ts │ │ ├── ui/ │ │ │ ├── action-button.tsx │ │ │ ├── alert-dialog.tsx │ │ │ ├── badge.tsx │ │ │ ├── button.tsx │ │ │ ├── card.tsx │ │ │ ├── dialog.tsx │ │ │ ├── element-badge.tsx │ │ │ ├── game-card.tsx │ │ │ ├── index.ts │ │ │ ├── input.tsx │ │ │ ├── label.tsx │ │ │ ├── mana-bar.tsx │ │ │ ├── progress.tsx │ │ │ ├── scroll-area.tsx │ │ │ ├── section-header.tsx │ │ │ ├── select.tsx │ │ │ ├── separator.tsx │ │ │ ├── sheet.tsx │ │ │ ├── skeleton.tsx │ │ │ ├── skill-row.tsx │ │ │ ├── stat-row.tsx │ │ │ ├── stepper.tsx │ │ │ ├── switch.tsx │ │ │ ├── tabs.tsx │ │ │ ├── toast.tsx │ │ │ ├── toaster.tsx │ │ │ ├── toggle.tsx │ │ │ ├── tooltip-info.tsx │ │ │ ├── tooltip.tsx │ │ │ └── value-display.tsx │ │ └── ErrorBoundary.tsx │ ├── hooks/ │ │ ├── use-mobile.ts │ │ └── use-toast.ts │ └── lib/ │ ├── game/ │ │ ├── __tests__/ │ │ │ ├── skills-tests/ │ │ │ │ ├── ascension-skills.test.ts │ │ │ │ ├── integration-and-evolution.test.ts │ │ │ │ ├── mana-skills.test.ts │ │ │ │ ├── prestige-upgrades.test.ts │ │ │ │ ├── skill-prerequisites.test.ts │ │ │ │ ├── specialized-skills.test.ts │ │ │ │ ├── study-skills.test.ts │ │ │ │ └── study-times.test.ts │ │ │ ├── store-method-tests/ │ │ │ ├── bug-fixes.test.ts │ │ │ ├── computed-stats.test.ts │ │ │ ├── skill-system.test.ts │ │ │ └── skills.test.ts │ │ ├── attunements/ │ │ │ ├── data.ts │ │ │ ├── index.ts │ │ │ ├── types.ts │ │ │ └── utils.ts │ │ ├── constants/ │ │ │ ├── spells-modules/ │ │ │ │ ├── advanced-spells.ts │ │ │ │ ├── aoe-spells.ts │ │ │ │ ├── basic-elemental-spells.ts │ │ │ │ ├── compound-spells.ts │ │ │ │ ├── enchantment-spells.ts │ │ │ │ ├── legendary-spells.ts │ │ │ │ ├── lightning-spells.ts │ │ │ │ ├── master-spells.ts │ │ │ │ ├── raw-spells.ts │ │ │ │ └── utility-spells.ts │ │ │ ├── core.ts │ │ │ ├── elements.ts │ │ │ ├── guardians.ts │ │ │ ├── index.ts │ │ │ ├── prestige.ts │ │ │ ├── rooms.ts │ │ │ ├── skills.ts │ │ │ └── spells.ts │ │ ├── crafting-actions/ │ │ │ ├── application-actions.ts │ │ │ ├── computed-getters.ts │ │ │ ├── crafting-equipment-actions.ts │ │ │ ├── design-actions.ts │ │ │ ├── disenchant-actions.ts │ │ │ ├── equipment-actions.ts │ │ │ ├── index.ts │ │ │ └── preparation-actions.ts │ │ ├── data/ │ │ │ ├── enchantments/ │ │ │ │ ├── spell-effects/ │ │ │ │ │ ├── basic-spells.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── lightning-spells.ts │ │ │ │ │ ├── metal-spells.ts │ │ │ │ │ ├── sand-spells.ts │ │ │ │ │ ├── tier2-spells.ts │ │ │ │ │ ├── tier3-spells.ts │ │ │ │ │ └── types.ts │ │ │ │ ├── combat-effects.ts │ │ │ │ ├── defense-effects.ts │ │ │ │ ├── elemental-effects.ts │ │ │ │ ├── index.ts │ │ │ │ ├── mana-effects.ts │ │ │ │ ├── special-effects.ts │ │ │ │ └── utility-effects.ts │ │ │ ├── equipment/ │ │ │ │ ├── accessories.ts │ │ │ │ ├── body.ts │ │ │ │ ├── casters.ts │ │ │ │ ├── catalysts.ts │ │ │ │ ├── feet.ts │ │ │ │ ├── hands.ts │ │ │ │ ├── head.ts │ │ │ │ ├── index.ts │ │ │ │ ├── shields.ts │ │ │ │ ├── swords.ts │ │ │ │ ├── types.ts │ │ │ │ └── utils.ts │ │ │ ├── golems/ │ │ │ │ ├── base-golems.ts │ │ │ │ ├── elemental-golems.ts │ │ │ │ ├── hybrid-golems.ts │ │ │ │ ├── index.ts │ │ │ │ ├── types.ts │ │ │ │ └── utils.ts │ │ │ ├── achievements.ts │ │ │ ├── attunements.ts │ │ │ ├── crafting-recipes.ts │ │ │ ├── enchantment-effects.ts │ │ │ ├── enchantment-types.ts │ │ │ └── loot-drops.ts │ │ ├── hooks/ │ │ │ ├── useGameDerived.ts │ │ │ └── useSkillUpgradeSelection.ts │ │ ├── skill-evolution-modules/ │ │ │ ├── elemental-attunement.ts │ │ │ ├── enchanting-skills.ts │ │ │ ├── focused-mind.ts │ │ │ ├── guardian-skills.ts │ │ │ ├── hybrid-skills.ts │ │ │ ├── index.ts │ │ │ ├── insight-harvest.ts │ │ │ ├── invocation-skills.ts │ │ │ ├── knowledge-retention.ts │ │ │ ├── learning-skills.ts │ │ │ ├── magic-skills.ts │ │ │ ├── mana-utility-skills.ts │ │ │ ├── mana-well-flow.ts │ │ │ ├── quick-learner.ts │ │ │ ├── types.ts │ │ │ └── utils.ts │ │ ├── skills-split-tests/ │ │ │ ├── ascension-specialized-skills.test.ts │ │ │ ├── mana-skills.test.ts │ │ │ ├── prerequisites-studytimes-prestige-integration.test.ts │ │ │ └── study-skills.test.ts │ │ ├── store/ │ │ │ ├── crafting-modules/ │ │ │ │ ├── initial-state.ts │ │ │ │ ├── selectors.ts │ │ │ │ ├── slice-logic.ts │ │ │ │ ├── starting-equipment.ts │ │ │ │ ├── tick-processors.ts │ │ │ │ ├── types.ts │ │ │ │ └── utils.ts │ │ │ ├── combatSlice.ts │ │ │ ├── computed.ts │ │ │ ├── craftingSlice.ts │ │ │ ├── index.ts │ │ │ ├── manaSlice.ts │ │ │ ├── pactSlice.ts │ │ │ ├── prestigeSlice.ts │ │ │ ├── skillSlice.ts │ │ │ └── timeSlice.ts │ │ ├── store-modules/ │ │ │ ├── {room-utils,enemy-utils,initial-state,activity-log,store-actions}/ │ │ │ ├── activity-log.ts │ │ │ ├── computed-stats.ts │ │ │ ├── enemy-utils.ts │ │ │ ├── initial-state.ts │ │ │ ├── room-utils.ts │ │ │ ├── store-actions.ts │ │ │ └── tick-logic.ts │ │ ├── store-tests/ │ │ │ ├── damage-calculation.test.ts │ │ │ ├── element-recipes.test.ts │ │ │ ├── floor.test.ts │ │ │ ├── formatting.test.ts │ │ │ ├── game-constants.test.ts │ │ │ ├── individual-skills.test.ts │ │ │ ├── insight-meditation-incursion.test.ts │ │ │ ├── integration.test.ts │ │ │ ├── mana-calculation.test.ts │ │ │ ├── skill-evolution.test.ts │ │ │ ├── skill-requirements.test.ts │ │ │ ├── spell-cost.test.ts │ │ │ ├── study-speed.test.ts │ │ │ └── test-utils.ts │ │ ├── stores/ │ │ │ ├── __tests__/ │ │ │ │ ├── combat-store-tests/ │ │ │ │ ├── index-tests/ │ │ │ │ │ ├── combat-calculations.test.ts │ │ │ │ │ ├── definitions.test.ts │ │ │ │ │ ├── mana-calculations.test.ts │ │ │ │ │ ├── meditation-insight-incursion.test.ts │ │ │ │ │ ├── spell-cost.test.ts │ │ │ │ │ ├── study-speed.test.ts │ │ │ │ │ └── utility-functions.test.ts │ │ │ │ ├── mana-store-tests/ │ │ │ │ ├── prestige-store-tests/ │ │ │ │ ├── store-method-tests/ │ │ │ │ │ ├── combat-store.test.ts │ │ │ │ │ ├── mana-store.test.ts │ │ │ │ │ ├── prestige-store.test.ts │ │ │ │ │ ├── skill-store.test.ts │ │ │ │ │ └── ui-store.test.ts │ │ │ │ ├── stores-split-tests/ │ │ │ │ ├── stores-tests/ │ │ │ │ │ ├── damage-calculation.test.ts │ │ │ │ │ ├── floor.test.ts │ │ │ │ │ ├── formatting.test.ts │ │ │ │ │ ├── guardians.test.ts │ │ │ │ │ ├── incursion.test.ts │ │ │ │ │ ├── insight-calculation.test.ts │ │ │ │ │ ├── mana-calculation.test.ts │ │ │ │ │ ├── meditation.test.ts │ │ │ │ │ ├── prestige-upgrades.test.ts │ │ │ │ │ ├── skill-definitions.test.ts │ │ │ │ │ ├── spell-cost.test.ts │ │ │ │ │ ├── spell-definitions.test.ts │ │ │ │ │ └── study-speed.test.ts │ │ │ │ ├── ui-store-tests/ │ │ │ │ ├── store-methods.test.ts │ │ │ │ └── stores.test.ts │ │ │ ├── attunementStore.ts │ │ │ ├── combat-actions.ts │ │ │ ├── combatStore.ts │ │ │ ├── craftingStore.ts │ │ │ ├── gameActions.ts │ │ │ ├── gameHooks.ts │ │ │ ├── gameLoopActions.ts │ │ │ ├── gameStore.ts │ │ │ ├── index.test.ts │ │ │ ├── index.ts │ │ │ ├── manaStore.ts │ │ │ ├── prestigeStore.ts │ │ │ ├── skillStore.ts │ │ │ └── uiStore.ts │ │ ├── stores-split-tests/ │ │ │ ├── combat-store.test.ts │ │ │ ├── integration.test.ts │ │ │ ├── mana-store.test.ts │ │ │ ├── prestige-store.test.ts │ │ │ ├── skill-store.test.ts │ │ │ └── ui-store.test.ts │ │ ├── types/ │ │ │ ├── attunements.ts │ │ │ ├── elements.ts │ │ │ ├── equipment.ts │ │ │ ├── game.ts │ │ │ ├── index.ts │ │ │ ├── skills.ts │ │ │ └── spells.ts │ │ ├── utils/ │ │ │ ├── combat-utils.ts │ │ │ ├── floor-utils.ts │ │ │ ├── formatting.ts │ │ │ ├── index.ts │ │ │ └── mana-utils.ts │ │ ├── computed-stats.ts │ │ ├── constants.ts │ │ ├── crafting-apply.ts │ │ ├── crafting-attunements.ts │ │ ├── crafting-design.ts │ │ ├── crafting-equipment.ts │ │ ├── crafting-loot.ts │ │ ├── crafting-prep.ts │ │ ├── crafting-slice.ts │ │ ├── crafting-utils.ts │ │ ├── debug-context.tsx │ │ ├── dynamic-compute.ts │ │ ├── effects.ts │ │ ├── effects.ts.fix │ │ ├── formatting.ts │ │ ├── navigation-slice.ts │ │ ├── skill-evolution.ts │ │ ├── skills.test.ts │ │ ├── special-effects.ts │ │ ├── store.test.ts │ │ ├── store.ts │ │ ├── stores.test.ts │ │ ├── study-slice.ts │ │ ├── types.ts │ │ ├── upgrade-effects.ts │ │ └── upgrade-effects.types.ts │ ├── db.ts │ └── utils.ts ├── .accesslog ├── .dockerignore ├── .gitignore ├── 3001 ├── AGENTS.md ├── CLAUDE.md ├── Caddyfile ├── Dockerfile ├── README.md ├── bun.lock ├── bunfig.toml ├── components.json ├── docker-compose.yml ├── eslint.config.mjs ├── next.config.ts ├── package-lock.json ├── package.json ├── postcss.config.mjs ├── tailwind.config.ts ├── tsconfig-check.json ├── tsconfig-leftpanel.json ├── tsconfig-lp.json ├── tsconfig.json └── vitest.config.ts