Files
fc/dev/project/library/imports/05/05df83ca-1334-4ce0-b242-de4031c2b455.js
2026-05-24 10:21:26 +08:00

124 lines
3.6 KiB
JavaScript

"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();