Files

300 lines
9.7 KiB
JavaScript
Raw Permalink Normal View History

2026-05-24 10:21:26 +08:00
"use strict";
cc._RF.push(module, '37852SEv+lJSId/3wvVYWxc', 'cmp.endless.wnd');
// Scripts/mod/pve/endless_trail/cmp/cmp.endless.wnd.js
"use strict";
var BridgeWindow = require("bridge.window");
var PathTool = require("pathtool");
var EndlessController = require("endless_trail_controller");
var ItemLay = require("cmp.common.itemlayout");
var EndlessEvent = require("endless_trail_event");
var HeroController = require("hero_controller");
var PartnerConst = require("partner_const");
var HeroVo = require("hero_vo");
var TipsController = require("tips_controller");
var RankConstant = require("rank_constant");
var RKC = require("rank_controller");
cc.Class({
"extends": BridgeWindow,
properties: {
floor_round: {
"default": null,
type: cc.Label
},
acktip: {
"default": null,
type: cc.Label
},
fight_btn: {
"default": null,
type: cc.Node
},
can_reward: {
"default": null,
type: cc.Node
},
first_title: {
"default": null,
type: cc.RichText
},
limit_txt: {
"default": null,
type: cc.RichText
},
get_btn: {
"default": null,
type: cc.Node
},
fabItem: {
"default": null,
type: cc.Prefab
},
itemNd: {
"default": null,
type: cc.Node
},
rank_items: {
"default": null,
type: ItemLay
},
friendHelp: {
"default": null,
type: cc.Node
},
myHelp: {
"default": null,
type: cc.Node
},
fabHero: {
"default": null,
type: cc.Prefab
}
},
// LIFE-CYCLE CALLBACKS:
onLoad: function onLoad() {
this.ctrl = EndlessController.getInstance();
this.model = this.ctrl.getModel();
// 今日已挑战或者今日没挑战的状态
this.ack_status = 0;
this.bindGEvent(EndlessEvent.UPDATA_BASE_DATA, this.updateBaseInfo.bind(this));
this.bindGEvent(EndlessEvent.UPDATA_FIRST_DATA, this.updateFirstItem.bind(this));
//支援红点
this.bindGEvent(EndlessEvent.UPDATA_REDPOINT_SENDPARTNER_DATA, this.updateFriendRed.bind(this));
//首次领取红点
this.bindGEvent(EndlessEvent.UPDATA_REDPOINT_FIRST_DATA, this.updateFirstRed.bind(this));
//奖励红点
this.bindGEvent(EndlessEvent.UPDATA_REDPOINT_REWARD_DATA, this.updateRewardRed.bind(this));
//更新我方助战
this.bindGEvent(EndlessEvent.UPDATE_SEND_MAIN_DATA, this.updateMySender.bind(this));
},
updateMySender: function updateMySender(data) {
//提供雇佣
var sender_data = data;
if (sender_data.list[0]) {
if (!this.helpMe) {
this.helpMe = cc.instantiate(this.fabHero);
this.helpMe.parent = this.myHelp;
this.helpMe.position = cc.v2(0, 10);
}
var vo = new HeroVo();
vo.bid = sender_data.list[0].bid;
vo.lev = sender_data.list[0].lev;
vo.power = sender_data.list[0].power;
vo.quality = sender_data.list[0].quality;
vo.star = sender_data.list[0].star;
vo.ext_data = sender_data.list[0].ext_data;
var pNd = nx.gui.find(this.myHelp, "lay");
nx.gui.setString(pNd, "power", sender_data.list[0].power);
var cmp = nx.gui.getComponent(this.helpMe, "", "cmp.partner.com");
cmp.setData(vo);
}
},
updateRewardRed: function updateRewardRed(status) {
//fight_btn
// nx.mTip.openTip
},
updateFirstRed: function updateFirstRed(status) {
//get_btn
// nx.mTip.openTip
},
updateFriendRed: function updateFriendRed(status) {
// nx.mTip.openTip
},
updateBaseInfo: function updateBaseInfo(data) {
if (nx.dt.objEmpty(data)) {
return;
}
this.base_data = data;
this.floor_round.string = data.max_round;
var str1 = cc.js.formatStr(nx.text.getKey("lab_endless_trail_main_from_node_start"), data.current_round);
var str2 = cc.js.formatStr(nx.text.getKey("lab_endless_trail_main_pass_node_today"), data.day_pass_round);
this.acktip.string = cc.js.formatStr("%s(%s)", str1, str2);
if (data.day_pass_round == 0) {
nx.gui.setString(this.fight_btn, "txt", nx.text.getKey("endless_start_fight"));
} else {
nx.gui.setString(this.fight_btn, "txt", nx.text.getKey("lab_endless_trail_main_restart"));
}
if (data.day_pass_round != 0 && data.is_reward == 1) {
this.ack_status = 2;
} else {
this.ack_status = 1;
}
//雇佣伙伴
if (data.is_employ && !nx.dt.arrEmpty(data.list)) {
if (data.list[0]) {
var partner_data = data.list[0];
var vo = new HeroVo();
vo.bid = partner_data.bid;
vo.lev = partner_data.lev;
vo.power = partner_data.power;
vo.quality = partner_data.quality;
vo.star = partner_data.star;
vo.ext_data = partner_data.ext_data;
if (!this.helpOther) {
this.helpOther = cc.instantiate(this.fabHero);
this.helpOther.parent = this.friendHelp;
this.helpOther.position = cc.v2(0, 10);
}
var powerNd = nx.gui.find(this.friendHelp, "lay");
nx.gui.setString(powerNd, "power", partner_data.power);
var cmp = nx.gui.getComponent(this.helpOther, "", "cmp.partner.com");
cmp.setData(vo);
}
} else {
if (this.helpOther) {
var _powerNd = nx.gui.find(this.friendHelp, "lay");
nx.gui.setString(_powerNd, "power", "");
var _cmp = nx.gui.getComponent(this.helpOther, "", "cmp.partner.com");
_cmp.setData(null);
}
}
// 达到上限
if (data.is_reward == 1) {
this.can_reward.active = true;
} else {
this.can_reward.active = false;
}
// 自己当前排名奖励
this.updateRankItem();
},
//排名奖励
updateRankItem: function updateRankItem() {
if (this.base_data.my_idx == null) return;
var config = null;
for (var i in game.configs.endless_data.data_rank_reward_data) {
var v = game.configs.endless_data.data_rank_reward_data[i];
if (this.base_data.my_idx >= v.min && this.base_data.my_idx <= v.max) {
config = v;
break;
}
}
if (config == null) {
//未上榜
// this.rank_notice.node.active = true;
this.rank_items.rebuild([]);
// this.my_rank_value.string = nx.text.getKey("lab_endless_trail_main_no_rank");
} else {
// this.rank_notice.node.active = false;
// this.my_rank_value.string = this.base_data.my_idx;
var temp_list = [];
for (var j in config.items) {
temp_list.push({
bid: config.items[j][0],
num: config.items[j][1]
});
}
this.rank_items.rebuild(temp_list);
}
},
updateFirstItem: function updateFirstItem(data) {
if (nx.dt.objEmpty(data)) {
return;
}
if (game.configs.endless_data.data_first_data && this.base_data) {
this.first_data = data;
var first_data = game.configs.endless_data.data_first_data[this.first_data.id];
if (this.first_data.id == 0) {
var str = nx.text.getKey("lab_endless_trail_main_have_taken_over");
this.limit_txt.string = str;
this.limit_txt.node.active = true;
this.first_title.node.active = false;
this.get_btn.active = false;
} else {
if (first_data) {
var str = cc.js.formatStr(nx.text.getKey("lab_endless_trail_main_first_pass_reward"), first_data.limit_id);
this.first_title.string = str;
if (this.first_data.status == 1) {
this.get_btn.active = true;
this.limit_txt.node.active = false;
} else {
str = cc.js.formatStr(nx.text.getKey("lab_endless_trail_main_after_node_reward"), first_data.limit_id - this.base_data.max_round);
this.limit_txt.string = str;
this.limit_txt.node.active = true;
this.get_btn.active = false;
}
this.first_item = cc.instantiate(this.fabItem);
this.first_item.parent = this.itemNd;
var cmp = nx.gui.getComponent(this.first_item, "", "cmp.item.base");
cmp.setData(first_data.items[0]);
}
}
}
},
start: function start() {},
onOpenConfigs: function onOpenConfigs() {
this.ctrl.send23900();
this.ctrl.send23903();
this.ctrl.send23905(); //查询我方助战
},
onPreClosed: function onPreClosed() {},
onClickMyHelp: function onClickMyHelp() {
this.ctrl.openEndlessMyHelpView(true);
},
onClickFriendHelp: function onClickFriendHelp() {
this.ctrl.openEndlessFriendHelpView(true);
},
onClickReward: function onClickReward() {
this.ctrl.openEndlessRewardWindow(true);
},
onClickTips: function onClickTips() {
var TC = TipsController.getInstance();
if (TC) {
var txt = game.configs.endless_data.data_explain;
TC.showDetailPanel(txt);
}
},
onClickGet: function onClickGet() {
if (this.first_data) {
this.ctrl.send23904(this.first_data.id);
}
},
onCLickAct: function onCLickAct() {
var has_hire_list = this.model.getHasHirePartnerData() || {};
var list = has_hire_list.list || {};
if (this.ack_status == 2) {
HeroController.getInstance().openFormGoFightPanel(true, PartnerConst.Fun_Form.EndLess, {
has_hire_list: list
});
nx.mbox(nx.text.getKey("msg_endless_trail_main_cannot_get_reward"), ["cancel", "confirm"], function (_key, _box) {
_box.close();
if (_key == "confirm") {
HeroController.getInstance().openFormGoFightPanel(true, PartnerConst.Fun_Form.EndLess, {
has_hire_list: list
});
}
});
} else {
HeroController.getInstance().openFormGoFightPanel(true, PartnerConst.Fun_Form.EndLess, {
has_hire_list: list
});
}
},
onClickRank: function onClickRank() {
RKC.getInstance().openRankDetail(RankConstant.RankType.endless);
} // update (dt) {},
});
cc._RF.pop();