"use strict"; cc._RF.push(module, '5dc37upnPFAhYhHez4lHipp', 'cmp.guild.donate.wnd'); // Scripts/mod/guild/base/cmps/cmp.guild.donate.wnd.js "use strict"; /****************************************************************** * * 联盟捐献 * ******************************************************************/ var BridgeWindow = require("bridge.window"); var TipController = require("tips_controller"); var GuildController = require("guild_controller"); var GuildEvent = require("guild_event"); cc.Class({ "extends": BridgeWindow, properties: { nodChoices: { "default": null, type: cc.Node }, nodToday: { "default": null, type: cc.Node }, nodProgress: { "default": null, type: cc.Node } }, // 显示 onEnable: function onEnable() { var _this = this; this.ctrl = GuildController.getInstance(); this.model = this.ctrl.getModel(); // 提示关闭 nx.mTip.openTip("guild.donate.tip", false); this.freshBase(); this.bindGEvent(GuildEvent.UpdateMyInfoEvent, this.onUpdateGuildInfo.bind(this)); this.bindGEvent(GuildEvent.UpdateDonateInfo, this.onUpdateDonateInfo.bind(this)); this.bindGEvent(GuildEvent.UpdateDonateBoxStatus, this.onUpdateRewardInfo.bind(this)); this.ctrl.reqDonateData(function (_ret, _data) { if (!_ret) { nx.tbox(_data); _this.scheduleOnce(function () { _this.close(); }, 0.01); return; } }); }, // 关闭 onDisable: function onDisable() { if (nx.bridge.prompt) { nx.bridge.prompt.delPrompt(19); } this.unbindGEvents(); }, // 基础显示 freshBase: function freshBase() { // 贡献选项 var choices = game.configs.guild_data.data_donate; for (var i in choices) { var info = choices[i]; var node = nx.gui.find(this.nodChoices, "t" + i); node.cinfo = info; nx.gui.setString(node, "tip", nx.text.getKey(info.desc)); nx.gui.hideAllChildren(node, "ops"); // 消耗 var need = nx.gui.find(node, "ops/donate/need"); if (need) { var loss = info.loss[0]; nx.bridge.setIconS(need, "ico", loss[0]); nx.gui.setString(need, "txt", loss[1]); } // 奖励 var reward = nx.gui.find(node, "reward"); for (var t = 0; t < 2; ++t) { var ifo = info.gain[t]; var tmp = nx.gui.find(reward, "t" + t); if (nx.dt.arrEmpty(ifo)) { tmp.active = false; continue; } tmp.active = true; nx.bridge.setIconS(tmp, "icon", ifo[0]); nx.gui.setString(tmp, "txt", ifo[1]); } } // 今日贡献 nx.gui.setString(this.nodToday, "txt", 0); // 贡献奖励 var boxes = game.configs.guild_data.data_donate_box; for (var id in boxes) { var box = boxes[id]; var _node = nx.gui.find(this.nodProgress, "r" + id); _node.boxinfo = box; nx.gui.setString(_node, "txt", box.box_val); nx.gui.setActive(_node, "box/off", true); nx.gui.setActive(_node, "box/on", false); nx.gui.setActive(_node, "box/got", false); } // 等级更新 this.onUpdateGuildInfo(); }, // 联盟信息更新 onUpdateGuildInfo: function onUpdateGuildInfo() { // 当前等级提示 var levels = game.configs.guild_data.data_guild_lev; if (!levels) { return; } var gifo = this.model.getMyGuildInfo(); var txt = nx.text.format("GuidDonateMaxLevel", gifo.lev); if (gifo.lev < game.configs.guild_data.data_guild_lev_length) { var clv = levels[gifo.lev]; txt = nx.text.format("GuidDonateNextLevel", gifo.lev, nx.text.getKey(clv.desc)); } nx.gui.setString(this, "panel/tip", txt); }, // 捐献信息更新 onUpdateDonateInfo: function onUpdateDonateInfo() { var _this2 = this; // 捐献情况 var chds = this.nodChoices.children; var _loop = function _loop() { var node = chds[i]; var ifo = _this2.model.checkDonateStatus(node.cinfo.id); // 已捐献 var key = "donate"; if (ifo[0]) { key = ifo[1] == true ? "done" : "out"; } var ops = nx.gui.find(node, "ops"); ops.children.forEach(function (t) { t.active = t.name == key; }); }; for (var i = 0; i < chds.length; ++i) { _loop(); } // 捐献奖励更新 this.onUpdateRewardInfo(); }, // 捐献奖励更新 onUpdateRewardInfo: function onUpdateRewardInfo() { // 贡献进度 var exp = this.model.donate_exp; var max = game.configs.guild_data.data_const.day_exp_max.val; var bar = nx.gui.getComponent(this.nodProgress, "", cc.ProgressBar); if (bar) { bar.progress = exp / max; } nx.gui.setString(this.nodToday, "txt", exp); // 进度奖励 var boxes = game.configs.guild_data.data_donate_box; for (var id in boxes) { var box = boxes[id]; var node = nx.gui.find(this.nodProgress, "r" + id); if (exp < box.box_val) { nx.gui.setActive(node, "box/off", true); nx.gui.setActive(node, "box/on", false); nx.gui.setActive(node, "box/got", false); } else { var got = this.model.donate_rewards[id]; nx.gui.setActive(node, "box/off", got); nx.gui.setActive(node, "box/on", !got); nx.gui.setActive(node, "box/got", got); } } }, // 捐献 onTouchDonate: function onTouchDonate(_key) { var type = parseInt(_key); this.ctrl.reqDonate(type, function (_ret, _data) { if (!_ret) { nx.tbox(_data); return; } }); }, // 领奖 onTouchReward: function onTouchReward(_key) { var id = parseInt(_key); var box = game.configs.guild_data.data_donate_box[id]; if (nx.dt.objEmpty(box)) { return; } var node = nx.gui.find(this.nodProgress, "r" + id); var can = nx.gui.isActive(node, "box/on"); if (!can) { nx.bridge.createPanel("PopItemsPreview", { tip: "PreviewReward", items: box.rewards }); return; } // 领奖 this.ctrl.requestDonateBoxRewards(id, function (_ret, _data) { if (!_ret) { nx.tbox(_data); return; } }); }, // 说明 onTouchHelp: function onTouchHelp() { var TC = TipController.getInstance(); if (TC) { var txt = game.configs.guild_data.data_const.game_rule1; TC.showTextPanel("tip", txt.desc); } } }); cc._RF.pop();