fix: 修复关卡排序
This commit is contained in:
@@ -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} 关`);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user