"use strict";
|
cc._RF.push(module, '7daa2efbh5I7Jx/f+dWAmsi', 'hero_reset_window');
|
// Scripts/mod/hero/view/hero_reset_window.js
|
|
"use strict";
|
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
// --------------------------------------------------------------------
|
// @author: xxx@syg.com(必填, 创建模块的人员)
|
// @description:
|
// 这里是描述这个窗体的作用的
|
// <br/>Create: 2019-03-02 15:13:30
|
// --------------------------------------------------------------------
|
var PathTool = require("pathtool");
|
|
var HeroConst = require("hero_const");
|
|
var HeroEvent = require("hero_event");
|
|
var MallController = require("mall_controller");
|
|
var MallConst = require("mall_const");
|
|
var BackpackController = require("backpack_controller");
|
|
var BackPackConst = require("backpack_const");
|
|
var BackpackEvent = require("backpack_event");
|
|
var HeroResetWindow = cc.Class({
|
"extends": BaseView,
|
ctor: function ctor() {
|
this.prefabPath = PathTool.getPrefabPath("hero", "hero_reset_window");
|
this.viewTag = SCENE_TAG.ui; //该窗体所属ui层级,全屏ui需要在ui层,非全屏ui在dialogue层,这个要注意
|
|
this.win_type = WinType.Full; //是否是全屏窗体 WinType.Full, WinType.Big, WinType.Mini, WinType.Tips
|
|
this.ctrl = arguments[0];
|
this.model = this.ctrl.getModel();
|
},
|
// 初始化一些配置数据,可以用于声明一些变量之类的
|
initConfig: function initConfig() {
|
this.cur_camp = 0;
|
this.select_heros = []; //最多选择10个
|
|
this.select_max_count = 10;
|
this.is_send_proto = false;
|
},
|
// 预制体加载完成之后的回调,可以在这里捕获相关节点或者组件
|
openCallBack: function openCallBack() {
|
var _tab_name_list,
|
_this = this;
|
|
this.main_panel_nd = this.seekChild("main_container");
|
this.close_btn_nd = this.seekChild("close_btn");
|
this.camp_node_nd = this.seekChild("camp_node");
|
this.img_select_nd = this.seekChild("img_select");
|
this.hero_list_nd = this.seekChild("hero_list");
|
this.no_vedio_image_nd = this.seekChild("no_vedio_image");
|
this.tips_lb = this.seekChild(this.no_vedio_image_nd, "no_vedio_label", cc.Label);
|
this.putin_btn_nd = this.seekChild("putin_btn");
|
this.disband_btn_nd = this.seekChild("disband_btn");
|
this.partner_btn_nd = this.seekChild("partner_btn");
|
this.tip_btn_nd = this.seekChild("tip_btn");
|
this.look_btn_nd = this.seekChild("look_btn");
|
this.hero_count_lb = this.seekChild("hero_count", cc.Label);
|
this.input_count_lb = this.seekChild("input_count", cc.Label);
|
this.tab_container_nd = this.seekChild("tab_container");
|
this.hero_tab = this.seekChild("hero_xianji");
|
this.debris_tab = this.seekChild("debris_xianji");
|
this.resolve_count_lb = this.seekChild(this.debris_tab, "resolve_count", cc.EditBox);
|
this.redu_btn = this.seekChild(this.debris_tab, "redu_btn", cc.Button);
|
this.add_btn = this.seekChild(this.debris_tab, "add_btn", cc.Button);
|
this.max_btn = this.seekChild(this.debris_tab, "max_btn", cc.Button);
|
this.debris_btn = this.seekChild(this.debris_tab, "debris_btn", cc.Button);
|
this.redu_lb = this.redu_btn.node.getChildByName("Label").getComponent(cc.LabelOutline);
|
this.add_lb = this.add_btn.node.getChildByName("Label").getComponent(cc.LabelOutline);
|
this.max_lb = this.max_btn.node.getChildByName("Label").getComponent(cc.LabelOutline);
|
this.resolve_count_lb.node.on('text-changed', function (editbox) {
|
if (!this.selectChipIndex || this.selectChipIndex == -1) {
|
editbox.string = "0";
|
return;
|
}
|
|
if (editbox.string.length > 1 && editbox.string[0] == "0") {
|
editbox.string = editbox.string.slice(1, editbox.string.length);
|
return;
|
}
|
|
var num = Number(editbox.string);
|
|
if (num > this.chipMaxNum) {
|
editbox.string = this.chipMaxNum;
|
}
|
|
this.checkBtnState();
|
}, this);
|
this.redu_btn.node.on("click", this.onClickBtnRedu, this);
|
this.add_btn.node.on("click", this.onClickBtnAdd, this);
|
this.max_btn.node.on("click", this.onClickBtnMax, this);
|
this.debris_btn.node.on("click", this.onDisbandChip, this);
|
var tab_name_list = (_tab_name_list = {}, _defineProperty(_tab_name_list, 1, Utils.TI18N("英雄献祭")), _defineProperty(_tab_name_list, 2, Utils.TI18N("碎片献祭")), _tab_name_list);
|
this.tab_list = {};
|
|
var _loop = function _loop(i) {
|
var object = {};
|
object.tab_btn = _this.tab_container_nd.getChildByName("toggle" + i);
|
object.index = i;
|
object.toggle = object.tab_btn.getComponent(cc.Toggle);
|
object.tab_btn.getChildByName("title").getComponent(cc.Label).string = tab_name_list[i];
|
object.tab_btn.on("toggle", function () {
|
Utils.playButtonSound(1);
|
this.changeSelectedTab(i);
|
}, _this);
|
_this.tab_list[i] = object;
|
};
|
|
for (var i = 1; i <= 2; ++i) {
|
_loop(i);
|
}
|
|
this.input_count_lb.string = Utils.TI18N("已放入英雄:" + "0/" + this.select_max_count); // this.anima_sk = this.seekChild("anima", sp.Skeleton);
|
// this.anima_sk.setCompleteListener(this.onAnimaFinish.bind(this));
|
|
var bg = this.seekChild("bg", cc.Sprite);
|
bg.node.scale = FIT_SCALE * 2;
|
this.loadRes(PathTool.getBigBg("hero/hero_reset_bg"), function (res) {
|
bg.spriteFrame = res;
|
}.bind(this));
|
this.reset_effect = this.seekChild("play_effect1", sp.Skeleton);
|
this.reset_effect.setCompleteListener(this.onAnimaFinish.bind(this));
|
var sketon_path = PathTool.getSpinePath("E24121", "action");
|
this.loadRes(sketon_path, function (skeleton_data) {
|
this.reset_effect.skeletonData = skeleton_data;
|
this.reset_effect.setAnimation(0, PlayerAction.action_1, true);
|
}.bind(this));
|
this.camp_btns = {};
|
|
for (var camp_i = 0; camp_i < 6; camp_i++) {
|
this.camp_btns[camp_i] = this.camp_node_nd.getChildByName("camp_btn" + camp_i);
|
this.camp_btns[camp_i].camp_tag = camp_i;
|
var camp_sp = this.camp_btns[camp_i].getComponent(cc.Sprite);
|
this.camp_btns[camp_i].on(cc.Node.EventType.TOUCH_END, this.didClickCamp, this);
|
}
|
|
this.close_btn_nd.on(cc.Node.EventType.TOUCH_END, this.onClickCloseBtn, this);
|
this.putin_btn_nd.on(cc.Node.EventType.TOUCH_END, this.onClickPutinBtn, this);
|
this.disband_btn_nd.on(cc.Node.EventType.TOUCH_END, this.onClickDisbandBtn, this);
|
this.partner_btn_nd.on(cc.Node.EventType.TOUCH_END, this.onClickPartnerBtn, this);
|
this.tip_btn_nd.on(cc.Node.EventType.TOUCH_END, this.onClickTipBtn, this);
|
this.look_btn_nd.on(cc.Node.EventType.TOUCH_END, this.onClickLookBtn, this); // this.bigbg_56_1 = this.seekChild("bigbg_56_1",cc.Sprite);
|
// this.loadRes(PathTool.getBigBg("bigbg_62"),function(sp){
|
// this.bigbg_56_1.spriteFrame = sp;
|
// }.bind(this))
|
|
this.initHeroList();
|
},
|
// 注册事件监听的接口,不需要手动调用,如果是使用gcore.GlobalEvent监听,可以直接调用addGlobalEvent
|
registerEvent: function registerEvent() {
|
// 删除英雄
|
this.addGlobalEvent(HeroEvent.Del_Hero_Event, function (hero_list) {
|
this.select_heros = [];
|
this.updateCamp();
|
this.input_count_lb.string = Utils.TI18N("已放入英雄:" + "0/" + this.select_max_count);
|
this.is_send_proto = false;
|
}.bind(this));
|
this.addGlobalEvent(BackpackEvent.ADD_GOODS, function (bag_code, add_list) {
|
if (bag_code != BackPackConst.Bag_Code.BACKPACK) {
|
return;
|
}
|
|
if (!add_list || Utils.next(add_list) == null || this.select_index != HeroConst.SacrificeType.eChipSacrifice) return;
|
var need_update = false;
|
|
for (var i in add_list) {
|
var v = add_list[i];
|
|
if (v.config && v.config.sub_type == BackPackConst.item_tab_type.HERO) {
|
need_update = true;
|
break;
|
}
|
}
|
|
if (need_update) {
|
this.chipListCamp();
|
}
|
}.bind(this));
|
this.addGlobalEvent(BackpackEvent.DELETE_GOODS, function (bag_code, del_list) {
|
this.is_send_proto = false;
|
|
if (bag_code != BackPackConst.Bag_Code.BACKPACK) {
|
return;
|
}
|
|
if (!del_list || Utils.next(del_list) == null || this.select_index != HeroConst.SacrificeType.eChipSacrifice) return;
|
var need_update = false;
|
|
for (var i in del_list) {
|
var v = del_list[i];
|
|
if (BackPackConst.item_tab_type.HERO == v.config.sub_type) {
|
need_update = true;
|
break;
|
}
|
}
|
|
if (need_update) {
|
this.chipListCamp();
|
}
|
}.bind(this));
|
this.addGlobalEvent(BackpackEvent.MODIFY_GOODS_NUM, function (bag_code, change_list) {
|
this.is_send_proto = false;
|
|
if (bag_code != BackPackConst.Bag_Code.BACKPACK) {
|
return;
|
}
|
|
if (!change_list || Utils.next(change_list) == null || this.select_index != HeroConst.SacrificeType.eChipSacrifice) return;
|
var need_update = false;
|
|
for (var i in change_list) {
|
var v = change_list[i];
|
|
if (v.config && BackPackConst.item_tab_type.HERO == v.config.sub_type) {
|
need_update = true;
|
break;
|
}
|
}
|
|
if (need_update) {
|
this.chipListCamp();
|
}
|
}.bind(this));
|
},
|
// 预制体加载完成之后,添加到对应主节点之后的回调,也就是一个窗体的正式入口,可以设置一些数据了
|
openRootWnd: function openRootWnd(index) {
|
this.select_index = index || HeroConst.SacrificeType.eHeroSacrifice;
|
this.tab_list[this.select_index].toggle.check();
|
|
if (this.select_index == HeroConst.SacrificeType.eHeroSacrifice) {
|
this.changeSelectedTab(this.select_index);
|
} // this.updateWidgets();
|
|
},
|
// 关闭窗体回调,需要在这里调用该窗体所属controller的close方法没用于置空该窗体实例对象
|
closeCallBack: function closeCallBack() {
|
if (this.item_scrollview) this.item_scrollview.deleteMe();
|
this.ctrl.openHeroResetWindow(false);
|
},
|
updateWidgets: function updateWidgets() {
|
// var effect_name = PathTool.getEffectRes(548);
|
// var effect_path = PathTool.getSpinePath(effect_name);
|
// this.loadRes(effect_path, function(anima_sd) {
|
// this.anima_sk.skeletonData = anima_sd;
|
// this.anima_sk.setAnimation(0, "action1", true);
|
// }.bind(this));
|
this.updateCamp();
|
},
|
didClickCamp: function didClickCamp(event) {
|
var cur_camp = event.target.camp_tag;
|
if (cur_camp === this.cur_camp) return;
|
this.cur_camp = cur_camp;
|
this.img_select_nd.parent = this.camp_btns[cur_camp];
|
|
if (this.select_index == HeroConst.SacrificeType.eHeroSacrifice) {
|
this.updateCamp();
|
} else if (this.select_index == HeroConst.SacrificeType.eChipSacrifice) {
|
this.chipListCamp();
|
}
|
},
|
onClickCloseBtn: function onClickCloseBtn(event) {
|
Utils.playButtonSound(2);
|
this.ctrl.openHeroResetWindow(false);
|
},
|
initHeroList: function initHeroList() {
|
var CommonScrollView = require("common_scrollview");
|
|
var scroll_view_size = cc.size(this.hero_list_nd.width, this.hero_list_nd.height);
|
var setting = {
|
item_class: "hero_exhibition_item",
|
// 单元类
|
start_x: 0,
|
// 第一个单元的X起点
|
space_x: 0,
|
// x方向的间隔
|
start_y: 4,
|
// 第一个单元的Y起点
|
space_y: 0,
|
// y方向的间隔
|
item_width: 125,
|
// 单元的尺寸width
|
item_height: 122,
|
// 单元的尺寸height
|
col: 5,
|
// 列数,作用于垂直滚动类型
|
once_num: 5,
|
need_dynamic: true
|
};
|
this.item_scrollview = new CommonScrollView();
|
this.item_scrollview.createScroll(this.hero_list_nd, cc.v2(0, 0), ScrollViewDir.vertical, ScrollViewStartPos.top, scroll_view_size, setting, cc.v2(0.5, 0.5));
|
},
|
updateCamp: function updateCamp() {
|
this.cur_role_list = Utils.deepCopy(this.model.getRestHeroListByCamp(this.cur_camp));
|
this.hero_count_lb.string = Utils.TI18N("可献祭英雄:" + this.cur_role_list.length);
|
|
if (this.cur_role_list.length > 0) {
|
this.no_vedio_image_nd.active = false;
|
} else {
|
this.no_vedio_image_nd.active = true;
|
this.tips_lb.string = "暂无可献祭英雄";
|
} // 检查是否选中
|
|
|
for (var hero_i = 0; hero_i < this.cur_role_list.length; ++hero_i) {
|
for (var selec_hero_i = 0; selec_hero_i < this.select_heros.length; ++selec_hero_i) {
|
if (this.select_heros[selec_hero_i].partner_id === this.cur_role_list[hero_i].partner_id) {
|
this.cur_role_list[hero_i].is_ui_select = true;
|
break;
|
}
|
}
|
}
|
|
this.item_scrollview.addEndCallBack(function () {
|
var list = this.item_scrollview.getItemList();
|
|
for (var i = 0; i < list.length; ++i) {
|
var v = list[i];
|
v.showChipIcon(false);
|
}
|
}.bind(this));
|
this.item_scrollview.space_y = 0;
|
this.item_scrollview.setData(this.cur_role_list, this.onClickHeroExhibiton.bind(this), {
|
scale: 0.9,
|
can_click: true,
|
from_type: HeroConst.ExhibitionItemType.eHeroReset
|
});
|
this.input_count_lb.string = Utils.TI18N("已放入英雄:" + "0/" + this.select_max_count);
|
},
|
onClickHeroExhibiton: function onClickHeroExhibiton(hero_item) {
|
if (this.is_send_proto) return;
|
var hero_vo = hero_item.data; // if (hero_vo.star > 6) {
|
// message("7星及以上英雄无法献祭")
|
// return
|
// } else {
|
|
var result = hero_vo.checkHeroLockTips(true);
|
if (result) return; // }
|
|
this.selectHero(hero_item.data);
|
},
|
selectHero: function selectHero(hero_vo) {
|
if (!hero_vo) return;
|
var select_index = -1;
|
|
for (var hero_i in this.select_heros) {
|
if (this.select_heros[hero_i].partner_id == hero_vo.partner_id) {
|
select_index = hero_i;
|
break;
|
}
|
}
|
|
if (select_index > -1) {
|
var hero_index = this.getListIndex(hero_vo.partner_id);
|
|
if (this.cur_role_list[hero_index]) {
|
this.cur_role_list[hero_index].is_ui_select = false;
|
this.item_scrollview.updateItemData(hero_index, this.cur_role_list[hero_index]);
|
}
|
|
this.select_heros.splice(select_index, 1);
|
} else {
|
if (this.select_heros.length < this.select_max_count) {
|
this.select_heros.push(hero_vo);
|
var hero_index = this.getListIndex(hero_vo.partner_id);
|
|
if (this.cur_role_list[hero_index]) {
|
this.cur_role_list[hero_index].is_ui_select = true;
|
this.item_scrollview.updateItemData(hero_index, this.cur_role_list[hero_index]);
|
}
|
} else {
|
message(Utils.TI18N("每次最多可献祭" + this.select_max_count + "个英雄"));
|
}
|
}
|
|
this.input_count_lb.string = Utils.TI18N("已放入英雄:" + this.select_heros.length + "/" + this.select_max_count);
|
},
|
getListIndex: function getListIndex(partner_id) {
|
for (var role_i in this.cur_role_list) {
|
if (this.cur_role_list[role_i].partner_id === partner_id) return role_i;
|
}
|
|
return -1;
|
},
|
onClickPutinBtn: function onClickPutinBtn() {
|
Utils.playButtonSound(1);
|
|
if (this.select_heros.length >= this.select_max_count) {
|
message(Utils.TI18N("每次最多可献祭" + this.select_max_count + "个英雄"));
|
return;
|
}
|
|
var select_index = 0;
|
var cur_select = [];
|
|
while (this.select_heros.length < this.select_max_count) {
|
if (select_index == this.cur_role_list.length) break;
|
var hero_vo = this.checkHero(select_index);
|
|
if (hero_vo) {
|
this.select_heros.push(hero_vo);
|
cur_select.push(hero_vo);
|
}
|
|
select_index++;
|
}
|
|
for (var hero_i in cur_select) {
|
var list_index = this.getListIndex(cur_select[hero_i].partner_id);
|
|
if (this.cur_role_list[list_index]) {
|
this.cur_role_list[list_index].is_ui_select = true;
|
this.item_scrollview.updateItemData(list_index, this.cur_role_list[list_index]);
|
}
|
}
|
|
this.input_count_lb.string = Utils.TI18N("已放入英雄:" + this.select_heros.length + "/" + this.select_max_count);
|
|
if (this.select_heros.length == 0) {
|
message(Utils.TI18N("暂无可放入的英雄"));
|
}
|
},
|
checkHero: function checkHero(index) {
|
if (this.cur_role_list[index]) {
|
var have_select = false;
|
|
for (var heor_i in this.select_heros) {
|
if (this.cur_role_list[index].partner_id === this.select_heros[heor_i].partner_id) {
|
have_select = true;
|
break;
|
}
|
}
|
|
if (!have_select && this.cur_role_list[index].star < 4 && this.cur_role_list[index].is_in_form <= 0) return this.cur_role_list[index];
|
}
|
|
return null;
|
},
|
onClickDisbandBtn: function onClickDisbandBtn(event) {
|
Utils.playButtonSound(1);
|
if (this.is_send_proto) return;
|
|
if (this.select_heros.length > 0) {
|
this.hero_list_info = [];
|
var is_show_tip = false;
|
|
for (var hero_i = 0; hero_i < this.select_heros.length; ++hero_i) {
|
var partner_data = {};
|
var v = this.select_heros[hero_i];
|
partner_data.partner_id = v.partner_id;
|
|
if (v.star >= 5) {
|
is_show_tip = true;
|
}
|
|
this.hero_list_info.push(partner_data);
|
}
|
|
if (this.hero_list_info.length > 0) {
|
this.ctrl.openHeroResetOfferPanel(true, this.hero_list_info, is_show_tip, this.onCloseOfferPanel.bind(this), HeroConst.ResetType.eHeroReset);
|
}
|
} else {
|
message(Utils.TI18N("没有选中英雄"));
|
}
|
},
|
onCloseOfferPanel: function onCloseOfferPanel() {
|
// this.anima_sk.setAnimation(0, "action2", false);
|
if (this.is_send_proto) return;
|
this.reset_effect.setAnimation(0, PlayerAction.action_2, false);
|
this.playEffect();
|
this.is_send_proto = true;
|
Utils.delayRun(this.main_panel_nd, 1.2, function () {
|
this.ctrl.sender11076(this.hero_list_info);
|
}.bind(this));
|
},
|
onAnimaFinish: function onAnimaFinish(track_data) {
|
if (track_data && track_data.animation) {
|
if (track_data.animation.name == PlayerAction.action_2) {
|
this.reset_effect.setAnimation(0, PlayerAction.action_1, true);
|
}
|
}
|
},
|
requestReset: function requestReset() {
|
this.ctrl.sender11076(this.hero_list_info);
|
},
|
onClickPartnerBtn: function onClickPartnerBtn() {
|
Utils.playButtonSound(1);
|
MallController.getInstance().openMallPanel(true, MallConst.MallType.Recovery);
|
},
|
onClickTipBtn: function onClickTipBtn(event) {
|
Utils.playButtonSound(1);
|
var tip_des = Config.partner_data.data_partner_const.game_rule1.desc;
|
|
require("tips_controller").getInstance().showCommonTips(tip_des, event.touch.getLocation());
|
},
|
onClickLookBtn: function onClickLookBtn() {
|
Utils.playButtonSound(1);
|
|
if (this.select_heros.length > 0) {
|
var hero_list_info = [];
|
|
for (var hero_i = 0; hero_i < this.select_heros.length; ++hero_i) {
|
var partner_data = {};
|
partner_data.partner_id = this.select_heros[hero_i].partner_id;
|
hero_list_info.push(partner_data);
|
}
|
|
if (hero_list_info.length > 0) {
|
this.ctrl.openHeroResetReturnPanel(true, hero_list_info);
|
}
|
} else {
|
message(Utils.TI18N("没有选中英雄"));
|
}
|
},
|
changeSelectedTab: function changeSelectedTab(index) {
|
this.select_index = index;
|
this.cur_camp = 0;
|
this.img_select_nd.parent = this.camp_btns[0];
|
this.show_list = [];
|
this.select_heros = [];
|
|
if (index == HeroConst.SacrificeType.eHeroSacrifice) {
|
this.hero_tab.active = true;
|
this.debris_tab.active = false;
|
this.look_btn_nd.active = true;
|
this.updateCamp();
|
} else if (index == HeroConst.SacrificeType.eChipSacrifice) {
|
this.hero_tab.active = false;
|
this.debris_tab.active = true;
|
this.hero_count_lb.string = Utils.TI18N("选择一种碎片后,请再选择数量");
|
this.look_btn_nd.active = false;
|
this.selectChipIndex = -1;
|
this.chipListCamp();
|
this.buttonReset();
|
}
|
},
|
buttonReset: function buttonReset() {
|
this.resolve_count_lb.string = "0";
|
this.checkBtnState();
|
},
|
chipListCamp: function chipListCamp() {
|
var chipID;
|
|
if (this.selectChipIndex != -1) {
|
// 只是刷新
|
var index = this.selectChipIndex;
|
chipID = this.show_list[index].id;
|
this.selectChipIndex = -1;
|
}
|
|
var data = this.getChipListByCamp(this.cur_camp);
|
this.show_list = Utils.deepCopy(data);
|
|
if (this.show_list.length > 0) {
|
this.no_vedio_image_nd.active = false;
|
} else {
|
this.no_vedio_image_nd.active = true;
|
this.tips_lb.string = "暂无可献祭碎片";
|
}
|
|
if (chipID != null) {
|
for (var i = 0; i < this.show_list.length; ++i) {
|
if (this.show_list[i].id == chipID) {
|
this.selectChipIndex = i;
|
this.show_list[i].is_ui_select = true;
|
this.chipMaxNum = this.show_list[i].total_count;
|
break;
|
}
|
} // if(this.selectChipIndex == -1){
|
// this.chipMaxNum = 0;
|
// }
|
|
|
this.buttonReset();
|
}
|
|
this.item_scrollview.addEndCallBack(function () {
|
var list = this.item_scrollview.getItemList();
|
|
for (var _i = 0; _i < list.length; ++_i) {
|
var v = list[_i];
|
v.showChipIcon(true);
|
}
|
}.bind(this));
|
this.item_scrollview.space_y = 10;
|
this.item_scrollview.setData(this.show_list, this.selectChip.bind(this), {
|
scale: 0.9,
|
can_click: true,
|
from_type: HeroConst.ExhibitionItemType.eHeroFuse
|
});
|
},
|
//获取碎片信息
|
getChipListByCamp: function getChipListByCamp(select_camp) {
|
// --碎片获取以后优化
|
var hero_chip_list = BackpackController.getInstance().getModel().getAllBackPackArray(BackPackConst.item_tab_type.HERO) || [];
|
var show_list = [];
|
var cur_select_chip_data = null;
|
var partner_config = Config.partner_data.data_get_compound_info;
|
|
for (var i = 0; i < hero_chip_list.length; ++i) {
|
var v = hero_chip_list[i];
|
var config = v.config;
|
|
if (config && (select_camp == 0 || select_camp == config.lev)) {
|
var data = {};
|
data.id = v.id;
|
data.bid = 0;
|
data.need_count = partner_config[v.base_id].num;
|
data.base_id = config.id;
|
data.star = config.eqm_jie; //--星级
|
|
data.camp_type = config.lev; //--阵营
|
|
data.icon = config.icon; //--图片
|
|
data.total_count = v.quantity;
|
data.quality = v.quality;
|
data.config = config;
|
var status = BackpackController.getInstance().getModel().checkHeroChipRedPoint(v);
|
|
if (status) {
|
//可以合成
|
data.sort_order = 1;
|
} else {
|
data.sort_order = 0;
|
}
|
|
if (v.quantity > 0) {
|
show_list.push(data);
|
} // --查找已经选中
|
|
|
if (this.select_chip_data && this.select_chip_data.id == data.id) {
|
cur_select_chip_data = data;
|
}
|
}
|
}
|
|
var sort_func = Utils.tableCommonSorter([["sort_order", true], ["quality", true], ["base_id", false]]);
|
show_list.sort(sort_func);
|
return show_list;
|
},
|
selectChip: function selectChip(hero_vo) {
|
if (this.is_send_proto) return;
|
if (!hero_vo) return;
|
|
if (this.selectChipIndex != null && this.selectChipIndex > -1 && this.show_list[this.selectChipIndex].base_id != hero_vo.getData().base_id) {
|
this.show_list[this.selectChipIndex].is_ui_select = !this.show_list[this.selectChipIndex].is_ui_select;
|
this.item_scrollview.updateItemData(this.selectChipIndex, this.show_list[this.selectChipIndex]);
|
}
|
|
var select_index = -1;
|
|
for (var hero_i = 0; hero_i < this.show_list.length; ++hero_i) {
|
if (this.show_list[hero_i].base_id == hero_vo.getData().base_id) {
|
this.show_list[hero_i].is_ui_select = !this.show_list[hero_i].is_ui_select;
|
this.item_scrollview.updateItemData(hero_i, this.show_list[hero_i]);
|
|
if (this.show_list[hero_i].is_ui_select) {
|
select_index = hero_i;
|
}
|
|
break;
|
}
|
}
|
|
this.selectChipIndex = select_index;
|
|
if (select_index == -1) {
|
this.buttonReset();
|
} else {
|
var max = hero_vo.getData().total_count;
|
this.setChipCount(max);
|
}
|
},
|
setChipCount: function setChipCount(num) {
|
this.chipMaxNum = num;
|
this.resolve_count_lb.string = "1";
|
this.max_btn.interactable = true;
|
this.max_btn.enableAutoGrayEffect = false;
|
this.max_lb.enabled = true;
|
this.checkBtnState();
|
},
|
onClickBtnMax: function onClickBtnMax() {
|
this.resolve_count_lb.string = this.chipMaxNum;
|
this.checkBtnState();
|
},
|
onClickBtnAdd: function onClickBtnAdd() {
|
var num = Number(this.resolve_count_lb.string);
|
num += 1;
|
this.resolve_count_lb.string = num;
|
this.checkBtnState();
|
},
|
onClickBtnRedu: function onClickBtnRedu() {
|
var num = Number(this.resolve_count_lb.string);
|
num -= 1;
|
this.resolve_count_lb.string = num;
|
this.checkBtnState();
|
},
|
checkBtnState: function checkBtnState() {
|
var num = Number(this.resolve_count_lb.string);
|
|
if (this.selectChipIndex == -1) {
|
this.redu_btn.interactable = false;
|
this.redu_btn.enableAutoGrayEffect = true;
|
this.add_btn.interactable = false;
|
this.add_btn.enableAutoGrayEffect = true;
|
this.max_btn.interactable = false;
|
this.max_btn.enableAutoGrayEffect = true;
|
this.redu_lb.enabled = false;
|
this.add_lb.enabled = false;
|
this.max_lb.enabled = false;
|
} else if (num <= 0) {
|
this.redu_btn.interactable = false;
|
this.redu_btn.enableAutoGrayEffect = true;
|
this.redu_lb.enabled = false;
|
this.add_btn.interactable = true;
|
this.add_btn.enableAutoGrayEffect = false;
|
this.add_lb.enabled = true;
|
} else if (num >= this.chipMaxNum) {
|
this.redu_btn.interactable = true;
|
this.redu_btn.enableAutoGrayEffect = false;
|
this.redu_lb.enabled = false;
|
this.add_btn.interactable = false;
|
this.add_btn.enableAutoGrayEffect = true;
|
this.add_lb.enabled = false;
|
} else {
|
this.redu_btn.interactable = true;
|
this.redu_btn.enableAutoGrayEffect = false;
|
this.redu_lb.enabled = true;
|
this.add_btn.interactable = true;
|
this.add_btn.enableAutoGrayEffect = false;
|
this.add_lb.enabled = true;
|
}
|
},
|
onDisbandChip: function onDisbandChip() {
|
Utils.playButtonSound(1);
|
if (this.is_send_proto) return;
|
|
if (this.selectChipIndex == -1) {
|
message(Utils.TI18N("没有选中英雄碎片"));
|
return;
|
}
|
|
var count = Number(this.resolve_count_lb.string);
|
|
if (count <= 0) {
|
message(Utils.TI18N("没有放入英雄碎片"));
|
return;
|
}
|
|
if (count > this.chipMaxNum) {
|
message(Utils.TI18N("超过已拥有碎片上限"));
|
return;
|
}
|
|
var data = this.show_list[this.selectChipIndex];
|
var config = data.config;
|
var is_show_tip = data.sort_order == 1;
|
var color = BackPackConst.getWhiteQualityColorStr(config.quality);
|
var item_list = [];
|
|
for (var i = 0; i < config.value.length; ++i) {
|
var v = config.value[i];
|
var id = v[0];
|
var num = v[1] || 0;
|
num = num * count;
|
|
if (id != null) {
|
item_list.push({
|
id: id,
|
num: num
|
});
|
}
|
}
|
|
var sell_data = {
|
id: data.id,
|
bid: data.base_id,
|
num: count
|
};
|
|
if (item_list.length) {
|
var str = cc.js.formatStr("本次分解 <color=#289b14>%s</color> 个<color=%s>【%s】</color>可获得以下资源:", count, color, config.name);
|
this.ctrl.openHeroResetOfferPanel(true, item_list, is_show_tip, function () {
|
this.reset_effect.setAnimation(0, PlayerAction.action_2, false);
|
this.playEffect();
|
this.is_send_proto = true;
|
Utils.delayRun(this.main_panel_nd, 1.2, function () {
|
BackpackController.getInstance().sender10522(BackPackConst.Bag_Code.BACKPACK, [sell_data]);
|
}.bind(this));
|
}.bind(this), HeroConst.ResetType.eChipReset, str);
|
}
|
},
|
// --播放火花的效果
|
playEffect: function playEffect() {
|
if (this.play_effect2 == null) {
|
this.play_effect2 = this.seekChild("play_effect2", sp.Skeleton);
|
var sketon_path = PathTool.getSpinePath("E24122", "action");
|
this.loadRes(sketon_path, function (skeleton_data) {
|
this.play_effect2.skeletonData = skeleton_data;
|
this.play_effect2.setAnimation(0, PlayerAction.action, false);
|
}.bind(this));
|
} else {
|
this.play_effect2.setAnimation(0, PlayerAction.action, false);
|
}
|
}
|
});
|
|
cc._RF.pop();
|