diff --git a/code/modules/recycling/disposal.dm b/code/modules/recycling/disposal.dm index c190f64b6fe..b48d3085572 100644 --- a/code/modules/recycling/disposal.dm +++ b/code/modules/recycling/disposal.dm @@ -45,6 +45,9 @@ if(stat & BROKEN || !I || !user) return + if(isrobot(user) && !istype(I, /obj/item/weapon/trashbag)) + return + if(istype(I, /obj/item/weapon/melee/energy/blade)) user << "You can't place that item inside the disposal unit." return @@ -58,10 +61,6 @@ update() return - //robots shouldn't be able to grab/carry stuff anyway - if(isrobot(user)) - return - if(istype(I, /obj/item/ashtray) && (I.health > 0)) user << "\blue You empty the ashtray into [src]." for(var/obj/item/O in I.contents) @@ -103,6 +102,11 @@ GM.client.eye = src GM.loc = src for (var/mob/C in viewers(src)) + + log_attack("[usr] ([usr.ckey]) placed [GM] ([GM.ckey]) in a disposals unit.") + log_admin("ATTACK: [usr] ([usr.ckey]) placed [GM] ([GM.ckey]) in a disposals unit.") + message_admins("ATTACK: [usr] ([usr.ckey]) placed [GM] ([GM.ckey]) in a disposals unit.") + C.show_message("\red [GM.name] has been placed in the [src] by [user].", 3) del(G) else @@ -144,9 +148,19 @@ if(!do_after(usr, 20)) return if(target == user && !user.stat && !user.weakened && !user.stunned && !user.paralysis) // if drop self, then climbed in // must be awake, not stunned or whatever + + log_attack("[user] ([user.ckey]) climbed into a disposals unit.") + log_admin("ATTACK: [user] ([user.ckey]) climbed into in a disposals unit.") + message_admins("ATTACK: [user] ([user.ckey]) climbed into in a disposals unit.") + msg = "[user.name] climbs into the [src]." user << "You climb into the [src]." else if(target != user && !user.restrained() && !user.stat && !user.weakened && !user.stunned && !user.paralysis) + + log_attack("[user] ([user.ckey]) placed [target] ([target.ckey]) in a disposals unit.") + log_admin("ATTACK: [user] ([user.ckey]) placed [target] ([target.ckey]) in a disposals unit.") + message_admins("ATTACK: [user] ([user.ckey]) placed [target] ([target.ckey]) in a disposals unit.") + msg = "[user.name] stuffs [target.name] into the [src]!" user << "You stuff [target.name] into the [src]!" else @@ -239,10 +253,14 @@ // human interact with machine attack_hand(mob/user as mob) + if(user && user.loc == src) + usr << "\red You cannot reach the controls from inside." + return interact(user, 0) // user interaction proc/interact(mob/user, var/ai=0) + src.add_fingerprint(user) if(stat & BROKEN) user.machine = null @@ -277,6 +295,9 @@ // handle machine interaction Topic(href, href_list) + if(usr.loc == src) + usr << "\red You cannot reach the controls from inside." + return ..() src.add_fingerprint(usr) if(stat & BROKEN)