ACTOR LightningGunShockMode : Inventory
{
Inventory.MaxAmount 1
}

ACTOR LightningGunClusterMode : Inventory
{
Inventory.MaxAmount 1
}

// --------------------------------------------------------------------------
//
// Lightning Gun
//
// --------------------------------------------------------------------------

ACTOR LightningGun : Weapon
{
	Game Doom
	Weapon.SelectionOrder 90
    Weapon.AmmoUse 1
    Weapon.AmmoGive 0
    Weapon.AmmoType "LightningCoil"
	Damagetype "Plasma"
	Inventory.PickupSound "electrogun/pickup"
    +WEAPON.NOAUTOAIM
	-FORCEXYBILLBOARD
	+WEAPON.AXEBLOOD
	+WEAPON.NO_AUTO_SWITCH
	+INVENTORY.RESTRICTABSOLUTELY
	Inventory.ForbiddenTo "Purist", "Alpha"
	Inventory.RestrictedTo "Doomer"
    Inventory.PickupMessage "You got the Lightning Gun!"
    Obituary "%o was electrocuted by %k."
    Tag "Lightning Gun"
    States
	{
	Steady:
	TNT1 A 1
	Goto Ready
	Ready:
	    TNT1 A 0
		TNT1 A 0 A_JumpIfInventory("IsPlayingAsPurist", 1, "PuristGun")
        TNT1 A 8
		TNT1 A 0 A_PlaySound("electrogun/select")
        LTGR FEDCBA 1 A_JumpIfInventory("GoFatality", 1, "Steady")
        TNT1 AAAAA 0
        //TNT1 A 0 A_JumpIfInventory("RocketRounds",1,2)
        //Goto Reload
        TNT1 AAAA 0
        TNT1 A 0 A_JumpIfInventory("Kicking",1,"DoKick")
        TNT1 A 0 A_JumpIfInventory("Taunting",1,"Taunt")
		TNT1 A 0 A_JumpIfInventory("Salute1", 1, "Salute")
		TNT1 A 0 A_JumpIfInventory("Salute2", 1, "Salute")
	    TNT1 A 0 A_JumpIfInventory("TossGrenade", 1, "TossGrenade")
		TNT1 A 0 A_JumpIfInventory("GoWeaponSpecialAbility", 1, "WeaponSpecial")
		TNT1 A 0 A_PlaySound("electrogun/hum", 5, 1, 1)
		LTGG A 1 A_WeaponReady
		TNT1 A 0 A_Giveinventory("LightningCoil", 600)
		TNT1 A 0 A_StopSound(7)
        Goto Ready+10
	Ready2:
	    TNT1 A 0
		TNT1 A 0 A_JumpIfInventory("IsPlayingAsPurist", 1, "PuristGun")
        TNT1 A 8
		TNT1 A 0 A_PlaySound("electrogun/select")
        LTGR FEDCBA 1 A_JumpIfInventory("GoFatality", 1, "Steady")
        TNT1 AAAAA 0
        //TNT1 A 0 A_JumpIfInventory("RocketRounds",1,2)
        //Goto Reload
        TNT1 AAAA 0
        TNT1 A 0 A_JumpIfInventory("Kicking",1,"DoKick")
        TNT1 A 0 A_JumpIfInventory("Taunting",1,"Taunt")
		TNT1 A 0 A_JumpIfInventory("Salute1", 1, "Salute")
		TNT1 A 0 A_JumpIfInventory("Salute2", 1, "Salute")
	    TNT1 A 0 A_JumpIfInventory("TossGrenade", 1, "TossGrenade")
		TNT1 A 0 A_JumpIfInventory("GoWeaponSpecialAbility", 1, "WeaponSpecial")
		TNT1 A 0 A_PlaySound("electrogun/hum", 5, 1, 1)
		LTGG A 1 A_WeaponReady
		TNT1 A 0 A_Giveinventory("LightningCoil", 600)
		TNT1 A 0 A_StopSound(7)
        Goto Ready2+10
	Deselect:
		TNT1 A 0 A_StopSound(5)
		TNT1 A 0 A_StopSound(7)
        LTGR ABCDEF 1
		TNT1 A 0 A_TakeInventory("GoWeaponSpecialAbility", 1)
		TNT1 A 0 A_TakeInventory("TossGrenade", 1)
		TNT1 AAAAAAAAAAAAAAAAAA 0 A_Lower
		TNT1 A 1
		Wait
	Select:
	
	TNT1 A 0 A_Takeinventory("FistsSelected",1)
	TNT1 A 0 A_Takeinventory("SawSelected",1)
	TNT1 A 0 A_Takeinventory("ShotgunSelected",1)
	TNT1 A 0 A_Takeinventory("SSGSelected",1)
	TNT1 A 0 A_Takeinventory("MinigunSelected",1)
	TNT1 A 0 A_Takeinventory("PlasmaGunSelected",1)
	TNT1 A 0 A_Takeinventory("RocketLauncherSelected",1)
    TNT1 A 0 A_Takeinventory("GrenadeLauncherSelected",1)
	TNT1 A 0 A_Takeinventory("BFGSelected",1)
	TNT1 A 0 A_Takeinventory("BFG10kSelected",1)
	TNT1 A 0 A_Takeinventory("RailGunSelected",1)
	TNT1 A 0 A_Takeinventory("SubMachineGunSelected",1)
	TNT1 A 0 A_Takeinventory("RevenantLauncherSelected",1)
	TNT1 A 0 A_Takeinventory("LostSoulSelected",1)
	TNT1 A 0 A_Takeinventory("FlameCannonSelected",1)
	TNT1 A 0 A_Giveinventory("LightningGunSelected",1)
	TNT1 A 0 A_Takeinventory("HasBarrel",1)
	TNT1 A 0 A_TakeInventory("TossGrenade", 1)
	
		LTGG A 0 A_Raise
		Wait
		
	WeaponSpecial:
		TNT1 A 0 A_JumpIfInventory("LightningGunShockMode",1,"SwitchtoCluster")
		TNT1 A 0 A_JumpIfInventory("LightningGunClusterMode",1,"SwitchtoShockwave")
	SwitchtoCluster:
		TNT1 A 0 A_Takeinventory("GoWeaponSpecialAbility",1)
		TNT1 A 0 A_JumpIfInventory("LightningGunClusterMode",1,"SwitchtoShockwave")
		TNT1 A 0 A_TakeInventory("LightningGunShockMode", 1)
		TNT1 A 0 A_GiveInventory("LightningGunClusterMode", 1)
		TNT1 A 0 A_PlaySound("DSBOWREL", 2, 3)
		TNT1 A 0 A_Print("Firemode: Cluster")
		Goto Ready+10
		
	SwitchtoShockwave:
		TNT1 A 0 A_Takeinventory("GoWeaponSpecialAbility",1)
		TNT1 A 0 A_JumpIfInventory("LightningGunShockMode",1,"SwitchtoCluster")
		TNT1 A 0 A_TakeInventory("LightningGunClusterMode", 1)
		TNT1 A 0 A_GiveInventory("LightningGunShockMode", 1)
		TNT1 A 0 A_PlaySound("DSBOWREL", 2, 3)
		TNT1 A 0 A_Print("Firemode: Shockwave")
		Goto Ready+10
	
	Fire:
	  //LTGG AAAAAAA 3 A_PlayWeaponSound("electrogun/charge")
		LTGG A 0 A_PlaySound("electrogun/fire", 1, 1)
		LTGG A 0 A_PlaySound("electrogun/loop", 7, 1, 1)
    Hold:
	 // LTGG A 0 A_GunFlash 
		LTGG A 0 A_TakeInventory("LightningCoil", 1)
		LTGF I 1 A_RailAttack(20, 0, 0, "blue", "red", RGF_SILENT | RGF_NOPIERCING | RGF_FULLBRIGHT, 0, "LightningBeamSpark", 0, 0, 1024, 0, random(20, 25), 1, "Electroblasttrail", -1)
		LTGF J 1 A_RailAttack(20, 0, 0, "blue", "red", RGF_SILENT | RGF_NOPIERCING | RGF_FULLBRIGHT, 0, "LightningBeamSpark", 0, 0, 1024, 0, random(20, 25), 1, "Electroblasttrail", -1)
		LTGG AAAAAAA 0 A_ReFire
	 //	LTGG AAAAAAAA 2
		Goto Ready+10
		
	AltFire:
		TNT1 A 0 A_JumpIfInventory("LightningCoil", 50, 1)
		Goto Ready+10
		TNT1 A 0 A_JumpIfInventory("LightningGunClusterMode", 1, "ClusterFire")
		TNT1 A 0 A_JumpIfInventory("LightningGunShockMode", 1, "ShockwaveFire")
	ShockwaveFire:
		TNT1 A 0 A_JumpIfInventory("LightningGunClusterMode", 1, "ClusterFire")
		TNT1 A 0 A_PlayWeaponSound("electrogun/charge2")
		LTGG AAAAAAAA 3
		LTGF IJAB 2
		LTGG A 0 A_PlaySound("electrogun/bomb", 1)
		LTGG A 0 A_TakeInventory("LightningCoil", 50)
		LTGF A 0 A_SetBlend("Blue", 0.4, 35)
		LTGF C 5 A_FireCustomMissile("ElectroBomb",0,0,0,0)
		LTGF DEFGH 3 
		Goto Ready+10
		
	ClusterFire:
		TNT1 A 0 A_JumpIfInventory("LightningGunShockMode", 1, "ShockwaveFire")
		TNT1 A 0 A_PlayWeaponSound("electrogun/charge2")
		LTGG AAAAAAAA 3
		LTGF IJAB 2
		LTGG A 0 A_PlaySound("electrogun/bomb", 1)
		LTGG A 0 A_TakeInventory("LightningCoil", 50)
		LTGF A 0 A_SetBlend("Blue", 0.4, 35)
		LTGF C 5 A_FireCustomMissile("ElectroBombCluster",0,0,0,0)
		LTGF DEFGH 3 
		Goto Ready+10
	Spawn:
		LTGN A -1
		TNT1 A 0 A_JumpIfInventory("IsPlayingAsPurist",1,"PuristSpawn")
		TNT1 A 0 A_JumpIfInventory("IsPlayingAsAlpha",1,"AlphaSpawn")
		Stop
	PuristSpawn:
		TNT1 A 1
		PLAS A -1 A_SpawnItem("ClassicPlasmaRifle", 1)
		TNT1 A 10
		Stop
	AlphaSpawn:
		TNT1 A 1
		SPRY A -1 A_SpawnItem("SprayCannon", 1)
		TNT1 A 10
		Stop

 	
    DoKick:
	    TNT1 A 0
		TNT1 A 0 A_Takeinventory("Zoomed",1)
        TNT1 A 0 A_ZoomFactor(1.0)
		TNT1 A 0 A_Takeinventory("ADSmode",1)
		NULL A 0 A_JumpIf (momZ > 0, "AirKick")
		NULL A 0 A_JumpIf (momZ < 0, "AirKick")
		NULL A 0 A_JumpIf (pitch > 32, "LowKickChecker1")
		Goto InitializeNormalKick
		
		LowKickChecker1:
		TNT1 A 0
	    NULL A 0 A_JumpIf (pitch > 90, "InitializeNormalKick")
		RIFF A 0 A_FireCustomMissile("KickAttackDetectDowned", 0, 0, 0, 0)
		
		InitializeNOrmalKick:
        TNT1 A 0 A_jumpifinventory("PowerStrength",1,"BerserkerKick")
		TNT1 A 0 A_PlaySound("KICK")
		TNT1 A 0 SetPlayerProperty(0,1,0)
		LIKI BCD 1
		RIFF A 0 A_FireCustomMissile("KickAttack", 0, 0, 0, -7)
        LIKI H 5
		KICK A 0 A_Takeinventory("Kicking",1)
		LIKI I 1
		LIKI GFEDCBA 1 
		TNT1 A 0 SetPlayerProperty(0,0,0)
		TNT1 A 0 A_JumpIfInventory("GoFatality", 1, "Steady")
		Goto Ready+10
    BerserkerKick:
		TNT1 A 0 A_PlaySound("KICK")
		TNT1 A 0 SetPlayerProperty(0,1,0)
		LIKI BCD 1
        RIFF A 0 A_FireCustomMissile("SuperKickAttack", 0, 0, 0, -7)
        LIKI H 5
		KICK A 0 A_Takeinventory("Kicking",1)
		LIKI I 1
		LIKI GFEDCBA 1 
		TNT1 A 0 SetPlayerProperty(0,0,0)
		TNT1 A 0 A_JumpIfInventory("GoFatality", 1, "Steady")
		Goto Ready+10
	
	AirKick:
	    TNT1 A 0 A_jumpifinventory("PowerStrength",1,"SuperAirKick")
		TNT1 A 0 A_PlaySound("KICK")
		TNT1 A 0 A_Recoil (-6)
		KICK JKLMN 1
        RIFF A 0 A_FireCustomMissile("AirKickAttack", 0, 0, 0, -31)
        KICK O 3
		KICK A 0 A_Takeinventory("Kicking",1)
		KICK PQRST 2
		TNT1 A 0 A_JumpIfInventory("GoFatality", 1, "Steady")
		Goto Ready+10
		
	SuperAirKick:
		TNT1 A 0 A_PlaySound("KICK")
		TNT1 A 0 A_Recoil (-6)
		KICK JKLMN 1
        RIFF A 0 A_FireCustomMissile("SuperAirKickAttack", 0, 0, 0, -31)
        KICK O 3
		KICK A 0 A_Takeinventory("Kicking",1)
		KICK PQRST 2
		TNT1 A 0 A_JumpIfInventory("GoFatality", 1, "Steady")
		Goto Ready+10
	
	Taunt:
		TNT1 A 0 A_Takeinventory("Zoomed",1)
        TNT1 A 0 A_ZoomFactor(1.0)
		TNT1 A 0 A_Takeinventory("Taunting",1)
		TNT1 A 0 A_JumpIfInventory("RealismMode", 1, "CheckGrab")
        TNT1 A 10
		FUCK A 1
		TNT1 A 0 BRIGHT A_FireCustomMissile("Taunter", 0, 0, -1, 0)
		TNT1 A 0 BRIGHT A_FireCustomMissile("Taunter", -9, 0, -1, 0)
		TNT1 A 0 BRIGHT A_FireCustomMissile("Taunter", 9, 0, -1, 0)
        FUCK B 1 A_PlaySound("FUCK", 2)
        FUCK CD 1 A_AlertMonsters
		FUCK E 15 A_Takeinventory("Taunting",1)
        FUCK DCBA 1
        TNT1 A 10
		Goto Ready
	Salute:
	    TNT1 A 0 SetPlayerProperty(0,1,0)
		TNT1 A 0 A_PlaySound("DSSALUTE", 1)
		TNT1 A 0 A_ALertMonsters
		SALU ABCDEDCDEDCDEDCBA 4
		TNT1 A 0 A_TakeInventory("Salute1",1)
		TNT1 A 0 A_TakeInventory("Salute2",1)
		TNT1 A 0 SetPlayerProperty(0,0,0)
		Goto Ready
		
	CheckGrab:
	    TNT1 A 0 
		TNT1 A 0 A_JumpIfTargetInLOS("CheckDistanceGrab")
		Goto Ready+6
	CheckDistanceGrab:
	    TNT1 A 0 
		TNT1 A 0 A_JumpIfCloser(100, "Grab")
		Goto Ready+6
	CheckIfCanGrab:
	    TNT1 A 0 
		TNT1 A 0 A_JumpIfInTargetInventory("CanGrab", 1, "Grab")
		Goto Ready+6	
	Grab:
	    PKUP ABC 2
		TNT1 A 0 A_CustomMissile("PickupProjectile")
		PKUP DEF 2
		Goto Ready
		
	PuristGun:
		TNT1 A 1
		TNT1 A 0 A_GiveInventory("ClassicRocketLauncher", 1)
		TNT1 A 0 A_TakeInventory("Rocket_Launcher", 1)
		TNT1 A 10
		Goto Ready
	TossGrenade:
		TNT1 A 0
		TNT1 A 0 A_TakeInventory("TossGrenade", 1)
		TNT1 A 0 A_JumpIfInventory("GrenadeAmmo", 1, 1)
		Goto NoGrenade
		GRTH ABCD 1
		TNT1 A 0 A_GiveInventory("FiredGrenade", 1)
		TNT1 A 0 A_PLaySound ("GRNPIN")
		GRTH EEFG 1
		TNT1 A 0 A_PLaySound ("GRNTOSS")
		GRTH HI 1
		TNT1 A 0 A_TakeInventory("GrenadeAmmo", 1)
		TNT1 A 0 A_FireCustomMissile("HandGrenade", random(-2,2), 0, 0, 0, 0, 0)
	    TNT1 A 0 A_TakeInventory("FiredGrenade", 1)
		GRTH JKLM 1
		TNT1 A 1
		TNT1 A 0 A_TakeInventory("TossGrenade", 1)
		Goto Ready
	NoGrenade:
		TNT1 A 0
		TNT1 A 0 A_Print("No Grenades Left.")
		Goto Ready+10
	}
}

ACTOR BlueStormBolt
{
   Speed 8
   Radius 8
   Height 16
   Damage 1
   Damagetype plasma
   SeeSound "weapons/none"
   DeathSound "weapons/gntidl"
   YScale 4.0
   XScale 2.0
   ReactionTime 35
   +FLOORHUGGER
   +HEXENBOUNCE
   -NOGRAVITY
   +SEEKERMISSILE
   States
   {
   Spawn:
      BFX2 F 1 Bright A_Explode(1,54,0)
	  BFX2 F 0 A_SeekerMissile(30,90)
      BFX2 F 0 Bright A_CustomMissile("BlueStormBolt2",16,0,0,6,90)
      BFX2 F 0 ThrustThing(random(0,255),1,0,0)
      BFX2 G 1 Bright //A_Explode(8,54,0)
	  BFX2 F 0 A_SeekerMissile(30,90)
      BFX2 G 0 Bright A_CustomMissile("BlueStormBolt2",16,0,0,6,90)
      BFX2 H 1 Bright //A_Explode(1,54,0)
	  BFX2 F 0 A_SeekerMissile(30,90)
      BFX2 H 0 Bright A_CustomMissile("BlueStormBolt2",16,0,0,6,90)
      BFX2 I 1 Bright //A_Explode(1,54,0)
	  BFX2 F 0 A_SeekerMissile(30,90)
      BFX2 I 0 Bright A_CustomMissile("BlueStormBolt2",16,0,0,6,90)
      BFX2 J 1 Bright //A_Explode(1,54,0)
	  BFX2 F 0 A_SeekerMissile(30,90)
      BFX2 J 0 Bright A_CustomMissile("BlueStormBolt2",16,0,0,6,90)
      BFX2 J 0 Bright A_CountDown
      loop
   Death:
      BFX2 FGHIJ 2 Bright A_Explode(8,64,0)
      stop
   }
}

ACTOR BlueStormBolt2
{
   Speed 184
   Damage 1
   Height 15
   Radius 8
   Damagetype plasma
   SeeSound "Monster/hadtel"
   DeathSound "Monster/hadsit"
   +RIPPER
   +NOGRAVITY
   States
   {
   Spawn:
      TNT1 A 1 Bright A_Explode(2,64,0)
      loop
   Death:
      TNT1 A 1 Bright
      stop
   }
}
/*
actor LightningGun : Weapon
{
  Weapon.SelectionOrder 90
  Weapon.AmmoUse 1
  Weapon.AmmoGive 40
  Weapon.AmmoType "LightningCoil"
  Weapon.SlotNumber 7
  Inventory.PickupMessage "You got the Lightning Gun!"
  Obituary "%o was electrocuted by %k"
  Tag "Lightning Gun"
  States
  {
  Ready:
  //LTGG A 0 A_StopSound(1)
    LTGG A 1 A_WeaponReady
	LTGG A 0 A_PlaySound("electrogun/hum", 7, 0.5, 1)
    Loop
  Deselect:
	TNT1 A 0 A_StopSound(7)
    LTGG A 1 A_Lower
    Loop
  Select:
    LTGG A 1 A_Raise
    Loop
  Fire:
  //LTGG AAAAAAA 3 A_PlayWeaponSound("electrogun/charge")
	LTGG A 0 A_PlaySound("electrogun/fire", 1, 1)
	LTGG A 0 A_PlaySound("electrogun/loop", 7, 1, 1)
  Hold:
 //   LTGG A 0 A_GunFlash 
	LTGG A 0 A_TakeInventory("LightningCoil", 1)
    LTGF I 1 A_RailAttack(20, 0, 0, "blue", "red", RGF_SILENT | RGF_NOPIERCING | RGF_FULLBRIGHT, 0, 0, 0, 0, 0, 0, random(20, 25), 1, "Electroblasttrail", -1)
    LTGF J 1 A_RailAttack(20, 0, 0, "blue", "red", RGF_SILENT | RGF_NOPIERCING | RGF_FULLBRIGHT, 0, 0, 0, 0, 0, 0, random(20, 25), 1, "Electroblasttrail", -1)
	LTGG AAAAAAA 0 A_ReFire
//	LTGG AAAAAAAA 2
    Goto Ready
  AltFire:
	TNT1 A 0 A_JumpIfInventory("LightningCoil", 50, 1)
	Goto Ready
	TNT1 A 0 A_PlayWeaponSound("electrogun/charge2")
    LTGG AAAAAAAA 3
	LTGF IJAB 2
	LTGG A 0 A_PlaySound("electrogun/bomb", 1)
	LTGG A 0 A_TakeInventory("LightningCoil", 50)
	LTGF A 0 A_SetBlend("Blue", 0.4, 35)
    LTGF C 5 A_FireCustomMissile("ElectroBomb",0,0,0,0)
	LTGF DEFGH 3 
    Goto Ready
  Flash:
    LTGF A 3 Bright A_Light1
    LTGF B 3 Bright A_Light1
    LTGF C 3 Bright A_Light1
    Goto LightDone
  Spawn:
    LTGN A -1
    Stop
  }
}
*/
actor ElectroBlast
{
  Radius 13
  Height 8
  Speed 25
  Damage 10
  Projectile
  DamageType Plasma
  Scale 0.4
  +RANDOMIZE
  +BLOODLESSIMPACT
  +NOEXTREMEDEATH
  +SEEKERMISSILE
  +BOUNCEONWALLS
  +BOUNCEONCEILINGS
  +BOUNCEONFLOORS
  -ALLOWBOUNCEONACTORS
  RenderStyle Add
  Alpha 0.75
  SeeSound "electrogun/shoot"
  DeathSound "electrogun/hit"
  Obituary "%o was shocked by %k's lightning gun."
  BounceCount 3
  States
  {
  Spawn:
    EBLT GH 0 bright A_SpawnItem("ElectroBlastTrail")
	TNT1 A 0 A_SeekerMissile(1,8,SMF_LOOK)
    EBLT G 2 bright A_BishopMissileWeave
	TNT1 A 0 A_SeekerMissile(1,8,SMF_LOOK)
	EBLT H 2 bright A_BishopMissileWeave
    loop
  Death:
    EBLT IJK 3 bright
    stop
  }
}

actor ElectroBlastTrail
{
  Radius 13
  Height 8
  Speed 20
  Damage 0
  Projectile
  +RANDOMIZE
  RenderStyle Add
  Alpha 0.75
  Scale 0.25
  States
  {
  Spawn:
    TNT1 A 0 A_Jump(256, "Spawn1", "Spawn2", "Spawn3")
  Spawn1:
    EBLT ABC 3 bright A_SpawnItemEx("LightningBeamSpark", 0, 0, 0, 0, 0, 0, 0, 128)
    goto death
  Spawn2:
    EBLT BCA 3 bright A_SpawnItemEx("LightningBeamSpark", 0, 0, 0, 0, 0, 0, 0, 128)
    goto death
  Spawn3:
    EBLT CAB 3 bright A_SpawnItemEx("LightningBeamSpark", 0, 0, 0, 0, 0, 0, 0, 128)
    goto death
  Death:
	TNT1 A 0 A_Jump(256, "Death1", "Death2", "Death3")
  Death1:
	EBLT DEF 4 bright A_FadeOut(0.5)
	loop
  Death2:
	EBLT FDE 4 bright A_FadeOut(0.5)
	loop
  Death3:
    EBLT EFD 4 bright A_FadeOut(0.5)
    loop
  }
}

Actor ElectroBomb
{
   Radius 10
   Height 15
   Speed 32
   Damage 0
   PROJECTILE
   RENDERSTYLE ADD
   Alpha 0.80
   Damagetype plasma
   Scale 0.2
   +THRUGHOST
   +FORCEXYBILLBOARD
   States
   {
   Spawn:
	  TNT1 A 0 A_PlaySoundEx("electogun/fly", 7, 1)
      STFL ABCDEFGHIJKLMNOP 1 Bright A_CustomMissile("ElectroBlast",6,0,random(0,359),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-40,40))
	//TNT1 AAAAAAAAAAAAAAAAAAAA 0 A_CustomMissile("ElectroBlast",6,0,random(0,359),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-40,40))
	  TNT1 A 0 A_CustomMissile("ZeusSaysHi",6,0,random(0,359),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-40,40))
	  TNT1 A 0 A_CustomMissile("ElectroBombZapper",6,0,random(0,359),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-40,40))
	  Loop
   Death:
      TNT1 A 0 A_StopSound(7)
      TNT1 A 0 A_SetScale(ScaleX+0.1,ScaleY+0.1)
      STFL A 1 Bright
      TNT1 A 0 A_SetScale(ScaleX+0.1,ScaleY+0.1)
      STFL B 1 Bright
      TNT1 A 0 A_SetScale(ScaleX+0.1,ScaleY+0.1)
      STFL C 1 Bright
      TNT1 A 0 A_SetScale(ScaleX+0.1,ScaleY+0.1)
      STFL D 1 Bright
      TNT1 A 0 A_SetScale(ScaleX+0.1,ScaleY+0.1)
	  STFL EFGHIJKLMNOPABCDEFGHIJKLMNOP 1 Bright
	  TNT1 A 0 A_SetScale(1.5, 1.5)
	  TNT1 A 0 A_PlaySound("electrogun/explode")
	  TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_CustomMissile("ElectroBlast",6,0,random(0,359),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-40,40))
	  TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_CustomMissile("ZeusSaysHi",6,0,random(0,359),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-40,40))
	  TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_CustomMissile("ElectroBombZapper",6,0,random(0,359),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-40,40))
	  XELC ABCDEF 5 Bright
	  Stop
	  }
}

ACTOR ElectroBombZapper
{
PROJECTILE
+LOOKALLAROUND
+ISMONSTER
+QUICKTORETALIATE
+NOTARGET
+FRIENDLY
+NOCLIP
MissileType "Plasma"
States
{
Spawn:
    TNT1 A 0
	TNT1 AAAAA 1 A_Look
	Stop
See:
    TNT1 A 0
	TNT1 A 1 A_JumpIfCloser(1250,"Attack")
	Stop
Attack:
    TNT1 A 0
	TNT1 A 0 A_FaceTarget
	TNT1 A 0 A_MissileAttack
	TNT1 A 1 A_CustomRailgun(5,0,NONE,"Blue",RGF_SILENT | RGF_NOPIERCING | RGF_FULLBRIGHT, 1, 0, "LightningBeamSpark", 0, 0, 0, random(20, 25), 1, "Electroblasttrail")
	Goto Death	
Death:
	TNT1 A 1
	Stop
	}
}

ACTOR ZeusSaysHi
{
	+NOBLOCKMAP
	+NOGRAVITY
	RenderStyle Add
	Alpha 0.75
	DamageType "Plasma"
	States
	{
	Spawn:
		XELC ABCDEF 2
		Stop
	}
}

ACTOR LightningBeamSpark
{ 
    RenderStyle Add
    Scale 0.0125
    Alpha 0.95
    +NOINTERACTION
    +NOGRAVITY
    States
    {
    Spawn:
	SPKB A 0 NoDelay A_JumpIf(ScaleX <= 0, "NULL")
	SPKB A 0 Bright A_SetScale(ScaleX-0.00075)
    SPKB A 3 Bright A_ChangeVelocity (frandom(-0.3, 0.3), frandom(-0.3, 0.3), frandom(-0.3, 0.3), 0)
    SPKB A 1 Bright A_FadeOut(0.05)
    Loop
    }
}

//Projectile being shot from sides of the main Overlord storm projectile.
//They work, but they don't have graphics.
ACTOR StormLite1
{
   Radius 6
   Height 12
   Speed 32
   Damage 2
   PROJECTILE
   RENDERSTYLE ADD
   Alpha 0.80
   Damagetype plasma
   DeathSound "weapons/devzap"
   +THRUGHOST
   +RIPPER
   +FORCEXYBILLBOARD
   States
   {
   Spawn:
      DLIT ABC 1 Bright
      Loop
   Death:
      DLIT DEFGHIJKLMNO 1 Bright
      Stop
   }
}

// [MagicWazard] More powerful version of StormLite1
ACTOR StormLite2 : StormLite1
{
   Speed 64
   Damage 5
   States
   {
   Spawn:
      LFX1 XYZ 1 Bright
      Loop
   Death:
      LFX1 STUVW 3 Bright
      Stop
   }
}

ACTOR BlueStormShot
{
   Damage 150
   States
   {
   Spawn:
      TNT1 A 2
      BFX2 KL 1 Bright
      BFX2 O 0 Bright A_CustomMissile("BlueStormLite",0,0,90,6)
      BFX2 O 0 Bright A_CustomMissile("BlueStormLite",0,0,270,6)
	  BFX2 MNO 1 Bright
      BFX2 O 0 Bright A_CustomMissile("BlueStormLite",0,0,90,6)
      BFX2 O 0 Bright A_CustomMissile("BlueStormLite",0,0,270,6)
      Goto Spawn+1
   Death:
      BFX2 KLMNO 1 Bright A_Explode(64,64,0)
      BFX2 KKKKKK 0 Bright A_SpawnItemEx("BlueStormBolt",0,0,0,4,0,0,random(0,359),0,0)
      BFX2 LMNO 1 Bright A_Explode(64,64,0)
      stop
   }
}

ACTOR BlueStormLite : StormLite2
{
   +SEEKERMISSILE
   Speed 64
   Damage 20
   Scale 0.25
   States
   {
   Spawn:
      BFX2 K 1 Bright A_SeekerMissile(1,8,SMF_LOOK)
	  TNT1 A 0 A_SpawnItem("ElectroBlastTrail")
	  BFX2 L 1 Bright A_SeekerMissile(1,8,SMF_LOOK)
	  TNT1 A 0 A_SpawnItem("ElectroBlastTrail")
	  BFX2 M 1 Bright A_SeekerMissile(1,8,SMF_LOOK)
	  TNT1 A 0 A_SpawnItem("ElectroBlastTrail")
	  BFX2 N 1 Bright A_SeekerMissile(1,8,SMF_LOOK)
	  TNT1 A 0 A_SpawnItem("ElectroBlastTrail")
	  BFX2 O 1 Bright A_SeekerMissile(1,8,SMF_LOOK)
	  TNT1 A 0 A_SpawnItem("ElectroBlastTrail")
      Loop
   Death:
      XELC ABCDEF 3 Bright
      Stop
   }
}

Actor ElectroBombCluster
{
   Radius 10
   Height 15
   Speed 32
   Damage 0
   PROJECTILE
   RENDERSTYLE ADD
   Alpha 0.80
   Damagetype plasma
   Scale 0.2
   +THRUGHOST
   +FORCEXYBILLBOARD
   States
   {
   Spawn:
      TNT1 A 0 A_PlaySoundEx("electrogun/fly", 7, 1)
      STFL ABCD 1 Bright A_CustomMissile("ElectroBlast",6,0,random(0,359),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-40,40))
   // TNT1 A 0 A_CustomMissile("BlueStormLite",6,0,random(0,359),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-40,40))
	  TNT1 A 0 A_CustomMissile("ZeusSaysHi",6,0,random(0,359),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-40,40))
	  TNT1 A 0 A_CustomMissile("ElectroBombZapper",6,0,random(0,359),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-40,40))
	  STFL EFGH 1 Bright A_CustomMissile("ElectroBlast",6,0,random(0,359),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-40,40))
      TNT1 A 0 A_CustomMissile("BlueStormLite",6,0,random(0,359),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-40,40))
	  TNT1 A 0 A_CustomMissile("ZeusSaysHi",6,0,random(0,359),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-40,40))
	  TNT1 A 0 A_CustomMissile("ElectroBombZapper",6,0,random(0,359),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-40,40))
	  STFL IJKL 1 Bright A_CustomMissile("ElectroBlast",6,0,random(0,359),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-40,40))
   // TNT1 A 0 A_CustomMissile("BlueStormLite",6,0,random(0,359),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-40,40))
	  TNT1 A 0 A_CustomMissile("ZeusSaysHi",6,0,random(0,359),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-40,40))
	  TNT1 A 0 A_CustomMissile("ElectroBombZapper",6,0,random(0,359),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-40,40))
	  STFL MNOP 1 Bright A_CustomMissile("ElectroBlast",6,0,random(0,359),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-40,40))
	  TNT1 A 0 A_CustomMissile("BlueStormLite",6,0,random(0,359),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-40,40))
	  TNT1 A 0 A_CustomMissile("ZeusSaysHi",6,0,random(0,359),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-40,40))
	  TNT1 A 0 A_CustomMissile("ElectroBombZapper",6,0,random(0,359),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-40,40))
	  Loop
   Death:
	  TNT1 A 0 A_StopSound(7)
      TNT1 A 0 A_SetScale(ScaleX+0.1,ScaleY+0.1)
      STFL A 1 Bright
      TNT1 A 0 A_SetScale(ScaleX+0.1,ScaleY+0.1)
      STFL B 1 Bright
      TNT1 A 0 A_SetScale(ScaleX+0.1,ScaleY+0.1)
      STFL C 1 Bright
      TNT1 A 0 A_SetScale(ScaleX+0.1,ScaleY+0.1)
      STFL D 1 Bright
      TNT1 A 0 A_SetScale(ScaleX+0.1,ScaleY+0.1)
	  STFL EFGHIJKLMNOPABCDEFGHIJKLMNOP 1 Bright
	  TNT1 A 0 A_SetScale(1.5, 1.5)
	  TNT1 A 0 A_PlaySound("electrogun/explode")
	  TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_CustomMissile("ElectroBlast",6,0,random(0,359),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-40,40))
	  TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_CustomMissile("BlueStormLite",6,0,random(0,359),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-40,40))
	  TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_CustomMissile("ZeusSaysHi",6,0,random(0,359),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-40,40))
	  TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_CustomMissile("ElectroBombZapper",6,0,random(0,359),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-40,40))
	  XELC ABCDEF 5 Bright
	  Stop
	  }
}

Actor ElectroBlastSpawner : RandomSpawner
{ DropItem "ElectroBlast", 9
  DropItem "BlueStormLite", 1 }

Actor LightningCoil: Ammo
{
	Inventory.Amount 0
	Inventory.MaxAmount 600
	Ammo.BackpackAmount 0
	Ammo.BackpackMaxAmount 600
	Inventory.Icon "LTGNA0"
	Inventory.ForbiddenTo "Purist", "Alpha"
	Inventory.RestrictedTo "Doomer"
}

ACTOR PlasmagunSpawner : RandomSpawner
{
DropItem "Plasma_Gun", 255, 3
DropItem "LightningGun", 255, 1
}