fix: move BETA badge after green dot in navbar

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Dorian
2026-03-09 15:36:24 +00:00
co-authored by Claude Opus 4.6
parent 226d242552
commit df70f5f093
5 changed files with 46 additions and 19 deletions
+5 -1
View File
@@ -1222,7 +1222,11 @@ export async function createFightScene(config: FightSceneConfig) {
stopShowboating(side: 'a' | 'b') { showboatSystem.stopShowboating(side) },
async playEntrance() {
return entranceSystem.playEntrance()
// Timeout entrance to prevent hanging on mobile (max 8s)
await Promise.race([
entranceSystem.playEntrance(),
new Promise<void>(r => setTimeout(r, 8000)),
])
},
// Physical contact delegates
+20 -11
View File
@@ -524,21 +524,30 @@ async function playEntrance() {
while (idxB === idxA && attempts < 5) { idxB = pickTierEntrance(botB.tier); attempts++ }
// Play entrances with slight stagger — creator always gets special entrance
// Wrap each in try/catch so one failing doesn't prevent the other
announceDeepIntro()
if (botA.archetype === 'the_creator') {
await creatorEntrance(fA, HOME_A, true)
} else {
await entrances[idxA](fA, HOME_A, true)
try {
if (botA.archetype === 'the_creator') {
await creatorEntrance(fA, HOME_A, true)
} else {
await entrances[idxA](fA, HOME_A, true)
}
} catch (e) {
console.warn('[Entrance] Fighter A entrance failed:', e)
}
await k.wait(0.3)
if (botB.archetype === 'the_creator') {
await creatorEntrance(fB, HOME_B, false)
} else {
await entrances[idxB](fB, HOME_B, false)
try {
if (botB.archetype === 'the_creator') {
await creatorEntrance(fB, HOME_B, false)
} else {
await entrances[idxB](fB, HOME_B, false)
}
} catch (e) {
console.warn('[Entrance] Fighter B entrance failed:', e)
}
await k.wait(0.2)
// Safety: ensure both fighters are visible and at home positions
// Safety: ALWAYS ensure both fighters are visible and at home positions
fA.pos.x = HOME_A
fA.pos.y = GROUND_Y - 6
fA.opacity = 1
@@ -547,8 +556,8 @@ async function playEntrance() {
fB.opacity = 1
// Both idle at home positions
fA.play('idle')
fB.play('idle')
try { fA.play('idle') } catch { /* sprite may not have anim */ }
try { fB.play('idle') } catch { /* sprite may not have anim */ }
}
return { playEntrance }