class BruteAvoidArea extends AvoidMarker;

var KFMonster KFMonst; // Should be the same as base and owner

state BigMeanAndScary
{
	Begin:
		StartleBots();
		Sleep(1.0);
		GoTo('Begin');
}

function InitFor(KFMonster V)
{
	if (V != None)
	{
		KFMonst = V;
		SetCollisionSize(KFMonst.CollisionRadius * 3, KFMonst.CollisionHeight + CollisionHeight);
		SetBase(KFMonst);
		GoToState('BigMeanAndScary');
	}
}

function Touch( actor Other )
{
	if ( (Pawn(Other) != None) && RelevantTo(Pawn(Other)) )
		KFMonsterController(Pawn(Other).Controller).AvoidThisMonster(KFMonst);
}

function bool RelevantTo(Pawn P)
{
	return ( KFMonst != none && VSizeSquared(KFMonst.Velocity) >= 75 && Super.RelevantTo(P)
			&& KFMonst.Velocity dot (P.Location - KFMonst.Location) > 0  );
}

function StartleBots()
{
	local KFMonster P;

	if (KFMonst != None)
		ForEach CollidingActors(class'KFMonster', P, CollisionRadius)
		if (RelevantTo(P))
			KFMonsterController(P.Controller).AvoidThisMonster(KFMonst);
}

defaultproperties
{
     CollisionRadius=1000.000000
     bBlockZeroExtentTraces=False
     bBlockNonZeroExtentTraces=False
     bBlockHitPointTraces=False
}
