From 10ff2d32f52fd441a2ebe4039c7aa2a3498bcdf6 Mon Sep 17 00:00:00 2001 From: Tetardtek Date: Sat, 28 Mar 2026 20:23:57 +0100 Subject: [PATCH] fix: refactor store to direct $state exports + Object.assign mutation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Svelte 5 can't export reassigned $state — use const $state + Object.assign. All components now import state/actions directly (no gameStore wrapper). Deep reactivity works: evolutionTree nodes, generators, cosmetics all tracked. --- .../src/lib/components/CockpitHeader.svelte | 12 +- .../src/lib/components/CosmeticsPanel.svelte | 8 +- .../src/lib/components/EvolutionTree.svelte | 32 +-- Frontend/src/lib/components/GameSync.svelte | 8 +- Frontend/src/lib/components/GameTick.svelte | 4 +- .../src/lib/components/GeneratorShop.svelte | 12 +- .../src/lib/components/MilestoneBar.svelte | 10 +- .../src/lib/components/MilestonesPanel.svelte | 16 +- .../src/lib/components/OfflineReport.svelte | 16 +- .../src/lib/components/PrestigePanel.svelte | 14 +- .../src/lib/components/PrestigeScreen.svelte | 32 +-- .../src/lib/components/TadpoleSprite.svelte | 4 +- Frontend/src/lib/save-sync.ts | 22 +- Frontend/src/lib/stores/game.svelte.ts | 258 ++++++++---------- Frontend/src/routes/achievements/+page.svelte | 6 +- Frontend/src/routes/jeu/+page.svelte | 12 +- 16 files changed, 214 insertions(+), 252 deletions(-) diff --git a/Frontend/src/lib/components/CockpitHeader.svelte b/Frontend/src/lib/components/CockpitHeader.svelte index 8506457..122a214 100644 --- a/Frontend/src/lib/components/CockpitHeader.svelte +++ b/Frontend/src/lib/components/CockpitHeader.svelte @@ -1,5 +1,5 @@ @@ -7,23 +7,23 @@
Prod/s - {formatNumber(gameStore.productionPerSecond)} + {formatNumber(getProductionPerSecond())}
/clic - {formatNumber(gameStore.getClickGain())} + {formatNumber(getCurrentClickGain())}
Mult - x{gameStore.state.prestigeMultiplier.toFixed(1)} + x{state.prestigeMultiplier.toFixed(1)}
ADN - {gameStore.state.ancestralDna} + {state.ancestralDna}
Gen. - {gameStore.state.prestigeCount} + {state.prestigeCount}
diff --git a/Frontend/src/lib/components/CosmeticsPanel.svelte b/Frontend/src/lib/components/CosmeticsPanel.svelte index 9e04424..5783075 100644 --- a/Frontend/src/lib/components/CosmeticsPanel.svelte +++ b/Frontend/src/lib/components/CosmeticsPanel.svelte @@ -1,7 +1,7 @@ @@ -40,7 +40,7 @@ {cos.description} @@ -38,11 +38,11 @@ {/if} {#if nextMilestone} - {@const progressPct = Math.min((gameStore.state.prestigeCount / nextMilestone.threshold) * 100, 100).toFixed(1)} + {@const progressPct = Math.min((state.prestigeCount / nextMilestone.threshold) * 100, 100).toFixed(1)}
Prochain : {nextMilestone.name} - {gameStore.state.prestigeCount}/{nextMilestone.threshold} + {state.prestigeCount}/{nextMilestone.threshold}
diff --git a/Frontend/src/lib/components/OfflineReport.svelte b/Frontend/src/lib/components/OfflineReport.svelte index c9e758f..bcc1401 100644 --- a/Frontend/src/lib/components/OfflineReport.svelte +++ b/Frontend/src/lib/components/OfflineReport.svelte @@ -1,7 +1,7 @@ - { if (e.key === 'Escape' && gameStore.offlineReport) gameStore.dismissOfflineReport(); }} /> + { if (e.key === 'Escape' && refs.offlineReport) dismissOfflineReport(); }} /> -{#if gameStore.offlineReport} +{#if refs.offlineReport}
gameStore.dismissOfflineReport()} + onclick={() => dismissOfflineReport()} >

Retour au Marais

- Absent pendant {formatDuration(gameStore.offlineReport.duration)} + Absent pendant {formatDuration(refs.offlineReport.duration)}

@@ -41,17 +41,17 @@ class="gp-value text-3xl! mt-4 mb-2 gp-accent-green" style="text-shadow: 0 0 15px rgba(52,211,153,0.3);" > - +{formatNumber(gameStore.offlineReport.gains)} tetards + +{formatNumber(refs.offlineReport.gains)} tetards

- Efficacite : {Math.round(gameStore.offlineReport.efficiency * 100)}% + Efficacite : {Math.round(refs.offlineReport.efficiency * 100)}%

diff --git a/Frontend/src/lib/components/PrestigeScreen.svelte b/Frontend/src/lib/components/PrestigeScreen.svelte index 46f5d1a..25428aa 100644 --- a/Frontend/src/lib/components/PrestigeScreen.svelte +++ b/Frontend/src/lib/components/PrestigeScreen.svelte @@ -1,7 +1,7 @@ - { if (e.key === 'Escape' && gameStore.showPrestigeScreen) gameStore.closePrestige(); }} /> + { if (e.key === 'Escape' && refs.showPrestigeScreen) closePrestige(); }} /> -{#if gameStore.showPrestigeScreen} +{#if refs.showPrestigeScreen}
Nouvelle Generation -

Generation #{gameStore.state.prestigeCount + 1}

+

Generation #{state.prestigeCount + 1}

@@ -68,7 +68,7 @@ {#if dnaBonus > 0} (base {formatNumber(baseDna)} + {Math.round(dnaBonus * 100)}% arbre) {/if} - Total apres : {formatNumber(gameStore.state.ancestralDna + dnaPreview)} ADN + Total apres : {formatNumber(state.ancestralDna + dnaPreview)} ADN
@@ -85,7 +85,7 @@
Tetards produits - {formatNumber(gameStore.state.lifetimeTadpoles)} + {formatNumber(state.lifetimeTadpoles)} {#if isBestTadpoles && bestRun} ★{/if}
@@ -141,7 +141,7 @@
{:else} {/if}
diff --git a/Frontend/src/lib/components/TadpoleSprite.svelte b/Frontend/src/lib/components/TadpoleSprite.svelte index 2d47268..af0c02f 100644 --- a/Frontend/src/lib/components/TadpoleSprite.svelte +++ b/Frontend/src/lib/components/TadpoleSprite.svelte @@ -1,5 +1,5 @@