Files
fc/dev/project/assets/Scripts/mod/mainui/cmp/cmp.main.ui.left.js
T
2026-05-23 22:10:14 +08:00

209 lines
6.8 KiB
JavaScript

/******************************************************************
* Copyright(C) 2019 - 2020 Nx Studio
*
* 主界面跳转触发 按照新改版的逻辑进行处理
*
*
******************************************************************/
const TaskController = require( "task.mod" );
const TaskConst = require( "task_const" );
const TaskEvent = require( "task_event" );
const FID = require( "bridge.function.ids" );
cc.Class( {
extends: cc.Component,
properties: {
nodItem: {
default: null,
type: cc.Node,
},
nodTip: {
default: null,
type: cc.Node,
}
},
onLoad: function(){
gcore.GlobalEvent.bind( TaskEvent.UpdateTaskList,this.onFreshTask.bind( this) );
nx.gui.setActive( this, "ico", false );
},
onEnable: function(){
this.onFreshTask();
this.onTouchTask();
},
onFreshTask: function( _task ){
/// 默認顯示的是 戰鬥任務相關---- 10
let model = TaskController.getInstance().getModel();
let self = this;
let allTask = model.getAllTaskInfo();
let lst = [];
let main = [];
let battleTask = [];
let plotTasks = [];
let showtitle = "";
if( allTask ){
let maintasks = allTask[1]; // 雜項任務
let diff = allTask[2]; // 親密度培養任務
let battle_task = allTask[10]; // 副本戰鬥任務
let plotTask = allTask[11]; // 引導任務
let total = 0;
let now = 0;
let title = "";
let canshow = false;
this.select = 0;
nx.gui.setActive( this.nodItem, "tip", false );
// nx.gui.setActive( this.nodTip, "", false );
let dealGroups = function( _data, _groups ){
let group = _groups;
let datas = _data;
for( let i in datas ) {
let task = datas[ i ];
let showTasks = [];
task.forEach( _task =>{
if( _task.canshow ){
showTasks.push( _task );
}
} )
let data = {
name: i,
task: showTasks,
}
group.push( data );
}
return group;
}
main = dealGroups( maintasks, main );
lst = dealGroups( diff, lst );
battleTask = dealGroups( battle_task, battleTask );
plotTasks = dealGroups( plotTask, plotTasks );
let dealShowTask = function( _data ){
let main = _data;
for (let m = 0; m < main.length; m++) {
let task = main[m];
// main.forEach( )
let tasklst = task.task;
tasklst.sort( ( a, b ) => {
return b.finish - a.finish;
} )
for (let k = 0; k < tasklst.length; k++) {
let titem = tasklst[k];
if( titem.show == 1 ){
if( titem.type == 10 ){
now = now == 0 ? k : now;
total = total == 0 ? tasklst.length : total;
title = title == "" ? task.name : title;
showtitle = nx.text.getKey( "BattlePlot" );
self.select = 2;
}else{
if( nx.dt.strEmpty( showtitle ) ){
now = now == 0 ? k : now;
total = total == 0 ? tasklst.length : total;
title = title == "" ? nx.text.getKey( "BattlePlot" + titem.type ) : title;
showtitle = nx.text.getKey( "BattlePlot" + titem.type );
}
// self.select = 2;
}
if( titem.finish == 1 ){
nx.gui.setActive( self.nodItem, "tip", true );
// nx.gui.setActive( self.nodTip, "", true );
canshow = true;
}
switch( titem.type ){
case 1 : { nx.mTip.openTip( "tipTask.main", titem.finish );};break;
case 2 : { nx.mTip.openTip( "tipTask.branch", titem.finish );};break;
case 10 : { nx.mTip.openTip( "tipTask.battle", titem.finish );};break;
case 11 : { nx.mTip.openTip( "tipTask.plot", titem.finish ); };break;
}
break;
}
}
}
}
dealShowTask( battleTask );
dealShowTask( main );
dealShowTask( lst );
dealShowTask( plotTasks );
// if( total == 0 ){
// this.select = 1;
// dealShowTask( lst );
// nx.mTip.openTip( "tipTask.branch", canshow );
// // showtitle = nx.text.getKey( "BranchTask" );
// }
nx.gui.setString( this.nodItem, "title", title );
nx.gui.setActive( this.nodItem, "state", false );
nx.gui.setString( this.nodItem, "desc", showtitle );
nx.gui.setString( this.nodItem, "txt", "(" + ( now + 1 ) + "/" + total + ")" );
}
// console.log( now + "所有的任务相关" + total );
},
onTouchTask: function(){
// let anim = nx.gui.getComponent( this, "task", cc.Animation );
// anim.play('task_show');
// nx.gui.setActive( this, "ico", false );
},
onTouchTaskHide: function(){
let anim = nx.gui.getComponent( this, "task", cc.Animation );
anim.play('task_hide');
nx.gui.setActive( this, "ico", true );
},
onTouchTaskMore: function(){
if( nx.bridge.plot && nx.bridge.plot.isDoing() ){
nx.bridge.jumper.jump2Window( FID.Task, 0 );
}else{
nx.bridge.jumper.jump2Window( FID.Task, this.select );
}
// TaskController.getInstance().openMainTaskWindow( true );
},
} );