From 2010fdc829ab0c17aa0da8e60ee9a9338440ec4b Mon Sep 17 00:00:00 2001 From: Flashfyre Date: Wed, 15 May 2024 00:35:47 -0400 Subject: [PATCH] Change save threshold from 5 waves to 10 waves or 5 minutes --- src/battle-scene.ts | 5 +++++ src/phases.ts | 4 +++- src/system/game-data.ts | 5 ++++- 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/battle-scene.ts b/src/battle-scene.ts index 111e5439b12..77c3b7ad404 100644 --- a/src/battle-scene.ts +++ b/src/battle-scene.ts @@ -88,6 +88,7 @@ export default class BattleScene extends SceneBase { public uiInputs: UiInputs; public sessionPlayTime: integer = null; + public lastSavePlayTime: integer = null; public masterVolume: number = 0.5; public bgmVolume: number = 1; public seVolume: number = 1; @@ -452,6 +453,8 @@ export default class BattleScene extends SceneBase { initSession(): void { if (this.sessionPlayTime === null) this.sessionPlayTime = 0; + if (this.lastSavePlayTime === null) + this.lastSavePlayTime = 0; if (this.playTimeTimer) this.playTimeTimer.destroy(); @@ -464,6 +467,8 @@ export default class BattleScene extends SceneBase { this.gameData.gameStats.playTime++; if (this.sessionPlayTime !== null) this.sessionPlayTime++; + if (this.lastSavePlayTime !== null) + this.lastSavePlayTime++; } }); diff --git a/src/phases.ts b/src/phases.ts index 8556e9dbcdd..a5439c228ea 100644 --- a/src/phases.ts +++ b/src/phases.ts @@ -330,6 +330,7 @@ export class TitlePhase extends Phase { this.scene.newBattle(); this.scene.arena.init(); this.scene.sessionPlayTime = 0; + this.scene.lastSavePlayTime = 0; this.end(); }); }; @@ -537,6 +538,7 @@ export class SelectStarterPhase extends Phase { this.scene.newBattle(); this.scene.arena.init(); this.scene.sessionPlayTime = 0; + this.scene.lastSavePlayTime = 0; this.end(); }); }); @@ -790,7 +792,7 @@ export class EncounterPhase extends BattlePhase { this.scene.ui.setMode(Mode.MESSAGE).then(() => { if (!this.loaded) { - this.scene.gameData.saveAll(this.scene, true, battle.waveIndex % 5 === 1).then(success => { + this.scene.gameData.saveAll(this.scene, true, battle.waveIndex % 10 === 1 || this.scene.lastSavePlayTime >= 10).then(success => { this.scene.disableMenu = false; if (!success) return this.scene.reset(true); diff --git a/src/system/game-data.ts b/src/system/game-data.ts index dfb13eabb62..e7537fc52ff 100644 --- a/src/system/game-data.ts +++ b/src/system/game-data.ts @@ -656,6 +656,7 @@ export class GameData { console.log('Seed:', scene.seed); scene.sessionPlayTime = sessionData.playTime || 0; + scene.lastSavePlayTime = 0; const loadPokemonAssets: Promise[] = []; @@ -903,8 +904,10 @@ export class GameData { Utils.apiPost('savedata/updateall', JSON.stringify(request, (k: any, v: any) => typeof v === 'bigint' ? v <= maxIntAttrValue ? Number(v) : v.toString() : v), undefined, true) .then(response => response.text()) .then(error => { - if (sync) + if (sync) { + this.scene.lastSavePlayTime = 0; this.scene.ui.savingIcon.hide(); + } if (error) { if (error.startsWith('client version out of date')) { this.scene.clearPhaseQueue();