"use strict";
|
cc._RF.push(module, '08322PJCvtAc7tvTp5Kb7PD', 'hero_main_upgrade_star_panel');
|
// Scripts/mod/hero/view/hero_main_upgrade_star_panel.js
|
|
"use strict";
|
|
// --------------------------------------------------------------------
|
// @author: xxx@syg.com(必填, 创建模块的人员)
|
// @description:
|
// 这里是描述这个窗体的作用的
|
// <br/>Create: {DATE}
|
// --------------------------------------------------------------------
|
var PathTool = require("pathtool");
|
|
var HERO_WIDTH = 120;
|
|
var HeroConst = require("hero_const");
|
|
var HeroCalculate = require("hero_calculate");
|
|
var HeroEvent = require("hero_event");
|
|
var UpgradeStarPanel = cc.Class({
|
"extends": BasePanel,
|
ctor: function ctor() {
|
this.prefabPath = PathTool.getPrefabPath("hero", "hero_main_tab_upgrade_star_panel");
|
this.ctrl = arguments[0];
|
this.model = this.ctrl.getModel();
|
},
|
// 可以初始化声明一些变量的
|
initConfig: function initConfig() {
|
this.need_heros = {}; // 英雄合成材料
|
|
this.hero_item_cache = []; // 英雄item缓存
|
|
this.selcet_hero_data = {};
|
},
|
// 初始化一些配置数据,可以用于声明一些变量之类的
|
initPanel: function initPanel() {
|
this.left_star_node = this.seekChild("left_star_node");
|
this.right_star_node = this.seekChild("right_star_node");
|
this.left_skill_item_nd = this.seekChild("left_skill_item");
|
this.right_skill_item_nd = this.seekChild("right_skill_item");
|
this.skill_arrow_nd = this.seekChild("skill_arrow");
|
this.skill_container_nd = this.seekChild("skill_container");
|
this.attr_container_nd = this.seekChild("attr_container");
|
this.star_arrow_nd = this.seekChild("star_arrow");
|
this.attr_ori_pos = this.attr_container_nd.x;
|
this.hero_item_container_nd = this.seekChild("hero_item_container"); // 按钮显示
|
|
this.up_btn_nd = this.seekChild("up_btn");
|
this.btn_title_nd = this.seekChild("btn_title");
|
this.btn_title_lb = this.seekChild("btn_title", cc.Label);
|
this.btn_item_nd = this.seekChild("btn_item");
|
this.item_icon_sp = this.seekChild("item_icon", cc.Sprite);
|
this.item_txt_lb = this.seekChild("item_txt", cc.Label);
|
this.fuse_btn_nd = this.seekChild("fuse_btn");
|
this.item_num_nd = this.seekChild("item_num");
|
this.item_num_icon_sp = this.seekChild("item_num_icon", cc.Sprite);
|
this.item_have_lb = this.seekChild("item_have", cc.Label);
|
this.btn_red_nd = this.seekChild("btn_red");
|
this.left_stars = {};
|
this.right_stars = {};
|
|
for (var star_i = 0; star_i < 5; star_i++) {
|
this.left_stars[star_i] = this.left_star_node.getChildByName("star_item_" + star_i);
|
this.right_stars[star_i] = this.right_star_node.getChildByName("star_item_" + star_i);
|
}
|
|
this.common_9005_nd = this.seekChild("common_9005"); // 技能
|
|
var SkillItem = require("skill_item");
|
|
this.max_skill_item = new SkillItem();
|
this.max_skill_item.setParent(this.skill_arrow_nd);
|
this.max_skill_item.setScale(0.8);
|
this.left_skill_item = new SkillItem();
|
this.left_skill_item.setParent(this.left_skill_item_nd);
|
this.left_skill_item.setScale(0.8);
|
this.left_skill_item.setShowTips(true);
|
this.right_skill_item = new SkillItem();
|
this.right_skill_item.setParent(this.right_skill_item_nd);
|
this.right_skill_item.setScale(0.8);
|
this.right_skill_item.setShowTips(true);
|
this.attri_items = {};
|
|
for (var attr_i = 0; attr_i < 3; attr_i++) {
|
this.attri_items[attr_i] = {};
|
this.attri_items[attr_i]["item_nd"] = this.seekChild("param" + (attr_i + 1));
|
this.attri_items[attr_i]["key_nd"] = this.seekChild(this.attri_items[attr_i]["item_nd"], "key");
|
this.attri_items[attr_i]["left_nd"] = this.seekChild(this.attri_items[attr_i]["item_nd"], "left");
|
this.attri_items[attr_i]["right_nd"] = this.seekChild(this.attri_items[attr_i]["item_nd"], "right");
|
this.attri_items[attr_i]["arrow_nd"] = this.seekChild(this.attri_items[attr_i]["item_nd"], "arrow_icon");
|
}
|
|
this.up_btn_nd.on(cc.Node.EventType.TOUCH_END, this.onClickUpBtn, this);
|
},
|
// 注册事件监听的接口,不需要手动调用,如果是使用gcore.GlobalEvent监听,可以直接调用addGlobalEvent
|
registerEvent: function registerEvent() {
|
this.addGlobalEvent(HeroEvent.Del_Hero_Event, function () {
|
this.updateWidgets();
|
}, this);
|
this.fuse_btn_nd.on(cc.Node.EventType.TOUCH_END, function () {
|
if (this.hero_vo) {
|
require("hero_controller").getInstance().openHeroUpgradeStarFuseWindow(true, this.hero_vo);
|
}
|
}, this);
|
},
|
// 预制体加载完成之后,添加到对应主节点之后的回调可以设置一些数据了
|
onShow: function onShow(params) {
|
if (!params) return;
|
this.hero_vo = params;
|
this.updateWidgets();
|
},
|
updateHerovo: function updateHerovo(hero_vo) {
|
this.hero_vo = hero_vo;
|
if (!this.root_wnd) return;
|
this.updateWidgets();
|
},
|
// 面板设置不可见的回调,这里做一些不可见的屏蔽处理
|
onHide: function onHide() {},
|
// 当面板从主节点释放掉的调用接口,需要手动调用,而且也一定要调用
|
onDelete: function onDelete() {
|
for (var select_index in this.selcet_hero_data) {
|
var select_heros = this.selcet_hero_data[select_index];
|
|
for (var hero_i in select_heros) {
|
select_heros[hero_i].is_ui_select = false;
|
select_heros[hero_i].is_ui_lock = false;
|
}
|
}
|
|
if (this.max_skill_item) {
|
this.max_skill_item.deleteMe();
|
}
|
|
if (this.left_skill_item) {
|
this.left_skill_item.deleteMe();
|
}
|
|
if (this.right_skill_item) {
|
this.right_skill_item.deleteMe();
|
}
|
|
for (var i in this.need_hero_items) {
|
if (this.need_hero_items[i]) {
|
this.need_hero_items[i].getRootWnd(function (root_wnd) {
|
root_wnd.nameLabel.node.destroy();
|
root_wnd.nameLabel = null;
|
}.bind(this));
|
this.need_hero_items[i].deleteMe();
|
this.need_hero_items[i] = null;
|
}
|
}
|
},
|
updateWidgets: function updateWidgets() {
|
if (!this.root_wnd) return;
|
if (!this.hero_vo) return;
|
var cur_star_key = this.hero_vo.bid + "_" + this.hero_vo.star;
|
var next_satr_key = this.hero_vo.bid + "_" + (this.hero_vo.star + 1);
|
this.cur_star_cfg = gdata("partner_data", "data_partner_star", cur_star_key);
|
this.next_star_cfg = gdata("partner_data", "data_partner_star", next_satr_key);
|
|
if (this.next_star_cfg) {// 满星
|
} else {}
|
|
this.updageStars();
|
this.updagetAttrs(); // 技能
|
|
var skill_info_items = this.getDifferenceSkill();
|
this.max_skill_item.setVisible(false);
|
this.left_skill_item.setVisible(false);
|
this.right_skill_item.setVisible(false);
|
|
if (skill_info_items.length == 1) {
|
this.max_skill_item.setVisible(true);
|
this.max_skill_item.setData(skill_info_items[0]);
|
} else if (skill_info_items.length == 2) {
|
this.left_skill_item.setVisible(true);
|
this.right_skill_item.setVisible(true);
|
this.left_skill_item.setData(skill_info_items[0]);
|
this.right_skill_item.setData(skill_info_items[1]);
|
}
|
|
if (this.hero_vo.star >= this.model.hero_info_upgrade_star_param && this.hero_vo.star < this.model.hero_info_upgrade_star_param3) {
|
if (skill_info_items.length == 0) {
|
this.skill_container_nd.active = false;
|
this.attr_container_nd.x = this.star_arrow_nd.x;
|
} else {
|
this.skill_container_nd.active = true;
|
this.attr_container_nd.anchorX = 0;
|
this.attr_container_nd.x = this.attr_ori_pos;
|
}
|
} else {
|
this.skill_container_nd.active = false;
|
this.attr_container_nd.x = this.star_arrow_nd.x;
|
} // 升星英雄材料
|
|
|
for (var select_index in this.selcet_hero_data) {
|
var select_heros = this.selcet_hero_data[select_index];
|
|
for (var hero_i in select_heros) {
|
select_heros[hero_i].is_ui_select = false;
|
}
|
}
|
|
this.selcet_hero_data = {}; // 选择的英雄列表
|
|
this.hero_need_data = []; // 英雄需求数据
|
|
this.need_hero_items = {};
|
|
for (var hero_i in this.need_heros) {
|
this.need_heros[hero_i].setVisible(false);
|
this.hero_item_cache.push(this.need_heros[hero_i]);
|
delete this.need_heros[hero_i];
|
} // 按钮显示
|
|
|
this.fuse_btn_nd.active = true;
|
this.btn_item_nd.active = false;
|
this.item_num_nd.active = false;
|
this.btn_title_nd.active = true;
|
this.is_item_enough = true;
|
|
if (!this.next_star_cfg) {
|
this.btn_title_nd.active = true;
|
this.btn_item_nd.active = false;
|
this.btn_title_lb.stirng = Utils.TI18N("已满级");
|
} else {
|
if (this.hero_vo.star >= this.model.hero_info_upgrade_star_param) {
|
// 六星以上逻辑
|
if (this.next_star_cfg.other_expend) {
|
this.btn_item_nd.active = true;
|
this.item_num_nd.active = true;
|
this.btn_title_nd.active = false;
|
|
var BackpackController = require("backpack_controller");
|
|
var item_data = gdata("item_data", "data_unit1", this.next_star_cfg.other_expend[0][0]);
|
var have_count = BackpackController.getInstance().getModel().getBackPackItemNumByBid(item_data.id);
|
|
if (have_count >= this.next_star_cfg.other_expend[0][1]) {
|
this.is_item_enough = true;
|
} else {
|
this.is_item_enough = false;
|
}
|
|
var count_str = Utils.getMoneyString(have_count);
|
var num_str = count_str + "/" + this.next_star_cfg.other_expend[0][1];
|
this.item_have_lb.string = num_str;
|
var btnm_title_str = Utils.TI18N(this.next_star_cfg.other_expend[0][1] + "升星");
|
var item_res_path = PathTool.getIconPath("item", item_data.icon);
|
this.item_txt_lb.string = btnm_title_str;
|
this.loadRes(item_res_path, function (item_sf) {
|
this.item_icon_sp.spriteFrame = item_sf;
|
this.item_num_icon_sp.spriteFrame = item_sf;
|
}.bind(this));
|
} else {
|
this.btn_title_lb.string = Utils.TI18N("升星");
|
}
|
|
this.fuse_btn_nd.active = false;
|
this.common_9005_nd.active = true;
|
} else {
|
// 4、5星逻辑
|
this.btn_title_lb.string = Utils.TI18N("升星");
|
this.fuse_btn_nd.active = true;
|
this.common_9005_nd.active = false;
|
}
|
} // 按钮红点
|
|
|
var is_redpoint = HeroCalculate.getInstance().checkSingleHeroUpgradeStarRedPoint(this.hero_vo);
|
this.btn_red_nd.active = !!is_redpoint;
|
this.updateNeedHerosInfo();
|
this.updateCenterRedpoint();
|
},
|
// 更新升星材料
|
updateNeedHerosInfo: function updateNeedHerosInfo() {
|
var _this = this;
|
|
if (!this.next_star_cfg) return; // 随机的{1,4,2} : 1 表示阵营 4: 表示星级 2表示数量
|
// 指定的 {10402,4,1} : 10402: 表示bid, 4: 表示星级 1:表示数量
|
// 指定的
|
|
var item_data_index = 0;
|
var need_index = 0;
|
this.hero_need_data = [];
|
this.need_index_type = {};
|
|
for (var hero_i = 0; hero_i < this.next_star_cfg.expend2.length; hero_i++) {
|
if (!this.selcet_hero_data[need_index]) {
|
this.selcet_hero_data[need_index] = [];
|
}
|
|
this.need_index_type[need_index] = 1;
|
var expendinfo = this.next_star_cfg.expend2[hero_i];
|
this.hero_need_data.push(this.getHeroData(expendinfo[0], null, expendinfo[1], expendinfo[2], this.selcet_hero_data[need_index].length, need_index));
|
need_index++;
|
} // 随机的
|
|
|
for (var hero_i = 0; hero_i < this.next_star_cfg.expend3.length; hero_i++) {
|
if (!this.selcet_hero_data[need_index]) {
|
this.selcet_hero_data[need_index] = [];
|
}
|
|
this.need_index_type[need_index] = 2;
|
var expendinfo = this.next_star_cfg.expend3[hero_i];
|
this.hero_need_data.push(this.getHeroData(null, expendinfo[0], expendinfo[1], expendinfo[2], this.selcet_hero_data[need_index].length, need_index));
|
need_index++;
|
}
|
|
var _loop = function _loop(_hero_i) {
|
item_x = (HERO_WIDTH * 0.8 + 10) * _hero_i;
|
hero_item = null;
|
|
if (!_this.need_hero_items[_hero_i]) {
|
if (_this.hero_item_cache.length > 0) {
|
hero_item = _this.hero_item_cache.shift();
|
hero_item.setVisible(true);
|
} else {
|
hero_item = ItemsPool.getInstance().getItem("hero_exhibition_item");
|
hero_item.setParent(_this.hero_item_container_nd);
|
hero_item.setScale(0.8);
|
hero_item.setExtendData({
|
from_type: HeroConst.ExhibitionItemType.eUpStar,
|
scale: 0.8
|
});
|
}
|
|
_this.need_hero_items[_hero_i] = hero_item;
|
hero_item.setPosition(item_x, 0);
|
default_head_id = _this.model.getRandomHeroHeadByQuality(_this.hero_need_data[_hero_i].star);
|
default_head_path = PathTool.getIconPath("item", default_head_id);
|
hero_item.setDefaultHead(default_head_path);
|
hero_item.addCallBack(_this.onClickHeroItem.bind(_this));
|
_this.need_heros[_hero_i] = hero_item;
|
hero_item.need_index = _hero_i;
|
} else {
|
hero_item = _this.need_hero_items[_hero_i];
|
}
|
|
hero_item.setData(_this.hero_need_data[_hero_i]);
|
hero_item.show();
|
hero_item.getRootWnd(function (root_wnd) {
|
var data = this.hero_need_data[_hero_i];
|
var text;
|
|
if (data.bid) {
|
text = Config.partner_data.data_partner_base[data.bid].name;
|
} else {
|
text = data.star + "星英雄";
|
}
|
|
if (root_wnd.nameLabel == null) {
|
var label = new cc.Node().addComponent(cc.Label);
|
label.node.y = -(root_wnd.height / 2) - 25;
|
label.node.color = new cc.Color(100, 50, 35);
|
label.fontSize = 22;
|
label.lineHeight = 23;
|
label.horizontalAlign = cc.macro.TextAlignment.CENTER;
|
label.verticalAlign = cc.macro.TextAlignment.CENTER;
|
root_wnd.nameLabel = label;
|
root_wnd.addChild(label.node);
|
}
|
|
root_wnd.nameLabel.string = Utils.TI18N(text);
|
}.bind(_this));
|
};
|
|
for (var _hero_i = 0; _hero_i < this.hero_need_data.length; _hero_i++) {
|
var item_x;
|
var hero_item;
|
var default_head_id;
|
var default_head_path;
|
|
_loop(_hero_i);
|
}
|
},
|
onClickHeroItem: function onClickHeroItem(hero_item) {
|
this.ctrl.openHeroUpgradeStarSelectPanel(true, hero_item.data, this.selcet_hero_data, 2, null, this.updateNeedHero.bind(this, hero_item.need_index), this.hero_vo);
|
},
|
getHeroData: function getHeroData(bid, camp_type, star, count, select_count, need_index) {
|
var data = {};
|
data.star = star;
|
data.count = count || 0;
|
data.lev = cc.js.formatStr("%s/%s", select_count || 0, count);
|
data.need_index = need_index;
|
data.select_count = select_count;
|
|
if (select_count > 0) {
|
data.head_gray = false;
|
} else {
|
data.head_gray = true;
|
}
|
|
if (!bid) {
|
data.bid = 0;
|
data.camp_type = camp_type;
|
} else {
|
var base_cofig = Config.partner_data.data_partner_base[bid];
|
|
if (base_cofig) {
|
data.bid = bid;
|
data.camp_type = base_cofig.camp_type;
|
} else {
|
return null;
|
}
|
}
|
|
return data;
|
},
|
// 更新属性显示
|
updagetAttrs: function updagetAttrs() {
|
if (!this.next_star_cfg) return; // cc.log(this.next_star_cfg);
|
// cc.log(this.next_star_cfg.attr_show);
|
|
var attri_info = this.next_star_cfg.attr_show;
|
|
for (var arrt_i = 0; arrt_i < 3; arrt_i++) {
|
var attr_item = this.attri_items[arrt_i];
|
|
if (attri_info[arrt_i]) {
|
attr_item["item_nd"].active = true;
|
|
if (attri_info[arrt_i][0]) {
|
attr_item["key_nd"].active = true;
|
attr_item["key_nd"].getComponent(cc.Label).string = attri_info[arrt_i][0];
|
}
|
|
if (attri_info[arrt_i][1]) {
|
attr_item["left_nd"].active = true;
|
attr_item["left_nd"].getComponent(cc.Label).string = attri_info[arrt_i][1];
|
} else {
|
attr_item["left_nd"].active = false;
|
attr_item["arrow_nd"].active = false;
|
}
|
|
if (attri_info[arrt_i][2]) {
|
attr_item["right_nd"].active = true;
|
attr_item["right_nd"].getComponent(cc.Label).string = attri_info[arrt_i][2];
|
} else {
|
attr_item["right_nd"].active = false;
|
}
|
} else {
|
attr_item["item_nd"].active = false;
|
}
|
}
|
},
|
// 更新星星显示
|
updageStars: function updageStars() {
|
var cur_star = this.hero_vo.star;
|
var next_star = this.hero_vo.star + 1;
|
var cur_star_info = this.getStarInfo(cur_star);
|
var next_star_info = this.getStarInfo(next_star);
|
|
for (var star_i = 0; star_i < 5; star_i++) {
|
if (star_i < cur_star_info.star_num) {
|
this.left_stars[star_i].active = true;
|
this.left_stars[star_i].scale = cur_star_info.star_scale;
|
var star_sp = this.left_stars[star_i].getComponent(cc.Sprite);
|
var star_path = PathTool.getUIIconPath("common", cur_star_info.star_res);
|
this.loadRes(star_path, function (star_sp, star_sf) {
|
star_sp.spriteFrame = star_sf;
|
}.bind(this, star_sp));
|
|
if (cur_star_info.star_label) {
|
var starNum = this.left_stars[star_i].starNum;
|
|
if (starNum == null) {
|
var node = new cc.Node();
|
node.y = -1;
|
var lab = node.addComponent(cc.Label);
|
lab.fontSize = 15;
|
lab.lineHeight = 16;
|
lab.horizontalAlign = cc.macro.TextAlignment.CENTER;
|
lab.verticalAlign = cc.macro.TextAlignment.CENTER;
|
node.addComponent(cc.LabelOutline).color = new cc.color(0, 0, 0);
|
this.left_stars[star_i].addChild(node);
|
this.left_stars[star_i].starNum = lab;
|
starNum = this.left_stars[star_i].starNum;
|
}
|
|
starNum.string = cur_star_info.star_label;
|
}
|
} else {
|
this.left_stars[star_i].active = false;
|
}
|
|
if (star_i < next_star_info.star_num) {
|
this.right_stars[star_i].active = true;
|
this.right_stars[star_i].scale = next_star_info.star_scale;
|
var star_sp = this.right_stars[star_i].getComponent(cc.Sprite);
|
var star_path = PathTool.getUIIconPath("common", next_star_info.star_res);
|
this.loadRes(star_path, function (star_sp, star_sf) {
|
star_sp.spriteFrame = star_sf;
|
}.bind(this, star_sp));
|
|
if (next_star_info.star_label) {
|
var _starNum = this.right_stars[star_i].starNum;
|
|
if (_starNum == null) {
|
var _node = new cc.Node();
|
|
_node.y = -1;
|
|
var _lab = _node.addComponent(cc.Label);
|
|
_lab.fontSize = 15;
|
_lab.horizontalAlign = cc.macro.TextAlignment.CENTER;
|
_lab.verticalAlign = cc.macro.TextAlignment.CENTER;
|
_node.addComponent(cc.LabelOutline).color = new cc.color(0, 0, 0);
|
this.right_stars[star_i].addChild(_node);
|
this.right_stars[star_i].starNum = _lab;
|
_starNum = this.right_stars[star_i].starNum;
|
}
|
|
_starNum.string = next_star_info.star_label;
|
}
|
} else {
|
this.right_stars[star_i].active = false;
|
}
|
}
|
},
|
getStarInfo: function getStarInfo(star_num) {
|
var star_info = {};
|
var star_res = "";
|
var star_scal = 1;
|
|
if (star_num > 0 && star_num <= 5) {
|
star_res = "common_90074";
|
} else if (star_num > 5 && star_num <= 9) {
|
star_num = star_num - 5;
|
star_res = "common_90075";
|
} else if (star_num > 9) {
|
star_res = "common_90073";
|
star_scal = 1.2;
|
|
if (star_num - 10) {
|
star_info["star_label"] = star_num - 10;
|
}
|
|
star_num = 1; //star_num - 9;
|
}
|
|
star_info["star_num"] = star_num;
|
star_info["star_scale"] = star_scal;
|
star_info["star_res"] = star_res;
|
return star_info;
|
},
|
// 获取第一组不同的技能,满星返回一个
|
getDifferenceSkill: function getDifferenceSkill() {
|
var skill_info = [];
|
|
if (!this.next_star_cfg) {
|
if (this.cur_star_cfg && this.cur_star_cfg.skills.length > 0) {
|
skill_info.push(this.cur_star_cfg.skills[0][1]);
|
return skill_info;
|
}
|
}
|
|
if (this.cur_star_cfg && this.next_star_cfg) {
|
for (var skill_i in this.cur_star_cfg.skills) {
|
if (this.cur_star_cfg.skills[skill_i][1] !== this.next_star_cfg.skills[skill_i][1]) {
|
skill_info.push(this.cur_star_cfg.skills[skill_i][1]);
|
skill_info.push(this.next_star_cfg.skills[skill_i][1]);
|
return skill_info;
|
}
|
}
|
}
|
|
return skill_info;
|
},
|
updateNeedHero: function updateNeedHero(need_index, select_info) {
|
this.selcet_hero_data = select_info;
|
this.updateNeedHerosInfo();
|
this.updateCenterRedpoint();
|
},
|
onClickUpBtn: function onClickUpBtn() {
|
var is_hero_enough = this.isHeroEnough();
|
|
if (is_hero_enough && this.is_item_enough) {
|
var request_date = this.getNeedHeroInfo();
|
this.ctrl.sender11005(this.hero_vo.partner_id, request_date.hero_list, request_date.random_list);
|
} else {
|
message(Utils.TI18N("所需材料不足"));
|
}
|
|
this.model.setUpgradeStarUpdateRecord(false);
|
},
|
isHeroEnough: function isHeroEnough() {
|
for (var need_i in this.hero_need_data) {
|
if (this.hero_need_data[need_i].select_count < this.hero_need_data[need_i].count) return false;
|
}
|
|
return true;
|
},
|
getNeedHeroInfo: function getNeedHeroInfo() {
|
var hero_list = [];
|
var random_list = [];
|
|
for (var type_i in this.need_index_type) {
|
var select_hero_list = this.selcet_hero_data[type_i];
|
|
for (var hero_i in select_hero_list) {
|
var hero_data = {};
|
hero_data.partner_id = select_hero_list[hero_i].partner_id;
|
|
if (this.need_index_type[type_i] === 1) {
|
hero_list.push(hero_data);
|
} else {
|
random_list.push(hero_data);
|
}
|
}
|
}
|
|
return {
|
hero_list: hero_list,
|
random_list: random_list
|
};
|
},
|
updateCenterRedpoint: function updateCenterRedpoint() {
|
var can_compose = true;
|
|
for (var item_i = 0; item_i < this.hero_need_data.length; ++item_i) {
|
var is_red = false;
|
var item_info = this.hero_need_data[item_i];
|
|
if (item_info.count != item_info.select_count) {
|
can_compose = false;
|
is_red = this.haveCanSelect(this.hero_need_data[item_i]);
|
}
|
|
this.need_hero_items[item_i].showRedPoint(is_red);
|
}
|
|
if (can_compose && this.is_item_enough) {
|
this.btn_red_nd.active = true;
|
} else {
|
this.btn_red_nd.active = false;
|
}
|
},
|
haveCanSelect: function haveCanSelect(select_hero) {
|
var all_hero_list = Utils.deepCopy(this.model.getAllHeroArray());
|
this.hero_list = [];
|
|
if (select_hero.bid === 0) {
|
// 不是指定英雄
|
for (var hero_i = 0; hero_i < all_hero_list.length; ++hero_i) {
|
if (all_hero_list[hero_i].camp_type === select_hero.camp_type || select_hero.camp_type === 0) {
|
if (all_hero_list[hero_i].star === select_hero.star && this.hero_vo && all_hero_list[hero_i].partner_id !== this.hero_vo.partner_id) {
|
if (!this.isOtherSelect(all_hero_list[hero_i])) this.hero_list.push(all_hero_list[hero_i]);
|
}
|
}
|
}
|
} else {
|
// 指定英雄
|
for (var hero_i = 0; hero_i < all_hero_list.length; ++hero_i) {
|
if (all_hero_list[hero_i].bid === select_hero.bid && this.hero_vo && all_hero_list[hero_i].partner_id !== this.hero_vo.partner_id) {
|
if (all_hero_list[hero_i].star === select_hero.star) {
|
if (!this.isOtherSelect(all_hero_list[hero_i])) this.hero_list.push(all_hero_list[hero_i]);
|
}
|
}
|
}
|
} // 是否已经选择
|
|
|
for (var hero_i = 0; hero_i < this.hero_list.length; ++hero_i) {
|
for (var select_i in this.selcet_hero_data) {
|
for (var select_hero_i = 0; select_hero_i < this.selcet_hero_data[select_i].length; ++select_hero_i) {
|
if (this.selcet_hero_data[select_i][select_hero_i].partner_id == this.hero_list[hero_i].partner_id) {
|
// this.hero_list.shift(hero_i, 1);
|
this.hero_list[hero_i].is_ui_select = true;
|
continue;
|
}
|
}
|
}
|
}
|
|
var num = 0;
|
|
for (var hero_i = 0; hero_i < this.hero_list.length; ++hero_i) {
|
if (!this.hero_list[hero_i].is_ui_select) num++;
|
}
|
|
if (num >= select_hero.count) return true;
|
return false; // 是否已经上阵或者已经锁定
|
// for (var hero_i in this.hero_list) {
|
// if (this.hero_list[hero_i].is_in_form || this.hero_list[hero_i].is_lock) {
|
// this.hero_list[hero_i].is_ui_lock = true;
|
// }
|
// }
|
},
|
isOtherSelect: function isOtherSelect(hero_vo) {
|
for (var select_i in this.selcet_hero_data) {
|
for (var hero_i = 0; hero_i < this.selcet_hero_data[select_i].length; ++hero_i) {
|
var selcet_hero = this.selcet_hero_data[select_i][hero_i];
|
|
if (hero_vo.partner_id === selcet_hero.partner_id) {
|
return true;
|
}
|
}
|
}
|
|
return false;
|
}
|
});
|
|
cc._RF.pop();
|