anchor.diff:  	melee_damage_upper = 2
   	environment_smash = 0
   	stop_automated_movement_when_pulled = 1
  -	var/datum/reagents/udder = null
  +	var/obj/udder/udder = null
   
   /mob/living/simple_animal/hostile/retaliate/goat/New()
  -	udder = new(50)
  -	udder.my_atom = src
  +	udder = new()
  +	..()
  +/mob/living/simple_animal/hostile/retaliate/goat/Destroy()
  +	qdel(udder)
  +	udder = null
   	..()
   
   /mob/living/simple_animal/hostile/retaliate/goat/Life()
  
positive.code: 	attacktext = "kicks"
  	attack_sound = 'sound/weapons/punch1.ogg'
  	health = 50
  	var/datum/reagents/udder = null
  
  /mob/living/simple_animal/cow/New()
  	udder = new(50)
  	udder.my_atom = src
  	..()
  
  /mob/living/simple_animal/cow/attackby(obj/item/O, mob/user, params)
  	if(stat == CONSCIOUS && istype(O, /obj/item/weapon/reagent_containers/glass))
  		user.visible_message("[user] milks [src] using \the [O].", "<span class='notice'>You milk [src] using \the [O].</span>")
  		var/obj/item/weapon/reagent_containers/glass/G = O
  		var/transfered = udder.trans_id_to(G, "milk", rand(5,10))
  		if(G.reagents.total_volume >= G.volume)
  			user << "<span class='danger'>[O] is full.</span>"
  		if(!transfered)
  			user << "<span class='danger'>The udder is dry. Wait a bit longer...</span>"
  	else
  		..()
  
  /mob/living/simple_animal/cow/Life()
  	. = ..()
  	if(stat == CONSCIOUS)
  		if(udder && prob(5))
  			udder.add_reagent("milk", rand(5, 10))
  
  /mob/living/simple_animal/cow/attack_hand(mob/living/carbon/M)
  	if(!stat && M.a_intent == "disarm" && icon_state != icon_dead)
  
negative.code: 			qdel(src)
  	else
  		SSobj.processing.Remove(src)
  
  /obj/udder
  
  /obj/udder/New()
  	reagents = new(50)
  	reagents.my_atom = src
  	reagents.add_reagent("milk", 20)
  
  /obj/udder/proc/generateMilk()
  	if(prob(5))
  		reagents.add_reagent("milk", rand(5, 10))
  
  /obj/udder/proc/milkAnimal(obj/O, mob/user)
  	var/obj/item/weapon/reagent_containers/glass/G = O
  	if(G.reagents.total_volume >= G.volume)
  		user << "<span class='danger'>[O] is full.</span>"
  		return
  	var/transfered = reagents.trans_id_to(G, "milk", rand(5,10))
  	if(transfered)
  		user.visible_message("[user] milks [src] using \the [O].", "<span class='notice'>You milk [src] using \the [O].</span>")
  	else
  		user << "<span class='danger'>The udder is dry. Wait a bit longer...</span>"
  
  /obj/udder/Destroy()
  	qdel(reagents)
  	..()