//=============================================================================
// FleshPoundAvoidArea
//=============================================================================
// Custom avoid marker to make other zombies stay away from the Fleshpound
//=============================================================================
// Killing Floor Source
// Copyright (C) 2009 Tripwire Interactive LLC
// - John "Ramm-Jaeger" Gibson
//=============================================================================
class FleshPoundAvoidArea extends AvoidMarker;

var KFMonster KFMonst;		// KFMonster this market is attached to -- 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
{
	TeamNum=255
	bStatic=false
	bBlockZeroExtentTraces=false
	bBlockNonZeroExtentTraces=false
	bBlockHitPointTraces=false
	CollisionRadius=1000.000
	RemoteRole=ROLE_None
}
