Files
fc/dev/project/library/imports/68/68fa2325-57b2-4406-a3ee-1a1126c67f07.js
2026-05-24 10:21:26 +08:00

264 lines
7.9 KiB
JavaScript

"use strict";
cc._RF.push(module, '68fa2MlV7JEBqPuGhEmxn8H', 'cmp.act.limitChallenge');
// Scripts/mod/acts/limitChallenge/cmp/cmp.act.limitChallenge.js
"use strict";
/******************************************************************
*
* 限定挑戰
*
******************************************************************/
var ActPage = require("act.page.base");
var NxSpine = require("nx.fx.spine");
var PathTool = require("pathtool");
var ItemLay = require("cmp.common.itemlayout");
var BCT = require("battle_controller");
var BCS = require("battle_const");
var TipsController = require("tips_controller");
cc.Class({
"extends": ActPage,
properties: {
awards: {
"default": null,
type: ItemLay
},
scores: {
"default": null,
type: cc.Node
},
rankList: {
"default": null,
type: cc.Node
},
rankItem: {
"default": null,
type: cc.Node
},
rankSelf: {
"default": null,
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
},
roleSp: {
"default": null,
type: NxSpine
},
pic: {
"default": null,
type: cc.Node
},
maxTi: {
"default": null,
type: cc.Node
},
rankTi: {
"default": null,
type: cc.Node
},
rankTi3: {
"default": null,
type: cc.Node
}
},
// 初始化
build: function build(_data) {
this._super(_data);
this.chal_data = game.configs.limit_challenge_data;
// 活动监听
this.mod.vbind(this, [["LimitChallengeInfos", this.freshInfos.bind(this)], ["LimitChallengeRanks", this.freshRanks.bind(this)]]);
},
onEnable: function onEnable() {
this.mod.reqLimitData(this.data.camp_id);
this.mod.reqRank(this.data.camp_id);
},
onDisable: function onDisable() {
this.awards.rebuild([]);
},
// 销毁
onDestroy: function onDestroy() {
// 活动监听解除
if (this.mod) {
this.mod.vunbind(this);
}
this._super();
},
freshInfos: function freshInfos(data) {
var _this = this;
this.payId = [];
if (nx.dt.objEmpty(data)) return;
var info = data[this.data.camp_id];
if (nx.dt.objEmpty(info)) return;
this.lastChallenge = info.challenge_num;
nx.gui.setCdTxt(this.cdTime, "", info.end_time - client.socket.getTime());
nx.gui.setString(this.challengeNum, "", info.challenge_num);
nx.gui.setString(this.totalDmg, "", info.all_dps);
var res_data = this.chal_data.data_info[this.data.camp_id];
if (res_data) {
var res_path = PathTool.getSpinePath(res_data.spine, "show", false);
this.roleSp.load(res_path, function (_e) {
if (_e) {
_this.roleSp.stop();
} else {
_this.roleSp.action("action1", true);
}
});
var ti_path = cc.js.formatStr("locals/%s/images/acts/%s", nx.getLocLanguage(), res_data.title);
nx.gui.setSpriteFrame(this.pic, "", ti_path);
if (res_data.type == 1) {
nx.gui.setString(this.maxTi, "", nx.text.getKey("batMaxDps"));
nx.gui.setString(this.rankTi, "", nx.text.getKey("DpsRank"));
nx.gui.setString(this.rankTi3, "", nx.text.getKey("DpsDmgVal"));
} else if (res_data.type == 2) {
nx.gui.setString(this.maxTi, "", nx.text.getKey("batMaxCure"));
nx.gui.setString(this.rankTi, "", nx.text.getKey("CureRank"));
nx.gui.setString(this.rankTi3, "", nx.text.getKey("DpsCureVal"));
}
}
//獎勵和積分
var awards = this.chal_data.data_get_info;
var camp_id = info.camp_id;
var pushs = [];
var is_allow_get = false; //有一個就能領取
for (var i = 1; i <= 7; i++) {
var aCfg = awards[camp_id + "_" + i];
if (aCfg) {
pushs.push(aCfg.reward[0]);
var scroe = cc.js.formatStr(nx.text.getKey("lab_money_tip_w"), aCfg.num / 10000);
nx.gui.setString(this.scores, String(i), scroe);
var get_data = info.rewards[i - 1];
for (var a in info.rewards) {
if (info.rewards[a].id == i) {
get_data = info.rewards[a];
break;
}
}
if (get_data && get_data.status == 1) {
is_allow_get = true;
nx.gui.setColor(this.scores, String(i), new cc.Color(0, 252, 255));
} else if (get_data && get_data.status == 2) {
nx.gui.setColor(this.scores, String(i), new cc.Color(255, 255, 255));
nx.gui.setString(this.scores, String(i), nx.text.getKey("Got"));
} else {
nx.gui.setColor(this.scores, String(i), new cc.Color(255, 255, 255));
}
}
}
this.awards.rebuild(pushs);
nx.gui.setActive(this.getBtn, "", is_allow_get);
},
freshRanks: function freshRanks(data) {
if (nx.dt.objEmpty(data)) return;
//先設置簡單榜單
var info_data = this.chal_data.data_info[this.data.camp_id];
this.setMyRank(data.my_idx, data.name, data.my_val1);
nx.bridge.NodeChidrenDestroy(this.rankList);
for (var i = 0; i < 3; i++) {
var rank_data = data.rank_list[i];
if (rank_data) {
var item = cc.instantiate(this.rankItem);
item.parent = this.rankList;
item.active = true;
item.x = 0;
nx.gui.setActive(item, String(rank_data.idx), true);
nx.gui.setString(item, "name", rank_data.name);
nx.gui.setString(item, "dmg", rank_data.val1);
if (info_data) {
if (info_data.type == 1) {
nx.gui.setColor(item, "dmg", new cc.Color(255, 105, 46));
} else if (info_data.type == 2) {
nx.gui.setColor(item, "dmg", new cc.Color(80, 238, 2));
}
}
}
}
},
setMyRank: function setMyRank(myidx, myname, my_val1) {
nx.gui.setString(this.rankSelf, "name", myname);
if (myidx == 0) {
nx.gui.setString(this.rankSelf, "rank", nx.text.getKey("Rank0"));
nx.gui.setString(this.rankSelf, "dmg", 0);
} else {
nx.gui.setString(this.rankSelf, "rank", myidx);
nx.gui.setString(this.rankSelf, "dmg", my_val1);
}
},
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 {
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 {
return nx.tbox("lab_ladder_controller_tip3");
}
},
onOpenRank: function onOpenRank() {
var data = this.mod.vget("LimitChallengeRanks");
if (nx.dt.objEmpty(data)) return;
nx.bridge.createPanel("WndActLimitChalRank", {
list: data.rank_list,
camp_id: this.data.camp_id,
config: this.chal_data
});
},
onGetAward: function onGetAward() {
var _this4 = this;
if (this.data.camp_id) {
this.mod.reqAward(this.data.camp_id, function (_data) {
if (_data) {
_this4.mod.reqLimitData(_this4.data.camp_id);
_this4.mod.reqRank(_this4.data.camp_id);
}
});
}
},
onClickRule: function onClickRule() {
var TC = TipsController.getInstance();
if (TC) {
var config = this.chal_data.data_explain[1];
TC.showTextPanel(null, config.desc);
}
}
});
cc._RF.pop();