#!botc 1.1
#include "botc_defs.bts"

event "Spectating" {changestate(2);}

event "KilledByEnemy" {changestate(3);}
event "KilledByPlayer" {changestate(3);}
event "KilledBySelf" {changestate(3);}
event "KilledByEnvironment" {changestate(3);}

state "stateSpawn": // 0
	onenter
	{
	}
	
	mainloop
	{
		changestate(1);
	}
	
	onexit
	{
	}

state "stateRoam": // 1
	var int $fmove;
	var int $smove;
	var int $buttons;

	onenter
	{
	}

	mainloop
	{
		$buttons = ACS_NamedExecuteWithResult("TombFetus_GetBotButtons");
		$fmove = ACS_NamedExecuteWithResult("TombFetus_GetBotFMove");
		$smove = ACS_NamedExecuteWithResult("TombFetus_GetBotSMove");
		
		BeginSpeed();
		
		if ( $buttons & 1 )
		{
			BeginFiringWeapon();
		}
		else
		{
			StopFiringWeapon();
		}
		
		if ( $buttons & 2 )
		{
			BeginAltFiringWeapon();
		}
		else
		{
			StopAltFiringWeapon();
		}
		
		if ( $buttons & 16 )
		{
			BeginJumping();
		}
		else
		{
			StopJumping();
		}
		
		if ( $fmove > 0 )
		{
			MoveForward($fmove);
		}
		if ( $fmove < 0 )
		{
			MoveBackwards(-$fmove);
		}
		if ( $fmove == 0 )
		{
			StopForwardMovement();
		}
		
		if ( $smove < 0 )
		{
			MoveRight(-$smove);
		}
		if ( $smove > 0 )
		{
			MoveLeft($smove);
		}
		if ( $smove == 0 )
		{
			StopSidewaysMovement();
		}
	}

	onexit
	{
	}

state "stateSpectating": // 2
	event "JoinedGame" {
		changestate(0);
	}

	onenter
	{
		TryToJoinGame();
	}

	mainloop
	{
		delay(280); //Wait about 8 seconds every time
		TryToJoinGame();
	}
	
	onexit {}

state "stateKilled": // 3
	event "Respawned"
	{
		changestate(1);
	}

	onenter {}

	mainloop
	{
		if ( Random(0, 3) == 0 )
		{
			Respawn();
		}
	}

	onexit {}
