diff --git a/code/game/gamemodes/gang/dominator.dm b/code/game/gamemodes/gang/dominator.dm index 3b9dce8c3b..b22052e7aa 100644 --- a/code/game/gamemodes/gang/dominator.dm +++ b/code/game/gamemodes/gang/dominator.dm @@ -1,4 +1,5 @@ #define DOM_BLOCKED_SPAM_CAP 6 +#define DOM_REQUIRED_TURFS 30 /obj/machinery/dominator name = "dominator" @@ -21,12 +22,12 @@ /proc/dominator_excessive_walls(atom/A) var/open = 0 - for(var/turf/T in circleviewturfs(center=A,radius=3)) - if(!istype(T, /turf/closed)) + for(var/turf/T in view(3, A)) + if(!isclosedturf(T)) open++ - if(open < 40) + if(open < DOM_REQUIRED_TURFS) return TRUE - else + else return FALSE /obj/machinery/dominator/tesla_act() @@ -62,7 +63,7 @@ var/time_remaining = gang.domination_time_remaining() if(time_remaining > 0) if(dominator_excessive_walls(src)) - gang.domination_timer += 2 + gang.domination_timer += 20 playsound(loc, 'sound/machines/buzz-two.ogg', 50, 0) if(spam_prevention < DOM_BLOCKED_SPAM_CAP) spam_prevention++ @@ -70,7 +71,7 @@ gang.message_gangtools("Warning: There are too many walls around your gang's dominator, its signal is being blocked!") say("Error: Takeover signal is currently blocked! There are too many walls within 3 standard units of this device.") spam_prevention = 0 - return + return . = TRUE playsound(loc, 'sound/items/timer.ogg', 10, 0) if(!warned && (time_remaining < 180)) diff --git a/code/game/gamemodes/gang/gang_items.dm b/code/game/gamemodes/gang/gang_items.dm index a8a595ab8a..30eea7dbad 100644 --- a/code/game/gamemodes/gang/gang_items.dm +++ b/code/game/gamemodes/gang/gang_items.dm @@ -305,11 +305,11 @@ if(obj.density) to_chat(user, "There's not enough room here!") return FALSE - + if(dominator_excessive_walls(user)) - to_chat(user, "span class='warning'>The dominator will not function here! The dominator requires an open space within three standard units so that walls do not interfere with the signal.") + to_chat(user, "span class='warning'>The dominator will not function here! The dominator requires a sizable open space within three standard units so that walls do not interfere with the signal.") return FALSE - + if(!(usrarea.type in gang.territory|gang.territory_new)) to_chat(user, "The dominator can be spawned only on territory controlled by your gang!") return FALSE