Merge pull request #922 from Citadel-Station-13/upstream-merge-27183

[MIRROR] Dominators require an open space, except it works this time
This commit is contained in:
LetterJay
2017-05-18 09:02:54 -04:00
committed by GitHub
4 changed files with 43 additions and 13 deletions
+7 -6
View File
@@ -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))
+17
View File
@@ -0,0 +1,17 @@
diff a/code/game/gamemodes/gang/dominator.dm b/code/game/gamemodes/gang/dominator.dm (rejected hunks)
@@ -1,5 +1,5 @@
#define DOM_BLOCKED_SPAM_CAP 6
-#define DOM_REQUIRED_TURFS 25
+#define DOM_REQUIRED_TURFS 30
/obj/machinery/dominator
name = "dominator"
@@ -22,7 +22,7 @@
/proc/dominator_excessive_walls(atom/A)
var/open = 0
- for(var/turf/T in circleviewturfs(A, 3))
+ for(var/turf/T in view(3, A))
if(!isclosedturf(T))
open++
if(open < DOM_REQUIRED_TURFS)
+7 -7
View File
@@ -131,7 +131,7 @@
id = "pistol_ammo"
cost = 10
item_path = /obj/item/ammo_box/magazine/m10mm
/datum/gang_item/weapon/sniper
name = ".50cal Sniper Rifle"
id = "sniper"
@@ -156,8 +156,8 @@
id = "uzi_ammo"
cost = 40
item_path = /obj/item/ammo_box/magazine/uzim9mm
///////////////////
//EQUIPMENT
///////////////////
@@ -171,7 +171,7 @@
id = "spraycan"
cost = 5
item_path = /obj/item/toy/crayon/spraycan/gang
/datum/gang_item/equipment/sharpener
name = "Sharpener"
id = "whetstone"
@@ -305,11 +305,11 @@
if(obj.density)
to_chat(user, "<span class='warning'>There's not enough room here!</span>")
return FALSE
if(dominator_excessive_walls(user))
to_chat(user, "span class='warning'>The <b>dominator</b> will not function here! The <b>dominator</b> requires an open space within three standard units so that walls do not interfere with the signal.</span>")
to_chat(user, "span class='warning'>The <b>dominator</b> will not function here! The <b>dominator</b> requires a sizable open space within three standard units so that walls do not interfere with the signal.</span>")
return FALSE
if(!(usrarea.type in gang.territory|gang.territory_new))
to_chat(user, "<span class='warning'>The <b>dominator</b> can be spawned only on territory controlled by your gang!</span>")
return FALSE
@@ -0,0 +1,12 @@
diff a/code/game/gamemodes/gang/gang_items.dm b/code/game/gamemodes/gang/gang_items.dm (rejected hunks)
@@ -306,6 +306,10 @@
to_chat(user, "<span class='warning'>There's not enough room here!</span>")
return FALSE
+ if(dominator_excessive_walls(user))
+ to_chat(user, "span class='warning'>The <b>dominator</b> will not function here! The <b>dominator</b> requires a sizable open space within three standard units so that walls do not interfere with the signal.</span>")
+ return FALSE
+
if(!(usrarea.type in gang.territory|gang.territory_new))
to_chat(user, "<span class='warning'>The <b>dominator</b> can be spawned only on territory controlled by your gang!</span>")
return FALSE