// Одноразовая проба трека 28: дев-панель + вьювер моделей
import { startDevServer, launchBrowser, openGame } from '@rpg/engine/tools/agent-lib.mjs';
const dev = startDevServer({ port: 5334, cwd: 'apps/game' });
await dev.waitReady;
const browser = await launchBrowser();
try {
const client = await openGame(browser, { url: 'http://localhost:5334/' });
await client.call('startGame', false);
await client.call('stepTicks', 20);
console.log('каталог:', (await client.call('devInfo')).entries.map((e) => e.id).join(', '));
await client.call('devOpen');
console.log('панель открыта:', (await client.call('devInfo')).open);
const id = 'char:Путник (герой)';
console.log('вьювер:', await client.call('devOpenEntry', id));
await client.screenshot('/tmp/t28_dev_hero.png');
console.log('статы:', await client.call('devStats'));
// скин: переключить на Милу
await client.evaluate(() => {
const sel = document.getElementById('dev-skin');
sel.value = '1';
sel.dispatchEvent(new Event('change'));
});
await client.screenshot('/tmp/t28_dev_mila.png');
console.log('статы после скина:', await client.call('devStats'));
// олень и дерево
console.log('олень:', await client.call('devOpenEntry', 'deer'));
await client.screenshot('/tmp/t28_dev_deer.png');
console.log('статы оленя:', await client.call('devStats'));
console.log('дерево:', await client.call('devOpenEntry', 'tree0'));
await client.screenshot('/tmp/t28_dev_tree.png');
console.log('статы дерева:', await client.call('devStats'));
await client.call('devClose');
console.log('закрыто:', !(await client.call('devInfo')).open);
console.log('pageerrors:', client.errors());
} finally {
await browser.close();
dev.stop();
process.exit(0);
}