"use strict";
|
cc._RF.push(module, '1158fjTQ45DN5n4eq7HPIef', 'stronger_panel');
|
// Scripts/mod/stronger/view/stronger_panel.js
|
|
"use strict";
|
|
// --------------------------------------------------------------------
|
// @author: xxx@syg.com(必填, 创建模块的人员)
|
// @description:
|
// 这里是描述这个窗体的作用的
|
// <br/>Create: 2019-03-29 14:49:49
|
// --------------------------------------------------------------------
|
var PathTool = require("pathtool");
|
|
var HeroController = require("hero_controller");
|
|
var StrongerController = require("stronger_controller");
|
|
var HeroConst = require("hero_const");
|
|
var StrongerPanelItem = require("Stronger_panel_item");
|
|
var CommonScrollView = require("common_scrollview");
|
|
var StrongerEvent = require("stronger_event");
|
|
var StrongerPanel = cc.Class({
|
"extends": BasePanel,
|
ctor: function ctor() {
|
this.prefabPath = PathTool.getPrefabPath("stronger", "stronger_panel");
|
this.partner_id = arguments[0] || 0; //-- 选中的英雄
|
|
this.ctrl = StrongerController.getInstance();
|
this.model = StrongerController.getInstance().getModel();
|
this.partner_id_indedx = 0;
|
this.partnerList = [];
|
this.cur_hero_item = null;
|
},
|
// 可以初始化声明一些变量的
|
initConfig: function initConfig() {},
|
// 初始化一些配置数据,可以用于声明一些变量之类的
|
initPanel: function initPanel() {
|
this.hero_con_nd = this.seekChild("hero_con");
|
this.selected_nd = this.seekChild("selected_nd");
|
this.scroll_con_nd = this.seekChild("scroll_con");
|
this.now_hero_val_lb = this.seekChild("now_hero_val", cc.Label);
|
this.loadingbar_exp_lb = this.seekChild("loadingbar_exp", cc.Label);
|
this.loadingbar_bg_pb = this.seekChild("loadingbar_bg", cc.ProgressBar);
|
var size = cc.size(this.scroll_con_nd.width, this.scroll_con_nd.height);
|
var setting_2 = {
|
item_class: StrongerPanelItem,
|
//-- 单元类
|
start_x: 0,
|
//-- 第一个单元的X起点
|
space_x: 10,
|
//-- x方向的间隔
|
start_y: 0,
|
//-- 第一个单元的Y起点
|
space_y: 8,
|
//-- y方向的间隔
|
item_width: 617,
|
//-- 单元的尺寸width
|
item_height: 142,
|
//-- 单元的尺寸height
|
row: 0,
|
//-- 行数,作用于水平滚动类型
|
col: 1 //-- 列数,作用于垂直滚动类型
|
|
};
|
this.item_scroll = new CommonScrollView();
|
this.item_scroll.createScroll(this.scroll_con_nd, cc.v2(-size.width / 2, 0), ScrollViewDir.vertical, ScrollViewStartPos.top, size, setting_2, cc.v2(0, 0));
|
this.createHeroList();
|
},
|
// 注册事件监听的接口,不需要手动调用,如果是使用gcore.GlobalEvent监听,可以直接调用addGlobalEvent
|
registerEvent: function registerEvent() {
|
var self = this;
|
this.addGlobalEvent(StrongerEvent.UPDATE_SCROE, function (data) {
|
if (self.cur_hero_item) {
|
var cur_hero_vo = self.cur_hero_item.getData();
|
|
if (cur_hero_vo.bid == data.partner_bid) {
|
this.refreshViewByHero(cur_hero_vo);
|
}
|
}
|
}.bind(this));
|
},
|
// 预制体加载完成之后,添加到对应主节点之后的回调可以设置一些数据了
|
onShow: function onShow(params) {},
|
// 面板设置不可见的回调,这里做一些不可见的屏蔽处理
|
onHide: function onHide() {},
|
// --创建英雄列表
|
createHeroList: function createHeroList() {
|
var _this = this;
|
|
var self = this; // --只显示上阵英雄
|
|
var list = HeroController.getInstance().getModel().getMyPosList();
|
var show_list = [];
|
|
for (var k in list) {
|
//k,v in pairs(list) do
|
var v = list[k];
|
var hero_vo = HeroController.getInstance().getModel().getHeroById(v.id);
|
|
if (self.partner_id == 0 && show_list.length == 0) {
|
// -- 没有默认选中的英雄则选中第一个
|
self.partner_id = hero_vo.partner_id;
|
}
|
|
show_list.push(hero_vo);
|
}
|
|
if (show_list.length == 0) return;
|
|
var _loop = function _loop(i) {
|
var hero_item = ItemsPool.getInstance().getItem("hero_exhibition_item");
|
hero_item.setData(show_list[i]);
|
hero_item.setParent(_this.hero_con_nd);
|
hero_item.show();
|
hero_item.setScale(0.8);
|
hero_item.setPosition(60 + i * 110, 0);
|
hero_item.addCallBack(function () {
|
if (i == this.partner_id_indedx) return;
|
|
this._onClickHero(i);
|
}.bind(_this));
|
_this.partnerList[i] = hero_item; //show_list[i]
|
};
|
|
for (var i = 0; i < show_list.length; i++) {
|
_loop(i);
|
}
|
|
this._onClickHero(this.partner_id_indedx);
|
},
|
// -- 点击英雄头像
|
_onClickHero: function _onClickHero(index) {
|
var self = this;
|
this.partner_id_indedx = index;
|
|
if (this.selected_nd) {
|
this.selected_nd.setPosition(60 + index * 110, -10);
|
}
|
|
var hero_vo = this.partnerList[index].getData(); // -- 请求伙伴变强相关数据
|
|
self.cur_hero_item = this.partnerList[index];
|
self.ctrl.sender11070(hero_vo.partner_id);
|
},
|
// -- 刷新为某个英雄的相关数据
|
refreshViewByHero: function refreshViewByHero(hero_vo) {
|
var self = this;
|
self.now_hero_val_lb.string = hero_vo.name;
|
var bar = self.model.getTotalAndMaxValByBid(hero_vo.bid);
|
var total_val = bar.total,
|
max_val = bar.max;
|
self.loadingbar_exp_lb.string = total_val + "/" + max_val;
|
this.loadingbar_bg_pb.progress = total_val / max_val;
|
self.refreshItemList(hero_vo.bid);
|
},
|
refreshItemList: function refreshItemList(bid) {
|
var list_data = [];
|
|
for (var k in Config.stronger_data.data_stronger_two) {
|
//k,v in pairs(Config.stronger_data.data_stronger_two) do
|
var v = Config.stronger_data.data_stronger_two[k];
|
var is_open = true;
|
|
for (var i = 0; i < v.limit.length; ++i) {
|
//_,lData in pairs(v.limit) do
|
var lData = v.limit[i];
|
var open_status = this.model.checkStrongItemIsOpen(lData);
|
|
if (open_status == false) {
|
is_open = false;
|
break;
|
}
|
}
|
|
if (is_open) {
|
var data = Utils.deepCopy(v);
|
var obj = this.model.getStrongerValByBid(bid, v.id);
|
data.score_val = obj.scroe_val;
|
data.max_val = obj.max_val;
|
list_data.push(data);
|
}
|
}
|
|
this.item_scroll.setData(list_data);
|
},
|
getCurHero: function getCurHero() {
|
return this.cur_hero_item;
|
},
|
// 当面板从主节点释放掉的调用接口,需要手动调用,而且也一定要调用
|
onDelete: function onDelete() {
|
if (this.item_scroll) {
|
this.item_scroll.deleteMe();
|
this.item_scroll = null;
|
}
|
|
if (this.partnerList) {
|
for (var i = 0; i < this.partnerList.length; ++i) {
|
this.partnerList[i].deleteMe();
|
}
|
|
this.partnerList = null;
|
}
|
}
|
});
|
module.exports = StrongerPanel;
|
|
cc._RF.pop();
|