diff --git a/code/game/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm
index d6fce9d1d9a..2bd03a3bd13 100644
--- a/code/game/gamemodes/game_mode.dm
+++ b/code/game/gamemodes/game_mode.dm
@@ -45,20 +45,21 @@ Stealth and Camouflage Items;
/obj/item/clothing/mask/gas/voice:4:Voice Changer;
/obj/item/clothing/glasses/thermal:4:Thermal Imaging Glasses;
/obj/item/device/chameleon:4:Chameleon-Projector;
-/obj/item/device/encryptionkey/traitor:3:Traitor Radio Key;
-/obj/item/device/encryptionkey/binary:3:Binary Translator Key;
/obj/item/weapon/stamperaser:1:Stamp Remover;
Whitespace:Seperator;
Devices and Tools;
/obj/item/weapon/card/emag:4:Cryptographic Sequencer (Limited uses, almost full access);
/obj/item/device/hacktool:3:Hacktool (Slow, but stealthy. Unlimited uses);
/obj/item/weapon/storage/toolbox/syndicate:1:Fully Loaded Toolbox;
+/obj/item/device/encryptionkey/traitor:3:Traitor Radio Key;
+/obj/item/device/encryptionkey/binary:3:Binary Translator Key;
+/obj/item/weapon/storage/syndie_kit/space:3:Space Suit;
/obj/item/weapon/aiModule/syndicate:7:Hacked AI Upload Module;
-/obj/item/device/radio/headset/traitor:3:Headset with Binary Translator;
/obj/item/weapon/plastique:2:C-4 (Destroys walls);
/obj/item/weapon/syndie/c4explosive:4:Low Power Explosive Charge, with Detonator;
/obj/item/device/powersink:5:Powersink (DANGER!);
/obj/machinery/singularity_beacon/syndicate:7:Singularity Beacon (DANGER!);
+/obj/item/weapon/circuitboard/teleporter:20:Teleporter Circuit Board;
Whitespace:Seperator;
Implants;
/obj/item/weapon/storage/syndie_kit/imp_freedom:3:Freedom Implant;
diff --git a/code/game/gamemodes/sandbox/sandbox.dm b/code/game/gamemodes/sandbox/sandbox.dm
index a83a5e88904..e6f51b9dacb 100644
--- a/code/game/gamemodes/sandbox/sandbox.dm
+++ b/code/game/gamemodes/sandbox/sandbox.dm
@@ -4,6 +4,9 @@
required_players = 0
votable = 0
+ uplink_welcome = "Syndicate Uplink Console:"
+ uplink_uses = 10
+
/datum/game_mode/sandbox/announce()
world << "The current game mode is - Sandbox!"
world << "Build your own station with the sandbox-panel command!"
diff --git a/code/game/gamemodes/traitor/traitor.dm b/code/game/gamemodes/traitor/traitor.dm
index 0a0b60d2367..8ed3f5ac66d 100644
--- a/code/game/gamemodes/traitor/traitor.dm
+++ b/code/game/gamemodes/traitor/traitor.dm
@@ -349,6 +349,7 @@
T.icon = R.icon
T.w_class = R.w_class
T.icon_state = R.icon_state
+ T.item_state = R.item_state
T.origradio = R
traitor_mob << "The Syndicate have cunningly disguised a Syndicate Uplink as your [R.name] [loc]. Simply dial the frequency [format_frequency(freq)] to unlock its hidden features."
traitor_mob.mind.store_memory("Radio Freq: [format_frequency(freq)] ([R.name] [loc]).")
diff --git a/code/game/objects/radio/radio.dm b/code/game/objects/radio/radio.dm
index 6cb102391d0..285e8a2cb06 100644
--- a/code/game/objects/radio/radio.dm
+++ b/code/game/objects/radio/radio.dm
@@ -184,6 +184,7 @@ var/GLOBAL_RADIO_TYPE = 1 // radio type to use
var/obj/item/device/radio/R = src
R.loc = T
T.loc = usr
+ T.layer = R.layer
R.layer = 0
if (usr.client)
usr.client.screen -= R
@@ -194,7 +195,6 @@ var/GLOBAL_RADIO_TYPE = 1 // radio type to use
usr.u_equip(R)
usr.l_hand = T
R.loc = T
- T.layer = 20
T.attack_self(usr)
return
else if (href_list["talk"])
@@ -818,4 +818,4 @@ var/GLOBAL_RADIO_TYPE = 1 // radio type to use
channels = op
for (var/ch_name in op)
secure_radio_connections[ch_name] = radio_controller.add_object(src, radiochannels[ch_name], RADIO_CHAT)
- return
+ return
diff --git a/code/modules/chemical/Chemistry-Reagents.dm b/code/modules/chemical/Chemistry-Reagents.dm
index a595ef4070b..574d09b1973 100644
--- a/code/modules/chemical/Chemistry-Reagents.dm
+++ b/code/modules/chemical/Chemistry-Reagents.dm
@@ -399,6 +399,9 @@ datum
if(25 to INFINITY)
M.Paralyse(20)
M.drowsyness = max(M:drowsyness, 30)
+// NO.
+// if(50 to INFINITY)
+// M:adjustToxLoss(0.1)
data++
..()
return
@@ -434,6 +437,8 @@ datum
M.slurring = 0
M.confused = 0
M.jitteriness = 0
+ if(50 to INFINITY)
+ M:adjustToxLoss(0.1)
..()
return
@@ -446,9 +451,13 @@ datum
on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
+ if(!data) data = 1
+ data++
if(M.losebreath >= 10)
M.losebreath = max(10, M.losebreath-5)
holder.remove_reagent(src.id, 0.2)
+ if(data >= 50)
+ M:adjustToxLoss(0.1)
return
space_drugs
@@ -460,12 +469,16 @@ datum
on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
+ if(!data) data = 1
+ data++
M.druggy = max(M.druggy, 15)
if(isturf(M.loc) && !istype(M.loc, /turf/space))
if(M.canmove)
if(prob(10)) step(M, pick(cardinal))
if(prob(7)) M:emote(pick("twitch","drool","moan","giggle"))
holder.remove_reagent(src.id, 0.2)
+ if(data >= 50)
+ M:adjustToxLoss(0.2)
return
serotrotium
@@ -593,6 +606,7 @@ datum
if(M.canmove && istype(M.loc, /turf/space))
step(M, pick(cardinal))
if(prob(5)) M:emote(pick("twitch","drool","moan"))
+ M:adjustToxLoss(1)
..()
return
@@ -831,7 +845,6 @@ datum
M.adjustToxLoss(100)
M:antibodies |= M:virus2.antigen
-
..()
return
@@ -851,8 +864,13 @@ datum
on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
+ if(!data) data = 1
+ data++
M.mutations = 0
M.disabilities = 0
+ switch(data)
+ if(50 to INFINITY)
+ M:adjustToxLoss(0.1)
..()
return
@@ -1153,10 +1171,14 @@ datum
on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
+ if(!data) data = 1
+ data++
if(M.bodytemperature > 310)
M.bodytemperature = max(310, M.bodytemperature-20)
else if(M.bodytemperature < 311)
M.bodytemperature = min(310, M.bodytemperature+20)
+ if(data >= 50)
+ M:adjustToxLoss(0.1)
..()
return
@@ -1169,10 +1191,14 @@ datum
on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
+ if(!data) data = 1
+ data++
M.make_dizzy(1)
if(!M.confused) M.confused = 1
M.confused = max(M.confused, 20)
holder.remove_reagent(src.id, 0.2)
+ if(data >= 50)
+ M:adjustToxLoss(0.1)
..()
return
@@ -1205,7 +1231,11 @@ datum
if(M.stat == 2.0)
return
if(!M) M = holder.my_atom
+ if(!data) data = 1
+ data++
M:heal_organ_damage(0,2)
+ if(data >= 50)
+ M:adjustToxLoss(0.1)
..()
return
@@ -1220,7 +1250,11 @@ datum
if(M.stat == 2.0) //THE GUY IS **DEAD**! BEREFT OF ALL LIFE HE RESTS IN PEACE etc etc. He does NOT metabolise shit anymore, god DAMN
return
if(!M) M = holder.my_atom
+ if(!data) data = 1
+ data++
M:heal_organ_damage(0,3)
+ if(data >= 50)
+ M:adjustToxLoss(0.1)
..()
return
@@ -1235,9 +1269,13 @@ datum
if(M.stat == 2.0)
return //See above, down and around. --Agouri
if(!M) M = holder.my_atom
+ if(!data) data = 1
+ data++
M:adjustOxyLoss(-2)
if(holder.has_reagent("lexorin"))
holder.remove_reagent("lexorin", 2)
+ if(data >= 50)
+ M:adjustToxLoss(0.1)
..()
return
@@ -1252,9 +1290,13 @@ datum
if(M.stat == 2.0)
return
if(!M) M = holder.my_atom
+ if(!data) data = 1
+ data++
M:oxyloss = 0
if(holder.has_reagent("lexorin"))
holder.remove_reagent("lexorin", 2)
+ if(data >= 50)
+ M:adjustToxLoss(0.2)
..()
return
@@ -1377,10 +1419,14 @@ datum
on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
+ if(!data) data = 1
+ data++
M:jitteriness = max(M:jitteriness-5,0)
if(prob(80)) M:adjustBrainLoss(1)
if(prob(50)) M:drowsyness = max(M:drowsyness, 3)
if(prob(10)) M:emote("drool")
+ if(data >= 50)
+ M:adjustToxLoss(0.1)
..()
return
@@ -1394,6 +1440,8 @@ datum
on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
M:radiation = max(M:radiation-3,0)
+ if(data >= 50)
+ M:adjustToxLoss(0.1)
..()
return
@@ -1408,11 +1456,15 @@ datum
if(M.stat == 2.0)
return //See above, down and around. --Agouri
if(!M) M = holder.my_atom
+ if(!data) data = 1
+ data++
M:radiation = max(M:radiation-7,0)
M:adjustToxLoss(-1)
if(prob(15))
M.take_organ_damage(1, 0)
..()
+ if(data >= 50)
+ M:adjustToxLoss(0.1)
return
alkysine
@@ -1425,6 +1477,7 @@ datum
on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
M:adjustBrainLoss(-3)
+ M:adjustToxLoss(0.1)
..()
return
@@ -1437,10 +1490,13 @@ datum
on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
+ if(!data) data = 1
+ data++
M:eye_blurry = max(M:eye_blurry-5 , 0)
M:eye_blind = max(M:eye_blind-5 , 0)
M:disabilities &= ~1
-// M:sdisabilities &= ~1 Replaced by eye surgery
+ if(data >= 50)
+ M:adjustToxLoss(0.1)
..()
return
@@ -1455,7 +1511,11 @@ datum
if(M.stat == 2.0)
return
if(!M) M = holder.my_atom
+ if(!data) data = 1
+ data++
M:heal_organ_damage(2,0)
+ if(data >= 50)
+ M:adjustToxLoss(0.1)
..()
return
@@ -1468,8 +1528,12 @@ datum
on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
+ if(!data) data = 1
+ data++
if(prob(5)) M:emote(pick("twitch","blink_r","shiver"))
holder.remove_reagent(src.id, 0.2)
+ if(data >= 50)
+ M:adjustToxLoss(0.3)
..()
return
@@ -1517,7 +1581,11 @@ datum
color = "#C8A5DC" // rgb: 200, 165, 220
on_mob_life(var/mob/living/M as mob)//no more mr. panacea
+ if(!data) data = 1
+ data++
holder.remove_reagent(src.id, 0.1)
+ if(data >= 50)
+ M:adjustToxLoss(0.2)
return
carpotoxin
@@ -1557,7 +1625,7 @@ datum
on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
- M:bodytemperature -= 50 //This and the following two lines need to be checked and tinkered with so that the Cryo-In-A-Syringe
+ M:bodytemperature = max(M:bodytemperature - 30, 100) //This and the following two lines need to be checked and tinkered with so that the Cryo-In-A-Syringe
if(prob(5)) // leaves someone at 100% healthy from anything up to in heavy crit (-75%)
M.take_organ_damage(0, 1)
if(prob(80) && istype(M, /mob/living/carbon/metroid))
@@ -1579,7 +1647,11 @@ datum
on_mob_life(var/mob/M)
if(!M) M = holder.my_atom
+ if(!data) data = 1
+ data++
M:hallucination += 5
+ if(data >= 50)
+ M:adjustToxLoss(0.2)
..()
return
@@ -4043,6 +4115,4 @@ datum
else if(data >= 115 && prob(60))
M.confused = max(M:confused+15,15)
..()
- return*/
-
-
+ return*/
\ No newline at end of file