Catch errors and rejected promises.

This commit is contained in:
neverblde 2024-04-29 23:23:00 -07:00
parent 14cc639654
commit b67b9efc31
5 changed files with 23 additions and 1 deletions

View File

@ -889,6 +889,8 @@ export default class BattleScene extends SceneBase {
let battleConfig: FixedBattleConfig = null;
throw new Error('JLIN not implemented.');
this.resetSeed(newWaveIndex);
const playerField = this.getPlayerField();

View File

@ -9,6 +9,21 @@ import BBCodeText from 'phaser3-rex-plugins/plugins/bbcodetext';
import TransitionImagePackPlugin from 'phaser3-rex-plugins/templates/transitionimagepack/transitionimagepack-plugin.js';
import { LoadingScene } from './loading-scene';
// Catch global errors and display them in an alert so users can report the issue.
window.onerror = function (message, source, lineno, colno, error) {
console.error(error);
let errorString = `Received unhandled error. Open browser console and click OK to see details.\nError: ${message}\nSource: ${source}\nLine: ${lineno}\nColumn: ${colno}\nStack: ${error.stack}`;
alert(errorString);
// Avoids logging the error a second time.
return true;
};
window.addEventListener('unhandledrejection', (event) => {
let errorString = `Received unhandled promise rejection. Open browser console and click OK to see details.\nReason: ${event.reason}`;
alert(errorString);
});
const config: Phaser.Types.Core.GameConfig = {
type: Phaser.WEBGL,
parent: 'app',

View File

@ -330,6 +330,8 @@ export class TitlePhase extends Phase {
this.scene.sessionPlayTime = 0;
this.end();
});
}).catch(err => {
console.error("Failed to load daily run:\n", err);
});
});
}

View File

@ -165,7 +165,7 @@ export class DailyRunScoreboard extends Phaser.GameObjects.Container {
} else
this.loadingLabel.setText('No Rankings');
});
});
}).catch(err => { console.error("Failed to load daily rankings:\n", err) });
}
}

View File

@ -64,6 +64,9 @@ export default class TitleUiHandler extends OptionSelectUiHandler {
this.playerCountLabel.setText(`${stats.playerCount} Players Online`);
if (this.splashMessage === battleCountSplashMessage)
this.splashMessageText.setText(battleCountSplashMessage.replace('{COUNT}', stats.battleCount.toLocaleString('en-US')));
})
.catch(err => {
console.error("Failed to fetch title stats:\n", err);
});
}