/************************************************************************************ * FileName : UIDan.ts * Description : 段位 * Version : v1.0.0 * CreateTime : 2024-12-06 16:12:59 * Author : * Copyright (c) 2024 * ============================================================== * Method Description: * * ============================================================== ************************************************************************************/ import {GameUILayers} from "db://assets/scripts/GameUILayers"; import {tgx_class} from "db://assets/core_tgx/base/ModuleContext"; import {ModuleDef} from "db://assets/scripts/ModuleDef"; import {tgxAudioMgr, tgxUIController} from "db://assets/core_tgx/tgx"; import {Layout_UIDan} from "db://assets/module_arean/ui_dan/Layout_UIDan"; import {areanMgr} from "db://assets/module_arean/scripts/AreanManager"; import { instantiate, ScrollView, v2 } from "cc"; import {DanCell} from "db://assets/module_arean/ui_dan/DanCell"; import {UserMgr} from "db://assets/module_basic/scripts/UserMgr"; import {CommonFun} from "db://assets/module_arean/scripts/CommonFun"; import {NetGameServer} from "db://assets/module_basic/scripts/NetGameServer"; import { EMusicDefine } from "../../module_basic/scripts/MusicDefine"; import {DanMainCell} from "db://assets/module_arean/ui_dan/DanMainCell"; @tgx_class(ModuleDef.Arean) export class UIDan extends tgxUIController{ constructor() { super("ui_dan/UIDan", GameUILayers.POPUP,Layout_UIDan) } protected onCreated(params: any) { let layout = this.layout as Layout_UIDan; // 关闭界面 this.onButtonEvent(layout.closeBtn, () => { tgxAudioMgr.inst.playCommonBtn(EMusicDefine.EFFECT_CLOSE); this.close(); }) this._initList(); } private _initList() : void{ let layout = this.layout as Layout_UIDan; let content = layout.content; content.destroyAllChildren(); let mainDanList = areanMgr.cfgMgr.DanData.getMainDanArr(); console.log('mainDanList === ',mainDanList); let len = mainDanList.length; let curDanInfo = CommonFun.getInstance().calDanData(UserMgr.inst.userInfo.danGrading); for(let i = 0;i < len;i++){ let element = mainDanList[i]; let node = instantiate(layout.danCell); // console.log(`第${element.mainDan}的子段位数据 ==`,areanMgr.cfgMgr.DanData.getSingleDanList(element.mainDan)); let childDanList = areanMgr.cfgMgr.DanData.getSingleDanList(element.mainDan); content.addChild(node); node.active = true; let danCell = node.getComponent(DanMainCell); danCell.init(element,childDanList,this._clickCallBack.bind(this)); } let timer = setTimeout(()=>{ clearTimeout(timer); content.parent.parent.getComponent(ScrollView).scrollToOffset(v2( 0,(35 - curDanInfo.curDan) * 1100), 0.1, true); },100) // let localDanData = areanMgr.cfgMgr.DanData.getAllData(); // let len = localDanData.length; // let serverDanData = UserMgr.inst.userInfo.danInfo; // let curDanInfo = CommonFun.getInstance().calDanData(UserMgr.inst.userInfo.danGrading); // for (let i = 0; i < len; i++) { // let data = localDanData[i]; // let node = instantiate(layout.danCell); // content.addChild(node); // node.active = true; // let canReward : boolean = this._checkCanReward(data.id); // node.getComponent(DanCell).init(curDanInfo,data,serverDanData.rewards,canReward,this._clickCallBack.bind(this)); // } } // 是否可以领取 // private _checkCanReward(danId : number) : boolean{ // let localDanData = areanMgr.cfgMgr.DanData.getAllData(); // let serverDanData = UserMgr.inst.userInfo.danInfo; // let curDanInfo = CommonFun.getInstance().calDanData(UserMgr.inst.userInfo.danGrading); // return localDanData[danId - 1].reward.length > 0 && !serverDanData.rewards.find((data)=> data.danId === danId) && curDanInfo.curDan >= danId && UserMgr.inst.userInfo.danGrading >= localDanData[danId - 1].allStar; // } private async _clickCallBack(index: number): Promise { console.log("点击了第" + index + "个"); tgxAudioMgr.inst.playCommonBtn(EMusicDefine.EFFECT_CLICK); let ret = await NetGameServer.inst.conn.callApi("lobby/user/GetDanReward", {danId: index}); let rewardList = ret.res.rewardList; if (rewardList.code === 0) { UserMgr.inst.userInfo.danInfo.rewards = rewardList.danInfo; CommonFun.getInstance().showCommonReward(rewardList.rewards); } } }