diff --git a/code/game/objects/items/weapons/storage/artistic_toolbox.dm b/code/game/objects/items/weapons/storage/artistic_toolbox.dm index 8752f95c1f0..31165dfdc30 100644 --- a/code/game/objects/items/weapons/storage/artistic_toolbox.dm +++ b/code/game/objects/items/weapons/storage/artistic_toolbox.dm @@ -13,17 +13,31 @@ force = 5 throwforce = 10 origin_tech = "combat=4;engineering=4;syndicate=2" + actions_types = list(/datum/action/item_action/toggle) var/list/servantlinks = list() var/hunger = 0 var/hunger_message_level = 0 - var/original_owner = null - var/activated = 0 - var/mindless_override = 0 + var/mob/living/carbon/human/original_owner = null + var/activated = FALSE + var/mindless_override = FALSE + +/obj/item/storage/toolbox/green/memetic/ui_action_click(mob/user) + if(user.HasDisease(new /datum/disease/memetic_madness(0))) + var/obj/item/storage/toolbox/green/memetic/M = user.get_active_hand() + if(istype(M)) + to_chat(user, "His Grace [flags & NODROP ? "releases from" : "binds to"] your hand!") + if(!(flags & NODROP)) + flags |= NODROP + else + flags &= ~NODROP + else + to_chat(user, "You can't see to understand what this does.") + /obj/item/storage/toolbox/green/memetic/attack_hand(mob/living/carbon/user) if(!activated) if(ishuman(user) && !user.HasDisease(new /datum/disease/memetic_madness(0))) - activated = 1 + activated = TRUE user.ForceContractDisease(new /datum/disease/memetic_madness(0)) for(var/datum/disease/memetic_madness/DD in user.viruses) DD.progenitor = src @@ -40,7 +54,7 @@ /obj/item/storage/toolbox/green/memetic/attackby(obj/item/I, mob/user) if(activated) - if(istype(I, /obj/item/grab/)) + if(istype(I, /obj/item/grab)) var/obj/item/grab/G = I if(!G.affecting) return @@ -71,19 +85,21 @@ throwforce += 5 return - ..() + return ..() -/obj/item/storage/toolbox/green/memetic/proc/consume(mob/M) - if(!M) +/obj/item/storage/toolbox/green/memetic/proc/consume(mob/living/carbon/human/H) + if(!H) return hunger = 0 hunger_message_level = 0 playsound(src.loc, 'sound/goonstation/misc/burp_alien.ogg', 50, 0) - M.emote("scream") - M.death() - M.ghostize() - if(M == original_owner) - qdel(M) + H.emote("scream") + if(ismachine(H)) + H.adjustFireLoss(1000) // Damn snowflakes + H.death() + H.ghostize() + if(H == original_owner) + qdel(H) var/obj/item/storage/toolbox/green/fake_toolbox = new(get_turf(src)) fake_toolbox.desc = "It looks a lot duller than it used to." qdel(src) diff --git a/code/game/objects/items/weapons/storage/storage.dm b/code/game/objects/items/weapons/storage/storage.dm index 99590fe1d13..507d6fdb9f3 100644 --- a/code/game/objects/items/weapons/storage/storage.dm +++ b/code/game/objects/items/weapons/storage/storage.dm @@ -433,6 +433,7 @@ CHECK_TICK /obj/item/storage/New() + ..() can_hold = typecacheof(can_hold) cant_hold = typecacheof(cant_hold)