import {Role} from "@/modules/setting"; export function SetRole(creep: Creep, role: Role){ switch(role){ case Role.Harvester: creep.memory.role ="Harvester"; case Role.BigHarvester: creep.memory.role = "BigHarvester"; case Role.Builder: creep.memory.role = "Builder"; case Role.Upgrader: creep.memory.role = "Upgrader"; case Role.Repairer: creep.memory.role = "Repairer"; } } export function RoleToString(role: Role) : string{ switch(role){ case Role.Harvester: return "Harvester"; case Role.BigHarvester: return "BigHarvester"; case Role.Builder: return "Builder"; case Role.Upgrader: return "Upgrader"; case Role.Repairer: return "Repairer"; } } export function SpawnCreep(spawn: StructureSpawn, body: Part[], role?:Role) : number{ const name = "Creep" + Game.time; return spawn.spawnCreep(body, name, {memory: {role : RoleToString(role)}}); } export function FindCapacity(creep: Creep): AnyStructure[] { return creep.room.find(FIND_STRUCTURES, { filter: (structure: StructureSpawn | StructureExtension) => { let type = structure.structureType; return ( (type == STRUCTURE_EXTENSION || type == STRUCTURE_SPAWN|| type == STRUCTURE_CONTAINER) && structure.store.getFreeCapacity(RESOURCE_ENERGY) as number > 0 ) } }) } export function GetSource(sourceId: Id | null): Source { return Game.getObjectById(sourceId); } export function GetConstructureSet(creep: Creep, structureType: string | null = null): ConstructionSite[] { return creep.room.find(FIND_CONSTRUCTION_SITES, { filter: (structure: Structure) => { if (structureType == null) return true; return structure.structureType == structureType; } }) } export function GetConstructure(creep: Creep, structureType: string, ){ return creep.room.find(FIND_STRUCTURES, {filter:(structure: AnyStructure)=>{ return structure.structureType == structureType; }}) } export function GetContainer(creep: Creep): StructureContainer[]{ let target = GetConstructure(creep, STRUCTURE_CONTAINER) as StructureContainer[]; return target } export function GetCreeps() : Map{ let resp: Map = new Map(); for (var name in Game.creeps){ var creep = Game.creeps[name]; if(resp.has(creep.memory.role)) resp.set(creep.memory.role, resp.get(creep.memory.role)+1) else resp.set(creep.memory.role, 1); } return resp; }