Files
fc/dev/project/assets/Scripts/mod/partner/cmps/bag/cmp.hallows.page.js
T
2026-05-23 22:10:14 +08:00

876 lines
30 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/******************************************************************
*
* 僚机背包页
*
******************************************************************/
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();
}
},
} );