class NuclearShockIII expands NuclearShockI;

simulated function Timer()
{
local PlayerPawn PP;
local Actor A;
local vector dir;

	ForEach AllActors(Class'PlayerPawn', PP)
	{
		if ((DrawScale * 80) - VSize(Location - PP.Location) < 720 && PP.ViewTarget == None && VSize(Location - PP.Location) < (DrawScale * 80))
		{
			PP.ShakeView( 0.5, 800.0, 80.0);

			if ((DrawScale * 80) > 18000)
				Spawn(Class'ShockHitExtended',,, PP.Location);
			else
				Spawn(Class'ShockHit',,, PP.Location);
		}
		else if (PP.ViewTarget != None)
		{
			if ((DrawScale * 80) - VSize(Location - PP.ViewTarget.Location) < 720 && VSize(Location - PP.ViewTarget.Location) < (DrawScale * 80))
			{
				PP.ShakeView( 0.5, 800.0, 80.0);
	
				if ((DrawScale * 80) > 18000)
					Spawn(Class'ShockHitExtended',,, PP.ViewTarget.Location);
				else
					Spawn(Class'ShockHit',,, PP.ViewTarget.Location);
			}
		}
	}

	if (DrawScale < Default.DrawScale / 2)
	{
	ForEach VisibleCollidingActors(Class'Actor', A, DrawScale * 80)
	{
		if ((DrawScale * 80) - VSize(Location - A.Location) < 720 && Role == ROLE_Authority)
		{
			dir = Normal(A.Location - Location);
			A.TakeDamage(Max((Default.DrawScale * 40) - DrawScale, 0),  Instigator, A.Location - 0.5 * (A.CollisionHeight + A.CollisionRadius) * dir, dir * 100000 * (ScaleGlow/Default.ScaleGlow), 'MushroomNuke');
		}
	}
	}
}

defaultproperties
{
	LifeSpan=4.000000
	DrawScale=360.000000
	MultiSkins(1)=FastLightCone
}
