2016-12-17 4 views
0

Я пытаюсь настроить сценарий автоматического нереста в основном на основе установленного предела числа, установленного ранее в переменной. Однако по какой-то причине выполнение скрипта выполняется ненормально.Spawner не будет останавливать нерестовые комбайны

Сценарий:

var roleHarvester = require('role.harvester'); 
var roleUpgrader = require('role.upgrader'); 
var roleSpawner = require('role.spawner'); 
var trashHandler = require('helper.trashHandler'); 

module.exports.loop = function() { 
    //Start by cleaning memory 
    trashHandler.run(Memory); 

    //Default Number of Creeps 
    var max_harvesters = 2; 
    var max_upgraders = 3; 

    for(var name in Game.creeps) { 
     var creep = Game.creeps[name]; 

     if (creep.memory.role == 'harvester'){ 
      roleHarvester.run(creep); 
     } else if (creep.memory.role == 'upgrader'){ 
      roleUpgrader.run(creep); 
     } 
    } 

    var harvesters = _.filter(Game.creeps,(creep)=>creep.memory.role == 'harvester'); 
    var upgraders = _.filter(Game.creeps,(creep)=>creep.memory.role == 'upgrader'); 

    for (var name in Game.spawns){ 
     var spawner = Game.spawns[name]; 

     console.log(harvesters.length < max_harvesters); 
     console.log(max_harvesters); 
     console.log(harvesters.length); 


     if (harvesters.length < max_harvesters){ 
      roleSpawner.spawnHarvester(spawner); 
     } else if (upgraders.length < max_upgraders){ 
      roleSpawner.spawnHarvester(spawner); 
     } 
    } 
} 

Консоли выходы в конце показывают, что его работа, как его suppoed к но что выполнение скрипта, игнорируя тот факт, что если оператор выполняющейся лжи.

[8:17:20 PM] ложно

[8:17:20 PM] 2

[8:17:20 PM] 9

[8:17: 20 PM] комбайн икру falied: -6

[8:17:23 PM] ложно

[8:17:23 PM] 2

[20:17:23 PM] 10

+1

Не используйте Game.creeps для этого, так как это испортится, как только вы начнете колонизировать вторую комнату. Вместо этого выполните итерацию по Game.rooms и выполните код для каждой комнаты, используя 'room.find (FIND_MY_CREEPS, {filter: c => c.memory.role === 'harvester'})'. – Toolmaker

ответ

2

О, мой бог ..... Просто заметил, что я называю функцию spawnHarvester для обоих. ЛОЛ.

+0

Я думаю, вы должны построить больше производителей харвестеров, таким образом, вы сможете зарабатывать деньги быстрее и поддерживать здоровую экономику, которая может поддерживать все танки, которые вы собираетесь строить ... – Mzn

 Смежные вопросы

  • Нет связанных вопросов^_^