"use strict"; cc._RF.push(module, '8eabaZanH5O/KEvhjISKlEM', 'star_tower_result_window'); // Scripts/mod/startower/view/star_tower_result_window.js "use strict"; // -------------------------------------------------------------------- // @author: xxx@syg.com(必填, 创建模块的人员) // @description: // 星命塔的胜利战斗结算 //
Create: 2019-02-27 20:07:40 // -------------------------------------------------------------------- var PathTool = require("pathtool"); var StartowerController = require("startower_controller"); var CommonScrollView = require("common_scrollview"); var TimeTool = require("timetool"); var BattleModel = require("battle_model"); var MainuiController = require("mainui_controller"); var BattleConst = require("battle_const"); var Star_tower_resultWindow = cc.Class({ "extends": BaseView, ctor: function ctor() { this.prefabPath = PathTool.getPrefabPath("battle", "battle_result_view"); this.viewTag = SCENE_TAG.dialogue; //该窗体所属ui层级,全屏ui需要在ui层,非全屏ui在dialogue层,这个要注意 this.win_type = WinType.Tips; //是否是全屏窗体 WinType.Full, WinType.Big, WinType.Mini, WinType.Tips this.ctrl = arguments[0]; this.model = this.ctrl.getModel(); }, // 初始化一些配置数据,可以用于声明一些变量之类的 initConfig: function initConfig() { this.result = null; this.fight_type = null; this.item_list = []; this.dungeon_data = null; }, // 预制体加载完成之后的回调,可以在这里捕获相关节点或者组件 openCallBack: function openCallBack() { this.background = this.root_wnd.getChildByName("background"); this.background.scale = FIT_SCALE; this.source_container = this.root_wnd.getChildByName("container"); this.title_container = this.source_container.getChildByName("title_container"); this.title_width = this.title_container.width; this.title_height = this.title_container.height; this.handleEffect(true); // this.time_label = Utils.createRichLabel(22,new cc.Color(0xff,0xff,0xff,0xff),cc.v2(0.5,0.5),cc.v2(this.root_wnd.width/2+5, 420),30,1000); // this.time_label.string = Utils.TI18N("5秒后关闭"); // this.root_wnd.addChild(this.time_label.node); this.time_label = this.seekChild("time_lb", cc.Label); this.time_label.node.active = false; this.comfirm_btn = this.source_container.getChildByName("comfirm_btn"); var btn_lab = this.comfirm_btn.getChildByName("Label").getComponent(cc.Label); btn_lab.string = Utils.TI18N("确定"); // this.comfirm_btn.setPosition(this.root_wnd.width / 2 + 5,470); // this.comfirm_btn.active = true; this.comfirm_btn.x = 190; this.comfirm_btn.y = 54; this.return_btn = this.source_container.getChildByName("return_btn"); this.return_btn.active = true; var btn_lab = this.return_btn.getChildByName("Label").getComponent(cc.Label); btn_lab.string = Utils.TI18N("回到试炼塔"); this.harm_btn = this.source_container.getChildByName("harm_btn"); this.harm_btn.active = false; this.harm_btn.y = 484; var bg = this.seekChild(this.source_container, "background"); var sp_2 = this.seekChild(this.source_container, "Sprite_2"); var sp_3 = this.seekChild(this.source_container, "Sprite_3"); var sp_4 = this.seekChild(this.source_container, "Sprite_4"); bg.height = 400; bg.y = 302.5; sp_2.y = 100; sp_3.y = 92; sp_4.y = 92; var result_get_bg = Utils.createImage(this.source_container, null, 360, 462, cc.v2(0.5, 1), true, 0, false); result_get_bg.node.scaleX = 5; var q_res = PathTool.getCommonIcomPath("common_90044"); this.loadRes(q_res, function (sf_obj) { result_get_bg.spriteFrame = sf_obj; }.bind(this)); this.pass_time = Utils.createRichLabel(24, new cc.Color(0xff, 0xb4, 0x00, 0xff), cc.v2(0.5, 0.5), cc.v2(360, 440), 30, 1000); this.pass_time.string = Utils.TI18N("通关时间:00:00:00"); this.source_container.addChild(this.pass_time.node); this.gain_label = Utils.createRichLabel(22, new cc.Color(0xff, 0xff, 0xff, 0xff), cc.v2(0.5, 0.5), cc.v2(360, 100), 30, 1000); this.gain_label.handleTouchEvent = false; this.source_container.addChild(this.gain_label.node); // var label = Utils.createRichLabel(22,new cc.Color(0xff,0xb4,0x00,0xff),cc.v2(0.5,0.5),cc.v2(360, 382),30,1000); // label.string = Utils.TI18N("获得物品"); // this.source_container.addChild(label.node); // var result_line_bg = Utils.createImage(this.source_container, null, 320, 398, cc.v2(0,1), true, 0, false); // result_line_bg.node.scaleX = -1; // var r_res = PathTool.getCommonIcomPath("common_1094"); // this.loadRes(r_res, function (sf_obj) { // result_line_bg.spriteFrame = sf_obj; // }.bind(this)); // var result_line_bg_2 = Utils.createImage(this.source_container, null, 400, 398, cc.v2(0,1), true, 0, false); // this.loadRes(r_res, function (sf_obj) { // result_line_bg_2.spriteFrame = sf_obj; // }.bind(this)); this.seekChild("scroll_view").active = false; var tab_size = cc.size(SCREEN_WIDTH, 190); //230 var setting = { item_class: "backpack_item", // 单元类 start_x: 94, // 第一个单元的X起点 space_x: 20, // x方向的间隔 start_y: 0, // 第一个单元的Y起点 space_y: 10, // y方向的间隔 item_width: 120 * 1.3, // 单元的尺寸width item_height: 120 * 1.3, // 单元的尺寸height row: 4, // 行数,作用于水平滚动类型 col: 4, // 列数,作用于垂直滚动类型 need_dynamic: true }; this.scroll_view = new CommonScrollView(); this.scroll_view.createScroll(this.source_container, cc.v2(this.source_container.width / 2, this.source_container.height / 2 - 30), null, null, tab_size, setting, cc.v2(0.5, 0.5)); }, // 注册事件监听的接口,不需要手动调用, 如果是使用gcore.GlobalEvent监听,可以直接调用addGlobalEvent registerEvent: function registerEvent() { Utils.onTouchEnd(this.comfirm_btn, function () { this.ctrl.openResultWindow(false); }.bind(this), 1); Utils.onTouchEnd(this.return_btn, function () { this.ctrl.openResultWindow(false); var MainuiConst = require("mainui_const"); MainuiController.getInstance().changeMainUIStatus(MainuiConst.btn_index.main_scene, MainuiConst.sub_type.startower); }.bind(this), 1); Utils.onTouchEnd(this.harm_btn, function () { if (this.data && Utils.next(this.data) != null) { require("battle_controller").getInstance().openBattleHarmInfoView(true, this.data); } }.bind(this), 1); }, //剧情:{章节id,难度,副本id} setData: function setData(data, fight_type, dungeon_data) { if (data) { this.data = data || {}; this.dungeon_data = dungeon_data; this.fight_type = fight_type; this.result = data.result; var pass_time = data.timer || 0; var item_list = []; var asset_list = {}; var first_award = this.data.first_award || {}; this.harm_btn.active = true; for (var i in first_award) { first_award[i].is_first = true; item_list.push(first_award[i]); } for (var j in this.data.award) { this.data.award[j].is_first = false; item_list.push(this.data.award[j]); } var str = ""; if (asset_list && Utils.next(asset_list || {}) != null) { for (var i in asset_list) { if (Utils.getItemConfig(asset_list[i].item_id)) { var icon = Utils.getItemConfig(asset_list[i].item_id).icon; var str_ = cc.js.formatStr("
+%s ", PathTool.getItemRes(icon), asset_list[i].num); str = str + str_; } } } if (this.gain_label) { this.gain_label.string = str; } this.reward_list = item_list; this.result = this.data.result; this.is_guide = this.data.is_guide; this.pass_time.string = cc.js.formatStr(Utils.TI18N("通关时间:%s"), TimeTool.getTimeFormat(pass_time)); // --this.source_container:runAction(cc.Sequence:create(cc.FadeTo:create(0.2,150),cc.CallFunc:create(function () this.rewardViewUI(); // --end))) } }, handleEffect: function handleEffect(status) { if (status == false) { if (this.play_effect) { this.play_effect.setToSetupPose(); this.play_effect.clearTracks(); this.play_effect = null; } } else { if (this.title_container && this.play_effect == null) { // var node = new cc.Node(); // node.setAnchorPoint(0.5,0.5) // node.setPosition(this.title_width * 0.5, this.title_height * 0.5); // this.title_container.addChild(node,0); // this.play_effect = node.addComponent(sp.Skeleton); // var anima_path = PathTool.getSpinePath("E51300", "action"); // this.loadRes(anima_path, function(ske_data) { // this.play_effect.skeletonData = ske_data; // this.play_effect.setAnimation(0, PlayerAction.action_2, false); // }.bind(this)); this.play_effect = this.title_container.getComponent(sp.Skeleton); var res = cc.js.formatStr("spine/%s/action.atlas", PathTool.getEffectRes(103)); this.loadRes(res, function (res_object) { this.play_effect.skeletonData = res_object; this.play_effect.setAnimation(1, PlayerAction.action_2, false); }.bind(this)); } } }, // 奖励界面 rewardViewUI: function rewardViewUI() { var itemArr = []; for (var i in this.reward_list) { itemArr.push({ bid: this.reward_list[i].item_id, num: this.reward_list[i].num }); } this.scroll_view.setData(itemArr); this.scroll_view.addEndCallBack(function () { var list = this.scroll_view.getItemList(); for (var k in list) { var item = list[k]; var itemData = item.getItemData(); for (var j in this.reward_list) { if (itemData && itemData.bid == this.reward_list[j].item_id && itemData.num == this.reward_list[j].num && this.reward_list[j].is_first && this.reward_list[j].is_first == true) { item.showBiaoQian(true, Utils.TI18N("首通")); } } } }.bind(this)); this.ItemAciton(); }, ItemAciton: function ItemAciton() { if (this.item_list && Utils.next(this.item_list || []) != null) { var show_num = 0; for (var i in this.item_list) { if (this.item_list[i]) { gcore.Timer.set(function () { this.item_list[i].setVisible(true); var move_to = cc.scaleTo(0.1, 1); this.item_list[i].runAction(cc.sequence(move_to, cc.callFunc(function () { show_num = show_num + 1; if (show_num >= this.item_list.length) {// this.updateTimer(); } }))); }.bind(this), 0.1 * (i - 1), 1); } } } else {// this.updateTimer() } }, updateTimer: function updateTimer() { return; var time = 5; var call_back = function () { time = time - 1; var new_time = Math.ceil(time); var str = new_time + Utils.TI18N("秒后关闭"); if (this.time_label) { this.time_label.string = str; } if (new_time <= 0) { StartowerController.getInstance().openResultWindow(false); if (this.close_result_reward) { gcore.Timer.del(this.close_result_reward); this.close_result_reward = null; } } }.bind(this); if (!this.close_result_reward) { this.close_result_reward = gcore.Timer.set(call_back, 1000, -1); } }, // 预制体加载完成之后,添加到对应主节点之后的回调,也就是一个窗体的正式入口,可以设置一些数据了 openRootWnd: function openRootWnd(data, fight_type, battle_extend_data) { this.setData(data, fight_type, battle_extend_data); }, // 关闭窗体回调,需要在这里调用该窗体所属controller的close方法没用于置空该窗体实例对象 closeCallBack: function closeCallBack() { this.handleEffect(false); if (this.close_result_reward) { gcore.Timer.del(this.close_result_reward); this.close_result_reward = null; } if (this.scroll_view) { this.scroll_view.deleteMe(); this.scroll_view = null; } if (!MainuiController.getInstance().checkIsInDramaUIFight()) {} // AudioManager:getInstance():playLastMusic() // if(BattleModel.getInstance().getBattleScene()){ // var data = {result: this.result ,combat_type: BattleConst.Fight_Type.StarTower} // BattleModel.getInstance().result(data, this.is_leave_this) // } this.result = null; this.fight_type = null; this.item_list = null; this.dungeon_data = null; this.ctrl.openResultWindow(false); } }); cc._RF.pop();