anchor.diff:  	attacker.combat_health = attacker.max_combat_health
   
   	return
  +
  +/**
  +  * This proc checks if a battle can be initiated between src and attacker.
  +  *
  +  * Both SRC's and attacker's timer are checked if they're on cooldown, and 
  +  * both SRC and attacker are checked if they are in combat already.
  +  * If any of the above are true, the proc returns FALSE and sends a message to user (and target, if included) otherwise, it returns TRUE
  +  * 
  +  * Arguments
  +  *															
  +  *		src:			the defending toy,  user's toy 	(not an 'arg' but relevant / makes it easier to read if you understand)	
  +  *		attacker:		the attacking toy, the target's toy if target exists
  +  *		user:			the user who is initiating the battle
  +  *		target:			optional arg used in Mech PvP battles: the other person who is taking part in the fight
  +  */
  +/obj/item/toy/prize/proc/checkBattleStart(obj/item/toy/prize/attacker, mob/living/carbon/user, mob/living/carbon/target) 
  +	if(attacker.in_combat)
  +		to_chat(user, "<span class='notice'>[target?target.p_their() : "Your" ] [attacker.name] is in combat.</span>")
  +		target?.to_chat(target, "<span class='notice'>Your [attacker.name] is in combat.</span>")
  +		return FALSE 
  +	if(in_combat)
  +		to_chat(user, "<span class='notice'>Your [name] is in combat.</span>")
  +		target?.to_chat(target, "<span class='notice'>[target.p_their()] [name] is in combat.</span>")
  +		return FALSE 
  +	if(attacker.timer > world.time)
  +		to_chat(user, "<span class='notice'>[target?target.p_their() : "Your" ] [attacker.name] isn't ready for battle.</span>")
  +		target?.to_chat(target, "<span class='notice'>Your [attacker.name] isn't ready for battle.</span>")
  +		return FALSE 
  +	if(timer > world.time)
  +		to_chat(user, "<span class='notice'>Your [name] isn't ready for battle.</span>")
  +		target?.to_chat(target, "<span class='notice'>[target.p_their()] [name] isn't ready for battle.</span>")
  +		return FALSE 
  +
  +	return TRUE
   
   /**
     * Processes any special attack moves that happen in the battle (called in the mechaBattle proc). 
  
positive.code: 	src.in_combat = TRUE
  	attacker.in_combat = TRUE
  
  	sleep(15)
  	//--THE BATTLE BEGINS--
  	while(combat_health > 0 && attacker.combat_health > 0) 
  
  		//if the two toys aren't next to each other, the battle ends
  		if(!in_range(src, attacker)) 
  			referee.visible_message("<span class='notice'> [attacker.name] and [name] separate, ending the battle. </span>", \
  									"<span class='notice'> [attacker.name] and [name] separate, ending the battle. </span>")
  			break
  		//if the referee isn't next either both toys (and doesn't have telekinesis), the battle ends
  		if((!in_range(src, referee) || !in_range(attacker, referee)) && !(referee.dna.check_mutation(TK)))
  			referee.visible_message("<span class='notice'> [referee.name] seperates from [name] and [attacker.name], ending the battle.</span>", \
  									"<span class='notice'> You separate [attacker.name] and [name], ending the battle. </span>")
  			break
  		//if it's PVP and the opponent is not next to the attacking toy (and doesn't have telekinesis), the battle ends
  		if(opponent && !in_range(attacker, opponent) && !(referee.dna.check_mutation(TK)))
  			opponent.visible_message("<span class='notice'> [referee.name] seperates from [attacker.name], ending the battle.</span>", \
  									"<span class='notice'> You separate from [attacker.name], ending the battle. </span>")
  			break
  
  		if(special_attack_charged)
  			specialAttackMove(attacker)
  		else if(attacker.special_attack_charged)
  			attacker.specialAttackMove(src)
  		else
  			if(special_attack_cooldown > 0)
  				special_attack_cooldown--
  			if(attacker.special_attack_cooldown > 0)
  				attacker.special_attack_cooldown--
  
  			switch(rand(1,6))
  				if(1 to 2) //attacker wins
  					if(attacker.combat_health <= round(attacker.max_combat_health/3) && special_attack_cooldown == 0) //if health is less than 1/3 and special off CD, use it
  						attacker.special_attack_charged = TRUE
  						attacker_controller.visible_message("<span class='danger'> [attacker.name] begins charging his special attack!! </span>", \
  															"<span class='danger'> You begin charging [attacker.name]'s special attack! </span>")
  					else //just attack 
  						attacker.SpinAnimation(5, 0)
  						playsound(attacker, 'sound/mecha/mechstep.ogg', 20, TRUE)
  						combat_health--
  						attacker_controller.visible_message("<span class='danger'> [attacker.name] devastates [name]! </span>", \
  															"<span class='danger'> You ram [attacker.name] into [name]! </span>", \
  
negative.code: 	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'>[name] is in battle, let it finish first.</span>")
  		return
  	
  	user.visible_message("<span class='suicide'>[user] begins a fight with [name]! There's no way they can win, it looks like [user.p_theyre()] trying to commit suicide!</span>")
  	
  	in_combat = TRUE
  	sleep(20)
  	SpinAnimation(5, 0)
  	user.adjustBruteLoss(20)
  	user.adjustStaminaLoss(40)
  	sleep(10)
  	user.SpinAnimation(5, 0)
  	combat_health-- //we scratched it!
  	sleep(10)
  	SpinAnimation(5, 0)
  	user.adjustBruteLoss(15)
  	user.adjustStaminaLoss(30)
  	sleep(10)
  	SpinAnimation(5, 0)
  	user.adjustBruteLoss(15)
  	user.adjustStaminaLoss(30)
  	sleep(10)
  	if(!quiet)
  		say(special_attack_cry + "!!")
  