Radio Jammers (#502)

Adds radio jammers for antags and improvised version as well.
This commit is contained in:
skull132
2016-07-09 03:14:04 +03:00
committed by GitHub
parent 3a18172821
commit 30b6aff6cf
11 changed files with 193 additions and 14 deletions
+17 -4
View File
@@ -100,7 +100,11 @@
proc/signal()
if(!radio_connection) return
if(!radio_connection)
return
if(within_jamming_range(src))
return
var/datum/signal/signal = new
signal.source = src
@@ -129,9 +133,18 @@
receive_signal(datum/signal/signal)
if(!signal) return 0
if(signal.encryption != code) return 0
if(!(src.wires & WIRE_RADIO_RECEIVE)) return 0
if(!signal)
return 0
if(within_jamming_range(src))
return 0
if(signal.encryption != code)
return 0
if(!(src.wires & WIRE_RADIO_RECEIVE))
return 0
pulse(1)
if(!holder)
+8 -1
View File
@@ -91,8 +91,13 @@
speaker_mask = speaker.name
var/msg = "<i><span class='game say'>[name], <span class='name'>[speaker_mask]</span> [format_message(message, get_spoken_verb(message))]</span></i>"
if (within_jamming_range(speaker))
// The user thinks that the message got through.
speaker << msg
return
for(var/mob/player in player_list)
if(istype(player,/mob/dead) || ((src in player.languages) || check_special_condition(player)))
if(istype(player,/mob/dead) || ((src in player.languages && !within_jamming_range(player)) || check_special_condition(player)))
player << msg
/datum/language/bug/check_special_condition(var/mob/other)
@@ -102,6 +107,8 @@
return 0
if(istype(M, /mob/new_player))
return 0
if(within_jamming_range(other))
return 0
if(locate(/obj/item/organ/vaurca/neuralsocket) in M.internal_organs)
return 1
+8
View File
@@ -103,7 +103,15 @@
message_admins("LOG: [user.name] ([user.ckey]) injected a power cell with phoron, rigging it to explode.")
S.reagents.clear_reagents()
else if(istype(W, /obj/item/device/assembly_holder))
var/obj/item/device/assembly_holder/assembly = W
if (istype(assembly.a_left, /obj/item/device/assembly/signaler) && istype(assembly.a_right, /obj/item/device/assembly/signaler))
user.drop_item()
user.drop_from_inventory(src)
new /obj/item/device/radiojammer/improvised(assembly, src, user)
else
user << "<span class='notice'>You'd need both devices to be signallers for this to work.</span>"
/obj/item/weapon/cell/proc/explode()
var/turf/T = get_turf(src.loc)