"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();