Files
fc/dev/project/library/imports/90/90eb7d82-587c-4c28-8229-f912401de2e2.js
2026-05-24 10:21:26 +08:00

284 lines
9.1 KiB
JavaScript

"use strict";
cc._RF.push(module, '90eb72CWHxMKIIp+RJAHeLi', 'cmp.task.main.wnd');
// Scripts/mod/task/cmp/cmp.task.main.wnd.js
"use strict";
/******************************************************************
*
* 任务主界面
*
******************************************************************/
var BridgeWindow = require("bridge.window");
var FxTogs = require("nx.fx.togs");
var TaskController = require("task.mod");
var TaskEvent = require("task_event");
cc.Class({
"extends": BridgeWindow,
properties: {
togMenu: {
"default": null,
type: FxTogs
},
togMenuTask: {
"default": null,
type: FxTogs
},
togMenuTaskInfo: {
"default": null,
type: FxTogs
},
nodEmpty: {
"default": null,
type: cc.Node
},
nodTask: {
"default": null,
type: cc.Node
},
nodOp: {
"default": null,
type: cc.Node
}
},
onLoad: function onLoad() {
this.bindGEvent(TaskEvent.UpdateTaskList, this.freshTask.bind(this));
// Tog监听
this.togMenu.posTog = this.onTogMenu.bind(this);
this.togMenu.togTo(0);
this.activeMenu(0);
this.togMenuTask.posTog = this.onTogMenuTask.bind(this);
this.togMenuTaskInfo.posTog = this.onTogMenuTaskInfo.bind(this);
},
// 重载:参数打开
onOpenConfigs: function onOpenConfigs(_params) {},
onEnable: function onEnable() {
// 视图监听
this.vbind([["TaskInfo", this.onTaskShow.bind(this)]]);
},
onDisable: function onDisable() {
this.vunbind();
},
freshTask: function freshTask() {
// {"id":10001,"name":"指挥官在梦境中遇到了神秘女子,增长了见闻","lev":1,"type":1,"group":0,"group_desc":"第1章","desc":"角色升到10级","progress":[{"cli_label":"evt_levup","target":0,"target_val":10,"param":[],"value":10,"finish":1}],"extra":[],"commit_rewards":[],"res":"","finish":2,"show":1}
this.activeMenu(this.selectOne);
this.activeMenuTask(this.selectTwo);
},
freshLst: function freshLst(_task) {
var _this = this;
var lst = [];
for (var i in _task) {
var task = _task[i];
var data = {
name: i,
task: task
};
lst.push(data);
}
// console.log( JSON.stringify( lst ) + "当前的任务数据" + JSON.stringify( _task ) );
nx.gui.gocChildren(this.togMenuTask, "", lst.length);
var num = 0;
var ccount = 0;
var hideall = 0;
var chd = this.togMenuTask.node.children;
for (var _i = 0; _i < lst.length; _i++) {
var _task2 = lst[_i];
// 设置相关 任务章节名称
nx.gui.setString(chd[_i], "on/type/name", _task2.name);
nx.gui.setString(chd[_i], "off/type/name", _task2.name);
nx.gui.setString(chd[_i], "lock/type/name", _task2.name);
var nod = nx.gui.find(chd[_i], "on/content");
_task2.task.sort(function (a, b) {
return b.finish - a.finish;
});
nx.gui.gocChildren(nod, "", _task2.task.length);
var chds = nod.children;
var connt = 0;
for (var j = 0; j < chds.length; j++) {
var inod = chds[j];
var _data = _task2.task[j];
// let dess = task.task[0].group_desc;
var cmp = inod.getComponent("cmp.main.task.item");
if (_data) {
if (cmp) {
cmp.setData(_data, j);
}
// 判定是否需要显示所有的任务都完成的状态
if (_data.finish == 2 && _data.type == 2) {
num++;
}
// 判定是否需要显示任务
// if( !data.canshow && ( data.type == 2 || data.type == 1 ) &&( data.group_desc && dess && dess == data.group_desc ) ) {
// // console.log( JSON.stringify( data ) + "当前任务是否可以显示--->>>>" + data.canshow );
// // connt++;
// }
}
}
ccount = connt;
nx.gui.setActive(chd[_i], "on/type/done", num >= _task2.task.length);
nx.gui.setActive(chd[_i], "off/type/done", num >= _task2.task.length);
nx.gui.setActive(chd[_i], "on", ccount < _task2.task.length);
nx.gui.setActive(chd[_i], "off", ccount < _task2.task.length);
nx.gui.setActive(chd[_i], "", ccount < _task2.task.length);
if (ccount >= _task2.task.length) {
hideall++;
}
this.canshow = ccount < _task2.task.length;
// console.log( nx.gui.find( chd[ i ] ).active + "支线任务显示状态" + ccount + nx.gui.find( chd[ i ], "on" ).active );
nx.gui.setActive(chd[_i], "lock", ccount >= _task2.task.length);
}
nx.gui.setActive(this.nodEmpty, "", hideall >= lst.length);
// 任务相关 子菜单一级
// this.taskLst.rebuild( lst );
// 引导辅助
if (nx.bridge.plot && nx.bridge.plot.isDoing()) {
this.scheduleOnce(function () {
_this.positionTask1_6();
}, 0.3);
}
this.scheduleOnce(function () {
var cmp = _this.togMenuTask.getComponent(FxTogs);
if (cmp) {
cmp.rebuildTogs();
cmp._freshTogShow();
// this.togMenuTask.togTo(0);
_this.togMenuTask.togTo(0);
_this.activeMenuTask(0);
}
}, 0.1);
},
// 重载:关闭前
onPreClosed: function onPreClosed() {},
// 激活菜单
activeMenu: function activeMenu(_index) {
var TC = TaskController.getInstance();
if (TC) {
var model = TC.getModel();
var allTask = model.getAllTaskInfo();
// console.log( "所有的任务信息主线支线" + JSON.stringify( allTask ) );
this.freshLst(allTask[_index + 1]);
this.selectOne = _index;
}
},
// 激活菜单
activeMenuTask: function activeMenuTask(_index) {
// console.log( "当前点击的任务类型" + _index );
var nod = this.togMenuTask;
var nowSelectNode = nod.node.children[_index];
var cmp = nx.gui.find(nowSelectNode, "on/content").children[0].getComponent("cmp.main.task.item");
// console.log( "当前的数据" + JSON.stringify( cmp.mdata ) );
this.selectTwo = _index;
if (cmp) {
cmp.onTouchfocus();
}
},
// 激活菜单
activeMenuTaskInfo: function activeMenuTaskInfo(_index) {
// console.log( "当前点击的任务具体" + _index );
},
// 背包切换
onTogMenu: function onTogMenu(_index) {
this.activeMenu(parseInt(_index));
},
// 任务类型切换
onTogMenuTask: function onTogMenuTask(_index) {
this.activeMenuTask(parseInt(_index));
},
// 任务类型切换
onTogMenuTaskInfo: function onTogMenuTaskInfo(_index) {
this.activeMenuTaskInfo(parseInt(_index));
},
onTaskShow: function onTaskShow(_task) {
if (_task) {
if (_task.canshow) {
nx.gui.setString(this.nodTask, "desc/txt", _task.name);
nx.gui.setString(this.nodTask, "task/txt2", _task.desc);
var awards = nx.gui.find(this.nodTask, "awards/rewards");
// nx.gui.setActive( )
var cmp = awards.getComponent("cmp.item.layout");
// 任务子菜单 二级奖励显示
cmp.rebuild(_task.commit_rewards);
this.nowTask = _task;
nx.gui.setActive(this.nodOp, "go", _task.finish == 1);
nx.gui.setActive(this.nodOp, "goto", _task.finish == 0 && _task.skip_id > 0);
nx.gui.setActive(this.nodTask, "awards/finished", _task.finish == 2);
nx.gui.setActive(this.nodTask, "desc", _task.type == 1);
}
nx.gui.setActive(this.nodOp.parent, "empty", !_task.canshow);
}
},
onTouchGet: function onTouchGet() {
var TC = TaskController.getInstance();
if (TC) {
TC.requestSubmitTask(this.nowTask.id);
}
},
onTouchGoto: function onTouchGoto() {
// console.log( "当前的任务信息" + JSON.stringify( this.nowTask ) );
var id = this.nowTask.skip_id;
// 道具操作跳转
nx.bridge.jumper.jump2Window(id);
this.close();
},
// ============================================
// 引导辅助
// ============================================
// 任务1-6定位
positionTask1_6: function positionTask1_6() {
nx.wyl = this;
var node = null;
// 总的任务节点
var chd = this.togMenuTask.node.children;
for (var i = 0; i < chd.length; i++) {
var nod = nx.gui.find(chd[i], "on/content");
var chds = nod.children;
for (var j = 0; j < chds.length; j++) {
var inod = chds[j];
var cmp = inod.getComponent("cmp.main.task.item");
if (cmp && cmp.mdata) {
if (cmp.mdata.id == 10002) {
this.select = j;
node = inod;
break;
}
}
}
}
if (!node) {
nx.error("$ParterPage:定位任务1-6失败!");
var _nod = nx.gui.find(chd[0], "on/content");
node = _nod.children[1];
if (!node) {
this.select = 1;
return;
}
}
var cell = nx.gui.find(this, "panel/plot1-6");
var pos = node.convertToWorldSpaceAR(cc.Vec2.ZERO);
cell.position = cell.parent.convertToNodeSpaceAR(pos);
cell.width = node.width;
cell.height = node.height;
},
// 点击切换到1-6任务
onTouchTogTask1_6: function onTouchTogTask1_6() {
var nod = this.togMenuTask;
var nowSelectNode = nod.node.children[0];
var cmp = nx.gui.find(nowSelectNode, "on/content").children[this.select].getComponent("cmp.main.task.item");
if (cmp) {
cmp.onTouchfocus();
}
}
});
cc._RF.pop();