From 0ea216506a6472fdd2215564535e03e6c9fb1c8a Mon Sep 17 00:00:00 2001 From: Blindfold Date: Sun, 27 Sep 2020 03:02:57 +0300 Subject: [PATCH 1/4] own implementation of isRoomAvailable --- src/extends/room/intel.js | 6 +++--- src/extends/room/meta.js | 2 +- src/lib/map.js | 13 ++++++++++++- 3 files changed, 16 insertions(+), 5 deletions(-) diff --git a/src/extends/room/intel.js b/src/extends/room/intel.js index 2514c8c..e75ca35 100644 --- a/src/extends/room/intel.js +++ b/src/extends/room/intel.js @@ -239,7 +239,7 @@ Room.requestIntel = function (roomname) { Game.rooms[roomname].saveIntel() return } - if (!Game.map.isRoomAvailable(roomname)) { + if (!qlib.map.isRoomAvailable(roomname)) { return } if (!qlib.map.reachableFromEmpire(roomname, 'manhattan')) { @@ -279,7 +279,7 @@ Room.getScoutTarget = function (creep) { let testRoom for (testRoom of targetRooms) { // Filter out invalid rooms - if (!Game.map.isRoomAvailable(testRoom)) { + if (!qlib.map.isRoomAvailable(testRoom)) { continue } @@ -311,7 +311,7 @@ Room.getScoutTarget = function (creep) { let oldest = 0 let testRoom for (testRoom of adjacent) { - if (!Game.map.isRoomAvailable(testRoom)) { + if (!qlib.map.isRoomAvailable(testRoom)) { continue } const roominfo = Room.getIntel(testRoom) diff --git a/src/extends/room/meta.js b/src/extends/room/meta.js index b1c93f6..94845d4 100644 --- a/src/extends/room/meta.js +++ b/src/extends/room/meta.js @@ -164,7 +164,7 @@ Room.isHallway = function (name) { } Room.isClaimable = function (name) { - if (!Game.map.isRoomAvailable(name)) { + if (!qlib.map.isRoomAvailable(name)) { return false } const coords = Room.getCoordinates(name) diff --git a/src/lib/map.js b/src/lib/map.js index 0f34977..3abeb6c 100644 --- a/src/lib/map.js +++ b/src/lib/map.js @@ -89,7 +89,7 @@ const PATH_WEIGHT_HOSTILE = 10 const PATH_WEIGHT_HOSTILE_RESERVATION = 5 module.exports.getRoomScore = function (toRoom, fromRoom, opts = {}) { - if (!Game.map.isRoomAvailable(toRoom)) { + if (!qlib.map.isRoomAvailable(toRoom)) { return Infinity } if (!module.exports.reachableFromEmpire(toRoom)) { @@ -123,3 +123,14 @@ module.exports.getRoomScore = function (toRoom, fromRoom, opts = {}) { } return scores.WEIGHT_NEUTRAL ? scores.WEIGHT_NEUTRAL : PATH_WEIGHT_NEUTRAL } + +// Our own implementation of depricated function +module.exports.isRoomAvailable = function(roomName) { + if (!global.homeRoomStatus) { + global.homeRoomStatus = Game.map.getRoomStatus(_.values(Game.spawns)[0].room.name).status; + } + // Inside novice areas the only rooms available are novice rooms. + // Same goes with respawn areas. + // Home room can't be closed, so this case is also coverd. + return homeRoomStatus === Game.map.getRoomStatus(roomName).status +} \ No newline at end of file From e36047f5834f1017de3a537c679768a26b511ed9 Mon Sep 17 00:00:00 2001 From: Blindfold Date: Sat, 3 Oct 2020 23:49:00 +0300 Subject: [PATCH 2/4] style fix --- src/lib/map.js | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/lib/map.js b/src/lib/map.js index 3abeb6c..84cb8d3 100644 --- a/src/lib/map.js +++ b/src/lib/map.js @@ -125,12 +125,10 @@ module.exports.getRoomScore = function (toRoom, fromRoom, opts = {}) { } // Our own implementation of depricated function -module.exports.isRoomAvailable = function(roomName) { - if (!global.homeRoomStatus) { - global.homeRoomStatus = Game.map.getRoomStatus(_.values(Game.spawns)[0].room.name).status; - } +module.exports.isRoomAvailable = function (roomName) { + const homeRoomStatus = Game.map.getRoomStatus(_.values(Game.spawns)[0].room.name).status // Inside novice areas the only rooms available are novice rooms. // Same goes with respawn areas. // Home room can't be closed, so this case is also coverd. return homeRoomStatus === Game.map.getRoomStatus(roomName).status -} \ No newline at end of file +} From 30222ad98f973ddb270c24223d241c7f2661ffdb Mon Sep 17 00:00:00 2001 From: Blindfold Date: Wed, 7 Oct 2020 22:14:12 +0300 Subject: [PATCH 3/4] Apply review suggestions --- src/extends/room/intel.js | 6 +++--- src/extends/room/meta.js | 2 +- src/lib/map.js | 16 ++++++++-------- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/extends/room/intel.js b/src/extends/room/intel.js index e75ca35..8c079d6 100644 --- a/src/extends/room/intel.js +++ b/src/extends/room/intel.js @@ -239,7 +239,7 @@ Room.requestIntel = function (roomname) { Game.rooms[roomname].saveIntel() return } - if (!qlib.map.isRoomAvailable(roomname)) { + if (!qlib.map.isRoomAvailableForCreeps(roomname)) { return } if (!qlib.map.reachableFromEmpire(roomname, 'manhattan')) { @@ -279,7 +279,7 @@ Room.getScoutTarget = function (creep) { let testRoom for (testRoom of targetRooms) { // Filter out invalid rooms - if (!qlib.map.isRoomAvailable(testRoom)) { + if (!qlib.map.isRoomAvailableForCreeps(testRoom)) { continue } @@ -311,7 +311,7 @@ Room.getScoutTarget = function (creep) { let oldest = 0 let testRoom for (testRoom of adjacent) { - if (!qlib.map.isRoomAvailable(testRoom)) { + if (Game.map.getRoomStatus(roomname) !== 'closed') { continue } const roominfo = Room.getIntel(testRoom) diff --git a/src/extends/room/meta.js b/src/extends/room/meta.js index 94845d4..85069a1 100644 --- a/src/extends/room/meta.js +++ b/src/extends/room/meta.js @@ -164,7 +164,7 @@ Room.isHallway = function (name) { } Room.isClaimable = function (name) { - if (!qlib.map.isRoomAvailable(name)) { + if (!qlib.map.isRoomAvailableForCreeps(name)) { return false } const coords = Room.getCoordinates(name) diff --git a/src/lib/map.js b/src/lib/map.js index 84cb8d3..9ed9bc4 100644 --- a/src/lib/map.js +++ b/src/lib/map.js @@ -89,7 +89,7 @@ const PATH_WEIGHT_HOSTILE = 10 const PATH_WEIGHT_HOSTILE_RESERVATION = 5 module.exports.getRoomScore = function (toRoom, fromRoom, opts = {}) { - if (!qlib.map.isRoomAvailable(toRoom)) { + if (!qlib.map.isRoomAvailableForCreeps(toRoom)) { return Infinity } if (!module.exports.reachableFromEmpire(toRoom)) { @@ -124,11 +124,11 @@ module.exports.getRoomScore = function (toRoom, fromRoom, opts = {}) { return scores.WEIGHT_NEUTRAL ? scores.WEIGHT_NEUTRAL : PATH_WEIGHT_NEUTRAL } -// Our own implementation of depricated function -module.exports.isRoomAvailable = function (roomName) { - const homeRoomStatus = Game.map.getRoomStatus(_.values(Game.spawns)[0].room.name).status - // Inside novice areas the only rooms available are novice rooms. - // Same goes with respawn areas. - // Home room can't be closed, so this case is also coverd. - return homeRoomStatus === Game.map.getRoomStatus(roomName).status +// Checks whether this room is available and our creeps can probably enter it +module.exports.isRoomAvailableForCreeps = function (roomName) { + const ourZone = Game.map.getRoomStatus(Object.values(Game.creeps)[0].room.name).status + // Room is available if it's in the same zone with us ('normal', 'novice' or 'respawn'), + // as trespassing between these is not possible. + // Check againt 'closed' status is also coverd as out creeps can't be in closed areas. + return ourZone === Game.map.getRoomStatus(roomName).status } From f9b1de7e570a06a5e407a2b2498744a41060d07b Mon Sep 17 00:00:00 2001 From: Blindfold Date: Wed, 7 Oct 2020 22:18:11 +0300 Subject: [PATCH 4/4] variable name fix --- src/extends/room/intel.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/extends/room/intel.js b/src/extends/room/intel.js index 8c079d6..d1bc612 100644 --- a/src/extends/room/intel.js +++ b/src/extends/room/intel.js @@ -311,7 +311,7 @@ Room.getScoutTarget = function (creep) { let oldest = 0 let testRoom for (testRoom of adjacent) { - if (Game.map.getRoomStatus(roomname) !== 'closed') { + if (Game.map.getRoomStatus(testRoom) !== 'closed') { continue } const roominfo = Room.getIntel(testRoom)