优化代码
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,
 | 
					    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 { 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) {
 | 
					export function Build(creep: Creep, structureType: string | null = null) {
 | 
				
			||||||
    if (creep.memory.working && creep.store[RESOURCE_ENERGY] == 0) {
 | 
					    if (creep.memory.working && creep.store[RESOURCE_ENERGY] == 0) {
 | 
				
			||||||
@@ -27,7 +27,7 @@ export function Build(creep: Creep, structureType: string | null = null) {
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
    } else {
 | 
					    } else {
 | 
				
			||||||
        creep.memory.working = false
 | 
					        creep.memory.working = false
 | 
				
			||||||
        var target = GetContainer(creep);
 | 
					        const target = GetContainer(creep);
 | 
				
			||||||
        if (creep.withdraw(target[0], RESOURCE_ENERGY) == ERR_NOT_IN_RANGE) {
 | 
					        if (creep.withdraw(target[0], RESOURCE_ENERGY) == ERR_NOT_IN_RANGE) {
 | 
				
			||||||
            creep.moveTo(target[0], { visualizePathStyle: { stroke: '#ffaa00' } });
 | 
					            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";
 | 
					import { MAIN_SOURCE_ID } from "./setting";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export function Harvest(creep: Creep) {
 | 
					export function Harvest(creep: Creep) {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,13 +1,16 @@
 | 
				
			|||||||
let HARVESTER_COUNT: number = 0;
 | 
					export let HARVESTER_COUNT: number = 0;
 | 
				
			||||||
let BUILDER_COUNT: number = 1;
 | 
					export let BUILDER_COUNT: number = 1;
 | 
				
			||||||
let UPGRADER_COUNT: number = 6;
 | 
					export let UPGRADER_COUNT: number = 4;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
let MAIN_SOURCE_ID: Id<Source> = "ef990774d80108c" as Id<Source>;
 | 
					export let MAIN_SOURCE_ID: Id<Source> = "ef990774d80108c" as Id<Source>;
 | 
				
			||||||
 | 
					export const enum Role {
 | 
				
			||||||
export {
 | 
					    Harvester,
 | 
				
			||||||
    HARVESTER_COUNT,
 | 
					    BigHarvester,
 | 
				
			||||||
    BUILDER_COUNT,
 | 
					    Builder,
 | 
				
			||||||
    UPGRADER_COUNT,
 | 
					    Upgrader,
 | 
				
			||||||
    MAIN_SOURCE_ID,
 | 
					    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 * as setting from "./setting";
 | 
				
			||||||
import { BUILDER_COUNT, HARVESTER_COUNT, UPGRADER_COUNT } from "./setting";
 | 
					import * as creepApi from "./creepApi"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
var createDefaultHarvester = (spawn: StructureSpawn) => {
 | 
					const createDefaultHarvester = (spawn: StructureSpawn) => {
 | 
				
			||||||
    let name = "Harvester" + Game.time;
 | 
					    return creepApi.SpawnCreep(spawn, setting.mk1Body, setting.Role.Harvester);
 | 
				
			||||||
    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 createDefaultBuilder = (spawn: StructureSpawn) => {
 | 
				
			||||||
 | 
					    return creepApi.SpawnCreep(spawn, setting.mk1Body, setting.Role.Builder);
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
var createDefaultUpgrader = (spawn: StructureSpawn) => {
 | 
					const createDefaultUpgrader = (spawn: StructureSpawn) => {
 | 
				
			||||||
    let name = "Upgrader" + Game.time;
 | 
					    return creepApi.SpawnCreep(spawn, setting.mk1Body, setting.Role.Upgrader);
 | 
				
			||||||
    return spawn.spawnCreep([WORK, CARRY, MOVE], name, {
 | 
					};
 | 
				
			||||||
        memory: {
 | 
					
 | 
				
			||||||
            role: "Upgrader",
 | 
					const createMk2Harvester = (spawn: StructureSpawn) => {
 | 
				
			||||||
            working: false
 | 
					    return creepApi.SpawnCreep(spawn, setting.Mk2harvesterBody, setting.Role.BigHarvester);
 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    });
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export function SpawnCreep(spawn: StructureSpawn) {
 | 
					export function SpawnCreep(spawn: StructureSpawn) {
 | 
				
			||||||
    if (spawn.spawning) return;
 | 
					    if (spawn.spawning) return;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    let currentCreeps = creepApi.GetCreeps();
 | 
				
			||||||
    let harvesters = _.filter(Game.creeps,
 | 
					    if (currentCreeps.get(creepApi.RoleToString(setting.Role.Harvester)) > setting.HARVESTER_COUNT) {
 | 
				
			||||||
        /**@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) {
 | 
					 | 
				
			||||||
        if (createDefaultHarvester(spawn) == 0) {
 | 
					        if (createDefaultHarvester(spawn) == 0) {
 | 
				
			||||||
            console.log("Spawn Harvester")
 | 
					            console.log("Spawn Harvester")
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    if (upgraders.length < UPGRADER_COUNT) {
 | 
					    if (currentCreeps.get(creepApi.RoleToString(setting.Role.Upgrader)) > setting.UPGRADER_COUNT) {
 | 
				
			||||||
        if (createDefaultUpgrader(spawn) == 0) {
 | 
					        if (createDefaultUpgrader(spawn) == 0) {
 | 
				
			||||||
            console.log("Spawn Upgrader")
 | 
					            console.log("Spawn Upgrader")
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    if (builders.length < BUILDER_COUNT) {
 | 
					    if (currentCreeps.get(creepApi.RoleToString(setting.Role.Builder)) > setting.BUILDER_COUNT) {
 | 
				
			||||||
        if (createDefaultBuilder(spawn) == 0) {
 | 
					        if (createDefaultBuilder(spawn) == 0) {
 | 
				
			||||||
            console.log("Spawn Builder")
 | 
					            console.log("Spawn Builder")
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					 | 
				
			||||||
    if (spawn.spawning) {
 | 
					    if (spawn.spawning) {
 | 
				
			||||||
        var spawningCreep = Game.creeps[spawn.spawning.name];
 | 
					        var spawningCreep = Game.creeps[spawn.spawning.name];
 | 
				
			||||||
        spawn.room.visual.text(
 | 
					        spawn.room.visual.text(
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,5 +1,5 @@
 | 
				
			|||||||
import { MAIN_SOURCE_ID } from "./setting";
 | 
					import { MAIN_SOURCE_ID } from "./setting";
 | 
				
			||||||
import { GetContainer, GetSource } from "./util";
 | 
					import { GetContainer, GetSource } from "./creepApi";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**@param {Creep} creep */
 | 
					/**@param {Creep} creep */
 | 
				
			||||||
export function Upgrade(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