anchor.diff:  	holder.obj_integrity = holder.max_integrity
   
   /datum/spacevine_mutation/woodening/on_hit(obj/structure/spacevine/holder, mob/living/hitter, obj/item/I, expected_damage)
  -	if(I.is_sharp())
  +	if(I?.get_sharpness())
   		. = expected_damage * 0.5
   	else
   		. = expected_damage
  
positive.code: 		. = ..()
  
  /proc/isvineimmune(atom/A)
  	. = FALSE
  	if(isliving(A))
  		var/mob/living/M = A
  		if(("vines" in M.faction) || ("plants" in M.faction))
  			. = TRUE
  
negative.code: 	quality = NEGATIVE
  
  /datum/spacevine_mutation/thorns/on_cross(obj/structure/spacevine/holder, mob/living/crosser)
  	if(prob(severity) && istype(crosser) && !isvineimmune(crosser))
  		var/mob/living/M = crosser
  		M.adjustBruteLoss(5)
  		to_chat(M, "<span class='alert'>You cut yourself on the thorny vines.</span>")
  
  /datum/spacevine_mutation/thorns/on_hit(obj/structure/spacevine/holder, mob/living/hitter, obj/item/I, expected_damage)
  	if(prob(severity) && istype(hitter) && !isvineimmune(hitter))
  		var/mob/living/M = hitter
  		M.adjustBruteLoss(5)
  		to_chat(M, "<span class='alert'>You cut yourself on the thorny vines.</span>")
  