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:
@@ -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))
|
||||
|
||||
@@ -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)
|
||||
@@ -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
|
||||
Reference in New Issue
Block a user