207 lines
7.3 KiB
JavaScript
207 lines
7.3 KiB
JavaScript
|
|
"use strict";
|
||
|
|
cc._RF.push(module, '3a443p9oPZA2rCM5Izz8wic', 'cmp.kernel.upgrade');
|
||
|
|
// Scripts/mod/home/base_kernel/cmp.kernel.upgrade.js
|
||
|
|
|
||
|
|
"use strict";
|
||
|
|
|
||
|
|
/******************************************************************
|
||
|
|
*
|
||
|
|
* 家園 基礎核心 升階相關
|
||
|
|
*
|
||
|
|
******************************************************************/
|
||
|
|
|
||
|
|
var BridgeWindow = require("bridge.window");
|
||
|
|
var BackPackController = require("backpack_controller");
|
||
|
|
var HeroControl = require("hero_controller");
|
||
|
|
cc.Class({
|
||
|
|
"extends": BridgeWindow,
|
||
|
|
properties: {
|
||
|
|
nodSks: {
|
||
|
|
"default": null,
|
||
|
|
type: cc.Node
|
||
|
|
},
|
||
|
|
nodNeeds: {
|
||
|
|
"default": null,
|
||
|
|
type: cc.Node
|
||
|
|
}
|
||
|
|
},
|
||
|
|
// 重载:参数打开 僚机的id
|
||
|
|
onOpenConfigs: function onOpenConfigs(_params) {
|
||
|
|
this.item_id = _params.item_bid;
|
||
|
|
this.sid = _params.skill_id;
|
||
|
|
this.pos = _params.pos;
|
||
|
|
// this.cb = _params.cb;
|
||
|
|
this.from = _params.from;
|
||
|
|
this.camp = _params.camp;
|
||
|
|
this.cb = _params.cb;
|
||
|
|
this.fresh();
|
||
|
|
},
|
||
|
|
// 刷新
|
||
|
|
fresh: function fresh() {
|
||
|
|
var self = this;
|
||
|
|
var BC = BackPackController.getInstance();
|
||
|
|
var BM = BC.getModel();
|
||
|
|
var setInfo = function setInfo(_node, _ffg, _sfg) {
|
||
|
|
var icon = nx.gui.find(_node, "icon/icon");
|
||
|
|
var nodLev = nx.gui.find(_node, "icon/level");
|
||
|
|
var nodLevName = nx.gui.find(_node, "name");
|
||
|
|
var nodDesc = nx.gui.find(_node, "desc/srv/view/content");
|
||
|
|
var path = _ffg.skill_icon ? cc.path.join("resDB/icons/skills/" + _sfg.res_id) : "";
|
||
|
|
nx.gui.setSpriteFrame(icon, "", path);
|
||
|
|
nx.gui.setString(nodLev, "txt", _sfg.lev || 0);
|
||
|
|
nx.gui.setString(nodLevName, "txt", _sfg.name || nx.text.getKey("lab_role_title_panel_tip_3"));
|
||
|
|
nx.gui.setString(nodDesc, "txt", _sfg.desc || "");
|
||
|
|
};
|
||
|
|
|
||
|
|
// 通过传入的配置表来进行显隐ui
|
||
|
|
var dealShow = function dealShow(_cfg, _award) {
|
||
|
|
if (nx.dt.objEmpty(_cfg)) {
|
||
|
|
// 技能升到满级
|
||
|
|
if (!_cfg || !_award || !nx.dt.numPositive(_award, false)) {
|
||
|
|
// 技能信息
|
||
|
|
// let cur = nx.gui.getComponent( self.nodSks, "from/icon", "cmp.skill.base" );
|
||
|
|
// console.log( "需要設置的技能id" + self.sid );
|
||
|
|
// cur.setData( self.sid );
|
||
|
|
var nod = nx.gui.find(self.nodSks, "from");
|
||
|
|
setInfo(nod, cfgs, scfgs);
|
||
|
|
}
|
||
|
|
nx.gui.setActive(self.nodSks, "from/name/max", true);
|
||
|
|
}
|
||
|
|
nx.gui.setActive(self.nodSks, "arrow", !nx.dt.objEmpty(_cfg));
|
||
|
|
nx.gui.setActive(self.nodSks, "to", !nx.dt.objEmpty(_cfg));
|
||
|
|
nx.gui.setActive(self, "panel/panel/needtip", !nx.dt.objEmpty(_cfg));
|
||
|
|
nx.gui.setActive(self.nodNeeds, "", !nx.dt.objEmpty(_cfg));
|
||
|
|
nx.gui.setActive(self, "panel/panel/leveltip", nx.dt.objEmpty(_cfg));
|
||
|
|
nx.gui.setActive(self, "panel/panel/max", nx.dt.objEmpty(_cfg));
|
||
|
|
nx.gui.setActive(self, "panel/up", !nx.dt.objEmpty(_cfg));
|
||
|
|
nx.gui.setActive(self, "panel/close", nx.dt.objEmpty(_cfg));
|
||
|
|
};
|
||
|
|
|
||
|
|
// 配置获取 僚机技能升级
|
||
|
|
var cfgs = nx.dt.objClone(game.configs.halidom_data.data_step[this.camp][this.item_id]);
|
||
|
|
var scfgs = nx.dt.objClone(game.configs.halidom_data.data_skill[cfgs.skill_icon]);
|
||
|
|
if (this.from == "kernel") {
|
||
|
|
// 技能显示相关
|
||
|
|
var next = game.configs.halidom_data.data_step[this.camp][this.item_id + 1];
|
||
|
|
var award = 0;
|
||
|
|
if (cfgs && next) {
|
||
|
|
award = next.skill_icon;
|
||
|
|
|
||
|
|
//当前阶的技能配置
|
||
|
|
|
||
|
|
var nscfgs = nx.dt.objClone(game.configs.halidom_data.data_skill[next.skill_icon]);
|
||
|
|
// 技能信息
|
||
|
|
var snode = nx.gui.find(this.nodSks, "from");
|
||
|
|
var tnode = nx.gui.find(this.nodSks, "to");
|
||
|
|
nx.gui.setActive(snode, "name/max", false);
|
||
|
|
setInfo(snode, cfgs, scfgs || {});
|
||
|
|
setInfo(tnode, next, nscfgs);
|
||
|
|
var temp = nx.gui.find(self.nodNeeds, "list");
|
||
|
|
nx.gui.hideAllChildren(temp);
|
||
|
|
if (next.loss_rand[0].length > 2) {
|
||
|
|
this.matneeds = {
|
||
|
|
mat: [],
|
||
|
|
count: next.loss_rand[0][2]
|
||
|
|
};
|
||
|
|
var nodAdd = temp.children[2];
|
||
|
|
nx.gui.setActive(nodAdd, "", true);
|
||
|
|
nx.gui.setString(nodAdd, "txt", nx.text.format("matNeed", next.loss_rand[0][1], nx.text.getKey("AnyNameCamp" + next.loss_rand[0][0])));
|
||
|
|
var cmp = nx.gui.getComponent(nodAdd, "", "cmp.item.base");
|
||
|
|
if (cmp) {
|
||
|
|
cmp.setData(0);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
if (next.loss_items[0]) {
|
||
|
|
var nod = temp.children[0];
|
||
|
|
nx.gui.setActive(nod, "", true);
|
||
|
|
nx.gui.setActive(nod, "", true);
|
||
|
|
var _cmp2 = nx.gui.getComponent(nod, "", "cmp.item.base");
|
||
|
|
if (_cmp2) {
|
||
|
|
_cmp2.setData(next.loss_items[0][0]);
|
||
|
|
}
|
||
|
|
var hcnt = BM.getItemNumByBid(next.loss_items[0][0]);
|
||
|
|
nx.gui.setString(_cmp2, "count", nx.dt.shortCount(hcnt) + "/" + nx.dt.shortCount(next.loss_items[0][1]));
|
||
|
|
var eno = hcnt >= next.loss_items[0][1];
|
||
|
|
nx.gui.setColor(_cmp2, "count", eno ? cc.Color.WHITE : cc.Color.RED);
|
||
|
|
if (!eno) {
|
||
|
|
self.enough = false;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
dealShow(cfgs, award);
|
||
|
|
} else {
|
||
|
|
dealShow({});
|
||
|
|
}
|
||
|
|
}
|
||
|
|
},
|
||
|
|
// 点击确认
|
||
|
|
onTouchConfirm: function onTouchConfirm() {
|
||
|
|
if (this.from == "kernel") {
|
||
|
|
/***
|
||
|
|
* [22204]:{"id":1,"list1":[],"list2":[{"id":11},{"id":111},{"id":112}]}
|
||
|
|
*/
|
||
|
|
var lst = [];
|
||
|
|
this.matneeds.mat.forEach(function (_mat) {
|
||
|
|
if (_mat) {
|
||
|
|
lst.push({
|
||
|
|
"id": _mat.id
|
||
|
|
});
|
||
|
|
}
|
||
|
|
});
|
||
|
|
var data = {
|
||
|
|
id: this.camp,
|
||
|
|
list1: [],
|
||
|
|
list2: lst
|
||
|
|
};
|
||
|
|
nx.dt.fnInvoke(this.cb, data);
|
||
|
|
}
|
||
|
|
this.close();
|
||
|
|
},
|
||
|
|
onTouchAdd: function onTouchAdd() {
|
||
|
|
var _this = this;
|
||
|
|
var next = game.configs.halidom_data.data_step[this.camp][this.item_id + 1];
|
||
|
|
// 需要的星级限制
|
||
|
|
var needStar = next.loss_rand[0][1];
|
||
|
|
var needCount = next.loss_rand[0][2];
|
||
|
|
this.needCountShow = next.loss_rand[0][2];
|
||
|
|
var partners = HeroControl.getInstance().getModel().getDeepHeroListByCamp(this.camp);
|
||
|
|
var canUseLst = [];
|
||
|
|
var HC = HeroControl.getInstance();
|
||
|
|
partners.forEach(function (_partner) {
|
||
|
|
if (_partner.is_in_form == 0 && _partner.camp_type == _this.camp && _partner.star == needStar) {
|
||
|
|
canUseLst.push(_partner);
|
||
|
|
}
|
||
|
|
});
|
||
|
|
var nowSelect = [];
|
||
|
|
var temp = nx.gui.find(this.nodNeeds, "list");
|
||
|
|
var cmp = nx.gui.find(temp, "add").getComponent("cmp.item.base");
|
||
|
|
nowSelect = this.matneeds.mat || [];
|
||
|
|
this.CanUsePartners = nx.dt.objClone(canUseLst);
|
||
|
|
var args = {
|
||
|
|
partners: canUseLst,
|
||
|
|
count: needCount,
|
||
|
|
selects: nowSelect
|
||
|
|
};
|
||
|
|
HC.openPartnerSelector(true, args, function (_selects) {
|
||
|
|
// if( cmp ){
|
||
|
|
// cmp.setData( _selects[0] )
|
||
|
|
// }
|
||
|
|
_this.freshMatInfo(cmp, _selects || []);
|
||
|
|
HC.openPartnerSelector(false);
|
||
|
|
});
|
||
|
|
},
|
||
|
|
freshMatInfo: function freshMatInfo(_cmp, _selectsD) {
|
||
|
|
var BC = BackPackController.getInstance();
|
||
|
|
var BM = BC.getModel();
|
||
|
|
_cmp.setData(_selectsD[0]);
|
||
|
|
this.matneeds.mat = _selectsD;
|
||
|
|
var hcnt = this.CanUsePartners.length;
|
||
|
|
nx.gui.setString(_cmp, "count", nx.dt.shortCount(_selectsD.length) + "/" + nx.dt.shortCount(this.needCountShow));
|
||
|
|
var eno = hcnt >= _selectsD.length;
|
||
|
|
nx.gui.setColor(_cmp, "count", eno ? cc.Color.WHITE : cc.Color.RED);
|
||
|
|
if (!eno) {
|
||
|
|
this.enough = false;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
});
|
||
|
|
|
||
|
|
cc._RF.pop();
|