优化代码
This commit is contained in:
		
							
								
								
									
										46
									
								
								.idea/inspectionProfiles/Project_Default.xml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										46
									
								
								.idea/inspectionProfiles/Project_Default.xml
									
									
									
										generated
									
									
									
										Normal file
									
								
							@@ -0,0 +1,46 @@
 | 
			
		||||
<component name="InspectionProjectProfileManager">
 | 
			
		||||
  <profile version="1.0">
 | 
			
		||||
    <option name="myName" value="Project Default" />
 | 
			
		||||
    <inspection_tool class="PyPackageRequirementsInspection" enabled="true" level="WARNING" enabled_by_default="true">
 | 
			
		||||
      <option name="ignoredPackages">
 | 
			
		||||
        <value>
 | 
			
		||||
          <list size="24">
 | 
			
		||||
            <item index="0" class="java.lang.String" itemvalue="blinker" />
 | 
			
		||||
            <item index="1" class="java.lang.String" itemvalue="autopep8" />
 | 
			
		||||
            <item index="2" class="java.lang.String" itemvalue="Flask-Cors" />
 | 
			
		||||
            <item index="3" class="java.lang.String" itemvalue="Werkzeug" />
 | 
			
		||||
            <item index="4" class="java.lang.String" itemvalue="Flask-HTTPAuth" />
 | 
			
		||||
            <item index="5" class="java.lang.String" itemvalue="SQLAlchemy" />
 | 
			
		||||
            <item index="6" class="java.lang.String" itemvalue="cryptography" />
 | 
			
		||||
            <item index="7" class="java.lang.String" itemvalue="MarkupSafe" />
 | 
			
		||||
            <item index="8" class="java.lang.String" itemvalue="click" />
 | 
			
		||||
            <item index="9" class="java.lang.String" itemvalue="Flask-SQLAlchemy" />
 | 
			
		||||
            <item index="10" class="java.lang.String" itemvalue="casbin" />
 | 
			
		||||
            <item index="11" class="java.lang.String" itemvalue="pip-review" />
 | 
			
		||||
            <item index="12" class="java.lang.String" itemvalue="Authlib" />
 | 
			
		||||
            <item index="13" class="java.lang.String" itemvalue="filelock" />
 | 
			
		||||
            <item index="14" class="java.lang.String" itemvalue="platformdirs" />
 | 
			
		||||
            <item index="15" class="java.lang.String" itemvalue="certifi" />
 | 
			
		||||
            <item index="16" class="java.lang.String" itemvalue="virtualenv" />
 | 
			
		||||
            <item index="17" class="java.lang.String" itemvalue="charset-normalizer" />
 | 
			
		||||
            <item index="18" class="java.lang.String" itemvalue="casbin-sqlalchemy-adapter" />
 | 
			
		||||
            <item index="19" class="java.lang.String" itemvalue="gevent" />
 | 
			
		||||
            <item index="20" class="java.lang.String" itemvalue="Flask" />
 | 
			
		||||
            <item index="21" class="java.lang.String" itemvalue="typing_extensions" />
 | 
			
		||||
            <item index="22" class="java.lang.String" itemvalue="greenlet" />
 | 
			
		||||
            <item index="23" class="java.lang.String" itemvalue="Flask-APScheduler" />
 | 
			
		||||
          </list>
 | 
			
		||||
        </value>
 | 
			
		||||
      </option>
 | 
			
		||||
    </inspection_tool>
 | 
			
		||||
    <inspection_tool class="PyPep8NamingInspection" enabled="true" level="WEAK WARNING" enabled_by_default="true">
 | 
			
		||||
      <option name="ignoredErrors">
 | 
			
		||||
        <list>
 | 
			
		||||
          <option value="N803" />
 | 
			
		||||
          <option value="N802" />
 | 
			
		||||
          <option value="N806" />
 | 
			
		||||
        </list>
 | 
			
		||||
      </option>
 | 
			
		||||
    </inspection_tool>
 | 
			
		||||
  </profile>
 | 
			
		||||
</component>
 | 
			
		||||
							
								
								
									
										8
									
								
								.idea/modules.xml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								.idea/modules.xml
									
									
									
										generated
									
									
									
										Normal file
									
								
							@@ -0,0 +1,8 @@
 | 
			
		||||
<?xml version="1.0" encoding="UTF-8"?>
 | 
			
		||||
<project version="4">
 | 
			
		||||
  <component name="ProjectModuleManager">
 | 
			
		||||
    <modules>
 | 
			
		||||
      <module fileurl="file://$PROJECT_DIR$/.idea/screepCpde.iml" filepath="$PROJECT_DIR$/.idea/screepCpde.iml" />
 | 
			
		||||
    </modules>
 | 
			
		||||
  </component>
 | 
			
		||||
</project>
 | 
			
		||||
							
								
								
									
										12
									
								
								.idea/screepCpde.iml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								.idea/screepCpde.iml
									
									
									
										generated
									
									
									
										Normal file
									
								
							@@ -0,0 +1,12 @@
 | 
			
		||||
<?xml version="1.0" encoding="UTF-8"?>
 | 
			
		||||
<module type="WEB_MODULE" version="4">
 | 
			
		||||
  <component name="NewModuleRootManager">
 | 
			
		||||
    <content url="file://$MODULE_DIR$">
 | 
			
		||||
      <excludeFolder url="file://$MODULE_DIR$/.tmp" />
 | 
			
		||||
      <excludeFolder url="file://$MODULE_DIR$/temp" />
 | 
			
		||||
      <excludeFolder url="file://$MODULE_DIR$/tmp" />
 | 
			
		||||
    </content>
 | 
			
		||||
    <orderEntry type="inheritedJdk" />
 | 
			
		||||
    <orderEntry type="sourceFolder" forTests="false" />
 | 
			
		||||
  </component>
 | 
			
		||||
</module>
 | 
			
		||||
							
								
								
									
										6
									
								
								.idea/vcs.xml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								.idea/vcs.xml
									
									
									
										generated
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
<?xml version="1.0" encoding="UTF-8"?>
 | 
			
		||||
<project version="4">
 | 
			
		||||
  <component name="VcsDirectoryMappings">
 | 
			
		||||
    <mapping directory="" vcs="Git" />
 | 
			
		||||
  </component>
 | 
			
		||||
</project>
 | 
			
		||||
							
								
								
									
										67
									
								
								.idea/workspace.xml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										67
									
								
								.idea/workspace.xml
									
									
									
										generated
									
									
									
										Normal file
									
								
							@@ -0,0 +1,67 @@
 | 
			
		||||
<?xml version="1.0" encoding="UTF-8"?>
 | 
			
		||||
<project version="4">
 | 
			
		||||
  <component name="AutoImportSettings">
 | 
			
		||||
    <option name="autoReloadType" value="SELECTIVE" />
 | 
			
		||||
  </component>
 | 
			
		||||
  <component name="ChangeListManager">
 | 
			
		||||
    <list default="true" id="c827e683-0dd1-4e51-b9ab-32ea80c8033c" name="Changes" comment="">
 | 
			
		||||
      <change afterPath="$PROJECT_DIR$/src/modules/creepApi.ts" afterDir="false" />
 | 
			
		||||
      <change beforePath="$PROJECT_DIR$/src/index.d.ts" beforeDir="false" afterPath="$PROJECT_DIR$/src/index.d.ts" afterDir="false" />
 | 
			
		||||
      <change beforePath="$PROJECT_DIR$/src/modules/builder.ts" beforeDir="false" afterPath="$PROJECT_DIR$/src/modules/builder.ts" afterDir="false" />
 | 
			
		||||
      <change beforePath="$PROJECT_DIR$/src/modules/setting.ts" beforeDir="false" afterPath="$PROJECT_DIR$/src/modules/setting.ts" afterDir="false" />
 | 
			
		||||
      <change beforePath="$PROJECT_DIR$/src/modules/spawnCreep.ts" beforeDir="false" afterPath="$PROJECT_DIR$/src/modules/spawnCreep.ts" afterDir="false" />
 | 
			
		||||
    </list>
 | 
			
		||||
    <option name="SHOW_DIALOG" value="false" />
 | 
			
		||||
    <option name="HIGHLIGHT_CONFLICTS" value="true" />
 | 
			
		||||
    <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
 | 
			
		||||
    <option name="LAST_RESOLUTION" value="IGNORE" />
 | 
			
		||||
  </component>
 | 
			
		||||
  <component name="Git.Settings">
 | 
			
		||||
    <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
 | 
			
		||||
  </component>
 | 
			
		||||
  <component name="ProjectColorInfo"><![CDATA[{
 | 
			
		||||
  "associatedIndex": 1
 | 
			
		||||
}]]></component>
 | 
			
		||||
  <component name="ProjectId" id="2oMglzZAjAmWPupiCpptc5L6kGn" />
 | 
			
		||||
  <component name="ProjectViewState">
 | 
			
		||||
    <option name="hideEmptyMiddlePackages" value="true" />
 | 
			
		||||
    <option name="showLibraryContents" value="true" />
 | 
			
		||||
  </component>
 | 
			
		||||
  <component name="PropertiesComponent"><![CDATA[{
 | 
			
		||||
  "keyToString": {
 | 
			
		||||
    "RunOnceActivity.ShowReadmeOnStart": "true",
 | 
			
		||||
    "git-widget-placeholder": "master",
 | 
			
		||||
    "ignore.virus.scanning.warn.message": "true",
 | 
			
		||||
    "last_opened_file_path": "C:/document/code/ts/screepCpde",
 | 
			
		||||
    "node.js.detected.package.eslint": "true",
 | 
			
		||||
    "node.js.detected.package.tslint": "true",
 | 
			
		||||
    "node.js.selected.package.eslint": "(autodetect)",
 | 
			
		||||
    "node.js.selected.package.tslint": "(autodetect)",
 | 
			
		||||
    "nodejs_package_manager_path": "npm",
 | 
			
		||||
    "ts.external.directory.path": "C:\\document\\code\\ts\\screepCpde\\node_modules\\typescript\\lib",
 | 
			
		||||
    "vue.rearranger.settings.migration": "true"
 | 
			
		||||
  }
 | 
			
		||||
}]]></component>
 | 
			
		||||
  <component name="SharedIndexes">
 | 
			
		||||
    <attachedChunks>
 | 
			
		||||
      <set>
 | 
			
		||||
        <option value="bundled-js-predefined-1d06a55b98c1-91d5c284f522-JavaScript-WS-241.15989.105" />
 | 
			
		||||
      </set>
 | 
			
		||||
    </attachedChunks>
 | 
			
		||||
  </component>
 | 
			
		||||
  <component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="application-level" UseSingleDictionary="true" transferred="true" />
 | 
			
		||||
  <component name="TaskManager">
 | 
			
		||||
    <task active="true" id="Default" summary="Default task">
 | 
			
		||||
      <changelist id="c827e683-0dd1-4e51-b9ab-32ea80c8033c" name="Changes" comment="" />
 | 
			
		||||
      <created>1730685013447</created>
 | 
			
		||||
      <option name="number" value="Default" />
 | 
			
		||||
      <option name="presentableId" value="Default" />
 | 
			
		||||
      <updated>1730685013447</updated>
 | 
			
		||||
      <workItem from="1730685014588" duration="3709000" />
 | 
			
		||||
    </task>
 | 
			
		||||
    <servers />
 | 
			
		||||
  </component>
 | 
			
		||||
  <component name="TypeScriptGeneratedFilesManager">
 | 
			
		||||
    <option name="version" value="3" />
 | 
			
		||||
  </component>
 | 
			
		||||
</project>
 | 
			
		||||
							
								
								
									
										8
									
								
								src/index.d.ts
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								src/index.d.ts
									
									
									
									
										vendored
									
									
								
							@@ -1,4 +1,8 @@
 | 
			
		||||
interface CreepMemory{
 | 
			
		||||
interface CreepMemory {
 | 
			
		||||
    role: string,
 | 
			
		||||
    working: boolean | null
 | 
			
		||||
    working?: boolean | null,
 | 
			
		||||
    [property: string]: any,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
declare type Part = WORK | MOVE | CARRY | HEAL | ATTACK | RANGED_ATTACK | TOUGH | CLAIM;
 | 
			
		||||
@@ -1,5 +1,5 @@
 | 
			
		||||
import { MAIN_SOURCE_ID } from "./setting";
 | 
			
		||||
import { FindCapacity, GetConstructureSet, GetContainer, GetSource } from "./util";
 | 
			
		||||
import { FindCapacity, GetConstructureSet, GetContainer, GetSource } from "./creepApi";
 | 
			
		||||
 | 
			
		||||
export function Build(creep: Creep, structureType: string | null = null) {
 | 
			
		||||
    if (creep.memory.working && creep.store[RESOURCE_ENERGY] == 0) {
 | 
			
		||||
@@ -27,7 +27,7 @@ export function Build(creep: Creep, structureType: string | null = null) {
 | 
			
		||||
        }
 | 
			
		||||
    } else {
 | 
			
		||||
        creep.memory.working = false
 | 
			
		||||
        var target = GetContainer(creep);
 | 
			
		||||
        const target = GetContainer(creep);
 | 
			
		||||
        if (creep.withdraw(target[0], RESOURCE_ENERGY) == ERR_NOT_IN_RANGE) {
 | 
			
		||||
            creep.moveTo(target[0], { visualizePathStyle: { stroke: '#ffaa00' } });
 | 
			
		||||
        }
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										85
									
								
								src/modules/creepApi.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										85
									
								
								src/modules/creepApi.ts
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,85 @@
 | 
			
		||||
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<Source> | null): Source {
 | 
			
		||||
    return Game.getObjectById(sourceId);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export function GetConstructureSet(creep: Creep, structureType: string | null = null): ConstructionSite<BuildableStructureConstant>[] {
 | 
			
		||||
    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<string, number>{
 | 
			
		||||
    let resp: Map<string, number> = 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;
 | 
			
		||||
}
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
import { FindCapacity, GetContainer, GetSource } from "./util"
 | 
			
		||||
import { FindCapacity, GetContainer, GetSource } from "./creepApi"
 | 
			
		||||
import { MAIN_SOURCE_ID } from "./setting";
 | 
			
		||||
 | 
			
		||||
export function Harvest(creep: Creep) {
 | 
			
		||||
 
 | 
			
		||||
@@ -1,13 +1,16 @@
 | 
			
		||||
let HARVESTER_COUNT: number = 0;
 | 
			
		||||
let BUILDER_COUNT: number = 1;
 | 
			
		||||
let UPGRADER_COUNT: number = 6;
 | 
			
		||||
export let HARVESTER_COUNT: number = 0;
 | 
			
		||||
export let BUILDER_COUNT: number = 1;
 | 
			
		||||
export let UPGRADER_COUNT: number = 4;
 | 
			
		||||
 | 
			
		||||
let MAIN_SOURCE_ID: Id<Source> = "ef990774d80108c" as Id<Source>;
 | 
			
		||||
 | 
			
		||||
export {
 | 
			
		||||
    HARVESTER_COUNT,
 | 
			
		||||
    BUILDER_COUNT,
 | 
			
		||||
    UPGRADER_COUNT,
 | 
			
		||||
    MAIN_SOURCE_ID,
 | 
			
		||||
export let MAIN_SOURCE_ID: Id<Source> = "ef990774d80108c" as Id<Source>;
 | 
			
		||||
export const enum Role {
 | 
			
		||||
    Harvester,
 | 
			
		||||
    BigHarvester,
 | 
			
		||||
    Builder,
 | 
			
		||||
    Upgrader,
 | 
			
		||||
    Repairer,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export let mk1Body: Part[] = [WORK, CARRY, MOVE];
 | 
			
		||||
export let mk2Body: Part[] = [WORK, WORK, CARRY, CARRY, MOVE, MOVE];
 | 
			
		||||
export let Mk2harvesterBody: Part[] = [WORK, WORK, WORK, WORK, MOVE];
 | 
			
		||||
 
 | 
			
		||||
@@ -1,70 +1,40 @@
 | 
			
		||||
import "./setting";
 | 
			
		||||
import { BUILDER_COUNT, HARVESTER_COUNT, UPGRADER_COUNT } from "./setting";
 | 
			
		||||
import * as setting from "./setting";
 | 
			
		||||
import * as creepApi from "./creepApi"
 | 
			
		||||
 | 
			
		||||
var createDefaultHarvester = (spawn: StructureSpawn) => {
 | 
			
		||||
    let name = "Harvester" + Game.time;
 | 
			
		||||
    return spawn.spawnCreep([WORK, CARRY, MOVE], name, {
 | 
			
		||||
        memory: {
 | 
			
		||||
            role: "Harvester",
 | 
			
		||||
            working: false
 | 
			
		||||
        }
 | 
			
		||||
    });
 | 
			
		||||
}
 | 
			
		||||
var createDefaultBuilder = (spawn: StructureSpawn) => {
 | 
			
		||||
    let name = "Builder" + Game.time;
 | 
			
		||||
    return spawn.spawnCreep([WORK, CARRY, MOVE], name, {
 | 
			
		||||
        memory: {
 | 
			
		||||
            role: "Builder",
 | 
			
		||||
            working: false
 | 
			
		||||
        }
 | 
			
		||||
    });
 | 
			
		||||
const createDefaultHarvester = (spawn: StructureSpawn) => {
 | 
			
		||||
    return creepApi.SpawnCreep(spawn, setting.mk1Body, setting.Role.Harvester);
 | 
			
		||||
}
 | 
			
		||||
const createDefaultBuilder = (spawn: StructureSpawn) => {
 | 
			
		||||
    return creepApi.SpawnCreep(spawn, setting.mk1Body, setting.Role.Builder);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
var createDefaultUpgrader = (spawn: StructureSpawn) => {
 | 
			
		||||
    let name = "Upgrader" + Game.time;
 | 
			
		||||
    return spawn.spawnCreep([WORK, CARRY, MOVE], name, {
 | 
			
		||||
        memory: {
 | 
			
		||||
            role: "Upgrader",
 | 
			
		||||
            working: false
 | 
			
		||||
        }
 | 
			
		||||
    });
 | 
			
		||||
const createDefaultUpgrader = (spawn: StructureSpawn) => {
 | 
			
		||||
    return creepApi.SpawnCreep(spawn, setting.mk1Body, setting.Role.Upgrader);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
const createMk2Harvester = (spawn: StructureSpawn) => {
 | 
			
		||||
    return creepApi.SpawnCreep(spawn, setting.Mk2harvesterBody, setting.Role.BigHarvester);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export function SpawnCreep(spawn: StructureSpawn) {
 | 
			
		||||
    if (spawn.spawning) return;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    let harvesters = _.filter(Game.creeps,
 | 
			
		||||
        /**@param {Creep} creep*/
 | 
			
		||||
        (creep) => {
 | 
			
		||||
            return creep.memory.role == "Harvester";
 | 
			
		||||
        });
 | 
			
		||||
    let builders = _.filter(Game.creeps,
 | 
			
		||||
        /**@param {Creep} creep*/
 | 
			
		||||
        (creep) => {
 | 
			
		||||
            return creep.memory.role == "Builder";
 | 
			
		||||
        });
 | 
			
		||||
    let upgraders = _.filter(Game.creeps,
 | 
			
		||||
        /**@param {Creep} creep*/
 | 
			
		||||
        (creep) => {
 | 
			
		||||
            return creep.memory.role == "Upgrader";
 | 
			
		||||
        });
 | 
			
		||||
    if (harvesters.length < HARVESTER_COUNT) {
 | 
			
		||||
    let currentCreeps = creepApi.GetCreeps();
 | 
			
		||||
    if (currentCreeps.get(creepApi.RoleToString(setting.Role.Harvester)) > setting.HARVESTER_COUNT) {
 | 
			
		||||
        if (createDefaultHarvester(spawn) == 0) {
 | 
			
		||||
            console.log("Spawn Harvester")
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    if (upgraders.length < UPGRADER_COUNT) {
 | 
			
		||||
    if (currentCreeps.get(creepApi.RoleToString(setting.Role.Upgrader)) > setting.UPGRADER_COUNT) {
 | 
			
		||||
        if (createDefaultUpgrader(spawn) == 0) {
 | 
			
		||||
            console.log("Spawn Upgrader")
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    if (builders.length < BUILDER_COUNT) {
 | 
			
		||||
    if (currentCreeps.get(creepApi.RoleToString(setting.Role.Builder)) > setting.BUILDER_COUNT) {
 | 
			
		||||
        if (createDefaultBuilder(spawn) == 0) {
 | 
			
		||||
            console.log("Spawn Builder")
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (spawn.spawning) {
 | 
			
		||||
        var spawningCreep = Game.creeps[spawn.spawning.name];
 | 
			
		||||
        spawn.room.visual.text(
 | 
			
		||||
 
 | 
			
		||||
@@ -1,5 +1,5 @@
 | 
			
		||||
import { MAIN_SOURCE_ID } from "./setting";
 | 
			
		||||
import { GetContainer, GetSource } from "./util";
 | 
			
		||||
import { GetContainer, GetSource } from "./creepApi";
 | 
			
		||||
 | 
			
		||||
/**@param {Creep} creep */
 | 
			
		||||
export function Upgrade(creep: Creep) {
 | 
			
		||||
 
 | 
			
		||||
@@ -1,37 +0,0 @@
 | 
			
		||||
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<Source> | null): Source {
 | 
			
		||||
    return Game.getObjectById(sourceId);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export function GetConstructureSet(creep: Creep, structureType: string | null = null): ConstructionSite<BuildableStructureConstant>[] {
 | 
			
		||||
    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
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user