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) }; });