202 lines
6.6 KiB
JavaScript
202 lines
6.6 KiB
JavaScript
|
|
"use strict";
|
||
|
|
cc._RF.push(module, 'b2540U0wsJLvpNp6tbpKBq8', 'cmp.item.partner.detail.wnd');
|
||
|
|
// Scripts/mod/backpack/cmps/cmp.item.partner.detail.wnd.js
|
||
|
|
|
||
|
|
"use strict";
|
||
|
|
|
||
|
|
var BridgeWindow = require("bridge.window");
|
||
|
|
var NxSpine = require("nx.fx.spine");
|
||
|
|
var BackPackConst = require("backpack_const");
|
||
|
|
var TipsController = require("tips_controller");
|
||
|
|
var HeroConst = require("hero_const");
|
||
|
|
var HeroController = require("hero_controller");
|
||
|
|
cc.Class({
|
||
|
|
"extends": BridgeWindow,
|
||
|
|
properties: {
|
||
|
|
props: {
|
||
|
|
"default": null,
|
||
|
|
type: cc.Node
|
||
|
|
},
|
||
|
|
skills: {
|
||
|
|
"default": null,
|
||
|
|
type: cc.Node
|
||
|
|
},
|
||
|
|
role: {
|
||
|
|
"default": null,
|
||
|
|
type: cc.Node
|
||
|
|
},
|
||
|
|
smallrole: {
|
||
|
|
"default": null,
|
||
|
|
type: NxSpine
|
||
|
|
}
|
||
|
|
},
|
||
|
|
// 重载:参数打开
|
||
|
|
onOpenConfigs: function onOpenConfigs(_params) {
|
||
|
|
var key = _params.bid + "_" + _params.star;
|
||
|
|
this.propsData = gdata("partner_data", "data_partner_show", key);
|
||
|
|
// this.partner = _params;
|
||
|
|
this.partner = BackPackConst.uniformData(_params.bid);
|
||
|
|
|
||
|
|
// // 无效关闭
|
||
|
|
// this.partner = _params;
|
||
|
|
// if( nx.dt.objEmpty( this.partner ) ) {
|
||
|
|
// this.scheduleOnce( () => {
|
||
|
|
// this.close();
|
||
|
|
// }, 0.05 );
|
||
|
|
// }
|
||
|
|
this.freshProps();
|
||
|
|
this.freshRole();
|
||
|
|
this.freshSkills();
|
||
|
|
},
|
||
|
|
// 置空
|
||
|
|
setEmpty: function setEmpty() {
|
||
|
|
nx.gui.getComponent(this.role, "role", "nx.fx.spine").stop();
|
||
|
|
this.smallrole.stop();
|
||
|
|
nx.gui.setSpriteFrame(this.role, "qa", null);
|
||
|
|
nx.gui.setActive(nx.gui.find(this.role, "infos"), "", false);
|
||
|
|
},
|
||
|
|
freshRole: function freshRole() {
|
||
|
|
var _this = this;
|
||
|
|
// 置空
|
||
|
|
if (nx.dt.objEmpty(this.partner)) {
|
||
|
|
this.setEmpty();
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
// 名字
|
||
|
|
nx.gui.setString(nx.gui.find(this.role, "infos"), "name", this.partner.name);
|
||
|
|
|
||
|
|
// 品质
|
||
|
|
var path = cc.path.join("coms/images", "mk_partner_qa" + this.partner.quality);
|
||
|
|
nx.gui.setSpriteFrame(this.role, "qa", path);
|
||
|
|
|
||
|
|
// 阵营
|
||
|
|
path = cc.path.join("prefab/partner/ui/camp" + this.partner.camp_type);
|
||
|
|
nx.gui.setSpriteFrame(nx.gui.find(this.role, "infos"), "camp", path);
|
||
|
|
|
||
|
|
// 动画
|
||
|
|
var key = this.partner.bid + "_" + this.partner.init_star;
|
||
|
|
var cfg = gdata("partner_data", "data_partner_star", key);
|
||
|
|
if (cfg) {
|
||
|
|
// 立绘
|
||
|
|
path = PathTool.getSpinePath(cfg.res_id, "show", false);
|
||
|
|
nx.gui.getComponent(this.role, "role", "nx.fx.spine").load(path, function (_e) {
|
||
|
|
if (!_e) {
|
||
|
|
nx.gui.getComponent(_this.role, "role", "nx.fx.spine").action("action1", true);
|
||
|
|
} else {
|
||
|
|
nx.gui.getComponent(_this.role, "role", "nx.fx.spine").stop();
|
||
|
|
}
|
||
|
|
});
|
||
|
|
|
||
|
|
// 战斗迷你
|
||
|
|
path = PathTool.getSpinePath(cfg.res_id, cfg.res_id, false);
|
||
|
|
this.smallrole.load(path, function (_e) {
|
||
|
|
if (!_e) {
|
||
|
|
_this.smallrole.action("stand2", true);
|
||
|
|
} else {
|
||
|
|
_this.smallrole.stop();
|
||
|
|
}
|
||
|
|
});
|
||
|
|
} else {
|
||
|
|
nx.gui.getComponent(this.role, "role", "nx.fx.spine").stop();
|
||
|
|
this.smallrole.stop();
|
||
|
|
nx.error("立绘配置缺失:", key);
|
||
|
|
}
|
||
|
|
console.log(JSON.stringify(cfg));
|
||
|
|
// 等级
|
||
|
|
nx.gui.setString(nx.gui.find(this.role, "infos"), "lv", "Lv." + cfg.lev_max || 1);
|
||
|
|
|
||
|
|
// 星级
|
||
|
|
var paths = cc.path.join("coms/images", "star" + this.partner.init_star);
|
||
|
|
nx.gui.setSpriteFrame(nx.gui.find(this.role, "infos"), "stars", paths);
|
||
|
|
},
|
||
|
|
freshProps: function freshProps() {
|
||
|
|
// 等级
|
||
|
|
// let maxlv = Math.max( cbc.lev_max, scfg.lev_max );
|
||
|
|
nx.gui.setString(this.props, "lv/txt", this.propsData.lev + "/" + this.propsData.lev);
|
||
|
|
var HM = HeroController.getInstance().getModel();
|
||
|
|
var count = HM.getHeroMaxBreakCountByInitStar(this.partner.init_star);
|
||
|
|
nx.gui.gocChildren(this.props, "grade/star", count);
|
||
|
|
|
||
|
|
// 职业
|
||
|
|
var career = this.partner.type || 4;
|
||
|
|
var icon = cc.path.join("coms/images", "career" + career);
|
||
|
|
var name = HeroConst.CareerName[career] || nx.text.getKey("lab_none");
|
||
|
|
nx.gui.setActive(this.props, "career", true);
|
||
|
|
nx.gui.setString(this.props, "career/txt", nx.text.getKey(name));
|
||
|
|
nx.gui.setSpriteFrame(this.props, "career/icon", icon);
|
||
|
|
nx.gui.setActive(this.props, "help", true);
|
||
|
|
|
||
|
|
// 属性
|
||
|
|
nx.gui.setString(this.props, "atk/txt", this.propsData.atk);
|
||
|
|
nx.gui.setString(this.props, "def/txt", this.propsData.def);
|
||
|
|
nx.gui.setString(this.props, "hp/txt", this.propsData.hp);
|
||
|
|
nx.gui.setString(this.props, "speed/txt", this.propsData.speed);
|
||
|
|
},
|
||
|
|
freshSkills: function freshSkills() {
|
||
|
|
var HM = HeroController.getInstance().getModel();
|
||
|
|
var break_count = HM.getHeroMaxBreakCountByInitStar(this.partner.init_star);
|
||
|
|
// 数据统计
|
||
|
|
var key = this.partner.bid + "_" + this.partner.init_star;
|
||
|
|
var scfg = gdata("partner_data", "data_partner_star", key);
|
||
|
|
var k1 = this.partner.type + "_" + this.partner.break_id + "_" + break_count;
|
||
|
|
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;
|
||
|
|
}
|
||
|
|
|
||
|
|
// nx.gui.setActive( this.skills, "", true );
|
||
|
|
|
||
|
|
var count = cbc.skill_num;
|
||
|
|
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;
|
||
|
|
}
|
||
|
|
item.active = true;
|
||
|
|
var cmp = nx.gui.getComponent(item, "", "cmp.skill.base");
|
||
|
|
if (cmp) {
|
||
|
|
cmp.setData(sifo[1], i + 1 > count);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
},
|
||
|
|
// 点击角色
|
||
|
|
onTouchRole: function onTouchRole() {
|
||
|
|
var _this2 = this;
|
||
|
|
// 屏蔽频繁点击打断
|
||
|
|
if (nx.gui.getComponent(this.role, "role", "nx.fx.spine").spAction != "action1") {
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
|
||
|
|
// 播放 -> 常态
|
||
|
|
nx.gui.getComponent(this.role, "role", "nx.fx.spine").action("action2", false, function (_event) {
|
||
|
|
if (_event == "complete") {
|
||
|
|
nx.gui.getComponent(_this2.role, "role", "nx.fx.spine").action("action1", true);
|
||
|
|
}
|
||
|
|
});
|
||
|
|
},
|
||
|
|
// 人物介绍
|
||
|
|
onTouchStory: function onTouchStory() {
|
||
|
|
var TC = TipsController.getInstance();
|
||
|
|
var txt = nx.text.getKey("story" + this.partner.bid);
|
||
|
|
TC.showTextPanel("PartnerStory", txt);
|
||
|
|
},
|
||
|
|
// 点击详情
|
||
|
|
onTouchDetail: function onTouchDetail() {
|
||
|
|
if (nx.dt.objNEmpty(this.partner)) {
|
||
|
|
var HC = HeroController.getInstance();
|
||
|
|
HC.openHeroTipsAttrPanel(true, this.propsData, true);
|
||
|
|
}
|
||
|
|
},
|
||
|
|
// 观察
|
||
|
|
onTouchWatch: function onTouchWatch() {
|
||
|
|
HeroController.getInstance().openHeroLookDrawWindowTest(true, this.partner);
|
||
|
|
}
|
||
|
|
});
|
||
|
|
|
||
|
|
cc._RF.pop();
|