"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();