future 1 year ago
parent
commit
3fdff603e2

+ 1 - 0
assets/script/config.ts

@@ -286,6 +286,7 @@ export class config {
         SHOW_TIPS:"SHOW_TIPS",  //显示一个提示
         TOGGLE_YIN_YUE:"TOGGLE_YIN_YUE",  //开关音乐
         UPDATE_FREE_TIME_STATUS:"UPDATE_FREE_TIME_STATUS",  //更新免费时间状态
+        WIN_LATER_AUTO_UNLOCK_NEXT_LEVEL:"WIN_LATER_AUTO_UNLOCK_NEXT_LEVEL", //获胜后自动解锁下一个关卡
     }
     static MSG_CODE = {
         SUCCESS: 10000,

+ 20 - 1
assets/script/run/game_list_view/game_list.ts

@@ -1,7 +1,7 @@
 import { _decorator, Component, EventTouch, instantiate, JsonAsset, Label, Node, Prefab, sys, UITransform, Vec2, Vec3 } from 'cc';
 import { http } from '../../http';
 import { gameManager } from '../gameManager';
-import { LevelInfoMessage, LevelMessage, scene_item_data } from '../../../data/data';
+import { LevelInfoMessage, LevelItemData, LevelMessage, scene_item_data } from '../../../data/data';
 import { level_list_item } from './level_list_item';
 import { config } from '../../config';
 import { tools } from '../../tools';
@@ -36,6 +36,8 @@ export class game_list extends Component {
         })
         ClientEvent.off(config.EventRun.UPDATE_FREE_TIME_STATUS,this.updateAllStatus.bind(this),this)
         ClientEvent.on(config.EventRun.UPDATE_FREE_TIME_STATUS,this.updateAllStatus.bind(this),this)
+        ClientEvent.off(config.EventRun.WIN_LATER_AUTO_UNLOCK_NEXT_LEVEL,this.autoUnlockNextLevel.bind(this),this)
+        ClientEvent.on(config.EventRun.WIN_LATER_AUTO_UNLOCK_NEXT_LEVEL,this.autoUnlockNextLevel.bind(this),this)
         this.loadView()
     }
 
@@ -245,6 +247,23 @@ export class game_list extends Component {
         }
         return Math.floor(this.m_data.content.tool_number/6)
     }
+
+    autoUnlockNextLevel(levelData:LevelItemData) {
+        let current_id = levelData.id
+        let current_index = this.content.children.findIndex((value, index, arr) => {
+            return value.getComponent(level_list_item).getData().id == current_id
+        })
+        if(current_index > -1) {
+            let next_index = current_index + 1
+            if(next_index < this.content.children.length) {
+                let next_item = this.content.children[next_index].getComponent(level_list_item)
+                if(next_item.getIsUnLock()==false) {
+                    // console.log("解锁了=",next_item.getData().id,'-',next_item.getData().name)
+                    next_item.UnLock()
+                }
+            }
+        }
+    }
 }
 
 

+ 7 - 0
assets/script/run/top_layer.ts

@@ -26,6 +26,7 @@ export class top_layer extends Component {
     private mTextSoundList:Map<number,widget_item_data> = new Map;
     private mQuestionList:Map<number,widget_item_data> = new Map;
     private mQuestionSelect:question_select = null;
+    private mIsShowWin:boolean = false;
 
     public initTop(){
         ClientEvent.off(config.EventRun.NOTICE_EVENT,this.beActive.bind(this),this)
@@ -47,6 +48,7 @@ export class top_layer extends Component {
         this.mQuestionSelect = null;
         this.mTextSoundList.clear()
         this.mQuestionList.clear()
+        this.mIsShowWin = false;
         ClientEvent.off(config.EventRun.NOTICE_EVENT,this.beActive.bind(this),this)
         ClientEvent.off(config.EventRun.ON_WIN,this.onWin.bind(this),this)
         ClientEvent.off(config.EventRun.SHOW_TIPS,this.onShowWidgetTip.bind(this),this)
@@ -100,6 +102,11 @@ export class top_layer extends Component {
 
     onWin(){
         this.win.getComponent(win).show(this.onClickShare.bind(this),this.onClickNext.bind(this))
+        if(this.mIsShowWin==false) {
+            this.mIsShowWin = true
+            let level_data = gameManager.Singleton.getLevelData()
+            ClientEvent.dispatchEvent(config.EventRun.WIN_LATER_AUTO_UNLOCK_NEXT_LEVEL,level_data)
+        }
     }
 
     onClickShare(){