Files
fc/dev/project/library/imports/5d/5dc37ba9-9cf1-4085-8847-7b3e251e2a69.js
2026-05-24 10:21:26 +08:00

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();