fix: Crystal-Steel Hybrid frame unlock now only requires Fabricator 5 (was incorrectly dual-gated with Enchanter 5)
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 1m20s

This commit is contained in:
2026-06-08 14:14:38 +02:00
parent 9200cf3ce0
commit a1b86d82c5
4 changed files with 9 additions and 9 deletions
+1 -1
View File
@@ -1,5 +1,5 @@
# Circular Dependencies
Generated: 2026-06-08T11:29:45.994Z
Generated: 2026-06-08T12:08:47.398Z
Found: 1 circular chain(s) — these MUST be fixed before modifying involved files.
1. 1) stores/golem-combat-actions.ts > stores/golem-combat-helpers.ts
+1 -1
View File
@@ -1,6 +1,6 @@
{
"_meta": {
"generated": "2026-06-08T11:29:44.022Z",
"generated": "2026-06-08T12:08:45.389Z",
"description": "Import dependency graph for src/lib/game. Keys are files, values are arrays of files they import.",
"usage": "To find what a file affects, search for its path in the VALUES. To find what a file depends on, look at its KEY entry."
},
+3 -3
View File
@@ -126,9 +126,9 @@ const CRYSTAL_STEEL_HYBRID_FRAME: FrameDefinition = {
specialEffect: 'guardianConstruct',
summonCost: [elemCost('crystal', 20), elemCost('metal', 15), rawCost(15)],
unlockRequirement: {
type: 'dual_attunement',
attunements: ['fabricator', 'enchanter'],
levels: [5, 5],
type: 'attunement_level',
attunement: 'fabricator',
level: 5,
},
};
@@ -98,11 +98,11 @@ describe('Unlock requirements', () => {
expect(isComponentUnlocked(req, { invoker: { active: true, level: 5 }, fabricator: { active: true, level: 5 } }, [], [])).toBe(false);
});
it('crystalSteelHybrid frame requires Fabricator 5 + Enchanter 5', () => {
it('crystalSteelHybrid frame requires Fabricator 5 only', () => {
const req = FRAMES.crystalSteelHybrid.unlockRequirement;
expect(req.type).toBe('dual_attunement');
expect(isComponentUnlocked(req, { fabricator: { active: true, level: 5 }, enchanter: { active: true, level: 5 } }, [], [])).toBe(true);
expect(isComponentUnlocked(req, { fabricator: { active: true, level: 5 }, enchanter: { active: true, level: 4 } }, [], [])).toBe(false);
expect(req.type).toBe('attunement_level');
expect(isComponentUnlocked(req, { fabricator: { active: true, level: 5 } }, [], [])).toBe(true);
expect(isComponentUnlocked(req, { fabricator: { active: true, level: 4 } }, [], [])).toBe(false);
});
it('sand frame requires sand mana unlocked', () => {