4b7aa82953
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 1m18s
- Add new golem component types (Core, Frame, MindCircuit, Enchantment) - Create 4 Core tiers, 7 Frames, 4 Mind Circuits, 8 Enchantments - Rewrite golem utils for component-based stat computation - Update GolemancyState with new fields (golemDesigns, golemLoadout, activeGolems) - Update combat store, actions, and pipelines for new golem system - Rewrite GolemancyTab with component selection UI - Update fabricator discipline perks for new system - Add comprehensive tests for component registries and utilities - All files under 400 lines, all 743 tests passing
123 lines
3.0 KiB
TypeScript
123 lines
3.0 KiB
TypeScript
import { useGameStore } from '../stores/gameStore';
|
|
import { useManaStore, makeInitialElements } from '../stores/manaStore';
|
|
import { useCombatStore, makeInitialSpells } from '../stores/combatStore';
|
|
import { usePrestigeStore } from '../stores/prestigeStore';
|
|
import { useUIStore } from '../stores/uiStore';
|
|
import { useDisciplineStore } from '../stores/discipline-slice';
|
|
import { useAttunementStore } from '../stores/attunementStore';
|
|
import { useCraftingStore } from '../stores/craftingStore';
|
|
import { getFloorMaxHP } from '../utils';
|
|
|
|
export function resetAllStores() {
|
|
useUIStore.setState({
|
|
paused: false,
|
|
gameOver: false,
|
|
victory: false,
|
|
logs: [],
|
|
});
|
|
|
|
useGameStore.setState({
|
|
day: 1,
|
|
hour: 0,
|
|
incursionStrength: 0,
|
|
containmentWards: 0,
|
|
initialized: true,
|
|
});
|
|
|
|
useManaStore.setState({
|
|
rawMana: 100,
|
|
meditateTicks: 0,
|
|
totalManaGathered: 0,
|
|
elements: makeInitialElements(50, {}),
|
|
});
|
|
|
|
useCombatStore.setState({
|
|
currentFloor: 1,
|
|
floorHP: getFloorMaxHP(1),
|
|
floorMaxHP: getFloorMaxHP(1),
|
|
maxFloorReached: 1,
|
|
activeSpell: 'manaBolt',
|
|
currentAction: 'meditate',
|
|
castProgress: 0,
|
|
spireMode: false,
|
|
currentRoom: { roomType: 'combat', enemies: [] },
|
|
clearedFloors: {},
|
|
climbDirection: null,
|
|
isDescending: false,
|
|
startFloor: 1,
|
|
exitFloor: 1,
|
|
currentRoomIndex: 0,
|
|
roomsPerFloor: 5,
|
|
descentPeak: null,
|
|
roomResetState: {},
|
|
clearedRooms: {},
|
|
isDescentComplete: false,
|
|
golemancy: { enabledGolems: [], summonedGolems: [], activeGolems: [], lastSummonFloor: 0, golemDesigns: {}, golemLoadout: [], legacyActiveGolems: [] },
|
|
equipmentSpellStates: [],
|
|
comboHitCount: 0,
|
|
floorHitCount: 0,
|
|
spells: makeInitialSpells(),
|
|
activityLog: [],
|
|
achievements: { unlocked: [], progress: {} },
|
|
totalSpellsCast: 0,
|
|
totalDamageDealt: 0,
|
|
totalCraftsCompleted: 0,
|
|
});
|
|
|
|
usePrestigeStore.setState({
|
|
loopCount: 0,
|
|
insight: 0,
|
|
totalInsight: 0,
|
|
loopInsight: 0,
|
|
prestigeUpgrades: {},
|
|
pactSlots: 1,
|
|
defeatedGuardians: [],
|
|
signedPacts: [],
|
|
signedPactDetails: {},
|
|
pactRitualFloor: null,
|
|
pactRitualProgress: 0,
|
|
});
|
|
|
|
useDisciplineStore.setState({
|
|
disciplines: {},
|
|
activeIds: [],
|
|
concurrentLimit: 1,
|
|
totalXP: 0,
|
|
processedPerks: [],
|
|
});
|
|
|
|
useAttunementStore.setState({
|
|
attunements: {},
|
|
});
|
|
|
|
useCraftingStore.setState({
|
|
designProgress: null,
|
|
designProgress2: null,
|
|
preparationProgress: null,
|
|
applicationProgress: null,
|
|
equipmentCraftingProgress: null,
|
|
enchantmentDesigns: [],
|
|
unlockedEffects: [],
|
|
equippedInstances: {},
|
|
equipmentInstances: {},
|
|
lootInventory: {
|
|
materials: {},
|
|
blueprints: [],
|
|
},
|
|
enchantmentSelection: {
|
|
selectedEquipmentType: null,
|
|
selectedEffects: [],
|
|
designName: '',
|
|
selectedDesign: null,
|
|
selectedEquipmentInstance: null,
|
|
},
|
|
lastError: null,
|
|
});
|
|
}
|
|
|
|
export function tickN(n: number) {
|
|
for (let i = 0; i < n; i++) {
|
|
useGameStore.getState().tick();
|
|
}
|
|
}
|