124 lines
3.6 KiB
JavaScript
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();
|