feat: add prestige system and skill upgrades with comprehensive documentation
Build and Publish Mana Loop Docker Image / build-and-publish (push) Failing after 5m57s

This commit is contained in:
Refactoring Agent
2026-05-01 15:18:09 +02:00
parent 3691aa4acc
commit 03815f27ee
52 changed files with 4056 additions and 873 deletions
+48 -1
View File
@@ -7,7 +7,7 @@ import { Badge } from '@/components/ui/badge';
import { ScrollArea } from '@/components/ui/scroll-area';
import { Separator } from '@/components/ui/separator';
import { TooltipProvider, Tooltip, TooltipContent, TooltipTrigger } from '@/components/ui/tooltip';
import { BookOpen, ChevronUp, ChevronDown, RotateCcw, X, Mountain, Skull, Zap, Wind, Shield } from 'lucide-react';
import { BookOpen, ChevronUp, ChevronDown, RotateCcw, X, Mountain, Skull, Zap, Wind, Shield, Heart, ShieldCheck } from 'lucide-react';
import type { ActivityLogEntry } from '@/lib/game/types';
import type { GameStore } from '@/lib/game/store';
import { ELEMENTS, GUARDIANS, SPELLS_DEF, SKILLS_DEF, ROOM_TYPE_LABELS } from '@/lib/game/constants';
@@ -232,6 +232,32 @@ export function SpireTab({ store, simpleMode = false }: SpireTabProps) {
</TooltipContent>
</Tooltip>
)}
{primaryEnemy.healthRegen > 0 && (
<Tooltip>
<TooltipTrigger>
<Badge variant="outline" className="text-xs py-0">
<Heart className="w-3 h-3 mr-1 text-green-400" />
{(primaryEnemy.healthRegen * 100).toFixed(1)}% Regen
</Badge>
</TooltipTrigger>
<TooltipContent>
<p>Regenerates {(primaryEnemy.healthRegen * 100).toFixed(1)}% of max HP per tick</p>
</TooltipContent>
</Tooltip>
)}
{primaryEnemy.barrier > 0 && (
<Tooltip>
<TooltipTrigger>
<Badge variant="outline" className="text-xs py-0">
<ShieldCheck className="w-3 h-3 mr-1 text-blue-400" />
{(primaryEnemy.barrier * 100).toFixed(0)}% Barrier
</Badge>
</TooltipTrigger>
<TooltipContent>
<p>Has a barrier absorbing {(primaryEnemy.barrier * 100).toFixed(0)}% of max HP before HP takes damage</p>
</TooltipContent>
</Tooltip>
)}
</div>
</div>
)}
@@ -264,6 +290,27 @@ export function SpireTab({ store, simpleMode = false }: SpireTabProps) {
}}
/>
</div>
{/* Show enemy properties for swarm enemies */}
<div className="flex flex-wrap gap-1 mt-1">
{enemy.armor > 0 && (
<Badge variant="outline" className="text-xs py-0">
<Shield className="w-2 h-2 mr-1" />
{(enemy.armor * 100).toFixed(0)}% Armor
</Badge>
)}
{enemy.healthRegen > 0 && (
<Badge variant="outline" className="text-xs py-0">
<Heart className="w-2 h-2 mr-1 text-green-400" />
{(enemy.healthRegen * 100).toFixed(1)}% Regen
</Badge>
)}
{enemy.barrier > 0 && (
<Badge variant="outline" className="text-xs py-0">
<ShieldCheck className="w-2 h-2 mr-1 text-blue-400" />
{(enemy.barrier * 100).toFixed(0)}% Barrier
</Badge>
)}
</div>
</div>
))}
</div>