orbit/dev/map-dest-shot.mjs

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