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