Files
fc/dev/project/library/imports/56/56d6fc35-5359-456e-a09d-4314f7dbf3d0.js
2026-05-24 10:21:26 +08:00

128 lines
3.5 KiB
JavaScript

"use strict";
cc._RF.push(module, '56d6fw1U1lFbqCdQxT32/PQ', 'cmp.daily.item');
// Scripts/mod/task/cmp/cmp.daily.item.js
"use strict";
var SVCItem = require("nx.fx.sv.expand.item");
var ItemLayout = require("cmp.item.layout");
var TaskConst = require("task_const");
var TaskEvent = require("task_event");
var TaskMod = require("task.mod");
var TaskController = require("task_controller");
// 任务状态
var TST = TaskConst.task_status;
cc.Class({
"extends": SVCItem,
properties: {
nodName: {
"default": null,
type: cc.Label
},
nodProg: {
"default": null,
type: cc.ProgressBar
},
lstRewards: {
"default": null,
type: ItemLayout
},
nodOps: {
"default": null,
type: cc.Node
}
},
// 数据重置
rebind: function rebind(_idx, _data, _key) {
// 任务监听解除
this.unbindTask();
this._super(_idx, _data, _key);
// 任务监听
this.bindTask();
// 刷新
this.freshBase();
this.freshStatus();
},
// 任务监听
bindTask: function bindTask() {
if (this.mdata) {
this.binder = this.mdata.bind(TaskEvent.UpdateSingleQuest, this.freshStatus.bind(this));
}
},
// 任务监听解除
unbindTask: function unbindTask() {
if (this.mdata && this.binder) {
this.mdata.unbind(this.binder);
this.binder = null;
}
},
// 刷新基本信息
freshBase: function freshBase() {
var desc = "",
rewards = [];
if (this.mdata) {
desc = this.mdata.getTaskContent();
rewards = this.mdata.config.commit_rewards;
}
// 描述
nx.gui.setString(this.nodName, "", nx.text.getKey(desc));
// 奖励信息
this.lstRewards.rebuild(rewards);
},
// 刷新任务状态
freshStatus: function freshStatus() {
if (!this.mdata) {
nx.gui.setActive(this.nodOps, "goto", false);
nx.gui.setActive(this.nodOps, "get", false);
nx.gui.setActive(this.nodOps, "done", false);
nx.gui.setActive(this.nodProg, "", false);
return;
}
// 操作更新
nx.gui.setActive(this.nodOps, "goto", this.mdata.finish == TST.un_finish);
nx.gui.setActive(this.nodOps, "get", this.mdata.finish == TST.finish);
nx.gui.setActive(this.nodOps, "done", this.mdata.finish == TST.completed);
// 进度更新
if (this.mdata.progress && this.mdata.finish != TST.completed) {
nx.gui.setActive(this.nodProg, "", true);
var prog = this.mdata.progress[0];
var txt = cc.js.formatStr("%s/%s", Utils.getMoneyString(prog.value), Utils.getMoneyString(prog.target_val));
this.nodProg.progress = prog.value / prog.target_val;
nx.gui.setString(this.nodProg, "txt", txt);
}
},
// 点击获得
onTouchGet: function onTouchGet() {
if (!this.mdata || !this.mdata.config || this.mdata.finish != TST.finish) {
return;
}
if (this.mdata.type == TaskConst.type.quest) {
TaskMod.getInstance().requestSubmitTaskChange();
} else if (this.mdata.type == TaskConst.type.feat) {
TaskController.getInstance().reqAchievementReward(this.mdata.id);
}
},
// 点击前往
onTouchGoto: function onTouchGoto() {
if (!this.mdata || !this.mdata.config || this.mdata.finish != TST.un_finish || this.mdata.progress == null) {
return;
}
for (var i in this.mdata.progress) {
var v = this.mdata.progress[i];
if (v.finish == 0) {
nx.bridge.jumper.jump2Window(this.mdata.config.skip_id);
nx.bridge.closePanel("WndTaskDaily");
break;
}
}
}
});
cc._RF.pop();