184 lines
5.7 KiB
JavaScript
184 lines
5.7 KiB
JavaScript
"use strict";
|
|
cc._RF.push(module, '03f1dibZQVDqJfCXMc+o/Zm', 'cmp.campfight.main');
|
|
// Scripts/mod/pvp/campfight/cmp/cmp.campfight.main.js
|
|
|
|
"use strict";
|
|
|
|
var CampfightConst = require("campfight.const");
|
|
var CampfightMod = require("campfight.mod");
|
|
var BridgeWindow = require("bridge.window");
|
|
var TipsController = require("tips_controller");
|
|
cc.Class({
|
|
"extends": BridgeWindow,
|
|
properties: {
|
|
view: {
|
|
//功能頁
|
|
"default": null,
|
|
type: cc.Node
|
|
},
|
|
statusNd: {
|
|
//狀態節點
|
|
"default": null,
|
|
type: cc.Node
|
|
},
|
|
timeNd: {
|
|
//時間節點
|
|
"default": null,
|
|
type: cc.Node
|
|
},
|
|
endNd: {
|
|
"default": null,
|
|
type: cc.Node
|
|
},
|
|
rankNd: {
|
|
"default": null,
|
|
type: cc.Node
|
|
},
|
|
selectNd: {
|
|
"default": null,
|
|
type: cc.Node
|
|
}
|
|
},
|
|
// LIFE-CYCLE CALLBACKS:
|
|
onLoad: function onLoad() {
|
|
this.mod = CampfightMod.getInstance();
|
|
this.bindGEvent(CampfightConst.EVT_CAMP_MAIN, this.updateMian.bind(this));
|
|
this.bindGEvent(CampfightConst.EVT_CAMP_SETRANK, this.setCurRankNum.bind(this));
|
|
this.bindGEvent(CampfightConst.EVT_CAMP_STATUS_CHANGE, this.updateStatus.bind(this));
|
|
},
|
|
updateStatus: function updateStatus(status) {},
|
|
setEmptyPanel: function setEmptyPanel() {
|
|
nx.bridge.NodeChidrenDestroy(this.view);
|
|
this.endNd.active = true;
|
|
this.selectNd.active = false;
|
|
this.statusNd.active = false;
|
|
this.timeNd.active = false;
|
|
var cds = this.selectNd.children;
|
|
for (var i in cds) {
|
|
if (cds[i]) {
|
|
cds[i].active = false;
|
|
}
|
|
}
|
|
cds[0].active = true;
|
|
},
|
|
//消息監聽
|
|
updateMian: function updateMian(data) {
|
|
if (nx.dt.objEmpty(data)) {
|
|
return nx.tbox("CampFitNoOpen");
|
|
}
|
|
if (data.is_open == 0) {
|
|
//活動未開放
|
|
nx.gui.setString(this.statusNd, "txt", nx.text.getKey("CampFitNoOpen"));
|
|
this.setEmptyPanel();
|
|
return nx.tbox("CampFitNoOpen");
|
|
}
|
|
if (data.status == 0) {
|
|
//活動期間休賽階段
|
|
nx.gui.setString(this.statusNd, "txt", nx.text.getKey("CampFitEmp"));
|
|
this.setEmptyPanel();
|
|
return;
|
|
}
|
|
this.endNd.active = false;
|
|
this.selectNd.active = true;
|
|
this.statusNd.active = true;
|
|
this.timeNd.active = true;
|
|
this.setStatusTime(data.status, data.step_status_time);
|
|
//設置頁面
|
|
this.setStatusPanel(data.status);
|
|
//設置範圍
|
|
if (data.period == 1) {
|
|
nx.gui.setActive(this.selectNd, "1", true);
|
|
nx.gui.setActive(this.selectNd, "2", true);
|
|
nx.gui.setActive(this.selectNd, "3", true);
|
|
} else if (data.period == 3) {
|
|
nx.gui.setActive(this.selectNd, "4", true);
|
|
nx.gui.setActive(this.selectNd, "5", true);
|
|
} else {
|
|
var cds = this.selectNd.children;
|
|
for (var i in cds) {
|
|
if (cds[i]) {
|
|
cds[i].active = true;
|
|
}
|
|
}
|
|
}
|
|
},
|
|
setCurRankNum: function setCurRankNum(rank_num) {
|
|
if (!rank_num) return;
|
|
nx.gui.setString(this.timeNd, "rank_num", cc.js.formatStr(nx.text.getKey("CampFitCurNum"), rank_num));
|
|
},
|
|
onOpenConfigs: function onOpenConfigs() {
|
|
this.mod.setMainPanel(true);
|
|
this.mod.reqMainData();
|
|
},
|
|
onPreClosed: function onPreClosed() {
|
|
this.mod.setMainPanel(false);
|
|
},
|
|
setStatusTime: function setStatusTime(status, time) {
|
|
//pve報名挑戰階段
|
|
nx.gui.setActive(this.statusNd, "txt", true);
|
|
nx.gui.setActive(this.statusNd, "last_time", false);
|
|
nx.gui.setActive(this.timeNd, "clock", true);
|
|
nx.gui.setActive(this.timeNd, "txt", true);
|
|
nx.gui.setActive(this.timeNd, "rank_num", false);
|
|
if (status == 1 || status == 2) {
|
|
nx.gui.setString(this.statusNd, "txt", nx.text.getKey("CampFitPve"));
|
|
if (status == 2) {
|
|
nx.gui.setString(this.statusNd, "txt", nx.text.getKey("CampFitPve2"));
|
|
}
|
|
nx.gui.setCdTxt(this.timeNd, "txt", time);
|
|
} else if (status == 3 || status == 4) {
|
|
//公示階段和佈陣準備
|
|
// nx.gui.setString(this.statusNd,"txt",nx.text.getKey("CampFitForm"));
|
|
// nx.gui.setCdTxt(this.timeNd,"txt",time - client.socket.getTime());
|
|
nx.gui.setActive(this.statusNd, "txt", false);
|
|
nx.gui.setActive(this.statusNd, "last_time", true);
|
|
nx.gui.setActive(this.timeNd, "clock", false);
|
|
nx.gui.setActive(this.timeNd, "txt", false);
|
|
nx.gui.setActive(this.timeNd, "rank_num", true);
|
|
nx.gui.setCdTxt(this.statusNd, "last_time/2", time);
|
|
// if(status == 4){
|
|
// nx.tbox("CampFitFormTips");
|
|
// }
|
|
} else if (status == 5) {
|
|
nx.gui.setActive(this.statusNd, "txt", false);
|
|
nx.gui.setActive(this.statusNd, "last_time", true);
|
|
nx.gui.setActive(this.timeNd, "clock", false);
|
|
nx.gui.setActive(this.timeNd, "txt", false);
|
|
nx.gui.setActive(this.timeNd, "rank_num", true);
|
|
nx.gui.setCdTxt(this.statusNd, "last_time/2", time);
|
|
} else {
|
|
nx.gui.setString(this.statusNd, "txt", nx.text.getKey("CampFitPve2"));
|
|
}
|
|
},
|
|
setStatusPanel: function setStatusPanel(status) {
|
|
var _this = this;
|
|
//先關閉所有界面
|
|
nx.bridge.NodeChidrenDestroy(this.view);
|
|
// let cds = this.view.children;
|
|
// for(let i in cds){
|
|
// if(cds[i]){
|
|
// nx.gui.setActive(cds[i],"",false);
|
|
// }
|
|
// }
|
|
|
|
var view_path = CampfightConst.StatusToView[status];
|
|
if (!view_path) return;
|
|
nx.res.loadPrefab(view_path, function (_err, _data) {
|
|
if (_err) {
|
|
return;
|
|
}
|
|
var node = cc.instantiate(_data);
|
|
node.parent = _this.view;
|
|
node.active = true;
|
|
});
|
|
},
|
|
onClickRule: function onClickRule() {
|
|
var explain = game.configs.arena_camp_data.data_explain;
|
|
TipsController.getInstance().showDetailPanel(explain);
|
|
},
|
|
onClickRank: function onClickRank() {
|
|
nx.bridge.createPanel("WndCampfightRank");
|
|
}
|
|
});
|
|
|
|
cc._RF.pop(); |