anchor.diff:  
   /obj/effect/proc_holder/changeling/biodegrade/proc/dissolve_handcuffs(mob/living/carbon/human/user, obj/O)
   	if(O && user.handcuffed == O)
  +		user.visible_message("<span class='warning'>[O] dissolve[O.gender==PLURAL?"":"s"] into a puddle of sizzling goop.</span>")
  +		new /obj/effect/decal/cleanable/greenglow(O.drop_location())
  +		qdel(O)
  +
  +/obj/effect/proc_holder/changeling/biodegrade/proc/dissolve_legcuffs(mob/living/carbon/human/user, obj/O)
  +	if(O && user.legcuffed == O)
   		user.visible_message("<span class='warning'>[O] dissolve[O.gender==PLURAL?"":"s"] into a puddle of sizzling goop.</span>")
   		new /obj/effect/decal/cleanable/greenglow(O.drop_location())
   		qdel(O)
  
positive.code: 	if(istype(user.loc, /obj/structure/closet) && !used)
  		var/obj/structure/closet/C = user.loc
  		if(!istype(C))
  			return 0
  		C.visible_message("<span class='warning'>[C]'s hinges suddenly begin to melt and run!</span>")
  		to_chat(user, "<span class='warning'>We vomit acidic goop onto the interior of [C]!</span>")
  		addtimer(CALLBACK(src, .proc/open_closet, user, C), 70)
  
negative.code: 	if(istype(user.loc, /obj/structure/spider/cocoon) && !used)
  		var/obj/structure/spider/cocoon/C = user.loc
  		if(!istype(C))
  			return FALSE
  		C.visible_message("<span class='warning'>[src] shifts and starts to fall apart!</span>")
  		to_chat(user, "<span class='warning'>We secrete acidic enzymes from our skin and begin melting our cocoon...</span>")
  		addtimer(CALLBACK(src, .proc/dissolve_cocoon, user, C), 25) //Very short because it's just webs
  