Files
fc/dev/project/library/imports/47/4714b069-34f4-4334-b755-69a70518228c.js
T

219 lines
6.5 KiB
JavaScript
Raw Normal View History

2026-05-24 10:21:26 +08:00
"use strict";
cc._RF.push(module, '4714bBpNPRDNLdVaacFGCKM', 'act.mysteryexplore.page');
// Scripts/mod/acts/nysteryexplore/act.mysteryexplore.page.js
"use strict";
/******************************************************************
*
* 迷窟探险
*
******************************************************************/
var ActPage = require("act.page.base");
var NxSpine = require("nx.fx.spine");
var ItemLay = require("cmp.common.itemlayout");
var PathTool = require("pathtool");
var BCT = require("battle_controller");
var BCS = require("battle_const");
var TipsController = require("tips_controller");
var MallCT = require("mall_controller");
var MallConst = require("mall_const");
cc.Class({
"extends": ActPage,
properties: {
spRole: {
"default": null,
type: NxSpine
},
awardList: {
"default": null,
type: ItemLay
},
rankList: {
"default": [],
type: [cc.Node]
},
totalDmg: {
"default": null,
type: cc.Node
},
cdTime: {
"default": null,
type: cc.Node
},
challengeNum: {
"default": null,
type: cc.Node
},
getBtn: {
"default": null,
type: cc.Node
},
titleName: {
"default": null,
type: cc.Node
}
},
// 初始化
build: function build(_data) {
this._super(_data);
this.happy_data = game.configs.happy_challenge_data;
// 活动监听
this.mod.vbind(this, [["MysteryExploreInfos", this.freshInfos.bind(this)], ["MysteryExploreRank", this.freshRanks.bind(this)]]);
},
onOpenScoreShop: function onOpenScoreShop() {
MallCT.getInstance().openMallPanel(true, [MallConst.MallType.LimitTimeChange]);
},
onClickRule: function onClickRule() {
var TC = TipsController.getInstance();
if (TC) {
var config = this.happy_data.data_explain[1];
TC.showTextPanel(null, config.desc);
}
},
onEnable: function onEnable() {
this.mod.reqLimitData(this.data.camp_id);
this.mod.reqRank(this.data.camp_id);
},
// 销毁
onDestroy: function onDestroy() {
// 活动监听解除
if (this.mod) {
this.mod.vunbind(this);
}
this._super();
},
// 任务刷新
freshInfos: function freshInfos(data) {
var _this = this;
if (nx.dt.objEmpty(data) || data.camp_id != this.data.camp_id) return;
nx.gui.setCdTxt(this.cdTime, "", data.end_time - client.socket.getTime());
nx.gui.setString(this.challengeNum, "", data.challenge_num);
nx.gui.setString(this.totalDmg, "", data.all_dps);
this.lastChallenge = data.challenge_num;
//今日剩余购买次数
this.challenge_buys = this.happy_data.data_const.daily_zs_times.val - data.challenge_buy_num;
var res_data = this.happy_data.data_info[this.data.camp_id];
if (res_data) {
nx.gui.setString(this.titleName, "", res_data.name);
var res_path = PathTool.getSpinePath(res_data.spine, "show", false);
this.spRole.load(res_path, function (_e) {
if (_e) {
_this.spRole.stop();
} else {
_this.spRole.action("action1", true);
}
});
}
//獎勵和積分
var is_allow_get = false; //有一個就能領取
for (var i in data.rewards) {
var g = data.rewards[i];
if (g && g.status == 1) {
is_allow_get = true;
}
}
this.awardList.rebuild(data.rewards);
nx.gui.setActive(this.getBtn, "", is_allow_get);
},
freshRanks: function freshRanks(data) {
if (nx.dt.objEmpty(data)) return;
//先設置簡單榜單
var info_data = this.happy_data.data_info[this.data.camp_id];
for (var i = 0; i < this.rankList.length; i++) {
var rank_data = data.rank_list[i];
var item = this.rankList[i];
if (rank_data) {
nx.gui.setString(item, "pname", rank_data.name);
nx.gui.setString(item, "value", rank_data.val1);
if (info_data) {
if (info_data.type == 1) {
nx.gui.setColor(item, "value", new cc.Color(239, 152, 38));
} else if (info_data.type == 2) {
nx.gui.setColor(item, "value", new cc.Color(80, 238, 2));
}
}
} else {
nx.gui.setString(item, "pname", "");
nx.gui.setString(item, "value", "");
}
}
},
onOpenRank: function onOpenRank() {
var data = this.mod.vget("MysteryExploreRank");
if (nx.dt.objEmpty(data)) return;
nx.bridge.createPanel("WndActLimitChalRank", {
list: data.rank_list,
camp_id: this.data.camp_id,
config: this.happy_data
});
},
onTryBat: function onTryBat() {
var _this2 = this;
if (this.lastChallenge > 0) {
BCT.getInstance().requestOpenBattleRelevanceWindow(BCS.Fight_Type.SingleBoss, null, function (_data) {
if (_data) {
_this2.mod.reqBat(_this2.data.camp_id, function (_data) {
if (_data) {
_this2.mod.reqLimitData(_this2.data.camp_id);
_this2.scheduleOnce(function () {
_this2.mod.reqRank(_this2.data.camp_id);
}, 3);
}
});
}
});
} else {
//次数不足,判断是否可以购买
if (this.challenge_buys > 0) {
this.onCheckBuyChallenge();
} else {
return nx.tbox("lab_ladder_controller_tip3");
}
}
},
onTryClear: function onTryClear() {
var _this3 = this;
if (this.lastChallenge > 0) {
this.mod.reqBatClear(this.data.camp_id, function (_data) {
if (_data) {
_this3.mod.reqLimitData(_this3.data.camp_id);
_this3.mod.reqRank(_this3.data.camp_id);
}
});
} else {
//次数不足,判断是否可以购买
if (this.challenge_buys > 0) {
this.onCheckBuyChallenge();
} else {
return nx.tbox("lab_ladder_controller_tip3");
}
}
},
onCheckBuyChallenge: function onCheckBuyChallenge() {
var _this4 = this;
var cost_info = this.happy_data.data_const.zs_times_per;
nx.mbox(cc.js.formatStr(nx.text.getKey("PvpBuyRankTime"), 3, cost_info.val), ["cancel", "confirm"], function (_key, _box) {
_box.close();
if (_key == "confirm") {
_this4.mod.reqBuyChalNum(_this4.data.camp_id, function (_ret) {});
}
});
},
//一键领取
onGetAward: function onGetAward() {
var _this5 = this;
if (this.data.camp_id) {
this.mod.reqAward(this.data.camp_id, function (_data) {
if (_data) {
_this5.mod.reqLimitData(_this5.data.camp_id);
_this5.mod.reqRank(_this5.data.camp_id);
}
});
}
}
});
cc._RF.pop();