diff --git a/code/defines/obj/supplypacks.dm b/code/defines/obj/supplypacks.dm index 1dc066d1a42..d5398de3498 100755 --- a/code/defines/obj/supplypacks.dm +++ b/code/defines/obj/supplypacks.dm @@ -74,7 +74,7 @@ /datum/supply_packs/artscrafts name = "Arts and Crafts supplies" - contains = list("/obj/item/toy/crayonbox", + contains = list("/obj/item/weapon/storage/crayonbox", "/obj/item/weapon/camera_test", "/obj/item/weapon/storage/photo_album", "/obj/item/weapon/packageWrap", @@ -804,7 +804,7 @@ contraband = 1 group = "NanoTrasen Contraband Storage" -/datum/supply_packs/poster/New() +/datum/supply_packs/contraband/New() var/list/tempContains = list() for(var/i = 0,i<5,i++) tempContains += pick(contains) diff --git a/code/game/jobs/job/civilian.dm b/code/game/jobs/job/civilian.dm index ac97147c4c9..c97a75d977d 100644 --- a/code/game/jobs/job/civilian.dm +++ b/code/game/jobs/job/civilian.dm @@ -185,7 +185,7 @@ H.equip_if_possible(new /obj/item/weapon/bikehorn(H), H.slot_in_backpack) H.equip_if_possible(new /obj/item/weapon/stamp/clown(H), H.slot_in_backpack) H.equip_if_possible(new /obj/item/toy/crayon/rainbow(H), H.slot_in_backpack) - H.equip_if_possible(new /obj/item/toy/crayonbox(H), H.slot_in_backpack) + H.equip_if_possible(new /obj/item/weapon/storage/crayonbox(H), H.slot_in_backpack) H.mutations |= CLOWN return 1 diff --git a/code/game/machinery/teleporter.dm b/code/game/machinery/teleporter.dm index 1fec2e76069..82b19052d4a 100644 --- a/code/game/machinery/teleporter.dm +++ b/code/game/machinery/teleporter.dm @@ -130,6 +130,10 @@ O.show_message("\red Failure: Cannot authenticate locked on coordinates. Please reinstate coordinate matrix.") return if (istype(M, /atom/movable)) + if (istype(M, /obj/effect/dummy/chameleon)) + for(var/mob/C in M) + C << "\red The projection field prevents you from entering!" + return if(prob(5) && !accurate) //oh dear a problem, put em in deep space do_teleport(M, locate(rand(5, world.maxx - 5), rand(5, world.maxy - 5), 3), 2) else diff --git a/code/game/objects/storage/crates.dm b/code/game/objects/storage/crates.dm index d4dd6126628..6b0400f4924 100644 --- a/code/game/objects/storage/crates.dm +++ b/code/game/objects/storage/crates.dm @@ -38,6 +38,15 @@ icon_opened = "crateopen" icon_closed = "crate" +/obj/structure/closet/crate/contraband + name = "Contraband crate" + desc = "A random assortment of items manufactured by providers NOT listed under Nanotrasen's whitelist." + icon = 'storage.dmi' + icon_state = "crate" + density = 1 + icon_opened = "crateopen" + icon_closed = "crate" + /obj/structure/closet/crate/poster name = "Poster crate" desc = "A random assortment of posters manufactured by providers NOT listed under Nanotrasen's whitelist." diff --git a/code/game/objects/toys.dm b/code/game/objects/toys.dm index 1100fa13a1e..02ffbd272d6 100644 --- a/code/game/objects/toys.dm +++ b/code/game/objects/toys.dm @@ -139,13 +139,14 @@ CRAYONS if("rune") user << "You start drawing a rune on the [target.name]." if(instant || do_after(user, 50)) - new /obj/effect/decal/cleanable/crayon(target,colour,shadeColour,drawtype) - user << "You finish drawing." - if(uses) - uses-- - if(!uses) - user << "\red You used up your crayon!" - del(src) + if(user.equipped() == src) + new /obj/effect/decal/cleanable/crayon(target,colour,shadeColour,drawtype) + user << "You finish drawing." + if(uses) + uses-- + if(!uses) + user << "\red You used up your crayon!" + del(src) return /obj/item/toy/crayon/attack(mob/M as mob, mob/user as mob) diff --git a/code/game/throwing.dm b/code/game/throwing.dm index 197548d64d3..149296f585e 100644 --- a/code/game/throwing.dm +++ b/code/game/throwing.dm @@ -51,6 +51,13 @@ item.layer = initial(item.layer) src.visible_message("\red [src] has thrown [item].") + if(istype(item,/mob/living)) + var/mob/living/M = item + M.attack_log += text("\[[time_stamp()]\] Has been thrown by [src.name] ([src.ckey])") + src.attack_log += text("\[[time_stamp()]\] Threw [M.name] ([M.ckey])") + log_attack("[src.name] ([src.ckey]) threw [M.name] ([M.ckey])") + log_admin("ATTACK: [src.name] ([src.ckey]) threw [M.name] ([M.ckey])") + if(!src.lastarea) src.lastarea = get_area(src.loc) if((istype(src.loc, /turf/space)) || (src.lastarea.has_gravity == 0)) @@ -106,6 +113,10 @@ if(src.vars.Find("throwforce")) M.take_organ_damage(src:throwforce) + log_attack("[hit_atom] ([M.ckey]) was hit by [src] thrown by ([src.fingerprintslast])") + log_admin("ATTACK: [hit_atom] ([M.ckey]) was hit by [src] thrown by ([src.fingerprintslast])") + message_admins("ATTACK: [hit_atom] ([M.ckey]) was hit by [src] thrown by ([src.fingerprintslast])") + else if(isobj(hit_atom)) var/obj/O = hit_atom if(!O.anchored)