Fortress Clash
About [ Fortress Clash ]
Fixed the reported issue: progress was not restored after a reload.
Root cause: bridge.storage.get() returns the saved value already parsed as an object, while the game expected a JSON string and parsed it again, which threw and silently discarded the save.
Changes:
- storage.get() now accepts both shapes (object and string).
- The save is loaded BEFORE gameplay is shown: a loading screen is displayed and input is ignored until storage.get() resolves, so a fresh default save can no longer overwrite real progress during startup.
- Saves carry a revision counter, so after "finish a level, then buy an upgrade" the newest copy always wins instead of an older one at the same level.
- Any pending write is flushed on page hide / unload, so the last action before a reload is never lost.
Verified in the QA tool: state written before Reload game is fully restored after it.
Root cause: bridge.storage.get() returns the saved value already parsed as an object, while the game expected a JSON string and parsed it again, which threw and silently discarded the save.
Changes:
- storage.get() now accepts both shapes (object and string).
- The save is loaded BEFORE gameplay is shown: a loading screen is displayed and input is ignored until storage.get() resolves, so a fresh default save can no longer overwrite real progress during startup.
- Saves carry a revision counter, so after "finish a level, then buy an upgrade" the newest copy always wins instead of an older one at the same level.
- Any pending write is flushed on page hide / unload, so the last action before a reload is never lost.
Verified in the QA tool: state written before Reload game is fully restored after it.







