"use strict"; cc._RF.push(module, '84090soTw5KGZmlRppoNWre', 'cmp.sync.center.wnd'); // Scripts/mod/home/sync_center/cmp.sync.center.wnd.js "use strict"; /****************************************************************** * * 同步中心界面 * ******************************************************************/ var BridgeWindow = require("bridge.window"); var FxSVC = require("nx.fx.sv.expand"); var HeroEvent = require("hero_event"); var HeroController = require("hero_controller"); var HomeMod = require("home.mod"); var TipsController = require("tips_controller"); cc.Class({ "extends": BridgeWindow, properties: { nodTars: { "default": null, type: cc.Node }, nodVolume: { "default": null, type: cc.Node }, nodLevel: { "default": null, type: cc.Node }, svcList: { "default": null, type: FxSVC } }, // 显示 onEnable: function onEnable() { // 事件监听 this.bindGEvent(HeroEvent.Hero_Resonate_Crystal_Info_Event, this.onFreshData.bind(this)); // 置空 this.setEmpty(); // 数据更新 HeroController.getInstance().sender26425(); }, // 关闭 onDisable: function onDisable() {}, // 置空 setEmpty: function setEmpty() { // 文本置空 nx.gui.setString(this.nodLevel, "txt", "Lv.--"); nx.gui.setString(this.nodVolume, "txt", "0/0"); // 伙伴置空 this.svcList.rebuild([]); // 目标置空 this.nodTars.children.forEach(function (_tar) { nx.gui.setActive(_tar, "normal", false); nx.gui.setActive(_tar, "empty", true); }); this.data = null; this.tarTag = ""; }, // 全刷新 onFreshData: function onFreshData(_data) { if (nx.dt.objEmpty(_data)) { this.setEmpty(); return; } this.data = _data; var DATA = game.configs.resonate_data; // 同步等级 var txt = nx.text.format("LvNumber", _data.lev); nx.gui.setString(this.nodLevel, "txt", txt); // 容量 var count = _data.res_list.length; var max = DATA.data_const.cell_max.val; txt = count + "/" + max; nx.gui.setString(this.nodVolume, "txt", txt); // 目标列表刷新 // **目前是全刷新,做一次重复过滤 var tag = JSON.stringify(_data.con_list); if (tag != this.tarTag) { this.tarTag = tag; var chds = this.nodTars.children; for (var i = 0; i < chds.length; ++i) { this.freshTarget(chds[i], _data.con_list[i]); } } // 伙伴槽刷新 this.slots = []; for (var _i = 0; _i < max; ++_i) { var tm = _data.res_list[_i]; var ifo = tm ? nx.dt.objClone(tm) : { pos: -1, id: 0, cool_time: 0, canUnlock: _i == count }; this.slots.push(ifo); } this.svcList.rebuild(this.slots); }, // 同步标的单刷 freshTarget: function freshTarget(_node, _data) { // 置空 if (nx.dt.objEmpty(_data) || !nx.dt.numPositive(_data.id, false)) { nx.gui.setActive(_node, "normal", false); nx.gui.setActive(_node, "empty", true); return; } // 更新 var HC = HeroController.getInstance(); var partner = HC.getModel().getHeroById(_data.id); if (!partner) { nx.error("同步目标无效:", _data.id); nx.gui.setActive(_node, "normal", false); nx.gui.setActive(_node, "empty", true); return; } // 获取配置 var key = partner.bid + "_" + partner.star; var cfgs = gdata("partner_data", "data_partner_star", key); if (!cfgs) { nx.error("同步目标配置无效:", _data.id, key); nx.gui.setActive(_node, "normal", false); nx.gui.setActive(_node, "empty", true); return; } nx.gui.setActive(_node, "empty", false); nx.gui.setActive(_node, "normal", true); // 等级 nx.gui.setString(_node, "normal/level", partner.lev); // 角色 var path = cc.path.join("resDB/models", cfgs.res_id, "half_show2"); nx.gui.setSpriteFrame(_node, "normal/avatar/img", path, function (_ret) { if (!_ret) { nx.gui.setSpriteFrame(_node, "normal/avatar/img", "resDB/empty/half_show2"); } }); }, // 点击说明 onTouchHelp: function onTouchHelp() { var DATA = game.configs.resonate_data.data_const.rule_tips2; if (nx.dt.objNEmpty(DATA) && nx.dt.strNEmpty(DATA.desc)) { var TC = TipsController.getInstance(); TC.showTextPanel("tip", DATA.desc); } }, // 点击扩容 // 改: 不使用道具,只能用钻石购买 onTouchExpand: function onTouchExpand() { var _this = this; var count = this.data ? this.data.gold_count : 0; count = Math.max(1, count); var DATA = game.configs.resonate_data.data_cell_cost; var cfgs = DATA[count]; if (nx.dt.objEmpty(cfgs) || nx.dt.arrEmpty(cfgs.loss2) || nx.dt.arrEmpty(cfgs.loss2[0])) { return; } var cost = cfgs.loss2[0]; var info = gitemdata(cost[0]); var msg = nx.text.format("lab_hero_resonate_tab_resonate_panel_tip2", info.icon, cost[1]); nx.mbox(msg, ['cancel', 'confirm'], function (_key, _box) { _box.close(); if (_key == 'confirm') { var HC = HeroController.getInstance(); HC.sender26429(_this.data.res_list.length + 1, 2); } }); }, // 点击添加 onJoinPartner: function onJoinPartner(_pos) { var HC = HeroController.getInstance(); var HM = HC.getModel(); var partners = []; var targets = HM.getDicResonateFiveHeroVo(); var all = HC.getModel().getHeroList() || []; for (var k in all) { var pt = all[k]; if (pt && nx.dt.objEmpty(targets[pt.id]) && !HM.isResonateCystalHero(pt)) { partners.push(pt); } } // 排序 var sort_func = Utils.tableUpperSorter(["star"]); partners.sort(sort_func); partners.forEach(function (_p) { if (_p.face_id == 0) { _p.face_id = "null"; } }); var args = { partners: partners, count: 1, selects: [] }; HC.openPartnerSelector(true, args, function (_partners) { var pt = _partners ? _partners[0] : null; if (pt) { HC.sender26426(pt.id, _pos); } HC.openPartnerSelector(false); }); }, // 点击下阵 onFreePartner: function onFreePartner(_data) { if (nx.dt.objEmpty(_data) || !nx.dt.numPositive(_data.id)) { return; } var DATA = game.configs.resonate_data.data_const; var time = nx.bridge.time.toNeedSeconds(DATA.cell_cool_time.val * 60); var msg = nx.text.format("SyncFreePartnerAsk", time); nx.mbox(msg, ['cancel', 'confirm'], function (_key, _box) { _box.close(); if (_key == 'confirm') { var HC = HeroController.getInstance(); HC.sender26427(_data.id, _data.pos); } }); }, // 点击冷却 onTouchCD: function onTouchCD(_pos) { var DATA = game.configs.resonate_data.data_const; var cost = DATA.cell_flush_expend.val[0]; if (nx.dt.arrEmpty(cost)) { return; } var cfgs = gitemdata(cost[0]); if (nx.dt.objEmpty(cfgs)) { return; } var res = PathTool.queryIconPath(cfgs.icon); var icon = cost[0][0]; var msg = nx.text.format("lab_hero_resonate_tab_resonate_panel_tip4", cfgs.icon, cost[1]); nx.mbox(msg, ['cancel', 'confirm'], function (_key, _box) { _box.close(); if (_key == 'confirm') { var HC = HeroController.getInstance(); HC.sender26428(_pos); } }); }, // 点击关闭 onTouchClose: function onTouchClose() { HomeMod.getInstance().reqHomeData(); this.close(); } }); cc._RF.pop();