精简代码
This commit is contained in:
parent
e64cf48aa7
commit
f9856855ba
53
main.js
53
main.js
|
|
@ -2,13 +2,14 @@ const init = require('init')
|
|||
const util = require('utils');
|
||||
const mount = require('mount')
|
||||
module.exports.loop = function () {
|
||||
extra()
|
||||
init.init();
|
||||
mount.mount()
|
||||
cleanCreeps()
|
||||
cleanInvalidMemoryCreep()
|
||||
cleanTargetMemory()
|
||||
assign_harvester_to_enery_source();
|
||||
assign_transfer_to_picker()
|
||||
assign_transfer_to_harvester()
|
||||
assign_builder_to_controller();
|
||||
assign_transfer_to_builder();
|
||||
let isSpawning = false
|
||||
|
|
@ -41,6 +42,11 @@ module.exports.loop = function () {
|
|||
}
|
||||
|
||||
|
||||
function extra(){
|
||||
// Game.map.visual.circle(Game.getObjectById('5f9423c48004fbeff0f4d965').pos)
|
||||
// console.log(Game.getObjectById('5f9423c48004fbeff0f4d965').pos)
|
||||
}
|
||||
|
||||
function cleanCreeps() {
|
||||
for (let i in Memory.creeps) {
|
||||
if (!Game.creeps[i]) {
|
||||
|
|
@ -61,24 +67,23 @@ function cleanTargetMemory() {
|
|||
}
|
||||
|
||||
|
||||
function assign_transfer_to_picker() {
|
||||
function assign_transfer_to_harvester() {
|
||||
//判断有多少个picker的transfer为0
|
||||
let all_picker = _.filter(Game.creeps, { memory: { role: 'harvester' } })
|
||||
let picker_has_no_creep = _.filter(all_picker, function (picker) {
|
||||
return !_.find(Memory.WorkingTarget, target => target.id == picker.id)//Memory.WorkingTarget中没有这个picker目标
|
||||
let harvester_without_creep = _.filter(Game.creeps, function (creep) {
|
||||
return !Memory.WorkingTarget[creep.name] && creep.memory.role=='harvester'//Memory.WorkingTarget中没有这个picker目标
|
||||
})
|
||||
_.each(picker_has_no_creep, function (picker) {
|
||||
Memory.WorkingTarget[picker.name] = { id: picker.id, working_creep_names: [], cate: 'harvester' }//在Memory.WorkingTarget加入需要creep的Picker
|
||||
_.each(harvester_without_creep, function (harvester_creep) {
|
||||
Memory.WorkingTarget[harvester_creep.name] = { id: harvester_creep.id, working_creep_names: [], cate: 'harvester' }//在Memory.WorkingTarget加入需要creep的Picker
|
||||
})
|
||||
let picker_memories = _.filter(Memory.WorkingTarget, memory => memory.working_creep_names.length == 0 && memory.cate=='harvester')
|
||||
if (picker_memories.length > 0) {
|
||||
let available_transfer = _.filter(Game.creeps, creep => !creep.working_target_id && (creep.memory.role == 'transfer'))
|
||||
if (available_transfer.length > 0) {//一次只安排一个creep
|
||||
let harvester_needs_creep_memory = _.filter(Memory.WorkingTarget, memory => memory.working_creep_names.length == 0 && memory.cate=='harvester')
|
||||
if (harvester_needs_creep_memory.length > 0) {
|
||||
let idle_transfer = _.filter(Game.creeps, creep => !creep.working_target_id && (creep.memory.role == 'transfer'))
|
||||
if (idle_transfer.length > 0) {//一次只安排一个creep
|
||||
let opt = {
|
||||
memory: picker_memories,
|
||||
creep_name_to_assgin_array: [available_transfer[0].name]
|
||||
memory: harvester_needs_creep_memory,
|
||||
creep_name_to_assgin_array: [idle_transfer[0].name]
|
||||
}
|
||||
assign_creeps(opt)
|
||||
assign_creeps(opt)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -93,20 +98,19 @@ function assign_task() {
|
|||
|
||||
function assign_transfer_to_builder() {
|
||||
//判断有多少个picker的transfer为0
|
||||
let all_builder = _.filter(Game.creeps, { memory: { role: 'builder' } })
|
||||
let builder_has_no_creep = _.filter(all_builder, function (builder) {
|
||||
return !_.find(Memory.WorkingTarget, target => target.id == builder.id)//Memory.WorkingTarget中没有这个builder目标
|
||||
let builder_without_creep = _.filter(Game.creeps, function (creep) {
|
||||
return !Memory.WorkingTarget[creep.name] && creep.memory.role=='builder'//Memory.WorkingTarget中没有这个picker目标
|
||||
})
|
||||
_.each(builder_has_no_creep, function (builder) {
|
||||
_.each(builder_without_creep, function (builder) {
|
||||
Memory.WorkingTarget[builder.name] = { id: builder.id, working_creep_names: [], cate: 'builder' }//在Memory.WorkingTarget加入需要creep的builder
|
||||
})
|
||||
let builder_memories = _.filter(Memory.WorkingTarget, memory => memory.working_creep_names.length == 0 && memory.cate=='builder')
|
||||
if (builder_memories.length > 0) {
|
||||
let available_transfer = _.filter(Game.creeps, creep => !creep.working_target_id && (creep.memory.role == 'transfer'))
|
||||
if (available_transfer.length > 0) {//一次只安排一个creep
|
||||
let builder_needs_creep_memory = _.filter(Memory.WorkingTarget, memory => memory.working_creep_names.length == 0 && memory.cate=='builder')
|
||||
if (builder_needs_creep_memory.length > 0) {
|
||||
let idle_transfer = _.filter(Game.creeps, creep => !creep.working_target_id && (creep.memory.role == 'transfer'))
|
||||
if (idle_transfer.length > 0) {//一次只安排一个creep
|
||||
let opt = {
|
||||
memory: builder_memories,
|
||||
creep_name_to_assgin_array: [available_transfer[0].name]
|
||||
memory: builder_needs_creep_memory,
|
||||
creep_name_to_assgin_array: [idle_transfer[0].name]
|
||||
}
|
||||
assign_creeps(opt)
|
||||
}
|
||||
|
|
@ -160,7 +164,6 @@ function assign_harvester_to_enery_source() {
|
|||
for (let source of sources) {
|
||||
let id = source.id
|
||||
if (!_.find(all_memory,f => f['id'] == id)) {
|
||||
// console.log(`add id ${id}`)
|
||||
all_memory[`Energy_${id}`] = { 'id': id, 'working_creep_names': [], "cate": 'ENERGY_SOURCE' };
|
||||
}
|
||||
}//向Memory.WorkingTarget里添加所有的Energy Source
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ module.exports = {
|
|||
let working_target_pos = working_target.pos
|
||||
let my_pos = creep.pos;
|
||||
if(!working_target.memory){
|
||||
console.log(`check ${creep.name} working target`)
|
||||
console.log(`check ${creep.name}, working target memory ${JSON.stringify(working_target)}`)
|
||||
return
|
||||
}
|
||||
if (working_target.memory.role == 'harvester') {
|
||||
|
|
|
|||
Loading…
Reference in New Issue