Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- "use strict";
- const roleHarvester = require('role.harvester');
- const roleBuilder = require('role.builder');
- const roleRepairer = require('role.repairer');
- const roleGetter = require('role.getter');
- const roleFiller = require('role.filler');
- const roleDistantHarvester = require('role.distantHarvester');
- const roleAttacker = require('role.attacker');
- const roleClaimer = require('role.claimer');
- const roleUpgrader = require('./role.upgrader');
- const shared = require('shared');
- const rolesRoom = require('roles');
- // if (rolesRoom.rooms[i].distantHarvester) {
- // createRoles[rolesRoom.rooms[i].name].distantHarvester.quantity = rolesRoom.rooms[i].distantHarvester.quantity;
- // createRoles[rolesRoom.rooms[i].name].distantHarvester.goRoom = rolesRoom.rooms[i].distantHarvester.goRoom;
- // }
- module.exports.loop = function () {
- const createRoles = {};
- for (const i in rolesRoom.rooms) {
- createRoles[rolesRoom.rooms[i].name] = rolesRoom.levels[rolesRoom.rooms[i].level];
- }
- // const roles = createRoles;
- const roles = rolesRoom.role;
- // console.log(roles['E59S58']['upgrader'].currentQuantity)
- // console.log(JSON.stringify(roles))
- // подсчитываем количество крипов в руме
- for (const spawnRoom in roles) {
- for (const roleName in roles[spawnRoom]) {
- roles[spawnRoom][roleName].currentQuantity = 0;
- }
- }
- // console.log(JSON.stringify(roles))
- // console.log(roles['E59S58']['upgrader'].currentQuantity)
- for (const i in Game.creeps) {
- const creep = Game.creeps[i];
- roles[creep.memory.spawnRoom][creep.memory.role].currentQuantity += 1;
- // console.log(creep.memory.spawnRoom)
- // // console.log(creep.memory.role)
- // console.log(roles[creep.memory.spawnRoom][creep.memory.role].currentQuantity)
- // console.log(creep)
- if (creep.memory.spawnRoom === 'E59S58' && creep.memory.role === 'upgrader') {
- // console.log(creep.memory.spawnRoom)
- // console.log(creep.memory.role)
- // console.log(creep)
- // console.log(roles['E59S58']['upgrader'].currentQuantity)
- }
- }
- console.log(roles['E59S58']['upgrader'].currentQuantity)
- // console.log(JSON.stringify(roles))
- // console.log(JSON.stringify(rolesRoom.role))
- // трансфер энергии между линками
- for (const spawnRoom in roles) {
- if (roles.hasOwnProperty(spawnRoom)) {
- const controller = Game.rooms[spawnRoom].find(FIND_STRUCTURES, {
- filter: function (object) {
- if (object.structureType === 'controller') {
- return true;
- }
- }
- })[0];
- const linkController = Game.rooms[spawnRoom].find(FIND_STRUCTURES, {
- filter: function (object) {
- if (object.structureType === 'link') {
- return (shared.getDistance(object.pos.x, controller.pos.x) < 4 && shared.getDistance(object.pos.y, controller.pos.y) < 4);
- }
- }
- })[0];
- if (linkController) {
- Game.rooms[spawnRoom].find(FIND_STRUCTURES, {
- filter: (object) => {
- if (object.structureType === 'link' && object !== linkController) {
- object.transferEnergy(linkController);
- }
- }
- });
- }
- }
- }
- // атака башни
- for (const spawnRoom in roles) {
- if (roles.hasOwnProperty(spawnRoom)) {
- let towers = Game.rooms[spawnRoom].find(
- FIND_MY_STRUCTURES, {filter: {structureType: STRUCTURE_TOWER}});
- towers.map(tower => {
- if (tower) {
- const closestHostile = tower.pos.findClosestByRange(FIND_HOSTILE_CREEPS);
- if (closestHostile) {
- tower.attack(closestHostile);
- } else {
- const closestDamagedWall = tower.pos.findClosestByRange(STRUCTURE_WALL, {
- filter: (structure) => structure.hits < 100
- });
- const closestDamagedRampart = tower.pos.findClosestByRange(STRUCTURE_RAMPART, {
- filter: (structuere) => structure.hits < 1
- });
- const closestDamagedStructure = tower.pos.findClosestByRange(FIND_STRUCTURES, {
- filter: (structure) => {
- return structure.structureType !== 'constructedWall' && structure.hits < structure.hitsMax
- }
- });
- if (closestDamagedWall) {
- tower.repair(closestDamagedWall);
- }
- if (closestDamagedRampart) {
- tower.repair(closestDamagedRampart);
- }
- if (closestDamagedStructure) {
- tower.repair(closestDamagedStructure)
- }
- }
- }
- })
- }
- }
- // спаун крипов
- for (const spawnRoom in roles) {
- if (roles.hasOwnProperty(spawnRoom)) {
- for (const roleName in roles[spawnRoom]) {
- if (roles[spawnRoom].hasOwnProperty(roleName) && roles[spawnRoom][roleName] && roles[spawnRoom][roleName].currentQuantity < roles[spawnRoom][roleName].quantity) {
- let arrCreeps = [];
- for (const value in Game.creeps) {
- if (Game.creeps.hasOwnProperty(value)) {
- const creep = Game.creeps[value];
- if (creep.memory.role === roleName && creep.memory.spawnRoom === spawnRoom) {
- arrCreeps.push(creep.memory.numberCreep);
- }
- }
- }
- let numberCreep = shared.getNextNumber(arrCreeps);
- let strength = [];
- if (roleName === 'harvester') {
- Game.rooms[spawnRoom].energyAvailable <= 300 ? strength = roles[spawnRoom][roleName].strength : strength = roles[spawnRoom].bigHarvester.strength;
- } else {
- strength = roles[spawnRoom][roleName].strength;
- }
- const creepName = roleName[0].toUpperCase() + roleName.substring(1) + numberCreep + `(${spawnRoom})`;
- let spawn = {};
- Game.rooms[spawnRoom].find(FIND_STRUCTURES, {
- filter: (object) => {
- if (object.structureType === 'spawn') {
- spawn = object;
- }
- }
- });
- const memory = {
- role: roleName,
- working: false,
- spawnName: spawn.name,
- spawnRoom,
- numberCreep
- };
- if (roles[spawnRoom][roleName].goRoom) {
- memory.goRoom = roles[spawnRoom][roleName].goRoom;
- }
- if (spawn.name !== undefined) {
- spawn.spawnCreep(
- strength,
- creepName, {
- memory
- }
- );
- }
- }
- }
- }
- }
- for (const value in Game.creeps) {
- if (Game.creeps.hasOwnProperty(value)) {
- const creep = Game.creeps[value];
- if (creep.memory.role === 'harvester') {
- roleHarvester.run(creep);
- }
- if (creep.memory.role === 'filler') {
- roleFiller.run(creep);
- }
- if (creep.memory.role === 'getter') {
- roleGetter.run(creep);
- }
- if (creep.memory.role === 'upgrader') {
- roleUpgrader.run(creep);
- }
- if (creep.memory.role === 'builder') {
- roleBuilder.run(creep);
- }
- if (creep.memory.role === 'repairer') {
- roleRepairer.run(creep);
- }
- if (creep.memory.role === 'distantHarvester') {
- roleDistantHarvester.run(creep);
- }
- if (creep.memory.role === 'attacker') {
- roleAttacker.run(creep);
- }
- if (creep.memory.role === 'claimer') {
- roleClaimer.run(creep);
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement