Remove movement speed, fix golemancy, cleanup
All checks were successful
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 1m56s

- Remove movement speed references (spire_runner, swift_descent enchantments)
- Remove slow effect from Mud Golem variant (changed to drown effect)
- Delete unused attunements.ts file (legacy code)
- Add max golem limit: 1 per Fabricator attunement level
- Add max 1 golem of each type restriction
- Display mana/hr and damage/hr in golemancy UI
- Display active golem limit in header
- Show special effects for golem variants
- Keep expeditious_retreat enchantment for teleporting down floors

🤖 Generated with [Claude Code](https://claude.ai/code)
This commit is contained in:
Z User
2026-03-28 12:16:08 +00:00
parent f07454e024
commit 50a3704a7d
5 changed files with 54 additions and 594 deletions

View File

@@ -984,6 +984,18 @@ export function CraftingTab({ store }: CraftingTabProps) {
</div>
</div>
{/* Additional Stats */}
<div className="grid grid-cols-2 gap-2 text-xs mb-2 p-2 bg-gray-900/50 rounded">
<div className="flex justify-between">
<span className="text-gray-400">DMG/hr:</span>
<span className="text-red-300 font-semibold">{golemDef.baseDamage * golemDef.attackSpeed}</span>
</div>
<div className="flex justify-between">
<span className="text-gray-400">Mana/hr:</span>
<span className="text-blue-300 font-semibold">{golemDef.drainRate} {elementDef?.name || golemDef.element}</span>
</div>
</div>
<Button
className="w-full"
size="sm"
@@ -1014,10 +1026,10 @@ export function CraftingTab({ store }: CraftingTabProps) {
<CardTitle className="text-amber-400 text-sm flex items-center justify-between">
<span className="flex items-center gap-2">
<span className="text-lg"></span>
Active Golems ({activeGolems.length})
Active Golems ({activeGolems.length}/{Math.max(1, store.attunements?.fabricator?.level || 0)})
</span>
{golemancySkill >= 1 && (
<span className="text-xs text-gray-400">Duration: {golemDuration} floors</span>
<span className="text-xs text-gray-400">Duration: {golemDuration} floors | Max 1 per Fabricator level</span>
)}
</CardTitle>
</CardHeader>
@@ -1089,7 +1101,32 @@ export function CraftingTab({ store }: CraftingTabProps) {
/>
</div>
<div className="text-xs text-gray-400">
{/* Stats */}
<div className="grid grid-cols-2 gap-2 text-xs mt-2 pt-2 border-t border-gray-700">
<div>
<span className="text-gray-400">Mana/hr:</span>{' '}
<span className="text-blue-300">{golemDef?.drainRate || 0} {ELEMENTS[golemDef?.requiredManaType || 'earth']?.name || 'mana'}</span>
</div>
<div>
<span className="text-gray-400">DMG/hr:</span>{' '}
<span className="text-red-300">
{(() => {
const dmg = (variantDef?.damageMultiplier || 1) * (golemDef?.baseDamage || 0);
const speed = golemDef?.attackSpeed || 1;
return fmt(dmg * speed);
})()}
<span className="text-gray-500 text-xs">({golemDef?.attackSpeed || 1}×{golemDef?.baseDamage || 0})</span>
</span>
</div>
</div>
{variantDef && (
<div className="text-xs mt-2 p-1.5 bg-gray-900/50 rounded">
<span className="text-purple-400">Effect:</span> <span className="text-gray-300 capitalize">{variantDef.effect}</span>
</div>
)}
<div className="text-xs text-gray-400 mt-2">
<span className="text-green-400">Total Damage:</span> {fmt(golem.damageDealt)}
</div>
</div>