Files
fc/dev/project/assets/Scripts/mod/stronger/cmp/cmp.stronger.panel.js
T
2026-05-23 22:10:14 +08:00

162 lines
4.4 KiB
JavaScript

const BridgeComponent = require("bridge.component");
var PathTool = require("pathtool");
var HeroController = require("hero_controller")
var StrongerController = require("stronger_controller")
var StrongerEvent = require("stronger_event")
const BaseLayout = require( "cmp.common.itemlayout" );
const FxSVC = require( "nx.fx.sv.expand" );
cc.Class({
extends: BridgeComponent,
properties: {
scroll_con:{
default:null,
type:BaseLayout
},
hero_con:{
default:null,
type:FxSVC
},
selected_nd:{
default:null,
type:cc.Node
}
},
// LIFE-CYCLE CALLBACKS:
onLoad () {
this._super();
this.ctrl = StrongerController.getInstance();
this.model = this.ctrl.getModel()
this.partner_id_indedx = 0
this.partnerList = []
this.cur_hero_item = null
this.bindGEvent(StrongerEvent.UPDATE_SCROE,this.refreshScore.bind(this));
this.bindGEvent(StrongerEvent.PATCH_DATA_BY_TYPE,this.revPartnerId.bind(this));
},
start () {
// this.selected_nd.active = false;
},
onEnable(){
this.createHeroList();
},
onDisable(){
this.hero_con.rebuild([]);
this.scroll_con.rebuild([]);
},
revPartnerId(id){
this.partner_id = id || 0 //-- 选中的英雄
},
refreshScore(data){
if (this.cur_hero_item) {
let cur_hero_vo = this.cur_hero_item;//.getData()
if (cur_hero_vo.bid == data.partner_bid) {
this.refreshItemList(cur_hero_vo)
}
}
},
// --创建英雄列表
createHeroList( ){
// --只显示上阵英雄
HeroController.getInstance().getModel().getAllHeroArray();
let list = HeroController.getInstance().getModel().getMyPosList()
let show_list = [];
for (let k in list){ //k,v in pairs(list) do
let v = list[k]
let hero_vo = HeroController.getInstance().getModel().getHeroById(v.id)
if (this.partner_id == 0 && show_list.length == 0 ){ // -- 没有默认选中的英雄则选中第一个
this.partner_id = hero_vo.partner_id
}
show_list.push(hero_vo)
}
if(nx.dt.arrEmpty(show_list)){
return false;
}
this.hero_con.rebuild(show_list);
this.partnerList = show_list //show_list[i]
// }
this._onClickHero(this.partner_id_indedx)
},
// 选中切换
onFocusChanged: function( _item ) {
// 空
if( nx.dt.objEmpty( _item ) ||
nx.dt.objEmpty( _item.mdata ) ) {
return;
}
// 聚焦
this.hero_con.cleanFocus();
this.hero_con.addFocus( _item.index );
this._onClickHero(_item.index);
},
// -- 点击英雄头像
_onClickHero(index){
var self = this
this.partner_id_indedx = index;
// this.selected_nd.x =60+index*140;
let hero_vo = this.partnerList[index];
// -- 请求伙伴变强相关数据
self.cur_hero_item = hero_vo;
self.ctrl.setCurHeroVo(self.cur_hero_item);
self.ctrl.sender11070(hero_vo.partner_id)
},
refreshItemList(bid){
let list_data = []
for (let k in game.configs.stronger_data.data_stronger_two){
let v = game.configs.stronger_data.data_stronger_two[k]
let is_open = true
for (let i=0;i<v.limit.length;++i){
let lData = v.limit[i]
let open_status = this.model.checkStrongItemIsOpen(lData)
if (!open_status){
is_open = false
break
}
}
if (is_open){
let data = v;
let obj = this.model.getStrongerValByBid(bid, v.id)
data.score_val = obj.scroe_val
data.max_val = obj.max_val
data.type = 1;
list_data.push(data)
}
}
this.scroll_con.rebuild(list_data)
},
getCurHero( ){
return this.cur_hero_item
},
desPartners(){
// if(this.partnerList){
// for(let i=0;i<this.partnerList.length;++i){
// this.partnerList[i].deleteMe()
// }
this.partnerList = null;
// }
},
onDestroy(){
}
// update (dt) {},
});