ACTOR TK1ParticleAccelerator : Weapon
{
  Weapon.Kickback 100
  Scale 0.1
    Weapon.AmmoUse1 2
	Weapon.AmmoGive1 100
	Weapon.AmmoType1 "TK1Ammo_Cell"
	 Weapon.AmmoUse2 8
	Weapon.AmmoType2 "TK1Ammo_Cell"
	+Weapon.noautofire
  Inventory.Icon "TKA3D0"
  Inventory.PickupMessage "Particle Accelerator"
  Obituary  "%o was Knife'd by %k."
  	Inventory.PickupSound "Turok1/Items/PickupWeapon"
  States
  {
  Spawn:
    TKA2 J -1
    Loop
  Ready:
    TK20 A 2 
    TK20 B 2
    TK20 C 2
    TK20 D 2
    TK20 EFGHIJKLMNOPQRS 2
    TK20 T -1 A_WeaponReady
    Goto Ready+19
  Deselect:
  TNT1 A 0 A_Stopsound(7)
    TK21 U 2
    TK21 VXYZ 2
	TK22 ABCDE 2
    TK21 Y 0 A_Lower
    wait
  Select: 
    TK20 A 0 A_Raise 
    Loop  
  Fire: 
 	TNT1 A 0 A_PlaySound ("Turok1/Weapons/QCFire","Weapon")
    TK20 V 2 A_FireCustomMissile ("TK1ParticleAcceleratorShot", -1, 1, 7, 4)
	TK20 XYZ 2
	TK21 ABCDEFGHIJ 2
    Goto Ready+19
	AltFire:
    TK03 I 0 A_PlaySound ("Turok1/Weapons/QCChange",7,1,TRUE)
    TK21 K 4
    TK21 L 4
    TK21 M 4
	TK21 N 4
	TK21 O 4
	TK21 P 4
	TK21 Q 4
	TK21 R 4
	TK21 S 4
    TK21 T 4 A_Refire     
	TNT1 A 0 A_Stopsound(7)
    TK21 TSRQPONML 4     
    TK21 K 4
    Goto Ready+19
    AltHold:
    TK21 S 6  
    TK21 T 6 A_Refire
    Goto AltRelease
    AltRelease:
	TNT1 A 0 A_Stopsound(7)
 	TNT1 A 0 A_PlaySound ("Turok1/Weapons/QCFire","Weapon")
    TK20 V 2 A_FireCustomMissile ("TK1AltParticleAcceleratorShot", -1, 1, 7, 4)
	TK20 XYZ 2
	TK21 ABCDEFGHIJ 2
    Goto Ready+19
  }
}

actor TK1ParticleAcceleratorShot: Fastprojectile
{
  obituary "%o was melted into a gooey mess by %k's Particle Accelerator."
  radius 8
  height 8
  speed 50
  damage 30
  scale 0.6
  PROJECTILE
  +FORCEXYBILLBOARD
  states
  {
  Spawn:
      TNT1 A 0 A_SpawnItemEx("ParticleAccelerator_trail", 0,               0,              2)
      TNT1 A 0 A_SpawnItemEx("ParticleAccelerator_trail",     momx /-90.0,     -momy /-90.0, 2+    momz /-90.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
      TNT1 A 0 A_SpawnItemEx("ParticleAccelerator_trail", (2 *momx)/-90.0, -(2 *momy)/-90.0, 2+(2 *momz)/-90.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
      TNT1 A 0 A_SpawnItemEx("ParticleAccelerator_trail", (3 *momx)/-90.0, -(3 *momy)/-90.0, 2+(3 *momz)/-90.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
      TNT1 A 0 A_SpawnItemEx("ParticleAccelerator_trail", (4 *momx)/-90.0, -(4 *momy)/-90.0, 2+(4 *momz)/-90.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
      TNT1 A 0 A_SpawnItemEx("ParticleAccelerator_trail", (5 *momx)/-90.0, -(5 *momy)/-90.0, 2+(5 *momz)/-90.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
      TNT1 A 0 A_SpawnItemEx("ParticleAccelerator_trail", (6 *momx)/-90.0, -(6 *momy)/-90.0, 2+(6 *momz)/-90.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
      TNT1 A 0 A_SpawnItemEx("ParticleAccelerator_trail", (7 *momx)/-90.0, -(7 *momy)/-90.0, 2+(7 *momz)/-90.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
	  TNT1 A 0 A_SpawnItemEx("ParticleAccelerator_trail", (8 *momx)/-90.0, -(8 *momy)/-90.0, 2+(8 *momz)/-90.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
      TNT1 A 0 A_SpawnItemEx("ParticleAccelerator_trail", (9 *momx)/-90.0, -(9 *momy)/-90.0, 2+(9 *momz)/-90.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
      TNT1 A 0 A_SpawnItemEx("ParticleAccelerator_trail", (10*momx)/-90.0, -(10*momy)/-90.0, 2+(10*momz)/-90.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
      TNT1 A 0 A_SpawnItemEx("ParticleAccelerator_trail", (11*momx)/-90.0, -(11*momy)/-90.0, 2+(11*momz)/-90.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
      TNT1 A 0 A_SpawnItemEx("ParticleAccelerator_trail", (12*momx)/-90.0, -(12*momy)/-90.0, 2+(12*momz)/-90.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
      TNT1 A 0 A_SpawnItemEx("ParticleAccelerator_trail", (13*momx)/-90.0, -(13*momy)/-90.0, 2+(13*momz)/-90.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
      TNT1 A 0 A_SpawnItemEx("ParticleAccelerator_trail", (14*momx)/-90.0, -(14*momy)/-90.0, 2+(14*momz)/-90.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
      TNT1 A 0 A_SpawnItemEx("ParticleAccelerator_trail", (15*momx)/-90.0, -(15*momy)/-90.0, 2+(15*momz)/-90.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
      TNT1 A 0 A_SpawnItemEx("ParticleAccelerator_trail", (16*momx)/-90.0, -(16*momy)/-90.0, 2+(16*momz)/-90.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
      TNT1 A 0 A_SpawnItemEx("ParticleAccelerator_trail", (17*momx)/-90.0, -(17*momy)/-90.0, 2+(17*momz)/-90.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
      TNT1 A 0 A_SpawnItemEx("ParticleAccelerator_trail", (18*momx)/-90.0, -(18*momy)/-90.0, 2+(18*momz)/-90.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
	  TNT1 A 0 A_SpawnItemEx("ParticleAccelerator_trail", (28*momx)/-70.0, -(28*momy)/-90.0, 2+(28*momz)/-90.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
      TNT1 A 0 A_SpawnItemEx("ParticleAccelerator_trail", (29*momx)/-60.0, -(29*momy)/-90.0, 2+(29*momz)/-90.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
	  TNT1 A 0 A_SpawnItemEx("ParticleAccelerator_trail", (28*momx)/-40.0, -(28*momy)/-90.0, 2+(28*momz)/-90.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
      TNT1 A 0 A_SpawnItemEx("ParticleAccelerator_trail", (29*momx)/-60.0, -(29*momy)/-90.0, 2+(29*momz)/-90.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
      TNT1 A 0 A_SpawnItemEx("ParticleAccelerator_trail", (19*momx)/-90.0, -(19*momy)/-90.0, 2+(19*momz)/-90.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
      TNT1 A 0 A_SpawnItemEx("ParticleAccelerator_trail", (20*momx)/-90.0, -(20*momy)/-90.0, 2+(20*momz)/-90.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
      TNT1 A 0 A_SpawnItemEx("ParticleAccelerator_trail", (21*momx)/-90.0, -(21*momy)/-90.0, 2+(21*momz)/-90.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
      TNT1 A 0 A_SpawnItemEx("ParticleAccelerator_trail", (22*momx)/-90.0, -(22*momy)/-90.0, 2+(22*momz)/-90.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
      TNT1 A 0 A_SpawnItemEx("ParticleAccelerator_trail", (23*momx)/-90.0, -(23*momy)/-90.0, 2+(23*momz)/-90.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
      TNT1 A 0 A_SpawnItemEx("ParticleAccelerator_trail", (24*momx)/-90.0, -(24*momy)/-90.0, 2+(24*momz)/-90.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
      TNT1 A 0 A_SpawnItemEx("ParticleAccelerator_trail", (25*momx)/-90.0, -(25*momy)/-90.0, 2+(25*momz)/-90.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
      TNT1 A 0 A_SpawnItemEx("ParticleAccelerator_trail", (26*momx)/-90.0, -(26*momy)/-90.0, 2+(26*momz)/-90.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
      TNT1 A 0 A_SpawnItemEx("ParticleAccelerator_trail", (27*momx)/-90.0, -(27*momy)/-90.0, 2+(27*momz)/-90.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
      TNT1 A 0 A_SpawnItemEx("ParticleAccelerator_trail", (28*momx)/-90.0, -(28*momy)/-90.0, 2+(28*momz)/-90.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
      TNT1 A 0 A_SpawnItemEx("ParticleAccelerator_trail", (29*momx)/-90.0, -(29*momy)/-90.0, 2+(29*momz)/-90.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
      TNT1 A 1 BRIGHT
      Loop
  Death:
     TNT1 A 0 A_SpawnItemEx("TK1ParticleAcceleratorShotBoom",0,0,0,0,0,0,0,128,0)
    TNT1 A 0
    TNT1 A 5 A_PlaySound("Turok1/Weapons/QCImpact")
    stop
  XDeath:  
    TNT1 A 0
    TNT1 A 0 A_SpawnItemEx("TK1ParticleAcceleratorShotBoom",0,0,0,0,0,0,0,128,0)
    TNT1 A 5 A_PlaySound("Turok1/Weapons/QCImpact")
    stop
  }
}

actor ParticleAccelerator_trail
{
  Scale 0.3
  +NOINTERACTION
  +FORCEXYBILLBOARD
  +CLIENTSIDEONLY
  States
  {
	Spawn:
	  TF04 B 2 BRIGHT
	  Stop
  }
}

ACTOR TK1ParticleAcceleratorShotBoom
{   
   Radius 2
   Height 2
   Speed 0
   PROJECTILE
   RENDERSTYLE Add
     Scale 0.6
   //ALPHA 0.50
   +FORCEXYBILLBOARD
   States
   {
   Spawn:
      TF04 CCCCC 2 bright
      stop
   }
} 

actor TK1AltParticleAcceleratorShot: Fastprojectile
{
  obituary "%k overcharged his Particle Accelerator in %o's face."
  radius 8
  height 8
  speed 50
  damage 90
  scale 0.6
  PROJECTILE
  +FORCEXYBILLBOARD
  states
  {
  Spawn:
      TNT1 A 0 A_SpawnItemEx("AltParticleAccelerator_trail", 0,               0,              2)
      TNT1 A 0 A_SpawnItemEx("AltParticleAccelerator_trail",     momx /-90.0,     -momy /-90.0, 2+    momz /-90.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
      TNT1 A 0 A_SpawnItemEx("AltParticleAccelerator_trail", (2 *momx)/-90.0, -(2 *momy)/-90.0, 2+(2 *momz)/-90.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
      TNT1 A 0 A_SpawnItemEx("AltParticleAccelerator_trail", (3 *momx)/-90.0, -(3 *momy)/-90.0, 2+(3 *momz)/-90.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
      TNT1 A 0 A_SpawnItemEx("AltParticleAccelerator_trail", (4 *momx)/-90.0, -(4 *momy)/-90.0, 2+(4 *momz)/-90.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
      TNT1 A 0 A_SpawnItemEx("AltParticleAccelerator_trail", (5 *momx)/-90.0, -(5 *momy)/-90.0, 2+(5 *momz)/-90.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
      TNT1 A 0 A_SpawnItemEx("AltParticleAccelerator_trail", (6 *momx)/-90.0, -(6 *momy)/-90.0, 2+(6 *momz)/-90.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
      TNT1 A 0 A_SpawnItemEx("AltParticleAccelerator_trail", (7 *momx)/-90.0, -(7 *momy)/-90.0, 2+(7 *momz)/-90.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
	  TNT1 A 0 A_SpawnItemEx("AltParticleAccelerator_trail", (8 *momx)/-90.0, -(8 *momy)/-90.0, 2+(8 *momz)/-90.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
      TNT1 A 0 A_SpawnItemEx("AltParticleAccelerator_trail", (9 *momx)/-90.0, -(9 *momy)/-90.0, 2+(9 *momz)/-90.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
      TNT1 A 0 A_SpawnItemEx("AltParticleAccelerator_trail", (10*momx)/-90.0, -(10*momy)/-90.0, 2+(10*momz)/-90.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
      TNT1 A 0 A_SpawnItemEx("AltParticleAccelerator_trail", (11*momx)/-90.0, -(11*momy)/-90.0, 2+(11*momz)/-90.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
      TNT1 A 0 A_SpawnItemEx("AltParticleAccelerator_trail", (12*momx)/-90.0, -(12*momy)/-90.0, 2+(12*momz)/-90.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
      TNT1 A 0 A_SpawnItemEx("AltParticleAccelerator_trail", (13*momx)/-90.0, -(13*momy)/-90.0, 2+(13*momz)/-90.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
      TNT1 A 0 A_SpawnItemEx("AltParticleAccelerator_trail", (14*momx)/-90.0, -(14*momy)/-90.0, 2+(14*momz)/-90.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
      TNT1 A 0 A_SpawnItemEx("AltParticleAccelerator_trail", (15*momx)/-90.0, -(15*momy)/-90.0, 2+(15*momz)/-90.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
      TNT1 A 0 A_SpawnItemEx("AltParticleAccelerator_trail", (16*momx)/-90.0, -(16*momy)/-90.0, 2+(16*momz)/-90.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
      TNT1 A 0 A_SpawnItemEx("AltParticleAccelerator_trail", (17*momx)/-90.0, -(17*momy)/-90.0, 2+(17*momz)/-90.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
      TNT1 A 0 A_SpawnItemEx("AltParticleAccelerator_trail", (18*momx)/-90.0, -(18*momy)/-90.0, 2+(18*momz)/-90.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
	  TNT1 A 0 A_SpawnItemEx("AltParticleAccelerator_trail", (28*momx)/-70.0, -(28*momy)/-90.0, 2+(28*momz)/-90.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
      TNT1 A 0 A_SpawnItemEx("AltParticleAccelerator_trail", (29*momx)/-60.0, -(29*momy)/-90.0, 2+(29*momz)/-90.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
	  TNT1 A 0 A_SpawnItemEx("AltParticleAccelerator_trail", (28*momx)/-40.0, -(28*momy)/-90.0, 2+(28*momz)/-90.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
      TNT1 A 0 A_SpawnItemEx("AltParticleAccelerator_trail", (29*momx)/-60.0, -(29*momy)/-90.0, 2+(29*momz)/-90.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
      TNT1 A 0 A_SpawnItemEx("AltParticleAccelerator_trail", (19*momx)/-90.0, -(19*momy)/-90.0, 2+(19*momz)/-90.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
      TNT1 A 0 A_SpawnItemEx("AltParticleAccelerator_trail", (20*momx)/-90.0, -(20*momy)/-90.0, 2+(20*momz)/-90.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
      TNT1 A 0 A_SpawnItemEx("AltParticleAccelerator_trail", (21*momx)/-90.0, -(21*momy)/-90.0, 2+(21*momz)/-90.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
      TNT1 A 0 A_SpawnItemEx("AltParticleAccelerator_trail", (22*momx)/-90.0, -(22*momy)/-90.0, 2+(22*momz)/-90.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
      TNT1 A 0 A_SpawnItemEx("AltParticleAccelerator_trail", (23*momx)/-90.0, -(23*momy)/-90.0, 2+(23*momz)/-90.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
      TNT1 A 0 A_SpawnItemEx("AltParticleAccelerator_trail", (24*momx)/-90.0, -(24*momy)/-90.0, 2+(24*momz)/-90.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
      TNT1 A 0 A_SpawnItemEx("AltParticleAccelerator_trail", (25*momx)/-90.0, -(25*momy)/-90.0, 2+(25*momz)/-90.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
      TNT1 A 0 A_SpawnItemEx("AltParticleAccelerator_trail", (26*momx)/-90.0, -(26*momy)/-90.0, 2+(26*momz)/-90.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
      TNT1 A 0 A_SpawnItemEx("AltParticleAccelerator_trail", (27*momx)/-90.0, -(27*momy)/-90.0, 2+(27*momz)/-90.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
      TNT1 A 0 A_SpawnItemEx("AltParticleAccelerator_trail", (28*momx)/-90.0, -(28*momy)/-90.0, 2+(28*momz)/-90.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
      TNT1 A 0 A_SpawnItemEx("AltParticleAccelerator_trail", (29*momx)/-90.0, -(29*momy)/-90.0, 2+(29*momz)/-90.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
      TNT1 A 1 BRIGHT
      Loop
  Death:
     TNT1 A 0 A_SpawnItemEx("TK1ParticleAcceleratorShotBoom",0,0,0,0,0,0,0,128,0)
    TNT1 A 0
    TNT1 A 5 A_PlaySound("Turok1/Weapons/QCImpact")
    stop
  XDeath:  
    TNT1 A 0
    TNT1 A 0 A_SpawnItemEx("TK1ParticleAcceleratorShotBoom",0,0,0,0,0,0,0,128,0)
    TNT1 A 5 A_PlaySound("Turok1/Weapons/QCImpact")
    stop
  }
}

actor AltParticleAccelerator_trail
{
  Scale 0.3
  +NOINTERACTION
  +FORCEXYBILLBOARD
  +CLIENTSIDEONLY
  States
  {
	Spawn:
	  TF04 A 2 BRIGHT
	  Stop
  }
}
