Building a rampart on top of an invader prevents killing it
hyramgraff last edited by
Part of my code automatically replaces ramparts when they are destroyed. Normally a hostile walking onto a construction site will destroy it but if you create a construction site on top of a hostile creep then it's still possible to build it. (This has been the case for a long time.)
What's new to me is that when I build a rampart on top of an invader, a mass ranged attack from a creep on an adjacent tile isn't damaging the invader and the rampart the invader is standing on isn't destroyed. I don't remember seeing this happening before so something seems to have changed.
Here's a replay link of it happening on shard2: https://screeps.com/a/#!/history/shard2/E19N3?t=4001420
Tigga last edited by
I'm not sure this is a bug. Ramparts protect whatever they're on the same tile as. If you set your ramparts to public it's also possible for hostiles to enter them, and they are similarly protected.
I confirm this is intended behavior.
hyramgraff last edited by hyramgraff
@artch I've been able to do a little more testing of this and I've discovered that:
rangedMassAttackdoes not damage an invader on top of my rampart and does not damage the rampart.
rangedAttackdoes damage an invader on top of my rampart because it does damage the rampart.
This is a surprising inconsistency between the two methods.
@hyramgraff That's because rangedMassAttack will not attack your own ramparts.
A rangedAttack on the other hand is a directed attack at something in a specific location.
rangedMassAttack will also not damage any of your own buildings while a directed rangedAttack will do that.
WolfWings last edited by
@artch Since moving onto an enemy ConstructionSite removes it, would it be possible to return an ERR_ code from Room.createConstructionSite if you attempt to make a ConstructionSite on top of an enemy creep instead of allowing it to occur?