ACTOR BulletCasing
{
 radius 2
 speed 18
 mass 8
 gravity 1.8
 scale 0.2
 bouncefactor 0.2
 bouncetype "Doom"
 bouncesound "casing/bullet"
 projectile
 +BOUNCEONWALLS
 +CLIENTSIDEONLY
 -NOGRAVITY
 -NOBLOCKMAP
 -NOTELEPORT
 states
 {
  spawn:
     BCAS A 0 A_SetGravity (0.5)
     BCAS A 0 ThrustThingZ (0, 12, 0, 1)
     BCAS A 0 ThrustThingZ(0,6,1,1)
	 TNT1 A 0 A_SpawnItemEx("MissileSmoke",0,random(-5,5)*0.1,random(-5,5)*0.1,random(-15,0)*0.1,random(-10,10)*0.1,random(-10,10)*0.1,0,0,64)
     BCAS ABCDEFGH 1
     loop
  death:
	TNT1 A 0 A_Jump(256, "d1", "d2", "d3", "d4", "d5", "d6", "d7", "d8")
  d1:
	BCAS A 450
	BCAS AAAAAAAAAAAAAAAA 1 A_FadeOut(0.1, true)
	stop
  d2:
	BCAS B 450
	BCAS BBBBBBBBBBBBBBBB 1 A_FadeOut(0.1, true)
	stop
  d3:
	BCAS C 450
	BCAS CCCCCCCCCCCCCCCC 1 A_FadeOut(0.1, true)
	stop
  d4:
	BCAS D 450
	BCAS DDDDDDDDDDDDDDDD 1 A_FadeOut(0.1, true)
	stop
  d5:
	BCAS E 450
	BCAS EEEEEEEEEEEEEEEE 1 A_FadeOut(0.1, true)
	stop
  d6:
	BCAS F 450
	BCAS FFFFFFFFFFFFFFFF 1 A_FadeOut(0.1, true)
	stop
  d7:
	BCAS G 450
	BCAS GGGGGGGGGGGGGGGG 1 A_FadeOut(0.1, true)
	stop
  d8:
	BCAS H 450
	BCAS HHHHHHHHHHHHHHHH 1 A_FadeOut(0.1, true)
	stop
  }
}

ACTOR ShellCasing : BulletCasing
{
 bouncesound "casing/shell"
 +CLIENTSIDEONLY
 states
 {
  spawn:
     SCAS A 0 A_SetGravity (0.5)
     SCAS A 0 ThrustThingZ (0, 12, 0, 1)
     SCAS A 0 ThrustThingZ(0,6,1,1)
	 TNT1 A 0 A_SpawnItemEx("MissileSmoke",0,random(-5,5)*0.1,random(-5,5)*0.1,random(-15,0)*0.1,random(-10,10)*0.1,random(-10,10)*0.1,0,0,64)
     SCAS ABCDEFGH 1
     loop
  death:
	TNT1 A 0 A_Jump(256, "d1", "d2", "d3", "d4", "d5", "d6", "d7", "d8")
  d1:
	SCAS A 450
	SCAS AAAAAAAAAAAAAAAA 1 A_FadeOut(0.1, true)
	stop
  d2:
	SCAS B 450
	SCAS BBBBBBBBBBBBBBBB 1 A_FadeOut(0.1, true)
	stop
  d3:
	SCAS C 450
	SCAS CCCCCCCCCCCCCCCC 1 A_FadeOut(0.1, true)
	stop
  d4:
	SCAS D 450
	SCAS DDDDDDDDDDDDDDDD 1 A_FadeOut(0.1, true)
	stop
  d5:
	SCAS E 450
	SCAS EEEEEEEEEEEEEEEE 1 A_FadeOut(0.1, true)
	stop
  d6:
	SCAS F 450
	SCAS FFFFFFFFFFFFFFFF 1 A_FadeOut(0.1, true)
	stop
  d7:
	SCAS G 450
	SCAS GGGGGGGGGGGGGGGG 1 A_FadeOut(0.1, true)
	stop
  d8:
	SCAS H 450
	SCAS HHHHHHHHHHHHHHHH 1 A_FadeOut(0.1, true)
	stop
  }
}


//thanks crossfire, if you're looking at this you should totally go check out that mod it rocks
ACTOR BulletCasingSpawner 
{
 radius 1
 height 1
 speed 35
 projectile
 states
 {
  spawn:
    tnt1 a 0 
	tnt1 a 0 A_die
  death:
    tnt1 a 0 A_CustomMissile("BulletCasing", -2 , 6, random(-110, -130), 2, random(8, -8))
	stop
  }
}

ACTOR ShellCasingSpawner
{
 radius 1
 height 1
 speed 35
 projectile
 states
 {
  spawn:
    tnt1 a 0 
	tnt1 a 0 A_die
  death:
    tnt1 a 0 A_CustomMissile("ShellCasing", -18 , 3, random(-110, -130), 2, random(8, -8))
	stop
  }
}

ACTOR SSGShellSpawner
{
	radius 1
	height 1
	Speed 35
	projectile
	States
	{
	Spawn:
		TNT1 A 1
	Death:
		TNT1 A 0 A_CustomMissile("ShellCasing", -8 , 6, random(110, 130), 2, random(8, -8))
		TNT1 A 0 A_CustomMissile("ShellCasing", -8 , 6, random(110, 130), 2, random(8, -8))
		Stop
	}
}

ACTOR BulletPuff2 : BulletPuff
{
 +PUFFONACTORS
 +CLIENTSIDEONLY
 +DONTHARMSPECIES
 +THRUSPECIES
 species "Player"
 alpha 1.0
 attacksound "boolet/boolethitwall"
 seesound "boolet/boolethit"
 meleesound "boolet/boolethit"
 deathsound "boolet/boolethitwall"
 states
 {
  spawn:
	PUFF A 2 bright
	PUFF B 2
  melee:
	PUFF CD 4
	stop
  }
}

actor InvisiPuff : BulletPuff
{
 +CLIENTSIDEONLY
 +BLOODLESSIMPACT
 states
 {
  spawn:
	TNT1 A 0
  Melee:
	TNT1 A 0
	stop
  }
}

ACTOR kickhit : Boolean {}
ACTOR fisthit : Boolean {}

actor fistpuff : bulletpuff2
{
 +PUFFONACTORS
 seesound "weapons/fisthit"
 meleesound "weapons/fisthit"
 deathsound "fist/hit1"
 attacksound "fist/hit1"
 states
 {
  spawn:
	PUFF A 0
	PUFF A 0 A_GiveToTarget("fisthit", 1)
  melee:
	PUFF A 0
	stop
  }
}

ACTOR MissileTrail
{
	Radius 1
	Height 2
	RenderStyle Add
	Scale 0.15
	Projectile
	+RANDOMIZE
	+NOCLIP
	+DONTSPLASH
	+CLIENTSIDEONLY
	+NOINTERACTION
	+NONETID
	States
	{
	Spawn:
		TNT1 A 2
		EMBR A 1 Bright
		Stop
	}
}

ACTOR MissileTrail2 : MissileTrail { Alpha 0.75 Scale 0.125 }
ACTOR MissileTrail3 : MissileTrail { Alpha 0.5 Scale 0.1 }
ACTOR MissileTrail4 : MissileTrail { Alpha 0.25 Scale 0.075 }

ACTOR MissileSmoke
{
	Radius 1
	Height 2
	Speed 6
	RenderStyle Add
	Alpha 0.4
	Scale 0.125
	Projectile
	+CLIENTSIDEONLY
	+NOINTERACTION
	States
	{
	Spawn:
		TNT1 A 2
		SMOK A 0 A_Jump(256,0,1,2,3,4,5,6,7)
		SMOK ABCDEFGHIJKLMNOPQ 1 A_Fadeout(0.02)
		Stop
	}
}

ACTOR BulletSpark : MissileSmoke
{
 alpha 0.8
 speed 4
 scale 0.5
 states
 {
  Spawn:
	TNT1 A 2
	SPRK ABCD 1 BRIGHT A_FadeOut(0.02)
	stop
  }
}

ACTOR GunSpark
{
  +CLIENTSIDEONLY
  Radius 1
  Height 2
  Speed 35
  RenderStyle ADD
  Alpha 0.7
  Projectile
  +DONTSPLASH
  +THRUSPECIES
  -NOGRAVITY
  +CLIENTSIDEONLY
  Gravity 1.6
  Scale 0.3
  BounceFactor 2.0
  BounceFactor 0.65
  States
  {
   Spawn:
     FRAG A 1 BRIGHT
     Loop
   Death:
	 FRAG B 1 BRIGHT A_SetTranslucent(.6,1)
     FRAG BB 1 BRIGHT A_SetTranslucent(.4,1)
     FRAG BBB 1 BRIGHT A_SetTranslucent(.2,1)
     FRAG BBBB 1 BRIGHT A_SetTranslucent(.0,1)
     Stop
   }
}

ACTOR GunSpark2 : GunSpark
{
 +CLIENTSIDEONLY
 Gravity 1.4
 BounceFactor 1.0
 Scale 0.2
 ALPHA 0.6
 states
 {
  Spawn:
	FRAG B 1 BRIGHT
	loop
  Death:
   FRAG AA 1 BRIGHT A_SetTranslucent(.6,1)
   FRAG AAAA 1 BRIGHT A_SetTranslucent(.4,1)
   FRAG AAAAAA 1 BRIGHT A_SetTranslucent(.2,1)
   FRAG AAAAAAAA 1 BRIGHT A_SetTranslucent(.2,1)
   stop
 }
}

ACTOR SpentMagA
{
 radius 2
 speed 18
 mass 8
 gravity 1.8
 bouncefactor 0.2
 bouncetype "Doom"
 bouncesound "mag/bounceA"
 projectile
 +BOUNCEONWALLS
 +CLIENTSIDEONLY
 -NOGRAVITY
 -NOBLOCKMAP
 -NOTELEPORT
 states
 {
  spawn:
     CLP2 A 0 A_SetGravity (0.5)
     CLP2 A 0 ThrustThingZ (0, 12, 0, 1)
     CLP2 A 0 ThrustThingZ(0,6,1,1)
     CLP2 AFBHCIDG 1
     loop
  death:
	CLP2 E 450
	CLP2 EEEEEEEEEEEEEEEE 1 A_FadeOut(0.1, true)
	stop
  }
}

ACTOR SpentMagB : SpentMagA
{
 scale 0.9
 states
 {
  spawn:
     CLP3 A 0 A_SetGravity (0.5)
     CLP3 A 0 ThrustThingZ (0, 12, 0, 1)
     CLP3 A 0 ThrustThingZ(0,6,1,1)
     CLP3 AFBHCIDG 1
     loop
  death:
	 CLP3 E 450
	 CLP3 EEEEEEEEEEEEEEEE 1 A_FadeOut(0.1, true)
	 stop
  }
}

ACTOR SpentMagC : SpentMagA
{
 bouncesound "mag/bounceB"
 scale 0.4
 states
 {
  spawn:
     CLP4 A 0 A_SetGravity (0.5)
     CLP4 A 0 ThrustThingZ (0, 12, 0, 1)
     CLP4 A 0 ThrustThingZ(0,6,1,1)
     CLP4 AGBHEICF 1
     loop
  death:
	 CLP4 D 450
	 CLP4 DDDDDDDDDDDDDDDD 1 A_FadeOut(0.1, true)
	 stop
  }
}

ACTOR AliensBarrel : ExplosiveBarrel replaces ExplosiveBarrel
{
 DeathSound "weapons/pulsegrenadeblow"
 Species Xenomorph
}