Files
fc/dev/project/assets/Scripts/mod/rank/cmp.rank.more.wnd.js
T
2026-05-23 22:10:14 +08:00

267 lines
10 KiB
JavaScript

const BridgeWindow = require("bridge.window");
const FxSVC = require("nx.fx.sv.expand");
const RankEvent = require("rank_event");
const RankController = require("rank_controller");
const ArenaEvent = require("arena_event");
const RoleController = require("role_controller");
const RankConstant = require("rank_constant");
const ArenaController = require( "arena_controller" );
const GuildBossController = require( "guildboss_controller" );
const GuildbossEvent = require("guildboss_event");
cc.Class({
extends: BridgeWindow,
properties: {
nodDetailLst: {
default : null,
type : FxSVC,
},
// 排行榜列表标题栏
rankLstTitle: {
default : null,
type : cc.Node,
},
nodSelf: {
default : null,
type : cc.Node,
},
nodEmpty: {
default : null,
type : cc.Node,
},
fab_head: {
default : null,
type : cc.Prefab,
},
},
onLoad: function () {
this.bindGEvent( ArenaEvent.UpdateLoopChallengeRank,this.freshDetail.bind(this) );
this.bindGEvent( RankEvent.RankEvent_Get_Rank_data, this.updateRankListInfo.bind(this));
this.bindGEvent( GuildbossEvent.UpdateGuildDunRank, this.updateRankListInfo.bind( this ) );
},
onOpenConfigs: function( _params ) {
let RC = RankController.getInstance();
this.fromOther = _params.type;
let ind = parseInt( this.fromOther );
this.camp_id = _params.camp_id;
RC.send_12901( ind, false);
if( ind == RankConstant.RankType.drama || ind == RankConstant.RankType.tower || ind == RankConstant.RankType.power || ind == RankConstant.RankType.actNewHero
|| ind == RankConstant.RankType.endless || ind == RankConstant.RankType.rank_role_lev || ind == RankConstant.RankType.relicexpolre ){
RC.send_12900( ind, null, null, false);
}else if(ind == RankConstant.RankType.union){
RC.send_12903( null, null);
}else if(ind == RankConstant.RankType.arena){
ArenaController.getInstance().sender20221();
}else if( ind == RankConstant.RankType.union_boss ){
let protocal = {
boss_id: _params.boss_id || 0,
start_num: 1,
end_num: 100,
}
GuildBossController.getInstance().SendProtocal(21319, protocal);
}
},
// 竞技场 排行榜
freshDetail: function( _data ){
this.updateRankListInfo( _data );
},
updateRankListInfo : function( _data ){
let self = this;
let lst = _data.rank_list;
if( this.camp_id ){
let mod = nx.bridge.acts.queryAct( this.camp_id );
if( mod ){
let rankreward = mod.getNewHeroRankReward();
for (let r = 0; r < rankreward.length; r++) {
let reward = rankreward[r];
if( _data.my_idx >= reward.min && _data.my_idx <= reward.max ){
_data.rewards = reward.items;
}
for (let i = 0; i < lst.length; i++) {
let item = lst[i];
if( item.idx >= reward.min && item.idx <= reward.max ){
item.rewards = reward.items;
}
}
}
}
}
nx.gui.setActive( this.nodEmpty, "", nx.dt.arrEmpty( lst ) );
// console.log( "路径" + path );
cc.loader.loadRes( ( "prefab/rank/fabs/itemT" + this.fromOther ), function (err, fab) {
if( fab ){
let item = cc.instantiate( fab );
self.nodDetailLst.fabItem = fab;
self.nodDetailLst.rebuild( lst );
// this.cmpHead = node.getComponent( "cmp.common.header" );
}
});
this.setRankLstTitle();
this.freshSelf( _data );
// console.log( "刷新排行数据" + JSON.stringify( _data ) );
},
// 显示具体列表的标题
setRankLstTitle: function(){
let titles = RankConstant.RankDetailTitle[ this.fromOther ];
let cmps = this.rankLstTitle.getComponentsInChildren( cc.Label );
for( let i = 0; i < cmps.length; i++ ) {
nx.gui.setString( cmps[i].node, "", nx.text.getKey(titles[ i ]) || "" );
}
},
freshSelf: function( _data ){
let role_vo = RoleController.getInstance().getRoleVo();
let self = this;
let index = this.fromOther == RankConstant.RankType.arena || this.fromOther == RankConstant.RankType.union_boss ? _data.rank : _data.my_idx;
let info = _data;
let avtar = null;
let nod = null;
// console.log( "自己数据" + "prefab/rank/fabs/self" + self.fromOther );
cc.loader.loadRes( ( "prefab/rank/fabs/self" + self.fromOther ), function (err, fab) {
if( fab ){
let item = cc.instantiate( fab );
item.parent = self.nodSelf;
avtar = nx.gui.find( item, "avatar" );
nod = item;
if( avtar ) {
let node = cc.instantiate( self.fab_head );
node.parent = avtar ;
self.cmpHead = node.getComponent( "cmp.common.header" );
}
let cfg = game.configs.avatar_data.data_avatar[ info.avatar_bid ];
let frame = cfg ? cfg.base_id : 0;
if( self.cmpHead ){
if( self.fromOther == RankConstant.RankType.arena || self.fromOther == RankConstant.RankType.union_boss ){
self.cmpHead.setData( role_vo );
}else{
// 更新
self.cmpHead.setHeadRes( info.face_id );
self.cmpHead.setFrameRes( frame );
}
}
if( nod ){
nx.gui.hideAllChildren( nod, "rank" );
if( index == 0 ){
nx.gui.setString( nod, "rank/txt2", nx.text.getKey("Rank0") );
nx.gui.setActive( nod, "rank/txt" , false) ;
nx.gui.setActive( nod, "rank/txt2", true) ;
}else if( index < 4 && index > 0 ){
nx.gui.setActive( nod, "rank/icon_" + index, true) ;
}else{
nx.gui.setActive( nod, "rank/icon_4", true) ;
nx.gui.setString( nod, "rank/txt", index );
nx.gui.setActive( nod, "rank/txt", true) ;
}
let desc = "";
if( self.fromOther == RankConstant.RankType.drama ){
desc = gdata( "dungeon_data", "data_drama_dungeon_info", [ info.my_val1 || 0 ] );
if( info.my_val1 == 0 ){
desc = 0;
}else{
desc = desc.name;
}
}else if( self.fromOther == RankConstant.RankType.arena ){
desc = info.score;
}else if( self.fromOther == RankConstant.RankType.union ){
desc = info.power ;
let union = "";
nx.gui.setString( nod, "union", union = info.gname == "" ? nx.text.getKey("NoUnion") : "" );
nx.gui.setString( nod, "names/name", nx.text.getKey( "RankGud" ) + info.gname );
nx.gui.setActive( nod, "names/leader_name", info.leader_name != "" );
nx.gui.setString( nod, "names/leader_name", union = info.leader_name != "" ? nx.text.getKey( "Leader_" ) + info.leader_name : info.leader_name );
nx.gui.setString( nod, "lev", "Lv." + info.glev );
}else if( self.fromOther == RankConstant.RankType.union_boss ){
nx.gui.setString( nod, "dps", info.mydps );
desc = "";
}else if( self.fromOther == RankConstant.RankType.rank_role_lev ){
desc = info.lev;
}else{
// 3 || 6
if( self.fromOther == RankConstant.RankType.tower ){
desc = nx.dt.fmtTimeFromSecs( info.my_val2 );
nx.gui.setString( nod, "floor", info.my_val1 + "" );
nx.gui.setString( nod, "info/power", desc );
}else{
desc = info.my_val1 + "";
}
}
nx.gui.setString( nod, "info/power", desc );
nx.gui.setString( nod, "name", role_vo.name );
let rnod = nx.gui.find( nod, "rewards" );
if( rnod && info.rewards ){
let cmp = nx.gui.getComponent( rnod, "", "cmp.common.itemlayout" );
if( cmp ){
cmp.rebuild( info.rewards );
}
}
}
// this.cmpHead = node.getComponent( "cmp.common.header" );
}
});
// this.scheduleOnce( () =>{
// }, 0.3 );
},
});
/************
* [21319]:{"boss_id":401,"start_num":1,"end_num":100}
[21319]:{"rank":0,"mydps":0,"worship":0,"day_worship":0,
"rank_list":[
{"rank":1,"r_rid":34746,"r_srvid":"dev_2","name":"Myjamkin","family_name":"YTGHFGHF","all_dps":3476438,"face_id":10401,"lev":200,"power":515547,"avatar_bid":1000,"look_id":110401,"face_update_time":0,"face_file":"","worship":0,"worship_status":0}]}
*/