feat: P25 conditional routing, nextScene supports Choice[] with conditions

This commit is contained in:
2026-06-13 00:50:48 +08:00
parent db4f06883d
commit e949a84171
7 changed files with 108 additions and 10 deletions

View File

@@ -296,11 +296,26 @@ export class Engine {
}
)
} else if (scene.nextScene) {
const next = this.sceneManager.getScene(scene.nextScene)
if (next) {
this.goToScene(next)
} else {
if (Array.isArray(scene.nextScene)) {
for (const route of scene.nextScene) {
if (!route.conditions || this.stateManager.evaluate(route.conditions)) {
const next = this.sceneManager.getScene(route.targetScene)
if (next) {
this.goToScene(next)
} else {
this.endGame()
}
return
}
}
this.endGame()
} else {
const next = this.sceneManager.getScene(scene.nextScene)
if (next) {
this.goToScene(next)
} else {
this.endGame()
}
}
} else if (scene.hotspots?.length) {
return