"use strict"; cc._RF.push(module, 'a623fG8o+dB7qUFehEQxZx0', 'endless_help_me_panel'); // Scripts/mod/endless_trail/view/endless_help_me_panel.js "use strict"; // -------------------------------------------------------------------- // @author: xxx@syg.com(必填, 创建模块的人员) // @description: // 无尽试炼支援我的界面 //
Create: 2019-03-05 19:15:42 // -------------------------------------------------------------------- var PathTool = require("pathtool"); var CommonScrollView = require("common_scrollview"); var Endless_trailController = require("endless_trail_controller"); var Endless_trailEvent = require("endless_trail_event"); var RoleController = require("role_controller"); var HeroController = require("hero_controller"); var EndlessFriendHelpItem = require("endless_friend_help_item_panel"); var Endless_help_mePanel = cc.Class({ "extends": BasePanel, ctor: function ctor() { this.prefabPath = PathTool.getPrefabPath("endlesstrail", "endlesstrail_help_me_panel"); this.ctrl = Endless_trailController.getInstance(); this.model = Endless_trailController.getInstance().getModel(); }, // 可以初始化声明一些变量的 initConfig: function initConfig() { this.is_select = false; }, // 初始化一些配置数据,可以用于声明一些变量之类的 initPanel: function initPanel() { var container = this.root_wnd.getChildByName("container"); var scroll_container = container.getChildByName("scroll_container"); var desc_label = container.getChildByName("desc_label").getComponent(cc.Label); desc_label.string = Utils.TI18N("(超出拥有英雄120%战力的支援英雄不可选择)"); var scorll_size = scroll_container.getContentSize(); var size = cc.size(scorll_size.width - 4, scorll_size.height - 10); var setting = { item_class: EndlessFriendHelpItem, start_x: 0, space_x: 0, start_y: 0, space_y: 0, item_width: 600, item_height: 149, row: 0, col: 1, need_dynamic: true }; this.scroll_view = new CommonScrollView(); this.scroll_view.createScroll(scroll_container, cc.v2(4, 5), null, null, size, setting); }, // 注册事件监听的接口,不需要手动调用,如果是使用gcore.GlobalEvent监听,可以直接调用addGlobalEvent registerEvent: function registerEvent() { this.addGlobalEvent(Endless_trailEvent.UPDATA_HIREPARNER_DATA, function (data) { this.updateListData(data); }.bind(this)); this.addGlobalEvent(Endless_trailEvent.UPDATA_HASHIREPARNER_DATA, function (data) { this.updateHasListData(this.hire_data, data.list); }.bind(this)); }, setNodeVisible: function setNodeVisible(status) { if (this.root_wnd) { this.root_wnd.active = status; } }, updateHasListData: function updateHasListData(data) {}, updateListData: function updateListData(data, has_hire_list) { if (data) { this.hire_data = data; this.tmp_list = this.hire_data.list; var list_data = this.model.getHasHirePartnerData(); var model_list = {}; if (list_data) { model_list = list_data.list; } var has_list = has_hire_list || model_list; var check_has_list = function check_has_list(rid, srv_id, id) { if (has_list && Utils.next(has_list || {}) != null) { var is_has = false; for (var i in has_list) { if (has_list[i].id == id && has_list[i].rid == rid && has_list[i].srv_id == srv_id) { is_has = true; break; } } return is_has; } }; var height_power = HeroController.getInstance().getModel().getMaxFight() * 1.2; for (var j in this.tmp_list) { var v = this.tmp_list[j]; v.index = j; v._index = j; v.sort_index = 2; v.select = false; if (check_has_list(v.rid, v.srv_id, v.id) == true) { v.sort_index = 3; v.select = true; } v.is_lock = false; if (Config.partner_data.data_partner_base[v.bid]) { v.info_data = Config.partner_data.data_partner_base[v.bid]; } if (v.power >= height_power) { v.sort_index = 1; v.is_lock = true; } } this.tmp_list.sort(Utils.tableUpperSorter(["sort_index", "power"])); this.createList(this.tmp_list); } }, createList: function createList(list) { var callback = function (item, vo, index, is_select, is_start) { if (vo && Utils.next(vo) != null) { this.clickFun(item, vo, index, is_select, is_start); } }.bind(this); this.scroll_view.setData(list, callback); this.scroll_view.addEndCallBack(function () { var list = this.scroll_view.getItemList(); for (var i in list) { var data = list[i].getData(); if (data.select == true) { this.clickFun(list[i], data, data._index, true, true); } } }.bind(this)); }, addToParent: function addToParent() { this.ctrl.send23907(); }, updateBtnChoseStatus: function updateBtnChoseStatus(index, is_select) { if (!this.tmp_list) return; for (var i in this.tmp_list) { var v = this.tmp_list[i]; var old_status = v.select; if (v._index && v._index == index) { v.select = is_select; } else { v.select = false; } if (old_status == true && v.select == false) { this.ctrl.send23909(v.rid, v.srv_id, v.id, 0); } else if (old_status == false && v.select == true) { this.ctrl.send23909(v.rid, v.srv_id, v.id, 1); } } }, // 获取旧的item setAllItemBtnStatus: function setAllItemBtnStatus() { var list = this.scroll_view.getItemList(); for (var i in list) { var data = list[i].getData(); if (data.select == true) { list[i].updateBtnStatus(false); } } }, clickFun: function clickFun(item, vo, index, is_select, is_start) { this.setAllItemBtnStatus(); if (this.select_item_index && this.select_item_index == index && this.select_item) { // --controller:send23909(this.select_vo.rid, this.select_vo.srv_id, this.select_vo.id, 0) // --this.select_item:updateBtnStatus(false) this.updateBtnChoseStatus(this.select_item.index, false); this.select_item = null; this.is_select = false; this.select_item_index = null; return; } // --[[if this.select_item then // this.select_item:updateBtnStatus(false) // controller:send23909(this.select_vo.rid, this.select_vo.srv_id, this.select_vo.id, 0) // end--]] this.select_item = item; this.select_vo = vo; this.select_item.updateBtnStatus(true); this.updateBtnChoseStatus(index, true); this.select_item_index = index; this.is_select = is_select; // --[[if not is_start then // controller:send23909(this.select_vo.rid, this.select_vo.srv_id, this.select_vo.id, 1) // end--]] }, // 预制体加载完成之后,添加到对应主节点之后的回调可以设置一些数据了 onShow: function onShow(params) { this.addToParent(); }, // 面板设置不可见的回调,这里做一些不可见的屏蔽处理 onHide: function onHide() {}, // 当面板从主节点释放掉的调用接口,需要手动调用,而且也一定要调用 onDelete: function onDelete() { if (this.scroll_view) { this.scroll_view.deleteMe(); this.scroll_view = null; } } }); cc._RF.pop();