marineparkclient/assets/script/module/venueUpgradeModule.ts
2023-08-15 11:09:12 +08:00

175 lines
5.2 KiB
TypeScript

// Learn TypeScript:
// - https://docs.cocos.com/creator/manual/en/scripting/typescript.html
// Learn Attribute:
// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html
// Learn life-cycle callbacks:
// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html
import UIBase from "../../common/ui/base/UIBase";
import { EventCenter } from "../../common/ui/uiEv/EventCenter";
import UIBaseEv from "../../common/ui/uiEv/UIBaseEv";
import { MSG_Event } from "../DefineMsg/LogicMsg";
import { valueObj } from "../Model/data/baseObject";
import DataManager from "../Model/data/DataManager";
import { PropLeaveUp, propType, PropUnlock } from "../Model/data/propObject";
import ProxyClientDataMgr from "../Model/ProxyClientDataMgr";
import UIUnlockVenueLayer from "../ui/UIUnlockVenueLayer";
import UIUpgradeVenueLayer from "../ui/UIUpgradeVenueLayer";
const {ccclass, property} = cc._decorator;
@ccclass
export default class venueUpgradeModule extends UIBaseEv {
@property(cc.Label)
detailStr:cc.Label = null;
@property(cc.Label)
levelStr:cc.Label = null;
@property(cc.Label)
buffStr:cc.Label = null;
@property(cc.Sprite)
grayBg:cc.Sprite = null;
@property(cc.Label)
unlockCondition:cc.Label = null;
@property(cc.Button)
levelUpBtn:cc.Button = null;
@property(cc.Button)
unlockBtn:cc.Button = null;
levelUpMoney = 0;
level = 0;
max_level = 5;
upgradeData:valueObj = null;
// LIFE-CYCLE CALLBACKS:
// onLoad () {}
updataItem(upgradeData:valueObj)
{
this.upgradeData = upgradeData;
this.updataUI();
}
updataUI()
{
let itemId = this.upgradeData.getId();
let levelObj = this.upgradeData.getPropByType(propType.level) as PropLeaveUp;
let unlockObj = this.upgradeData.getPropByType(propType.unlock) as PropUnlock;
this.upgradeData.getPropByType(propType.unlock);
let groupDesp = ProxyClientDataMgr.ins().getGroupUpDesp(itemId);
let unlockDesp = ProxyClientDataMgr.ins().getUnlockDesp(itemId);
let buffDesp = ProxyClientDataMgr.ins().getBuffDesp(itemId);
let groupUpStr = this.getDespStr(groupDesp);
let unlockStr = this.getDespStr(unlockDesp);
if(unlockObj && !unlockObj.getUnLock())
{
this.grayBg.node.active = true;
this.unlockCondition.node.active = true;
this.levelStr.string = "";
this.buffStr.string = "";
this.levelUpBtn.node.active = false;
this.unlockCondition.string = unlockStr;
this.unlockBtn.node.active = true;
this.unlockBtn.getComponentInChildren(cc.Label).string = "解锁"
}
else
{
if( groupDesp.size=== 0)
{
groupUpStr = "已满级"
this.levelUpBtn.interactable = false;
}
else
{
this.levelUpBtn.interactable = true;
}
this.grayBg.node.active = false;
this.unlockCondition.node.active = false;
this.unlockBtn.node.active = false;
this.levelStr.string = "Lv"+levelObj.getLevel();
this.buffStr.string = buffDesp[1] as string;
this.levelUpBtn.node.active = true;
this.levelUpBtn.getComponentInChildren(cc.Label).string = groupUpStr;
}
this.detailStr.string = this.upgradeData.getName();
this.node.active = true;
}
getDespStr(objMap:Map<number,string>):string
{
let str:string = ""
let bGet = false;
for (let[k,v] of objMap) {
let kobj = ProxyClientDataMgr.ins().getValueObj(k);
if(bGet)
{
str = str + " ";
}
if(k === 0)
{
str = str + v;
}
else
{
str = str + kobj.getName()+v;
}
bGet = true;
}
return str;
}
onClickEvent(event,customEventData)
{
switch (+customEventData) {
case 0:
this.levelUp();
break;
case 1:
this.unlock();
default:
break;
}
}
unlock()
{
let bUnlock = ProxyClientDataMgr.ins().isUnLockAble(this.upgradeData.getId());
if(bUnlock)
{
ProxyClientDataMgr.ins().doUnlockItem(this.upgradeData.getId());
this.updataUI()
}
else
{
EventCenter.emit(MSG_Event.Net_ERRO,"没有达到解锁条件哦");
}
}
levelUp()
{
let bLevelUp = ProxyClientDataMgr.ins().isGroupUpAble(this.upgradeData.getId());
if(bLevelUp)
{
//EventCenter.emit(MSG_Event.Net_ERRO,"没有达到解锁条件哦");
ProxyClientDataMgr.ins().doGroupUpItem(this.upgradeData.getId());
this.updataUI()
}
else
{
EventCenter.emit(MSG_Event.Net_ERRO,"没有达到升级条件哦");
}
}
start () {
}
// update (dt) {}
}