You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
161 lines
7.0 KiB
161 lines
7.0 KiB
//#region 文件引入
|
|
import { _decorator, Button, Component, Label, Node, sp, Sprite,Animation, RichText, SpriteFrame } from "cc";
|
|
import BaseUIForm from "../../Mgr_UI/BaseUIForm";
|
|
import ConfidanteDataPoxy from "../../const/ConfidanteDataPoxy";
|
|
import { ConfidanteData } from "../../const/GameInterface";
|
|
import StringUtils from "../../ExUtils/StringUtils";
|
|
import { EVideoType, PropType } from "../../const/GameEnum";
|
|
import GDUtils from "../../ExCUtils/GDUtils";
|
|
import { COLOR_PARAMS } from "../../const/GGameData";
|
|
import { Global } from "../../Global";
|
|
import MesMgr from "../../MesEvent/MesMgr";
|
|
import { EGlobalEvent } from "../../MesEvent/EGlobalEvent";
|
|
import UIMgr from "../../Mgr_UI/UIMgr";
|
|
import { EUIForms } from "../../const/UIFormCnf";
|
|
//#endregion 文件引入
|
|
const {ccclass, property,menu} = _decorator;
|
|
@ccclass("MeridianUI_Proxy")
|
|
export default class MeridianUI_Proxy extends BaseUIForm{
|
|
//#region 节点自动生成
|
|
@property(Button)
|
|
btn_Close: Button = null;
|
|
@property(Node)
|
|
n_Notice: Node = null;
|
|
@property(Button)
|
|
btn_boxBgClose: Button = null;
|
|
@property(Button)
|
|
btn_boxClose: Button = null;
|
|
@property(Node)
|
|
n_upLvBox: Node = null;
|
|
@property(Sprite)
|
|
spr_uplvicon: Sprite = null;
|
|
@property(Label)
|
|
lab_paytj: Label = null;
|
|
@property(Label)
|
|
lab_uplvname: Label = null;
|
|
@property(RichText)
|
|
ric_currProp: RichText = null;
|
|
@property(RichText)
|
|
ric_nextProp: RichText = null;
|
|
@property(Button)
|
|
btn_UpLv: Button = null;
|
|
//#endregion 节点自动生成
|
|
|
|
@property(Node)
|
|
mMerList: Node = null;
|
|
@property({type:[SpriteFrame]})
|
|
protected mMerIcon: SpriteFrame[] = [];
|
|
|
|
private mMerData: ConfidanteData[] = [];
|
|
|
|
private currUpLvId: number = 0;
|
|
|
|
onButtonClick(button:Button){
|
|
|
|
/**点击事件触发*/
|
|
switch (button) {
|
|
case this.btn_boxBgClose:
|
|
case this.btn_boxClose:
|
|
CNodeUtils.setActive(this.n_Notice, false);
|
|
break;
|
|
// case this.btn_Ad:
|
|
// Global.showvideo({name: EVideoType.AddTjCoin, gamelv: this.mDataMgr.Scene.getRealLevel()},()=>{
|
|
// this.mDataMgr.Token.addToken(PropType.eTaiJi, 5);
|
|
// this.openUpLvBox(this.currUpLvId);
|
|
// UIMgr.Ins.ShowTipsUI("真气+ 5");
|
|
// });
|
|
// break;
|
|
case this.btn_Close:
|
|
this.CloseUI();
|
|
break;
|
|
default:
|
|
ConsoleEx.Log(button);
|
|
break;
|
|
}
|
|
}
|
|
|
|
addEvent(): void {
|
|
|
|
}
|
|
|
|
protected onEnable(): void {
|
|
MesMgr.event(EGlobalEvent.SHOW_MAINTOP_BUTTOM, false);
|
|
}
|
|
|
|
protected onDisable(): void {
|
|
MesMgr.event(EGlobalEvent.SHOW_MAINTOP_BUTTOM, true);
|
|
}
|
|
|
|
protected start(): void {
|
|
this.mDataMgr.Confidante.checkConfState();
|
|
this.mMerData = this.mDataMgr.Confidante.getConfidantes();
|
|
for(let i = 0; i < this.mMerList.children.length; i++){
|
|
const merData = this.mDataMgr.Confidante.getConfidanteById(this.mMerData[i].id);
|
|
let mer = this.mMerList.children[i];
|
|
let btnMer = mer.getComponent(Button);
|
|
let icon = mer.getComponent(Sprite);
|
|
let bg = mer.getChildByName("bg");
|
|
let lv = bg.getChildByName("txt_lv").getComponent(Label);
|
|
let desc = bg.getChildByName("txt_desc").getComponent(Label);
|
|
let name = bg.getChildByName("txt_name").getComponent(Label);
|
|
CNodeUtils.switchText(name, merData.config.name);
|
|
icon.spriteFrame = this.mMerIcon[merData.config.index];
|
|
if(merData.state){
|
|
btnMer.interactable = true;
|
|
icon.grayscale = false;
|
|
bg.getComponent(Sprite).grayscale = false;
|
|
lv.string = "Lv." + (merData.level);
|
|
desc.string = StringUtils.format(merData.config.display, this.mDataMgr.Confidante.getProp(merData.id));
|
|
}else{
|
|
btnMer.interactable = false;
|
|
icon.grayscale = true;
|
|
bg.getComponent(Sprite).grayscale = true;
|
|
lv.string = merData.config.unlockdesc;
|
|
desc.string = "";
|
|
}
|
|
mer.on(Button.EventType.CLICK, () => {
|
|
this.openUpLvBox(merData.id, i);
|
|
});
|
|
}
|
|
}
|
|
|
|
openUpLvBox(id:number, idx:number){
|
|
this.currUpLvId = id;
|
|
const merData = this.mDataMgr.Confidante.getConfidanteById(id);
|
|
let mer = this.mMerList.children[idx];
|
|
let lv = mer.getChildByPath("bg/txt_lv").getComponent(Label);
|
|
lv.string = "Lv." + (merData.level);
|
|
CNodeUtils.setActive(this.n_Notice, true);
|
|
CNodeUtils.switchText(this.lab_uplvname, merData.config.name);
|
|
this.spr_uplvicon.spriteFrame = this.mMerIcon[merData.config.index];
|
|
const tjcoin = this.mDataMgr.Token.getTokenCount(PropType.eTaiJi);
|
|
const enough = tjcoin >= merData.cost;
|
|
if(enough){
|
|
this.lab_paytj.color = COLOR_PARAMS.BLACK;
|
|
}else{
|
|
this.lab_paytj.color = COLOR_PARAMS.RED;
|
|
}
|
|
CNodeUtils.switchText(this.lab_paytj,`${tjcoin}/${merData.cost}`);
|
|
const currProp = this.mDataMgr.Confidante.getProp(merData.id);
|
|
const nextProp = merData.config.prop_add * (merData.level + 1);
|
|
const currtxt = StringUtils.format(merData.config.display, `<color=#${COLOR_PARAMS.RED.toHEX()}>${currProp}</color>`);
|
|
CNodeUtils.switchRichText(this.ric_currProp,currtxt);
|
|
const nexttxt = StringUtils.format(merData.config.display, `<color=#${COLOR_PARAMS.RED.toHEX()}>${nextProp}</color>`);
|
|
CNodeUtils.switchRichText(this.ric_nextProp,nexttxt);
|
|
this.btn_UpLv.node.off(Button.EventType.CLICK);
|
|
this.btn_UpLv.node.on(Button.EventType.CLICK,()=>{
|
|
const tjcoin = this.mDataMgr.Token.getTokenCount(PropType.eTaiJi);
|
|
if(tjcoin >= merData.cost){
|
|
this.mDataMgr.Token.subToken(PropType.eTaiJi,merData.cost);
|
|
this.mDataMgr.Confidante.addConfidante(id);
|
|
UIMgr.Ins.ShowTipsUI(`${merData.config.name}突破成功!`);
|
|
// 直接刷新
|
|
this.openUpLvBox(id,idx);
|
|
}else{
|
|
UIMgr.Ins.ShowUI(EUIForms.LookAdGetTJUI, {param:{isMain:false, okcallback:()=>{
|
|
this.openUpLvBox(this.currUpLvId, idx);
|
|
}}});
|
|
}
|
|
});
|
|
}
|
|
}
|