Files
fc/dev/project/assets/Scripts/mod/acts/startravel/cmp/cmp.act.startravel.item.exp.js
T
2026-05-23 22:10:14 +08:00

124 lines
3.4 KiB
JavaScript

const ItemBase = require("nx.fx.sv.expand.item");
const ItemLay = require("cmp.common.itemlayout");
const WndStartravel = require("cmp.act.startravel");
const NxSpine = require("nx.fx.spine");
const PathTool = require("pathtool");
cc.Class({
extends: ItemBase,
properties: {
idx:{
default:null,
type:cc.Node
},
tag:{
default:null,
type:cc.Node
},
fabItem:{
default:null,
type:cc.Prefab
},
lay:{
default:null,
type:ItemLay
},
maskNd:{
default:null,
type:cc.Node
},
spCmp:{
default:null,
type:NxSpine
},
wndCmp:{
default:null,
type:WndStartravel
}
},
rebind(_index,_data,_key){
this._super(_index,_data,_key);
this.setData(_data);
},
setData(data){
if(nx.dt.objEmpty(data)){
this.lay.rebuild([]);
return;
}
nx.gui.setString(this.idx,"",data.data.lev);
let awards = [];
for(let idx in data.data.rmb_reward){
awards.push({bid:data.data.rmb_reward[idx][0],num:data.data.rmb_reward[idx][1]});
}
this.scheduleOnce(()=>{
this.lay.rebuild(awards);
},0.05);
let item = cc.instantiate(this.fabItem);
item.parent = this.tag;
let cmp = nx.gui.getComponent(item,"","cmp.item.base");
if(cmp){
cmp.rebind(0,data.data.reward[0],"");
}
let is_rmb = 0;
this.maskNd.active = false;
if(data.cfg){
is_rmb = data.cfg.rmb_status;//是否已购买特权
let is_award = data.cfg.status;//奖励是否已领取 0 没有 1有
if(is_award == 1){
this.maskNd.active = true;
nx.gui.setActive(this.maskNd,"1",true);
if(is_rmb == 1){
nx.gui.setActive(this.maskNd,"2",true);
}
this.setLockStatus(0);
}
}else{
let curExp = this.wndCmp.mod.getCurExp();
let is_get = (curExp >= this.mdata.data.exp);//是否符合领取奖励标准
if(is_get){
this.setLockStatus(1);
}
}
nx.gui.setActive(this.node,"lock1",this.wndCmp.mod.getRMBStatus() != 1);
nx.gui.setActive(this.node,"lock2",this.wndCmp.mod.getRMBStatus() != 1);
},
setLockStatus(status){
this.scheduleOnce(()=>{
if(status == 0){
this.spCmp.stop();
}else if(status == 1){
let res_path = PathTool.getSpinePath( "E80047",null, false );
this.spCmp.load( res_path, ( _e ) => {
if( !_e ) {
this.spCmp.action( "action", true );
} else {
this.spCmp.stop();
}
} );
}
},0.1);
},
onDisable(){
},
onClickAward(){
if(!this.mdata)return;
let curExp = this.wndCmp.mod.getCurExp();
let is_get = (curExp >= this.mdata.data.exp);//是否符合领取奖励标准
if(is_get){
this.wndCmp.mod.reqGift(this.mdata.data.lev);
}else{
nx.tbox("BuyAwardLimt");
}
}
// update (dt) {},
});