diff --git a/code/game/machinery/cloning.dm b/code/game/machinery/cloning.dm index 426d77202b0..b5f14893e9a 100644 --- a/code/game/machinery/cloning.dm +++ b/code/game/machinery/cloning.dm @@ -76,7 +76,7 @@ src.temp += " SCNR-ERROR" if (isnull(src.pod1) && wantspod) src.temp += " POD1-ERROR" - else + else if (wantspod) src.pod1.connected = src if (src.temp == "") diff --git a/code/game/objects/closets.dm b/code/game/objects/closets.dm index e1fd7c33405..31a405f034e 100644 --- a/code/game/objects/closets.dm +++ b/code/game/objects/closets.dm @@ -126,6 +126,8 @@ src.welded = 1 src.loc = P O.amount -= 3 + else + user << "\blue You need more paper." else if(src.opened) if(istype(W, /obj/item/weapon/grab)) src.MouseDrop_T(W:affecting, user) //act like they were dragged onto the closet diff --git a/code/game/objects/items/item.dm b/code/game/objects/items/item.dm index 4a8d3c3b532..7b0a74cdf44 100644 --- a/code/game/objects/items/item.dm +++ b/code/game/objects/items/item.dm @@ -176,6 +176,15 @@ /obj/item/attackby(obj/item/weapon/W as obj, mob/user as mob) if (istype(W, /obj/item/weapon/packageWrap)) + if(istype(src,/obj/item/weapon/storage) && istype(src.loc, /mob)) //Put it into the bag + return + if(istype(src.loc,/obj/item/weapon/storage) || istype(src.loc,/obj/item/clothing/suit/storage/)) //Taking stuff out of storage duplicates it. + user << "\blue Do not do this, it is broken as all hell. Take it out of the container first." + return + for(var/obj/item/T in user) //Lets remove it from their inventory + if(T == src) + user.remove_from_mob(T) + break var/obj/item/weapon/packageWrap/O = W if (O.amount > 1) var/obj/item/smallDelivery/P = new /obj/item/smallDelivery(get_turf(src.loc)) diff --git a/code/modules/recycling/disposal.dm b/code/modules/recycling/disposal.dm index a1520ed1e95..6786e12780e 100644 --- a/code/modules/recycling/disposal.dm +++ b/code/modules/recycling/disposal.dm @@ -502,6 +502,7 @@ // now everything inside the disposal gets put into the holder // note AM since can contain mobs or objs + var/tagOverride = 0 for(var/atom/movable/AM in D) AM.loc = src /*if(istype(AM, /mob/living/carbon/human)) @@ -516,7 +517,12 @@ var/obj/item/smallDelivery/T = AM src.destinationTag = T.sortTag else if (!src.destinationTag) - src.destinationTag = "Mail Office" + src.destinationTag = null + else if (istype(AM, /mob)) //If there is a mob somewhere in there.... + tagOverride = 1 + if(tagOverride) + if(prob(50)) + src.destinationTag = null //Then 50% chance of going to the mail room! // start the movement process @@ -966,6 +972,8 @@ for(var/i, i <= backType.len, i++) if(sortTag == src.backType[i]) return negdir + else if (!sortTag && !mailsort) + return posdir if(fromdir != sortdir) // probably came from the negdir diff --git a/code/modules/recycling/sortingmachinery.dm b/code/modules/recycling/sortingmachinery.dm index 2422e24c41c..4e208912fb5 100644 --- a/code/modules/recycling/sortingmachinery.dm +++ b/code/modules/recycling/sortingmachinery.dm @@ -130,17 +130,7 @@ user.attack_log += text("\[[time_stamp()]\] Has used [src.name] on \ref[target]") - if (istype(target, /obj/item)) - if(istype(target,/obj/item/weapon/storage) || istype(target,/obj/item/clothing/suit/storage/)) //Put it into the bag - return - var/obj/item/temptrgt = target - if(istype(temptrgt.loc,/obj/item/weapon/storage) || istype(temptrgt.loc,/obj/item/clothing/suit/storage/)) //Taking stuff out of storage duplicates it. - user << "\blue Do not do this, it is broken as all hell. Take it out of the container first." - return - for(var/obj/item/T in user) //Lets remove it from their inventory - if(T == src) - user.remove_from_mob(target) - break +/* if (istype(target, /obj/item)) var/obj/item/O = target if (src.amount > 1) var/obj/item/smallDelivery/P = new /obj/item/smallDelivery(get_turf(O.loc)) //Aaannd wrap it up! @@ -162,13 +152,13 @@ var/obj/effect/bigDelivery/P = new /obj/effect/bigDelivery(get_turf(O.loc)) P.wrapped = O O.close() -// O.welded = 1 //You should be able to burst out of the package, now. (maybe) + O.welded = 1 O.loc = P src.amount -= 3 else - user << "\blue You need more paper." + user << "\blue You need more paper." */ - else + if(!(istype (target, /obj/structure/closet) || istype(target, /obj/structure/closet/crate) || istype(target, /obj/item))) user << "\blue The object you are trying to wrap is unsuitable for the sorting machinery!" if (src.amount <= 0) new /obj/item/weapon/c_tube( src.loc )