264 lines
7.9 KiB
JavaScript
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(); |