"use strict"; cc._RF.push(module, '48714hRMeNPxLb+dw8JWtRK', 'cmp.partner.upgrade.wnd'); // Scripts/mod/partner/cmps/basic/cmp.partner.upgrade.wnd.js "use strict"; /****************************************************************** * * 伙伴进阶界面 * ******************************************************************/ var BridgeWindow = require("bridge.window"); var HeroEvent = require("hero_event"); var HeroController = require("hero_controller"); var BackpackController = require("backpack_controller"); var RoleController = require("role_controller"); var FID = require("bridge.function.ids"); var TipsController = require("tips_controller"); cc.Class({ "extends": BridgeWindow, properties: { lstProps: { "default": null, type: cc.Node }, nodSkill: { "default": null, type: cc.Node }, lstNeeds: { "default": null, type: cc.Node } }, onLoad: function onLoad() { // 事件监听 this.bindGEvent(HeroEvent.Next_Break_Info_Event, this.onRecvGradeMsg.bind(this)); }, // 重载:参数打开 onOpenConfigs: function onOpenConfigs(_params) { var _this = this; this.partner = _params; // 无效 if (nx.dt.objEmpty(this.partner)) { this.scheduleOnce(function () { _this.close(); }, 0.03); return; } // 请求 HeroController.getInstance().sender11016(this.partner.partner_id); }, // 进阶消息 onRecvGradeMsg: function onRecvGradeMsg(_data) { this.fresh(_data); }, // 刷新 fresh: function fresh(_data) { var _this2 = this; // 进阶配置 var k1 = this.partner.type + "_" + this.partner.break_id + "_" + this.partner.break_lev; var k2 = this.partner.type + "_" + this.partner.break_id + "_" + (this.partner.break_lev + 1); var cbc = game.configs.partner_data.data_partner_brach[k1]; var nbc = game.configs.partner_data.data_partner_brach[k2]; if (nx.dt.objEmpty(cbc) || nx.dt.objEmpty(nbc)) { this.scheduleOnce(function () { _this2.close(); }, 0.03); return; } // 属性 // 首位为等级 var chds = this.lstProps.children; var first = chds[0]; if (first) { nx.gui.setSpriteFrame(first, "icon", null); nx.gui.setString(first, "name", nx.text.getKey("Level")); nx.gui.setString(first, "from", cbc.lev_max); nx.gui.setString(first, "to", nbc.lev_max); } // 其他属性 for (var i = 1; i < chds.length; ++i) { var node = chds[i]; var att = nbc.all_attr[i - 1]; if (!att) { node.active = false; continue; } node.active = true; var id = att[0]; var icon = cc.path.join("coms/images", "ico_" + id); nx.gui.setSpriteFrame(node, "icon", icon); var name = game.configs.attr_data.data_key_to_name[id]; nx.gui.setString(node, "name", nx.text.getKey(name)); if (id == "hp_max") { id = "hp"; } nx.gui.setString(node, "from", this.partner[id]); nx.gui.setString(node, "to", _data[id] || 0); } // 新技能 var locked = true; this.skill = null; if (nbc.skill_num > cbc.skill_num) { var key = this.partner.bid + "_" + this.partner.star; var scfg = gdata("partner_data", "data_partner_star", key); if (scfg) { var sid = null; for (var _i in scfg.skills) { if (scfg.skills[_i][0] == nbc.skill_num) { sid = scfg.skills[_i][1]; } } if (sid) { var cfgs = gskilldata('data_get_skill', sid); if (cfgs) { nx.gui.setString(this.nodSkill, "title/name", nx.text.getKey("UnlockSkill")); nx.gui.setActive(this.nodSkill, "icon", true); var _icon = nx.gui.getComponent(this.nodSkill, "icon", "cmp.skill.base"); if (_icon) { _icon.setData(cfgs); } this.skill = cfgs; locked = false; } } } } // 无新技能解锁 if (locked) { nx.gui.setString(this.nodSkill, "title/name", nx.text.getKey("NoNewSkill")); nx.gui.setActive(this.nodSkill, "icon", false); nx.gui.setString(this.nodSkill, "name", ""); } // 消耗 this.needs = []; if (nx.dt.arrEmpty(cbc.expend)) { // 无消耗 nx.gui.hideAllChildren(this.lstNeeds); } else { var model = BackpackController.getInstance().getModel(); var _chds = this.lstNeeds.children; for (var _i2 = 0; _i2 < _chds.length; ++_i2) { var _node = _chds[_i2]; var info = cbc.expend[_i2]; if (!info) { _node.active = false; continue; } _node.active = true; var cfg = Utils.getItemConfig(info[0]); nx.bridge.setIcon(_node, "icon", cfg.icon); var have = model.getItemNumByBid(info[0]); var str = cc.js.formatStr("%s/%s", nx.dt.shortCount(have), Utils.getMoneyString(info[1])); nx.gui.setString(_node, "txt", str); var clr = have >= info[1] ? cc.Color.WHITE : cc.Color.RED; nx.gui.setColor(_node, "txt", clr); // 缺少记录 if (have < info[1]) { this.needs.push(info[0]); } } } }, // 点击确认 onTouchConfirm: function onTouchConfirm() { if (nx.dt.objEmpty(this.partner)) { return; } var self = this; var lev = RoleController.getInstance().getRoleVo().lev; var TC = TipsController.getInstance(); var cfg = game.configs.source_data.data_source_data; // 缺材料 if (nx.dt.arrNEmpty(this.needs)) { var expend_item_cfg = gdata("item_data", "data_unit1", this.needs[0], false); // nx.tbox( cc.js.formatStr( nx.text.getKey( "lab_hero_break_window_tip1" ), expend_item_cfg.name ) );//Utils.TI18N("物品[" + expend_item_cfg.name + "]不足")); // BackpackController.getInstance().openTipsSource( true, this.needs[ 0 ] ); if (nx.bridge.acts) { var data = nx.bridge.acts.queryThemeByType(13); if (expend_item_cfg.id != 1) { if (data && lev >= cfg[data.source].lev_limit[1]) { nx.mbox(nx.text.format("BuyReward", expend_item_cfg.name), ['cancel', 'Buy'], function (_key, _box) { _box.close(); if (_key == "Buy") { nx.bridge.jumper.jump2Window(FID.ActMySteryGift, expend_item_cfg.id); } }); } else { if (TC) { TC.showItemTips(expend_item_cfg.id); } } } else { if (TC) { TC.showItemTips(expend_item_cfg.id); } } } else { if (TC) { TC.showItemTips(expend_item_cfg.id); } } this.close(); return; } // 进阶 HeroController.getInstance().sender11004(this.partner.id); this.close(); } }); cc._RF.pop();