201 lines
5.2 KiB
JavaScript
201 lines
5.2 KiB
JavaScript
|
|
"use strict";
|
||
|
|
cc._RF.push(module, '912c1JZJO1CE6w8DEVZH6xq', 'cmp.partner.skill.learn.wnd');
|
||
|
|
// Scripts/mod/partner/cmps/skill/cmp.partner.skill.learn.wnd.js
|
||
|
|
|
||
|
|
"use strict";
|
||
|
|
|
||
|
|
var _HCTNames;
|
||
|
|
/******************************************************************
|
||
|
|
*
|
||
|
|
* 技能学习界面
|
||
|
|
*
|
||
|
|
******************************************************************/
|
||
|
|
|
||
|
|
var BridgeWindow = require("bridge.window");
|
||
|
|
var FxSVC = require("nx.fx.sv.expand");
|
||
|
|
var HeroConst = require("hero_const");
|
||
|
|
var HeroController = require("hero_controller");
|
||
|
|
var BackpackController = require("backpack_controller");
|
||
|
|
var HCT = HeroConst.CareerType;
|
||
|
|
|
||
|
|
// --英雄职业对应名字
|
||
|
|
var HCTNames = (_HCTNames = {}, _HCTNames[HCT.eMagician] = "order_magician", _HCTNames[HCT.eWarrior] = "order_warrior", _HCTNames[HCT.eTank] = "order_tank", _HCTNames[HCT.eSsistant] = "order_ssistant", _HCTNames);
|
||
|
|
cc.Class({
|
||
|
|
"extends": BridgeWindow,
|
||
|
|
properties: {
|
||
|
|
svcList: {
|
||
|
|
"default": null,
|
||
|
|
type: FxSVC
|
||
|
|
},
|
||
|
|
curDesc: {
|
||
|
|
"default": null,
|
||
|
|
type: cc.Node
|
||
|
|
}
|
||
|
|
},
|
||
|
|
// 重载:参数打开
|
||
|
|
onOpenConfigs: function onOpenConfigs(_params) {
|
||
|
|
this.partner = _params.hero_vo;
|
||
|
|
this.cb = _params.cb;
|
||
|
|
this.fresh();
|
||
|
|
},
|
||
|
|
// 重载:关闭前
|
||
|
|
onPreClosed: function onPreClosed() {
|
||
|
|
this.svcList.rebuild([]);
|
||
|
|
},
|
||
|
|
// 刷新
|
||
|
|
fresh: function fresh() {
|
||
|
|
var _this = this;
|
||
|
|
// 统计已有技能
|
||
|
|
var had = {};
|
||
|
|
var sks = this.partner.talent_skill_list;
|
||
|
|
for (var pos in sks) {
|
||
|
|
var id = sks[pos];
|
||
|
|
had[id] = pos;
|
||
|
|
}
|
||
|
|
var HC = HeroController.getInstance();
|
||
|
|
var HM = HC.getModel();
|
||
|
|
|
||
|
|
// 统计推荐技能
|
||
|
|
var commends = {};
|
||
|
|
var csks = game.configs.partner_skill_data.data_partner_commend_skill[this.partner.bid];
|
||
|
|
if (csks) {
|
||
|
|
for (var i in csks) {
|
||
|
|
var _id = csks[i];
|
||
|
|
commends[_id] = i + 1;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
// 筛选可学技能
|
||
|
|
this.skills = [];
|
||
|
|
var libs = game.configs.partner_skill_data.data_partner_skill_learn;
|
||
|
|
var reds = HM.getTalentRedpointRecord();
|
||
|
|
for (var _id2 in libs) {
|
||
|
|
var cfgs = libs[_id2];
|
||
|
|
var sdt = {
|
||
|
|
id: _id2,
|
||
|
|
config: cfgs,
|
||
|
|
order: cfgs.order,
|
||
|
|
career_order: 1000,
|
||
|
|
order_had: 2,
|
||
|
|
// 已拥有
|
||
|
|
order_can: 2 // 可领悟
|
||
|
|
};
|
||
|
|
|
||
|
|
// 该英雄有单独推荐的
|
||
|
|
if (commends[_id2]) {
|
||
|
|
sdt.career_order = commends[_id2];
|
||
|
|
} else {
|
||
|
|
// 特定职业排序
|
||
|
|
var key = HCTNames[this.partner.type];
|
||
|
|
if (nx.dt.strNEmpty(key)) {
|
||
|
|
sdt.career_order = cfgs[key];
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
// // 已经有了
|
||
|
|
// if( had[id] ) {
|
||
|
|
// sdt.order_had = 1;
|
||
|
|
// }
|
||
|
|
|
||
|
|
// 可领悟
|
||
|
|
if (reds[_id2]) {
|
||
|
|
sdt.order_can = 1;
|
||
|
|
}
|
||
|
|
this.skills.push(sdt);
|
||
|
|
}
|
||
|
|
|
||
|
|
// 排序
|
||
|
|
var fnc = Utils.tableLowerSorter(["order_had", "order_can", "career_order", "order"]);
|
||
|
|
this.skills.sort(fnc);
|
||
|
|
|
||
|
|
// 重置
|
||
|
|
this.svcList.rebuild(this.skills);
|
||
|
|
|
||
|
|
// 设置默认
|
||
|
|
this.scheduleOnce(function () {
|
||
|
|
_this.onFocusChanged({
|
||
|
|
mdata: _this.skills[0],
|
||
|
|
index: 0
|
||
|
|
});
|
||
|
|
}, 0.1);
|
||
|
|
},
|
||
|
|
// 选中切换
|
||
|
|
onFocusChanged: function onFocusChanged(_item) {
|
||
|
|
// 空
|
||
|
|
if (!_item || !_item.mdata) {
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
nx.audio.playSFX("audios/effects/touchitem");
|
||
|
|
// 聚焦
|
||
|
|
this.svcList.cleanFocus();
|
||
|
|
this.svcList.addFocus(_item.index);
|
||
|
|
this.setCurrent(_item.mdata);
|
||
|
|
},
|
||
|
|
// 设置当前
|
||
|
|
setCurrent: function setCurrent(_data) {
|
||
|
|
var info = gskilldata('data_get_skill', _data.id);
|
||
|
|
if (nx.dt.objEmpty(info)) {
|
||
|
|
nx.gui.setActive(this.curDesc, "", false);
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
this.sid = _data.id;
|
||
|
|
nx.gui.setActive(this.curDesc, "", true);
|
||
|
|
|
||
|
|
// 名字
|
||
|
|
nx.gui.setString(this.curDesc, "name", nx.text.getKey(info.name));
|
||
|
|
|
||
|
|
// 图标设置
|
||
|
|
nx.bridge.setIcon(this.curDesc, "icon", info.icon);
|
||
|
|
|
||
|
|
// 描述设置
|
||
|
|
var detail = nx.gui.find(this.curDesc, "detail/view/content");
|
||
|
|
if (detail) {
|
||
|
|
// 描述
|
||
|
|
var desc = nx.text.getKey(info.des || info.desc);
|
||
|
|
nx.gui.setString(detail, "desc/txt", desc);
|
||
|
|
|
||
|
|
// 冷却
|
||
|
|
var txt = nx.text.getKey("SkillCD1");
|
||
|
|
if (info.cd > 0) {
|
||
|
|
txt = nx.text.format("SkillCD2", info.cd);
|
||
|
|
}
|
||
|
|
if (info.fire_cd != 0) {
|
||
|
|
txt += nx.text.format("SkillCD3", info.fire_cd);
|
||
|
|
}
|
||
|
|
nx.gui.setString(detail, "cd/txt", txt);
|
||
|
|
}
|
||
|
|
|
||
|
|
// 学习面板
|
||
|
|
var node = nx.gui.find(this.curDesc, "learn");
|
||
|
|
if (node) {
|
||
|
|
var BC = BackpackController.getInstance();
|
||
|
|
var BM = BC.getModel();
|
||
|
|
|
||
|
|
// 耗材
|
||
|
|
var expend = _data ? _data.config.expend : [];
|
||
|
|
var temp = nx.gui.find(node, "needs");
|
||
|
|
for (var i = 0; i < temp.children.length; ++i) {
|
||
|
|
var item = temp.children[i];
|
||
|
|
var _info = expend[i];
|
||
|
|
if (!_info) {
|
||
|
|
nx.gui.setActive(item, "", false);
|
||
|
|
continue;
|
||
|
|
}
|
||
|
|
nx.gui.setActive(item, "", true);
|
||
|
|
var cmp = nx.gui.getComponent(item, "", "cmp.item.base");
|
||
|
|
if (cmp) {
|
||
|
|
cmp.setData(_info[0]);
|
||
|
|
var hcnt = BM.getItemNumByBid(_info[0]);
|
||
|
|
nx.gui.setString(cmp, "count", _info[1] + "/" + hcnt);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
},
|
||
|
|
// 点击学习
|
||
|
|
onTouchLearn: function onTouchLearn() {
|
||
|
|
nx.dt.fnInvoke(this.cb, this.sid);
|
||
|
|
this.close();
|
||
|
|
}
|
||
|
|
});
|
||
|
|
|
||
|
|
cc._RF.pop();
|