anchor.diff:  
   /datum/action/changeling/biodegrade/sting_action(mob/living/carbon/human/user)
   	var/used = FALSE // only one form of shackles removed per use
  -	if(!user.restrained() && isopenturf(user.loc))
  +	if(!user.restrained() && !user.legcuffed && isopenturf(user.loc))
   		to_chat(user, "<span class='warning'>We are already free!</span>")
  -		return 0
  +		return FALSE
   
   	if(user.handcuffed)
   		var/obj/O = user.get_item_by_slot(ITEM_SLOT_HANDCUFFED)
   		if(!istype(O))
  -			return 0
  +			return FALSE
   		user.visible_message("<span class='warning'>[user] vomits a glob of acid on [user.p_their()] [O]!</span>", \
   			"<span class='warning'>We vomit acidic ooze onto our restraints!</span>")
   
   		addtimer(CALLBACK(src, .proc/dissolve_handcuffs, user, O), 30)
   		used = TRUE
   
  +	if(user.legcuffed)
  +		var/obj/O = user.get_item_by_slot(SLOT_LEGCUFFED)
  +		if(!istype(O))
  +			return FALSE
  +		user.visible_message("<span class='warning'>[user] vomits a glob of acid on [user.p_their()] [O]!</span>", \
  +			"<span class='warning'>We vomit acidic ooze onto our restraints!</span>")
  +
  +		addtimer(CALLBACK(src, .proc/dissolve_legcuffs, user, O), 30)
  +		used = TRUE
  +
   	if(user.wear_suit && user.wear_suit.breakouttime && !used)
   		var/obj/item/clothing/suit/S = user.get_item_by_slot(ITEM_SLOT_OCLOTHING)
   		if(!istype(S))
  -			return 0
  +			return FALSE
   		user.visible_message("<span class='warning'>[user] vomits a glob of acid across the front of [user.p_their()] [S]!</span>", \
   			"<span class='warning'>We vomit acidic ooze onto our straight jacket!</span>")
   		addtimer(CALLBACK(src, .proc/dissolve_straightjacket, user, S), 30)
  
positive.code: 
  /datum/action/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)
  
negative.code: 	if(istype(user.loc, /obj/structure/closet) && !used)
  		var/obj/structure/closet/C = user.loc
  		if(!istype(C))
  			return FALSE
  		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)
  