108 lines
2.9 KiB
JavaScript
108 lines
2.9 KiB
JavaScript
|
|
/******************************************************************
|
||
|
|
*
|
||
|
|
* 伙伴属性详情界面
|
||
|
|
*
|
||
|
|
******************************************************************/
|
||
|
|
|
||
|
|
const BridgeWindow = require( "bridge.window" );
|
||
|
|
const HeroControl = require( "hero_controller" );
|
||
|
|
|
||
|
|
const ATTR_BASE = [ 'atk', 'hp', 'def', 'speed' ];
|
||
|
|
const ATTR_EXTRA = [
|
||
|
|
'crit_rate', 'crit_ratio',
|
||
|
|
'hit_magic', 'dodge_magic',
|
||
|
|
'tenacity', 'hit_rate',
|
||
|
|
'res', 'dodge_rate',
|
||
|
|
'cure', 'be_cure',
|
||
|
|
'dam',
|
||
|
|
];
|
||
|
|
|
||
|
|
cc.Class( {
|
||
|
|
|
||
|
|
extends: BridgeWindow,
|
||
|
|
|
||
|
|
properties: {
|
||
|
|
lstBase: { default: null, type: cc.Node },
|
||
|
|
lstSpecail: { default: null, type: cc.Node },
|
||
|
|
lstOther: { default: null, type: cc.Node },
|
||
|
|
},
|
||
|
|
|
||
|
|
// 重载:参数打开
|
||
|
|
onOpenConfigs: function( _params ) {
|
||
|
|
|
||
|
|
this.isMe = _params.is_my;
|
||
|
|
this.partner = _params.hero_vo;
|
||
|
|
|
||
|
|
// 无效
|
||
|
|
if( nx.dt.objEmpty( this.partner ) ) {
|
||
|
|
this.scheduleOnce( () => {
|
||
|
|
this.close();
|
||
|
|
}, 0.03 );
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
|
||
|
|
// 基础刷新
|
||
|
|
this.freshBase();
|
||
|
|
|
||
|
|
// 加成刷新
|
||
|
|
if( this.isMe ) {
|
||
|
|
HeroControl.getInstance().sender11063( this.partner.partner_id, ( _ret, _data ) => {
|
||
|
|
if( _ret ) {
|
||
|
|
this.freshAdd( _data );
|
||
|
|
}
|
||
|
|
} );
|
||
|
|
}
|
||
|
|
},
|
||
|
|
|
||
|
|
// 基础刷新
|
||
|
|
freshBase: function() {
|
||
|
|
|
||
|
|
// 基础属性
|
||
|
|
const CHD = this.lstBase.children;
|
||
|
|
for( let i = 0; i < ATTR_BASE.length; ++i ) {
|
||
|
|
let node = CHD[ i ];
|
||
|
|
let key = ATTR_BASE[ i ];
|
||
|
|
node.name = key;
|
||
|
|
nx.bridge.attrs.setAttribute( node, [ key, this.partner[ key ], i + 1 ], false );
|
||
|
|
nx.gui.setActive( node, "add", false );
|
||
|
|
}
|
||
|
|
|
||
|
|
// 特殊属性
|
||
|
|
const CHS = this.lstSpecail.children;
|
||
|
|
for( let i = 0; i < ATTR_EXTRA.length; ++i ) {
|
||
|
|
let node = CHS[ i ];
|
||
|
|
let key = ATTR_EXTRA[ i ];
|
||
|
|
node.name = key;
|
||
|
|
nx.bridge.attrs.setAttribute( node, [ key, this.partner[ key ], i + 1 ] );
|
||
|
|
nx.gui.setActive( node, "add", false );
|
||
|
|
}
|
||
|
|
|
||
|
|
// 其他
|
||
|
|
},
|
||
|
|
|
||
|
|
// 基础刷新
|
||
|
|
freshAdd: function( _props ) {
|
||
|
|
|
||
|
|
if( nx.dt.objEmpty( _props ) ) {
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
|
||
|
|
// 单加
|
||
|
|
let doAdd = function( _node ) {
|
||
|
|
let val = _props[ `skin_${ _node.name }` ] || 0;
|
||
|
|
if( val > 0 ) {
|
||
|
|
nx.gui.setActive( _node, "add", true );
|
||
|
|
let ret = nx.bridge.attrs.fmtAttribute( _node.name, val );
|
||
|
|
if( ret ) {
|
||
|
|
nx.gui.setString( _node, "add/num", ret.val );
|
||
|
|
}
|
||
|
|
}
|
||
|
|
};
|
||
|
|
|
||
|
|
// 基础属性
|
||
|
|
this.lstBase.children.forEach( _child => { doAdd( _child ); } );
|
||
|
|
this.lstSpecail.children.forEach( _child => { doAdd( _child ); } );
|
||
|
|
},
|
||
|
|
|
||
|
|
} );
|