266 lines
8.2 KiB
JavaScript
266 lines
8.2 KiB
JavaScript
|
|
/******************************************************************
|
||
|
|
*
|
||
|
|
* 战斗义肢 装配
|
||
|
|
*
|
||
|
|
******************************************************************/
|
||
|
|
|
||
|
|
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 );
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
} );
|