259 lines
8.8 KiB
JavaScript
259 lines
8.8 KiB
JavaScript
|
|
"use strict";
|
||
|
|
cc._RF.push(module, '44767gBNVdDf7N3ZVwZ8opi', 'cmp.holy.pray.wnd');
|
||
|
|
// Scripts/mod/pray/cmp/cmp.holy.pray.wnd.js
|
||
|
|
|
||
|
|
"use strict";
|
||
|
|
|
||
|
|
var BridgeWindow = require("bridge.window");
|
||
|
|
var BackPackController = require("backpack_controller");
|
||
|
|
var PrayMod = require("pray.mod");
|
||
|
|
var TipsController = require("tips_controller");
|
||
|
|
cc.Class({
|
||
|
|
"extends": BridgeWindow,
|
||
|
|
properties: {
|
||
|
|
luckyHolys: {
|
||
|
|
"default": [],
|
||
|
|
type: cc.Node
|
||
|
|
},
|
||
|
|
nodRewards: {
|
||
|
|
"default": null,
|
||
|
|
type: cc.Node
|
||
|
|
},
|
||
|
|
// :{ default: [], type: cc.Node },
|
||
|
|
rewards: {
|
||
|
|
"default": [],
|
||
|
|
type: cc.Node
|
||
|
|
},
|
||
|
|
nodScore: {
|
||
|
|
"default": null,
|
||
|
|
type: cc.Node
|
||
|
|
},
|
||
|
|
nameLen: 0
|
||
|
|
},
|
||
|
|
onEnable: function onEnable() {
|
||
|
|
// 视图监听
|
||
|
|
this.vbind([["HolyPray", this.dealPray.bind(this)]]);
|
||
|
|
},
|
||
|
|
// 隐藏
|
||
|
|
onDisable: function onDisable() {
|
||
|
|
// 视图监听解除
|
||
|
|
this.vunbind();
|
||
|
|
// 事件监听释放
|
||
|
|
},
|
||
|
|
|
||
|
|
// 重载:参数打开
|
||
|
|
onOpenConfigs: function onOpenConfigs(_params) {
|
||
|
|
var pray = PrayMod.getInstance();
|
||
|
|
var score = pray.getScore();
|
||
|
|
nx.gui.setString(this.nodScore, "txt", nx.text.format("ScoreMax", score));
|
||
|
|
this.score = score;
|
||
|
|
},
|
||
|
|
// 重载:关闭前
|
||
|
|
onPreClosed: function onPreClosed() {},
|
||
|
|
// 重载:参数打开
|
||
|
|
dealPray: function dealPray(_data) {
|
||
|
|
var _this = this;
|
||
|
|
this.prayInfos = _data;
|
||
|
|
this.prayInfos.forEach(function (_pray) {
|
||
|
|
if (_pray.is_open == 1) {
|
||
|
|
_this.nowPrayInfos = _pray;
|
||
|
|
}
|
||
|
|
});
|
||
|
|
this.nowPrayInfos.lucky_holy_eqm.sort(Utils.tableUpperSorter("pos"));
|
||
|
|
//刷新 许愿战斗义肢神装相关
|
||
|
|
this.freshLuckyHoly();
|
||
|
|
|
||
|
|
//刷新 许愿战斗义肢/神装 奖励相关
|
||
|
|
this.freshLuckyHolyRewards();
|
||
|
|
},
|
||
|
|
freshLuckyHoly: function freshLuckyHoly() {
|
||
|
|
// 刷新 祈禱相關
|
||
|
|
this.showRewards = [];
|
||
|
|
var cfgs = game.configs.holy_eqm_lottery_data.data_wish_show;
|
||
|
|
var wishes = this.nowPrayInfos.lucky_holy_eqm;
|
||
|
|
if (nx.dt.arrEmpty(wishes)) {
|
||
|
|
this.luckyHolys.forEach(function (_nod) {
|
||
|
|
nx.gui.setActive(_nod, "holy", false);
|
||
|
|
nx.gui.setActive(_nod, "name", false);
|
||
|
|
nx.gui.setActive(_nod, "empty", true);
|
||
|
|
});
|
||
|
|
} else {
|
||
|
|
for (var i = 0; i < wishes.length; i++) {
|
||
|
|
var wish = wishes[i];
|
||
|
|
nx.gui.setActive(this.luckyHolys[wish.pos], "holy", wish.lucky_holy_eqm != 0);
|
||
|
|
nx.gui.setActive(this.luckyHolys[wish.pos], "empty", wish.lucky_holy_eqm == 0);
|
||
|
|
nx.gui.setActive(this.luckyHolys[wish.pos], "name", wish.lucky_holy_eqm != 0);
|
||
|
|
var cfg = cfgs[wish.lucky_holy_eqm];
|
||
|
|
if (cfg) {
|
||
|
|
var set = parseInt(cfg.group_id / 100);
|
||
|
|
var path = cc.path.join("coms/images/eqm_set" + set);
|
||
|
|
nx.gui.setSpriteFrame(this.luckyHolys[wish.pos], "holy/ico_set", path);
|
||
|
|
nx.bridge.setIcon(this.luckyHolys[wish.pos], "holy/icon", cfg.icon);
|
||
|
|
nx.gui.setString(this.luckyHolys[wish.pos], "name/txt", nx.dt.strCut(cfg.name, this.nameLen));
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
nx.gui.setString(this, "panel/sid", this.nowPrayInfos.lev);
|
||
|
|
nx.gui.setString(this, "panel/desc/time", nx.text.format("lab_heaven_tips_8", this.nowPrayInfos.baodi_count));
|
||
|
|
},
|
||
|
|
freshLuckyHolyRewards: function freshLuckyHolyRewards() {
|
||
|
|
var _this2 = this;
|
||
|
|
var BC = BackPackController.getInstance();
|
||
|
|
var limit = game.configs.holy_eqm_lottery_data.data_group[this.nowPrayInfos.group_id];
|
||
|
|
var one = nx.gui.find(this.nodRewards, "op/once");
|
||
|
|
var ten = nx.gui.find(this.nodRewards, "op/ten");
|
||
|
|
var prog = nx.gui.getComponent(this.nodRewards, "awards/prog", cc.ProgressBar);
|
||
|
|
var count = Object.keys(game.configs.holy_eqm_lottery_data.data_award[this.nowPrayInfos.group_id]).length;
|
||
|
|
var total = game.configs.holy_eqm_lottery_data.data_award[this.nowPrayInfos.group_id][count];
|
||
|
|
if (prog) {
|
||
|
|
prog.progress = parseFloat(this.nowPrayInfos.all_award_count / total.times);
|
||
|
|
}
|
||
|
|
nx.gui.setStringRich(this, "panel/times", nx.text.format("lab_heaven_tips", this.nowPrayInfos.day_count, limit.day_limit_count));
|
||
|
|
this.mat = limit.loss_item_once[0][0];
|
||
|
|
|
||
|
|
// let nodRewards = nx.gui.find( this.nodRewards, )
|
||
|
|
// 設置寶箱可領取
|
||
|
|
nx.gui.setString(this.nodRewards, "awards/count/txt", this.nowPrayInfos.all_award_count);
|
||
|
|
var rewards = game.configs.holy_eqm_lottery_data.data_award[this.nowPrayInfos.group_id];
|
||
|
|
for (var i in rewards) {
|
||
|
|
var award = rewards[i];
|
||
|
|
var nod = this.rewards[i - 1];
|
||
|
|
if (nod) {
|
||
|
|
nx.gui.setString(nod, "txt", award.times);
|
||
|
|
var lay = nx.gui.getComponent(nod, "show", "cmp.item.layout");
|
||
|
|
if (lay) {
|
||
|
|
lay.rebuild(award.reward);
|
||
|
|
}
|
||
|
|
var data = {
|
||
|
|
"award_id": i
|
||
|
|
};
|
||
|
|
nx.gui.setActive(nod, "get", award.times <= this.nowPrayInfos.all_award_count);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
this.nowPrayInfos.do_awards.forEach(function (_ard) {
|
||
|
|
var nod = _this2.rewards[_ard.award_id - 1];
|
||
|
|
nx.gui.setActive(nod, "get", false);
|
||
|
|
});
|
||
|
|
var cost = 0;
|
||
|
|
var canBuyTen = false;
|
||
|
|
var have = BC.getModel().getItemNumByBid(this.mat);
|
||
|
|
nx.gui.setActive(one, "cost/info/icon", false);
|
||
|
|
if (this.nowPrayInfos.free_times == 1) {
|
||
|
|
cost = nx.text.getKey("btn_battle_fast_fight_free");
|
||
|
|
} else {
|
||
|
|
if (have >= limit.loss_item_once[0][1]) {
|
||
|
|
cost = limit.loss_item_once[0][1];
|
||
|
|
nx.bridge.setIconS(one, "cost/info/icon", this.mat);
|
||
|
|
} else {
|
||
|
|
nx.bridge.setIconS(one, "cost/info/icon", 3);
|
||
|
|
cost = limit.loss_gold_once;
|
||
|
|
}
|
||
|
|
nx.gui.setActive(one, "cost/info/icon", true);
|
||
|
|
// nx.bridge.setIconS( one, "cost/icon", this.mat );
|
||
|
|
}
|
||
|
|
|
||
|
|
if (have >= limit.loss_item_ten[0][1]) {
|
||
|
|
canBuyTen = true;
|
||
|
|
}
|
||
|
|
nx.gui.setString(one, "cost/info/txt", cost);
|
||
|
|
nx.bridge.setIconS(ten, "cost/icon", canBuyTen ? this.mat : 3);
|
||
|
|
nx.gui.setString(ten, "cost/txt", canBuyTen ? limit.loss_item_ten[0][1] : limit.loss_gold_ten);
|
||
|
|
},
|
||
|
|
// 添加許願戰鬥義肢
|
||
|
|
onTouchAddWish: function onTouchAddWish(_idx) {
|
||
|
|
nx.bridge.createPanel("WndHolyPrayWish", {
|
||
|
|
group_id: this.nowPrayInfos.group_id,
|
||
|
|
select: this.nowPrayInfos.lucky_holy_eqm,
|
||
|
|
focus: parseInt(_idx)
|
||
|
|
});
|
||
|
|
},
|
||
|
|
onTouchShow: function onTouchShow(_idx) {
|
||
|
|
for (var i = 0; i < this.rewards.length; i++) {
|
||
|
|
var _nod2 = this.rewards[i];
|
||
|
|
if (i != _idx) {
|
||
|
|
nx.gui.setActive(_nod2, "show", false);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
var nod = nx.gui.find(this.rewards[_idx], "show");
|
||
|
|
nx.gui.setActive(nod, "", !nod.active);
|
||
|
|
},
|
||
|
|
onTouchGet: function onTouchGet(_idx) {
|
||
|
|
var pray = PrayMod.getInstance();
|
||
|
|
pray.sender25231(this.nowPrayInfos.group_id, _idx);
|
||
|
|
},
|
||
|
|
onTouchPray: function onTouchPray(_times) {
|
||
|
|
var BC = BackPackController.getInstance();
|
||
|
|
var pray = PrayMod.getInstance();
|
||
|
|
var have = BC.getModel().getItemNumByBid(this.mat);
|
||
|
|
var haveDiam = BC.getModel().getItemNumByBid(3);
|
||
|
|
var canBuyOne = false;
|
||
|
|
var canBuyTen = false;
|
||
|
|
var type = 0;
|
||
|
|
var cfg = game.configs.holy_eqm_lottery_data.data_group[this.nowPrayInfos.group_id];
|
||
|
|
if (have > 0) {
|
||
|
|
if (have >= cfg.loss_item_once[0][1] && have < cfg.loss_item_ten[0][1]) {
|
||
|
|
canBuyOne = true;
|
||
|
|
canBuyTen = false;
|
||
|
|
type = 4;
|
||
|
|
} else if (have >= cfg.loss_item_ten[0][1]) {
|
||
|
|
canBuyTen = true;
|
||
|
|
canBuyOne = true;
|
||
|
|
type = 4;
|
||
|
|
}
|
||
|
|
} else {
|
||
|
|
if (haveDiam >= cfg.loss_gold_once && haveDiam < cfg.loss_gold_ten) {
|
||
|
|
canBuyOne = true;
|
||
|
|
canBuyTen = false;
|
||
|
|
type = 3;
|
||
|
|
} else if (haveDiam >= cfg.loss_gold_ten) {
|
||
|
|
canBuyTen = true;
|
||
|
|
canBuyOne = true;
|
||
|
|
type = 3;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
// console.log( haveDiam + "sss" + type + "是否可以祈禱單次" + canBuyOne + "是否可以祈禱ss" + canBuyTen + have );
|
||
|
|
|
||
|
|
if (_times <= cfg.loss_item_once[0][1]) {
|
||
|
|
if (this.nowPrayInfos.free_times == 1) {
|
||
|
|
pray.sender25217(this.nowPrayInfos.group_id, _times, 1);
|
||
|
|
return;
|
||
|
|
} else {
|
||
|
|
if (!canBuyOne) {
|
||
|
|
nx.tbox("SummonItemNotEnough");
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
} else {
|
||
|
|
if (!canBuyTen) {
|
||
|
|
nx.tbox("SummonItemNotEnough");
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
pray.sender25217(this.nowPrayInfos.group_id, _times, type);
|
||
|
|
},
|
||
|
|
onTouchUplev: function onTouchUplev() {
|
||
|
|
nx.bridge.createPanel("WndHolyStatueUplev", this.nowPrayInfos);
|
||
|
|
},
|
||
|
|
onTouchRate: function onTouchRate() {
|
||
|
|
nx.bridge.createPanel("WndHolyPrayRate", this.nowPrayInfos);
|
||
|
|
},
|
||
|
|
onTouchEqmAutoSell: function onTouchEqmAutoSell() {
|
||
|
|
nx.bridge.createPanel("WndHolyEqmAutoSell", this.nowPrayInfos);
|
||
|
|
},
|
||
|
|
onTouchShop: function onTouchShop() {
|
||
|
|
nx.bridge.createPanel("WndHolyPrayShop", {
|
||
|
|
score: this.score
|
||
|
|
});
|
||
|
|
},
|
||
|
|
// 规则说明
|
||
|
|
onTouchTip: function onTouchTip() {
|
||
|
|
var desc = game.configs.holy_eqm_lottery_data.data_const.salvage_rule;
|
||
|
|
var TC = TipsController.getInstance();
|
||
|
|
if (TC) {
|
||
|
|
TC.showTextPanel(desc.title, desc.desc);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
});
|
||
|
|
|
||
|
|
cc._RF.pop();
|