/TypeScreeps

A typescript port of my screeps code

Primary LanguageTypeScript

Types

Macro

Kingdom

  • Regions
  • AideRequests
  • DefenseRequests
  • InvadeRequests

Region

  • Villages
  • Outposts
  • AideRequests
  • InvadeRequests
  • DefenseRequests
  • Military

Village

  • Sources
  • Spawners
  • Minerals
  • Towers
  • Controller
  • Blueprint
  • Military

Outpost

  • Sources
  • Minerals
  • Blueprint

Badlands

  • Sources
  • Minerals
  • Blueprint

Source

  • Miner
  • Container
  • Haulers

Route

  • TicksToTravel
  • Path

Spawner

  • SpawnRequests
  • Village

Controller

  • Upgrader
  • Container
  • Haulers

Blueprint

  • VillageScore
  • Structures
  • Roads

Micro

Miner

  • Source
  • Post
Container
Maybe not needed
  • Route
  • TicksToSpawn

Hauler

  • PickUp
  • DropOff
  • Route

Upgrader

  • Post
  • Container
  • Route
  • TicksToSpawn

Scout

  • RoomsExplored

Laborer

Requests

SpawnRequest

  • Class
  • Role
  • TicksToSpawn
  • EnergyCost
  • CreepMemory

AideRequest

  • targetRoom
  • Role

DefenseRequest

  • targetRoom
  • Role

Hierarchy

  • Kingdom
    • Regions
      • Villages
        • Sources
          • Miner
          • Container
          • Haulers
        • Minerals
          • Miner
          • Container
          • Haulers
        • Controller
          • Container
          • Upgrader
          • Haulers
        • Spawners
          • SpawnRequests
      • Outposts
        • Sources
          • Miner
          • Container
          • Haulers
        • Minerals
          • Miner
          • Container
          • Haulers

Logical Steps

Kingdom

  • Clean up kingdom memory
  • Check Requests
    • Aide Request
      • Find Nearest Regions
        • Issue Aid Decree to the desired Region
    • Defense Request
      • Find Nearest Regions
        • Issue Defense Decree to the desired Region
    • Invade Request
      • Find Nearest Regions
        • Issue Invade Decree to the desired Region
  • Iterate Over Regions

Region

  • Clean up region memory
  • Check Requests
    • if Requests surpass capability, forward requests to Region
      • Region Doesn’t container viable villages
        • Villages that are just starting out, or have no spawns
      • Region has too many requests
    • Aide Request
      • Find Nearest Villages
        • Issue Aid Decree to the desired outpost/village
    • Defense Request
      • Find Nearest Villages
        • Issue Defense Decree to the desired outpost/village
    • Invade Request
      • Find Nearest Villages
        • Issue Invade Decree to the desired badlands/enemy village
  • Check Decrees
    • Aide Decree
      • Find Least stress Village
        • Issue Aid Decree
    • Defense Decree
      • Find Least stress Village
        • Issue Defense Decree
    • Invade Decree
      • Find Least stress Village
        • Issue Invade Decree
  • Iterate Over villages
  • Iterate Over Outposts

Village

  • Clean up village memory
  • Check Requests
    • if Requests surpass capability, forward requests to Region
      • Village has no spawner
      • Village has too many requests
    • Spawn Requests
      • Verify energy requirement met
        • Find idle spawner
          • Issue Spawn Decree to spawner
  • Ensure Village is in a state to aide
    • Check Decrees
      • Aide Decree
        • Issue Spawn Request For needed aide
      • Defense Decree
        • Issue Spawn Request For needed aide
      • Invade Decree
        • Issue Spawn Request For needed aide
  • Verify Blueprint exists
    • If not, generate blueprint
    • Execute Blueprint
  • Iterate Over Sources
  • Check For Construction Sites
    • If any and “Laborers assigned to room and/or requested” < 3
      • Issues Spawn Request to make up the difference in Laborers

Outpost

  • Clean up outpost memory
  • Verify Blueprint exists
    • If not, generate blueprint
    • Execute Blueprint
  • Iterate Over Sources
  • Check For Construction Sites
    • If any and “Laborers assigned to room and/or requested” < 3
      • Issues Spawn Request to make up the difference in Laborers

Source

  • Clean up Source memory
  • Verify miner exists
    • if Not, send spawn request to village/region

Blueprint

  • iterate over structures
    • ensure the structure/construction site exits
      • if not, request construction site

Generation

determine the ideal location for all structures/roads and store that information in memory. Based on available resources, determine the villageScore.