Actor Lifeleecher : Weapon 30393
{
Scale 0.72
Weapon.SelectionOrder 6000
Weapon.PreferredSkin "LifeLeecher-Marine"
Weapon.AmmoGive1 15
Weapon.AmmoGive2 15
Weapon.AmmoUse1 1
Weapon.AmmoUse2 10
Weapon.AmmoType1 "HadesCrystal"
Weapon.AmmoType2 "HadesCrystal"
Inventory.PickupSound "Weapons/KarasawaCharge"
Inventory.PickupMessage "Havoc Cannon"
Obituary "%o was sucked dry by %k."
Tag "Havoc Cannon"
Weapon.UpSound "Weapons/KarasawaCharge"
states
  {
  Spawn:
    KSWP A -1
    loop
  Select:
    KSAW A 1 A_Raise
	KSAW A 0 A_Raise
    loop
  Deselect:
    KSAW A 1 A_Lower
	KSAW A 0 A_Lower
    loop
  Ready:
    KSAW A 0 A_PlaySound("Weapons/KarasawaIdle",0,1.0,0)
    KSAW ABCB 4 A_WeaponReady
    loop
  Fire:
    KSAW DE 2 Bright A_Light1
  Hold:
    KSAW F 2 Bright A_Light2
    KSAW A 0 A_PlaySound("HavocShots",0,0.4,0)
    TNT1 A 0 A_Jump(200,2)
    TNT1 A 0 A_Jump(256,2)
    TNT1 AA 0 A_RailAttack(random(12,20),0,0,"00 ff ff","FF FF FF",RGF_NOPIERCING|RGF_SILENT|RGF_FullBright,9999,"HavocPuff",3,3,0,0,10,0,"HavocTrace",0)
    TNT1 A 0 A_RailAttack(random(12,20),0,1,"00 ff ff","FF FF FF",RGF_NOPIERCING|RGF_SILENT|RGF_FullBright,9999,"HavocPuff",0,0,0,0,10,0,"HavocTrace",0)
    KSAW E 2 Bright A_Light1
    KSAW E 1 Bright A_Refire
    KSAW DCBBB 2 Bright A_Light0
    GoTo Ready
   AltFire:
    TNT1 A 0
	TNT1 A 0 A_PlayWeaponSound("Weapons/KarasawaCharge")
    KSAW DDDE 2 Bright A_Light1
	KSAW F 2 Bright A_Light2
	TNT1 A 0 A_PlaySound("DoomWraithSpawn",0,1.0,0)
	KSAW G 4 Bright A_FireCustomMissile("PlayerDoomWraith",0,1,0,0)
	KSAW H 3 A_Light1
	KSAW IJ 3 A_Light0
	KSAW B 10
	GoTo Ready
  }
}
Actor HavocChain : CustomInventory
{
 +Inventory.AlwaysPickUp
 States
  {
	PickUp:
	"####" GGGGGG 0 A_CustomRailgun(random(8,13),0,"none","none",
	RGF_SILENT|RGF_NOPIERCING|RGF_EXPLICITANGLE,0,9999,"HavocPuff2",random(-360,360)
	,random(-360,360),2300,0,4.0,0,"HavocTrace2",5)
	TNT1 A 1
	Stop
  }
}
Actor HavocChain2 : CustomInventory
{
 +Inventory.AlwaysPickUp
 States
  {
	PickUp:
	"####" GGGGGG 0 A_CustomRailgun(random(5,8),0,"none","none",
	RGF_SILENT|RGF_NOPIERCING|RGF_EXPLICITANGLE,0,9999,"HavocPuff3",random(-360,360)
	,random(-360,360),2300,0,2.0,0,"HavocTrace3",5)
	TNT1 A 1
	Stop
  }
}
Actor HavocTrace : BaseFXHEM17
{
 Renderstyle Add
 Scale 0.1
  States
   {
    Spawn:
	 TNT1 A 0
	 TNT1 A 0
	 TNT1 A 0 A_Jump(212,2)
	 TNT1 A 0 A_PlaySound("HZap",0,1.0,0,ATTN_STATIC)
	 TNT1 A 0 A_Jump(228,2)
	 TNT1 A 0 A_PlaySound("HZap2",0,1.0,0,ATTN_STATIC)
	 TNT1 A 0 A_Jump(128,0,1,6,3,10)
	 HAVC ZZZZZZZZZZZ 2 Bright
	 HAVC ZZZ 3 Bright A_FadeOut
	 HAVC Z 1 Bright A_FadeOut
	 Wait
  }
}

Actor HavocTrace2 : HavocTrace
{
 Renderstyle Add
 Scale 0.06
}
Actor HavocTrace3 : HavocTrace
{
 Renderstyle Add
 Scale 0.02
}
Actor HavocPuff : BulletPuff
{
 +MThruSpecies
 +AlwaysPuff
 +PuffOnActors
 +PuffGetsOwner
 +HitTracer
 Damagetype ThunderArrowL1
 Height 1
 Radius 1
 Scale 0.85
 Alpha 1
 Renderstyle Add
  States
  {
   Spawn:
   Crash:
   Death:
   XDeath:
    TNT1 A 1
	TNT1 A 0 A_PlaySound("HavocHit",0,0.75,0)
    TNT1 A 0 A_GiveInventory("HavocChain",1,AAPTR_TRACER)
    HEFX CDEFGH 3 Bright
	Stop
  }
}
Actor HavocPuff2 : HavocPuff
{
 -MThruSpecies
 Scale 0.7
  States
  {
   Spawn:
   Crash:
   Death:
   XDeath:
    TNT1 A 1
	TNT1 A 0 A_PlaySound("HavocHit",0,0.4,0)
    TNT1 A 0 A_GiveInventory("HavocChain2",1,AAPTR_TRACER)
    HEFX CDEFGH 3 Bright
	Stop
  }
}
Actor HavocPuff3 : HavocPuff
{
 -MThruSpecies
 Scale 0.45
  States
  {
   Spawn:
   Crash:
   Death:
   XDeath:
    TNT1 A 1
	TNT1 A 0 A_PlaySound("HavocHit",0,0.6,0,ATTN_STATIC)
    HEFX CDEFGH 3 Bright
	Stop
  }
}
 
Actor HavocSteal : CustomInventory
{
 +Inventory.AlwaysPickUp
 States
  {
    PickUp:
    TNT1 A 0
    TNT1 A 0 A_GiveToTarget("LeechedLifeHavoc",2)
    TNT1 A 1
    Stop
  }
}
Actor HavocSteal2 : CustomInventory
{
 +Inventory.AlwaysPickUp
 States
  {
    PickUp:
    TNT1 A 0
    TNT1 A 0 A_GiveToTarget("LeechedLifeHavoc",4)
    TNT1 A 1
    Stop
  }
}
ACTOR LeechedLifeHavoc : NewHealthBonus
{
Inventory.MaxAmount 350
}

Actor PlayerDoomWraith : ZombieDoomWraith
{
 DeathType "Extreme"
 Damagetype Hades //Havoc, Chaos. you choose
 Species "Player"
 Damage (12)
 BounceCount 10
 +ThruSpecies
   States
   {
    Spawn:
    TNT1 A 1
   Spawn2:
	 DWRT AAAAA 1 Bright A_SpawnItemEx("Kaboom10",0,0,0,random(-5,5),random(-5,5),random(-5,5),random(0,360))
	 TNT1 A 0 A_Explode(15,120,0,0,100)
	 TNT1 A 0 A_RadiusGive("HavocSteal",100,RGF_MONSTERS,1)
	 DWRT BBBBB 1 Bright A_SpawnItemEx("Kaboom10",0,0,0,random(-5,5),random(-5,5),random(-5,5),random(0,360))
	 TNT1 A 0 A_Explode(15,120,0,0,100)
	 TNT1 A 0 A_RadiusGive("HavocSteal",100,RGF_MONSTERS,1)
	 DWRT AAAAA 1 Bright A_SpawnItemEx("Kaboom10",0,0,0,random(-5,5),random(-5,5),random(-5,5),random(0,360))
	 TNT1 A 0 A_Explode(15,120,0,0,100)
	 TNT1 A 0 A_RadiusGive("HavocSteal",100,RGF_MONSTERS,1)
	 DWRT BBBBB 1 Bright A_SpawnItemEx("Kaboom10",0,0,0,random(-5,5),random(-5,5),random(-5,5),random(0,360))
	 TNT1 A 0 A_Explode(15,120,0,0,100)
	 TNT1 A 0 A_RadiusGive("HavocSteal",100,RGF_MONSTERS,1)
	 DWRT AAAAA 1 Bright A_SpawnItemEx("Kaboom10",0,0,0,random(-5,5),random(-5,5),random(-5,5),random(0,360))
	 TNT1 A 0 A_Explode(15,120,0,0,100)
	 TNT1 A 0 A_RadiusGive("HavocSteal",100,RGF_MONSTERS,1)
	 DWRT BBBBB 1 Bright A_SpawnItemEx("Kaboom10",0,0,0,random(-5,5),random(-5,5),random(-5,5),random(0,360))
	 TNT1 A 0 A_Explode(15,120,0,0,100)
	 TNT1 A 0 A_RadiusGive("HavocSteal",100,RGF_MONSTERS,1)
	 DWRT AAAAA 1 Bright A_SpawnItemEx("Kaboom10",0,0,0,random(-5,5),random(-5,5),random(-5,5),random(0,360))
	 TNT1 A 0 A_Explode(15,120,0,0,100)
	 TNT1 A 0 A_RadiusGive("HavocSteal",100,RGF_MONSTERS,1)
	 DWRT BBBBB 1 Bright A_SpawnItemEx("Kaboom10",0,0,0,random(-5,5),random(-5,5),random(-5,5),random(0,360))
	 TNT1 A 0 A_Explode(15,120,0,0,100)
	 TNT1 A 0 A_RadiusGive("HavocSteal",100,RGF_MONSTERS,1)
	 DWRT AAAAA 1 Bright A_SpawnItemEx("Kaboom10",0,0,0,random(-5,5),random(-5,5),random(-5,5),random(0,360))
	 TNT1 A 0 A_Explode(15,120)
	 DWRT BBBBB 1 Bright A_SpawnItemEx("Kaboom10",0,0,0,random(-5,5),random(-5,5),random(-5,5),random(0,360))
	 TNT1 A 0 A_Explode(15,120)
	Death:
	 TNT1 A 0
	 TNT1 A 0 A_ScaleVelocity(0.3)
	 TNT1 A 0 A_ChangeFlag(HEXENBOUNCE,1)
	 TNT1 A 0 A_Scream
	 TNT1 A 0 A_SpawnItemEx("Kaboom12",0,0,0,random(-5,5),random(-5,5),random(-5,5),random(0,360))
	 TNT1 AAAAAA 0 A_SpawnItemEx("Kaboom10",0,0,0,random(-5,5),random(-5,5),random(-5,5),random(0,360))
	 tnt1 a 0 A_Explode(30,190)
	 DWRT HIJKLMMM 4 Bright A_FadeOut
	 TNT1 A 1
	 Stop
  }
}

Actor HadesCrystal : Ammo
{
Inventory.Amount 1
Inventory.MaxAmount 300
Ammo.BackpackAmount 2
Ammo.BackpackMaxAmount 600
Inventory.Icon "LLAMA0"
Inventory.PickUpSound "misc/picku2"
Inventory.PickUpMessage "Hades Crystal."
Tag "Hades Crystal"
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright ACS_NamedExecuteAlways("Hem_RemoveItemDelayed",0,5)
	SpawnLoop:
		AMM6 ABCD 3 Bright
		Loop
	}
}

Actor HadesCrystalBundle : HadesCrystal
{
Inventory.Amount 25
Inventory.PickUpMessage "Hades Crystal Bundle."
Tag "Hades Crystal Bundle"
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright ACS_NamedExecuteAlways("Hem_RemoveItemDelayed",0,5)
	SpawnLoop:
		AMM6 EFGH 3 Bright
		Loop
	}
}