Files
fc/dev/project/library/imports/a6/a630fb98-3824-445c-bfa0-5cae58a51444.js
2026-05-24 10:21:26 +08:00

242 lines
6.7 KiB
JavaScript

"use strict";
cc._RF.push(module, 'a630fuYOCREXL+gXK5YpRRE', 'cmp.act.seven');
// Scripts/mod/acts/sevengoal/cmp/cmp.act.seven.js
"use strict";
/******************************************************************
*
* 七日周期任务
*
******************************************************************/
var ActPopup = require("act.popup.base");
var PathTool = require("pathtool");
var NxExpand = require("nx.fx.sv.expand");
var ItemLay = require("cmp.common.itemlayout");
var TipsController = require("tips_controller");
var SevenMod = require("act.seven.mod");
var NxSpine = require("nx.fx.spine");
var FxTog = require("nx.fx.togs");
cc.Class({
"extends": ActPopup,
properties: {
titles: {
"default": [],
type: [cc.Node]
},
list: {
"default": null,
type: NxExpand
},
expBar: {
"default": null,
type: cc.ProgressBar
},
expIco: {
"default": null,
type: cc.Node
},
expLev: {
"default": null,
type: cc.Node
},
expScore: {
"default": null,
type: cc.Node
},
curList: {
"default": null,
type: ItemLay
},
nextList: {
"default": null,
type: ItemLay
},
daysTogs: {
"default": null,
type: cc.Node
// type:FxTog
},
togs: {
"default": null,
type: FxTog
},
lastTime: {
"default": null,
type: cc.Node
},
roleSp: {
"default": null,
type: NxSpine
}
},
// 初始化
onLoad: function onLoad() {
this.mod = SevenMod.getInstance();
this.goals_data = game.configs.day_goals_new_data;
this.task_index = 0;
this.cur_day = 0;
this.select_day = 0;
this.togs.posTog = this.onTogMenu.bind(this);
// 活动监听
this.mod.vbind(this, [["sevenGoalData", this.freshInfos.bind(this)]]);
},
onTogMenu: function onTogMenu(_index) {
if (_index >= this.cur_day) {
nx.tbox("Locked");
return this.togs.togTo(_index - 1);
}
this.select_day = _index + 1;
var data = this.mod.vget("sevenGoalData");
this.setTaskList(this.select_day, data.list);
},
onOpenConfigs: function onOpenConfigs(_params) {
var _this = this;
this._super(_params);
this.mod.send13604();
this.mod.send13607();
var cds = this.daysTogs.children;
for (var i = 0; i < cds.length; i++) {
var tog = cds[i];
if (tog) {
nx.gui.setString(tog, "off/txt", cc.js.formatStr(nx.text.getKey("action_str16"), i + 1));
nx.gui.setString(tog, "on/txt", cc.js.formatStr(nx.text.getKey("action_str16"), i + 1));
}
}
this.scheduleOnce(function () {
var res_path1 = PathTool.getSpinePath("H30059", "show", false);
_this.roleSp.load(res_path1, function (_e) {
if (!_e) {
_this.roleSp.action("action1", true);
} else {
_this.roleSp.stop();
}
});
}, 0.2);
},
onPreClosed: function onPreClosed() {
this.list.rebuild([]);
this.curList.rebuild([]);
this.nextList.rebuild([]);
// 活动监听解除
if (this.mod) {
this.mod.vunbind(this);
}
},
onSelectTaskType: function onSelectTaskType(_index) {
var idx = Number(_index);
if (idx == this.task_index) return;
this.task_index = idx;
var data = this.mod.vget("sevenGoalData");
this.setTaskList(this.cur_day, data.list);
},
freshInfos: function freshInfos(data) {
if (nx.dt.objEmpty(data)) return;
var lev = this.mod.getLev();
var exp = this.mod.getExp();
this.period = data.period;
//判断一下第几期
nx.gui.setActive(this.titles[0], "", this.period % 2 == 0);
nx.gui.setActive(this.titles[1], "", this.period % 2 == 1);
this.cur_day = data.cur_day;
this.select_day = this.cur_day;
this.togs.togTo(data.cur_day - 1);
var cds = this.daysTogs.children;
for (var i = 0; i < cds.length; i++) {
if (i < data.cur_day) {
//已解鎖
nx.gui.setActive(cds[i], "off/lock", false);
}
}
// let tog = this.daysTogs.children[data.cur_day - 1];
// if(tog){
// nx.gui.setActive(tog,"on",true);
// }
var cfg = this.goals_data.data_make_lev_list[this.period];
nx.gui.setString(this.expLev, "", cc.js.formatStr(nx.text.getKey("LvNumber"), lev));
if (!cfg) return;
var max_exp = cfg[lev + 1] ? cfg[lev + 1].exp : cfg[lev].exp;
nx.gui.setString(this.expScore, "", cc.js.formatStr("<color=#4eff00>%s</color>/%s", exp, max_exp));
//计算进度条,每次都从0开始
var last_exp = 0;
if (cfg[lev - 1]) {
last_exp = cfg[lev - 1].exp;
}
this.expBar.progress = (exp - last_exp) / (max_exp - last_exp);
//获取积分图标
var item_id = this.goals_data.data_circle_exp_item[this.period].item_id;
nx.bridge.setIcon(this.expIco, "", item_id);
//设置当前和下级奖励
this.setLevReward(lev);
//设置任务
this.setTaskList(this.cur_day, data.list);
//設置時間
nx.gui.setCdTxt(this.lastTime, "", data.end_time - client.socket.getTime());
},
setLevReward: function setLevReward(lev) {
var cur_awards = [];
var next_awards = [];
var cfg = this.goals_data.data_make_lev_list[this.period];
if (!cfg) return;
cur_awards = cfg[lev].reward;
if (cfg[lev + 1]) {
next_awards = cfg[lev + 1].reward;
}
this.curList.rebuild(cur_awards);
this.nextList.rebuild(next_awards);
},
setTaskList: function setTaskList(curDay, tasks) {
if (nx.dt.arrEmpty(tasks)) return;
//需要区分任务和累充任务 0 1
var cfg = {};
if (this.task_index == 0) {
var groups = this.goals_data.data_group_list[this.period];
for (var gid in groups) {
if (groups[gid].day == curDay) {
cfg[gid] = groups[gid];
}
}
} else {
cfg = this.goals_data.data_charge_list[this.period];
}
if (nx.dt.objEmpty(cfg)) return;
var list1 = [];
var list2 = [];
var list3 = [];
for (var i = 0; i < tasks.length; i++) {
if (cfg[tasks[i].id]) {
tasks[i].cfgs = cfg[tasks[i].id];
if (tasks[i].finish == 1) {
list1.push(tasks[i]);
} else if (tasks[i].finish == 0) {
list2.push(tasks[i]);
} else if (tasks[i].finish == 2) {
list3.push(tasks[i]);
}
}
}
var list = list1.concat(list2.concat(list3));
this.list.rebuild(list);
},
onClickRule: function onClickRule() {
var TC = TipsController.getInstance();
if (TC) {
var key = this.period % 2 == 0 ? "tips" : "tips_1";
var config = this.goals_data.data_constant[key];
TC.showTextPanel(null, config.desc);
}
},
onClickLevAward: function onClickLevAward() {
nx.bridge.createPanel("WndActSevenGoalAward", {
mod: this.mod,
period: this.period
});
}
});
cc._RF.pop();