Files
2026-05-23 22:10:14 +08:00

179 lines
5.3 KiB
JavaScript

const NxSpine = require( "nx.fx.spine" );
const ItemBase = require( "cmp.item.base" );
const SVCItem = require( "nx.fx.sv.expand.item" );
const TipsController = require("tips_controller");
const BackPackConst = require( "backpack_const" );
const Header = require( "cmp.common.header" );
const BIT = BackPackConst.item_type;
const ArenaController = require( "arena_controller" );
const PVPMod = require( "pvp.mod" );
const HeroController = require( "hero_controller" );
cc.Class( {
extends: SVCItem,
properties: {
nodHead: { default: null, type: Header },
nodLev: { default: null, type: cc.Node },
nodDesc: { default: null, type: cc.Node },
nodOp: { default: null, type: cc.Node },
nodRole: { default: null, type: NxSpine },
},
// 数据重置
rebind: function( _idx, _data, _key ) {
this._super( _idx, _data, _key );
// 刷新
this.setData( _data );
},
// 重置
setData: function( _data, _count ) {
/***
* // -->{"_evt_idx":0,"_evt_list":{},"idx":1,"rid":1,"srv_id":"","name":"Youadsha","lev":92,"sex":0,"face":20301,"power":6941,"score":1000,"get_score":22,"status":0,
* "p_list":[{"pos":1,"bid":30301,"lev":1,"star":3,"break_lev":0,"use_skin":0,"resonate_lev":0},
* {"pos":2,"bid":10305,"lev":1,"star":3,"break_lev":0,"use_skin":0,"resonate_lev":0},
* {"pos":3,"bid":20301,"lev":1,"star":3,"break_lev":0,"use_skin":0,"resonate_lev":0},
* {"pos":4,"bid":10304,"lev":1,"star":3,"break_lev":0,"use_skin":0,"resonate_lev":0},
* {"pos":5,"bid":20304,"lev":1,"star":3,"break_lev":0,"use_skin":0,"resonate_lev":0}],
* "face_update_time":0,"face_file":"","gid":0,"gsrv_id":"","gname":""}
*/
this.mdata = _data;
if( !this.mdata ){
return;
}
this.freshAll();
// console.log( "需要处理的数据pvp----->" + JSON.stringify( this.mdata ) );
},
freshAll: function(){
this.freshHeader();
this.freshDesc();
this.freshOp();
this.freshPartnerRole();
},
freshHeader: function(){
let cfg = game.configs.item_data.data_unit6[ this.mdata.face ];
let avatarc = 0;
if( !cfg ){
avatarc = 29982;
}
let avtar = {
face: avatarc != 0 ? avatarc : this.mdata.face,
avatar: 1000,
}
this.nodHead.setData( avtar );
},
freshDesc: function(){
nx.gui.setString( this.nodLev, "", nx.text.format( "LvNumber" , this.mdata.lev ) );
nx.gui.setString( this.nodDesc, "name", this.mdata.name );
nx.gui.setString( this.nodDesc, "power/txt", this.mdata.power );
nx.gui.setString( this.nodDesc, "point/txt", this.mdata.score );
},
freshOp: function( ){
let model = ArenaController.getInstance().getModel();
let self_data = model.getMyLoopData();
let ffg = game.configs.arena_data.data_const.combat_num;
let cfg = game.configs.arena_data.data_const;
let free = self_data.can_combat_num <= ffg.val && self_data.can_combat_num > 0;
let nod = nx.gui.find( this.nodOp, "mat" );
nx.bridge.setIconS( nod, "icon", cfg.arena_ticket.val, "resDB/empty/icon" );
nx.gui.setString( nod, "txt", free ? nx.text.getKey( "Free" ) : nx.text.getKey( "Challenge" ) )
nx.gui.setActive( nod, "icon", !free );
},
freshPartnerRole: function(){
let partner = this.mdata.p_list[0];
if( partner ){
// 动画
let sinfo = nx.bridge.partner.parseShowInfo( partner.bid, partner.star, partner.use_skin );
if( sinfo ) {
// 战斗迷你
this.nodRole.load( sinfo.sp_model, ( _e ) => {
if( !_e ) {
this.nodRole.action( "stand2", true );
} else {
this.nodRole.stop();
}
} );
}
else {
this.nodRole.stop();
}
}else{
this.nodRole.stop();
}
},
onTouchChallenge: function(){
let arena = ArenaController.getInstance();
let AC = ArenaController.getInstance().getModel();
let skip = 0;
if( AC ){
skip = AC.getSkip();
}
if( skip == 0 ){
HeroController.getInstance().openFormGoFightPanel(true,1,{
fight : this.mdata
},1);
}else{
arena.sender20203( this.mdata.rid, this.mdata.srv_id, skip );
}
// AC.sender20203( this.mdata.rid, this.mdata.srv_id );
// nx.bridge.closePanel( "WndArenaLoopChallenge" );
// const PVP = PVPMod.getInstance();
// if( PVP ) {
// PVP.openPVPWindow( false );
// }
},
onTouchIcon: function(){
// let AC = ArenaController.getInstance();
// AC.requestLoopChallengeRoleInfo( this.mdata.rid, this.mdata.srv_id );
// // nx.bridge.closePanel( "WndArenaLoopChallenge" );
// // const PVP = PVPMod.getInstance();
// // if( PVP ) {
// // PVP.openPVPWindow( false );
// // }
},
} );