actor ThunderBeamBoss : MegaBuster 20047
{
Weapon.AmmoUse 2
Weapon.AmmoGive 28
Weapon.SlotNumber 1
Obituary "%o was electrocuted by %k's Thunder Beam."
weapon.ammotype "ElectricAmmo"
inventory.pickupsound "weapon/weaponup"
+WEAPON.AMMO_OPTIONAL
Scale 2.0
States
{
Spawn:
WEAP R 1
loop
/*Ready:
ELEA A 0 ACS_ExecuteAlways(998,0,67)
ELEA A 0 A_JumpIfInventory("ElectricAmmo",2,"Ready2")
ELEA A 5 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
ELEA A 0 A_GiveInventory("ElectricAmmo",1)
Goto Ready+1
Ready2:
ELEA A 0 A_JumpIfInventory("ElectricAmmo",28,"Ready3")
ELEA A 5 A_WeaponReady(WRF_NOSECONDARY|WRF_NOSWITCH)
ELEA A 0 A_GiveInventory("ElectricAmmo",1)
loop
Ready3:
ELEA A 1 A_WeaponReady(WRF_NOSWITCH)
loop*/
Ready:
ELEA A 0 ACS_ExecuteAlways(998,0,67)
ELEA A 0 A_JumpIfInventory("ElectricAmmo",2,"Ready2")
ELEA A 2 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
Recharge:
ELEA A 0 A_JumpIfInventory("ElectricAmmo",2,"Recharge2")
ELEA A 5 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
ELEA A 0 A_GiveInventory("ElectricAmmo",1)
loop
Ready2:
ELEA A 0 A_JumpIfInventory("ElectricAmmo",28,"Ready3")
ELEA A 2 A_WeaponReady(WRF_NOSECONDARY|WRF_NOSWITCH)
Recharge2:
ELEA A 0 A_JumpIfInventory("ElectricAmmo",28,"Ready3")
ELEA A 5 A_WeaponReady(WRF_NOSECONDARY|WRF_NOSWITCH)
ELEA A 0 A_GiveInventory("ElectricAmmo",1)
loop
Ready3:
ELEA A 1 A_WeaponReady(WRF_NOSWITCH)
loop
Deselect:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower
ELEA A 1 A_Lower
Loop
Select:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise
ELEA A 1 A_Raise
Loop
Fire:
ELEA A 0 A_JumpIfNoAmmo("NoAmmo")
ELEA ABC 3
ELEA C 3
ELEA C 0 A_PlaySoundEx("weapon/thunderbeam","Weapon")
ELEA C 0 A_FireCustomMissile("ThunderBeam",0,1,8,0)
ELEA C 0 A_FireCustomMissile("ThunderManBeam",90,0,8,0)
ELEA C 0 A_FireCustomMissile("ThunderManBeam",-90,0,8,0)
ELEA DE 4
ELEA A 4
ELEA A 0 A_Refire
Goto Ready+1
Altfire:
ELEA A 0 A_JumpIfInventory("ElectricAmmo",28,"Thundah")
Goto Ready+1
Thundah:
ELEA C 0 A_PlaySoundEx("weapon/elecstorm","Weapon")
ELEA ABC 3
ELEA C 0 A_FireCustomMissile("ThunderDamage")
ELEA C 1 A_SpawnItemEx("Thunder",random(0,450),random(0,450),128,0,0,0,random(0,359))
ELEA C 0 A_FireCustomMissile("ThunderCheck",0,0,8,0)
ELEA C 1 A_SpawnItemEx("Thunder",random(0,450),random(0,450),128,0,0,0,random(0,359))
ELEA C 0 A_FireCustomMissile("ThunderCheck",15,0,8,0)
ELEA C 1 A_SpawnItemEx("Thunder",random(0,450),random(0,450),128,0,0,0,random(0,359))
ELEA C 0 A_FireCustomMissile("ThunderCheck",30,0,8,0)
ELEA C 1 A_SpawnItemEx("Thunder",random(0,450),random(0,450),128,0,0,0,random(0,359))
ELEA C 0 A_FireCustomMissile("ThunderCheck",45,0,8,0)
ELEA C 1 A_SpawnItemEx("Thunder",random(0,450),random(0,450),128,0,0,0,random(0,359))
ELEA C 0 A_FireCustomMissile("ThunderCheck",60,0,8,0)
ELEA C 1 A_SpawnItemEx("Thunder",random(0,450),random(0,450),128,0,0,0,random(0,359))
ELEA C 0 A_FireCustomMissile("ThunderCheck",75,0,8,0)
ELEA C 1 A_SpawnItemEx("Thunder",random(0,450),random(0,450),128,0,0,0,random(0,359))
ELEA C 0 A_FireCustomMissile("ThunderCheck",90,0,8,0)
ELEA C 1 A_SpawnItemEx("Thunder",random(0,450),random(0,450),128,0,0,0,random(0,359))
ELEA C 0 A_FireCustomMissile("ThunderCheck",105,0,8,0)
ELEA C 1 A_SpawnItemEx("Thunder",random(0,450),random(0,450),128,0,0,0,random(0,359))
ELEA C 0 A_FireCustomMissile("ThunderCheck",120,0,8,0)
ELEA C 1 A_SpawnItemEx("Thunder",random(0,450),random(0,450),128,0,0,0,random(0,359))
ELEA C 0 A_FireCustomMissile("ThunderCheck",135,0,8,0)
ELEA C 1 A_SpawnItemEx("Thunder",random(0,450),random(0,450),128,0,0,0,random(0,359))
ELEA C 0 A_FireCustomMissile("ThunderCheck",150,0,8,0)
ELEA C 1 A_SpawnItemEx("Thunder",random(0,450),random(0,450),128,0,0,0,random(0,359))
ELEA C 0 A_FireCustomMissile("ThunderCheck",165,0,8,0)
ELEA C 1 A_SpawnItemEx("Thunder",random(0,450),random(0,450),128,0,0,0,random(0,359))
ELEA C 0 A_FireCustomMissile("ThunderCheck",180,0,8,0)
ELEA C 1 A_SpawnItemEx("Thunder",random(0,450),random(0,450),128,0,0,0,random(0,359))
ELEA C 0 A_FireCustomMissile("ThunderCheck",-15,0,8,0)
ELEA C 1 A_SpawnItemEx("Thunder",random(0,450),random(0,450),128,0,0,0,random(0,359))
ELEA C 0 A_FireCustomMissile("ThunderCheck",-30,0,8,0)
ELEA C 1 A_SpawnItemEx("Thunder",random(0,450),random(0,450),128,0,0,0,random(0,359))
ELEA C 0 A_FireCustomMissile("ThunderCheck",-45,0,8,0)
ELEA C 1 A_SpawnItemEx("Thunder",random(0,450),random(0,450),128,0,0,0,random(0,359))
ELEA C 0 A_FireCustomMissile("ThunderCheck",-60,0,8,0)
ELEA C 1 A_SpawnItemEx("Thunder",random(0,450),random(0,450),128,0,0,0,random(0,359))
ELEA C 0 A_FireCustomMissile("ThunderCheck",-75,0,8,0)
ELEA C 1 A_SpawnItemEx("Thunder",random(0,450),random(0,450),128,0,0,0,random(0,359))
ELEA C 0 A_FireCustomMissile("ThunderCheck",-90,0,8,0)
ELEA C 1 A_SpawnItemEx("Thunder",random(0,450),random(0,450),128,0,0,0,random(0,359))
ELEA C 0 A_FireCustomMissile("ThunderCheck",-105,0,8,0)
ELEA C 1 A_SpawnItemEx("Thunder",random(0,450),random(0,450),128,0,0,0,random(0,359))
ELEA C 0 A_FireCustomMissile("ThunderCheck",-120,0,8,0)
ELEA C 1 A_SpawnItemEx("Thunder",random(0,450),random(0,450),128,0,0,0,random(0,359))
ELEA C 0 A_FireCustomMissile("ThunderCheck",-135,0,8,0)
ELEA C 1 A_SpawnItemEx("Thunder",random(0,450),random(0,450),128,0,0,0,random(0,359))
ELEA C 0 A_FireCustomMissile("ThunderCheck",-150,0,8,0)
ELEA C 1 A_SpawnItemEx("Thunder",random(0,450),random(0,450),128,0,0,0,random(0,359))
ELEA C 0 A_FireCustomMissile("ThunderCheck",-165,0,8,0)
ELEA C 0 A_TakeInventory("ElectricAmmo",28)
ELEA CBA 3
ELEA A 15
ELEA A 0 A_Refire
Goto Ready+1
NoAmmo:
ELEA A 0
//ELEA A 1 ACS_Execute(979,0)
Goto Ready+1
}
}

actor ElectricAmmo : Ammo
{
inventory.amount 1
inventory.maxamount 28
}

actor ThunderCheck
{
PROJECTILE
+DONTBLAST
Obituary "%o was zapped by lightning from %k."
Radius 1
Height 20
scale 2.5
damage (0)
speed 40
States
{
Spawn:
TNT1 A 1
loop
Crash:
TNT1 A 1 A_SpawnItemEx("Thunder",0,0,128)
TNT1 A 0 A_PlaySoundEx("weapon/lightningfall","weapon")
stop
}
}

actor Thunder
{
PROJECTILE
scale 2.5
+DONTBLAST
-NOGRAVITY
Obituary "%o was zapped by lightning from %k."
Speed 40
Radius 6
Height 20
Damage (1)
States
{
Spawn:
CLOD A 1 A_PlaySoundEx("weapon/thunderbolt","Weapon")
CLOD ABCDEFABCDEFABCDEFABCDEFABCDEF 1 A_SpawnItemEx("CloudFXDown")
stop
}
}

actor ThunderDamage
{
-SOLID
+NOGRAVITY
PROJECTILE
Obituary "%o was zapped by lightning from %k."
damage 0
radius 1
height 1
damagetype "Thunder"
States
{
Spawn:
TNT1 A 0
TNT1 A 1 A_Explode(45, 450,0)
stop
}
}

actor ThunderManBeam
{
PROJECTILE
damagetype "Thunder"
scale 2.5
+RIPPER
Speed 30
Radius 12
Height 6
Damage (10)
States
{
Spawn:
THUN ABCDEFG 3
loop
}
}