/****************************************************************** * * 战斗义肢 装配 * ******************************************************************/ const BridgeWindow = require( "bridge.window" ); const FxSVC = require( "nx.fx.sv.expand" ); const BackPackConst = require( "backpack_const" ); const HeroConst = require( "hero_const" ); const HeroEvent = require( "hero_event" ); const HeroControl = require( "hero_controller" ); const HEHY = HeroConst.HolyequipmentPosList; const BBC = BackPackConst.Bag_Code; const BIT = BackPackConst.item_type; const BITT = BackPackConst.item_sub_type; cc.Class( { extends: BridgeWindow, properties: { svcList: { default: null, type: FxSVC, }, nodPartner: { default: null, type: cc.Node, }, nodHolySlots: { default: null, type: cc.Node, }, nodSlectPlans: { default: null, type: FxSVC, }, nodSuitDes: { default: null, type: cc.Node, } }, onLoad : function(){ this.bindGEvent( HeroEvent.Hero_Open_Holy_Equipment_Cell_Event, this.freshHolyEqm.bind( this ) ); this.bindGEvent( HeroEvent.Hero_Get_Holy_Equipment_Plan_Event, this.freshHolyEqm.bind( this ) ); this.schlst = []; }, // 重载:参数打开 onOpenConfigs: function( _params ) { let HC = HeroControl.getInstance(); let plans = _params.plans; this.partner = _params.partner; // console.log( JSON.stringify( this.partner ) + "方案数据 holy装配 伙伴数据" + JSON.stringify( plans ) ); if ( !nx.dt.objEmpty( plans ) ) { this.freshHolyEqm( plans ); } else { HC.sender25220(); //申请神装套装信息 } nx.gui.setActive( this.nodSlectPlans.node, "", false ); }, onHolyPlanChanged: function(){ }, freshHolyEqm: function( _plans ){ let HC = HeroControl.getInstance(); let lst = []; _plans = !_plans.holy_eqm_set_cell ? HC.getModel().getHolyEquipmentPlanDatad() : _plans; let count = HC.getModel().getHolyPlanCount(); let num = _plans.num || count; let datas = _plans.holy_eqm_set_cell; let counts = game.configs.partner_holy_eqm_data.data_holy_suit_manage_length; let cfg = game.configs.partner_holy_eqm_data.data_holy_suit_manage; // console.log( JSON.stringify( this.partner ) + "当前的方案信息数据改变---" + JSON.stringify( datas ) ); for (let i in cfg ) { if( i <= num ){ let sch = nx.dt.objClone( cfg[i] ); sch.partner_id = this.partner.partner_id; sch.list = []; if( datas ){ for (let j = 0; j < datas.length; j++) { let msgHoly = datas[j]; if( msgHoly && sch.id == msgHoly.id ){ sch.name = msgHoly.name; sch.partner_id = msgHoly.partner_id; sch.dif_id = this.partner.partner_id; sch.list = msgHoly.list; } } } sch.is_open = 1; lst.push( sch ); } } this.freshSelectNod( lst ); // console.log( "当前的方案信息" + JSON.stringify( lst ) ); if( counts > lst.length ){ let new_data = nx.dt.objClone( cfg[num+1] ); lst.push( new_data ); } this.schlst = lst; this.svcList.rebuild( lst ); this.freshPartnerHolyInfo(); }, freshSelectNod: function( _info ){ // console.log( "当前的方案信息刷新sss" + JSON.stringify( _info ) ); this.nodSlectPlans.rebuild( _info ); }, freshPartnerHolyInfo: function(){ let partner_icon = nx.gui.getComponent( this.nodPartner, "", "cmp.item.base" ); if( partner_icon ){ partner_icon.setData( this.partner ); } let holyeqms = HeroControl.getInstance().getModel().getHeroHolyEquipList( this.partner.partner_id );; let slots = this.nodHolySlots; let lst = HeroControl.getInstance().getModel().getHolyEquipSuitDes( holyeqms ); // console.log( "当前的伙伴holy数据更新" + JSON.stringify( lst ) ); for (let pos in HEHY ) { let slot = nx.gui.find( slots, "slot"+ pos ); let eqm = holyeqms[pos]; let emt = nx.dt.objEmpty( eqm ); nx.gui.setActive( slot, "empty", emt ); nx.gui.setActive( slot, "tip", false ); nx.gui.setActive( slot, "item", !emt ); let cmp = nx.gui.getComponent( slot, "item", "cmp.item.base" ); if( cmp ){ if( !emt ){ cmp.setData( eqm ); }else{ cmp.setData( null ); } } } nx.gui.setActive( this.nodSuitDes, "", !nx.dt.arrEmpty( lst ) ); if( !nx.dt.arrEmpty( lst ) ){ let nod = nx.gui.find( this.nodSuitDes, "desc" ); for (let i = 0; i < nod.children.length; i++) { let des = lst[i]; // console.log( "当前的套装相关属性" + JSON.stringify( des ) ); if( des ){ nx.gui.setString( nod.children[i], "txt", des.name ); let path = cc.path.join( "coms/images/eqm_set" + Math.floor( des.id / 100 ) ); nx.gui.setSpriteFrame( nod.children[i], "ticon", path ); }else{ nx.gui.setString( nod.children[i], "txt", "" ); nx.gui.setSpriteFrame( nod.children[i], "ticon", "" ); } } } }, onTouchSlot: function( _partId ){ let stype = parseInt( _partId ); // 取相关的战斗义肢 // 点击装备槽 const self = this; const HC = HeroControl.getInstance(); let holyLst = []; let eqms = HeroControl.getInstance().getModel().getHeroHolyEquipList( self.partner.partner_id ); for (let i in eqms ) { let eqm = eqms[i]; holyLst.push( { "partner_id": self.partner.partner_id, "item_id" : eqm.id, } ) } const eqm = eqms[ _partId ]; // 脱下 const takeoff = function() { HC.sender11093( self.partner.partner_id, eqm.id, 0 ); }; // 洗炼 const refinement = function() { HC.openHolyequipmentRefreshAttPanel( true, eqm, self.partner ); }; // 更换 const change = function() { HC.openHolyChangePanel( true, stype, self.partner,holyLst, ( _id, _panel ) => { // _panel.close(); HC.sender11093( self.partner.partner_id, _id , 1 ); }, ( _data ) =>{ HC.sender11093( _data.partner.partner_id, _data.eqm , 0 ); } ); }; // 当前装备操作 if( eqm ) { HC.openEquipChangePanel( true, eqm, ( _op, _panel ) => { _panel.close(); if( _op == "takeoff" ) { takeoff(); } if( _op == "change" ) { change(); } if( _op == "refinement" ) { refinement(); } } ); } // 新装备穿戴 else { change(); } }, getSelectHoly: function( _index ){ let data = []; let nodes = nx.gui.find( this.svcList, "srv/view/content" ); let cmp = nodes.children[_index].getComponent( "cmp.partner.holy.sch" ); if( cmp ){ data = cmp.mdata.list; } return data; }, onTouchTakeOff: function(){ let HC = HeroControl.getInstance(); HC.sender11093( this.partner.partner_id, 0 , 0 ); }, onTouchSave: function(){ nx.gui.setActive( this.nodSlectPlans.node, "", !this.nodSlectPlans.node.active ); } } );