"use strict"; cc._RF.push(module, '92c68tkJkZJiI9wWLH6/kQa', 'battle_drama_boos_info_window'); // Scripts/mod/battle_drama/view/battle_drama_boos_info_window.js "use strict"; // -------------------------------------------------------------------- // @author: xxx@syg.com(必填, 创建模块的人员) // @description: // 剧情副本boss信息界面 //
Create: 2019-03-26 20:48:02 // -------------------------------------------------------------------- var PathTool = require("pathtool"); var Battle_dramaEvent = require("battle_drama_event"); var BackpackController = require("backpack_controller"); var BaseRole = require("baserole"); var Battle_drama_boos_infoWindow = cc.Class({ "extends": BaseView, ctor: function ctor() { this.prefabPath = PathTool.getPrefabPath("battledrama", "battle_darma_boos_info_windows"); this.viewTag = SCENE_TAG.dialogue; //该窗体所属ui层级,全屏ui需要在ui层,非全屏ui在dialogue层,这个要注意 this.win_type = WinType.Mini; //是否是全屏窗体 WinType.Full, WinType.Big, WinType.Mini, WinType.Tips this.ctrl = arguments[0]; this.model = this.ctrl.getModel(); }, // 初始化一些配置数据,可以用于声明一些变量之类的 initConfig: function initConfig() { this.swap_status = 0; //0:不可挑战,1可挑战,2,扫荡 this.item_list = []; }, // 预制体加载完成之后的回调,可以在这里捕获相关节点或者组件 openCallBack: function openCallBack() { this.panel_bg = this.root_wnd.getChildByName("Panel_bg"); this.background = this.panel_bg.getChildByName("background"); this.background.scale = FIT_SCALE; this.main_container = this.root_wnd.getChildByName("root"); this.close_btn = this.main_container.getChildByName("close_btn"); this.ack_button = this.main_container.getChildByName("ack_button"); // -- this.ack_button.label = this.ack_button:getTitleRenderer() // -- this.ack_button.label:enableOutline(Config.ColorData.data_color4[156], 2) this.window_title_label = this.main_container.getChildByName("window_title_label").getComponent(cc.Label); this.window_title_label.string = Utils.TI18N("关卡信息"); this.dungeon_name = this.main_container.getChildByName("dungeon_name").getComponent(cc.Label); this.boss_name_desc = this.main_container.getChildByName("boss_name_desc"); this.boss_name_desc.string = Utils.TI18N("BOSS:"); this.boss_name = this.main_container.getChildByName("boss_name").getComponent(cc.Label); this.diffcult_label_desc = this.main_container.getChildByName("diffcult_label_desc").getComponent(cc.Label); this.diffcult_label_desc.string = Utils.TI18N("战斗力:"); this.diffcult_label = this.main_container.getChildByName("diffcult_label").getComponent(cc.Label); this.item_container = this.main_container.getChildByName("item_container"); this.title_label = this.item_container.getChildByName("title_label").getComponent(cc.Label); this.title_label.string = Utils.TI18N("可能掉落"); this.item_scroolview = this.item_container.getChildByName("item_scroolview"); this.scroolview_content = this.item_scroolview.getChildByName("content"); this.role_bg = this.main_container.getChildByName("role_bg").getComponent(cc.Sprite); this.loadRes(PathTool.getBigBg("bigbg_5"), function (resObject) { this.role_bg.spriteFrame = resObject; }.bind(this)); this.swap_label = Utils.createRichLabel(24, new cc.Color(0xca, 0x72, 0x24, 0xff), cc.v2(0, 0.5), cc.v2(70, 370), 30, 1000); this.main_container.addChild(this.swap_label.node); this.swap_label.node.active = false; this.swap_num_label = Utils.createRichLabel(26, new cc.Color(0xca, 0x72, 0x24, 0xff), cc.v2(0, 0.5), cc.v2(410, 685), 40, 1000); this.main_container.addChild(this.swap_num_label.node); this.swap_num_label.node.active = false; this.free_swap_label = Utils.createRichLabel(26, new cc.Color(0xca, 0x72, 0x24, 0xff), cc.v2(0, 0.5), cc.v2(485, 330), 40, 1000); this.free_swap_label.string = Utils.TI18N("本次扫荡免费"); this.main_container.addChild(this.free_swap_label.node); this.free_swap_label.node.active = false; this.updateData(); }, updateData: function updateData() { if (this.dungeon_data) { this.dungeon_name.string = this.dungeon_data.info_data.name; // --this.boss_name:setString(this.dungeon_data.info_data.name) var config = Utils.getUnitConfig(this.dungeon_data.info_data.unit_id); var cur_dungeon_data = this.model.getCurDunInfoByID(this.dungeon_data.info_data.id) || this.dungeon_data.v_data; var status = cur_dungeon_data.status; if (config) { this.boss_name.string = config.name; } this.diffcult_label.string = this.dungeon_data.info_data.power; var str = cc.js.formatStr(Utils.TI18N("扫荡次数: %s/%s"), cur_dungeon_data.auto_num, Config.dungeon_data.data_drama_const["swap_time"].val); if (cur_dungeon_data.auto_num >= Config.dungeon_data.data_drama_const["swap_time"].val) { str = string.format(TI18N("扫荡次数: <%s/%s"), cur_dungeon_data.auto_num, Config.dungeon_data.data_drama_const["swap_time"].val); } this.swap_num_label.string = str; // var num = BackpackController.getInstance().getModel().getBackPackItemNumByBid(Config.dungeon_data.data_drama_const["swap_item"].val) // var item_icon = Utils.getItemConfig(Config.dungeon_data.data_drama_const["swap_item"].val).icon // -- var str = string.format(TI18N("
扫荡券的数量:
%s
"),PathTool.getItemRes(item_icon),num) // -- this.swap_label:setString(str) this.updateItemReward(this.dungeon_data.info_data.show_items); this.updateRole(this.dungeon_data.info_data.unit_id); var drama_data = this.model.getDramaData(); var offset_num = Config.dungeon_data.data_drama_const["swap_time"].val - drama_data.auto_num; if (drama_data && offset_num <= 0) {// -- this.ack_button:setTouchEnabled(false) // -- this.ack_button.label:disableEffect(cc.LabelEffect.OUTLINE) // -- setChildUnEnabled(true, this.ack_button) } else { this.updateBtnStatus(status); this.updateFreeData(); } } }, updateFreeData: function updateFreeData() { var free_num = Config.dungeon_data.data_drama_const['free_swap'].val; var drama_data = this.model.getDramaData(); this.is_free = drama_data.auto_num - free_num < 0; // -- this.free_swap_label:setVisible(this.is_free) }, updateBtnStatus: function updateBtnStatus(status) { if (status == 3) { //已通关 this.swap_status = 2; // -- this.ack_button:setTouchEnabled(true) // --this.swap_num_label:setVisible(true) // -- setChildUnEnabled(false, this.ack_button) // -- this.ack_button:setTitleText(TI18N("扫荡")) // -- this.ack_button.label:enableOutline(Config.ColorData.data_color4[82], 2) } else { this.swap_status = 0; // --this.ack_button:setTouchEnabled(false) // --this.swap_num_label:setVisible(false) // -- setChildUnEnabled(true, this.ack_button) // -- this.ack_button:setTitleText(TI18N("挑战")) // -- this.ack_button.label:enableOutline(Config.ColorData.data_color4[84], 2) // 如果倒计时还是大于0 if (status == 2) { // -- this.ack_button:setTouchEnabled(true) // -- setChildUnEnabled(false, this.ack_button) this.swap_status = 1; // -- this.ack_button.label:enableOutline(Config.ColorData.data_color4[82], 2) } } }, updateRole: function updateRole(body_id) { if (!this.spine_model && body_id != "") { this.spine_model = new BaseRole(); this.spine_model.setParent(this.role_bg.node); this.spine_model.setPosition(0, this.role_bg.node.getContentSize().height / 2 + 30); this.spine_model.setData(BaseRole.type.unit, body_id, PlayerAction.show, true, 0.8); } }, updateItemReward: function updateItemReward(data) { if (!data) return; var item = null; var item_width = 120 * data.length + data.length * 10; var max_width = Math.max(this.scroolview_content.getContentSize().width, item_width); this.scroolview_content.setContentSize(cc.size(max_width, this.scroolview_content.getContentSize().height)); for (var i in data) { if (!this.item_list[i]) { item = ItemsPool.getInstance().getItem("backpack_item"); item.setParent(this.scroolview_content); item.setAnchorPoint(0.5, 0.5); item.show(); this.item_list[i] = item; } item = this.item_list[i]; if (item) { item.setPosition(120 / 2 + i * (120 + 10), this.item_scroolview.getContentSize().height / 2); var temp_data = { bid: data[i][0], num: data[i][1] }; item.setData(temp_data); // --var config = Config.ItemData.data_get_data(v[1]) // -- var is_equip = item:checkIsEquip(config.type) // -- if is_equip == true then // -- this:setEquipJie(true) // -- end item.setDefaultTip(); } } }, // 注册事件监听的接口,不需要手动调用,如果是使用gcore.GlobalEvent监听,可以直接调用addGlobalEvent registerEvent: function registerEvent() { Utils.onTouchEnd(this.background, function () { this.ctrl.openDramBossInfoView(false); }.bind(this), 2); Utils.onTouchEnd(this.close_btn, function () { this.ctrl.openDramBossInfoView(false); }.bind(this), 2); this.addGlobalEvent(Battle_dramaEvent.BattleDrama_Boss_Update_Data, function (data) { if (data) { var str = cc.js.formatStr("扫荡次数: %s/%s", data.auto_num, Config.dungeon_data.data_drama_const["swap_time"].val); if (data.auto_num >= Config.dungeon_data.data_drama_const["swap_time"].val) { str = cc.js.formatStr(Utils.TI18N("扫荡次数: %s/%s"), data.auto_num, Config.dungeon_data.data_drama_const["swap_time"].val); } this.swap_num_label.string = str; // var num = BackpackController.getInstance().getModel().getBackPackItemNumByBid(Config.dungeon_data.data_drama_const["swap_item"].val) // -- str = string.format("扫荡券的数量:
%s
", num) // -- this.swap_label:setString(str) } }.bind(this)); this.addGlobalEvent(Battle_dramaEvent.BattleDrama_Update_Data, function (data) { this.updateData(); }.bind(this)); this.addGlobalEvent(Battle_dramaEvent.BattleDrama_Quick_Battle_Data, function (data) { this.updateFreeData(); }.bind(this)); }, checkSwapAlert: function checkSwapAlert() { var num = BackpackController.getInstance().getModel().getBackPackItemNumByBid(Config.dungeon_data.data_drama_const['swap_item'].val); if (!this.is_free) { if (num <= 0) { var drama_data = this.model.getDramaData(); var swap_num = Math.min(drama_data.auto_num + 1, Config.DungeonData.data_swap_data.length); var loss = Config.dungeon_data.data_swap_data[swap_num].loss; var str = cc.js.formatStr(Utils.TI18N("扫荡券不足,是否使用%s扫荡关卡?"), PathTool.getItemRes(loss[0][0]), loss[0][1]); var call_back = function () { if (this.dungeon_data && this.dungeon_data.info_data) { this.ctrl.send13005(this.dungeon_data.info_data.id, 1); } }.bind(this); var CommonAlert = require("commonalert"); CommonAlert.show(str, Utils.TI18N('确定'), call_back, Utils.TI18N('取消')); } else { this.ctrl.openDramSwapView(true, this.dungeon_data.info_data.id); } } else { this.ctrl.send13005(this.dungeon_data.info_data.id, 1); } }, // 预制体加载完成之后,添加到对应主节点之后的回调,也就是一个窗体的正式入口,可以设置一些数据了 openRootWnd: function openRootWnd(data) { this.dungeon_data = data; this.updateData(); }, // 关闭窗体回调,需要在这里调用该窗体所属controller的close方法没用于置空该窗体实例对象 closeCallBack: function closeCallBack() { if (this.spine_model) { this.spine_model.deleteMe(); this.spine_model = null; } this.ctrl.openDramBossInfoView(false); } }); cc._RF.pop();