// Casings extracted and edited from Brutal Doom by SGT. Mark IV.
// As specified by him, he just asks for credit. Any problems should be pm'd to me.

// Credits to Jekyll Grim Payne/Zer0 for Beautiful Doom too,
// game where the Brutal Doom Stuff seems to be from.

//* I know it's 45ACP instead of 9mm.

// Tommygun Glock and Imbel casing spawner

ACTOR 9mmCaseSpawn
{
	Speed 25
	PROJECTILE
	+NOCLIP
	+CLIENTSIDEONLY
	States
	{
	Spawn:
        TNT1 A 0
		TNT1 A 1 A_CustomMissile("9mmCasing",-5,0,random(-80,-100),2,random(45,80))//-2,0,random(80,100),2,random(40,80))
		Stop
	}
}

//=======================================================//
// 9mm Casings - The actor itself						 //
//=======================================================//

ACTOR 9mmCasing
{ 
	Radius 3
	Height 3
	Speed 9
	Scale 0.1
   +DOOMBOUNCE
   -NOGRAVITY
   +WINDTHRUST
   +CLIENTSIDEONLY
   +MOVEWITHSECTOR
   +MISSILE
   +NOBLOCKMAP
   -DROPOFF
   +NOTELEPORT
   +FORCEXYBILLBOARD
   +NOTDMATCH
   +GHOST
   SeeSound "weapons/casing"
   States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("CasingToggle")==0,"Vanish")
		CAS1 ABCDEFGHIJK 1
		TNT1 A 0
		Loop
	Death:
		TNT1 A 0
		TNT1 A 0 A_Jump(256,"Death1","Death2")
	Death1:
		CAS1 K 250
		Stop
	Death2:
		CAS1 D 250
		Stop
	Vanish:
		TNT1 A 0 A_StopSound(2)
		Stop
	}
}

// Sniper Rifle casing spawner -------------------------------------

ACTOR RifleCaseSpawn
{
	Speed 35
	PROJECTILE
	+NOCLIP
	+CLIENTSIDEONLY
	States
	{
	Spawn:
        TNT1 A 0
		TNT1 A 1 A_CustomMissile("EmptyBrass",-5,0,random(-80,-100),2,random(45,80))//-2,0,random(80,100),2,random(40,80))
		Stop
	}
}

// Sniper Rifle casing actor

ACTOR EmptyBrass
{
   Height 2
   Radius 2
   Speed 6
   Scale 0.1
   +DOOMBOUNCE
   -NOGRAVITY
   +WINDTHRUST
   +CLIENTSIDEONLY
   +MOVEWITHSECTOR
   +MISSILE
   +NOBLOCKMAP
   -DROPOFF
   +NOTELEPORT
   +FORCEXYBILLBOARD
   +NOTDMATCH
   +GHOST
   SeeSound "weapons/rcasing"
   States
   {
   Spawn:
		TNT1 A 0
		TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("CasingToggle")==0,"Vanish")
		CAS3 ABCDEFGH 3
		TNT1 A 0
		Loop
	Death:
		TNT1 A 0 
		TNT1 A 0 A_jump(256,"Death1","Death2")
	Death1:
		CAS3 A 250
		Stop
	Death2:
		CAS3 E 250
		Stop
	Vanish:
		TNT1 A 0 A_StopSound(2)
		Stop
   }
}

// Shotgun Casing spawner -------------------------------------

ACTOR ShotCaseSpawn : RifleCaseSpawn
{
	States
	{
	Spawn:
        TNT1 A 0
		TNT1 A 1 A_CustomMissile("ShotgunCasing",-2,0,random(80,100),2,random(40,80))
		Stop
	}
} 

// Shotgun casing actor

ACTOR ShotgunCasing
{
	Height 12
	Radius 9
	Speed 9
	Scale 0.17
	+DOOMBOUNCE
	-NOGRAVITY
	+WINDTHRUST
	+BOUNCEONACTORS
	+CLIENTSIDEONLY
	+MOVEWITHSECTOR
	+MISSILE
	+NOBLOCKMAP
	-DROPOFF
	+NOTELEPORT
	+FORCEXYBILLBOARD
	+NOTDMATCH
	+GHOST
	SeeSound "weapons/shell"
	States
   {
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("CasingToggle")==0,"Vanish")
		CAS2 ABCDEFGHIJKLMNOP 2
		TNT1 A 0
		Loop
	Death:
      TNT1 A 0 A_Jump(256,"Rest1","Rest2","Rest3","Rest4","Rest5","Rest6","Rest7","Rest8")
      Goto Rest1
    Rest1:
      CAS2 B 250
      TNT1 A 0 A_CheckSight("Vanish")
		Loop
    Rest2:
      CAS2 H 250
      TNT1 A 0 A_CheckSight("Vanish")
		Loop
    Rest3:
      CAS2 P 250
      TNT1 A 0 A_CheckSight("Vanish")
		Loop
    Rest4:
      CAS2 N 250
      TNT1 A 0 A_CheckSight("Vanish")
		Loop
    Rest5:
      CAS2 B 250
      TNT1 A 0 A_CheckSight("Vanish")
		Loop
    Rest6:
      CAS2 H 250
      TNT1 A 0 A_CheckSight("Vanish")
		Loop
    Rest7:
      CAS2 P 250
      TNT1 A 0 A_CheckSight("Vanish")
		Loop
    Rest8:
      TNT1 A 0 A_CheckSight("Vanish")
      CAS2 N 250
		Loop
     Vanish:
		TNT1 A 0 A_StopSound(2)
		Stop

   }
}

// Actors corresponding to Glock and Tommygun 
// empty magazines by Captain J. Thanks a lot!

ACTOR EmptyClip //Actor basis
{
   Height 12
   Radius 9
   Speed 4
   Scale 0.5
   +DOOMBOUNCE
   -NOGRAVITY
   +WINDTHRUST
   +CLIENTSIDEONLY
   +MOVEWITHSECTOR
   +MISSILE
   +NOBLOCKMAP
   -DROPOFF
   +NOTELEPORT
   +FORCEXYBILLBOARD
   +NOTDMATCH
   +GHOST
   SeeSound "weapons/largemagdrop"
   States
   {
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("MagazineToggle")==0,"Vanish")
		ECLI A 7 A_PlaySound("NULL")
		ECLI ABCDEFGH 4
		Goto Spawn+1
	Death:
		ECLI G 250
		Stop
	Vanish:
		TNT1 A 0 A_StopSound(2)
		Stop
   }
}

ACTOR EmptyGlockClip : EmptyClip //Glock empty magazine
{
   SeeSound "weapons/smallmagdrop"
   Scale 0.5
   States
   {
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("MagazineToggle")==0,"Vanish")
		PCLI A 7 A_PlaySound("NULL")
		PCLI ABCDEFGH 4
		Goto Spawn+1
	Death:
		PCLI G 250
		Stop
	Vanish:
		TNT1 A 0 A_StopSound(2)
		Stop
   }
}

ACTOR EmptyTommyClip : EmptyClip //Tommygun empty magazine
{
	SeeSound "weapons/largemagdrop"
	Scale 0.6
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("MagazineToggle")==0,"Vanish")
		TCLI A 5 A_PlaySound("NULL")
		TCLI ABCDEFGH 3
		Goto Spawn+1
	Death:
		TNT1 A 0 A_SetScale(0.3)
		TCLI I 250
		Stop
	Vanish:
		TNT1 A 0 A_StopSound(2)
		Stop
	}
}