diff --git a/code/WorkInProgress/Cael_Aislinn/Tajara/examine.dm b/code/WorkInProgress/Cael_Aislinn/Tajara/examine.dm
index 415555ab422..b205a612d5e 100644
--- a/code/WorkInProgress/Cael_Aislinn/Tajara/examine.dm
+++ b/code/WorkInProgress/Cael_Aislinn/Tajara/examine.dm
@@ -81,24 +81,24 @@
if (src.wear_id)
var/id
-// var/photo = 0
+ var/photo = 0
if(istype(src:wear_id, /obj/item/device/pda))
var/obj/item/device/pda/pda = src:wear_id
id = pda.owner
else
id = src.wear_id.registered_name
-// if (src.wear_id.PHOTO)
-// photo = 1
- if (id != src.real_name && in_range(src, usr))
-// if (photo)
-// usr << "\red [src.name] is wearing \icon[src.wear_id] [src.wear_id.name] with a photo yet doesn't seem to be that person!!!"
-// else
- usr << "\red [src.name] is wearing \icon[src.wear_id] [src.wear_id.name] yet doesn't seem to be that person!!!"
+ if (src.wear_id.PHOTO)
+ photo = 1
+ if (id != src.real_name && in_range(src, usr) && prob(10))
+ if (photo)
+ usr << "\red [src.name] is wearing \icon[src.wear_id] [src.wear_id.name] with a photo yet doesn't seem to be that person!!!"
+ else
+ usr << "\red [src.name] is wearing \icon[src.wear_id] [src.wear_id.name] yet doesn't seem to be that person!!!"
else
-// if (photo)
-// usr << "\blue [src.name] is wearing \icon[src.wear_id] [src.wear_id.name] with a photo."
-// else
- usr << "\blue [src.name] is wearing \icon[src.wear_id] [src.wear_id.name]."
+ if (photo)
+ usr << "\blue [src.name] is wearing \icon[src.wear_id] [src.wear_id.name] with a photo."
+ else
+ usr << "\blue [src.name] is wearing \icon[src.wear_id] [src.wear_id.name]."
if (src.is_jittery)
@@ -195,4 +195,4 @@
print_flavor_text()
- usr << "\blue *---------*"
+ usr << "\blue *---------*"
\ No newline at end of file
diff --git a/code/defines/obj/weapon.dm b/code/defines/obj/weapon.dm
index ca26c5bd7a3..338065b34b9 100644
--- a/code/defines/obj/weapon.dm
+++ b/code/defines/obj/weapon.dm
@@ -520,7 +520,7 @@
var/access = list()
var/registered_name = null
var/assignment = null
-// var/obj/item/weapon/photo/PHOTO = null
+ var/obj/item/weapon/photo/PHOTO = null
var/over_jumpsuit = 1 // If set to 0, it won't display on top of the mob's jumpsuit
var/dorm = 0 // determines if this ID has claimed a dorm already
diff --git a/code/game/gamemodes/changeling/changeling_powers.dm b/code/game/gamemodes/changeling/changeling_powers.dm
index 3f3967ae194..bad30e598ff 100644
--- a/code/game/gamemodes/changeling/changeling_powers.dm
+++ b/code/game/gamemodes/changeling/changeling_powers.dm
@@ -100,7 +100,7 @@
usr << "\red This creature is not compatible with our biology."
return
- if (M.mutations & NOCLONE)
+ if (M.mutations2 & NOCLONE)
usr << "\red This creature's DNA is ruined beyond useability!"
return
@@ -608,9 +608,9 @@
usr << "\blue We stealthily sting [T]."
if(!T.changeling)
- T.sdisabilities |= 4
+ T.disabilities |= 32
spawn(300)
- T.sdisabilities &= ~4
+ T.disabilities &= ~32
usr.verbs -= /client/proc/changeling_deaf_sting
diff --git a/code/game/objects/items/weapons/dna_injector.dm b/code/game/objects/items/weapons/dna_injector.dm
index 6059f5eeca7..d12382c165e 100644
--- a/code/game/objects/items/weapons/dna_injector.dm
+++ b/code/game/objects/items/weapons/dna_injector.dm
@@ -23,7 +23,7 @@
/obj/item/weapon/dnainjector/proc/inject(mob/M as mob)
M.radiation += rand(20,50)
- if (!(M.mutations & NOCLONE)) // prevents drained people from having their DNA changed
+ if (!(M.mutations2 & NOCLONE)) // prevents drained people from having their DNA changed
if (dnatype == "ui")
if (!block) //isolated block?
if (ue) //unique enzymes? yes
diff --git a/code/game/objects/radio/headset.dm b/code/game/objects/radio/headset.dm
index e98a94907f1..dfd8fd08690 100644
--- a/code/game/objects/radio/headset.dm
+++ b/code/game/objects/radio/headset.dm
@@ -1,141 +1,142 @@
/obj/item/device/radio/headset
- name = "radio headset"
- desc = "An updated, modular intercom that fits over the head. Takes encryption keys"
+ name = "Radio Headset"
+ desc = "An intercom that fits over the head."
icon_state = "headset"
item_state = "headset"
g_amt = 0
m_amt = 75
subspace_transmission = 1
- canhear_range = 1 // can't hear headsets from very far away
-
- var/translate_binary = 0
- var/translate_hive = 0
- var/obj/item/device/encryptionkey/keyslot1 = null
- var/obj/item/device/encryptionkey/keyslot2 = null
+ protective_temperature = 0
+ canhear_range = 1
+ var
+ translate_binary = 0
+ translate_hive = 0
+ obj/item/device/encryptionkey/keyslot1 = null
+ obj/item/device/encryptionkey/keyslot2 = null
/obj/item/device/radio/headset/New()
..()
- keyslot1 = new /obj/item/device/encryptionkey/
+ keyslot1 = new /obj/item/device/encryptionkey
recalculateChannels()
/obj/item/device/radio/headset/traitor
origin_tech = "syndicate=3"
canhear_range = 0
-/obj/item/device/radio/headset/traitor/New()
- ..()
- del(keyslot1)
- keyslot1 = new /obj/item/device/encryptionkey/traitor
- recalculateChannels()
+
+ New()
+ ..()
+ del(keyslot1)
+ keyslot1 = new /obj/item/device/encryptionkey/traitor
/obj/item/device/radio/headset/binary
origin_tech = "syndicate=3"
canhear_range = 0
-/obj/item/device/radio/headset/binary/New()
- ..()
- del(keyslot1)
- keyslot1 = new /obj/item/device/encryptionkey/binary
- recalculateChannels()
+
+ New()
+ ..()
+ del(keyslot1)
+ keyslot1 = new /obj/item/device/encryptionkey/binary
/obj/item/device/radio/headset/headset_sec
- name = "security radio headset"
+ name = "Security Radio Headset"
desc = "This is used by your elite security force. To access the security channel, use :s."
icon_state = "sec_headset"
item_state = "headset"
keyslot2 = new /obj/item/device/encryptionkey/headset_sec
/obj/item/device/radio/headset/headset_eng
- name = "engineering radio headset"
+ name = "Engineering Radio Headset"
desc = "When the engineers wish to chat like girls. To access the engineering channel, use :e. "
icon_state = "eng_headset"
item_state = "headset"
keyslot2 = new /obj/item/device/encryptionkey/headset_eng
/obj/item/device/radio/headset/headset_rob
- name = "robotics radio headset"
+ name = "Robotics Radio Headset"
desc = "Made specifically for the roboticists who cannot decide between departments. To access the engineering channel, use :e. For research, use :n."
icon_state = "rob_headset"
item_state = "headset"
keyslot2 = new /obj/item/device/encryptionkey/headset_rob
/obj/item/device/radio/headset/headset_med
- name = "medical radio headset"
+ name = "Medical Radio Headset"
desc = "A headset for the trained staff of the medbay. To access the medical channel, use :m."
icon_state = "med_headset"
item_state = "headset"
keyslot2 = new /obj/item/device/encryptionkey/headset_med
/obj/item/device/radio/headset/headset_sci
- name = "science radio headset"
+ name = "Science Radio Headset"
desc = "A sciency headset. Like usual. To access the science channel, use :n."
icon_state = "com_headset"
item_state = "headset"
keyslot2 = new /obj/item/device/encryptionkey/headset_sci
/obj/item/device/radio/headset/headset_medsci
- name = "medical research radio headset"
+ name = "Medical Research Radio Headset"
desc = "A headset that is a result of the mating between medical and science. To access the medical channel, use :m. For science, use :n."
icon_state = "med_headset"
item_state = "headset"
keyslot2 = new /obj/item/device/encryptionkey/headset_medsci
/obj/item/device/radio/headset/headset_com
- name = "command radio headset"
+ name = "Command Radio Headset"
desc = "A headset with a commanding channel. To access the command channel, use :c."
icon_state = "com_headset"
item_state = "headset"
keyslot2 = new /obj/item/device/encryptionkey/headset_com
/obj/item/device/radio/headset/heads/captain
- name = "captain's headset"
+ name = "Captain's Headset"
desc = "The headset of the boss. Channels are as follows: :c - command, :s - security, :e - engineering, :d - mining, :q - cargo, :m - medical, :n - science."
icon_state = "com_headset"
item_state = "headset"
keyslot2 = new /obj/item/device/encryptionkey/heads/captain
/obj/item/device/radio/headset/heads/rd
- name = "research director's deadset"
+ name = "Research Director's Headset"
desc = "Headset of the researching God. To access the science channel, use :n. For command, use :c."
icon_state = "com_headset"
item_state = "headset"
keyslot2 = new /obj/item/device/encryptionkey/heads/rd
/obj/item/device/radio/headset/heads/hos
- name = "head of security's headset"
+ name = "Head of Security's Headset"
desc = "The headset of the man who protects your worthless lifes. To access the security channel, use :s. For command, use :c."
icon_state = "com_headset"
item_state = "headset"
keyslot2 = new /obj/item/device/encryptionkey/heads/hos
/obj/item/device/radio/headset/heads/ce
- name = "chief engineer's headset"
+ name = "Chief Engineer's Headset"
desc = "The headset of the guy who is in charge of morons. To access the engineering channel, use :e. For command, use :c."
icon_state = "com_headset"
item_state = "headset"
keyslot2 = new /obj/item/device/encryptionkey/heads/ce
/obj/item/device/radio/headset/heads/cmo
- name = "chief medical officer's headset"
+ name = "Chief Medical Officer's Headset"
desc = "The headset of the highly trained medical chief. To access the medical channel, use :m. For command, use :c."
icon_state = "com_headset"
item_state = "headset"
keyslot2 = new /obj/item/device/encryptionkey/heads/cmo
/obj/item/device/radio/headset/heads/hop
- name = "head of personnel's headset"
+ name = "Head of Personnel's Headset"
desc = "The headset of the guy who will one day be captain. Channels are as follows: :c - command, :s - security, :q - cargo, :d - mining."
icon_state = "com_headset"
item_state = "headset"
keyslot2 = new /obj/item/device/encryptionkey/heads/hop
/obj/item/device/radio/headset/headset_mine
- name = "mining radio headset"
+ name = "Mining Radio Headset"
desc = "Headset used by miners. How useless. To access the mining channel, use :d."
icon_state = "mine_headset"
item_state = "headset"
keyslot2 = new /obj/item/device/encryptionkey/headset_mine
/obj/item/device/radio/headset/heads/qm
- name = "quartermaster's headset"
+ name = "Quartermaster's Headset"
desc = "The headset of the man who control your toiletpaper supply. To access the cargo channel, use :q. For mining, use :d."
icon_state = "cargo_headset"
item_state = "headset"
@@ -153,7 +154,7 @@
keyslot2 = new /obj/item/device/encryptionkey/ert
/obj/item/device/radio/headset/headset_cargo
- name = "cargo radio headset"
+ name = "Cargo Radio Headset"
desc = "Headset used by the QM's slaves. To access the cargo channel, use :q."
icon_state = "cargo_headset"
item_state = "headset"
@@ -162,32 +163,17 @@
/obj/item/device/radio/headset/attackby(obj/item/weapon/W as obj, mob/user as mob)
// ..()
user.machine = src
- if (!( istype(W, /obj/item/weapon/screwdriver) || (istype(W, /obj/item/device/encryptionkey/ ))))
+ if (!istype(W, /obj/item/weapon/screwdriver) && !istype(W, /obj/item/device/encryptionkey/))
return
if(istype(W, /obj/item/weapon/screwdriver))
if(keyslot1 || keyslot2)
-
- for(var/ch_name in channels)
- radio_controller.remove_object(src, radiochannels[ch_name])
- secure_radio_connections[ch_name] = null
-
-
if(keyslot1)
- var/turf/T = get_turf(user)
- if(T)
- keyslot1.loc = T
- keyslot1 = null
-
-
+ user.put_in_hands(keyslot1)
if(keyslot2)
- var/turf/T = get_turf(user)
- if(T)
- keyslot2.loc = T
- keyslot2 = null
-
+ user.put_in_hands(keyslot2)
recalculateChannels()
user << "You pop out the encryption keys in the headset!"
@@ -210,9 +196,7 @@
W.loc = src
keyslot2 = W
-
recalculateChannels()
-
return
@@ -220,13 +204,10 @@
src.channels = list()
src.translate_binary = 0
src.translate_hive = 0
+ var/temp_channels = list()
if(keyslot1)
- for(var/ch_name in keyslot1.channels)
- if(ch_name in src.channels)
- continue
- src.channels += ch_name
- src.channels[ch_name] = keyslot1.channels[ch_name]
+ temp_channels += keyslot1.channels
if(keyslot1.translate_binary)
src.translate_binary = 1
@@ -235,11 +216,7 @@
src.translate_hive = 1
if(keyslot2)
- for(var/ch_name in keyslot2.channels)
- if(ch_name in src.channels)
- continue
- src.channels += ch_name
- src.channels[ch_name] = keyslot2.channels[ch_name]
+ temp_channels += keyslot2.channels
if(keyslot2.translate_binary)
src.translate_binary = 1
@@ -247,14 +224,13 @@
if(keyslot2.translate_hive)
src.translate_hive = 1
+ config(temp_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 headset"
+ src.name = "Broken Radio Headset"
return
- secure_radio_connections[ch_name] = radio_controller.add_object(src, radiochannels[ch_name], RADIO_CHAT)
-
return
\ No newline at end of file
diff --git a/code/game/objects/storage/storage.dm b/code/game/objects/storage/storage.dm
index 60c5395ed5e..a43a1d6e6eb 100644
--- a/code/game/objects/storage/storage.dm
+++ b/code/game/objects/storage/storage.dm
@@ -315,7 +315,7 @@
/obj/item/weapon/storage/box/syndicate/New()
..()
- switch (pickweight(list("bloodyspai" = 1, "stealth" = 1, "screwed" = 1, "guns" = 1, "murder" = 1, "freedom" = 1)))
+ switch (pickweight(list("bloodyspai" = 1, "stealth" = 1, "screwed" = 1, "guns" = 1, "freedom" = 1)))
if ("bloodyspai")
new /obj/item/clothing/under/chameleon(src)
new /obj/item/clothing/mask/gas/voice(src)
@@ -344,12 +344,6 @@
new /obj/item/weapon/plastique(src)
return
- if ("murder")
- new /obj/item/weapon/melee/energy/sword(src)
- new /obj/item/clothing/glasses/thermal(src)
- new /obj/item/weapon/card/emag(src)
- return
-
if("freedom")
var/obj/item/weapon/implanter/O = new /obj/item/weapon/implanter(src)
O.imp = new /obj/item/weapon/implant/freedom(O)
diff --git a/code/modules/chemical/Chemistry-Tools.dm b/code/modules/chemical/Chemistry-Tools.dm
index 7955f181e2a..23bcf7c88aa 100644
--- a/code/modules/chemical/Chemistry-Tools.dm
+++ b/code/modules/chemical/Chemistry-Tools.dm
@@ -966,7 +966,7 @@
if(!T.dna)
usr << "You are unable to locate any blood. (To be specific, your target seems to be missing their DNA datum)"
return
- if(T.mutations & NOCLONE) //target done been et, no more blood in him
+ if(T.mutations2 & NOCLONE) //target done been et, no more blood in him
user << "\red You are unable to locate any blood."
return
B.holder = src
diff --git a/code/modules/mob/living/carbon/human/death.dm b/code/modules/mob/living/carbon/human/death.dm
index b08d24d45c0..7aac84a9b57 100644
--- a/code/modules/mob/living/carbon/human/death.dm
+++ b/code/modules/mob/living/carbon/human/death.dm
@@ -93,5 +93,5 @@
/mob/living/carbon/human/proc/Drain()
ChangeToHusk()
- mutations |= NOCLONE
+ mutations2 |= NOCLONE
return
\ No newline at end of file
diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm
index 37d2c9dc214..a3d46a69553 100644
--- a/code/modules/mob/living/carbon/human/examine.dm
+++ b/code/modules/mob/living/carbon/human/examine.dm
@@ -89,24 +89,24 @@
if (src.wear_id)
var/id
-// var/photo = 0
+ var/photo = 0
if(istype(src:wear_id, /obj/item/device/pda))
var/obj/item/device/pda/pda = src:wear_id
id = pda.owner
else
id = src.wear_id.registered_name
-// if (src.wear_id.PHOTO)
-// photo = 1
+ if (src.wear_id.PHOTO)
+ photo = 1
if (id != src.real_name && in_range(src, usr))
-// if (photo)
-// usr << "\red [src.name] is wearing \icon[src.wear_id] [src.wear_id.name] with a photo yet doesn't seem to be that person!!!"
-// else
- usr << "\red [src.name] is wearing \icon[src.wear_id] [src.wear_id.name] yet doesn't seem to be that person!!!"
+ if (photo)
+ usr << "\red [src.name] is wearing \icon[src.wear_id] [src.wear_id.name] with a photo yet doesn't seem to be that person!!!"
+ else
+ usr << "\red [src.name] is wearing \icon[src.wear_id] [src.wear_id.name] yet doesn't seem to be that person!!!"
else
-// if (photo)
-// usr << "\blue [src.name] is wearing \icon[src.wear_id] [src.wear_id.name] with a photo."
-// else
- usr << "\blue [src.name] is wearing \icon[src.wear_id] [src.wear_id.name]."
+ if (photo)
+ usr << "\blue [src.name] is wearing \icon[src.wear_id] [src.wear_id.name] with a photo."
+ else
+ usr << "\blue [src.name] is wearing \icon[src.wear_id] [src.wear_id.name]."
if (src.is_jittery)
@@ -207,4 +207,4 @@
print_flavor_text()
- usr << "\blue *---------*"
+ usr << "\blue *---------*"
\ No newline at end of file
diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm
index 668ce4ce379..c75ca057d15 100644
--- a/code/modules/mob/living/carbon/human/human.dm
+++ b/code/modules/mob/living/carbon/human/human.dm
@@ -1533,8 +1533,7 @@
del(src)
return
if("internal")
- if ((!( (istype(target.wear_mask, /obj/item/clothing/mask) && istype(target.back, /obj/item/weapon/tank) && !( target.internal )) ) && !( target.internal )))
- //SN src = null
+ if ((!( (istype(target.wear_mask, /obj/item/clothing/mask) && (istype(target.back, /obj/item/weapon/tank) || istype(target.belt, /obj/item/weapon/tank) || istype(target.s_store, /obj/item/weapon/tank)) && !( target.internal )) ) && !( target.internal ))) //SN src = null
del(src)
return
else
@@ -1702,7 +1701,7 @@
return
message = text("\red [] is trying to empty []'s pockets!!", source, target)
if("CPR")
- if (target.cpr_time >= world.time + 3)
+ if (target.cpr_time + 3 >= world.time)
//SN src = null
del(src)
return
@@ -2163,7 +2162,7 @@ It can still be worn/put on as normal.
target.handcuffed = item
item.loc = target
if("CPR")
- if (target.cpr_time >= world.time + 30)
+ if (target.cpr_time + 30 >= world.time)
//SN src = null
del(src)
return
@@ -2239,11 +2238,11 @@ It can still be worn/put on as normal.
if (!( istype(target.wear_mask, /obj/item/clothing/mask) ))
return
else
- if (istype(target.back, /obj/item/weapon/tank))
+ if (istype(target.back, /obj/item/weapon/tank) && (internalloc == "back" || !internalloc))
target.internal = target.back
- else if (istype(target.s_store, /obj/item/weapon/tank))
+ else if (istype(target.s_store, /obj/item/weapon/tank) && (internalloc == "store" || !internalloc))
target.internal = target.s_store
- else if (istype(target.belt, /obj/item/weapon/tank))
+ else if (istype(target.belt, /obj/item/weapon/tank) && (internalloc == "belt" || !internalloc))
target.internal = target.belt
if (target.internal)
for(var/mob/M in viewers(target, 1))
@@ -2284,12 +2283,12 @@ It can still be worn/put on as normal.
Right Ear: [(r_ear ? r_ear : "Nothing")]
Head: [(head ? head : "Nothing")]
Shoes: [(shoes ? shoes : "Nothing")]
-
Belt: [(belt ? belt : "Nothing")]
+
Belt: [(belt ? belt : "Nothing")] [(istype(wear_mask, /obj/item/clothing/mask) && istype(belt, /obj/item/weapon/tank) && !( internal )) ? text(" Set Internal", src) : ""]
Uniform: [(w_uniform ? w_uniform : "Nothing")]
(Exo)Suit: [(wear_suit ? wear_suit : "Nothing")]
-
Back: [(back ? back : "Nothing")] [((istype(wear_mask, /obj/item/clothing/mask) && istype(back, /obj/item/weapon/tank) && !( internal )) ? text(" Set Internal", src) : "")]
+
Back: [(back ? back : "Nothing")][(istype(wear_mask, /obj/item/clothing/mask) && istype(back, /obj/item/weapon/tank) && !( internal )) ? text(" Set Internal", src) : ""]
ID: [(wear_id ? wear_id : "Nothing")]
-
Suit Storage: [(s_store ? s_store : "Nothing")]
+
Suit Storage: [(s_store ? s_store : "Nothing")] [(istype(wear_mask, /obj/item/clothing/mask) && istype(s_store, /obj/item/weapon/tank) && !( internal )) ? text(" Set Internal", src) : ""]
[(handcuffed ? text("Handcuffed") : text("Not Handcuffed"))]
[(internal ? text("Remove Internal") : "")]
Empty Pockets
diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm
index 9bafddc407a..d2a60c0ed07 100644
--- a/code/modules/mob/living/carbon/human/life.dm
+++ b/code/modules/mob/living/carbon/human/life.dm
@@ -514,7 +514,7 @@
adjustOxyLoss(3) // Lets hurt em a little, let them know we mean business
if(world.time - co2overloadtime > 300) // They've been in here 30s now, lets start to kill them for their own good!
adjustOxyLoss(8)
- if(prob(20)) // Lets give them some chance to know somethings not right though I guess.
+ if(prob(20) && isbreathing) // Lets give them some chance to know somethings not right though I guess.
spawn(0) emote("cough")
else
diff --git a/icons/mob/back.dmi b/icons/mob/back.dmi
index b9b87afa56d..6c9c65aa09b 100644
Binary files a/icons/mob/back.dmi and b/icons/mob/back.dmi differ