170 lines
4.8 KiB
JavaScript
170 lines
4.8 KiB
JavaScript
|
|
"use strict";
|
||
|
|
cc._RF.push(module, '28ed0OQpIREHpeXcBxTMmNc', 'cmp.item.detail.prop.skill');
|
||
|
|
// Scripts/mod/backpack/cmps/cmp.item.detail.prop.skill.js
|
||
|
|
|
||
|
|
"use strict";
|
||
|
|
|
||
|
|
var BackPackConst = require("backpack_const");
|
||
|
|
var PathTool = require("pathtool");
|
||
|
|
cc.Class({
|
||
|
|
"extends": cc.Component,
|
||
|
|
properties: {
|
||
|
|
nodList: {
|
||
|
|
"default": null,
|
||
|
|
type: cc.Node,
|
||
|
|
displayName: "列表容器"
|
||
|
|
}
|
||
|
|
},
|
||
|
|
// 载入
|
||
|
|
onLoad: function onLoad() {},
|
||
|
|
// 置空
|
||
|
|
setEmpty: function setEmpty() {
|
||
|
|
nx.gui.hideAllChildren(this.nodList, "");
|
||
|
|
},
|
||
|
|
// 设置道具
|
||
|
|
// @ 返回true:需要显示
|
||
|
|
setData: function setData(_item, _config, _fromBag) {
|
||
|
|
// 全隐藏
|
||
|
|
if (!_item || !_config) {
|
||
|
|
this.setEmpty();
|
||
|
|
return false;
|
||
|
|
}
|
||
|
|
|
||
|
|
// 获取配置
|
||
|
|
this.item = _item;
|
||
|
|
this.config = _config;
|
||
|
|
|
||
|
|
//判断是否需要展示套装属性
|
||
|
|
var skills = [];
|
||
|
|
if (this.config.sub_type == BackPackConst.item_sub_type.HOLYEQUIPMENT) {
|
||
|
|
//神裝
|
||
|
|
if (this.config.eqm_set != 0) {
|
||
|
|
this.suit_config = gdata("partner_holy_eqm_data", "data_suit_info", this.config.eqm_set);
|
||
|
|
skills = this.setSuitSkill();
|
||
|
|
} else {
|
||
|
|
return false;
|
||
|
|
}
|
||
|
|
} else if (this.config.sub_type == BackPackConst.item_sub_type.SPECIAL) {
|
||
|
|
//特殊
|
||
|
|
if (this.item.extra) {
|
||
|
|
skills = this.setArtSkill();
|
||
|
|
} else {
|
||
|
|
return false;
|
||
|
|
}
|
||
|
|
} else if (this.config.sub_type == BackPackConst.item_sub_type.ELFIN) {
|
||
|
|
//精灵
|
||
|
|
skills = this.setElfinSkill();
|
||
|
|
} else {
|
||
|
|
return false;
|
||
|
|
}
|
||
|
|
|
||
|
|
// 统计主属性信息
|
||
|
|
var props = skills;
|
||
|
|
|
||
|
|
// 空属性
|
||
|
|
if (nx.dt.arrEmpty(props)) {
|
||
|
|
this.setEmpty();
|
||
|
|
return false;
|
||
|
|
}
|
||
|
|
|
||
|
|
// 属性设置
|
||
|
|
var setProp = function setProp(_node, _prop) {
|
||
|
|
if (!_node || nx.dt.objEmpty(_prop)) {
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
nx.bridge.setIcon(_node, "ico", _prop.icon);
|
||
|
|
nx.gui.setString(_node, "txt_lay/name", _prop.name);
|
||
|
|
nx.gui.setString(_node, "txt_lay/txt/view/content/desc", _prop.des);
|
||
|
|
};
|
||
|
|
|
||
|
|
// 列表创建
|
||
|
|
var chds = this.nodList.children;
|
||
|
|
nx.gui.gocChildren(this.nodList, "", props.length, chds[0]);
|
||
|
|
for (var i = 0; i < props.length; ++i) {
|
||
|
|
setProp(chds[i], props[i]);
|
||
|
|
}
|
||
|
|
return true;
|
||
|
|
},
|
||
|
|
setElfinSkill: function setElfinSkill() {
|
||
|
|
var list = [];
|
||
|
|
var id = this.item.base_id || this.item.item_id || this.item.id;
|
||
|
|
// console.log( JSON.stringify( this.config ) + "当前的技能信息 " + JSON.stringify( this.item ) );
|
||
|
|
var cur_elfin_cfg = gdata("sprite_data", "data_elfin_data", id);
|
||
|
|
if (nx.dt.objEmpty(cur_elfin_cfg)) {
|
||
|
|
return false;
|
||
|
|
}
|
||
|
|
var config = gskilldata('data_get_skill', cur_elfin_cfg.skill);
|
||
|
|
list.push(config);
|
||
|
|
return list;
|
||
|
|
},
|
||
|
|
//设置符文技能
|
||
|
|
setArtSkill: function setArtSkill() {
|
||
|
|
var list = [];
|
||
|
|
for (var i in this.item.extra) {
|
||
|
|
var value = this.item.extra[i];
|
||
|
|
if (value && value.extra_k && (value.extra_k == 1 || value.extra_k == 2 || value.extra_k == 8)) {
|
||
|
|
var config = gskilldata("data_get_skill", [value.extra_v]);
|
||
|
|
if (config) {
|
||
|
|
list.push(config);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
return list;
|
||
|
|
},
|
||
|
|
// 设置神装技能
|
||
|
|
setSuitSkill: function setSuitSkill() {
|
||
|
|
if (this.config == null) {
|
||
|
|
return -1;
|
||
|
|
}
|
||
|
|
if (this.suit_config == null) {
|
||
|
|
return -1;
|
||
|
|
}
|
||
|
|
|
||
|
|
// 按照套装排个序
|
||
|
|
this.suit_config.sort(function (a, b) {
|
||
|
|
return a.num - b.num;
|
||
|
|
});
|
||
|
|
var name = null;
|
||
|
|
var suit_list = [];
|
||
|
|
var show_skill_id = null;
|
||
|
|
for (var index = 0; index < this.suit_config.length; index++) {
|
||
|
|
var element = this.suit_config[index];
|
||
|
|
if (name == null) {
|
||
|
|
name = element.name;
|
||
|
|
}
|
||
|
|
if (element.attr || element.skill_id) {
|
||
|
|
if (this.config.sub_type == BackPackConst.item_sub_type.HOLYEQUIPMENT) {
|
||
|
|
//神裝
|
||
|
|
var _suit = {};
|
||
|
|
var eqm_set = null;
|
||
|
|
_suit.count = element.num;
|
||
|
|
_suit.attr = element.skill_id[element.skill_id.length - 1];
|
||
|
|
eqm_set = element.id;
|
||
|
|
if (element.all_skill_desc) {
|
||
|
|
_suit.skill_desc = element.all_skill_desc[element.all_skill_desc.length - 1]; //神裝套裝描述
|
||
|
|
}
|
||
|
|
|
||
|
|
var star = eqm_set % 100;
|
||
|
|
_suit.suit_name = cc.js.formatStr("%s★ Set(%s)", star, _suit.count);
|
||
|
|
suit_list.push(_suit);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
var suit = suit_list[suit_list.length - 1];
|
||
|
|
// 设置属性
|
||
|
|
var skill_list = [];
|
||
|
|
for (var _index = 0; _index < suit_list.length; _index++) {
|
||
|
|
var _element = suit_list[_index];
|
||
|
|
if (typeof _element.attr == "number") {
|
||
|
|
if (suit.skill_desc[0] && suit.skill_desc[0] == 2) {
|
||
|
|
show_skill_id = suit.attr;
|
||
|
|
var skill_cfg = gskilldata('data_get_skill', show_skill_id);
|
||
|
|
skill_list.push(skill_cfg);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
return skill_list;
|
||
|
|
}
|
||
|
|
});
|
||
|
|
|
||
|
|
cc._RF.pop();
|