Files
fc/dev/project/library/imports/a4/a46fe7e7-0292-4d4d-963c-9d4dcd553c44.js
T
2026-05-24 10:21:26 +08:00

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