"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();