I think the idea, in general, is great of having an alternative to creep only or terminal only resource transport. There are a few things that seem a bit awkward though like warp containers not connecting to neighboring rooms.
As an alternative proposal I would suggest:
- 1 Warp Container per room.
- Warp Container Transfer Range of 1 Room
- 100k Build Cost
- Internal Capacity of 5k
- Decay cycle runs every 1000 ticks and does 500k damage. Requires repair
- Transfer Damage = resourceAmount * 5;
New Functions:
- WarpContainer.repairFromInternalStore(amount: 500) // heals 25000 hitpoints
- Creep.opperateStructure(WarpContainer, {transferTarget: room, resource: energy, amount: 5000})
Decay Cycle That Decays on Timer 1000 Ticks Does Damage to Structure Can be Healed with a function. WarpContainer.repairFromInternalStore() at a rate of 50 units per energy. Or a creep can use a regular style repair for 100 repair points. I think the cost should be 5 energy units per tick equivalent. There should also be damage done during the transfer function.
Needs Creep to call a function to transfer resources. Range 1. This means that if you let an enemy player near it they can transfer out the resources forcing you to defend the warp container from enemies. This solves the issues around ownership.
If a player executes a transfer it becomes "reserved" by that player. If another player transfers it becomes neutral. This makes it similar to reserving controllers currently.