const NxSpine = require( "nx.fx.spine" ); const ItemBase = require( "nx.fx.sv.expand.item" ) var PathTool = require( "pathtool" ) cc.Class( { extends: ItemBase, properties: { is_in_form: { default: false, displayName: "是否在布阵" }, spMini: { default: null, type: NxSpine } }, // LIFE-CYCLE CALLBACKS: // onLoad () {}, start() { }, setVisable( status ) { if( status ) { } else { } }, onEnable(){ }, onDisable(){ // this.spMini.stop(); }, // 置空 setEmpty: function() { this.spMini.stop(); nx.gui.setActive( this.node, "lev", true ); nx.gui.setActive( this.node, "star", true ); nx.gui.setActive( this.node, "camp", true ); nx.gui.setActive( this.node, "bg", true ); // 等级 nx.gui.setString( this.node, "lev", "" ); }, //根据不同的id处理数据 checkId( partner ) { //unit_type.skin let skin_cfg = game.configs.partner_skin_data.data_skin_info[ partner.use_skin ]; if( skin_cfg ) { this.partner.res_id = skin_cfg.res_id; return this.partner; } //unit_type.role let look_cfg = game.configs.looks_data.data_data[ partner ]; if( look_cfg ) { this.partner.lev = look_cfg.lev; this.partner.star = look_cfg.star; this.partner.res_id = look_cfg.model; return this.partner; } //unit_type.partner //只有id let partner_cfg = game.configs.partner_data.data_partner_base[ partner ]; if( partner_cfg ) { this.partner.star = partner_cfg.init_star; let key = partner_cfg.bid + "_" + partner_cfg.init_star; let cfg = gdata( "partner_data", "data_partner_star", key ); this.partner.camp_type = partner_cfg.camp_type; this.partner.res_id = cfg.res_id; return this.partner; } let base_cfg = game.configs.partner_data.data_partner_base[ partner.bid ]; if(base_cfg){ this.partner.star = base_cfg.init_star; let bkey = base_cfg.bid + "_" + base_cfg.init_star; let cfg = gdata( "partner_data", "data_partner_star", bkey ); this.partner.camp_type = base_cfg.camp_type; this.partner.res_id = cfg.res_id; return this.partner; } //unit_type.unit let unit_cfg = Utils.getUnitConfig( partner ); if( unit_cfg ) { let bid = Number( unit_cfg.body_id ); let partner_cfg = gdata( "partner_data", "data_partner_base", bid ); this.partner.star = partner_cfg.init_star; let key = partner_cfg.bid + "_" + partner_cfg.init_star; let cfg = gdata( "partner_data", "data_partner_star", key ); this.partner.camp_type = partner_cfg.camp_type; this.partner.res_id = cfg.res_id; return this.partner; } //直接返回数据 this.partner = partner; let key = partner.bid + "_" + partner.star; let cfg = gdata( "partner_data", "data_partner_star", key ); this.partner.res_id = cfg.res_id; return this.partner; }, setData( _partner, is_form, show_detail = true ) { let self = this; this.partner = {}; this.checkId( _partner ); if( nx.dt.objEmpty( this.partner ) ) { return; } nx.gui.setActive( this.node, "", true ); if( is_form != null ) { this.is_in_form = is_form; } if( this.is_in_form ) { if( show_detail ) { this.setEmpty(); // 等级 if( _partner.lev ) { nx.gui.setString( this.node, "lev", "Lv." + _partner.lev || 1 ); } // 星级 if( _partner.star ) { let path = cc.path.join( "coms/images", "star" + _partner.star ); nx.gui.setSpriteFrame( this.node, "star", path ); } // 阵营 if( _partner.camp_type ) { let path = cc.path.join( "prefab/battle/ui/camps" + _partner.camp_type ); nx.gui.setSpriteFrame( this.node, "camp", path ); } } else { nx.gui.setActive( this.node, "lev", false ); nx.gui.setActive( this.node, "star", false ); nx.gui.setActive( this.node, "camp", false ); nx.gui.setActive( this.node, "bg", false ); } // 动画 if( this.partner.res_id ) { // 迷你 let res_path = PathTool.getSpinePath( this.partner.res_id, this.partner.res_id, false ); self.spMini.load( res_path, ( _e ) => { if( !self || !self.spMini ) { return; } if( !_e ) { self.spMini.action( "stand2", true ); } else { self.spMini.stop(true); } } ); } else { this.spMini.stop(); nx.error( "立绘配置缺失:", key ); } } else { nx.gui.setActive( this.node, "", false ); nx.gui.setActive( this.node, "lev", false ); nx.gui.setActive( this.node, "star", false ); nx.gui.setActive( this.node, "camp", false ); nx.gui.setActive( this.node, "bg", false ); } }, // update (dt) {}, } );