ACTOR BuellerCasing //Bueller... Bueller... Bueller... Bueller... Bueller...
{
   Radius 2
   Height 4
   Speed 8
   Scale 0.1
   BounceSound "Casing/Bullet"
   PROJECTILE
   -NOGRAVITY
   +BOUNCEONACTORS
   +BOUNCEONCEILINGS
   +DONTSPLASH
   Gravity 0.75
   BounceType Doom
   BounceCount 6
   BounceFactor 0.6
   DamageType Nope
   States
   {
   Spawn:
      CAS1 A 0
      CAS1 ABCDEFGH 1
      Goto Roflcopter
   Roflcopter:
      CAS1 A 0 A_Jump(128,1,3,5,7)
      CAS1 ABCDEFGH 1
      Loop
   Death:
      CAS1 A 0 A_SpawnItemEx("BuellerCasingLiedown")
      stop
   }
}

actor BuellerCasingLiedown
{
	-NOGRAVITY
    Scale 0.1
	States
	{
	Spawn:
	  TNT1 A 0
	  TNT1 A 0 A_Jump(255,"Spawn1","Spawn2")
	  stop
	Spawn1:
	  CAS1 I 1
	  Goto Ded
	Spawn2:
	  CAS1 J 1
	  Goto Ded
	Ded:
	  "####" "#" 210 A_CheckSight("Fadying")
	  Loop
	Fadying:
	  "####" "#" 1 A_FadeOut(0.1)
	  Wait
   }
}

ACTOR BuellerCasingSpawner //Shamelessly stolen from probably one of Weasel's mods, yoink.
{
	Speed 13
	PROJECTILE
	+NOCLIP
	States
	{
	Spawn:
		TNT1 AA 0 A_CustomMissile("BuellerCasing",0,0,random(-100,-80),CMF_AIMDIRECTION,random(-15,15))
		Stop
	}
}

ACTOR BuellerCasing2 : BuellerCasing //for pistols
{
   Speed 6
   Scale 0.05
   States
   {
   Death:
      CAS1 A 0 A_SpawnItemEx("BuellerCasingLiedown2")
      stop
   }
}

actor BuellerCasingLiedown2 : BuellerCasingLiedown
{
    Scale 0.05
}

ACTOR ColtCasingSpawnerRight
{
	Speed 10
	PROJECTILE
	+NOCLIP
	States
	{
	Spawn:
		TNT1 AA 0 A_CustomMissile("BuellerCasing2",0,0,random(-100,-80),CMF_AIMDIRECTION,random(-15,15))
		Stop
	}
}

ACTOR ColtCasingSpawnerLeft
{
	Speed 10
	PROJECTILE
	+NOCLIP
	States
	{
	Spawn:
		TNT1 AA 0 A_CustomMissile("BuellerCasing2",0,0,random(100,80),CMF_AIMDIRECTION,random(-15,15))
		Stop
	}
}

ACTOR BuellerCasing3 : BuellerCasing //Modified size for first few frames for bullet weapons in sights, else they appear freaking HUGE
{
   Speed 4
   Scale 0.05
   States
   {
      Spawn:
      CAS1 AA 0 A_SetScale(ScaleX-0.015)
      CAS1 ABCD 1
      CAS1 A 0 A_SetScale(ScaleX+0.015)
      Goto Roflcopter
   Death:
      CAS1 A 0 A_SpawnItemEx("BuellerCasingLiedown2")
      stop
   }
}

ACTOR BuellerCasingSpawner2 
{
	Speed 8
	PROJECTILE
	+NOCLIP
	States
	{
	Spawn:
		TNT1 AA 1 A_CustomMissile("BuellerCasing2",0,0,random(-100,-80),CMF_AIMDIRECTION,random(-15,15))
		Stop
	}
}

ACTOR BuellerCasingSpawner3
{
	Speed 8
	PROJECTILE
	+NOCLIP
	States
	{
	Spawn:
		TNT1 AA 1 A_CustomMissile("BuellerCasing3",0,0,random(-100,-80),CMF_AIMDIRECTION,random(-15,15))
		Stop
	}
}

ACTOR BuellerCasingSpawner4
{
	Speed 8
	PROJECTILE
	+NOCLIP
	States
	{
	Spawn:
		TNT1 AA 1 A_CustomMissile("BuellerCasing2",0,0,random(100,80),CMF_AIMDIRECTION,random(-15,15))
		Stop
	}
}

ACTOR BuellerCasingSpawner5 //Magnum
{
	Speed 13
	PROJECTILE
	+NOCLIP
	States
	{
	Spawn:
		TNT1 AA 0 A_CustomMissile("BuellerCasing",0,0,random(140,100),CMF_AIMDIRECTION,random(-15,15))
		Stop
	}
}

ACTOR ShottyCasing
{
   Radius 3
   Height 5
   Speed 7
   Scale 0.2
   BounceSound "Casing/Shotgun"
   PROJECTILE
   -NOGRAVITY
   +BOUNCEONACTORS
   +BOUNCEONCEILINGS
   +DONTSPLASH
   Gravity 0.85
   BounceType Doom
   BounceCount 6
   BounceFactor 0.6
   DamageType Nope
   States
   {
   Spawn:
      CAS2 ABCDEFGH 1
      Goto Roflcopter
   Roflcopter:
      CAS2 A 0 A_Jump(128,1,3,5,7)
      CAS2 ABCDEFGH 1
      Loop
   Death:
      CAS1 A 0 A_SpawnItemEx("ShottyCasingLiedown")
      stop
   }
}

actor ShottyCasingLiedown
{
	-NOGRAVITY
    Scale 0.2
	States
	{
	Spawn:
	  TNT1 A 0
	  TNT1 A 0 A_Jump(255,"Spawn1","Spawn2")
	  stop
	Spawn1:
	  CAS2 I 1
	  Goto Ded
	Spawn2:
	  CAS2 J 1
	  Goto Ded
	Ded:
	  "####" "#" 210 A_CheckSight("Fadying")
	  Loop
	Fadying:
	  "####" "#" 1 A_FadeOut(0.1)
	  Wait
   }
}

ACTOR ShottyCasingSpawner
{
	Speed 8
	PROJECTILE
	+NOCLIP
	States
	{
	Spawn:
		TNT1 AA 1 A_CustomMissile("ShottyCasing",0,0,random(-100,-80),CMF_AIMDIRECTION,random(-15,15))
		Stop
	}
}

ACTOR FleshyCasingSpawner
{
	Speed 8
	PROJECTILE
	+NOCLIP
	States
	{
	Spawn:
		TNT1 AA 1 A_CustomMissile("ShottyCasing2",0,0,random(-100,-80),CMF_AIMDIRECTION,random(-15,15))
		Stop
	}
}

ACTOR FleshyCasingSpawnerReversed //Mirrored shotgun
{
	Speed 8
	PROJECTILE
	+NOCLIP
	States
	{
	Spawn:
		TNT1 AA 1 A_CustomMissile("ShottyCasing2",0,0,random(100,80),CMF_AIMDIRECTION,random(-15,15))
		Stop
	}
}

ACTOR ShottyCasing2 : ShottyCasing
{
   Speed 6
   Gravity 0.8
   States
   {
   Spawn:
      CAS2 AA 0 A_SetScale(ScaleX-0.1)
      CAS2 ABCD 1
      CAS2 A 0 A_SetScale(ScaleX+0.1)
      Goto Roflcopter
   }
}

ACTOR GrenadeCasing
{
   Radius 4
   Height 6
   Speed 8
   Scale 0.35
   BounceSound "Casing/Grenade"
   PROJECTILE
   -NOGRAVITY
   +BOUNCEONACTORS
   +BOUNCEONCEILINGS
   Gravity 0.85
   BounceType Doom
   BounceCount 6
   BounceFactor 0.6
   DamageType Nope
   States
   {
   Spawn:
      CAS3 A 0
      CAS1 A 0 A_SetScale(ScaleX-0.25)
      CAS3 ABCD 1
      CAS1 A 0 A_SetScale(ScaleX+0.25)
      Goto Roflcopter
   Roflcopter:
      CAS3 A 0 A_Jump(128,1,3,5,7)
      CAS3 ABCDEFGH 1
      Loop
   Death:
      CAS3 A 0 A_SpawnItemEx("GrenadeCasingLiedown")
      stop
   }
}

actor GrenadeCasingLiedown
{
	-NOGRAVITY
    Scale 0.35
	States
	{
	Spawn:
	  TNT1 A 0
	  TNT1 A 0 A_Jump(255,"Spawn1","Spawn2")
	  stop
	Spawn1:
	  CAS3 I 1
	  Goto Ded
	Spawn2:
	  CAS3 J 1
	  Goto Ded
	Ded:
	  "####" "#" 210 A_CheckSight("Fadying")
	  Loop
	Fadying:
	  "####" "#" 1 A_FadeOut(0.1)
	  Wait
   }
}

ACTOR GrenadeCasingSpawner
{
	Speed 8
	PROJECTILE
	+NOCLIP
	States
	{
	Spawn:
		TNT1 AA 1 A_CustomMissile("GrenadeCasing",0,0,random(-100,-80),CMF_AIMDIRECTION,random(-15,15))
		Stop
	}
}