screepers / typed-screeps

Strong TypeScript declarations for the game Screeps.
MIT License
189 stars 77 forks source link

Add a new subset of `AnyOwnedStructures`, excluding `KeeperLairs`, etc. #229

Open DiamondMofeng opened 1 year ago

DiamondMofeng commented 1 year ago

Brief Description

In the source of @screeps/engine, we can see that StructurePowerBank,StructureKeeperLair,StructureInvaderCore are derived from OwnedStructure prototype. This was designed to support FIND_HOSTILE_STRUCTURES(especially PowerBank) 图片

However, real players can never own those structures (in the official server).

We can add a new union of structures, excluding those unownable structures.

Considering that there is a Game.structures and typing it's value as AnyOwnedStructure is incorrect, it would be good to introduce this new union type.