-
Notifications
You must be signed in to change notification settings - Fork 0
/
controller.room.js
67 lines (57 loc) · 2.16 KB
/
controller.room.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
const spawnLogic = require('controller.spawn');
const towerLogic = require('controller.tower');
const terminalLogic = require('controller.terminal');
const linkLogic = require('controller.link');
const data = require('memory.manager');
const visuals = require('visuals');
module.exports =
{
run: function(room)
{
// Only run for my rooms
if (room.controller == undefined || !room.controller.my)
{return;}
// Manage room Memory
data.roomMemory(room);
// Draw room visuals
visuals.drawRoomVisuals(room);
//////////---Spawn Logic---//////////
// Find Spawns
let roomSpawns = room.find(FIND_MY_STRUCTURES, { filter: (s) => s.structureType == STRUCTURE_SPAWN});
if (room.memory.queue >= roomSpawns.length)
{
// If queue is more than number of spawns, reset it
room.memory.queue = 0;
}
// Make sure there is a spawn in the room
if (roomSpawns[room.memory.queue] != undefined)
{
// Run logic on queued spawn
spawnLogic.run(roomSpawns[room.memory.queue]);
}
//----------// TURRET CONTROL //----------//
// Find towers in the room
let roomTowers = room.find(FIND_MY_STRUCTURES, {filter: (s) => s.structureType == STRUCTURE_TOWER});
// Run logic for each of them
for(let t in roomTowers)
{
towerLogic.run(roomTowers[t]);
}
//---------// Terminal Control //--------//
terminalLogic.run(room);
//---------// Link Control //--------//
linkLogic.run(room);
//-------// Power Spawn //-------//
let powerSpawn = room.find(FIND_MY_STRUCTURES, {filter: (s) => s.structureType == STRUCTURE_POWER_SPAWN})[0];
if(powerSpawn)
{
if(!(Game.powerCreeps['Shyft'].spawnCooldownTime > Date.now())) {
Game.powerCreeps['Shyft'].spawn(powerSpawn);
}
powerSpawn.processPower();
}
// ----- // DEFCON SYSTEM // ----- //
// Check how bad it is and react accordingly
data.checkDefcon(room);
}
};