class MourningShellCasing : Actor
{
	Default
	{
		Radius 4;
		Height 6;
		Speed 8;
		Scale 0.7;
		BounceSound "Casing/TankShell";
		PROJECTILE;
		BounceType 'Doom';
		BounceCount 6;
		BounceFactor 0.6;
		-NOGRAVITY
		+BOUNCEONACTORS
		+BOUNCEONCEILINGS
		+ROLLSPRITE
		+ROLLCENTER
		Gravity 1.2;
	}
	
	States
	{
	Spawn:
		CAS5 A 0 NoDelay {
			A_SetRoll(Roll + frandom(15.0,45.0), SPF_INTERPOLATE);
			A_SetScale(Scale.X, Scale.Y - 0.2);
		}
		Goto Roflcopter;
	Roflcopter:
		CAS5 A 1 A_SetRoll(Roll + 25.0, SPF_INTERPOLATE);
		Loop;
	Death:
		CAS5 A 0 A_SpawnItemEx("MourningShellCasingLiedown",0,0,0,0,0,0,0,SXF_TRANSFERROLL|SXF_CLIENTSIDE);
		stop;
	}
}

class MourningShellCasingMirrored : MourningShellCasing
{
	States
	{
	Spawn:
		CAS5 A 0 NoDelay {
			A_SetRoll(Roll - frandom(15.0,45.0), SPF_INTERPOLATE);
			A_SetScale(Scale.X, Scale.Y - 0.2);
		}
		Goto Roflcopter;
	Roflcopter:
		CAS5 A 1 A_SetRoll(Roll - 25.0, SPF_INTERPOLATE);
		Loop;
	Death:
		CAS5 A 0 A_SpawnItemEx("MourningShellCasingLiedown",0,0,0,0,0,0,0,SXF_TRANSFERROLL|SXF_CLIENTSIDE);
		stop;
	}
}

class MourningShellCasingLiedown : Actor
{
	Default
	{
		Scale 0.7;
		-NOGRAVITY
		+ROLLSPRITE
		+ROLLCENTER
	}
	
	States
	{
	Spawn:
		CAS5 A 0 NoDelay A_SetScale(Scale.X, Scale.Y - 0.2);
		CAS5 A 210 A_CheckSight("Fadying");
		Wait;
	Fadying:
		CAS5 A 1 A_FadeOut(0.1);
		Wait;
   }
}

class MourningShellCasingSpawner : Actor
{
	Default
	{
		Speed 10;
		PROJECTILE;
		+NOCLIP
		+NOTONAUTOMAP
	}
	States
	{
	Spawn:
		TNT1 A 0 NoDelay A_JumpIf(GetCvar("GC_ToasterMode"), "Null");
		TNT1 A 0 A_SpawnProjectile("MourningShellCasing",0,0,random(100,80),CMF_AIMDIRECTION,random(-15,15));
		Stop;
	}
}

class MourningShellCasingSpawnerLeft : MourningShellCasingSpawner
{
	States
	{
	Spawn:
		TNT1 A 0 NoDelay A_JumpIf(GetCvar("GC_ToasterMode"), "Null");
		TNT1 A 0 A_SpawnProjectile("MourningShellCasingMirrored",0,0,random(-100,-80),CMF_AIMDIRECTION,random(-15,15));
		Stop;
	}
}