Exception: TypeError: Cannot read property 'structureType' of undefined
https://github.com/screeps/engine/commit/842d1bbeb188ebde2156635772d0dcff798165dd might have something to do with it.
Exception: TypeError: Cannot read property 'structureType' of undefined
https://github.com/screeps/engine/commit/842d1bbeb188ebde2156635772d0dcff798165dd might have something to do with it.
@artch : Building towers in a room without a controller is not something that "any hostile player" can do. Invader is not just like some another player. It has some special powers. If game mechanics are changed it may seem to break something that used to work differently (predictably) earlier.
I understand you need to add new content to this game, but you could have some mercy on us
IRL software specifications/requirements changes too and it causes sometimes extra work, so I think we're all good here...
@o4kapuk : Sorry I was blind, And thanks for being my eyes
@Smokeman : Yup, I thought I wasn't overlapping renew and boost, but I had few lines which I had forgotten
Thx guys :))
I'm calling let ret = lab.boostCreep(creep);
and the creep body parts don't get boosted but the mineral/energy is consumed from lab.
Follow this area:
From this replay: https://screeps.com/a/#!/history/shard1/E18N55?t=18636179
The creep tries to boost its HEAL parts several times (until the lab resources goes almost empty). Creep would stop trying to boost if body_part.boost
would be true at next tick. Anyways you'll see how the lab resources are consumed, but the creep parts aren't boosted...
I'll post more details, when I see this happening again + some ret value logs...
@wtfrank Thx, but the room (callback parameter) is never visible to me. The room will be the room which is behind that wall. If I don't have database of accessible rooms (my scout data), then I would need to have one adjacent rooms visible and process the exit/wall information. It wouldn't be so simple and efficient.
Btw, it's wall.hits
which is undefined in those tmp walls. And in my case I'm not reading the wall data, I'm just testing if a path is found on top of the exit tiles (a wall will block the path).
Thanks anyways for helping me out
@o4kapuk Ok, thanks anyways
The avoid strategy with my scout data seems to work pretty well. My scouts test if they have path to the exit tiles, if they don't (in this case) then they will not try to enter that room. And all rooms where these scouts haven't been in, are being avoided in path finding...
@o4kapuk Ok, I thought so. But could it be possible to add excludeTempClosedExits
option to
Game.map.describeExits
and Game.map.findRoute
functions and other ones which needs to know the real status of exit tiles?
I resolved this temporary by avoiding rooms, which my scouts haven't explored. (I made the room callback return Infinity
if so). But I would really appreciate if this could be fixed at the server side
Running (at shard #2):
JSON.stringify(Game.map.describeExits('W14S53'))
returns:
{"1":"W14S52","3":"W13S53","5":"W14S54","7":"W15S53"}
, which indicates that there should be open exits at every 4 sides of the room. But the room doesn't have 'open' exits at the left side. This makes my creeps hard time finding paths near this room.
The room looks like this:
What should I do, or more exact, how should I modify Game.map.findRoute
function routeCallback to fix this situation? Or is it possible to fix this at server side?
EXACTLY - sadly artch does not care about it or feel this issue important (yet)..
Properly implementing abuse-proof grace period system is a quite complicated task, and our current focus is new major game features like isolated-vm and power creeps, rather than improvements which would affect a few users in a few specific cases.