anchor.diff:  		else
   			special_attack_type_message = "a mystery move, even I don't know."
   
  +/**
  +  *	this proc combines "sleep" while also checking for if the battle should continue 
  +  *
  +  *	this goes through some of the checks - the toys need to be next to each other to fight!
  +  *	if it's player vs themself: They need to be able to "control" both mechs (either must be adjacent or using TK)
  +  *	if it's player vs player: Both players need to be able to "control" their mechs (either must be adjacent or using TK)
  +  *	if it's player vs mech (suicide): the mech needs to be in range of the player
  +  *	if all the checks are TRUE, it does the sleeps, and returns TRUE. Otherwise, it returns FALSE.
  +  *	Arguments:
  +  *	* delay - the amount of time the sleep at the end of the check will sleep for
  +  *	* attacker: - the attacking toy in the battle.
  +  *	* attacker_controller - the controller of the attacking toy. there should ALWAYS be an attacker_controller
  +  *	* opponent - (optional) the defender controller in the battle, for PvP
  +  */
  +/obj/item/toy/prize/proc/combat_sleep(var/delay, obj/item/toy/prize/attacker, mob/living/carbon/attacker_controller, mob/living/carbon/opponent)
  +	if(!attacker_controller)
  +		return FALSE
  +	
  +	if(!attacker) //if there's no attacker, then attacker_controller IS the attacker
  +		if(!in_range(src, attacker_controller))
  +			attacker_controller.visible_message("<span class='suicide'>[attacker_controller] is running from [src]! The coward!</span>")
  +			return FALSE
  +	else // if there's an attacker, we can procede as normal
  +		if(!in_range(src, attacker)) //and the two toys aren't next to each other, the battle ends
  +			attacker_controller.visible_message("<span class='notice'> [attacker] and [src] separate, ending the battle. </span>", \
  +								"<span class='notice'> [attacker] and [src] separate, ending the battle. </span>")
  +			return FALSE
  +
  +		//dead men tell no tales, incapacitated men fight no fights
  +		if(attacker_controller.incapacitated())
  +			return FALSE
  +		//if the attacker_controller isn't next to the attacking toy (and doesn't have telekinesis), the battle ends
  +		if(!in_range(attacker, attacker_controller) && !(attacker_controller.dna.check_mutation(TK)))
  +			attacker_controller.visible_message("<span class='notice'> [attacker_controller.name] seperates from [attacker], ending the battle.</span>", \
  +								"<span class='notice'> You separate from [attacker], ending the battle. </span>")
  +			return FALSE
  +
  +		//if it's PVP and the opponent is not next to the defending(src) toy (and doesn't have telekinesis), the battle ends
  +		if(opponent)
  +			if(opponent.incapacitated())
  +				return FALSE
  +			if(!in_range(src, opponent) && !(opponent.dna.check_mutation(TK)))
  +				opponent.visible_message("<span class='notice'> [opponent.name] seperates from [src], ending the battle.</span>", \
  +							"<span class='notice'> You separate from [src], ending the battle. </span>")
  +				return FALSE
  +		//if it's not PVP and the attacker_controller isn't next to the defending toy (and doesn't have telekinesis), the battle ends
  +		else
  +			if (!in_range(src, attacker_controller) && !(attacker_controller.dna.check_mutation(TK)))
  +				attacker_controller.visible_message("<span class='notice'> [attacker_controller.name] seperates from [src] and [attacker], ending the battle.</span>", \
  +									"<span class='notice'> You separate [attacker] and [src], ending the battle. </span>")
  +				return FALSE
  +
  +	//if all that is good, then we can sleep peacefully
  +	sleep(delay)
  +	return TRUE
  +
   //all credit to skasi for toy mech fun ideas
   /obj/item/toy/prize/attack_self(mob/user)
   	if(timer < world.time)
  
positive.code: 	..()
  
  /**
    * Resets the request for battle.
    *
    * For use in a timer, this proc resets the wants_to_battle variable after a short period.
    * Arguments
    *		user: the user wanting to do battle
    */
  /obj/item/toy/prize/proc/withdraw_offer(mob/living/carbon/user)
  	if(wants_to_battle)
  		wants_to_battle = FALSE
  		to_chat(user, "<span class='notice'>You get the feeling they don't want to battle.</span>")
  
  /obj/item/toy/prize/suicide_act(mob/living/carbon/user)
  	if(in_combat)
  		to_chat(user, "<span class='notice'>[src] is in battle, let it finish first.</span>")
  
negative.code:   * Processes any special attack moves that happen in the battle (called in the mechaBattle proc). 
    *
    * Makes the toy shout their special attack cry and updates its cooldown. Then, does the special attack.
    * Arguments:
    *	* victim - the toy being hit by the special move
    */
  /obj/item/toy/prize/proc/special_attack_move(obj/item/toy/prize/victim) 
  	say(special_attack_cry + "!!")
  
  	special_attack_charged = FALSE
  	special_attack_cooldown = 3
  