"use strict"; cc._RF.push(module, 'a46fefnApJNTZY8nU3NVTxE', 'cmp.act.training7'); // Scripts/mod/acts/training7/cmp.act.training7.js "use strict"; /****************************************************************** * * 七日特训 * ******************************************************************/ var ActPopup = require("act.popup.base"); var FxSVC = require("nx.fx.sv.expand"); var NxTog = require("nx.fx.togs"); var ActEvt = require("action_event"); var TipsController = require("tips_controller"); var ActTrainingMod = require("act.training7.mod"); var PathTool = require("pathtool"); var NxSpine = require("nx.fx.spine"); var FID = require("bridge.function.ids"); var themeMod = require("acts.mod"); cc.Class({ "extends": ActPopup, properties: { roleSp: { "default": null, type: NxSpine }, //倒计时 endClock: { "default": null, type: cc.Node }, //最终大奖 bestItem: { "default": null, type: cc.Node }, itemList: { "default": null, type: cc.Node }, fabGift: { "default": null, type: cc.Node }, //縂點數 totalScore: { "default": null, type: cc.Label }, //分數記錄 score: { "default": null, type: cc.Node }, //激活點數 activeSc: { "default": null, type: cc.Node }, //點數進度條 scoreBar: { "default": null, type: cc.ProgressBar }, DayTogs: { "default": null, type: cc.Node }, togGroup: { "default": null, type: cc.ToggleContainer }, TaskTogs: { "default": null, type: NxTog }, taskList: { "default": null, type: FxSVC }, shopNd: { "default": null, type: cc.Node }, shopList: { "default": null, type: cc.Node }, shopItem: { "default": null, type: cc.Node } }, // 初始化 onLoad: function onLoad() { this.mod = ActTrainingMod.getInstance(); this.upstar_data = game.configs.holiday_upstars_data; this.items = {}; this.buyItems = {}; this.currentDay = 1; this.initCurrentDay = 1; this.selectDay = 1; this.task_type = 0; this.TaskTogs.posTog = this.onTogTask.bind(this); }, onOpenConfigs: function onOpenConfigs(_params) { this._super(_params); this.bindInitEvt(); this.TaskTogs.togTo(0); this.bindChain(); this.mod.sender13601(); this.setRoleEft(); }, setRoleEft: function setRoleEft() { var _this = this; var role = gdata(this.mod.data.config, "data_constant").models_id.desc; var res_path = PathTool.getSpinePath(role, "show", false); this.roleSp.load(res_path, function (_e) { if (_e) { _this.roleSp.stop(); } else { _this.roleSp.action("action1", true); } }); }, bindChain: function bindChain() { var nds = this.DayTogs.children; for (var i = 0; i < nds.length; i++) { var dot = nx.gui.getComponent(nds[i], "tip", "nx.vb.visible"); if (dot) { if (this.mod.tipKeys()[i]) { var key = this.mod.getTipKey(this.mod.tipKeys()[i]); dot.setTarget(nx.mTip, key); } } } }, bindInitEvt: function bindInitEvt() { //初始化更新 this.bindGEvent(ActEvt.UPDATE_SEVENT_GOAL, this.upSevenGoals.bind(this)); //领取奖励 this.bindGEvent(ActEvt.UPDATE_SEVENT_GET, this.getTargetGoal.bind(this)); }, onPreClosed: function onPreClosed() { //清除旧的 nx.bridge.NodeChidrenDestroy(this.itemList); if (this.finalGift) { this.finalGift.destroy(); } nx.bridge.NodeChidrenDestroy(this.shopList); this.finalGift = null; this.items = {}; this.buyItems = {}; }, close: function close() { this._super(); //判断下是不是要回到openserver var needShow = cc.sys.localStorage.getItem("needBackOpenServerAct"); if (needShow == 1) { //cc.sys.localStorage.removeItem("needBackOpenServerAct") nx.bridge.createPanel("WndOpenServer"); } }, onTogDay: function onTogDay(_e, _index) { var day = Number(_index); if (this.selectDay == day) return; if (day > this.currentDay) { this.togGroup.toggleItems[this.selectDay - 1].isChecked = true; return nx.tbox("lab_action_seven_goal_window_tip1"); } this.selectDay = day; this.upDaysTask(); }, onTogTask: function onTogTask(_index) { if (this.task_type == _index) return; this.task_type = _index; this.upDaysTask(); }, upSevenGoals: function upSevenGoals(data) { this.currentDay = data.cur_day; this.initCurrentDay = data.cur_day; // this.selectDay = data.cur_day; nx.gui.setCdTxt(this.endClock, "", data.end_time); //处理点数奖励 this.upRewardGifts(); //更新点数 this.upScores(data.num); //更新任務 this.upDaysTask(); //設置解鎖狀態 this.upClockDayBtns(); }, getTargetGoal: function getTargetGoal(data) { //先排序 var index = 1; if (data.type == 1) { var limit_list = this.mod.getSevenGoalWelfareList(this.selectDay); for (var _i in limit_list) { if (limit_list[_i].goal_id = data.id) { index = _i; break; } } this.mod.updataGoalWelfareList(data.day_type, index, data.status); this.addScore(data.day_type, data.type, data.id); } else if (data.type == 2) { var task_list = this.mod.getServerGrowListData(this.selectDay - 1); for (var j in task_list) { if (task_list[j].goal_id = data.id) { index = j; break; } } this.mod.updataGrowListData(data.day_type - 1, index, data.status); this.addScore(data.day_type, data.type, data.id); } else if (data.type == 4) { //商店不需要积分 var half_list = this.mod.getHalfGiftList(data.day_type); index = 1; for (var i in half_list) { if (half_list[i].day == data.id) { index = i; break; } } this.mod.updataHalfListData(data.day_type, index, data.status); } else if (data.type == 5) { this.upRewardGifts(); } //重新刷新 this.upDaysTask(); }, addScore: function addScore(day, type, id) { if (!day || !type || !id) { return; } var data_list = null; var goal_data = {}; if (type == 2) { data_list = this.mod.getWalfareGrowUpData(day - 1); } else { data_list = this.mod.getWalfareData(day); } for (var i in data_list) { if (id == data_list[i].goal_id) { goal_data = data_list[i]; break; } } //刷新分数 var last_score = Number(this.totalScore.string); this.upScores(last_score + goal_data.award2); }, upRewardGifts: function upRewardGifts() { var all_target = this.mod.getBoxRewardData(); for (var i = 0; i < 6; i++) { var data = all_target[i]; if (data) { var item = this.items[i]; if (!item) { item = cc.instantiate(this.fabGift); item.parent = this.itemList; item.y = 0; item.scale = 0.8; this.items[i] = item; } var cmp = nx.gui.getComponent(item, "", "cmp.item.base"); if (cmp) { cmp.setGoal(data); cmp.setData(data.award[0]); } } } var SevData = all_target[6]; if (!nx.dt.objEmpty(SevData)) { if (!this.finalGift) { this.finalGift = cc.instantiate(this.fabGift); this.finalGift.parent = this.bestItem; this.finalGift.x = 0; this.finalGift.y = 0; } var bestCmp = nx.gui.getComponent(this.finalGift, "", "cmp.item.base"); if (bestCmp) { bestCmp.setGoal(SevData); bestCmp.setData(SevData.award[0]); } } }, upScores: function upScores(score) { this.totalScore.string = score; var all_target = this.mod.getBoxRewardData(); // if( nx.dt.objEmpty( all_target ) ){ // return; // } for (var i = 0; i < all_target.length; i++) { var nd = nx.gui.find(this.score, String(i + 1)); if (nd) { var data = all_target[i]; if (!nx.dt.objEmpty(data)) { nx.gui.setString(nd, "exp", data.goal); if (score >= data.goal) { nx.gui.setActive(this.activeSc, String(i + 1), true); } } } } if (all_target[6]) { //總進度 var max_target = all_target[6].goal; this.scoreBar.progress = score / max_target; } }, upDaysTask: function upDaysTask() { this.taskList.node.active = false; this.shopNd.active = false; if (this.task_type < 2) { //任務列表 this.taskList.node.active = true; if (this.task_type == 0) { //基礎任務 var task_list = this.mod.getServerGrowListData(this.selectDay - 1); this.mod.sortItemList(task_list); this.taskList.svcKey = "data_growthtarget"; this.taskList.rebuild(task_list); } else { //限時任務 var limit_list = this.mod.getSevenGoalWelfareList(this.selectDay); this.mod.sortItemList(limit_list); this.taskList.svcKey = "data_welfarecollection"; this.taskList.rebuild(limit_list); } } else { //商店 this.shopNd.active = true; var half_list = this.mod.getWelfareHalfData(this.selectDay); this.updateShopBuy(half_list); } }, upClockDayBtns: function upClockDayBtns() { var cdn = this.DayTogs.children; for (var i = 0; i < cdn.length; i++) { var tog = cdn[i]; if (this.currentDay >= i + 1) { var off = nx.gui.find(tog, "off"); nx.gui.setActive(off, "lock", false); } } }, updateShopBuy: function updateShopBuy(datas) { for (var i in datas) { var data = datas[i]; var item = this.buyItems[i]; if (!item) { item = cc.instantiate(this.shopItem); item.parent = this.shopList; item.y = 0; this.buyItems[i] = item; } var cmp = nx.gui.getComponent(item, "", "cmp.act.training7.buy"); cmp.setData(data); } }, // 规则说明 onTouchTip: function onTouchTip() { var TC = TipsController.getInstance(); if (TC) { var txt = game.configs.day_goals_data.data_drama_explain[1]; TC.showTextPanel("tip", txt.desc); } } }); cc._RF.pop();