228 lines
6.3 KiB
JavaScript
228 lines
6.3 KiB
JavaScript
"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(); |