ACTOR HellstormBFG : DoomWeapon
{
  Scale 0.85
  Height 20
  Weapon.PreferredSkin "BFG10K-Marine"
  Weapon.SelectionOrder 2880
  Weapon.AmmoType "DemonAmmo"
  Weapon.AmmoUse 20
  Weapon.AmmoGive 120
  Inventory.PickupMessage "You got the Hellstorm BFG!"
  Inventory.PickupSound "weapons/pickup15k"
  Obituary "%o was trashed and scattered in a Hellstorm by %k's HellStorm BFG10K."
  Tag "HellStorm BFG10K"
  +WEAPON.NOAUTOFIRE
  +INVENTORY.UNDROPPABLE
  States
  {
  Spawn:
    HFG2 A -1
    Stop
  Ready:
    TNT1 A 0 A_JumpIfNoAmmo("Ready2")
    TNT1 A 0 A_PlayWeaponSound("weapons/Hbfg10kidle")
    HG2G AAABBBCCCDDD 1 A_WeaponReady
    Loop
  Ready2:
    TNT1 A 0 A_JumpIfInventory("DemonAmmo",20,"Ready")
    HG2G A 1 A_WeaponReady
	Loop
  Deselect:
  	TNT1 A 0 A_TakeInventory("HandGrenadeAction",1)
	TNT1 A 0 A_TakeInventory("MineAction",1)
	TNT1 A 0 A_TakeInventory("RailgunAction",1)
	TNT1 A 0 A_PlayWeaponSound("weapons/weapondown")
	HG2G A 1 A_Lower
    Goto Deselect+4
  Select:
    TNT1 A 0 A_Playsound("weapons/pickup15k")
    HG2G A 1 A_Raise
    Goto Select+1
  Fire:
    HG2G E 25 A_PlayWeaponSound("weapons/Hcharge10k")
    HG2G F 4
    HG2G GHIJ 1
    Goto Hold
  Hold:
    HG2G J 1 A_GunFlash
    HG2G K 1 
	TNT1 A 0 A_PlaySound("weapons/Hbfg10kfire",6)
	TNT1 A 0 Radius_Quake(12,3,0,1,0)
	HG2G K 1 A_FireCustomMissile ("HSBFG10kShot",Random(-9,9),1,0,0,0,Random(-7,7))
    HG2G LMNA 1
	TNT1 A 0 A_Refire
    HG2G A 35 A_PlaySound("weapons/Hbfg10kcooldown") 
    Goto Ready
  Flash:
    TNT1 A 2 Bright A_Light1
    TNT1 A 2 Bright A_Light2
	TNT1 A 2 Bright A_Light1
    Goto LightDone
  }
}

Actor HSBFG10kShot
{
  Radius 16
  Height 16
  Damage 30
  Speed 35
  Scale 0.65
  RENDERSTYLE Translucent
  Alpha 0.95
  PROJECTILE
  +FORCERADIUSDMG
  +FORCEXYBILLBOARD
  +EXTREMEDEATH
  +SKYEXPLODE
  +THRUSPECIES
  +BRIGHT
  Renderstyle Add
  Alpha 0.75
  Species "Player"
  SeeSound "Weapons/HS10KFIRE"
  DeathSound "weapons/bfg95explode"
  States
  {
  Spawn:
	HFP3 AABB 1 A_SpawnItemEx("HSBFG10KGhost")
	TNT1 A 0 A_SpawnItemEx("ProjectileTrailParticleRed",Random(-12,12),Random(-12,12),Random(-12,12),Random(-2,2),Random(-2,2),Random(-2,2),Random(-20,20),128)
	TNT1 A 0 A_CustomMissile("PlayerDevastatorBolt",6,0,random(0,359),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-40,40))	
	Loop
  Death:
	TNT1 AA 0 A_SpawnItem("HS10KExPlayer")
	HPE3 A 4 A_Explode(30, 42, 1)
    HPE3 BCDEF 4
    Stop
	}
}

ACTOR HS10KExPlayer
{
  Radius 11
  Height 8
  Damage 80
  +NOBLOCKMAP
  +NOGRAVITY
  +NOTELEPORT 
  +FORCERADIUSDMG
  +THRUSPECIES
  +BRIGHT
  Species "Player"
  Damagetype "Player"
  Renderstyle Add
  Alpha 0.75
  Scale 0.65
  States
  {
  Spawn:
    TNT1 A 0
	TNT1 A 0 A_SpawnItemEx("BFGShockwaveRed", 0, 0, 0, 0, 0, 0, 0, 128)
	TNT1 AA 0 A_SpawnItemEx("RedParticleSpawner", 0, 0, 0, 0, 0, 0, 0, 128)
    TNT1 AAAA 0 A_CustomMissile("Kaboom14", 0, 0, random(0,360), 2, random(0,360))
    HPE3 A 4 A_Detonate
    HPE3 BCDEF 4
    Stop
  }
}

Actor HSBFG10KGhost
{
  +CLIENTSIDEONLY
  +NOINTERACTION
  +BRIGHT
  Renderstyle Translucent
  Alpha 0.75
  Scale 0.65
  States
  {
  Spawn:
	HFP3 A 1 A_SetScale(ScaleX-0.06)
	TNT1 A 0 A_FadeOut(0.08)
	HFP3 A 1 A_SetScale(ScaleX-0.06)
	TNT1 A 0 A_FadeOut(0.08)
	HFP3 A 1 A_SetScale(ScaleX-0.06)
	TNT1 A 0 A_FadeOut(0.08)
	HFP3 B 1 A_SetScale(ScaleX-0.06)
	TNT1 A 0 A_FadeOut(0.08)
	HFP3 B 1 A_SetScale(ScaleX-0.06)
	TNT1 A 0 A_FadeOut(0.08)
	HFP3 B 1 A_SetScale(ScaleX-0.06)
	TNT1 A 0 A_FadeOut(0.08)
    Loop
	}
}

Actor HSBFG10kShotCrowned : HSBFG10kShot
{
  -THRUSPECIES
  Species "Fatsos"
  DamageType "BeheComet"
  States
  {
  Spawn:
	HFP3 AABB 1 A_SpawnItemEx("HSBFG10KGhost")
	TNT1 A 0 A_SpawnItemEx("ProjectileTrailParticleRed",Random(-12,12),Random(-12,12),Random(-12,12),Random(-2,2),Random(-2,2),Random(-2,2),Random(-20,20),128)
	TNT1 A 0 A_CustomMissile("CrownedDevastatorBolt",6,0,random(0,359),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-40,40))	
	Loop
  Death:
	TNT1 AA 0 A_SpawnItem("HS10KExCrowned")
	HPE3 A 4 A_Explode(30, 42, 1)
    HPE3 BCDEF 4
    Stop
	}
}

ACTOR HS10KExCrowned : HS10KExPlayer
{
  -THRUSPECIES
  Species "Fatsos"
  DamageType "BeheComet"
}

ACTOR CrownedDevastatorBolt : DevastatorBolt
{
  DamageType "BeheComet"
}







Actor HSBFG10kShotWrath : HSBFG10kShot
{
  -THRUSPECIES
  Species "Nobles"
  DamageType "NobleComet"
  States
  {
  Spawn:
	HFP3 AABB 1 A_SpawnItemEx("HSBFG10KGhost")
	TNT1 A 0 A_SpawnItemEx("ProjectileTrailParticleRed",Random(-12,12),Random(-12,12),Random(-12,12),Random(-2,2),Random(-2,2),Random(-2,2),Random(-20,20),128)
	TNT1 A 0 A_CustomMissile("WrathDevastatorBolt",6,0,random(0,359),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-40,40))	
	Loop
  Death:
	TNT1 AA 0 A_SpawnItem("HS10KExWrath")
	HPE3 A 4 A_Explode(30, 42, 1)
    HPE3 BCDEF 4
    Stop
  }
}

ACTOR HS10KExWrath : HS10KExPlayer
{
  -THRUSPECIES
  Species "Nobles"
  DamageType "NobleComet"
}

ACTOR WrathDevastatorBolt : DevastatorBolt
{
  DamageType "NobleComet"
}







Actor HSBFG10kShotDeathlord : HSBFG10kShot
{
  -THRUSPECIES
  Species "HEMBoss"
  DamageType "SatanGuard"
  States
  {
  Spawn:
	HFP3 AABB 1 A_SpawnItemEx("HSBFG10KGhost")
	TNT1 A 0 A_SpawnItemEx("ProjectileTrailParticleRed",Random(-12,12),Random(-12,12),Random(-12,12),Random(-2,2),Random(-2,2),Random(-2,2),Random(-20,20),128)
	TNT1 A 0 A_CustomMissile("DeathlordDevastatorBolt",6,0,random(0,359),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-40,40))	
	Loop
  Death:
	TNT1 AA 0 A_SpawnItem("HS10KExDeathlord")
	HPE3 A 4 A_Explode(30, 42, 1)
    HPE3 BCDEF 4
    Stop
  }
}

ACTOR HS10KExDeathlord : HS10KExPlayer
{
  -THRUSPECIES
  Species "HEMBoss"
  DamageType "SatanGuard"
}

ACTOR DeathlordDevastatorBolt : DevastatorBolt
{
  DamageType "SatanGuard"
}