876 lines
30 KiB
JavaScript
876 lines
30 KiB
JavaScript
/******************************************************************
|
||
*
|
||
* 僚机背包页
|
||
*
|
||
******************************************************************/
|
||
|
||
const MenuPage = require( "cmp.com.menu.page" );
|
||
const ItemExpand = require( "nx.fx.sv.expand" );
|
||
const ItemLayout = require( "cmp.common.itemlayout" )
|
||
const PathTool = require( "pathtool" );
|
||
const HallowsConst = require( "hallows_const" );
|
||
const HallowsEvent = require( "hallows_event" );
|
||
const HallowsController = require( "hallows_controller" )
|
||
const BackpackEvent = require( "backpack_event" );
|
||
const BackPackConst = require( "backpack_const" )
|
||
const PartnerCalculate = require( "partner_calculate" );
|
||
const FxTogs = require( "nx.fx.togs" );
|
||
const TipsController = require( "tips_controller" )
|
||
const NxSpine = require( "nx.fx.spine" );
|
||
|
||
cc.Class( {
|
||
|
||
extends: MenuPage,
|
||
|
||
properties: {
|
||
hallow_sp: {
|
||
default: null,
|
||
type: NxSpine
|
||
},
|
||
tag_ico:{
|
||
default:null,
|
||
type:cc.Node
|
||
},
|
||
hallow_empty: {
|
||
default: null,
|
||
type: cc.Node
|
||
},
|
||
hallow_items: {
|
||
default: null,
|
||
type: ItemExpand
|
||
},
|
||
info_list: {
|
||
default: null,
|
||
type: ItemLayout
|
||
},
|
||
detail_list: {
|
||
default: null,
|
||
type: ItemLayout
|
||
},
|
||
//任务界面相关
|
||
task_node: {
|
||
default: null,
|
||
type: cc.Node
|
||
},
|
||
task_item_node: {
|
||
default: null,
|
||
type: cc.Node
|
||
},
|
||
task_list: {
|
||
default: null,
|
||
type: ItemLayout
|
||
},
|
||
task_attr_node: {
|
||
default: null,
|
||
type: cc.Node
|
||
},
|
||
attr_skill_pre: {
|
||
default: null,
|
||
type: cc.Prefab
|
||
},
|
||
skill_name: {
|
||
default: null,
|
||
type: cc.RichText
|
||
},
|
||
skill_desc: {
|
||
default: null,
|
||
type: cc.RichText
|
||
},
|
||
attr_labels: {
|
||
default: [],
|
||
type: [ cc.RichText ]
|
||
},
|
||
task_complete_num: {
|
||
default: null,
|
||
type: cc.RichText
|
||
},
|
||
//技能升级
|
||
use_node: {
|
||
default: null,
|
||
type: cc.Node
|
||
},
|
||
use_togs: {
|
||
default: null,
|
||
type: FxTogs
|
||
},
|
||
use_panel: {
|
||
default: null,
|
||
type: cc.Node
|
||
},
|
||
pre_panels: {
|
||
default: [],
|
||
type: [ cc.Prefab ]
|
||
},
|
||
//重铸
|
||
reset_btn: {
|
||
default: null,
|
||
type: cc.Node
|
||
},
|
||
btn_gofight: {
|
||
default: null,
|
||
type: cc.Node
|
||
},
|
||
no_task_tip: {
|
||
default: null,
|
||
type: cc.Node
|
||
}
|
||
},
|
||
|
||
onLoad: function() {
|
||
this._super();
|
||
|
||
this.ctrl = HallowsController.getInstance();
|
||
this.model = this.ctrl.getModel();
|
||
|
||
// Tog监听
|
||
this.use_togs.posTog = this.onTogPanel.bind( this );
|
||
|
||
// 事件监听
|
||
//任务变化
|
||
this.bindGEvent( HallowsEvent.UpdateHallowsTaskEvent, this.updateHallowsTaskInfo.bind( this ) );
|
||
//数据更新
|
||
this.bindGEvent( HallowsEvent.HallowsUpdateEvent, this.updateHallow.bind( this ) );
|
||
//激活行星武器
|
||
this.bindGEvent( HallowsEvent.HallowsActivityEvent, this.actiHallows.bind( this ) );
|
||
|
||
this.bindGEvent( HallowsEvent.UpdateHallowsGet, this.refreshHallowsList.bind( this ) );
|
||
|
||
this.bindGEvent( HallowsEvent.UpdateHallowsDetailInfoList, this.updateHallowsItem.bind( this ) )
|
||
|
||
this.bindGEvent( BackpackEvent.ADD_GOODS, this.checkNeedUpdateItemNum.bind( this ) );
|
||
this.bindGEvent( BackpackEvent.MODIFY_GOODS_NUM, this.checkNeedUpdateItemNum.bind( this ) );
|
||
this.bindGEvent( BackpackEvent.DELETE_GOODS, this.checkNeedUpdateItemNum.bind( this ) );
|
||
},
|
||
|
||
//任务相关----------------------------
|
||
updateHallowsItem( hallows_id ) {
|
||
this.updateHallowsList();
|
||
//初始化下部列表
|
||
this.hallow_items.rebuild( this.hallows_list );
|
||
this.hallow_items.addFocus( hallows_id - 1 );
|
||
this.setMain( this.hallows_id );
|
||
},
|
||
|
||
updateHallow( id, is_refine ) {
|
||
if( this.is_in_use ) {
|
||
this.handleUpdateEvent( id, is_refine );
|
||
} else {
|
||
if( id == this.hallows_id ) {
|
||
this.refreshView();
|
||
}
|
||
}
|
||
},
|
||
|
||
actiHallows() {
|
||
var hallows_id = this.model.getCurActivityHallowsId();
|
||
if( hallows_id ) {
|
||
if( hallows_id <= 5 ) {
|
||
this.hallows_id = hallows_id;
|
||
} else {
|
||
this.refreshHallowsList();
|
||
}
|
||
this.ctrl.requestHallowsInfo();
|
||
this.refreshView();
|
||
|
||
this.handleEffect();
|
||
}
|
||
},
|
||
//任务相关----------------------------
|
||
updateHallowsList() {
|
||
// 根据激活数和id重新排序,
|
||
var config_list = game.configs.hallows_data.data_base;
|
||
this.hallows_list = [];
|
||
this.hallows_sum = game.configs.hallows_data.data_base_length;
|
||
for( var i in config_list ) {
|
||
var object = {};
|
||
object.id = config_list[ i ].id;
|
||
object.name = config_list[ i ].name;
|
||
object.effect = config_list[ i ].effect;
|
||
object.item_id = config_list[ i ].item_id;
|
||
object.open_desc = config_list[ i ].open_desc;
|
||
var vo = this.model.getHallowsById( config_list[ i ].id );
|
||
object.vo = vo;
|
||
this.hallows_list.push( object );
|
||
}
|
||
// 显示列表重新排序
|
||
if( Utils.next( this.hallows_list ) ) {
|
||
this.hallows_list.sort( function( a, b ) {
|
||
return a.id - b.id;
|
||
} )
|
||
}
|
||
},
|
||
|
||
|
||
refreshHallowsList() {
|
||
this.updateHallowsList();
|
||
|
||
//初始化下部列表
|
||
this.hallow_items.rebuild( this.hallows_list );
|
||
if( this.hallows_id != null ) {
|
||
if( !this.model.checkIsHaveAllHallows() ) {
|
||
this.is_in_use = false;
|
||
this.hallows_id = this.model.getCurActivityHallowsId();
|
||
this.use_node.active = false;
|
||
this.task_node.active = true;
|
||
|
||
} else {
|
||
var select_index = this.getDefaultHallowsIndex( this.hallows_id );
|
||
this.selectHallowsIndex( select_index );
|
||
this.is_in_use = true;
|
||
// this.hallows_id = 1;
|
||
this.use_node.active = true;
|
||
this.task_node.active = false;
|
||
this.use_togs.togTo( 0 );
|
||
this.use_togs.posTog( 0 );
|
||
}
|
||
this.hallow_items.addFocus( this.hallows_id - 1 );
|
||
|
||
this.setMain( this.hallows_id );
|
||
}
|
||
},
|
||
|
||
onDisable() {
|
||
// 监听事件释放
|
||
this.unbindGEvents();
|
||
},
|
||
|
||
onEnable() {
|
||
|
||
this.refreshHallowsList();
|
||
//检查是否解锁所有行星武器
|
||
if( this.model.checkIsHaveAllHallows() ) {
|
||
this.is_in_use = true;
|
||
var select_index = this.getDefaultHallowsIndex( null );
|
||
this.selectHallowsIndex( select_index );
|
||
this.hallows_id = this.hallows_list[ select_index ].id;
|
||
this.use_node.active = true;
|
||
this.use_togs.togTo( 0 );
|
||
this.use_togs.posTog( 0 );
|
||
} else {
|
||
this.is_in_use = false;
|
||
this.task_node.active = true;
|
||
this.hallows_id = this.model.getCurActivityHallowsId();
|
||
this.refreshView();
|
||
}
|
||
|
||
this.hallow_items.addFocus( this.hallows_id - 1 );
|
||
this.setMain( this.hallows_id );
|
||
},
|
||
|
||
onTogPanel( _index ) {
|
||
if( _index == ( HallowsConst.Tab_Index.uplv - 1 ) ) {
|
||
if( !this.step_panel ) {
|
||
this.step_panel = cc.instantiate( this.pre_panels[ _index ] );
|
||
this.step_panel.parent = this.use_panel;
|
||
}
|
||
|
||
if( this.select_hallows ) {
|
||
let cmp = this.step_panel.getComponent( "cmp.hallows.main.lvup" );
|
||
cmp.setData( this.select_hallows );
|
||
}
|
||
} else if( _index == ( HallowsConst.Tab_Index.skill - 1 ) ) {
|
||
if( !this.skill_panel ) {
|
||
this.skill_panel = cc.instantiate( this.pre_panels[ _index ] );
|
||
this.skill_panel.parent = this.use_panel;
|
||
}
|
||
|
||
if( this.select_hallows ) {
|
||
let cmp = this.skill_panel.getComponent( "cmp.hallows.main.skill" );
|
||
cmp.setData( this.select_hallows );
|
||
}
|
||
} else if( _index == ( HallowsConst.Tab_Index.refine - 1 ) ) {
|
||
if( !this.refine_panel ) {
|
||
this.refine_panel = cc.instantiate( this.pre_panels[ _index ] );
|
||
this.refine_panel.parent = this.use_panel;
|
||
}
|
||
|
||
if( this.select_hallows ) {
|
||
let cmp = this.refine_panel.getComponent( "cmp.hallows.main.refine" );
|
||
cmp.setData( this.select_hallows );
|
||
}
|
||
}
|
||
|
||
if( this.step_panel ) {
|
||
this.step_panel.active = _index == ( HallowsConst.Tab_Index.uplv - 1 );
|
||
}
|
||
if( this.skill_panel ) {
|
||
this.skill_panel.active = _index == ( HallowsConst.Tab_Index.skill - 1 );
|
||
}
|
||
if( this.refine_panel ) {
|
||
this.refine_panel.active = _index == ( HallowsConst.Tab_Index.refine - 1 );
|
||
}
|
||
},
|
||
|
||
handleEffect() {
|
||
let cfg = null;
|
||
for( let i in this.hallows_list ) {
|
||
if( this.hallows_list[ i ].id == this.hallows_id ) {
|
||
cfg = this.hallows_list[ i ];
|
||
}
|
||
}
|
||
if( cfg == null ) return;
|
||
|
||
this.hallow_sp.stop();
|
||
if( this.model.getHallowsById( this.hallows_id ) ) {
|
||
nx.gui.setActive( this.hallow_empty, "", false );
|
||
let effect_res = cfg.effect;
|
||
let effect_path = PathTool.getSpinePath( effect_res, "action", false );
|
||
this.hallow_sp.load( effect_path, ( _e ) => {
|
||
if( !_e ) {
|
||
this.hallow_sp.action( "action", true );
|
||
} else {
|
||
this.hallow_sp.stop();
|
||
}
|
||
} );
|
||
|
||
nx.gui.setActive(this.tag_ico,"",true);
|
||
nx.gui.setSpriteFrame(this.tag_ico,"",cc.js.formatStr("prefab/partner/hallows/ui/%s",this.hallows_id));
|
||
} else {//没有激活
|
||
nx.gui.setActive( this.hallow_empty, "", true );
|
||
nx.gui.setSpriteFrame( this.hallow_empty, "", cc.js.formatStr('resDB/empty/xj%s', this.hallows_id));
|
||
nx.gui.setActive(this.tag_ico,"",false);
|
||
}
|
||
},
|
||
|
||
setMain( id ) {
|
||
let cfg = null;
|
||
for( let i in this.hallows_list ) {
|
||
if( this.hallows_list[ i ].id == id ) {
|
||
cfg = this.hallows_list[ i ];
|
||
}
|
||
}
|
||
if( cfg == null ) return;
|
||
|
||
this.handleEffect();
|
||
|
||
//初始化部分详细信息
|
||
let info_items = [];
|
||
let vo = cfg.vo;
|
||
if( vo ) {
|
||
info_items.push( vo.step );
|
||
info_items.push( vo.skill_lev );
|
||
info_items.push( vo.refine_lev );
|
||
} else {
|
||
info_items = [ 0, 0, 0 ]
|
||
}
|
||
this.info_list.rebuild( info_items );
|
||
|
||
let detail_items = [];
|
||
for( let i = 0; i <= 2; i++ ) {
|
||
detail_items.push( cfg );
|
||
}
|
||
|
||
this.detail_list.rebuild( detail_items );
|
||
},
|
||
|
||
|
||
onFocusHallowsItem( _item ) {
|
||
// 空
|
||
if( nx.dt.objEmpty( _item ) ||
|
||
nx.dt.objEmpty( _item.mdata ) ) {
|
||
return;
|
||
}
|
||
|
||
// 聚焦
|
||
this.hallow_items.cleanFocus();
|
||
this.hallow_items.addFocus( _item.index );
|
||
|
||
this.hallows_id = this.hallows_list[ _item.index ].id || 1;
|
||
//检查是否解锁所有行星武器
|
||
if( this.model.checkIsHaveAllHallows() ) {
|
||
this.is_in_use = true;
|
||
var select_index = this.getDefaultHallowsIndex( this.hallows_id );
|
||
this.selectHallowsIndex( select_index );
|
||
this.use_node.active = true;
|
||
this.task_node.active = false;
|
||
this.setPanel();
|
||
} else {
|
||
this.is_in_use = false;
|
||
this.use_node.active = false;
|
||
this.task_node.active = true;
|
||
this.refreshView();
|
||
}
|
||
|
||
|
||
this.setMain( this.hallows_id );
|
||
|
||
},
|
||
|
||
setPanel() {
|
||
if( this.use_togs.togIndex == 0 ) {
|
||
if( this.select_hallows ) {
|
||
let cmp = this.step_panel.getComponent( "cmp.hallows.main.lvup" );
|
||
cmp.setData( this.select_hallows );
|
||
}
|
||
} else if( this.use_togs.togIndex == 1 ) {
|
||
if( this.select_hallows ) {
|
||
let cmp = this.skill_panel.getComponent( "cmp.hallows.main.skill" );
|
||
cmp.setData( this.select_hallows );
|
||
}
|
||
} else if( this.use_togs.togIndex == 2 ) {
|
||
if( this.select_hallows ) {
|
||
let cmp = this.refine_panel.getComponent( "cmp.hallows.main.refine" );
|
||
cmp.setData( this.select_hallows );
|
||
}
|
||
}
|
||
},
|
||
|
||
// 选中某一神器
|
||
selectHallowsIndex: function( index, force, is_refine ) {
|
||
// if(this.select_index == index && !force)return;
|
||
|
||
this.select_index = index;
|
||
this.select_hallows = this.hallows_list[ index ];
|
||
if( this.select_hallows == null ) return;
|
||
this.reset_btn.active = this.checkIsShowResetBtn();
|
||
|
||
},
|
||
|
||
// 重载:关闭前
|
||
onPreClosed: function() {
|
||
this.hallow_items.rebuild( [] );
|
||
this.info_list.rebuild( [] );
|
||
this.detail_list.rebuild( [] );
|
||
|
||
this.task_list.rebuild( [] );
|
||
},
|
||
|
||
// 规则说明
|
||
onTouchTip: function() {
|
||
|
||
let TC = TipsController.getInstance();
|
||
if( TC ) {
|
||
|
||
let txt = game.configs.hallows_data.data_const.game_rule;
|
||
TC.showTextPanel( "tip", txt.desc );
|
||
}
|
||
},
|
||
|
||
// 取出进入界面时默认选中的神器index
|
||
getDefaultHallowsIndex: function( hallows_id ) {
|
||
var temp_hallows_list = nx.dt.objClone( this.hallows_list );
|
||
var select_index = 0;
|
||
if( hallows_id ) {
|
||
select_index = this.getHallowsIndexById( hallows_id );
|
||
} else {
|
||
//等级最高>进度最高>id越高
|
||
var temp_hallows = [];
|
||
temp_hallows_list.sort( function( a, b ) {
|
||
return b.vo.step - a.vo.step;
|
||
} )
|
||
var max_step = 0;
|
||
for( var i in temp_hallows_list ) {
|
||
if( max_step <= temp_hallows_list[ i ].vo.step ) {
|
||
max_step = temp_hallows_list[ i ].vo.step;
|
||
temp_hallows.push( temp_hallows_list[ i ] );
|
||
}
|
||
}
|
||
if( temp_hallows.length == 1 ) {
|
||
select_index = this.getHallowsIndexById( temp_hallows[ 0 ].id );
|
||
} else {
|
||
var max_lucky = 0;
|
||
temp_hallows.sort( function( a, b ) {
|
||
return b.vo.lucky - a.vo.lucky;
|
||
} )
|
||
|
||
var temp_hallows_2 = [];
|
||
for( var j in temp_hallows ) {
|
||
var hallows = temp_hallows[ j ];
|
||
|
||
if( hallows.vo.lucky >= max_lucky ) {
|
||
max_lucky = hallows.vo.lucky
|
||
temp_hallows_2.push( hallows );
|
||
}
|
||
}
|
||
|
||
if( temp_hallows_2.length == 1 ) {
|
||
select_index = this.getHallowsIndexById( temp_hallows_2[ 0 ].id );
|
||
} else {
|
||
temp_hallows_2.sort( function( a, b ) {
|
||
return b.id - a.id;
|
||
} )
|
||
select_index = this.getHallowsIndexById( temp_hallows_2[ 0 ].id );
|
||
}
|
||
}
|
||
}
|
||
return select_index;
|
||
},
|
||
|
||
// 根据神器id获取对应的index
|
||
getHallowsIndexById: function( id ) {
|
||
var index = 1;
|
||
for( var i in this.hallows_list ) {
|
||
if( this.hallows_list[ i ].id && this.hallows_list[ i ].id == id ) {
|
||
index = i;
|
||
}
|
||
}
|
||
return index;
|
||
},
|
||
|
||
//---------------------任务界面
|
||
// 刷新界面
|
||
refreshView: function() {
|
||
this.updateHallowsTaskInfo();
|
||
this.updateHallowsSkillInfo();
|
||
|
||
},
|
||
|
||
//设置已解锁和正在进行的神器数据
|
||
// initUnlockHallowsData:function(hallows_id){
|
||
// this.all_hallows_id = [];
|
||
// var activity_id = this.model.getCurActivityHallowsId() // 正在进行中的神器id
|
||
// for (var i in game.configs.hallows_data.data_base) {
|
||
// var tempCfg = game.configs.hallows_data.data_base[i];
|
||
// if(this.model.getHallowsById(tempCfg.id) || tempCfg.id == activity_id){
|
||
// this.all_hallows_id.push(tempCfg.id);
|
||
// if(hallows_id && tempCfg.id == hallows_id){
|
||
// this.cur_index = this.all_hallows_id.length-1;
|
||
// }
|
||
// }
|
||
// }
|
||
// // this.left_btn.active = this.all_hallows_id.length>1;
|
||
// // this.right_btn.active = this.all_hallows_id.length>1;
|
||
// },
|
||
|
||
updateHallowsTaskInfo: function() {
|
||
if( !this.hallows_id ) return;
|
||
//判断是否已获得
|
||
if( this.model.getHallowsById( this.hallows_id ) ) {
|
||
this.task_attr_node.active = true;
|
||
this.task_item_node.active = false;
|
||
this.btn_gofight.active = true;
|
||
this.no_task_tip.active = false;
|
||
|
||
for( var i in this.base_attr_list ) {
|
||
this.base_attr_list[ i ].active = false;
|
||
}
|
||
this.task_complete_num.string = nx.text.getKey( "HallowTaskComplete" );
|
||
|
||
var hallows_base = gdata( "hallows_data", "data_info", Utils.getNorKey( this.hallows_id, 1 ) );
|
||
if( hallows_base ) {
|
||
for( var j in hallows_base.attr ) {
|
||
if( j > 2 ) break;//UI只支持显示两个技能
|
||
var attr_key = hallows_base.attr[ j ][ 0 ];
|
||
var attr_val = hallows_base.attr[ j ][ 1 ] || 0;
|
||
var attr_name = game.configs.attr_data.data_key_to_name[ attr_key ];
|
||
if( attr_name ) {
|
||
var icon = cc.js.formatStr( "coms/images/ico_%s", attr_key );
|
||
var is_per = PartnerCalculate.isShowPerByStr( attr_key )
|
||
if( is_per ) {
|
||
attr_val = ( attr_val / 10 ) + "%";
|
||
}
|
||
this.attr_labels[ j ].string = nx.text.getKey( "lab_hallows_task_windoiw_tip2" ) + attr_name + ":" + attr_val.toString();
|
||
// cc.loader.loadRes( icon, cc.SpriteFrame, ( err, resObject ) => {
|
||
// if( err ) {
|
||
// return false;
|
||
// }
|
||
// this.attr_labels[ j ].addSpriteFrame( resObject );
|
||
// } );
|
||
}
|
||
}
|
||
}
|
||
} else {
|
||
this.task_attr_node.active = false;
|
||
this.task_item_node.active = true;
|
||
this.btn_gofight.active = false;
|
||
this.no_task_tip.active = true;
|
||
|
||
var task_list = this.model.getHallowsTaskList( this.hallows_id );
|
||
task_list.sort((a,b)=>{
|
||
return b.sort - a.sort;
|
||
});
|
||
if( task_list ) {
|
||
var max_num = task_list.length;
|
||
var cur_num = 0;
|
||
for( var k in task_list ) {
|
||
if( task_list[ k ].finish == 2 ) {
|
||
cur_num = cur_num + 1;
|
||
}
|
||
}
|
||
|
||
this.task_complete_num.string = nx.text.getKey( "HallowTaskProg" ) + cur_num + "/" + max_num;
|
||
}
|
||
|
||
this.task_list.rebuild( task_list );
|
||
|
||
// 引导辅助
|
||
if( nx.bridge.plot && nx.bridge.plot.isDoing() ) {
|
||
this.scheduleOnce( () => {
|
||
this.positionGet();
|
||
}, 0.1 );
|
||
}
|
||
}
|
||
|
||
},
|
||
|
||
updateHallowsSkillInfo() {
|
||
if( !this.hallows_id ) return;
|
||
var hallows_skill = gdata( "hallows_data", "data_skill_up", Utils.getNorKey( this.hallows_id, 1 ) ) // 显示1级时的技能
|
||
if( hallows_skill && hallows_skill.skill_bid != 0 ) {
|
||
var config = gskilldata( "data_get_skill", hallows_skill.skill_bid ) || {};
|
||
if( !this.skill_icon ) {
|
||
this.skill_icon = cc.instantiate( this.attr_skill_pre );
|
||
this.skill_icon.parent = ( this.task_attr_node );
|
||
this.skill_icon.position = cc.v2( -175, 60 )
|
||
}
|
||
let cmp = this.skill_icon.getComponent( "cmp.skill.base" );
|
||
cmp.rebind( 0, config.bid, "" );
|
||
|
||
this.skill_name.string = cc.js.formatStr( "%s <color=#27ae10>[Lv.%s]</color>", config.name, hallows_skill.lev_limit );
|
||
|
||
this.skill_desc.string = cc.js.formatStr( config.des, config.hallows_atk, 0 );
|
||
}
|
||
},
|
||
|
||
//---------------------任务界面
|
||
|
||
checkNeedUpdateItemNum( bag_code, item_list ) {
|
||
if( bag_code != BackPackConst.Bag_Code.BACKPACK ) return;
|
||
if( item_list == null ) return;
|
||
for( var i in item_list ) {
|
||
var vo = item_list[ i ];
|
||
if( vo.config ) {
|
||
var bid = vo.config.id;
|
||
this.updateCostItemNumByBid( bid )
|
||
}
|
||
}
|
||
},
|
||
|
||
updateCostItemNumByBid: function( bid ) {
|
||
if( !bid ) {
|
||
return;
|
||
}
|
||
|
||
let cmp = null;
|
||
if( this.step_panel ) {
|
||
cmp = this.step_panel.getComponent( "cmp.hallows.main.lvup" );
|
||
} else if( this.skill_panel ) {
|
||
cmp = this.skill_panel.getComponent( "cmp.hallows.main.skill" );
|
||
} else if( this.refine_panel ) {
|
||
cmp = this.refine_panel.getComponent( "cmp.hallows.main.refine" );
|
||
}
|
||
|
||
if( cmp == null ) return;
|
||
cmp.getCostObj( bid );
|
||
// if (bid == this.hallows_uplv_cost_bid_1) {
|
||
// this.setCostDataToNode(this.lvup_cost_res_1, this.lvup_cost_label_1, bid, this.hallows_uplv_cost_num_1)
|
||
// } else if (bid == this.hallows_uplv_cost_bid_2) {
|
||
// this.setCostDataToNode(this.lvup_cost_res_2, this.lvup_cost_label_2, bid, this.hallows_uplv_cost_num_2)
|
||
// } else if (bid == this.skill_lvup_cost_bid_1) {
|
||
// this.setCostDataToNode(this.skill_res_icon_1, this.skill_cost_label_1, bid, this.skill_lvup_cost_num_1)
|
||
// } else if (bid == this.skill_lvup_cost_bid_2) {
|
||
// this.setCostDataToNode(this.skill_res_icon_2, this.skill_cost_label_2, bid, this.skill_lvup_cost_num_2)
|
||
// }
|
||
// if (bid == this.refine_cost_bid_1) {
|
||
// let is_full = this.setCostDataToNode(this.refine_res_icon_1, this.refine_cost_label_1, bid, this.refine_cost_num_1)
|
||
// if (is_full) {
|
||
// this.is_can_refine_2 = true
|
||
// } else {
|
||
// this.is_can_refine_2 = false
|
||
// }
|
||
// }
|
||
// if (bid == this.refine_cost_bid_2) {
|
||
// let is_full = this.setCostDataToNode(this.refine_res_icon_2, this.refine_cost_label_2, bid, this.refine_cost_num_2)
|
||
// if (is_full) {
|
||
// this.is_can_refine_3 = true
|
||
// } else {
|
||
// this.is_can_refine_3 = false
|
||
// }
|
||
// }
|
||
},
|
||
|
||
// 是否显示重铸按钮
|
||
checkIsShowResetBtn: function() {
|
||
var is_show = false;
|
||
if( this.select_hallows == null ) {
|
||
return is_show;
|
||
}
|
||
var vo = this.select_hallows.vo;
|
||
if( vo == null ) {
|
||
return is_show;
|
||
}
|
||
if( vo.step > 1 || vo.seal > 0 || vo.skill_lev > 1 || vo.refine_lev > 0 ) {
|
||
is_show = true;
|
||
}
|
||
return is_show;
|
||
},
|
||
|
||
//圣器更新处理
|
||
handleUpdateEvent: function( id, is_refine ) {
|
||
if( id && this.select_hallows && id == this.select_hallows.id ) {
|
||
this.selectHallowsIndex( this.select_index, true, is_refine )
|
||
this.updateHallowStatusInfo();
|
||
}
|
||
},
|
||
|
||
//设置神器升级与技能状态显示
|
||
updateHallowStatusInfo: function() {
|
||
if( this.select_hallows == null ) return;
|
||
var vo = this.select_hallows.vo;
|
||
if( vo == null ) {
|
||
return;
|
||
} else {
|
||
//神器是否达到最大等级
|
||
var max_lev = game.configs.hallows_data.data_max_lev[ vo.id ] || 100;
|
||
if( vo.step >= max_lev ) {
|
||
this.is_max_hallows_lv = true;
|
||
// this.uplv_layout.active = false;
|
||
} else {
|
||
this.is_max_hallows_lv = false;
|
||
// this.uplv_layout.active = true;
|
||
}
|
||
//技能是否达到最大等级
|
||
var max_skill_lv = game.configs.hallows_data.data_skill_max_lev[ vo.id ] || 10;
|
||
var skill_lv = vo.skill_lev;
|
||
if( skill_lv >= max_skill_lv ) {
|
||
this.is_max_skill_lv = true;
|
||
// this.skill_layout.active = false;
|
||
} else {
|
||
this.is_max_skill_lv = false;
|
||
// this.skill_layout.active = true;
|
||
}
|
||
//精炼是否达到最大等级
|
||
let max_refine_lv = game.configs.hallows_refine_data.data_max_lev[ vo.id ] || 9
|
||
if( vo.refine_lev >= max_refine_lv ) {
|
||
this.is_max_refine_lv = true
|
||
// this.refine_layout.active = false;
|
||
// nx.gui.setActive(this.refine_max_lv,"",true);
|
||
}
|
||
else {
|
||
this.is_max_refine_lv = false
|
||
// this.refine_layout.active = true;
|
||
// nx.gui.setActive(this.refine_max_lv,"",false);
|
||
}
|
||
|
||
|
||
//更新神器升级与技能显示
|
||
if( !this.is_max_hallows_lv ) {
|
||
if( this.step_panel ) {
|
||
let cmp = this.step_panel.getComponent( "cmp.hallows.main.lvup" );
|
||
cmp.setData( this.select_hallows );
|
||
}
|
||
}
|
||
if( !this.is_max_skill_lv ) {
|
||
if( this.skill_panel ) {
|
||
let cmp = this.skill_panel.getComponent( "cmp.hallows.main.skill" );
|
||
cmp.setData( this.select_hallows );
|
||
}
|
||
}
|
||
if( !this.is_max_refine_lv ) {
|
||
if( this.refine_panel ) {
|
||
let cmp = this.refine_panel.getComponent( "cmp.hallows.main.refine" );
|
||
cmp.setData( this.select_hallows );
|
||
}
|
||
}
|
||
|
||
let info_items = [];
|
||
if( vo ) {
|
||
info_items.push( vo.step );
|
||
info_items.push( vo.skill_lev );
|
||
info_items.push( vo.refine_lev );
|
||
} else {
|
||
info_items = [ 0, 0, 0 ]
|
||
}
|
||
this.info_list.rebuild( info_items );
|
||
|
||
let detail_items = [];
|
||
for( let i = 0; i <= 2; i++ ) {
|
||
detail_items.push( this.select_hallows );
|
||
}
|
||
|
||
this.detail_list.rebuild( detail_items );
|
||
// this.info_list.rebuild(this.hallows_list);
|
||
// this.detail_list.rebuild(this.hallows_list);
|
||
}
|
||
},
|
||
|
||
clickHallowsDetail() {
|
||
this.ctrl.send24140( this.hallows_id || this.select_hallows.id );
|
||
// this.ctrl.openHallowsTips(true,this.hallows_id||this.select_hallows);
|
||
},
|
||
|
||
// 点击重铸
|
||
onClickResetBtn: function() {
|
||
if( this.step_panel ) {
|
||
let cmp = this.step_panel.getComponent( "cmp.hallows.main.lvup" );
|
||
let status = cmp.getLvupStatus();
|
||
if( status ) {
|
||
return;
|
||
}
|
||
}
|
||
var str = nx.text.getKey( "lab_hallows_main_window_tip13" );
|
||
nx.mbox( str, [ "cancel", "confirm" ], ( _key, _box ) => {
|
||
_box.close();
|
||
if( _key == "confirm" ) {
|
||
if( this.select_hallows ) {
|
||
this.ctrl.requestHallowsReset( this.select_hallows.id );
|
||
}
|
||
}
|
||
} );
|
||
},
|
||
|
||
onClickTraceBtn() {
|
||
if( this.select_hallows ) {
|
||
if( !this.select_hallows.vo ) {
|
||
nx.tbox( "lab_hallows_main_window_tip12" )
|
||
} else {
|
||
var cost_config = game.configs.hallows_data.data_const.imprint_lowest;
|
||
if( cost_config ) {
|
||
if( this.select_hallows.vo.step < cost_config.val ) {
|
||
nx.tbox( cost_config.desc )
|
||
} else {
|
||
this.ctrl.openHallowsTraceWindow( true, this.select_hallows );
|
||
}
|
||
}
|
||
}
|
||
} else {
|
||
nx.tbox( "lab_hallows_main_window_tip12" )
|
||
}
|
||
},
|
||
|
||
// ============================================
|
||
// 引导辅助
|
||
// ============================================
|
||
|
||
// 首次领奖定位
|
||
positionGet: function() {
|
||
|
||
// 查找第一个能领取的任务
|
||
let node = null;
|
||
let children = this.task_list.node.children;
|
||
for( let i = 0; i < children.length; ++i ) {
|
||
let temp = children[ i ];
|
||
if( temp && nx.gui.isActive( temp, "btn_get" ) ) {
|
||
node = temp;
|
||
break;
|
||
}
|
||
}
|
||
|
||
if( !node ) {
|
||
nx.error( "$HallowsPage:定位首次领奖失败!" );
|
||
node = children[ 0 ];
|
||
if( !node ) {
|
||
return;
|
||
}
|
||
}
|
||
|
||
let btn = nx.gui.find( node, "btn_get" );
|
||
let cell = nx.gui.find( this, "panel/plotCell" );
|
||
let pos = btn.convertToWorldSpaceAR( cc.Vec2.ZERO );
|
||
cell.position = cell.parent.convertToNodeSpaceAR( pos );
|
||
cell.width = btn.width;
|
||
cell.height = btn.height;
|
||
cell.cmp = nx.gui.getComponent( node, "", "cmp.hallows.item.task" );
|
||
},
|
||
|
||
// 点击首次领奖处理
|
||
onTouchFirstGet: function() {
|
||
|
||
let cell = nx.gui.find( this, "panel/plotCell" );
|
||
if( cell && cell.cmp ) {
|
||
cell.cmp.clickGetItem();
|
||
}
|
||
},
|
||
|
||
} );
|