"use strict"; cc._RF.push(module, '05df8PKEzRM4LJC3kAxwrRV', 'cmp.battle.camp'); // Scripts/mod/battle/cmp/cmp.battle.camp.js "use strict"; var BattleController = require("battle_controller"); var BattleEvent = require("battle_event"); var BridgeWindow = require("bridge.window"); var ItemLay = require("cmp.common.itemlayout"); cc.Class({ "extends": BridgeWindow, properties: { list_panel: { "default": null, type: ItemLay }, detail_txt: { "default": null, type: cc.RichText } }, // LIFE-CYCLE CALLBACKS: onLoad: function onLoad() { this.ctrl = BattleController.getInstance(); this.model = this.ctrl.getModel(); }, start: function start() {}, // 重载:关闭前 onPreClosed: function onPreClosed() { this.list_panel.rebuild([]); }, onOpenConfigs: function onOpenConfigs(params) { this.form_id_list = params.form_id || []; this.form_pos_info = {}; for (var k = 0; k < this.form_id_list.length; ++k) { var form_id = this.form_id_list[k]; var form_cfg = game.configs.combat_halo_data.data_halo[form_id]; if (form_cfg) { for (var i = 0; i < form_cfg.pos_info.length; ++i) { var v = form_cfg.pos_info[i]; var camp_type = v[0]; var camp_num = v[1]; if (!this.form_pos_info[camp_type]) { this.form_pos_info[camp_type] = camp_num; } else { this.form_pos_info[camp_type] = this.form_pos_info[camp_type] + camp_num; } } } } this.detail_txt.string = game.configs.combat_halo_data.data_const.txt_data.val; this.refreshCampList(); }, refreshCampList: function refreshCampList() { var self = this; var camp_show_config = game.configs.combat_halo_data.data_halo_show; if (camp_show_config) { var camp_data = []; for (var k in camp_show_config) { var v = camp_show_config[k]; var data = nx.dt.objClone(v); var show_cfg = {}; show_cfg.id = k; show_cfg.is_activate = false; for (var j in data) { var cfg = data[j]; cfg.is_activate = this.checkIsActivateCamp(cfg.pos_info); if (cfg.is_activate) { show_cfg.is_activate = true; } if (!show_cfg.name) { show_cfg.name = cfg.name; } if (!show_cfg.icon) { show_cfg.icon = cfg.icon; } } show_cfg.attr_data = data; camp_data.push(show_cfg); } var SortFunc = function SortFunc(objA, objB) { if (objA.is_activate && !objB.is_activate) { return -1; } else if (!objA.is_activate && objB.is_activate) { return 1; } else { return objA.id - objB.id; } }; camp_data.sort(SortFunc); for (var i = 0; i < camp_data.length; ++i) { camp_data[i].index = i; } self.list_panel.rebuild(camp_data); } }, checkIsActivateCamp: function checkIsActivateCamp(pos_info) { var is_activate = false; if (pos_info) { is_activate = true; for (var i = 0; i < pos_info.length; ++i) { var v = pos_info[i]; var camp_type = v[0]; var camp_num = v[1]; var have_num = 0; for (var _type in this.form_pos_info) { var num = this.form_pos_info[_type]; if (_type == camp_type) { have_num = num; break; } } if (camp_num > have_num) { is_activate = false; break; } } } return is_activate; } // update (dt) {}, }); cc._RF.pop();