fix: 修复关卡排序

This commit is contained in:
richarjiang
2026-04-10 11:00:43 +08:00
parent 69c0986996
commit 9cf499a5e1
3 changed files with 64 additions and 23 deletions

View File

@@ -113,8 +113,10 @@ export class PageLoading extends Component {
}
/**
* 用服务端通关进度覆盖本地进度
* completedLevelIds 转换为本地的 currentLevelIndex / maxUnlockedLevelIndex
* 用服务端通关进度同步本地进度
* 1. 根据 completedLevelIds 标记已通关关卡
* 2. 更新 maxUnlockedLevelIndex
* 3. 将 currentLevelIndex 设为第一个未通关关卡
*/
private _syncProgressFromServer(): void {
const completedIds = AuthManager.instance.completedLevelIds;
@@ -132,9 +134,13 @@ export class PageLoading extends Component {
// 取服务端和本地的较大值,防止进度回退
if (maxCompletedIndex > localMax) {
// onLevelCompleted 会同时设置 currentLevelIndex = maxCompletedIndex + 1 和 maxUnlockedLevelIndex
StorageManager.onLevelCompleted(maxCompletedIndex);
console.log(`[PageLoading] 服务端进度同步:已通关到第 ${maxCompletedIndex + 1}`);
}
// 根据关卡列表找到第一个未通关关卡,设为当前关卡
const firstUncompleted = LevelDataManager.instance.getFirstUncompletedIndex();
StorageManager.setCurrentLevelIndex(firstUncompleted);
console.log(`[PageLoading] 当前关卡设为第一个未通关: 第 ${firstUncompleted + 1}`);
}
}