"use strict"; cc._RF.push(module, '69d72NkSjtMDoyFzoUMsBbZ', 'arena_champion_vs_panel'); // Scripts/mod/arena/view/champion/arena_champion_vs_panel.js "use strict"; // -------------------------------------------------------------------- // @author: xxx@syg.com(必填, 创建模块的人员) // @description: // 这里是描述这个窗体的作用的 //
Create: 2019-03-13 11:42:49 // -------------------------------------------------------------------- var PathTool = require("pathtool"); var PlayerHead = require("playerhead"); var BattleController = require("battle_controller"); var ArenaChampionTop32Panel = cc.Class({ "extends": BasePanel, ctor: function ctor() { this.prefabPath = PathTool.getPrefabPath("arena", "arena_champion_vs_panel"); }, // 可以初始化声明一些变量的 initConfig: function initConfig() {}, // 初始化一些配置数据,可以用于声明一些变量之类的 initPanel: function initPanel() { this.check_btn_nd = this.seekChild("check_btn"); this.look_btn_nd = this.seekChild("look_btn"); this.vs_img_nd = this.seekChild("vs_img"); this.fight_forms = {}; for (var fight_i = 1; fight_i <= 2; fight_i++) { var fight_form = this.fight_forms[fight_i] = {}; var role_container_nd = this.seekChild("role_container_" + fight_i); fight_form["role_name_lb"] = this.seekChild(role_container_nd, "role_name", cc.Label); fight_form["role_lev_lb"] = this.seekChild(role_container_nd, "role_lev", cc.Label); fight_form["form_icon_sp"] = this.seekChild(role_container_nd, "form_icon", cc.Sprite); fight_form["success_img_nd"] = this.seekChild(role_container_nd, "success_img"); var rank_txt_nd = this.seekChild(role_container_nd, "power_val"); fight_form["power_cr"] = rank_txt_nd.getComponent("CusRichText"); fight_form["hero_items"] = {}; fight_form["hero_nds"] = {}; for (var form_i = 1; form_i <= 9; form_i++) { var hero_item_nd = this.seekChild(role_container_nd, "hero_iten_" + form_i); var hero_item = ItemsPool.getInstance().getItem("hero_exhibition_item"); ; hero_item.setParent(hero_item_nd); hero_item.show(); fight_form["hero_items"][form_i] = hero_item; fight_form["hero_nds"][form_i] = hero_item_nd; } var head_nd = this.seekChild(role_container_nd, "head_con"); fight_form["role_head"] = new PlayerHead(); fight_form["role_head"].setParent(head_nd); fight_form["role_head"].show(); } this.check_btn_nd.on(cc.Node.EventType.TOUCH_END, this.onClickCheckBtn, this); this.look_btn_nd.on(cc.Node.EventType.TOUCH_END, this.onClickLookBtn, this); }, // 注册事件监听的接口,不需要手动调用,如果是使用gcore.GlobalEvent监听,可以直接调用addGlobalEvent registerEvent: function registerEvent() {}, // 预制体加载完成之后,添加到对应主节点之后的回调可以设置一些数据了 onShow: function onShow(params) { this.updateWiget(); }, // 面板设置不可见的回调,这里做一些不可见的屏蔽处理 onHide: function onHide() {}, // 当面板从主节点释放掉的调用接口,需要手动调用,而且也一定要调用 onDelete: function onDelete() { for (var form_i in this.fight_forms) { var fight_infos = this.fight_forms[form_i]; for (var hero_i in fight_infos["hero_items"]) { fight_infos["hero_items"][hero_i].deleteMe(); fight_infos["hero_items"][hero_i] = null; } if (fight_infos.role_head) { fight_infos.role_head.deleteMe(); fight_infos.role_head = null; } fight_infos = null; } }, // 主界面基础信息更新 updateFightInfo: function updateFightInfo(fight_info) { if (!fight_info) return; this.fight_info = fight_info; if (this.root_wnd) this.updateWiget(); }, updateWiget: function updateWiget() { var fight_info = this.fight_info; if (!fight_info) return; // 敌我阵容相关 for (var form_i in this.fight_forms) { var info_index = "a_"; if (form_i == 2) info_index = "b_"; var fight_form = this.fight_forms[form_i]; // hero_tiem初始化 for (var hero_i in fight_form["hero_items"]) { fight_form["hero_items"][hero_i].setData(null); if (this.isFightPos(fight_info[info_index + "formation_type"], hero_i)) { fight_form["hero_nds"][hero_i].opacity = 255; } else { fight_form["hero_nds"][hero_i].opacity = 128; } } // 基础信息 fight_form["role_name_lb"].string = fight_info[info_index + "name"]; fight_form["role_lev_lb"].string = fight_info[info_index + "lev"] + "级"; var form_icon_path = PathTool.getUIIconPath("form", "form_icon_" + fight_info[info_index + "formation_type"]); this.loadRes(form_icon_path, function (form_sp, form_sf) { form_sp.spriteFrame = form_sf; }.bind(this, fight_form["form_icon_sp"])); // 英雄item var hero_list = fight_info[info_index + "plist"]; for (var hero_i in hero_list) { var hero_info = hero_list[hero_i]; var item_pos = this.getHeroItemPos(fight_info[info_index + "formation_type"], hero_info.pos); fight_form["hero_items"][item_pos].setData(hero_info); fight_form["hero_nds"][item_pos].opacity = 255; } // 头像 fight_form["role_head"].setHeadRes(fight_info[info_index + "face"]); // fight_form["role_head"].setLev(fight_info[info_index + "lev"]); // 战力 fight_form["power_cr"].setNum(fight_info[info_index + "power"]); } // 0:未打 1:胜利 2:失败 if (fight_info.ret == 0) { this.fight_forms[1]["success_img_nd"].active = false; this.fight_forms[2]["success_img_nd"].active = false; if (fight_info.replay_id === 0) { this.check_btn_nd.active = false; this.look_btn_nd.active = false; this.vs_img_nd.active = true; } else { this.check_btn_nd.active = false; this.look_btn_nd.active = true; this.vs_img_nd.active = false; } } else { this.check_btn_nd.active = true; this.look_btn_nd.active = false; this.vs_img_nd.active = false; if (fight_info.ret === 1) { this.fight_forms[1]["success_img_nd"].active = true; this.fight_forms[2]["success_img_nd"].active = false; } else { this.fight_forms[1]["success_img_nd"].active = false; this.fight_forms[2]["success_img_nd"].active = true; } } }, getHeroItemPos: function getHeroItemPos(form_type, pos) { var formation_config = Config.formation_data.data_form_data[form_type]; return formation_config.pos[pos - 1][1]; }, isFightPos: function isFightPos(form_type, pos) { var formation_config = Config.formation_data.data_form_data[form_type]; for (var pos_i in formation_config.pos) { if (formation_config.pos[pos_i][1] === pos) { return true; } } return false; }, onClickCheckBtn: function onClickCheckBtn() { var ArenaController = require("arena_controller"); ArenaController.getInstance().openArenaChampionReportWindow(true, this.fight_info); }, onClickLookBtn: function onClickLookBtn() { if (this.fight_info && this.fight_info.replay_id != 0) { BattleController.getInstance().csRecordBattle(this.fight_info.replay_id); } } }); cc._RF.pop();