Fixed an issue where the role map was not getting the unique role name and therefore no role could be looked up.
Added the BUILD_SPAWNS state to the SetupOverlord where it should create a builder and start building the other spawns. The create_spawns() function is not fully implemented yet though and the code to decide where to place the spawn is missing.
Changed the SetupOverlord to wotk with a state machine and added a todo_list property to keep track of its requirements and other utility that needs to be remembered.
Also tuned down the logging to only log thrown errors or new decisions instead of all the constant noise.
Finished a basic harvester logic which sets its harvesting and destination (where it brings the resource to) in memory which can be set by the overlord.
The harvester uses a state machine which persists also via memory to know what its doing and currently just travels to its harvest_spot, harvest, travels to its destination and delivers there and then repeats.
This means there is currently close to no error handling. For example if the storage is full, the harvest target is cooling down or the creep dies of age or damage is an issue. The creep also doesn't register its death or damage in anyway.
Added more comments for explaining the code's intent
Added very basic pathfinding in the harvesterRole. Currently only moves the creep towards the nearest source and repeats the pathfinding process every tick.
Introduced rough organization structure based on a hivemind ordering overlords which eventually order creeps and spawns.
Moved all source files into src/ so that grunt tasks can work properly on them.
Added tasks to flatten the folder structure and rename the files and requires() accordingly.
Also added a task to insert a version.js with a global version variable as well as time-grunt to show the time it takes.