squidGame/tgx-games-client/assets/module_arean/ui_dan/UIDan.ts

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);
}
}
}