ACTOR PulseTracer : FastProjectile
{
    Radius 3
    Height 3
    Speed 280
	scale 0.2
    Damage (Random(5,15))
    SeeSound None
    DeathSound None
    Decal BulletChip
    Projectile
    +THRUGHOST
	+BLOODSPLATTER
    +FORCEXYBILLBOARD
	+THRUSPECIES
	+DONTHARMSPECIES
    +DONTHURTSPECIES
	damagetype "PulseRifle"
	Species "Player"
    States
    {
    Spawn:
        BOOL A 1
        BOOL A 1 A_SpawnItemEx("PulseTrail", 0,               0,              2)
        TNT1 A 0 A_SpawnItemEx("PulseTrail", (2 *momx)/-35.0, -(2 *momy)/-35.0, 2+(2 *momz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
        TNT1 A 0 A_SpawnItemEx("PulseTrail", (4 *momx)/-35.0, -(4 *momy)/-35.0, 2+(4 *momz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
        TNT1 A 0 A_SpawnItemEx("PulseTrail", (6 *momx)/-35.0, -(6 *momy)/-35.0, 2+(6 *momz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
        TNT1 A 0 A_SpawnItemEx("PulseTrail", (8 *momx)/-35.0, -(8 *momy)/-35.0, 2+(8 *momz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
        TNT1 A 0 A_SpawnItemEx("PulseTrail", (10*momx)/-35.0, -(10*momy)/-35.0, 2+(10*momz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
        TNT1 A 0 A_SpawnItemEx("PulseTrail", (12*momx)/-35.0, -(12*momy)/-35.0, 2+(12*momz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
        TNT1 A 0 A_SpawnItemEx("PulseTrail", (14*momx)/-35.0, -(14*momy)/-35.0, 2+(14*momz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
        TNT1 A 0 A_SpawnItemEx("PulseTrail", (16*momx)/-35.0, -(16*momy)/-35.0, 2+(16*momz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
        TNT1 A 0 A_SpawnItemEx("PulseTrail", (18*momx)/-35.0, -(18*momy)/-35.0, 2+(18*momz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
        TNT1 A 0 A_SpawnItemEx("PulseTrail", (20*momx)/-35.0, -(20*momy)/-35.0, 2+(20*momz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
        TNT1 A 0 A_SpawnItemEx("PulseTrail", (22*momx)/-35.0, -(22*momy)/-35.0, 2+(22*momz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
        TNT1 A 0 A_SpawnItemEx("PulseTrail", (24*momx)/-35.0, -(24*momy)/-35.0, 2+(24*momz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
        TNT1 A 0 A_SpawnItemEx("PulseTrail", (26*momx)/-35.0, -(26*momy)/-35.0, 2+(26*momz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
        TNT1 A 0 A_SpawnItemEx("PulseTrail", (28*momx)/-35.0, -(28*momy)/-35.0, 2+(28*momz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
        TNT1 A 0 A_SpawnItemEx("PulseTrail", (30*momx)/-35.0, -(30*momy)/-35.0, 2+(30*momz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
        TNT1 A 0 A_SpawnItemEx("PulseTrail", (32*momx)/-35.0, -(32*momy)/-35.0, 2+(32*momz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
        TNT1 A 0 A_SpawnItemEx("PulseTrail", (34*momx)/-35.0, -(34*momy)/-35.0, 2+(34*momz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
        TNT1 A 0 A_SpawnItemEx("PulseTrail", (36*momx)/-35.0, -(36*momy)/-35.0, 2+(36*momz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
        TNT1 A 0 A_SpawnItemEx("PulseTrail", (38*momx)/-35.0, -(38*momy)/-35.0, 2+(38*momz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
        TNT1 A 0 A_SpawnItemEx("PulseTrail", (40*momx)/-35.0, -(40*momy)/-35.0, 2+(40*momz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
        Loop
	death:
		TNT1 A 0 A_PlaySound("boolet/boolethitwall")
		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)
		BOEX ABC 1 BRIGHT
		stop
	xdeath:
		TNT1 A 0 A_PlaySound("boolet/boolethit")
		TNT1 A 0 A_Explode(2, 2)
		stop
	crash:
		TNT1 A 0 A_PlaySound("boolet/boolethitwall")
		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)
		BOEX ABC 1 BRIGHT
		stop
    }
}

actor PulseTrail
{
    Scale 0.175
    RenderStyle Add
    Alpha 0.9
    +NOINTERACTION
    +CLIENTSIDEONLY
    States
    {
    Spawn:
        TRCR A 2 BRIGHT
        stop
    }
}

actor VP70TRacer : PulseTracer
{
 Speed 230
 Damage (Random(1,15))
 damagetype "None"
 Species "Player"
 +THRUSPECIES
 states
 {
  Spawn:
	TNT1 A 0
    TNT1 A 1 A_SpawnItemEx("RedTrail", 0,               0,              2)
    TNT1 A 0 A_SpawnItemEx("RedTrail", (2 *momx)/-35.0, -(2 *momy)/-35.0, 2+(2 *momz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
    TNT1 A 0 A_SpawnItemEx("RedTrail", (4 *momx)/-35.0, -(4 *momy)/-35.0, 2+(4 *momz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
    TNT1 A 0 A_SpawnItemEx("RedTrail", (6 *momx)/-35.0, -(6 *momy)/-35.0, 2+(6 *momz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
	TNT1 A 0 A_SpawnItemEx("RedTrail", (8 *momx)/-35.0, -(8 *momy)/-35.0, 2+(8 *momz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
	TNT1 A 0 A_SpawnItemEx("RedTrail", (10*momx)/-35.0, -(10*momy)/-35.0, 2+(10*momz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
	TNT1 A 0 A_SpawnItemEx("RedTrail", (12*momx)/-35.0, -(12*momy)/-35.0, 2+(12*momz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
	TNT1 A 0 A_SpawnItemEx("RedTrail", (14*momx)/-35.0, -(14*momy)/-35.0, 2+(14*momz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
	TNT1 A 0 A_SpawnItemEx("RedTrail", (16*momx)/-35.0, -(16*momy)/-35.0, 2+(16*momz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
	TNT1 A 0 A_SpawnItemEx("RedTrail", (18*momx)/-35.0, -(18*momy)/-35.0, 2+(18*momz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
	TNT1 A 0 A_SpawnItemEx("RedTrail", (20*momx)/-35.0, -(20*momy)/-35.0, 2+(20*momz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
	TNT1 A 0 A_SpawnItemEx("RedTrail", (22*momx)/-35.0, -(22*momy)/-35.0, 2+(22*momz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
	TNT1 A 0 A_SpawnItemEx("RedTrail", (24*momx)/-35.0, -(24*momy)/-35.0, 2+(24*momz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
	TNT1 A 0 A_SpawnItemEx("RedTrail", (26*momx)/-35.0, -(26*momy)/-35.0, 2+(26*momz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
	TNT1 A 0 A_SpawnItemEx("RedTrail", (28*momx)/-35.0, -(28*momy)/-35.0, 2+(28*momz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
	TNT1 A 0 A_SpawnItemEx("RedTrail", (30*momx)/-35.0, -(30*momy)/-35.0, 2+(30*momz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
	TNT1 A 0 A_SpawnItemEx("RedTrail", (32*momx)/-35.0, -(32*momy)/-35.0, 2+(32*momz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
	TNT1 A 0 A_SpawnItemEx("RedTrail", (34*momx)/-35.0, -(34*momy)/-35.0, 2+(34*momz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
	TNT1 A 0 A_SpawnItemEx("RedTrail", (36*momx)/-35.0, -(36*momy)/-35.0, 2+(36*momz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
	TNT1 A 0 A_SpawnItemEx("RedTrail", (38*momx)/-35.0, -(38*momy)/-35.0, 2+(38*momz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
	TNT1 A 0 A_SpawnItemEx("RedTrail", (40*momx)/-35.0, -(40*momy)/-35.0, 2+(40*momz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
    Loop
  death:
	TNT1 A 0 A_PlaySound("boolet/boolethitwall")
	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)
	TNT1 A 0 A_SpawnItemEx("BulletSpark",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)
	TNT1 A 0 A_SpawnItemEx("BulletSpark",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)
	PUFF ABCD 1 BRIGHT
	stop
  xdeath:
	TNT1 A 0 A_PlaySound("boolet/boolethit")
	stop
  crash:
	TNT1 A 0 A_PlaySound("boolet/boolethitwall")
	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)
	TNT1 A 0 A_SpawnItemEx("BulletSpark",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)
	TNT1 A 0 A_SpawnItemEx("BulletSpark",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)
	PUFF ABCD 1 BRIGHT
	stop
  }
}

actor RedTrail :PulseTrail
{
    States
    {
    Spawn:
        BAL1 A 2 BRIGHT
        stop
    }
}

actor UziTracer : VP70TRacer
{
 Speed 210
 Damage (Random(2,9))
 Species "Player"
 +THRUSPECIES
}

actor ShotgunPellet : VP70TRacer
{
 Speed 185
 Damage (Random(4,15))
 damagetype "PulseRifle"
 Species "Player"
 +THRUSPECIES
}

actor SmartTracer : PulseTracer
{
 Speed 320
 scale 0.2
 Damage (Random(28,38))
 damagetype "PulseRifle"
 Species "Player"
 +THRUSPECIES
 +DONTHARMSPECIES
 +DONTHURTSPECIES
 states
 {
  xdeath:
	TNT1 A 0 A_PlaySound("boolet/boolethit")
	TNT1 A 0 A_Explode(4, 2)
	stop
  }
}