284 lines
9.1 KiB
JavaScript
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(); |