//#region 文件引入 import { _decorator, Button, Component, Label, Node, sp, Sprite,Animation, RichText } from "cc"; import UIParse from "../../Mgr_UI/UIParse"; import UIMgr from "../../Mgr_UI/UIMgr"; import BuildDataPoxy from "../../const/BuildDataPoxy"; import { PropType } from "../../const/GameEnum"; import { EUIForms } from "../../const/UIFormCnf"; import { COLOR_PARAMS } from "../../const/GGameData"; //#endregion 文件引入 const {ccclass, property,menu} = _decorator; @ccclass("buildItem_Proxy") export default class buildItem_Proxy extends UIParse{ //#region 节点自动生成 @property(Label) lab_name: Label = null; @property(Node) n_Info: Node = null; @property(Label) lab_Lv: Label = null; @property(Label) lab_CoinSecond: Label = null; @property(Label) lab_addCoin: Label = null; @property(Button) btn_UpBuild: Button = null; @property(Label) lab_up: Label = null; @property(Node) n_red: Node = null; @property(Node) n_addeffect: Node = null; @property(Label) lab_effctcoin: Label = null; @property(Node) n_open: Node = null; @property(Label) lab_opencoin: Label = null; @property(Button) btn_OpenBuild: Button = null; @property(Node) n_openred: Node = null; //#endregion 节点自动生成 private mBuildPoxy: BuildDataPoxy = null; onButtonClick(button:Button){ /**点击事件触发*/ switch (button) { case this.btn_UpBuild: UIMgr.Ins.ShowUI(EUIForms.PopBuildLvUpUI,{param:{bData:this.mBuildPoxy,success:()=>{this.refreshBuild()}}}); break; case this.btn_OpenBuild: if(!this.mDataMgr.Token.checkToken(PropType.eGold, this.mBuildPoxy.upgradeCost)){ UIMgr.Ins.ShowTipsUI("铜钱不足!"); return false; } this.mBuildPoxy.running = true; this.refreshBuild(); this.mDataMgr.Token.subToken(PropType.eGold, this.mBuildPoxy.upgradeCost); break; default: ConsoleEx.Log(button); break; } } // 设置建筑数据 setBuildData(bid:number){ const isUnLock = this.mDataMgr.Build.hasBuilding(bid); if(isUnLock){ this.mBuildPoxy = this.mDataMgr.Build.getBuildPoxy(bid); this.refreshBuild(); }else{ CNodeUtils.setActive(this.n_Info, false); CNodeUtils.setActive(this.n_open, false); CNodeUtils.addNoScaleBtnComponent(this.node,this.ShowLockTips.bind(this),this) } } ShowLockTips(){ UIMgr.Ins.ShowTipsUI("未解锁") } refreshBuild() { const redpoint = this.mDataMgr.Build.canUpgrade(this.mBuildPoxy); CNodeUtils.setActive(this.n_red, redpoint); CNodeUtils.setActive(this.n_addeffect, this.mBuildPoxy.running); CNodeUtils.setActive(this.n_Info, this.mBuildPoxy.running); CNodeUtils.setActive(this.n_open, !this.mBuildPoxy.running); CNodeUtils.switchText(this.lab_Lv,`lv.${this.mBuildPoxy.level}`) CNodeUtils.switchText(this.lab_CoinSecond,`${this.mBuildPoxy.income}两/秒`) CNodeUtils.switchText(this.lab_addCoin,`+${this.mBuildPoxy.add - this.mBuildPoxy.income}两/秒`) CNodeUtils.switchText(this.lab_effctcoin,`+${this.mBuildPoxy.income}两`) if(!this.mBuildPoxy.running){ const cost = this.mBuildPoxy.upgradeCost; const success = this.mDataMgr.Token.checkToken(PropType.eGold, cost) this.lab_opencoin.color = success? COLOR_PARAMS.WHITE : COLOR_PARAMS.RED; CNodeUtils.switchText(this.lab_opencoin,`${cost}`); CNodeUtils.setActive(this.n_openred, success); } } }