mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-22 19:47:22 +01:00
Reverts maps. Fixes conflict.
This commit is contained in:
@@ -27,7 +27,6 @@
|
||||
|
||||
/datum/autopsy_data
|
||||
var/weapon = null
|
||||
var/pretend_weapon = null
|
||||
var/damage = 0
|
||||
var/hits = 0
|
||||
var/time_inflicted = 0
|
||||
@@ -35,44 +34,35 @@
|
||||
/datum/autopsy_data/proc/copy()
|
||||
var/datum/autopsy_data/W = new()
|
||||
W.weapon = weapon
|
||||
W.pretend_weapon = pretend_weapon
|
||||
W.damage = damage
|
||||
W.hits = hits
|
||||
W.time_inflicted = time_inflicted
|
||||
return W
|
||||
|
||||
/obj/item/autopsy_scanner/proc/add_data(obj/item/organ/external/O)
|
||||
if(!O.autopsy_data.len && !O.trace_chemicals.len)
|
||||
return
|
||||
/obj/item/autopsy_scanner/proc/add_data(obj/item/organ/O)
|
||||
if(O.autopsy_data.len)
|
||||
for(var/V in O.autopsy_data)
|
||||
var/datum/autopsy_data/W = O.autopsy_data[V]
|
||||
|
||||
for(var/V in O.autopsy_data)
|
||||
var/datum/autopsy_data/W = O.autopsy_data[V]
|
||||
var/datum/autopsy_data_scanner/D = wdata[V]
|
||||
if(!D)
|
||||
D = new()
|
||||
D.weapon = W.weapon
|
||||
wdata[V] = D
|
||||
|
||||
if(!W.pretend_weapon)
|
||||
if(1)
|
||||
W.pretend_weapon = W.weapon
|
||||
else
|
||||
W.pretend_weapon = pick("mechanical toolbox", "wirecutters", "revolver", "crowbar", "fire extinguisher", "tomato soup", "oxygen tank", "emergency oxygen tank", "laser", "bullet")
|
||||
if(!D.organs_scanned[O.name])
|
||||
if(D.organ_names == "")
|
||||
D.organ_names = O.name
|
||||
else
|
||||
D.organ_names += ", [O.name]"
|
||||
|
||||
qdel(D.organs_scanned[O.name])
|
||||
D.organs_scanned[O.name] = W.copy()
|
||||
|
||||
var/datum/autopsy_data_scanner/D = wdata[V]
|
||||
if(!D)
|
||||
D = new()
|
||||
D.weapon = W.weapon
|
||||
wdata[V] = D
|
||||
|
||||
if(!D.organs_scanned[O.name])
|
||||
if(D.organ_names == "")
|
||||
D.organ_names = O.name
|
||||
else
|
||||
D.organ_names += ", [O.name]"
|
||||
|
||||
qdel(D.organs_scanned[O.name])
|
||||
D.organs_scanned[O.name] = W.copy()
|
||||
|
||||
for(var/V in O.trace_chemicals)
|
||||
if(O.trace_chemicals[V] > 0 && !chemtraces.Find(V))
|
||||
chemtraces += V
|
||||
if(O.trace_chemicals.len)
|
||||
for(var/V in O.trace_chemicals)
|
||||
if(O.trace_chemicals[V] > 0 && !chemtraces.Find(V))
|
||||
chemtraces += V
|
||||
|
||||
/obj/item/autopsy_scanner/attackby(obj/item/P, mob/user)
|
||||
if(istype(P, /obj/item/pen))
|
||||
@@ -90,71 +80,55 @@
|
||||
user.put_in_hands(R)
|
||||
|
||||
/obj/item/autopsy_scanner/attack_self(mob/user)
|
||||
if(!wdata.len && !chemtraces.len)
|
||||
return
|
||||
|
||||
var/scan_data = ""
|
||||
|
||||
if(timeofdeath)
|
||||
scan_data += "<b>Time of death:</b> [station_time_timestamp("hh:mm:ss", timeofdeath)]<br><br>"
|
||||
else
|
||||
scan_data += "<b>Time of death:</b> Unknown / Still alive<br><br>"
|
||||
|
||||
var/n = 1
|
||||
for(var/wdata_idx in wdata)
|
||||
var/datum/autopsy_data_scanner/D = wdata[wdata_idx]
|
||||
var/total_hits = 0
|
||||
var/total_score = 0
|
||||
var/list/weapon_chances = list() // maps weapon names to a score
|
||||
var/age = 0
|
||||
if(wdata.len)
|
||||
var/n = 1
|
||||
for(var/wdata_idx in wdata)
|
||||
var/datum/autopsy_data_scanner/D = wdata[wdata_idx]
|
||||
var/total_hits = 0
|
||||
var/total_score = 0
|
||||
var/age = 0
|
||||
|
||||
for(var/wound_idx in D.organs_scanned)
|
||||
var/datum/autopsy_data/W = D.organs_scanned[wound_idx]
|
||||
total_hits += W.hits
|
||||
|
||||
var/wname = W.pretend_weapon
|
||||
|
||||
if(wname in weapon_chances)
|
||||
weapon_chances[wname] += W.damage
|
||||
else
|
||||
weapon_chances[wname] = max(W.damage, 1)
|
||||
total_score+=W.damage
|
||||
for(var/wound_idx in D.organs_scanned)
|
||||
var/datum/autopsy_data/W = D.organs_scanned[wound_idx]
|
||||
total_hits += W.hits
|
||||
total_score+=W.damage
|
||||
|
||||
|
||||
var/wound_age = W.time_inflicted
|
||||
age = max(age, wound_age)
|
||||
var/wound_age = W.time_inflicted
|
||||
age = max(age, wound_age)
|
||||
|
||||
var/damage_desc
|
||||
var/damage_desc
|
||||
// total score happens to be the total damage
|
||||
switch(total_score)
|
||||
if(1 to 5)
|
||||
damage_desc = "<font color='green'>negligible</font>"
|
||||
if(5 to 15)
|
||||
damage_desc = "<font color='green'>light</font>"
|
||||
if(15 to 30)
|
||||
damage_desc = "<font color='orange'>moderate</font>"
|
||||
if(30 to 1000)
|
||||
damage_desc = "<font color='red'>severe</font>"
|
||||
else
|
||||
damage_desc = "Unknown"
|
||||
|
||||
var/damaging_weapon = (total_score != 0)
|
||||
var/damaging_weapon = (total_score != 0)
|
||||
scan_data += "<b>Weapon #[n]</b><br>"
|
||||
if(damaging_weapon)
|
||||
scan_data += "Severity: [damage_desc]<br>"
|
||||
scan_data += "Hits by weapon: [total_hits]<br>"
|
||||
scan_data += "Approximate time of wound infliction: [station_time_timestamp("hh:mm", age)]<br>"
|
||||
scan_data += "Affected limbs: [D.organ_names]<br>"
|
||||
scan_data += "Weapon: [D.weapon]<br>"
|
||||
scan_data += "<br>"
|
||||
|
||||
// total score happens to be the total damage
|
||||
switch(total_score)
|
||||
if(0)
|
||||
damage_desc = "Unknown"
|
||||
if(1 to 5)
|
||||
damage_desc = "<font color='green'>negligible</font>"
|
||||
if(5 to 15)
|
||||
damage_desc = "<font color='green'>light</font>"
|
||||
if(15 to 30)
|
||||
damage_desc = "<font color='orange'>moderate</font>"
|
||||
if(30 to 1000)
|
||||
damage_desc = "<font color='red'>severe</font>"
|
||||
|
||||
if(!total_score)
|
||||
total_score = D.organs_scanned.len
|
||||
|
||||
scan_data += "<b>Weapon #[n]</b><br>"
|
||||
if(damaging_weapon)
|
||||
scan_data += "Severity: [damage_desc]<br>"
|
||||
scan_data += "Hits by weapon: [total_hits]<br>"
|
||||
scan_data += "Approximate time of wound infliction: [station_time_timestamp("hh:mm", age)]<br>"
|
||||
scan_data += "Affected limbs: [D.organ_names]<br>"
|
||||
scan_data += "Possible weapons:<br>"
|
||||
for(var/weapon_name in weapon_chances)
|
||||
scan_data += "\t[100*weapon_chances[weapon_name]/total_score]% [weapon_name]<br>"
|
||||
|
||||
scan_data += "<br>"
|
||||
|
||||
n++
|
||||
n++
|
||||
|
||||
if(chemtraces.len)
|
||||
scan_data += "<b>Trace Chemicals: </b><br>"
|
||||
|
||||
@@ -67,10 +67,7 @@
|
||||
|
||||
/obj/item/chameleon/proc/disrupt(var/delete_dummy = 1)
|
||||
if(active_dummy)
|
||||
var/datum/effect_system/spark_spread/spark_system = new /datum/effect_system/spark_spread
|
||||
spark_system.set_up(5, 0, src)
|
||||
spark_system.attach(src)
|
||||
spark_system.start()
|
||||
do_sparks(5, 0, src)
|
||||
eject_all()
|
||||
if(delete_dummy)
|
||||
qdel(active_dummy)
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
return
|
||||
if(H.mind)
|
||||
span = H.mind.speech_span
|
||||
if((COMIC in H.mutations) || H.get_int_organ(/obj/item/organ/internal/cyberimp/brain/clown_voice))
|
||||
if((COMIC in H.mutations) || H.get_int_organ(/obj/item/organ/internal/cyberimp/brain/clown_voice) || istype(H.get_item_by_slot(slot_wear_mask), /obj/item/clothing/mask/gas/voice/clown))
|
||||
span = "sans"
|
||||
if(spamcheck)
|
||||
to_chat(user, "<span class='warning'>\The [src] needs to recharge!</span>")
|
||||
@@ -47,6 +47,7 @@
|
||||
message = sanitize(copytext(message, 1, MAX_MESSAGE_LEN))
|
||||
if(!message)
|
||||
return
|
||||
message = user.handle_speech_problems(message)[1]
|
||||
message = capitalize(message)
|
||||
if((loc == user && !user.incapacitated()))
|
||||
if(emagged)
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
|
||||
/obj/item/powersink/Destroy()
|
||||
processing_objects.Remove(src)
|
||||
processing_power_items.Remove(src)
|
||||
GLOB.processing_power_items.Remove(src)
|
||||
PN = null
|
||||
attached = null
|
||||
return ..()
|
||||
@@ -54,7 +54,7 @@
|
||||
else
|
||||
if(mode == 2)
|
||||
processing_objects.Remove(src) // Now the power sink actually stops draining the station's power if you unhook it. --NeoFite
|
||||
processing_power_items.Remove(src)
|
||||
GLOB.processing_power_items.Remove(src)
|
||||
anchored = 0
|
||||
mode = 0
|
||||
src.visible_message("<span class='notice'>[user] detaches [src] from the cable!</span>")
|
||||
@@ -77,14 +77,14 @@
|
||||
mode = 2
|
||||
icon_state = "powersink1"
|
||||
processing_objects.Add(src)
|
||||
processing_power_items.Add(src)
|
||||
GLOB.processing_power_items.Add(src)
|
||||
if(2) //This switch option wasn't originally included. It exists now. --NeoFite
|
||||
src.visible_message("<span class='notice'>[user] deactivates [src]!</span>")
|
||||
mode = 1
|
||||
set_light(0)
|
||||
icon_state = "powersink0"
|
||||
processing_objects.Remove(src)
|
||||
processing_power_items.Remove(src)
|
||||
GLOB.processing_power_items.Remove(src)
|
||||
|
||||
/obj/item/powersink/pwr_drain()
|
||||
if(!attached)
|
||||
|
||||
@@ -11,11 +11,11 @@
|
||||
|
||||
/obj/item/radio/beacon/New()
|
||||
..()
|
||||
code = "[code] ([beacons.len + 1])"
|
||||
beacons += src
|
||||
code = "[code] ([GLOB.beacons.len + 1])"
|
||||
GLOB.beacons += src
|
||||
|
||||
/obj/item/radio/beacon/Destroy()
|
||||
beacons -= src
|
||||
GLOB.beacons -= src
|
||||
return ..()
|
||||
|
||||
/obj/item/radio/beacon/emag_act(user as mob)
|
||||
@@ -46,9 +46,10 @@
|
||||
return
|
||||
|
||||
/obj/item/radio/beacon/bacon //Probably a better way of doing this, I'm lazy.
|
||||
proc/digest_delay()
|
||||
|
||||
/obj/item/radio/beacon/bacon/proc/digest_delay()
|
||||
spawn(600)
|
||||
qdel(src)
|
||||
qdel(src)
|
||||
|
||||
// SINGULO BEACON SPAWNER
|
||||
/obj/item/radio/beacon/syndicate
|
||||
@@ -82,4 +83,4 @@
|
||||
new /obj/machinery/syndicatebomb( user.loc )
|
||||
playsound(src, 'sound/effects/pop.ogg', 100, 1, 1)
|
||||
qdel(src)
|
||||
return
|
||||
return
|
||||
|
||||
@@ -87,9 +87,7 @@
|
||||
if(M)
|
||||
M.moved_recently = 0
|
||||
to_chat(M, "<span class='danger'>You feel a sharp shock!</span>")
|
||||
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||
s.set_up(3, 1, M)
|
||||
s.start()
|
||||
do_sparks(3, 1, M)
|
||||
|
||||
M.Weaken(5)
|
||||
|
||||
|
||||
@@ -7,33 +7,44 @@
|
||||
item_state = ""
|
||||
w_class = WEIGHT_CLASS_TINY
|
||||
origin_tech = "engineering=2;bluespace=1"
|
||||
var/translate_binary = 0
|
||||
var/translate_hive = 0
|
||||
var/syndie = 0
|
||||
var/translate_binary = FALSE
|
||||
var/translate_hive = FALSE
|
||||
var/syndie = FALSE
|
||||
var/list/channels = list()
|
||||
|
||||
|
||||
/obj/item/encryptionkey/New()
|
||||
|
||||
/obj/item/encryptionkey/attackby(obj/item/W as obj, mob/user as mob, params)
|
||||
|
||||
/obj/item/encryptionkey/syndicate
|
||||
icon_state = "cypherkey"
|
||||
channels = list("Syndicate" = 1)
|
||||
origin_tech = "syndicate=1;engineering=3;bluespace=2"
|
||||
syndie = 1 //Signifies that it de-crypts Syndicate transmissions
|
||||
syndie = TRUE //Signifies that it de-crypts Syndicate transmissions
|
||||
var/change_voice = TRUE
|
||||
var/fake_name = "Agent ALERT_A_CODER"
|
||||
var/static/list/fakename_list
|
||||
|
||||
/obj/item/encryptionkey/syndicate/Initialize()
|
||||
if(!LAZYLEN(fakename_list))
|
||||
fakename_list = GLOB.html_colors.Copy()
|
||||
. = ..()
|
||||
if(change_voice)
|
||||
fake_name = "Agent [pick_n_take(fakename_list)]"
|
||||
|
||||
/obj/item/encryptionkey/syndicate/nukeops
|
||||
change_voice = FALSE
|
||||
|
||||
/obj/item/encryptionkey/syndteam
|
||||
icon_state = "cypherkey"
|
||||
channels = list("SyndTeam" = 1, "Syndicate" = 1)
|
||||
origin_tech = "syndicate=4"
|
||||
syndie = 1 //Signifies that it de-crypts Syndicate transmissions
|
||||
syndie = TRUE //Signifies that it de-crypts Syndicate transmissions
|
||||
|
||||
/obj/item/encryptionkey/binary
|
||||
name = "binary translator key"
|
||||
desc = "An encryption key for a radio headset. To access the binary channel, use :b."
|
||||
icon_state = "cypherkey"
|
||||
translate_binary = 1
|
||||
translate_binary = TRUE
|
||||
origin_tech = "syndicate=3;engineering=4;bluespace=3"
|
||||
|
||||
/obj/item/encryptionkey/headset_sec
|
||||
|
||||
@@ -5,12 +5,12 @@
|
||||
icon_state = "headset"
|
||||
item_state = "headset"
|
||||
materials = list(MAT_METAL=75)
|
||||
subspace_transmission = 1
|
||||
subspace_transmission = TRUE
|
||||
canhear_range = 0 // can't hear headsets from very far away
|
||||
|
||||
slot_flags = SLOT_EARS
|
||||
var/translate_binary = 0
|
||||
var/translate_hive = 0
|
||||
var/translate_binary = FALSE
|
||||
var/translate_hive = FALSE
|
||||
var/obj/item/encryptionkey/keyslot1 = null
|
||||
var/obj/item/encryptionkey/keyslot2 = null
|
||||
|
||||
@@ -26,10 +26,14 @@
|
||||
|
||||
if(ks1type)
|
||||
keyslot1 = new ks1type(src)
|
||||
if(keyslot1.syndie)
|
||||
syndiekey = keyslot1
|
||||
if(ks2type)
|
||||
keyslot2 = new ks2type(src)
|
||||
if(keyslot2.syndie)
|
||||
syndiekey = keyslot2
|
||||
|
||||
recalculateChannels(1)
|
||||
recalculateChannels(TRUE)
|
||||
|
||||
/obj/item/radio/headset/Destroy()
|
||||
QDEL_NULL(keyslot1)
|
||||
@@ -49,11 +53,11 @@
|
||||
/obj/item/radio/headset/handle_message_mode(mob/living/M as mob, message, channel)
|
||||
if(channel == "special")
|
||||
if(translate_binary)
|
||||
var/datum/language/binary = all_languages["Robot Talk"]
|
||||
var/datum/language/binary = GLOB.all_languages["Robot Talk"]
|
||||
binary.broadcast(M, message)
|
||||
return RADIO_CONNECTION_NON_SUBSPACE
|
||||
if(translate_hive)
|
||||
var/datum/language/hivemind = all_languages["Hivemind"]
|
||||
var/datum/language/hivemind = GLOB.all_languages["Hivemind"]
|
||||
hivemind.broadcast(M, message)
|
||||
return RADIO_CONNECTION_NON_SUBSPACE
|
||||
return RADIO_CONNECTION_FAIL
|
||||
@@ -79,8 +83,7 @@
|
||||
|
||||
/obj/item/radio/headset/syndicate
|
||||
origin_tech = "syndicate=3"
|
||||
syndie = 1
|
||||
ks1type = /obj/item/encryptionkey/syndicate
|
||||
ks1type = /obj/item/encryptionkey/syndicate/nukeops
|
||||
|
||||
/obj/item/radio/headset/syndicate/alt //undisguised bowman with flash protection
|
||||
name = "syndicate headset"
|
||||
@@ -349,48 +352,48 @@
|
||||
return
|
||||
|
||||
|
||||
/obj/item/radio/headset/proc/recalculateChannels(var/setDescription = 0)
|
||||
src.channels = list()
|
||||
src.translate_binary = 0
|
||||
src.translate_hive = 0
|
||||
src.syndie = 0
|
||||
/obj/item/radio/headset/proc/recalculateChannels(var/setDescription = FALSE)
|
||||
channels = list()
|
||||
translate_binary = FALSE
|
||||
translate_hive = FALSE
|
||||
syndiekey = null
|
||||
|
||||
if(keyslot1)
|
||||
for(var/ch_name in keyslot1.channels)
|
||||
if(ch_name in src.channels)
|
||||
if(ch_name in channels)
|
||||
continue
|
||||
src.channels += ch_name
|
||||
src.channels[ch_name] = keyslot1.channels[ch_name]
|
||||
channels += ch_name
|
||||
channels[ch_name] = keyslot1.channels[ch_name]
|
||||
|
||||
if(keyslot1.translate_binary)
|
||||
src.translate_binary = 1
|
||||
translate_binary = TRUE
|
||||
|
||||
if(keyslot1.translate_hive)
|
||||
src.translate_hive = 1
|
||||
translate_hive = TRUE
|
||||
|
||||
if(keyslot1.syndie)
|
||||
src.syndie = 1
|
||||
syndiekey = keyslot1
|
||||
|
||||
if(keyslot2)
|
||||
for(var/ch_name in keyslot2.channels)
|
||||
if(ch_name in src.channels)
|
||||
if(ch_name in channels)
|
||||
continue
|
||||
src.channels += ch_name
|
||||
src.channels[ch_name] = keyslot2.channels[ch_name]
|
||||
channels += ch_name
|
||||
channels[ch_name] = keyslot2.channels[ch_name]
|
||||
|
||||
if(keyslot2.translate_binary)
|
||||
src.translate_binary = 1
|
||||
translate_binary = TRUE
|
||||
|
||||
if(keyslot2.translate_hive)
|
||||
src.translate_hive = 1
|
||||
translate_hive = TRUE
|
||||
|
||||
if(keyslot2.syndie)
|
||||
src.syndie = 1
|
||||
syndiekey = keyslot2
|
||||
|
||||
|
||||
for(var/ch_name in channels)
|
||||
if(!radio_controller)
|
||||
src.name = "broken radio headset"
|
||||
name = "broken radio headset"
|
||||
return
|
||||
|
||||
secure_radio_connections[ch_name] = radio_controller.add_object(src, radiochannels[ch_name], RADIO_CHAT)
|
||||
@@ -414,5 +417,5 @@
|
||||
/obj/item/radio/headset/proc/make_syndie() // Turns normal radios into Syndicate radios!
|
||||
qdel(keyslot1)
|
||||
keyslot1 = new /obj/item/encryptionkey/syndicate
|
||||
syndie = 1
|
||||
syndiekey = keyslot1
|
||||
recalculateChannels()
|
||||
@@ -57,7 +57,7 @@
|
||||
dir=ndir
|
||||
b_stat=1
|
||||
on = 0
|
||||
global_intercoms.Add(src)
|
||||
GLOB.global_intercoms.Add(src)
|
||||
update_icon()
|
||||
|
||||
/obj/item/radio/intercom/department/medbay/New()
|
||||
@@ -75,8 +75,8 @@
|
||||
name = "illicit intercom"
|
||||
desc = "Talk through this. Evilly"
|
||||
frequency = SYND_FREQ
|
||||
subspace_transmission = 1
|
||||
syndie = 1
|
||||
subspace_transmission = TRUE
|
||||
syndiekey = new /obj/item/encryptionkey/syndicate/nukeops
|
||||
|
||||
/obj/item/radio/intercom/syndicate/New()
|
||||
..()
|
||||
@@ -106,7 +106,7 @@
|
||||
|
||||
/obj/item/radio/intercom/Destroy()
|
||||
processing_objects.Remove(src)
|
||||
global_intercoms.Remove(src)
|
||||
GLOB.global_intercoms.Remove(src)
|
||||
return ..()
|
||||
|
||||
/obj/item/radio/intercom/attack_ai(mob/user as mob)
|
||||
@@ -129,7 +129,7 @@
|
||||
if(isnull(position) || !(position.z in level))
|
||||
return -1
|
||||
if(freq in ANTAG_FREQS)
|
||||
if(!(src.syndie))
|
||||
if(!(syndiekey))
|
||||
return -1//Prevents broadcast of messages over devices lacking the encryption
|
||||
|
||||
return canhear_range
|
||||
|
||||
@@ -36,7 +36,7 @@ var/global/list/default_medbay_channels = list(
|
||||
var/listening = 1
|
||||
var/list/channels = list() //see communications.dm for full list. First channes is a "default" for :h
|
||||
var/subspace_transmission = 0
|
||||
var/syndie = 0//Holder to see if it's a syndicate encrpyed radio
|
||||
var/obj/item/encryptionkey/syndicate/syndiekey = null //Holder for the syndicate encryption key if present
|
||||
var/disable_timer = 0 //How many times this is disabled by EMPs
|
||||
|
||||
var/is_special = 0 //For electropacks mostly, skips Topic() checks
|
||||
@@ -69,7 +69,7 @@ var/global/list/default_medbay_channels = list(
|
||||
wires = new(src)
|
||||
|
||||
internal_channels = default_internal_channels.Copy()
|
||||
global_radios |= src
|
||||
GLOB.global_radios |= src
|
||||
|
||||
/obj/item/radio/Destroy()
|
||||
QDEL_NULL(wires)
|
||||
@@ -78,7 +78,7 @@ var/global/list/default_medbay_channels = list(
|
||||
for(var/ch_name in channels)
|
||||
radio_controller.remove_object(src, radiochannels[ch_name])
|
||||
radio_connection = null
|
||||
global_radios -= src
|
||||
GLOB.global_radios -= src
|
||||
follow_target = null
|
||||
return ..()
|
||||
|
||||
@@ -131,7 +131,7 @@ var/global/list/default_medbay_channels = list(
|
||||
data["chan_list"] = chanlist
|
||||
data["chan_list_len"] = chanlist.len
|
||||
|
||||
if(syndie)
|
||||
if(syndiekey)
|
||||
data["useSyndMode"] = 1
|
||||
|
||||
return data
|
||||
@@ -250,7 +250,7 @@ var/global/list/default_medbay_channels = list(
|
||||
A.role = role
|
||||
A.message = message
|
||||
var/jammed = FALSE
|
||||
for(var/obj/item/jammer/jammer in active_jammers)
|
||||
for(var/obj/item/jammer/jammer in GLOB.active_jammers)
|
||||
if(get_dist(get_turf(src), get_turf(jammer)) < jammer.range)
|
||||
jammed = TRUE
|
||||
break
|
||||
@@ -342,7 +342,7 @@ var/global/list/default_medbay_channels = list(
|
||||
var/turf/position = get_turf(src)
|
||||
|
||||
var/jammed = FALSE
|
||||
for(var/obj/item/jammer/jammer in active_jammers)
|
||||
for(var/obj/item/jammer/jammer in GLOB.active_jammers)
|
||||
if(get_dist(position, get_turf(jammer)) < jammer.range)
|
||||
jammed = TRUE
|
||||
break
|
||||
@@ -395,8 +395,12 @@ var/global/list/default_medbay_channels = list(
|
||||
if(ishuman(M) && M.GetVoice() != real_name)
|
||||
displayname = M.GetVoice()
|
||||
jobname = "Unknown"
|
||||
voicemask = 1
|
||||
voicemask = TRUE
|
||||
|
||||
if(syndiekey && syndiekey.change_voice && connection.frequency == SYND_FREQ)
|
||||
displayname = syndiekey.fake_name
|
||||
jobname = "Unknown"
|
||||
voicemask = TRUE
|
||||
|
||||
|
||||
/* ###### Radio headsets can only broadcast through subspace ###### */
|
||||
@@ -552,7 +556,7 @@ var/global/list/default_medbay_channels = list(
|
||||
if(!position || !(position.z in level))
|
||||
return -1
|
||||
if(freq in ANTAG_FREQS)
|
||||
if(!(syndie))//Checks to see if it's allowed on that frequency, based on the encryption keys
|
||||
if(!(syndiekey))//Checks to see if it's allowed on that frequency, based on the encryption keys
|
||||
return -1
|
||||
if(!freq) //recieved on main frequency
|
||||
if(!listening)
|
||||
@@ -652,7 +656,6 @@ var/global/list/default_medbay_channels = list(
|
||||
subspace_transmission = 1
|
||||
|
||||
/obj/item/radio/borg/syndicate
|
||||
syndie = 1
|
||||
keyslot = new /obj/item/encryptionkey/syndicate
|
||||
|
||||
/obj/item/radio/borg/syndicate/CanUseTopic(mob/user, datum/topic_state/state)
|
||||
@@ -669,6 +672,7 @@ var/global/list/default_medbay_channels = list(
|
||||
|
||||
/obj/item/radio/borg/syndicate/New()
|
||||
..()
|
||||
syndiekey = keyslot
|
||||
set_frequency(SYND_FREQ)
|
||||
|
||||
/obj/item/radio/borg/deathsquad
|
||||
@@ -726,32 +730,32 @@ var/global/list/default_medbay_channels = list(
|
||||
return
|
||||
|
||||
/obj/item/radio/borg/proc/recalculateChannels()
|
||||
src.channels = list()
|
||||
src.syndie = 0
|
||||
channels = list()
|
||||
syndiekey = null
|
||||
|
||||
var/mob/living/silicon/robot/D = src.loc
|
||||
var/mob/living/silicon/robot/D = loc
|
||||
if(D.module)
|
||||
for(var/ch_name in D.module.channels)
|
||||
if(ch_name in src.channels)
|
||||
if(ch_name in channels)
|
||||
continue
|
||||
src.channels += ch_name
|
||||
src.channels[ch_name] += D.module.channels[ch_name]
|
||||
channels += ch_name
|
||||
channels[ch_name] += D.module.channels[ch_name]
|
||||
if(keyslot)
|
||||
for(var/ch_name in keyslot.channels)
|
||||
if(ch_name in src.channels)
|
||||
if(ch_name in channels)
|
||||
continue
|
||||
src.channels += ch_name
|
||||
src.channels[ch_name] += keyslot.channels[ch_name]
|
||||
channels += ch_name
|
||||
channels[ch_name] += keyslot.channels[ch_name]
|
||||
|
||||
if(keyslot.syndie)
|
||||
src.syndie = 1
|
||||
syndiekey = keyslot
|
||||
|
||||
|
||||
for(var/ch_name in src.channels)
|
||||
for(var/ch_name in channels)
|
||||
if(!radio_controller)
|
||||
sleep(30) // Waiting for the radio_controller to be created.
|
||||
if(!radio_controller)
|
||||
src.name = "broken radio"
|
||||
name = "broken radio"
|
||||
return
|
||||
|
||||
secure_radio_connections[ch_name] = radio_controller.add_object(src, radiochannels[ch_name], RADIO_CHAT)
|
||||
@@ -814,7 +818,7 @@ var/global/list/default_medbay_channels = list(
|
||||
data["chan_list"] = chanlist
|
||||
data["chan_list_len"] = chanlist.len
|
||||
|
||||
if(syndie)
|
||||
if(syndiekey)
|
||||
data["useSyndMode"] = 1
|
||||
|
||||
data["has_loudspeaker"] = 1
|
||||
|
||||
@@ -228,7 +228,7 @@ REAGENT SCANNER
|
||||
var/blood_percent = round((H.blood_volume / BLOOD_VOLUME_NORMAL)*100)
|
||||
var/blood_type = H.b_type
|
||||
if(blood_id != "blood")//special blood substance
|
||||
var/datum/reagent/R = chemical_reagents_list[blood_id]
|
||||
var/datum/reagent/R = GLOB.chemical_reagents_list[blood_id]
|
||||
if(R)
|
||||
blood_type = R.name
|
||||
else
|
||||
@@ -439,7 +439,8 @@ REAGENT SCANNER
|
||||
icon_state = "spectrometer"
|
||||
item_state = "analyzer"
|
||||
w_class = WEIGHT_CLASS_SMALL
|
||||
flags = CONDUCT | OPENCONTAINER
|
||||
flags = CONDUCT
|
||||
container_type = OPENCONTAINER
|
||||
slot_flags = SLOT_BELT
|
||||
throwforce = 5
|
||||
throw_speed = 4
|
||||
|
||||
@@ -158,13 +158,13 @@ effective or pretty fucking useless.
|
||||
var/range = 12
|
||||
|
||||
/obj/item/jammer/Destroy()
|
||||
active_jammers -= src
|
||||
GLOB.active_jammers -= src
|
||||
return ..()
|
||||
|
||||
/obj/item/jammer/attack_self(mob/user)
|
||||
to_chat(user,"<span class='notice'>You [active ? "deactivate" : "activate"] the [src].</span>")
|
||||
active = !active
|
||||
if(active)
|
||||
active_jammers |= src
|
||||
GLOB.active_jammers |= src
|
||||
else
|
||||
active_jammers -= src
|
||||
GLOB.active_jammers -= src
|
||||
Reference in New Issue
Block a user