"use strict";
cc._RF.push(module, '1f4502T3qVFapFZQ5PPUam2', 'partnersummon_gain_window');
// Scripts/mod/partnersummon/view/partnersummon_gain_window.js
"use strict";
// --------------------------------------------------------------------
// @author: xxx@syg.com(必填, 创建模块的人员)
// @description:
// 这里是描述这个窗体的作用的
//
Create: 2019-01-16 10:06:06
// --------------------------------------------------------------------
var PathTool = require("pathtool");
var SummonConst = require("partnersummon_const");
var RoleController = require("role_controller");
var BackpackController = require("backpack_controller");
var TimesummonController = require("timesummon_controller");
var PartnersummonGainWindow = cc.Class({
"extends": BaseView,
ctor: function ctor() {
this.prefabPath = PathTool.getPrefabPath("partnersummon", "partnersummon_gain_window");
this.viewTag = SCENE_TAG.dialogue; // 该窗体所属ui层级,全屏ui需要在ui层,非全屏ui在dialogue层,这个要注意
this.win_type = WinType.Full; // 是否是全屏窗体 WinType.Full, WinType.Big, WinType.Mini, WinType.Tips
this.can_show = false;
this.ctrl = arguments[0];
this.modle = this.ctrl.getModel();
this.recruit_data = this.modle.getRecruitData();
},
initConfig: function initConfig() {
this.partnersummon_config = Config.recruit_data.data_partnersummon_data;
},
openCallBack: function openCallBack() {
this.summon_bg_sp = this.seekChild("summon_bg", cc.Sprite);
this.bg_effect_sk = this.seekChild("bg_effect", sp.Skeleton);
this.partnersummon_bg = this.seekChild("partnersummon_bg");
this.summon_bg_nd = this.seekChild("summon_bg");
this.partnersummon_bg.scale = FIT_SCALE;
this.summon_bg_nd.scale = FIT_SCALE;
this.get_des_nd = this.seekChild("get_des");
this.items_content_nd = this.seekChild("items_content");
this.again_btn_nd = this.seekChild("again_btn");
this.confirm_btn_nd = this.seekChild("confirm_btn");
this.again_one_txt_nd = this.seekChild("again_one_txt");
this.again_ten_txt_nd = this.seekChild("again_ten_txt");
this.again_need_nd = this.seekChild("again_need");
this.goods_num_lb = this.seekChild("goods_num", cc.RichText);
this.goods_sp = this.seekChild("goods", cc.Sprite);
this.confirm_btn_nd.on(cc.Node.EventType.TOUCH_END, this.didClickConfirmBtn, this);
this.again_btn_nd.on(cc.Node.EventType.TOUCH_END, this.didClickAgainBtn, this);
},
registerEvent: function registerEvent() {},
closeCallBack: function closeCallBack() {
if (this.item_nds) {
for (var i = 0; i < this.item_nds.length; ++i) {
if (this.item_nds[i]) {
this.item_nds[i].deleteMe();
this.item_nds[i] = null;
}
}
this.item_nds = null;
}
var GuideEvent = require("guide_event");
gcore.GlobalEvent.fire(GuideEvent.CloseTaskEffect);
if (this.get_des_nd && this.get_des_nd.isValid) {
this.get_des_nd.stopAllActions();
}
this.ctrl.openSummonGainWindow(false);
},
openRootWnd: function openRootWnd(params) {
if (!this.recruit_data) return;
this.udpateWidgets();
this.createGetItems();
this.analyseRecruitData();
},
udpateWidgets: function udpateWidgets() {
this.type_flag = this.recruit_data.flag; // 背景
if (this.type_flag == 0) {
this.partnersummon_config = Config.recruit_data.data_partnersummon_data;
} else if (this.type_flag == 1) {
this.partnersummon_config = Config.recruit_holiday_data.data_summon;
} else if (this.type_flag == 2) {
this.partnersummon_config = Config.recruit_holiday_elite_data.data_summon;
}
var summon_cfg_item = this.partnersummon_config[this.recruit_data.group_id];
var resources_id = "partnersummon_call_bg_100";
if (summon_cfg_item) resources_id = summon_cfg_item.call_bg;
var bg_path = PathTool.getUIIconPath("bigbg/partnersummon", resources_id);
this.loadRes(bg_path, function (bigbg_sf) {
this.summon_bg_sp.spriteFrame = bigbg_sf;
}.bind(this)); // 背景动画
// var bg_effect_id = "140"
// if (summon_cfg_item)
// bg_effect_id = summon_cfg_item.call_bg_action;
// var effect_res = PathTool.getEffectRes(bg_effect_id);
// var effect_path = PathTool.getSpinePath(effect_res, "action");
// this.loadRes(effect_path, function(bg_sd) {
// this.bg_effect_sk.skeletonData = bg_sd;
// this.bg_effect_sk.setAnimation(0, "action", true);
// }.bind(this));
// 按钮
if (this.recruit_data.times === 1) {
this.again_one_txt_nd.active = true;
this.again_ten_txt_nd.active = false;
} else {
this.again_one_txt_nd.active = false;
this.again_ten_txt_nd.active = true;
} // 道具提示
this.need_item_id = null;
this.item_enough = false;
var need_count;
var have_count;
if (this.recruit_data.group_id != SummonConst.Summon_Type.Score) {
if (this.type_flag == 0) {
if (this.recruit_data.times === 1) {
this.need_item_id = summon_cfg_item.item_once[0][0];
need_count = summon_cfg_item.item_once[0][1];
} else {
this.need_item_id = summon_cfg_item.item_five[0][0];
need_count = summon_cfg_item.item_five[0][1];
}
} else if (this.type_flag == 1) {
if (this.recruit_data.times === 1) {
this.need_item_id = summon_cfg_item.loss_item_once[0][0];
need_count = summon_cfg_item.loss_item_once[0][1];
} else {
this.need_item_id = summon_cfg_item.loss_item_ten[0][0];
need_count = summon_cfg_item.loss_item_ten[0][1];
}
} else if (this.type_flag == 2) {
if (this.recruit_data.times === 1) {
this.need_item_id = summon_cfg_item.loss_item_once[0][0];
need_count = summon_cfg_item.loss_item_once[0][1];
} else {
this.need_item_id = summon_cfg_item.loss_item_ten[0][0];
need_count = summon_cfg_item.loss_item_ten[0][1];
}
}
} else {}
if (this.recruit_data.group_id === SummonConst.Summon_Type.Friend) {
var role_vo = RoleController.getInstance().getRoleVo();
have_count = role_vo.friend_point;
} else {
have_count = BackpackController.getInstance().getModel().getBackPackItemNumByBid(this.need_item_id);
}
if (this.recruit_data.group_id === SummonConst.Summon_Type.Score) {
this.again_need_nd.active = false;
this.again_btn_nd.active = false;
this.confirm_btn_nd.x = this.root_wnd.width * 0.5;
} else {
this.again_need_nd.active = true;
this.again_btn_nd.active = true;
this.confirm_btn_nd.x = 530;
var good_res_config = Utils.getItemConfig(this.need_item_id);
var good_res_path = PathTool.getItemRes(good_res_config.icon); // var item_res_path = PathTool.getIconPath("item", this.need_item_id);
this.loadRes(good_res_path, function (item_sf) {
this.goods_sp.spriteFrame = item_sf;
}.bind(this));
var label_str = "";
if (have_count < need_count) {
this.item_enough = false;
label_str = cc.js.formatStr("%s/%s", have_count, need_count);
} else {
this.item_enough = true;
label_str = cc.js.formatStr("%s/%s", have_count, need_count);
}
this.goods_num_lb.string = label_str;
}
},
showItems: function showItems() {
if (!this.get_des_nd || !this.get_des_nd.isValid) return;
this.get_des_nd.scale = 1.5;
if (!this.get_action) {
var delay_act = cc.delayTime(0.1);
var scale_act = cc.scaleTo(0.1, 1);
this.get_action = cc.sequence(delay_act, scale_act);
}
this.get_des_nd.runAction(this.get_action);
this.can_show = true;
if (this.items_init) {
this.addGetItems();
}
},
addGetItems: function addGetItems() {
Utils.playEffectSound(AUDIO_TYPE.Recruit, "result_01");
if (this.item_nds == null) return;
for (var item_i = 0; item_i < this.item_nds.length; item_i++) {
this.items_content_nd.addChild(this.item_nds[item_i].root_wnd);
this.item_nds[item_i].playShowAction(item_i); // this.item_nds[item_i].showEffect();
}
},
createGetItems: function createGetItems() {
if (!this.recruit_data) return;
this.rewards = this.recruit_data.rewards;
this.init_num = 0;
this.item_nds = [];
var scheIndex = 0;
var HeroExhibitionItem = require("hero_get_item");
var create_item_sch = gcore.Timer.set(function () {
var hero_item = new HeroExhibitionItem(this.rewards[scheIndex], scheIndex, this.itemFinishCreate.bind(this));
if (this.item_nds == null) return;
this.item_nds.push(hero_item);
++scheIndex;
}.bind(this), 50, this.rewards.length);
},
itemFinishCreate: function itemFinishCreate(index, root_wn) {
++this.init_num;
if (this.init_num == this.rewards.length) {
if (this.item_nds == null) return;
if (this.item_nds.length > 5) {
this.items_content_nd.width = 120 * 5 + 20 * 4;
} else {
this.items_content_nd.width = 120 * this.item_nds.length + (20 * this.item_nds.length - 1);
}
this.items_init = true;
if (this.can_show) this.addGetItems();
}
},
analyseRecruitData: function analyseRecruitData() {
if (this.finish_cb) this.finish_cb(); // return
var show_bids = []; // 需要召唤的高级英雄
if (this.recruit_data.partner_bids) {
var bid_info = null;
for (var bid_i in this.recruit_data.partner_bids) {
bid_info = this.recruit_data.partner_bids[bid_i];
var par_config = Config.partner_data.data_partner_base[bid_info.partner_bid];
if (par_config.show_effect) show_bids.push(bid_info);
}
}
if (show_bids.length > 0) {
this.ctrl.openSummonGainShowWindow(true, show_bids, this.showItems.bind(this));
} else {
this.showItems();
}
},
didClickConfirmBtn: function didClickConfirmBtn(event) {
// var show_bids = [{partner_bid: 40403, init_star: 4}, {partner_bid: 20504, init_star: 5}, {partner_bid: 30402, init_star: 4}];
// this.ctrl.openSummonGainShowWindow(true, show_bids, this.showItems.bind(this));
this.ctrl.openSummonGainWindow(false);
},
didClickAgainBtn: function didClickAgainBtn(event) {
// 判断英雄背包空间
var HeroController = require("hero_controller");
var hero_model = HeroController.getInstance().getModel();
var hero_bag_info = hero_model.getHeroMaxCount();
var limit_num = hero_bag_info.max_count - hero_bag_info.have_coutn;
if (this.recruit_data.times > limit_num) {
var str = Utils.TI18N("英雄列表已满,可通过提升贵族等级或购买增加英雄携带数量,是否前往购买?");
var CommonAlert = require("commonalert");
CommonAlert.show(str, Utils.TI18N("确定"), function () {
var MainuiConst = require("mainui_const");
var ActionController = require("action_controller");
var MainuiController = require("mainui_controller");
MainuiController.getInstance().changeMainUIStatus(MainuiConst.btn_index.partner);
ActionController.getInstance().openActionMainPanel(false);
}, Utils.TI18N("取消"), function () {});
return;
}
if (this.type_flag == 0) {
if (!this.item_enough) {
if (this.recruit_data.group_id == SummonConst.Summon_Type.Advanced) {
this.showGoldTips(this.recruit_data.times);
return;
}
BackpackController.getInstance().openTipsSource(true, this.need_item_id);
} else {
this.ctrl.againRecruit();
if (this.modle.getClickStatus()) {
this.modle.clickIntervalStatus(false);
} else {
this.ctrl.openSummonGainWindow(false);
}
}
} else {
if (this.item_enough) {
if (this.type_flag == 1) {
this.ctrl.openSummonGainWindow(false);
TimesummonController.getInstance().requestTimeSummon(this.recruit_data.times, 4);
} else if (this.type_flag == 2) {
this.ctrl.openSummonGainWindow(false);
var ElitesummonController = require("elitesummon_controller");
ElitesummonController.getInstance().send23221(this.recruit_data.times, 4);
}
return;
}
this.showGoldTips(this.recruit_data.times);
}
},
showGoldTips: function showGoldTips(times) {
var config_data;
if (this.type_flag == 0) {
config_data = Config.recruit_data.data_partnersummon_data["300"];
} else if (this.type_flag == 1) {
config_data = Config.recruit_holiday_data.data_summon[this.recruit_data.group_id];
} else if (this.type_flag == 2) {
config_data = Config.recruit_holiday_elite_data.data_summon[this.recruit_data.group_id];
}
var recruit_data = this.modle.getSummonProtoDataByGroupID(300);
var RoleController = require("role_controller");
var role_vo = RoleController.getInstance().getRoleVo();
var need_num, val_str, val_num, call_num;
if (this.type_flag == 0) {
// good_res_config = Utils.getItemConfig(config_data.exchange_once[0][0]);
need_num = config_data.exchange_once[0][1];
val_str = Utils.getItemConfig(config_data.exchange_once_gain[0][0]).name;
val_num = config_data.exchange_once_gain[0][1];
call_num = recruit_data.draw_list[1].times || 1;
} else if (this.type_flag == 1 || this.type_flag == 2) {
// good_res_config = Utils.getItemConfig(config_data.loss_gold_once[0][0]);
need_num = config_data.loss_gold_once[0][1];
val_str = Utils.getItemConfig(config_data.gain_once[0][0]).name;
val_num = config_data.gain_once[0][1];
call_num = this.recruit_data.times;
}
var good_res_path = "3";
var hvae_num = role_vo.gold;
if (times === 10) {
if (this.type_flag == 0) {
need_num = config_data.exchange_five[0][1];
val_str = Utils.getItemConfig(config_data.exchange_five_gain[0][0]).name;
val_num = config_data.exchange_once_gain[0][1];
call_num = recruit_data.draw_list[0].times || 10;
} else if (this.type_flag == 1 || this.type_flag == 2) {
need_num = config_data.loss_gold_ten[0][1];
val_str = Utils.getItemConfig(config_data.gain_ten[0][0]).name;
val_num = config_data.gain_once[0][1];
call_num = this.recruit_data.times;
}
}
var buy_ori = cc.js.formatStr(StringUtil.parseStr(Lang.DIAMOND_CONSUME).string, good_res_path, need_num, hvae_num);
var get_ori = cc.js.formatStr(StringUtil.parseStr(Lang.BUY_DES).string, val_str, val_num, call_num);
var des_str = buy_ori + get_ori;
var frame_arrays = [];
var good_path = PathTool.getIconPath("item", "3");
frame_arrays.push(good_path);
var CommonAlert = require("commonalert");
var common_aler_view = CommonAlert.show(des_str, "确定", this.configUseGold.bind(this, times), "取消", null, null, null, {
resArr: frame_arrays,
maxWidth: 450,
align: cc.macro.TextAlignment.LEFT
});
},
configUseGold: function configUseGold() {
if (this.type_flag == 0) {
var group_id = 300;
var times = this.recruit_data.times;
var recruit_type = 3;
this.ctrl.recurit(group_id, times, recruit_type);
this.ctrl.openSummonGainWindow(false);
} else if (this.type_flag == 1) {
TimesummonController.getInstance().requestTimeSummon(this.recruit_data.times, 3);
this.ctrl.openSummonGainWindow(false);
} else if (this.type_flag == 2) {
var ElitesummonController = require("elitesummon_controller");
ElitesummonController.getInstance().send23221(this.recruit_data.times, 3);
this.ctrl.openSummonGainWindow(false);
} // if (this.recruit_cb) this.recruit_cb(group_id, times, recruit_type);
}
});
cc._RF.pop();