diff --git a/code/game/dna.dm b/code/game/dna.dm index 9c6001155cc..92c84920666 100644 --- a/code/game/dna.dm +++ b/code/game/dna.dm @@ -982,7 +982,7 @@ src.temphtml += text("Data: []
", src.buffer1) src.temphtml += text("By: []
", src.buffer1owner) src.temphtml += text("Label: []
", src.buffer1label) - if (src.connected.occupant) src.temphtml += text("Save : UI - UI+UE - SE
", src, src, src) + if (src.connected.occupant && !(src.connected.occupant.mutations & HUSK)) src.temphtml += text("Save : UI - UI+UE - SE
", src, src, src) if (src.buffer1) src.temphtml += text("Transfer to: Occupant - Injector
", src, src) //if (src.buffer1) src.temphtml += text("Isolate Block
", src) if (src.buffer1) src.temphtml += "Disk: Save To | Load From
" @@ -996,7 +996,7 @@ src.temphtml += text("Data: []
", src.buffer2) src.temphtml += text("By: []
", src.buffer2owner) src.temphtml += text("Label: []
", src.buffer2label) - if (src.connected.occupant) src.temphtml += text("Save : UI - UI+UE - SE
", src, src, src) + if (src.connected.occupant && !(src.connected.occupant.mutations & HUSK)) src.temphtml += text("Save : UI - UI+UE - SE
", src, src, src) if (src.buffer2) src.temphtml += text("Transfer to: Occupant - Injector
", src, src) //if (src.buffer2) src.temphtml += text("Isolate Block
", src) if (src.buffer2) src.temphtml += "Disk: Save To | Load From
" @@ -1010,7 +1010,7 @@ src.temphtml += text("Data: []
", src.buffer3) src.temphtml += text("By: []
", src.buffer3owner) src.temphtml += text("Label: []
", src.buffer3label) - if (src.connected.occupant) src.temphtml += text("Save : UI - UI+UE - SE
", src, src, src) + if (src.connected.occupant && !(src.connected.occupant.mutations & HUSK)) src.temphtml += text("Save : UI - UI+UE - SE
", src, src, src) if (src.buffer3) src.temphtml += text("Transfer to: Occupant - Injector
", src, src) //if (src.buffer3) src.temphtml += text("Isolate Block
", src) if (src.buffer3) src.temphtml += "Disk: Save To | Load From
" @@ -1135,7 +1135,7 @@ src.buffer3label = sanitize(input("New Label:","Edit Label","Infos here")) dopage(src,"buffermenu") if (href_list["b1transfer"]) - if (!src.connected.occupant) + if (!src.connected.occupant || src.connected.occupant.mutations & HUSK) return if (src.buffer1type == "ui") if (src.buffer1iue) @@ -1150,7 +1150,7 @@ src.connected.occupant.radiation += rand(20,50) src.delete = 0 if (href_list["b2transfer"]) - if (!src.connected.occupant) + if (!src.connected.occupant || src.connected.occupant.mutations & HUSK) return if (src.buffer2type == "ui") if (src.buffer2iue) @@ -1165,7 +1165,7 @@ src.connected.occupant.radiation += rand(20,50) src.delete = 0 if (href_list["b3transfer"]) - if (!src.connected.occupant) + if (!src.connected.occupant || src.connected.occupant.mutations & HUSK) return if (src.buffer3type == "ui") if (src.buffer3iue) @@ -1190,7 +1190,7 @@ src.temphtml = "Injector created." src.delete = 0 src.injectorready = 0 - spawn(1200) + spawn(300) src.injectorready = 1 else src.temphtml = "Replicator not ready yet." @@ -1206,7 +1206,7 @@ src.temphtml = "Injector created." src.delete = 0 src.injectorready = 0 - spawn(1200) + spawn(300) src.injectorready = 1 else src.temphtml = "Replicator not ready yet." @@ -1222,7 +1222,7 @@ src.temphtml = "Injector created." src.delete = 0 src.injectorready = 0 - spawn(1200) + spawn(300) src.injectorready = 1 else src.temphtml = "Replicator not ready yet." diff --git a/code/game/machinery/cloning.dm b/code/game/machinery/cloning.dm index b8f04a98f3e..2d9c63a2c57 100644 --- a/code/game/machinery/cloning.dm +++ b/code/game/machinery/cloning.dm @@ -630,14 +630,20 @@ src.mess = 0 gibs(src.loc) src.icon_state = "pod_0" + + /* for(var/obj/O in src) O.loc = src.loc + */ return if (!(src.occupant)) return + + /* for(var/obj/O in src) O.loc = src.loc + */ if (src.occupant.client) src.occupant.client.eye = src.occupant.client.mob diff --git a/code/game/objects/items/weapons/dna_injector.dm b/code/game/objects/items/weapons/dna_injector.dm index b81e19e5952..f7e0bae3cdd 100644 --- a/code/game/objects/items/weapons/dna_injector.dm +++ b/code/game/objects/items/weapons/dna_injector.dm @@ -22,31 +22,33 @@ /obj/item/weapon/dnainjector/proc/inject(mob/M as mob) M.radiation += rand(20,50) - if (dnatype == "ui") - if (!block) //isolated block? - if (ue) //unique enzymes? yes - M.dna.uni_identity = dna - updateappearance(M, M.dna.uni_identity) - M.real_name = ue - M.name = ue - uses-- - else //unique enzymes? no - M.dna.uni_identity = dna + + if (!(M.mutations & HUSK)) // prevents husks from having their DNA changed + if (dnatype == "ui") + if (!block) //isolated block? + if (ue) //unique enzymes? yes + M.dna.uni_identity = dna + updateappearance(M, M.dna.uni_identity) + M.real_name = ue + M.name = ue + uses-- + else //unique enzymes? no + M.dna.uni_identity = dna + updateappearance(M, M.dna.uni_identity) + uses-- + else + M.dna.uni_identity = setblock(M.dna.uni_identity,block,dna,3) updateappearance(M, M.dna.uni_identity) uses-- - else - M.dna.uni_identity = setblock(M.dna.uni_identity,block,dna,3) - updateappearance(M, M.dna.uni_identity) - uses-- - if (dnatype == "se") - if (!block) //isolated block? - M.dna.struc_enzymes = dna - domutcheck(M, null) - uses-- - else - M.dna.struc_enzymes = setblock(M.dna.struc_enzymes,block,dna,3) - domutcheck(M, null,1) - uses-- + if (dnatype == "se") + if (!block) //isolated block? + M.dna.struc_enzymes = dna + domutcheck(M, null) + uses-- + else + M.dna.struc_enzymes = setblock(M.dna.struc_enzymes,block,dna,3) + domutcheck(M, null,1) + uses-- spawn(0)//this prevents the collapse of space-time continuum del(src)