actor PlasmaCannonAmmo : Ammo 19352
{
  inventory.pickupmessage "$D3D_PLASMACANNONAMMO"
  inventory.amount 20
  inventory.maxamount 200
  inventory.icon "TNT1A0"
  ammo.backpackamount 20
  ammo.backpackmaxamount 400
  scale 0.5
  +INVENTORY.IGNORESKILL
  states
  {
  Spawn:
    BATT ABC 5 BRIGHT
    loop
  }
}

actor "Plasma Cannon" : DefaultDukeWeapon 19353
{
  Weapon.SelectionOrder 17
  Weapon.AmmoUse 1
  Weapon.AmmoGive 20
  Weapon.AmmoType "PlasmaCannonAmmo"
  Obituary "%o was perforated by %k's plasma cannon."
  Inventory.Pickupmessage "$D3D_PLASMACANNON"
  Inventory.PickupSound "misc/backpack"
  weapon.upsound "chaingun/select"
  scale 0.5
  +NOALERT
  Tag " "
  States
  {
  RReady2:
    PLCN A 1 A_WeaponReady
    goto RReady
  NoAmmo:
    PLCN A 5 A_WeaponReady(WRF_NOFIRE)
    PLCN A 5 A_WeaponReady
    TNT1 A 0 A_JumpIfInventory("PlasmaCannonAmmo",1,"RReady")
    loop
  Deselect:
    PLCN A 0
    goto Super::Deselect
  Select:
    PLCN A 0
    goto Super::Select
  Fire:
    TNT1 A 0
    TNT1 A 0 A_JumpIfInventory("PlasmaCannonAmmo", 1, 2)
    PLCN A 10 A_PlaySound("DRYFIRE", 1)
    Goto NoAmmo
    TNT1 A 0 A_GunFlash
    PLCN B 1 bright A_PlayWeaponSound("robotlame/shoot")
    PLCN C 1 bright
    PLCN D 1 bright A_FireCustomMissile("MonsterAlert",0,0,0)
    TNT1 A 0 A_ZoomFactorD3D("d3d_rplasmacannon",0.99)
    PLCN D 1 bright A_FireCustomMissile("DukePlasmaBall",0,1,5,-4)
    TNT1 A 0 A_ZoomFactor(1.0)
    PLCN E 1 bright
    TNT1 A 0 A_TakeInventory("Waiting",10)
    PLCN E 1 bright
    TNT1 A 0 A_Refire
    Goto RReady
  AltFire:
    TNT1 A 0
    TNT1 A 0 A_JumpIfInventory("PlasmaCannonAmmo", 10, 2)
    PLCN A 10 A_PlaySound("DRYFIRE", 1)
    Goto NoAmmo
    PLCN A 1
    TNT1 A 0 A_GunFlash
    PLCN B 1 bright A_PlayWeaponSound("weapons/laser")
    PLCN B 4 bright
    PLCN C 1 bright
    PLCN C 1 bright
    PLCN D 1 bright A_FireCustomMissile("MonsterAlert",0,0,0)
    TNT1 A 0 A_ZoomFactorD3D("d3d_rplasmacannon",0.98)
    PLCN D 1 bright A_FireCustomMissile("DukePlasmaLaser",0,0,5,-4)
    TNT1 A 0 A_TakeInventory("PlasmaCannonAmmo", 10)
    TNT1 A 0 A_ZoomFactor(1.0)
    PLCN E 1 bright
    TNT1 A 0 A_TakeInventory("Waiting",10)
    PLCN E 1 bright
    PLCN A 4
    Goto RReady
  Flash:
  AltFlash:
    TNT1 AAAAAA 1 A_FireCustomMissile("MuzzleFlashFreezer",0,0,random[RIDFX](-2,2))
    stop
  Spawn:
    PLCP A -1
    Stop
  }
}

actor DukePlasmaBall : ZMissileP
{
  PROJECTILE
  Damage (30)
  Speed 50
  Height 5
  Radius 5
  Scale 0.35
  Renderstyle Add
  DeathSound "dukinator/pain"
  Alpha 1.0
  decal DukeSmallScorch
  +RANDOMIZE
  damagetype "Plasma"
  +THRUSPECIES
  Species "Dukes"
  +THRUGHOST
  States
  {
  Spawn:
    TNT1 A 0 NoDelay A_Jump(128,"Spawn3")
  Spawn2:
    TNT1 A 0 A_SpawnItemEx("DukePlasmaBallTrail2", (6 *momx)/-35.0, -(6 *momy)/-35.0, 2+(6 *momz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
    LPLB A 1 Bright {A_SpawnItem("BlueFlare22Small",0,0); A_SpawnItemEx("DukePlasmaBallTrail1", (3 *momx)/-35.0, -(3 *momy)/-35.0, 2+(3 *momz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE);}
    TNT1 A 0 A_SpawnItemEx("DukePlasmaBallTrail3", (9 *momx)/-35.0, -(9 *momy)/-35.0, 2+(9 *momz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
    LPLB A 1 Bright {A_SpawnItem("BlueFlare22Small",0,0); A_SpawnItemEx("DukePlasmaBallTrail2", (6 *momx)/-35.0, -(6 *momy)/-35.0, 2+(6 *momz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE);}
    TNT1 A 0 A_SpawnItemEx("DukePlasmaBallTrail4", (12*momx)/-35.0, -(12*momy)/-35.0, 2+(12*momz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
    LPLB B 1 Bright {A_SpawnItem("BlueFlare22Small",0,0); A_SpawnItemEx("DukePlasmaBallTrail3", (9 *momx)/-35.0, -(9 *momy)/-35.0, 2+(9 *momz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE);}
    TNT1 A 0 A_SpawnItemEx("DukePlasmaBallTrail1", (3 *momx)/-35.0, -(3 *momy)/-35.0, 2+(3 *momz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
    LPLB B 1 Bright {A_SpawnItem("BlueFlare22Small",0,0); A_SpawnItemEx("DukePlasmaBallTrail4", (12*momx)/-35.0, -(12*momy)/-35.0, 2+(12*momz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE);}
    loop
  Spawn3:
    TNT1 A 0 A_SpawnItemEx("DukePlasmaBallTrail2", (6 *momx)/-35.0, -(6 *momy)/-35.0, 2+(6 *momz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
    LPLB B 1 Bright {A_SpawnItem("BlueFlare22Small",0,0); A_SpawnItemEx("DukePlasmaBallTrail1", (3 *momx)/-35.0, -(3 *momy)/-35.0, 2+(3 *momz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE);}
    TNT1 A 0 A_SpawnItemEx("DukePlasmaBallTrail3", (9 *momx)/-35.0, -(9 *momy)/-35.0, 2+(9 *momz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
    LPLB B 1 Bright {A_SpawnItem("BlueFlare22Small",0,0); A_SpawnItemEx("DukePlasmaBallTrail2", (6 *momx)/-35.0, -(6 *momy)/-35.0, 2+(6 *momz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE);}
    TNT1 A 0 A_SpawnItemEx("DukePlasmaBallTrail4", (12*momx)/-35.0, -(12*momy)/-35.0, 2+(12*momz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
    LPLB A 1 Bright {A_SpawnItem("BlueFlare22Small",0,0); A_SpawnItemEx("DukePlasmaBallTrail3", (9 *momx)/-35.0, -(9 *momy)/-35.0, 2+(9 *momz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE);}
    TNT1 A 0 A_SpawnItemEx("DukePlasmaBallTrail1", (3 *momx)/-35.0, -(3 *momy)/-35.0, 2+(3 *momz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
    LPLB A 1 Bright {A_SpawnItem("BlueFlare22Small",0,0); A_SpawnItemEx("DukePlasmaBallTrail4", (12*momx)/-35.0, -(12*momy)/-35.0, 2+(12*momz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE);}
    loop
  Death:
    TNT1 AAAAA 0 A_CustomMissile ("BluePlasmaParticle", 0, 0, random[RIDFX](0, 360), 2, random[RIDFX](0, 360))
    TNT1 A 0 A_Explode(15,70,0)
    LPLB C 1 {A_SpawnItem("BlueFlare22",0,0); A_FadeOut(0.075);}
    LPLB C 1 {A_SpawnItem("BlueFlare22",0,0); A_FadeOut(0.075);}
    LPLB C 1 {A_SpawnItem("BlueFlare22",0,0); A_FadeOut(0.075);}
    TNT1 AAA 0 A_CustomMissile ("OldschoolRocketSmokeTrail3", 2, 0, random[RIDFX](0, 360), 2, random[RIDFX](0, 360))
    LPLB D 1 {A_SpawnItem("BlueFlare22",0,0); A_FadeOut(0.075);}
    LPLB D 1 {A_SpawnItem("BlueFlare22",0,0); A_FadeOut(0.075);}
    LPLB D 1 {A_SpawnItem("BlueFlare22",0,0); A_FadeOut(0.075);}
    LPLB C 1 A_FadeOut(0.075)
    LPLB C 1 A_FadeOut(0.075)
    LPLB C 1 A_FadeOut(0.075)
    LPLB D 1 A_FadeOut(0.075)
    LPLB D 1 A_FadeOut(0.075)
    LPLB D 1 A_FadeOut(0.075)
    Stop
  }
}

ACTOR DukePlasmaBallTrail1
{
  +THRUACTORS
  +CLIENTSIDEONLY
  +NOBLOCKMAP
  +NOGRAVITY
  Renderstyle Add
  Alpha 0.99
  Scale 0.35
  +MISSILE
  +THRUGHOST
  States
  {
  Spawn:
    TNT1 A 0 NoDelay A_Jump(128,"Spawn2")
    LPLB A 1 BRIGHT
    Stop
  Spawn2:
    LPLB B 1 BRIGHT
    Stop
  }
}

ACTOR DukePlasmaBallTrail2 : DukePlasmaBallTrail1
{
  Alpha 0.6
  States
  {
  Spawn:
    TNT1 A 0 NoDelay A_Jump(128,"Spawn2")
    LPLB A 1 BRIGHT
    Stop
  Spawn2:
    LPLB B 1 BRIGHT
    Stop
  }
}

ACTOR DukePlasmaBallTrail3 : DukePlasmaBallTrail1
{
  Alpha 0.3
  States
  {
  Spawn:
    TNT1 A 0 NoDelay A_Jump(128,"Spawn2")
    LPLB A 1 BRIGHT
    Stop
  Spawn2:
    LPLB B 1 BRIGHT
    Stop
  }
}

ACTOR DukePlasmaBallTrail4 : DukePlasmaBallTrail1
{
  Alpha 0.1
  States
  {
  Spawn:
    TNT1 A 0 NoDelay A_Jump(128,"Spawn2")
    LPLB A 1 BRIGHT
    Stop
  Spawn2:
    LPLB B 1 BRIGHT
    Stop
  }
}

actor RobotPlasmaBall : ZMissile
{
  PROJECTILE
  Damage (10)
  Speed 30
  Height 5
  Radius 5
  Scale 0.35
  Renderstyle Add
  DeathSound "dukinator/pain"
  Alpha 1.0
  decal DukeSmallScorch
  +RANDOMIZE
  damagetype "Plasma"
  -THRUSPECIES
  Species "none"
  States
  {
  Spawn:
    TNT1 A 0 NoDelay A_Jump(128,"Spawn3")
  Spawn2:
    TNT1 A 0 A_SpawnItemEx("DukePlasmaBallTrail2", (6 *momx)/-35.0, -(6 *momy)/-35.0, 2+(6 *momz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
    LPLB A 1 Bright {A_SpawnItem("BlueFlare22Small",0,0); A_SpawnItemEx("DukePlasmaBallTrail1", (3 *momx)/-35.0, -(3 *momy)/-35.0, 2+(3 *momz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE);}
    TNT1 A 0 A_SpawnItemEx("DukePlasmaBallTrail3", (9 *momx)/-35.0, -(9 *momy)/-35.0, 2+(9 *momz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
    LPLB A 1 Bright {A_SpawnItem("BlueFlare22Small",0,0); A_SpawnItemEx("DukePlasmaBallTrail2", (6 *momx)/-35.0, -(6 *momy)/-35.0, 2+(6 *momz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE);}
    TNT1 A 0 A_SpawnItemEx("DukePlasmaBallTrail4", (12*momx)/-35.0, -(12*momy)/-35.0, 2+(12*momz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
    LPLB B 1 Bright {A_SpawnItem("BlueFlare22Small",0,0); A_SpawnItemEx("DukePlasmaBallTrail3", (9 *momx)/-35.0, -(9 *momy)/-35.0, 2+(9 *momz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE);}
    TNT1 A 0 A_SpawnItemEx("DukePlasmaBallTrail1", (3 *momx)/-35.0, -(3 *momy)/-35.0, 2+(3 *momz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
    LPLB B 1 Bright {A_SpawnItem("BlueFlare22Small",0,0); A_SpawnItemEx("DukePlasmaBallTrail4", (12*momx)/-35.0, -(12*momy)/-35.0, 2+(12*momz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE);}
    loop
  Spawn3:
    TNT1 A 0 A_SpawnItemEx("DukePlasmaBallTrail2", (6 *momx)/-35.0, -(6 *momy)/-35.0, 2+(6 *momz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
    LPLB B 1 Bright {A_SpawnItem("BlueFlare22Small",0,0); A_SpawnItemEx("DukePlasmaBallTrail1", (3 *momx)/-35.0, -(3 *momy)/-35.0, 2+(3 *momz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE);}
    TNT1 A 0 A_SpawnItemEx("DukePlasmaBallTrail3", (9 *momx)/-35.0, -(9 *momy)/-35.0, 2+(9 *momz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
    LPLB B 1 Bright {A_SpawnItem("BlueFlare22Small",0,0); A_SpawnItemEx("DukePlasmaBallTrail2", (6 *momx)/-35.0, -(6 *momy)/-35.0, 2+(6 *momz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE);}
    TNT1 A 0 A_SpawnItemEx("DukePlasmaBallTrail4", (12*momx)/-35.0, -(12*momy)/-35.0, 2+(12*momz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
    LPLB A 1 Bright {A_SpawnItem("BlueFlare22Small",0,0); A_SpawnItemEx("DukePlasmaBallTrail3", (9 *momx)/-35.0, -(9 *momy)/-35.0, 2+(9 *momz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE);}
    TNT1 A 0 A_SpawnItemEx("DukePlasmaBallTrail1", (3 *momx)/-35.0, -(3 *momy)/-35.0, 2+(3 *momz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
    LPLB A 1 Bright {A_SpawnItem("BlueFlare22Small",0,0); A_SpawnItemEx("DukePlasmaBallTrail4", (12*momx)/-35.0, -(12*momy)/-35.0, 2+(12*momz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE);}
    loop
  Death:
    TNT1 AAAAA 0 A_CustomMissile ("BluePlasmaParticle", 0, 0, random[RIDFX](0, 360), 2, random[RIDFX](0, 360))
    TNT1 A 0 A_Explode(5,70,0)
    LPLB C 1 {A_SpawnItem("BlueFlare22",0,0); A_FadeOut(0.075);}
    LPLB C 1 {A_SpawnItem("BlueFlare22",0,0); A_FadeOut(0.075);}
    LPLB C 1 {A_SpawnItem("BlueFlare22",0,0); A_FadeOut(0.075);}
    TNT1 AAA 0 A_CustomMissile ("OldschoolRocketSmokeTrail3", 2, 0, random[RIDFX](0, 360), 2, random[RIDFX](0, 360))
    LPLB D 1 {A_SpawnItem("BlueFlare22",0,0); A_FadeOut(0.075);}
    LPLB D 1 {A_SpawnItem("BlueFlare22",0,0); A_FadeOut(0.075);}
    LPLB D 1 {A_SpawnItem("BlueFlare22",0,0); A_FadeOut(0.075);}
    LPLB C 1 A_FadeOut(0.075)
    LPLB C 1 A_FadeOut(0.075)
    LPLB C 1 A_FadeOut(0.075)
    LPLB D 1 A_FadeOut(0.075)
    LPLB D 1 A_FadeOut(0.075)
    LPLB D 1 A_FadeOut(0.075)
    Stop
  }
}

actor PlasmaSpark
{
  +THRUACTORS
  +CLIENTSIDEONLY
  +NOBLOCKMAP
  +NOGRAVITY
  Renderstyle Add
  Scale 0.35
  +MISSILE
  +THRUGHOST
  +DONTSPLASH
  Alpha 1.0
  States
  {
  Spawn:
    TNT1 A 0
    TNT1 A 0 A_SetScale(frandom[RIDFX](0.35,0.70))
    TNT1 A 0 A_Jump(128,2)
    TNT1 A 0 A_ChangeFlag("SPRITEFLIP", 1)
    TNT1 A 0 A_PlaySound ("dukinator/pain", CHAN_BODY)
    TNT1 A 0 A_Jump(128,1,2,3)
    LPLB AABB 1 Bright A_SpawnItem("BlueFlare22Small",0,0)
    LPLB AABB 1 Bright
    stop
  }
}

actor PlasmaSparkSmall : PlasmaSpark
{
  States
  {
  Spawn:
    TNT1 A 0
    TNT1 A 0 A_SetScale(frandom[RIDFX](0.10,0.35))
    TNT1 A 0 A_Jump(128,2)
    TNT1 A 0 A_ChangeFlag("SPRITEFLIP", 1)
    TNT1 A 0 A_PlaySound ("dukinator/pain", CHAN_BODY)
    TNT1 A 0 A_Jump(128,1,2,3)
    LPLB AABB 1 Bright A_SpawnItem("BlueFlare22Small",0,0)
    LPLB AABB 1 Bright
    stop
  }
}

actor PlasmaSparkTiny : PlasmaSpark
{
  States
  {
  Spawn:
    TNT1 A 0
    TNT1 A 0 A_SetScale(frandom[RIDFX](0.1,0.25))
    TNT1 A 0 A_Jump(128,2)
    TNT1 A 0 A_ChangeFlag("SPRITEFLIP", 1)
    TNT1 A 0 A_Jump(128,1,2,3)
    LPLB AB 1 Bright A_SpawnItem("BlueFlare22Small",0,0)
    LPLB AB 1 Bright
    stop
  }
}

actor DukePlasmaExplosion
{
  +FOILINVUL
  Projectile
  +NOCLIP
  scale 0.35
  damagetype "Plasma"
  States
  {
  Spawn:
    TNT1 AAAAAAAAA 0 A_CustomMissile ("BluePlasmaParticle", 0, 0, random[RIDFX](0, 360), 2, random[RIDFX](0, 180))
    TNT1 AAAAAAAAAAAAAAAAAA 0 A_CustomMissile ("BluePlasmaParticle", 0, 0, random[RIDFX](0, 360), 2, random[RIDFX](0, 360))
    TNT1 A 0 A_CustomMissile ("PlasmaExplosionG", 0, 0, random[RIDFX](0, 360), 2, random[RIDFX](0, 360))
    TNT1 A 0 A_SPawnItem("PlasmaExplosionAirDisplacementEffect")
    TNT1 A 0 A_PlaySound("plasma/blowup")
    TNT1 A 0 A_PlayWeaponSound("plasma/blowup")
    TNT1 A 0 Radius_Quake(1, 8, 0, 12, 0)
    TNT1 A 2
    TNT1 A 0 A_Explode(50, 100)
    TNT1 A 10
    stop
  }
}

Actor PlasmaExplosionG
{
  Scale 0.6
  Renderstyle Add
  Alpha 1.0
  +NOCLIP
  +NOGRAVITY
  +NOINTERACTION
  +CLIENTSIDEONLY
  +THRUGHOST
  States
  {
  Spawn:
    TNT1 A 0
    SHW2 ABCDE 1 Bright
    SHW2 FGHI 1 Bright
    Stop
  }
}

actor DukePlasmaLaser : ZMissileFast
{
  PROJECTILE
  Damage 10
  speed 120
  height 5
  radius 5
  scale 0.6
  Renderstyle Add
  SeeSound "weapons/lasersee"
  DeathSound "Null"
  Alpha 1
  decal DukeSmallScorch
  +RANDOMIZE
  Damagetype "Plasma"
  +THRUSPECIES
  Species "Dukes"
  +THRUGHOST
  +RIPPER
  +FORCERADIUSDMG
  States
  {
  Spawn:
    LAZR A 1 bright
    TNT1 A 0 A_SpawnItemEx("PlasmaSparkTiny",0,0,0,frandom[RIDFX](-0.5,0.5),frandom[RIDFX](-0.5,0.5),frandom[RIDFX](-0.5,0.5),0,SXF_NOCHECKPOSITION)
    TNT1 A 0 A_SpawnItemEx("PlasmaSparkTiny", (21*momx)/-35.0, -(21*momy)/-35.0, 2+(21*momz)/-35.0,frandom[RIDFX](-0.5,0.5),frandom[RIDFX](-0.5,0.5),frandom[RIDFX](-0.5,0.5),0,SXF_ABSOLUTEANGLE|SXF_NOCHECKPOSITION)
    TNT1 A 0 A_SpawnItemEx("DukePlasmaLaserTrail", (3 *momx)/-35.0, -(3 *momy)/-35.0, 2+(3 *momz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
    TNT1 A 0 A_SpawnItemEx("DukePlasmaLaserTrail", (6 *momx)/-35.0, -(6 *momy)/-35.0, 2+(6 *momz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
    TNT1 A 0 A_SpawnItemEx("DukePlasmaLaserTrail", (9*momx)/-35.0, -(9*momy)/-35.0, 2+(9*momz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
    TNT1 A 0 A_SpawnItemEx("DukePlasmaLaserTrail", (12*momx)/-35.0, -(12*momy)/-35.0, 2+(12*momz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
    TNT1 A 0 A_SpawnItemEx("DukePlasmaLaserTrail", (15*momx)/-35.0, -(15*momy)/-35.0, 2+(15*momz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
    TNT1 A 0 A_SpawnItemEx("DukePlasmaLaserTrail", (18*momx)/-35.0, -(18*momy)/-35.0, 2+(18*momz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
    TNT1 A 0 A_SpawnItemEx("DukePlasmaLaserTrail", (21*momx)/-35.0, -(21*momy)/-35.0, 2+(21*momz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
    TNT1 A 0 A_SpawnItemEx("DukePlasmaLaserTrail", (24*momx)/-35.0, -(24*momy)/-35.0, 2+(24*momz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
    TNT1 A 0 A_SpawnItemEx("DukePlasmaLaserTrail", (27*momx)/-35.0, -(27*momy)/-35.0, 2+(27*momz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
    TNT1 A 0 A_SpawnItemEx("DukePlasmaLaserTrail", (30*momx)/-35.0, -(30*momy)/-35.0, 2+(30*momz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
    TNT1 A 0 A_SpawnItemEx("DukePlasmaLaserTrail", (33*momx)/-35.0, -(33*momy)/-35.0, 2+(33*momz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
    TNT1 A 0 A_SpawnItemEx("DukePlasmaLaserTrail", (36*momx)/-35.0, -(36*momy)/-35.0, 2+(36*momz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
    TNT1 A 0 A_SpawnItemEx("DukePlasmaLaserTrail", (39*momx)/-35.0, -(39*momy)/-35.0, 2+(39*momz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
    loop
  Death:
    TNT1 A 0 A_SetScale(0.35)
    TNT1 AAAAA 0 A_CustomMissile ("BluePlasmaParticle", 0, 0, random[RIDFX](0, 360), 2, random[RIDFX](0, 360))
    TNT1 A 0 A_Explode(100, 15, 0)
    LPLB C 1 {A_SpawnItem("BlueFlare22",0,0); A_FadeOut(0.075);}
    LPLB C 1 {A_SpawnItem("BlueFlare22",0,0); A_FadeOut(0.075);}
    LPLB C 1 {A_SpawnItem("BlueFlare22",0,0); A_FadeOut(0.075);}
    TNT1 AAA 0 A_CustomMissile ("OldschoolRocketSmokeTrail3", 2, 0, random[RIDFX](0, 360), 2, random[RIDFX](0, 360))
    LPLB D 1 {A_SpawnItem("BlueFlare22",0,0); A_FadeOut(0.075);}
    LPLB D 1 {A_SpawnItem("BlueFlare22",0,0); A_FadeOut(0.075);}
    LPLB D 1 {A_SpawnItem("BlueFlare22",0,0); A_FadeOut(0.075);}
    LPLB C 1 A_FadeOut(0.075)
    LPLB C 1 A_FadeOut(0.075)
    LPLB C 1 A_FadeOut(0.075)
    LPLB D 1 A_FadeOut(0.075)
    LPLB D 1 A_FadeOut(0.075)
    LPLB D 1 A_FadeOut(0.075)
    Stop
  }
}

actor DukePlasmaLaserTrail
{
  Renderstyle Add
  Alpha 1
  scale 0.6
  PROJECTILE
  +THRUGHOST
  height 4
  radius 2
  speed 0
  damage 0
  seesound "null"
  deathsound "null"
  +RANDOMIZE
  states
  {
  Spawn:
    LAZR abab 1 bright
    stop
  Death:
    LPUF A 1 bright
    stop
  }
}