395 lines
13 KiB
JavaScript
395 lines
13 KiB
JavaScript
"use strict";
|
|
cc._RF.push(module, '4f265SvHClLAZOM1FGeulcz', 'tips.partner.common');
|
|
// Scripts/mod/tips/cmp/tips.partner.common.js
|
|
|
|
"use strict";
|
|
|
|
/******************************************************************
|
|
*
|
|
* 通用伙伴提示
|
|
*
|
|
******************************************************************/
|
|
|
|
var BridgeWindow = require("bridge.window");
|
|
var SkillBase = require("cmp.skill.base");
|
|
var HeroController = require("hero_controller");
|
|
var ItemBase = require("cmp.item.base");
|
|
var EqmCount = 6;
|
|
var HolyEqmCount = 4;
|
|
cc.Class({
|
|
"extends": BridgeWindow,
|
|
properties: {
|
|
partnerHead: {
|
|
"default": null,
|
|
type: cc.Node
|
|
},
|
|
partnerName: {
|
|
"default": null,
|
|
type: cc.Node
|
|
},
|
|
partnerPower: {
|
|
"default": null,
|
|
type: cc.Node
|
|
},
|
|
partnerCareer: {
|
|
"default": null,
|
|
type: cc.Node
|
|
},
|
|
partnerSpecial: {
|
|
"default": null,
|
|
type: cc.Node
|
|
},
|
|
partnerStar: {
|
|
"default": null,
|
|
type: cc.Node
|
|
},
|
|
baseProps: {
|
|
"default": null,
|
|
type: cc.Node
|
|
},
|
|
skills: {
|
|
"default": null,
|
|
type: cc.Node
|
|
},
|
|
talent: {
|
|
"default": null,
|
|
type: cc.Node
|
|
},
|
|
eqmLst: {
|
|
"default": null,
|
|
type: cc.Node
|
|
},
|
|
holyLst: {
|
|
"default": null,
|
|
type: cc.Node
|
|
},
|
|
weapon: {
|
|
"default": null,
|
|
type: cc.Node
|
|
},
|
|
desc: {
|
|
"default": null,
|
|
type: cc.Node
|
|
}
|
|
},
|
|
// 重载:参数打开
|
|
onOpenConfigs: function onOpenConfigs(_params) {
|
|
// 设置头像
|
|
nx.gui.gocChildren(this.eqmLst, "", EqmCount);
|
|
for (var i = 0; i < this.eqmLst.children.length; i++) {
|
|
var item = this.eqmLst.children[i];
|
|
var empty = nx.gui.find(item, "empty");
|
|
nx.gui.setActive(item, "skill", false);
|
|
if (i == 4) {
|
|
empty.scale = 0.8;
|
|
item.scale = 0.8;
|
|
}
|
|
if (i == 5) {
|
|
nx.gui.setSpriteFrame(empty, "icon", "coms/images/equip" + i);
|
|
empty.scale = 0.8;
|
|
item.scale = 0.8;
|
|
continue;
|
|
}
|
|
nx.gui.setSpriteFrame(empty, "icon", "coms/images/equip" + (i + 1));
|
|
}
|
|
nx.gui.gocChildren(this.holyLst, "", HolyEqmCount);
|
|
for (var j = 0; j < this.holyLst.children.length; j++) {
|
|
var _item = this.holyLst.children[j];
|
|
var _empty = nx.gui.find(_item, "empty");
|
|
nx.gui.setSpriteFrame(_empty, "icon", "coms/images/holy" + (j + 1));
|
|
}
|
|
this.setData(_params);
|
|
},
|
|
setData: function setData(_data) {
|
|
this.partner = _data;
|
|
// 置空
|
|
if (nx.dt.objEmpty(this.partner)) {
|
|
// this.setEmpty();
|
|
return;
|
|
}
|
|
var change = false;
|
|
// 数据统计
|
|
|
|
var weapon = {};
|
|
var list = this.partner.eqms;
|
|
for (var i in list) {
|
|
var eqm = list[i];
|
|
if (eqm.type == 41) {
|
|
weapon = eqm;
|
|
}
|
|
}
|
|
var wcfg = nx.dt.objNEmpty(weapon) ? game.configs.weapon_data.data_get_skill[weapon.base_id] : {};
|
|
if (nx.dt.objNEmpty(wcfg)) {
|
|
change = this.partner.bid == wcfg.partner_id;
|
|
}
|
|
var data = this.partner.bid || 0;
|
|
var cmp = this.partnerHead.getComponent("cmp.item.base");
|
|
if (cmp) {
|
|
cmp.setData(this.partner.bid);
|
|
}
|
|
nx.gui.setSpriteFrame(this.partnerHead, "star", "coms/images/star" + this.partner.star);
|
|
var config = game.configs.partner_data.data_partner_base[this.partner.bid];
|
|
if (!config) {
|
|
return;
|
|
}
|
|
nx.gui.setString(this.partnerSpecial, "txt", config.introduce_str);
|
|
var career = "";
|
|
switch (config.type) {
|
|
case 2:
|
|
{
|
|
career = nx.text.getKey("Energy");
|
|
}
|
|
;
|
|
break;
|
|
case 3:
|
|
{
|
|
career = nx.text.getKey("Aggressive");
|
|
}
|
|
;
|
|
break;
|
|
case 4:
|
|
{
|
|
career = nx.text.getKey("Tough");
|
|
}
|
|
;
|
|
break;
|
|
case 5:
|
|
{
|
|
career = nx.text.getKey("Support");
|
|
}
|
|
;
|
|
break;
|
|
}
|
|
nx.gui.setString(this.partnerCareer, "txt", career);
|
|
nx.gui.setString(this.partnerName, "", config.name);
|
|
// setProp
|
|
if (this.partnerPower) {
|
|
nx.gui.setString(this.partnerPower, "", this.partner.power);
|
|
nx.gui.setActive(this.partnerPower.parent.parent, "", this.partner.power);
|
|
}
|
|
|
|
// 属性设置
|
|
nx.gui.setString(this.baseProps, "attack/txt", this.partner.atk);
|
|
nx.gui.setString(this.baseProps, "hp/txt", this.partner.hp);
|
|
nx.gui.setString(this.baseProps, "speed/txt", this.partner.speed);
|
|
nx.gui.setString(this.baseProps, "def/txt", this.partner.def);
|
|
// 设置图标
|
|
nx.gui.setSpriteFrame(this.baseProps, "attack/ico", "coms/images/ico_watk");
|
|
nx.gui.setSpriteFrame(this.baseProps, "hp/ico", "coms/images/ico_whp");
|
|
nx.gui.setSpriteFrame(this.baseProps, "speed/ico", "coms/images/ico_wspeed");
|
|
nx.gui.setSpriteFrame(this.baseProps, "def/ico", "coms/images/ico_wdef");
|
|
// nx.gui.setString( this.partnerPower, "", this.partner.power );
|
|
|
|
// 技能数据
|
|
var key = this.partner.bid + "_" + this.partner.star;
|
|
var scfg = gdata("partner_data", "data_partner_star", key);
|
|
// console.log( "数据表" + JSON.stringify(scfg) );
|
|
var k1 = config.type + "_" + config.break_id + "_" + this.partner.break_lev;
|
|
var cbc = game.configs.partner_data.data_partner_brach[k1];
|
|
if (nx.dt.objEmpty(scfg) || nx.dt.objEmpty(cbc)) {
|
|
nx.error("技能刷新失败,当前配置无效!", k1);
|
|
this.setEmpty();
|
|
return;
|
|
}
|
|
// console.log( "数据表2" + JSON.stringify( cbc ) );
|
|
nx.gui.gocChildren(this.skills, "", scfg.skills.length - 1);
|
|
nx.gui.setActive(this.skills, "", true);
|
|
var chds = this.skills.children;
|
|
for (var _i = 0; _i < chds.length; ++_i) {
|
|
// 技能数组[0]为普攻,直接忽略,最多4个技能
|
|
var item = chds[_i];
|
|
var sifo = scfg.skills[_i + 1];
|
|
if (!sifo) {
|
|
item.active = false;
|
|
continue;
|
|
} else {
|
|
item.active = true;
|
|
var _cmp = nx.gui.getComponent(item, "", SkillBase);
|
|
if (_cmp) {
|
|
_cmp.setData(change && _i == chds.length - 2 ? wcfg.skill_id : sifo[1]);
|
|
}
|
|
}
|
|
}
|
|
this.setStar(this.partner);
|
|
this.setTalent(this.partner);
|
|
this.setEqms(this.partner);
|
|
// let descStr = game.configs.partner_data.data_partner_base[_data.bid].introduce_str;
|
|
var txt = nx.text.getKey("story" + this.partner.bid);
|
|
nx.gui.setString(this.desc, "", txt);
|
|
|
|
// console.log( "伙伴信息" + JSON.stringify( game.configs.partner_data.data_partner_base[_data.bid] ) );
|
|
},
|
|
|
|
// 设置星级效果
|
|
setStar: function setStar(_data) {
|
|
var star = _data.star;
|
|
var HC = HeroController.getInstance();
|
|
var HM = HC.getModel();
|
|
var max_count = HM.getHeroMaxBreakCountByInitStar(star);
|
|
// console.log( "最大数量" + max_count + "突破等级" + _data.break_lev );
|
|
var break_count = _data.break_lev;
|
|
nx.gui.gocChildren(this.partnerStar, "", max_count);
|
|
for (var i = 0; i < nx.gui.find(this.partnerStar).childrenCount; i++) {
|
|
var item = nx.gui.find(this.partnerStar, "").children[i];
|
|
if (break_count != 0) {
|
|
if (i < break_count) {
|
|
nx.gui.setSpriteFrame(item, "icon", "prefab/partner/ui/partner_22");
|
|
} else {
|
|
nx.gui.setSpriteFrame(item, "icon", "prefab/partner/ui/partner_23");
|
|
}
|
|
} else {
|
|
nx.gui.setSpriteFrame(item, "icon", "prefab/partner/ui/partner_23");
|
|
}
|
|
}
|
|
},
|
|
// downskill
|
|
setTalent: function setTalent(talent) {
|
|
if (!talent.dower_skill) {
|
|
nx.gui.setActive(this.talent, "", false);
|
|
return;
|
|
}
|
|
var talent_skill = talent.dower_skill;
|
|
/****
|
|
* <<<[10:55:35][11061]:{"partner_id":300,"bid":10511,"lev":90,"star":13,
|
|
* "skills":[{"pos":1,"skill_bid":518001},{"pos":2,"skill_bid":518103},{"pos":3,"skill_bid":518203},{"pos":4,"skill_bid":518303},{"pos":5,"skill_bid":518403}],"break_lev":5,"power":195884,"is_lock":[],"use_skin":0,"end_time":0,"resonate_lev":0,"resonate_break_lev":0,"atk":28084,"def_p":0,"def_s":0,"hp":328830,"speed":720,"hit_rate":1000,"dodge_rate":0,"crit_rate":0,"crit_ratio":1500,"hit_magic":0,"dodge_magic":0,"dam":0,"res":0,"cure":150,"be_cure":50,"tenacity":0,"def":819,"dam_p":0,"dam_s":0,"res_p":0,"res_s":0,"atk2":160916,"hp2":1774076,"def2":7704,"speed2":5260,
|
|
* "eqms":[{"id":74,"base_id":40216,"type":3},{"id":50,"base_id":40316,"type":4},{"id":16,"base_id":40116,"type":1},{"id":75,"base_id":40416,"type":2}],
|
|
* "artifacts":[],
|
|
* "dower_skill":[{"pos":1,"skill_id":700081},{"pos":2,"skill_id":700291}],
|
|
* "ext_data":[{"id":6,"val":0},{"id":5,"val":0},{"id":4,"val":1},{"id":3,"val":0},{"id":2,"val":0},{"id":1,"val":0}],
|
|
* "holy_eqm":[],"r_rid":274,"r_srvid":"fx_1"}
|
|
*/
|
|
// 技能数据
|
|
nx.gui.gocChildren(this.talent, "lst", talent_skill.length);
|
|
nx.gui.setActive(this.talent, "lst", nx.dt.arrNEmpty(talent_skill));
|
|
nx.gui.setActive(this.talent, "empty", nx.dt.arrEmpty(talent_skill));
|
|
var chds = nx.gui.find(this.talent, "lst").children;
|
|
for (var i = 0; i < chds.length; ++i) {
|
|
// 技能数组[0]为普攻,直接忽略,最多4个技能
|
|
var item = chds[i];
|
|
var sifo = talent_skill[i];
|
|
var cmp = nx.gui.getComponent(item, "", SkillBase);
|
|
if (!sifo) {
|
|
item.active = false;
|
|
continue;
|
|
} else {
|
|
if (cmp) {
|
|
cmp.setData(sifo.skill_id);
|
|
}
|
|
item.active = true;
|
|
}
|
|
}
|
|
nx.gui.setActive(this.talent, "", true);
|
|
},
|
|
// 设置装备信息
|
|
setEqms: function setEqms(eqms) {
|
|
if (!eqms.eqms) {
|
|
nx.gui.setActive(this.eqmLst.parent, "", false);
|
|
nx.gui.setActive(this.holyLst.parent, "", false);
|
|
return;
|
|
}
|
|
var _eqms = eqms.eqms;
|
|
var sp_eqms = eqms.artifacts;
|
|
var holy_eqms = eqms.holy_eqm || eqms.holy_eqm_list;
|
|
var HC = HeroController.getInstance();
|
|
|
|
// 伙伴装备信息
|
|
var chds = this.eqmLst.children;
|
|
// 必要数据
|
|
var info = {
|
|
count: 1 // 数量
|
|
};
|
|
|
|
var special = {};
|
|
_eqms.sort(Utils.tableLowerSorter(["type"]));
|
|
var _loop = function _loop() {
|
|
// 技能数组[0]为普攻,直接忽略,最多4个技能
|
|
var item = chds[i];
|
|
var sifo = _eqms[i];
|
|
if (sifo) {
|
|
if (sifo.type != 41) {
|
|
info.item_id = sifo.base_id;
|
|
var _cmp4 = item.getComponentInChildren(ItemBase);
|
|
if (_cmp4) {
|
|
_cmp4.setData(sifo.base_id, info.count);
|
|
nx.gui.find(item, "touch").info = {
|
|
cb: function cb() {
|
|
_cmp4.onTouchTip();
|
|
}
|
|
};
|
|
nx.gui.setActive(item, "empty", false);
|
|
}
|
|
} else {
|
|
special = sifo;
|
|
}
|
|
}
|
|
};
|
|
for (var i = 0; i < chds.length; ++i) {
|
|
_loop();
|
|
}
|
|
if (nx.dt.objNEmpty(special)) {
|
|
var nod = nx.gui.find(this.weapon, "lst");
|
|
var spnod = nod.children[0];
|
|
var cmp = nx.gui.getComponent(spnod, "", "cmp.item.base");
|
|
if (cmp) {
|
|
cmp.setData(special.base_id, 1);
|
|
}
|
|
var cfg = gitemdata(special.base_id);
|
|
var desc = nx.gui.find(this.weapon, "lst/desc");
|
|
var dnod = nx.gui.find(desc, "view/content/txt");
|
|
nx.gui.setString(dnod, "", cfg.desc);
|
|
}
|
|
if (sp_eqms.length > 0) {
|
|
var _loop2 = function _loop2() {
|
|
// 技能数组[0]为普攻,直接忽略,最多4个技能
|
|
var item = chds[_i2 + 4];
|
|
var sifo = sp_eqms[_i2];
|
|
if (sifo) {
|
|
var _cmp2 = item.getComponentInChildren(ItemBase);
|
|
if (_cmp2) {
|
|
// console.log( "设置数据" + info );
|
|
_cmp2.setData(sifo.base_id, info.count);
|
|
nx.gui.setActive(item, "empty", false);
|
|
nx.gui.find(item, "touch").info = {
|
|
cb: function cb() {
|
|
sifo.noop = "nono";
|
|
sifo.data = sifo;
|
|
HC.openEquipChangePanel(true, sifo);
|
|
}
|
|
};
|
|
}
|
|
}
|
|
};
|
|
for (var _i2 = 0; _i2 < sp_eqms.length; ++_i2) {
|
|
_loop2();
|
|
}
|
|
}
|
|
if (holy_eqms.length > 0) {
|
|
for (var _i3 = 0; _i3 < holy_eqms.length; ++_i3) {
|
|
// 技能数组[0]为普攻,直接忽略,最多4个技能
|
|
var item = this.holyLst.children[_i3];
|
|
var sifo = holy_eqms[_i3];
|
|
if (sifo) {
|
|
var _cmp3 = item.getComponentInChildren(ItemBase);
|
|
if (_cmp3) {
|
|
// console.log( "设置数据" + info );
|
|
_cmp3.setData(sifo.base_id, info.count);
|
|
nx.gui.setActive(nx.gui.find(item, "empty"), "");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
nx.gui.setActive(this.weapon, "", nx.dt.objNEmpty(special));
|
|
nx.gui.setActive(this.eqmLst.parent, "", true);
|
|
nx.gui.setActive(this.holyLst.parent, "", true);
|
|
},
|
|
detailInfo: function detailInfo() {
|
|
var HC = HeroController.getInstance();
|
|
HC.openHeroTipsAttrPanel(true, this.partner);
|
|
},
|
|
onTouchItem: function onTouchItem(_nod) {
|
|
var cb = _nod.info.cb;
|
|
nx.dt.fnInvoke(cb, true);
|
|
}
|
|
});
|
|
|
|
cc._RF.pop(); |