99 lines
4.7 KiB
TypeScript
99 lines
4.7 KiB
TypeScript
/************************************************************************************
|
|
|
|
* 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<void> {
|
|
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);
|
|
}
|
|
}
|
|
} |