"use strict";
cc._RF.push(module, 'd6303W2SO1MuolS6Yx1jcqN', 'artifact_list_item');
// Scripts/mod/hero/artifact/artifact_list_item.js
"use strict";
// --------------------------------------------------------------------
// @author: xxx@syg.com(必填, 创建模块的人员)
// @description:
// 这里是描述这个窗体的作用的
//
Create: 2019-04-15 14:21:23
// --------------------------------------------------------------------
var PathTool = require("pathtool");
var HeroController = require("hero_controller");
var PartnerCalculate = require("partner_calculate");
var Artifact_listItem = cc.Class({
"extends": BasePanel,
ctor: function ctor() {
this.prefabPath = PathTool.getPrefabPath("hero", "artifact_list_item");
this.index = arguments[0];
if (this.index == null) {
this.index = 1;
}
},
// 可以初始化声明一些变量的
initConfig: function initConfig() {
this.skill_list = {};
this.attr_list = {};
this.config_list = {};
this.ctrl = HeroController.getInstance();
},
// 初始化一些配置数据,可以用于声明一些变量之类的
initPanel: function initPanel() {
this.bg = this.seekChild("bg");
this.artifact_item = ItemsPool.getInstance().getItem("backpack_item");
this.artifact_item.initConfig(false, 0.8, false, false);
this.artifact_item.show();
this.artifact_item.setPosition(-220, 0);
this.artifact_item.setParent(this.root_wnd);
this.equip_btn = this.seekChild("equip_btn");
this.equip_sp = this.seekChild("equip_btn", cc.Sprite);
},
// 注册事件监听的接口,不需要手动调用,如果是使用gcore.GlobalEvent监听,可以直接调用addGlobalEvent
registerEvent: function registerEvent() {
Utils.onTouchEnd(this.equip_btn, function () {
if (this.call_fun) {
this.call_fun(this.vo);
}
}.bind(this), 1);
},
setData: function setData(data) {
this.data = data;
if (this.root_wnd) this.onShow();
},
// 预制体加载完成之后,添加到对应主节点之后的回调可以设置一些数据了
onShow: function onShow(params) {
var _this = this;
if (this.data == null) return;
this.vo = this.data;
var data = this.data;
this.artifact_item.setData({
bid: data.config.id,
num: 0
});
if (!data.config) return; //伙伴那边触发后者是背包触发
if (this.partner_id != null && this.partner_id != 0) {
this.loadRes(PathTool.getCommonIcomPath("txt_cn_common_90011"), function (sp) {
this.equip_sp.spriteFrame = sp;
}.bind(this));
} else {
this.loadRes(PathTool.getCommonIcomPath("txt_cn_common_90015"), function (sp) {
this.equip_sp.spriteFrame = sp;
}.bind(this));
} //属性
for (var i in this.attr_list) {
if (this.attr_list[i]) {
this.attr_list[i].string = "";
}
}
var attr_list = data.attr;
var attr_num = 2;
var artifact_config = Config.partner_artifact_data.data_artifact_data[data.config.id];
var attr_num = 2;
if (artifact_config) {
attr_num = artifact_config.attr_num;
}
for (var i in attr_list) {
var v = attr_list[i];
if (i > attr_num) break;
var attr_id = v.attr_id;
var attr_key = Config.attr_data.data_id_to_key[attr_id];
var attr_val = v.attr_val / 1000;
var attr_name = Config.attr_data.data_key_to_name[attr_key];
if (attr_name) {
var icon;
var is_per;
var attr_str;
(function () {
if (!_this.attr_list[i]) {
_this.attr_list[i] = Utils.createRichLabel(22, new cc.Color(0xc1, 0xb7, 0xab, 0xff), cc.v2(0, 0.5), cc.v2(20, 28), 24, 400, _this.bg);
_this.attr_list[i].horizontalAlign = cc.macro.TextAlignment.LEFT;
}
var label = _this.attr_list[i];
label.node.setPosition(cc.v2(-145 + i * 170, 23));
icon = PathTool.getAttrIconByStr(attr_key);
is_per = PartnerCalculate.isShowPerByStr(attr_key);
if (is_per == true) {
attr_val = attr_val / 10 + "%";
}
attr_str = cc.js.formatStr("
%s:%s", icon, attr_name, attr_val);
label.string = attr_str;
_this.loadRes(PathTool.getUIIconPath("common", icon), function (resObject) {
label.addSpriteFrame(resObject);
}.bind(_this));
})();
}
} //技能
for (var k in this.skill_list) {
if (this.skill_list[k]) {
this.skill_list[k].string = "";
}
}
var skill_list = data.extra || {};
for (var i in skill_list) {
var v = skill_list[i];
if (v && v.extra_k && (v.extra_k == 1 || v.extra_k == 2 || v.extra_k == 8)) {
var skill_id = v.extra_v || 0;
var config = gdata("skill_data", "data_get_skill", [skill_id]);
this.config_list[i] = config;
if (!this.skill_list[i]) {
this.skill_list[i] = Utils.createRichLabel(22, new cc.Color(0x76, 0x45, 0x19, 0xff), cc.v2(0, 0), cc.v2(110, 35), 24, 136, this.bg);
this.skill_list[i].horizontalAlign = cc.macro.TextAlignment.LEFT;
this.touchFunc(this.skill_list[i].node, i);
}
var str = "";
if (config) {
str = cc.js.formatStr("【%s】", config.name);
}
var label = this.skill_list[i];
label.node.setPosition(cc.v2(-155 + i * 120, -32));
label.string = str;
}
}
},
touchFunc: function touchFunc(node, index) {
node.on(cc.Node.EventType.TOUCH_END, function () {
if (this.config_list && this.config_list[index]) require("tips_controller").getInstance().showSkillTips(this.config_list[index]);
}, this);
},
addCallBack: function addCallBack(valu) {
this.call_fun = valu;
},
setExtendData: function setExtendData(partner_id) {
this.partner_id = partner_id;
},
isHaveData: function isHaveData() {
if (this.vo) {
return true;
}
return false;
},
// 面板设置不可见的回调,这里做一些不可见的屏蔽处理
onHide: function onHide() {},
// 当面板从主节点释放掉的调用接口,需要手动调用,而且也一定要调用
onDelete: function onDelete() {
if (this.artifact_item) {
this.artifact_item.deleteMe();
this.artifact_item = null;
}
}
});
cc._RF.pop();