Files
fc/dev/project/assets/Scripts/mod/pvp/rank/cmp/cmp.pvprank.task.js
T

115 lines
3.1 KiB
JavaScript
Raw Normal View History

2026-05-23 22:10:14 +08:00
const BridgeWindow = require("bridge.window");
const Mod = require( "pvprank.mod" );
cc.Class({
extends: BridgeWindow,
properties: {
nodTasks: { type: cc.Node, default: null }
},
onLoad(){
this.mod = Mod.getInstance();
if( !this.mod ){
this.delayClose();
return;
}
this.rfg = game.configs.arena_elite_data.data_reward;
let count = Object.keys( this.rfg ).length;
nx.gui.gocChildren( this.nodTasks, "", count );
this.vbind( [
[ "PvpRankTask", this.freshTask.bind( this ) ]
] );
},
freshTask: function( _data ){
/****
{"win_num":0,"all_num":1,"list":
[{"id":6,"award_status":0},
{"id":5,"award_status":0},
{"id":4,"award_status":0},
{"id":3,"award_status":0},
{"id":2,"award_status":0},
{"id":1,"award_status":1}]}
*/
// if( !_data ){
// return;
// }
let list = _data ? _data.list :[];
if( nx.dt.arrNEmpty( list ) ){
list.sort( Utils.tableLowerSorter([ "getstatus"] ) );
}
let chd = this.nodTasks.children;
for (let i = 0; i < chd.length; i++) {
let nod = chd[i];
let info = {};
let cfgg = this.rfg[i+1];
if( nx.dt.arrNEmpty( list ) ){
info = list[i];
cfgg = this.rfg[info.id];
}
let rcmp = nx.gui.getComponent( nod, "rewards", "cmp.common.itemlayout" );
if( rcmp ){
rcmp.rebuild( cfgg.reward );
}
let leftprog = "";
if( _data ){
if( cfgg.type == 0 ){
if( _data.all_num < cfgg.num ){
leftprog = nx.text.format( "PvpRProgColorN", _data.all_num );
}else{
leftprog = nx.text.format( "PvpRProgColor", _data.all_num );
}
}else{
if( _data.win_num < cfgg.num ){
leftprog = nx.text.format( "PvpRProgColorN", _data.win_num );
}else{
leftprog = nx.text.format( "PvpRProgColor", _data.win_num );
}
}
}
nx.gui.setString( nod, "title/prog", nx.text.format( "PvpRProg", leftprog, cfgg.num ) );
nx.gui.setString( nod, "title/desc", cfgg.desc );
nx.gui.setActive( nod, "get", nx.dt.objNEmpty( info ) && info.award_status == 1 );
nx.gui.setActive( nod, "got", nx.dt.objNEmpty( info ) && info.award_status == 2 );
nx.gui.setActive( nod, "goto", nx.dt.objEmpty( info ) || info.award_status == 0 );
}
// for (let i = 0; i < list.length; i++) {
// let info = list[i];
// }
},
onTouchGoto: function(){
this.close();
},
onTouchGet: function(){
this.mod.reqGetTaskAward();
},
});