feat(sasch40): overhaul Act III tavern schankraum and canonical papa markus scene
- Generate and integrate authentic 16-bit LucasArts taproom scene with Theke, brass taps, bartender, drinking patrons, and bunker trapdoor - Realign Schankraum hotspots for Verena, Lutz in hot tub, Armend at forge, room transitions, and centered bunker trapdoor - Update Papa Markus canonical portrait and Taiwan street dining scene to be bald and clean-shaven with glasses and modern attire - Enforce hotspot zero-occlusion rules for signposts, characters, and mobile room navigation bars - Document Papa Markus specifications, tavern invariants, and layout guidelines in AGENTS.md - Add automated sister capture and playthrough recording scripts
This commit is contained in:
@@ -0,0 +1,82 @@
|
||||
import puppeteer from 'puppeteer-core';
|
||||
import path from 'path';
|
||||
|
||||
const ARTIFACTS_DIR = '/Users/moritz/.gemini/antigravity/brain/4c86ae52-822a-485e-bcc7-fed5de9e5a4b/playtest_screenshots';
|
||||
|
||||
async function sleep(ms) {
|
||||
return new Promise(r => setTimeout(r, ms));
|
||||
}
|
||||
|
||||
async function run() {
|
||||
const browser = await puppeteer.launch({
|
||||
executablePath: '/Applications/Google Chrome.app/Contents/MacOS/Google Chrome',
|
||||
headless: 'new',
|
||||
args: ['--no-sandbox', '--window-size=412,869']
|
||||
});
|
||||
|
||||
const page = await browser.newPage();
|
||||
await page.setViewport({ width: 412, height: 869, deviceScaleFactor: 2, isMobile: true, hasTouch: true });
|
||||
await page.goto('http://localhost:4173', { waitUntil: 'networkidle0' });
|
||||
|
||||
// Advance to platformer
|
||||
await page.evaluate(() => {
|
||||
const store = document.querySelector('#app').__vue_app__.config.globalProperties.$pinia._s.get('game');
|
||||
store.setAct('platformer');
|
||||
});
|
||||
await sleep(800);
|
||||
|
||||
// Close intro modal
|
||||
const startBtn = await page.$('.start-act-btn');
|
||||
if (startBtn) await startBtn.click();
|
||||
await sleep(1000);
|
||||
|
||||
// Gameplay Level 1 with fixed sky background
|
||||
await page.screenshot({ path: path.join(ARTIFACTS_DIR, '10_act2_02_doodle_jump_level1.png') });
|
||||
console.log('📸 Updated 10_act2_02_doodle_jump_level1.png');
|
||||
|
||||
// Trigger Saskia Rescue
|
||||
await page.evaluate(() => {
|
||||
if (window.__platformer) window.__platformer.setRescuedSister('saskia');
|
||||
});
|
||||
await sleep(600);
|
||||
await page.screenshot({ path: path.join(ARTIFACTS_DIR, '11_act2_03_rescue_saskia.png') });
|
||||
console.log('📸 Captured 11_act2_03_rescue_saskia.png');
|
||||
|
||||
// Click proceed button
|
||||
const proceedBtn1 = await page.$('.proceed-btn');
|
||||
if (proceedBtn1) await proceedBtn1.click();
|
||||
await sleep(1000);
|
||||
|
||||
// Level 2 Gameplay
|
||||
await page.screenshot({ path: path.join(ARTIFACTS_DIR, '12_act2_04_doodle_jump_level2.png') });
|
||||
console.log('📸 Updated 12_act2_04_doodle_jump_level2.png');
|
||||
|
||||
// Trigger Maja Rescue
|
||||
await page.evaluate(() => {
|
||||
if (window.__platformer) window.__platformer.setRescuedSister('maja');
|
||||
});
|
||||
await sleep(600);
|
||||
await page.screenshot({ path: path.join(ARTIFACTS_DIR, '13_act2_05_rescue_maja.png') });
|
||||
console.log('📸 Captured 13_act2_05_rescue_maja.png');
|
||||
|
||||
// Click proceed button
|
||||
const proceedBtn2 = await page.$('.proceed-btn');
|
||||
if (proceedBtn2) await proceedBtn2.click();
|
||||
await sleep(1000);
|
||||
|
||||
// Level 3 Gameplay
|
||||
await page.screenshot({ path: path.join(ARTIFACTS_DIR, '14_act2_06_doodle_jump_level3.png') });
|
||||
console.log('📸 Updated 14_act2_06_doodle_jump_level3.png');
|
||||
|
||||
// Trigger Miriam Rescue
|
||||
await page.evaluate(() => {
|
||||
if (window.__platformer) window.__platformer.setRescuedSister('miriam');
|
||||
});
|
||||
await sleep(600);
|
||||
await page.screenshot({ path: path.join(ARTIFACTS_DIR, '15_act2_07_rescue_miriam.png') });
|
||||
console.log('📸 Captured 15_act2_07_rescue_miriam.png');
|
||||
|
||||
await browser.close();
|
||||
}
|
||||
|
||||
run();
|
||||
Reference in New Issue
Block a user