"use strict"; cc._RF.push(module, '50830fN6qZKar60BXeKKSKE', 'cmp.library.partner.wnd'); // Scripts/mod/home/library/cmps/cmp.library.partner.wnd.js "use strict"; /****************************************************************** * * 图鉴详情 * ******************************************************************/ var NxSpine = require("nx.fx.spine"); var BridgeWindow = require("bridge.window"); var ModLibrary = require("library.mod"); var HeroController = require("hero_controller"); var HeroConst = require("hero_const"); var TipsController = require("tips_controller"); cc.Class({ "extends": BridgeWindow, properties: { spRole: { "default": null, type: NxSpine }, spMini: { "default": null, type: NxSpine }, nodQA: { "default": null, type: cc.Node }, nodDoc: { "default": null, type: cc.Node }, nodSkills: { "default": null, type: cc.Node }, nodReward: { "default": null, type: cc.Node }, nodEmpty: { "default": null, type: cc.Node } }, // 重载:参数打开 onOpenConfigs: function onOpenConfigs(_params) { this.bid = _params ? _params.bid : 0; this.auto = _params ? _params.auto : false; // 无效 if (!nx.dt.numPositive(this.bid, false)) { this.delayClose(); return; } // 伙伴查询 this.library = ModLibrary.getInstance(); this.config = this.library.queryPartner(this.bid); if (!this.config) { this.delayClose(); return; } // 更新 this.updateBase(); this.updateModels(); this.updateSkills(); this.updateDocument(); this.updateReward(); }, // 基础更新 updateBase: function updateBase() { var data = game.configs.partner_data.data_partner_base[this.config.id]; if (!data) { return; } console.log("当前的数据相关" + JSON.stringify(this.config)); // 品質 var path = cc.path.join("coms/images", "mk_partner_qa" + this.config.quality); var spshow = this.config.quality == 5 || this.config.quality == 6; nx.gui.setSpriteFrame(this.nodQA, "qa", spshow ? null : path); var spppath = ""; if (this.config.quality == 5) { spppath = "resDB/effects/E81054/action"; } else if (this.config.quality == 6) { spppath = "resDB/effects/E81058/action"; } var sp = nx.gui.getComponent(this.nodQA, "qa/spine", "nx.fx.spine"); if (sp && nx.dt.strNEmpty(spppath)) { sp.load(spppath, function (_e) { if (!_e) { sp.action("action", true); } else { sp.stop(); } }); } nx.gui.setActive(this.nodQA, "qa/spine", spshow); // 阵营 path = cc.path.join("prefab/partner/ui/camp" + data.camp_type); nx.gui.setSpriteFrame(this.nodQA, "camp", path); // 描述 var desc = data.introduce_str || data.hero_pos || ""; nx.gui.setString(this.nodQA, "desc/txt", desc); // 职业 var career = data.type || 4; var icon = cc.path.join("coms/images", "career" + career); var name = nx.text.getKey(HeroConst.CareerName[career]) || nx.text.getKey("lab_none"); nx.gui.setSpriteFrame(this.nodQA, "career/ico", icon); nx.gui.setString(this.nodQA, "career/txt", nx.text.getKey(name)); // 星级 var snode = nx.gui.find(this.nodQA, "stars"); for (var i = 0; i < snode.children.length; ++i) { var mk = i < data.init_star; nx.gui.setColor(snode.children[i], "", mk ? cc.Color.WHITE : cc.Color.GRAY); } }, // 模型更新 updateModels: function updateModels() { var _this = this; // 未知隐藏 var hide = false; if (this.auto && this.config.statu == 0) { hide = true; } this.spMini.stop(); this.spRole.stop(); nx.gui.setActive(this.nodEmpty, "", hide); nx.gui.setActive(this.spMini, "", !hide); nx.gui.setActive(this.spRole, "", !hide); // 隐藏 if (hide) { return; } // 迷你 var path = PathTool.getSpinePath(this.config.resid, this.config.resid, false); this.spMini.load(path, function (_e) { if (!_e) { _this.spMini.action("stand2", true); } }); // 大模型 path = PathTool.getSpinePath(this.config.resid, "show", false); this.spRole.load(path, function (_e) { if (!_e) { _this.spRole.action("action1", true); } }); }, // 技能更新 updateSkills: function updateSkills() { var skills = this.config.skills; var chds = this.nodSkills.children; for (var i = 0; i < chds.length; ++i) { var sid = skills[i]; var node = chds[i]; node.active = nx.dt.numPositive(sid, false); if (!node.active) { continue; } var cmp = node.getComponent("cmp.skill.base"); if (cmp) { cmp.setData(sid); } } }, // 档案更新 updateDocument: function updateDocument() { var key = "story" + this.config.id; var text = nx.text.getKey(key); var arr = text.split("#"); nx.gui.setString(this.nodDoc, "name/txt", arr[0]); nx.gui.setString(this.nodDoc, "camp/txt", arr[1]); var detail = nx.gui.find(this.nodDoc, "detail/view/content"); nx.gui.setString(detail, "survey/desc", arr[2]); nx.gui.setString(detail, "experience/desc", arr[3]); // 推荐阵容 this.updateTeams(); var layout = nx.gui.getComponent(detail, "", cc.Layout); if (layout) { layout.updateLayout(); } var scv = nx.gui.getComponent(this.nodDoc, "detail", cc.ScrollView); if (scv) { scv.scrollToTop(0); } }, // 推荐阵容 updateTeams: function updateTeams() { // 阵容检索 var list = this.library.queryRecommondForms(this.bid); if (nx.dt.arrNEmpty(list)) { list.sort(function (_a, _b) { return _b.pr - _a.pr; }); } // 阵容设置 var hero = HeroController.getInstance().getModel(); var node = nx.gui.find(this.nodDoc, "detail/view/content/forms/list"); var team = function team(_form, _desc, _info) { // 空展示 if (nx.dt.objEmpty(_info)) { nx.gui.setString(node, _desc, ""); nx.gui.setActive(node, _form + "/list", false); nx.gui.setActive(node, _form + "/empty", true); return; } // 阵容刷新 nx.gui.setActive(node, _form + "/empty", false); nx.gui.setActive(node, _form + "/list", true); nx.gui.setString(node, _desc, _info.desc); var list = nx.gui.find(node, _form + "/list"); for (var i = 0; i < list.children.length; ++i) { var item = list.children[i]; var bid = _info.camp[i]; var have = hero.getHadHeroStarBybid(bid); var cmp = item.getComponent("cmp.item.base"); if (cmp) { cmp.setData(bid); !have ? cmp.onFocus() : cmp.outFocus(); } } }; team("form1", "desc1", list[0]); team("form2", "desc2", list[1]); }, // 点击阵容成员 onTouchMember: function onTouchMember(_btn) { var nod = _btn.parent.getComponent("cmp.item.base"); if (!nod) { return; } var key = nod.info.bid + "_" + nod.info.stars; this.propsData = gdata("partner_data", "data_partner_show", key); this.propsData.star = nod.info.stars; this.propsData.break_lev = 0; TipsController.getInstance().showPartnerTips(this.propsData); // console.log(JSON.stringify( nod.info ) + "数据" + JSON.stringify( nod.mdata ) ); }, // 奖励更新 updateReward: function updateReward() { if (nx.dt.objEmpty(this.config) || this.config.statu != 1) { nx.gui.setActive(this.nodReward, "", false); return; } nx.gui.setActive(this.nodReward, "", true); var reward = this.config.reward[0]; nx.bridge.setIcon(this.nodReward, "num/icon", reward[0]); nx.gui.setString(this.nodReward, "num/txt", reward[1] > 1 ? reward[1] : ""); }, // 領取獎勵 onTouchReward: function onTouchReward() { var _this2 = this; this.library.reqPartnerReward(this.bid, function (_ret, _data) { if (!_ret) { nx.tbox(_data); return; } nx.gui.setActive(_this2.nodReward, "", false); }); } }); cc._RF.pop();