//#region 文件引入 import { _decorator, Button, Component, Label, Node, sp, Sprite,Animation, RichText } from "cc"; import BaseUIForm from "../../Mgr_UI/BaseUIForm"; import Language from "../../Language"; import { PropType } from "../../const/GameEnum"; import { COLOR_PARAMS } from "../../const/GGameData"; import UIMgr from "../../Mgr_UI/UIMgr"; import MesMgr from "../../MesEvent/MesMgr"; import { EGlobalEvent } from "../../MesEvent/EGlobalEvent"; import StringUtils from "../../ExUtils/StringUtils"; import TreasureDataPoxy from "../../const/TreasureData"; //#endregion 文件引入 const {ccclass, property,menu} = _decorator; @ccclass("PopBuyTreaUI_Proxy") export default class PopBuyTreaUI_Proxy extends BaseUIForm{ //#region 节点自动生成 @property(RichText) ric_text: RichText = null; @property(RichText) ric_content: RichText = null; @property(Button) btn_No: Button = null; @property(Button) btn_Yes: Button = null; @property(Label) lab_coin: Label = null; //#endregion 节点自动生成 private formatName:string = ''; onButtonClick(button:Button){ /**点击事件触发*/ switch (button) { case this.btn_No: this.CloseUI(); break; case this.btn_Yes: const coin = this.mDataMgr.Token.getTokenCount(PropType.eAdopt); if(coin >= this.param.cfg.price || this.param.isfree){ if(this.param.isfree){ this.mDataMgr.Pass.free_times = 0; }else{ this.mDataMgr.Token.subToken(PropType.eAdopt, this.param.cfg.price); } this.mDataMgr.Treasure.addTreasure(this.param.cfg.id); UIMgr.Ins.ShowTipsUI(`恭喜获得${this.formatName}`); MesMgr.event(EGlobalEvent.TREAS_BUY); }else{ UIMgr.Ins.ShowTipsUI(`兑换失败,玄武符不足!`); } this.CloseUI(); break; default: ConsoleEx.Log(button); break; } } protected start(): void { this.formatName = `${Language.getValue(this.param.cfg.name)}`; CNodeUtils.switchRichText(this.ric_text,`确认是否兑换${this.formatName}`); const treas = this.mDataMgr.Treasure.getTreasureById(this.param.cfg.id); const content: string = (treas!==null) ?`(当前等级:${treas.level})`:`(该珍宝未拥有)`; let prop1 = this.param.cfg.prop1; let prop2 = this.param.cfg.prop2; if(treas!==null){ prop1 = treas.prop1 prop2 = treas.prop2 } let effect:string = this.param.cfg.prop2 === 0? StringUtils.format(this.param.cfg.display, prop1):StringUtils.format(this.param.cfg.display, prop1, prop2) CNodeUtils.switchRichText(this.ric_content,`${content}\n效果:${effect}`); const coin = this.mDataMgr.Token.getTokenCount(PropType.eAdopt); this.lab_coin.color = (this.param.isfree || coin >= this.param.cfg.price)? COLOR_PARAMS.BLACK : COLOR_PARAMS.RED; CNodeUtils.switchText(this.lab_coin,this.param.isfree?"免费":this.param.cfg.price); } }