380 lines
10 KiB
JavaScript
380 lines
10 KiB
JavaScript
"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(); |