43 lines
1.8 KiB
JavaScript
43 lines
1.8 KiB
JavaScript
import Phaser from '../js/vendor/phaser.js';
|
|
import { config } from '../js/config/Config.js';
|
|
import { ConfigLoader } from '../js/config/ConfigLoader.js';
|
|
import { createGameConfig } from '../js/config/GameConfig.js';
|
|
import { GameScene } from '../js/scenes/GameScene.js';
|
|
|
|
const sleep = (ms) => new Promise((r) => setTimeout(r, ms));
|
|
const data = await ConfigLoader.load();
|
|
config.init(data);
|
|
const gameConfig = createGameConfig();
|
|
gameConfig.scene = [GameScene];
|
|
const game = new Phaser.Game(gameConfig);
|
|
window.game = game;
|
|
window.__STEP__ = 'booting';
|
|
|
|
(async () => {
|
|
let gs = null;
|
|
for (let i = 0; i < 300; i++) {
|
|
gs = game.scene?.getScene('GameScene') ?? null;
|
|
if (gs && gs.ship) break;
|
|
await sleep(100);
|
|
}
|
|
if (!gs || !gs.ship) { window.__SHOT_READY__ = { error: 'no GameScene' }; return; }
|
|
window.__STEP__ = 'gs ok, mapWindow=' + !!gs.mapWindow;
|
|
if (!gs.mapWindow) { window.__SHOT_READY__ = { error: 'no mapWindow' }; return; }
|
|
gs.mapWindow.open();
|
|
window.__STEP__ = 'opened';
|
|
await sleep(600);
|
|
try {
|
|
if (typeof gs.mapWindow.setMode === 'function') gs.mapWindow.setMode('system');
|
|
else gs.mapWindow._mode = 'system';
|
|
window.__STEP__ = 'mode set';
|
|
} catch (e) { window.__SHOT_READY__ = { error: 'setMode: ' + e.message }; return; }
|
|
await sleep(1500);
|
|
try {
|
|
gs.mapWindow._askObject({ label: 'XANTHOS', id: 'xantos', x: 0, y: 0, r: 4 });
|
|
window.__STEP__ = 'asked, dlg=' + gs.mapWindow.dialog.state;
|
|
} catch (e) { window.__SHOT_READY__ = { error: 'ask: ' + e.message }; return; }
|
|
const dlg = gs.mapWindow.dialog;
|
|
for (let i = 0; i < 80 && dlg.state !== 'shown'; i++) await sleep(100);
|
|
window.__SHOT_READY__ = { ok: dlg.state === 'shown', state: dlg.state };
|
|
})().catch((err) => { window.__SHOT_READY__ = { error: String(err && err.message || err) }; });
|