//================================================================
//================================================================
//
//        DarkCyberdemon
//
//================================================================
//================================================================
//  Decorate by DBT, sprites by Jimmy91
//================================================================

Actor Thamuz : Cyberdemon 7228
{
  Health 4800
  Speed 16
  PainChance 35
  Mass 2000
  Scale 1.1
  Bloodcolor "00 AA 00"
  Monster
  +Boss
  +NoRadiusDMG
  +FloorClip
  SeeSound "Thamuz/Idlesight"
  PainSound "Thamuz/Pain"
  DeathSound "Thamuz/death"
  ActiveSound "Thamuz/Idlesight"
  Obituary "%o fell before Thamuz."
  DropItem CellPack
  DropItem RocketBox
  DropItem CellPack 128
  DropItem RocketBox 128
  States
  {
  Spawn:
    DCYB A 10 A_Look
    Loop
  See:
    DCYB A 3 A_Chase
    TNT1 A 0 A_SpawnItemEx("DarkCyberGhostA",0,0,0,0,0,0,0,128)
    DCYB A 3 A_Chase
    TNT1 A 0 A_SpawnItemEx("DarkCyberGhostA",0,0,0,0,0,0,0,128)
    DCYB A 3 A_Chase
    TNT1 A 0 A_SpawnItemEx("DarkCyberGhostB",0,0,0,0,0,0,0,128)
    DCYB B 3 A_Chase
    TNT1 A 0 A_SpawnItemEx("DarkCyberGhostB",0,0,0,0,0,0,0,128)
    DCYB C 3 A_Chase
    TNT1 A 0 A_SpawnItemEx("DarkCyberGhostC",0,0,0,0,0,0,0,128)
    DCYB C 3 A_Chase
    TNT1 A 0 A_SpawnItemEx("DarkCyberGhostC",0,0,0,0,0,0,0,128)
    DCYB D 3 A_Chase
    TNT1 A 0 A_SpawnItemEx("DarkCyberGhostD",0,0,0,0,0,0,0,128)
    DCYB D 3 A_Chase
    TNT1 A 0 A_SpawnItemEx("DarkCyberGhostD",0,0,0,0,0,0,0,128)
    Loop
  Missile:
    TNT1 A 0 A_Jump(160,6)
    DCYB AE 5 A_FaceTarget
    DCYB E 5 A_FaceTarget
    DCYB F 10 A_CustomMissile("DCBMiss1",56,-25,0)
    DCYB E 15 A_FaceTarget
    Goto See
    TNT1 A 0 A_Jump(160,31)
    TNT1 A 0 A_SetInvulnerable
    DCYB G 20 A_PlaySound("Apocalypse/cast")
    TNT1 A 0 A_CustomMissile("DCBMiss3",50,0,20)
    TNT1 A 0 A_CustomMissile("DCBMiss3",50,0,40)
    TNT1 A 0 A_CustomMissile("DCBMiss3",50,0,60)
    TNT1 A 0 A_CustomMissile("DCBMiss3",50,0,80)
    TNT1 A 0 A_CustomMissile("DCBMiss3",50,0,100)
    TNT1 A 0 A_CustomMissile("DCBMiss3",50,0,120)
    TNT1 A 0 A_CustomMissile("DCBMiss3",50,0,140)
    TNT1 A 0 A_CustomMissile("DCBMiss3",50,0,160)
    TNT1 A 0 A_CustomMissile("DCBMiss3",50,0,-20)
    TNT1 A 0 A_CustomMissile("DCBMiss3",50,0,-40)
    TNT1 A 0 A_CustomMissile("DCBMiss3",50,0,-60)
    TNT1 A 0 A_CustomMissile("DCBMiss3",50,0,-80)
    TNT1 A 0 A_CustomMissile("DCBMiss3",50,0,-100)
    TNT1 A 0 A_CustomMissile("DCBMiss3",50,0,-120)
    TNT1 A 0 A_CustomMissile("DCBMiss3",50,0,-140)
    TNT1 A 0 A_CustomMissile("DCBMiss3",50,0,-160)
    TNT1 A 0 A_CustomMissile("DCBMiss3",50,0,180)
    DCYB G 10 A_CustomMissile("DCBMiss3",50,0,0)
    DCYB GGGGGGGG 10
    TNT1 A 0 A_UnsetInvulnerable
    DCYB G 10
    Goto See
    DCYB AE 3 A_FaceTarget
    DCYB E 4 A_FaceTarget
    DCYB F 4 A_CustomMissile("DCBMiss2",56,-25,0)
    DCYB E 4 A_FaceTarget
    DCYB F 4 A_CustomMissile("DCBMiss2",56,-25,0)
    DCYB E 4 A_FaceTarget
    DCYB F 4 A_CustomMissile("DCBMiss2",56,-25,0)
    DCYB E 4 A_FaceTarget
    DCYB F 4 A_CustomMissile("DCBMiss2",56,-25,0)
    DCYB E 4 A_FaceTarget
    DCYB F 4 A_CustomMissile("DCBMiss2",56,-25,0)
    DCYB E 4 A_FaceTarget
    DCYB F 4 A_CustomMissile("DCBMiss2",56,-25,0)
    DCYB E 4 A_FaceTarget
    DCYB F 4 A_CustomMissile("DCBMiss2",56,-25,0)
    DCYB E 4 A_FaceTarget
    DCYB F 4 A_CustomMissile("DCBMiss2",56,-25,0)
    DCYB E 4 A_FaceTarget
    DCYB F 4 A_CustomMissile("DCBMiss2",56,-25,0)
    DCYB E 4 A_FaceTarget
    DCYB F 4 A_CustomMissile("DCBMiss2",56,-25,0)
    Goto See
  Pain:
    DCYB G 2
    DCYB G 2 A_Pain
    Goto See
  Death:
    DCYB H 5
    DCYB I 5 A_Scream
    TNT1 A 0 A_SpawnItemEx("BDS",0,0,0,0,0,0,0,128)
    DCYB JKLMNO 5
    DCYB P -1 A_NoBlocking
    Stop
  }
}

Actor BDS
{   
  Radius 1
  Height 1
  Speed 1
  SeeSound "Thamuz/death2"
  Projectile
  States
  {
  Spawn:
    TNT1 A 1
  Stop
  }
}

Actor DarkCyberGhostA
{   
  Radius 2
  Height 2
  Speed 0
  Scale 1.1
  Projectile
  RenderStyle Translucent
  VisibleToPlayerClass Marine, Renegade, Avenger, Android, Huntsman, Hunter, Priest, Engineer
  Alpha 0.6
  States
  {
  Spawn:
    TNT1 A 3
    DCYB A 3 A_FadeOut(0.1)
    Goto Spawn+1
  }
}

Actor DarkCyberGhostB : DarkCyberGhostA
{   
  States
  {
  Spawn:
    TNT1 A 3
    DCYB B 3 A_FadeOut(0.1)
    Goto Spawn+1
  }
}

Actor DarkCyberGhostC : DarkCyberGhostA
{   
  States
  {
  Spawn:
    TNT1 A 3
    DCYB C 3 A_FadeOut(0.1)
    Goto Spawn+1
  }
}

Actor DarkCyberGhostD : DarkCyberGhostA
{   
  States
  {
  Spawn:
    TNT1 A 3
    DCYB D 3 A_FadeOut(0.1)
    Goto Spawn+1
  }
}


Actor DCBMiss1
{
  Radius 12
  Height 12
  Speed 22
  Damage 30
  Projectile
  +SeekerMissile
  +ExtremeDeath
  +LookAllAround
  DamageType "Boss"
  Renderstyle Add
  SeeSound "q2weapon/bfgball"
  DeathSound "q2weapon/bfgballexplo"
  Decal BFGLightning
  States
  {
  Spawn:
        TNT1 A 0
        TNT1 A 0 A_RearrangePointers(AAPTR_NULL,AAPTR_TARGET,AAPTR_TRACER)
        TNT1 A 0 A_LookEx(0,0,0,0,0,"Acquired")
        TNT1 A 0 A_RearrangePointers(AAPTR_MASTER,AAPTR_MASTER,AAPTR_TRACER)
        Goto Idle
    Acquired:
        TNT1 A 0 A_RearrangePointers(AAPTR_MASTER,AAPTR_MASTER,AAPTR_TARGET)
        Goto Idle
  Idle:
    CBTS A 2 Bright A_SeekerMissile(1,90)
    TNT1 A 0 Bright A_SpawnItemEx("DCBM1Trail",0,0,0,0,0,0,0,128)
    CBTS B 2 Bright A_SeekerMissile(1,90)
    TNT1 A 0 Bright A_SpawnItemEx("DCBM1Trail",0,0,0,0,0,0,0,128)
    CBTS C 2 Bright A_SeekerMissile(1,90)
    TNT1 A 0 Bright A_SpawnItemEx("DCBM1Trail",0,0,0,0,0,0,0,128)
    CBTS D 2 Bright A_SeekerMissile(1,90)
    TNT1 A 0 Bright A_SpawnItemEx("DCBM1Trail",0,0,0,0,0,0,0,128)
    CBTS E 2 Bright A_SeekerMissile(1,90)
    TNT1 A 0 Bright A_SpawnItemEx("DCBM1Trail",0,0,0,0,0,0,0,128)
    CBTS F 2 Bright A_SeekerMissile(1,90)
    TNT1 A 0 Bright A_SpawnItemEx("DCBM1Trail",0,0,0,0,0,0,0,128)
    CBTS G 2 Bright A_SeekerMissile(1,90)
    TNT1 A 0 Bright A_SpawnItemEx("DCBM1Trail",0,0,0,0,0,0,0,128)
    CBTS H 2 Bright A_SeekerMissile(1,90)
    TNT1 A 0 Bright A_SpawnItemEx("DCBM1Trail",0,0,0,0,0,0,0,128)
    CBTS I 2 Bright A_SeekerMissile(1,90)
    TNT1 A 0 Bright A_SpawnItemEx("DCBM1Trail",0,0,0,0,0,0,0,128)
    CBTS J 2 Bright A_SeekerMissile(1,90)
    TNT1 A 0 Bright A_SpawnItemEx("DCBM1Trail",0,0,0,0,0,0,0,128)
    Loop
  Death:
    CBTS K 2 Bright A_Explode(160,160)
    CBTS LMNOPQRSTUVW 2 Bright
    Stop
  }
}

Actor DCBM1Trail
{   
  Radius 1
  Height 1
  Speed 0
  Scale 0.8
  +Noclip
  Projectile
  RenderStyle Add
  Alpha 0.6
  States
  {
  Spawn:
    TNT1 A 4
    CBTS LMNOPQRSTUVW 2 A_FadeOut
    Stop
  }
}

Actor DCBMiss2
{
  Radius 12
  Height 8
  Health 5
  Speed 50
  Damage 12 
  RenderStyle Add
  DamageType "Boss"
  Projectile
  Translation "160:167=120:127", "208:223=120:127"
  SeeSound "q2weapon/rocketlauncherfire"
  DeathSound "q2weapon/rocketexplo"
  Decal RevenantScorch
  States
  {
  Spawn:
   THZ4 A 1 BRIGHT A_CustomMissile("DCBMiss2Trail",0,0,0)
    Loop
  Death:
    FSFX DEFGHIJKLM 2 Bright
    Stop
  }
}

ACTOR DCBMiss2Trail
{   
   Radius 1
   Height 1
   Speed 0
   Scale 0.25
   +Noclip
   +CLIENTSIDEONLY   
   PROJECTILE
   RENDERSTYLE Add
   Alpha 0.4
   states
   {
   Spawn:
		FSFX DEFGHIJKLM 1 BRIGHT
		FSFX M 1 Bright A_FadeOut
      Wait
   }
}

Actor DCBMiss3
{
  Radius 1
  Height 1
  Health 5
  Speed 8
  Damage 0
  Scale 2
  DamageType "Boss"
  RenderStyle Add
  +BloodLessImpact
  +Ripper
  +DontSplash
  Projectile
  SeeSound "h2necromancer/magiccast"
  States
  {
  Spawn:
    TNT1 A 2 BRIGHT A_Gravity
    Loop
  Death:
    FSFX NOPQRSTNOPQRST 3
    FSFX Z 0 A_CustomMissile("DCBMiss3M",0,0,180)
    Stop
  }
}

Actor DCBMiss3M
{
  Radius 10
  Height 10
  Speed 50
  Damage 20
  Scale 1.3
  DamageType "Boss"
  +FloorHugger
  RenderStyle Add
  Projectile
  DeathSound "comet/explosion"
  Decal RevenantScorch
  States
  {
  Spawn:
    FSFX NOPQRSTNOPQRST 3 Bright A_SpawnItemEx("DCBMiss3MG",0,0,0,0,0,0,0,128)
    Loop
  Death:
    TNT1 A 0 A_Explode(128,160)
    FSFX DEFGHIJKLM 2 Bright
    Stop
  }
}

Actor DCBMiss3MG
{   
  Radius 1
  Height 1
  Speed 0
  Scale 0.8
  +Noclip
  Projectile
  RenderStyle Add
  Alpha 0.6
  DamageType "Boss"
  States
  {
  Spawn:
    TNT1 A 4
    FSFX NNNOOOPPPQQQRRRSSSTTT 1 Bright A_Explode(8,64)
  Fade:
	FSFX NNNOOOPPPQQQRRRSSSTTT 1 Bright A_FadeOut(0.04)
    Loop
  }
}

ACTOR ThamuzMorpher : PowerupGiver 
{
Scale 2
radius 48
height 128
powerup.type Thamuz
inventory.pickupmessage ""
powerup.duration 99999999999999
states
{
Spawn:
TNT1 A 6
loop
 }
}


actor PowerThamuz : PowerMorph
{
powerup.duration 99999999999999
PowerMorph.PlayerClass "ThamuzPlayer"
}


ACTOR ThamuzPlayer : PlayerPawn
{
  Health 20000
  Radius 40
  Height 110
  Mass 800
  Player.forwardmove 0.85
  Player.MaxHealth 20000
  Player.sidemove 0.85
  Scale 1.1
  Player.Jumpz 8
  Player.ViewHeight 100
  Player.DisplayName "Thamuz"
  Player.SoundClass "Thamuz"
  Player.MorphWeapon "ThamuzWeapon0"
  Player.StartItem "Mana", 100
  DamageFactor "Boss", 0
  DamageFactor "Thamuz", 0
  limitedtoteam 1
  painchance 144
  SeeSound "Thamuz/Idlesight"
  PainSound "Thamuz/Pain"
  DeathSound "Thamuz/death"
  ActiveSound "Thamuz/Idlesight"
  BloodColor "Green"
  +NOTARGET
	+NOSKIN
	+DONTTRANSLATE
  -PICKUP
  states
{
	Spawn:
	    DCYB A 0 A_SetTranslucent(1.0)
		DCYB A 10 SetPlayerProperty(0, 1, 1)
		Loop
	See:
	DCYB A 0 A_SetTranslucent(1.0)
	TNT1 A 0 A_JumpIfInventory("ThamuzActCount", 64, "MakeNoise")
    DCYB A 3 SetPlayerProperty(0, 1, 1)
    TNT1 A 0 A_SpawnItemEx("DarkCyberGhostA",0,0,0,0,0,0,0,128)
    DCYB A 3 
    TNT1 A 0 A_SpawnItemEx("DarkCyberGhostA",0,0,0,0,0,0,0,128)
    DCYB A 3 
    TNT1 A 0 A_SpawnItemEx("DarkCyberGhostB",0,0,0,0,0,0,0,128)
    DCYB B 3 
    TNT1 A 0 A_SpawnItemEx("DarkCyberGhostB",0,0,0,0,0,0,0,128)
    DCYB C 3 
    TNT1 A 0 A_SpawnItemEx("DarkCyberGhostC",0,0,0,0,0,0,0,128)
    DCYB C 3 
    TNT1 A 0 A_SpawnItemEx("DarkCyberGhostC",0,0,0,0,0,0,0,128)
    DCYB D 3 
    TNT1 A 0 A_SpawnItemEx("DarkCyberGhostD",0,0,0,0,0,0,0,128)
    DCYB D 3
	TNT1 A 0 A_SpawnItemEx("DarkCyberGhostD",0,0,0,0,0,0,0,128)
    Loop
  Pain:
    DCYB G 2
    DCYB G 2 A_Pain
    Goto Spawn
	MakeNoise:
		TNT1 A 0 A_TakeInventory("ThamuzActCount", 999)
		TNT1 A 0 A_PlaySoundEx("Thamuz/Act", 6)
		DCYB A 1
	    Goto Spawn
	  Melee:
	  Missile:
		DCYB F 1 A_JumpIfInventory("UsingGreenRing", 1, "Ring")
		DCYB F 9
        DCYB E 10 
        goto Spawn
	  Ring:
	    DCYB G 140
	    Goto Spawn
	  Death:
		TNT1 A 0 a_givetotarget("BOSSKILLEDSTAT", 1)
		TNT1 A 0 a_givetotarget("reward", 1)
		DCYB HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH 3 A_SpawnItemEx("BloodSplatter", random(-15,15), random(-15,15), random(10,100), random(0,5), random(0,5), 0, random(0,360), SXF_TRANSFERTRANSLATION, 0)
		DCYB H 5 
        DCYB I 5 A_Scream
        TNT1 A 0 A_SpawnItemEx("BDS",0,0,0,0,0,0,0,128)
		DCYB JJJJJKKKKK 1 A_SpawnItemEx ("GGRSpirit", 0, 0, Random(32, 100), 8, 0, frandom(-1,1), Random(0, 360), 128, 0)
		DCYB HHHHHHHHHHHHHHH 0 A_SpawnItemEx ("GGRSpirit", 0, 0, Random(32, 100), 8, 0, frandom(-1,1), Random(0, 360), 128, 0)
        DCYB LLLLLMMMMMNNNNNOOOOO 1 A_SpawnItemEx ("GGRSpirit", 0, 0, Random(32, 100), 8, 0, frandom(-1,1), Random(0, 360), 128, 0)
        DCYB P -1 A_NoBlocking
        Stop
	}
}

Actor ThamuzAttackMode1 : Inventory
{
	inventory.maxamount 1
}

Actor ThamuzAttackMode2 : Inventory
{
	inventory.maxamount 1
}

Actor ThamuzAttackMode3 : Inventory
{
	inventory.maxamount 1
}

Actor ThamuzAttackMode4 : Inventory
{
	inventory.maxamount 1
}

Actor UsingGreenRing : Inventory
{
	inventory.maxamount 1
}

Actor ThamuzActCount : Inventory
{
	inventory.maxamount 64
	+IGNORESKILL
}

ACTOR ThamuzWeapon0 : Weapon 
{
 Weapon.SelectionOrder 800
 Obituary "%o was raped by %k"
 Inventory.PickupMessage ""
 Inventory.PickupSound "misc/pk_up"
 Weapon.AmmoUse 0
 Weapon.AmmoGive 0
 Weapon.AmmoType "Mana"
 +WEAPON.NOAUTOAIM
  States
 {
  Spawn:
       TNT1 A -1
       Loop
  Ready:
       TNT1 A 1 A_WeaponReady
       goto AltFire
  Fire:
  TNT1 A 1
  goto AltFire
  Deselect:
       TNT1 A 1 A_Lower
       Loop
  Select:
       TNT1 A 0 A_Raise
       Loop
  AltFire:
       TNT1 A 0 A_GiveInventory("ThamuzWeapon")
       TNT1 A 0 A_SelectWeapon("ThamuzWeapon")
       TNT1 A 0 
       goto deselect
  Flash:
       SNIF F 3 Bright A_Light2
       SNIF F 3 Bright A_Light1
       SNIF F 0 Bright A_Light0
       Goto LightDone     
       }
}

ACTOR ThamuzWeapon : Weapon 
{
 Weapon.SelectionOrder 800
 obituary "%o had a taste of Thamuz' wrath"
 Inventory.PickupMessage ""
 Inventory.PickupSound "misc/pk_up"
 Weapon.AmmoUse 0
 Weapon.AmmoGive 0
 Weapon.AmmoType "Mana"
 +WEAPON.NOAUTOAIM
 +INVENTORY.UNDROPPABLE
  States
 {
  Spawn:
       TNT1 A -1
       Loop
  Ready:
	   TNT1 A 0 A_TakeInventory("UsingGreenRing", 1)
   	   CLA3 A 1 A_WeaponReady(WRF_ALLOWRELOAD)
       goto ready
  Deselect:
   	   CLA3 A 1 A_Lower
       Loop
  Select:
   	   CLA3 A 0 A_Raise
       Loop
  Fire:
       TNT1 A 0 A_jumpIfinventory("ThamuzAttackMode1", 1, "SpiritualCheck")
       TNT1 A 0 A_jumpIfinventory("ThamuzAttackMode2", 1, "BfgCheck")
       TNT1 A 0 A_jumpIfinventory("ThamuzAttackMode3", 1, "RingCheck")
	   TNT1 A 0 A_jumpIfinventory("ThamuzAttackMode4", 1, "FadedCheck")
	   CLA3 A 1
	   Goto ready
  AltFire:
  	   CLA3 A 1 ACS_execute(812, 0)
       CLA3 A 15
       goto ready
  Spiritual:
	   TNT1 A 0 A_GunFlash
       TNT1 A 0 A_Takeinventory("mana", 5)
	   CLA3 A 4 Bright
	   CLA3 B 4 Bright A_FireCustomMissile("DCBMiss2")
       goto ready
  Bfg:
	   TNT1 A 0 A_GunFlash
       TNT1 A 0 A_Takeinventory("mana", 50)
	   CLA3 A 15 Bright
	   CLA3 B 25 Bright A_FireCustomMissile("DCBMiss1")
       goto ready
  Ring:
	   TNT1 A 0 A_GiveInventory("UsingGreenRing", 1)
	   TNT1 A 0 A_GiveInventory("GuardianInvulnerability", 1)
       TNT1 A 0 A_GunFlash
       TNT1 A 0 A_Takeinventory("mana", 70)
	   TNT1 A 0 SetPlayerProperty (0, 1, 0)
	   CLA3 A 15
	   CLA3 D 0 A_SetTranslucent (0.5)
	   CLA3 D 0 A_PlaySound("Apocalypse/cast")
	   CLA3 D 0 A_FireCustomMissile ("DCBMiss3",0,1,0,0,0)
	   CLA3 D 0 A_FireCustomMissile ("DCBMiss3",20,0,0,0,0)
	   CLA3 D 0 A_FireCustomMissile ("DCBMiss3",40,0,0,0,0)
	   CLA3 D 0 A_FireCustomMissile ("DCBMiss3",60,0,0,0,0)
	   CLA3 D 0 A_FireCustomMissile ("DCBMiss3",80,0,0,0,0)
	   CLA3 D 0 A_FireCustomMissile ("DCBMiss3",100,0,0,0,0)
	   CLA3 D 0 A_FireCustomMissile ("DCBMiss3",120,0,0,0,0)
	   CLA3 D 0 A_FireCustomMissile ("DCBMiss3",140,0,0,0,0)
	   CLA3 D 0 A_FireCustomMissile ("DCBMiss3",160,0,0,0,0)
	   CLA3 D 0 A_FireCustomMissile ("DCBMiss3",180,0,0,0,0)
	   CLA3 D 0 A_FireCustomMissile ("DCBMiss3",-20,0,0,0,0)
	   CLA3 D 0 A_FireCustomMissile ("DCBMiss3",-40,0,0,0,0)
	   CLA3 D 0 A_FireCustomMissile ("DCBMiss3",-60,0,0,0,0)
	   CLA3 D 0 A_FireCustomMissile ("DCBMiss3",-80,0,0,0,0)
	   CLA3 D 0 A_FireCustomMissile ("DCBMiss3",-100,0,0,0,0)
	   CLA3 D 0 A_FireCustomMissile ("DCBMiss3",-120,0,0,0,0)
	   CLA3 D 0 A_FireCustomMissile ("DCBMiss3",-140,0,0,0,0)
	   CLA3 B 10 A_FireCustomMissile ("DCBMiss3",-160,0,0,0,0)
	   CLA3 B 80 
       TNT1 A 0 SetPlayerProperty (0, 0, 0)
	   CLA3 B 10 
	   CLA3 BAA 5 
       Goto Ready  
  Faded:
       TNT1 A 0 A_GiveInventory("ThamuzFadeCooldown",1)
	   CLA3 D 0 A_FireCustomMissile ("TeleportFog",0,0,0,0,0,0)
	   TNT1 A 0 ACS_NamedExecuteAlways("ThamuzFade", 0)
	   CLA3 A 5 
  goto ready
  SpiritualCheck:
       TNT1 A 0 A_jumpIfinventory("mana", 5, "Spiritual")
  goto ready
  BfgCheck:
       TNT1 A 0 A_jumpIfinventory("mana", 50, "Bfg")  
  goto ready
  RingCheck:
       TNT1 A 0 A_jumpIfinventory("mana", 70, "Ring")  
  goto ready
  FadedCheck:
       TNT1 A 0 A_jumpIfinventory("ThamuzFadeCooldown",1,"Ready")  
	   Goto Faded
  Reload:
       TNT1 A 0 A_GunFlash
	   CLA3 A 5 Bright
	   CLA3 B 10 Bright A_FireCustomMissile("ThamuzNightmareShot")
       goto ready
  Flash:
       SNIF F 3 Bright A_Light2
       SNIF F 3 Bright A_Light1
       SNIF F 0 Bright A_Light0
       Goto LightDone     
       }
}

Actor ThamuzFadeCooldown : PowerDamage
{
	DamageFactor "Nothing", 1.0
	PowerUp.Duration -40
}

actor ThamuzNightmareShot
{
  Radius 9
  Height 5
  Speed 35
  Damage 1
  RenderStyle Add
  DeathSound "Darkness/Blind"
  Projectile
  +RANDOMIZE
  +DONTREFLECT
  states
  {
	Spawn:
		BONE A 0 BRIGHT A_BishopMissileWeave
		BONE A 2 bright A_SpawnItemEx("EMFX",0,0,0,0,0,0,0,128)
		Loop
	Death:
		BONE A 0 BRIGHT A_SpawnItemEx("DarknessExplosion",0,0,0,0,0,0,0,0)
		BONE A 0 BRIGHT	A_CustomMissile("ThamuzCurse",1,0,0)
		BONE A 0 BRIGHT	A_CustomMissile("ThamuzCurse",1,0,10)
		BONE A 0 BRIGHT	A_CustomMissile("ThamuzCurse",1,0,20)
		BONE A 0 BRIGHT	A_CustomMissile("ThamuzCurse",1,0,30)
		BONE A 0 BRIGHT	A_CustomMissile("ThamuzCurse",1,0,40)
		BONE A 0 BRIGHT	A_CustomMissile("ThamuzCurse",1,0,50)
		BONE A 0 BRIGHT	A_CustomMissile("ThamuzCurse",1,0,60)
		BONE A 0 BRIGHT	A_CustomMissile("ThamuzCurse",1,0,70)
		BONE A 0 BRIGHT	A_CustomMissile("ThamuzCurse",1,0,80)
		BONE A 0 BRIGHT	A_CustomMissile("ThamuzCurse",1,0,90)
		BONE A 0 BRIGHT	A_CustomMissile("ThamuzCurse",1,0,100)
		BONE A 0 BRIGHT	A_CustomMissile("ThamuzCurse",1,0,110)
		BONE A 0 BRIGHT	A_CustomMissile("ThamuzCurse",1,0,120)
		BONE A 0 BRIGHT	A_CustomMissile("ThamuzCurse",1,0,130)
		BONE A 0 BRIGHT	A_CustomMissile("ThamuzCurse",1,0,140)
		BONE A 0 BRIGHT	A_CustomMissile("ThamuzCurse",1,0,150)
		BONE A 0 BRIGHT	A_CustomMissile("ThamuzCurse",1,0,160)
		BONE A 0 BRIGHT	A_CustomMissile("ThamuzCurse",1,0,170)
		BONE A 0 BRIGHT	A_CustomMissile("ThamuzCurse",1,0,180)
		BONE A 0 BRIGHT	A_CustomMissile("ThamuzCurse",1,0,190)
		BONE A 0 BRIGHT	A_CustomMissile("ThamuzCurse",1,0,200)
		BONE A 0 BRIGHT	A_CustomMissile("ThamuzCurse",1,0,210)
		BONE A 0 BRIGHT	A_CustomMissile("ThamuzCurse",1,0,220)
		BONE A 0 BRIGHT	A_CustomMissile("ThamuzCurse",1,0,230)
		BONE A 0 BRIGHT	A_CustomMissile("ThamuzCurse",1,0,240)
		BONE A 0 BRIGHT	A_CustomMissile("ThamuzCurse",1,0,250)
		BONE A 0 BRIGHT	A_CustomMissile("ThamuzCurse",1,0,260)
		BONE A 0 BRIGHT	A_CustomMissile("ThamuzCurse",1,0,270)
		BONE A 0 BRIGHT	A_CustomMissile("ThamuzCurse",1,0,280)
		BONE A 0 BRIGHT	A_CustomMissile("ThamuzCurse",1,0,290)
		BONE A 0 BRIGHT	A_CustomMissile("ThamuzCurse",1,0,300)
		BONE A 0 BRIGHT	A_CustomMissile("ThamuzCurse",1,0,310)
		BONE A 0 BRIGHT	A_CustomMissile("ThamuzCurse",1,0,320)
		BONE A 0 BRIGHT	A_CustomMissile("ThamuzCurse",1,0,330)
		BONE A 0 BRIGHT	A_CustomMissile("ThamuzCurse",1,0,340)
		BONE A 0 BRIGHT	A_CustomMissile("ThamuzCurse",1,0,350)
		BONE BC 5 bright
		stop
  }
}

Actor ThamuzCurse
{
	Radius 1
	Height 1
	Speed 15
	RenderStyle Add
	+NoGravity
	+NoBlockMap
	+DontSplash
	+ForceXYBillboard
	+FLOORHUGGER
	States
	{
		Spawn:
			TNT1 A 0 BRIGHT A_SpawnItemEx("BlindSphere",0,0,0,0,0,0,0,0)
			BONE B 2 Bright
			TNT1 A 0 BRIGHT A_SpawnItemEx("BlindSphere",0,0,0,0,0,0,0,0)
			BONE B 2 Bright
			TNT1 A 0 BRIGHT A_SpawnItemEx("BlindSphere",0,0,0,0,0,0,0,0)
			BONE B 2 Bright
			TNT1 A 0 BRIGHT A_SpawnItemEx("BlindSphere",0,0,0,0,0,0,0,0)
			BONE B 2 Bright
			TNT1 A 0 BRIGHT A_SpawnItemEx("BlindSphere",0,0,0,0,0,0,0,0)
			BONE B 2 Bright
			TNT1 A 0 BRIGHT A_SpawnItemEx("BlindSphere",0,0,0,0,0,0,0,0)
			BONE B 2 Bright
			TNT1 A 0 BRIGHT A_SpawnItemEx("BlindSphere",0,0,0,0,0,0,0,0)
			BONE B 2 Bright
			TNT1 A 0 BRIGHT A_SpawnItemEx("BlindSphere",0,0,0,0,0,0,0,0)
			BONE B 2 Bright
			TNT1 A 0 BRIGHT A_SpawnItemEx("BlindSphere",0,0,0,0,0,0,0,0)
			BONE B 2 Bright
			TNT1 A 0 BRIGHT A_SpawnItemEx("BlindSphere",0,0,0,0,0,0,0,0)
			BONE B 2 Bright
			TNT1 A 0 BRIGHT A_SpawnItemEx("BlindSphere",0,0,0,0,0,0,0,0)
			BONE B 2 Bright
			TNT1 A 0 BRIGHT A_SpawnItemEx("BlindSphere",0,0,0,0,0,0,0,0)
			BONE B 2 Bright
			TNT1 A 0 BRIGHT A_SpawnItemEx("BlindSphere",0,0,0,0,0,0,0,0)
			BONE B 2 Bright
			TNT1 A 0 BRIGHT A_SpawnItemEx("BlindSphere",0,0,0,0,0,0,0,0)
			BONE B 2 Bright
			TNT1 A 0 BRIGHT A_SpawnItemEx("BlindSphere",0,0,0,0,0,0,0,0)
			BONE B 2 Bright
			TNT1 A 0 BRIGHT A_SpawnItemEx("BlindSphere",0,0,0,0,0,0,0,0)
			BONE B 2 Bright
		Death:
			TNT1 A 0
			stop
	}
}

actor BlindSphere : CustomInventory
{
  inventory.maxamount 0
  inventory.pickupmessage "Nightmares fill your head"
  +INVENTORY.ALWAYSPICKUP
  +INVENTORY.AUTOACTIVATE
  +INVENTORY.UNDROPPABLE 
  radius 64
  height 64
  states
  {
  Spawn:
	NULL ABCD 6 bright
	stop
  Pickup:
    TNT1 A 7 A_SetBlend ("0, 0, 0", 1, 1400)
    stop
  }
}

ACTOR ThamuzWraith
{ 
	Health 50
	Radius 20 
	Height 32 
	mass 50
	Speed 10 
	Damage 2
	MeleeDamage 2
	DamageType "Thamuz"
	DamageFactor "Thamuz", 0.0
	RENDERSTYLE ADD
	Obituary "%o is now part of the ghosts of Thamuz."
	HitObituary "%o is now part of the ghosts of Thamuz."
	ALPHA 0.67 
	PAINCHANCE 64 
	MONSTER
	Species "Thamuz"
	+DONTGIB
	+NOTARGET
	+NOBLOOD
	+NOGRAVITY 
	+SHOOTABLE
	+FLOAT
	+DONTFALL
	+DONTHURTSPECIES
	+NOINFIGHTING
	+THRUSPECIES
	DeathSound "monster/sprdth"
	States 
   { 
   Spawn: 
       WRAI AB 10 A_Look
//       Loop 
   See: 
       WRAI AABB 3 A_Chase
	   WRAI A 0 A_Jump(32,"Clear")
       Loop 
   Missile: 
	   TNT1 A 0 A_JumpIfInTargetInventory("ThamuzWeapon", 1, "Clear")
       WRAI A 10 A_FaceTarget 
	   TNT1 A 0 A_PlaySound("monster/sprsit")
       WRAI B 4 A_SkullAttack 
       WRAI AB 4 
       Goto Missile+2
   Melee:
       TNT1 A 0 A_JumpIfInTargetInventory("ThamuzWeapon", 1, "Clear")
       WRAI A 5 A_FaceTarget 
	   TNT1 A 0 A_PlaySound("monster/spratk")
       WRAI B 5 A_MeleeAttack
       Goto See
   Pain: 
       WRAI A 6
       Goto See 
   Death: 
       WRAI E 4 A_Noblocking
       WRAI F 5 A_Scream 
       WRAI GHIJ 4  
       Stop
	  Clear:
		TNT1 A 0 A_ClearTarget
        WRAI ABABAB 5 A_Wander
		goto See	   
   } 
}

ACTOR ThamuzNightmare
{
	//$Category "Monsters"
    Health 150
    Radius 20
    Height 56
    Speed 20
    PainChance 144
	DamageType "Thamuz"
	DamageFactor "Thamuz", 0.0
	Species "Thamuz"
    MONSTER 
	+DONTHARMSPECIES
	+NOTARGET
    +FLOORCLIP
    RenderStyle Add
    Alpha 0.4
    SeeSound "nightmare/sight"
    PainSound "nightmare/pain"
    DeathSound "nightmare/death"
    ActiveSound "nightmare/active"
    MeleeSound "nightmare/melee"
    HitObituary "%o was tormented by a nightmare."
    MeleeDamage 4
    States
    {
    Spawn:
        NMRE AB 10 A_Look
        Loop
    See:
        NMRE AABBCCDD 3 A_Chase
		Loop
    Melee:
	    TNT1 A 0 A_JumpIfInTargetInventory("ThamuzWeapon", 1, "Clear")
        NMRE E 0 A_SetShootable
        NMRE EF 9 A_FaceTarget
        NMRE G 9 A_MeleeAttack
        Goto See
    Pain:
        NMRE H 4 A_Pain
        Goto See
    Death:
        NMRE I 3 A_ScreamAndUnblock
        NMRE JKLMNO 3 
        Stop
	Clear:
	    TNT1 A 0 A_ClearTarget
	    NMRE AABBCCDD 3 A_Wander
		Goto See
    }
}

actor ThamuzRitualOne : CustomInventory 10288
{
  inventory.pickupmessage "Picked up the Skull of Thamuz."
  inventory.maxamount 1
  scale 0.7
  states
  {
  Spawn:
    SCHA A 1 A_JumpIfCloser(64,"Bossgetit")
    Loop
  Pickup:
    TNT1 A 0 A_Print("He is near")
	Stop
  Bossgetit:
    TNT1 A 1 ACS_NamedExecuteAlways("ThamuzGetItem", 0)
	Stop
  }
}

actor ThamuzRitualTwo : ThamuzRitualOne 10289
{
  inventory.pickupmessage "Picked up Gaul's hourglass of dimensions."
  states
  {
  Spawn:
    ZEUH A 1 A_JumpIfCloser(64,"Bossgetit")
    Loop
  }
}

actor ThamuzRitualThree : ThamuzRitualOne 10290
{
  inventory.pickupmessage "Picked up a flawless diamond."
  states
  {
  Spawn:
    DIAM A 1 A_JumpIfCloser(64,"Bossgetit")
    Loop
  }
}

ACTOR DarkmoonCultist 10291
{
  OBITUARY "%o was shot by a cultist with a thompson by accident."
  Health 100
  Radius 20
  Height 56
  Mass 100
  Speed 13
  Scale 0.5
  PainChance 200
  DamageType "Player"
  SEESOUND "OtherPriest/Taunt" 
  ATTACKSOUND "Revolver/Fire" 
  PAINSOUND "OtherPriest/Pain " 
  DEATHSOUND "OtherPriest/Death" 
  ACTIVESOUND "OtherPriest/Taunt"
  DropItem "Backpack" 255
  MONSTER
  +FloorClip
  states
  {
  Spawn:
    BCUL AB 10 A_Look
    Loop
  Frightened:
    BCUL A 0 A_ChangeFlag("Frightened", 1)
    BCUL AABBCCDD 2 A_Chase
    loop
  See:
    TNT1 A 0 A_JumpIfInTargetInventory("MarineToken", 1, "Clear")
	TNT1 A 0 A_JumpIfInTargetInventory("RenegadeToken", 1, "Clear")
	TNT1 A 0 A_JumpIfInTargetInventory("AvengerToken", 1, "Clear")
	TNT1 A 0 A_JumpIfInTargetInventory("AndroidToken", 1, "Clear")
	TNT1 A 0 A_JumpIfInTargetInventory("HuntsmanToken", 1, "Clear")
	TNT1 A 0 A_JumpIfInTargetInventory("HunterToken", 1, "Clear")
	TNT1 A 0 A_JumpIfInTargetInventory("PriestToken", 1, "Clear")
	TNT1 A 0 A_JumpIfInTargetInventory("EngineerToken", 1, "Clear")
    BCUL A 0 A_JumpIfHealthLower(25, "Frightened")
    BCUL AABBCCDD 2 A_Chase
    Loop
  Missile:
    TNT1 A 0 A_JumpIfInTargetInventory("MarineToken", 1, "Clear")
	TNT1 A 0 A_JumpIfInTargetInventory("RenegadeToken", 1, "Clear")
	TNT1 A 0 A_JumpIfInTargetInventory("AvengerToken", 1, "Clear")
	TNT1 A 0 A_JumpIfInTargetInventory("AndroidToken", 1, "Clear")
	TNT1 A 0 A_JumpIfInTargetInventory("HuntsmanToken", 1, "Clear")
	TNT1 A 0 A_JumpIfInTargetInventory("HunterToken", 1, "Clear")
	TNT1 A 0 A_JumpIfInTargetInventory("PriestToken", 1, "Clear")
	TNT1 A 0 A_JumpIfInTargetInventory("EngineerToken", 1, "Clear")
    BCUL E 20 A_FaceTarget
	BCUL E 0 A_PlaySound("Revolver/Fire")
    BCUL F 2 BRIGHT A_CustomBulletAttack (5.0, 5.0, 1, random(1,5), "HumandBulletPuff", 0, CBAF_NORANDOM)
	BCUL E 2 A_FaceTarget
	BCUL E 0 A_PlaySound("Revolver/Fire")
    BCUL F 2 BRIGHT A_CustomBulletAttack (5.0, 5.0, 1, random(1,5), "HumandBulletPuff", 0, CBAF_NORANDOM)
	BCUL E 2 A_FaceTarget
	BCUL E 0 A_PlaySound("Revolver/Fire")
    BCUL F 2 BRIGHT A_CustomBulletAttack (5.0, 5.0, 1, random(1,5), "HumandBulletPuff", 0, CBAF_NORANDOM)
	BCUL E 2 A_FaceTarget
	BCUL E 0 A_PlaySound("Revolver/Fire")
    BCUL F 2 BRIGHT A_CustomBulletAttack (5.0, 5.0, 1, random(1,5), "HumandBulletPuff", 0, CBAF_NORANDOM)
	BCUL E 2 A_FaceTarget
	BCUL E 0 A_PlaySound("Revolver/Fire")
    BCUL F 2 BRIGHT A_CustomBulletAttack (5.0, 5.0, 1, random(1,5), "HumandBulletPuff", 0, CBAF_NORANDOM)
	BCUL E 2 A_FaceTarget
	BCUL E 0 A_PlaySound("Revolver/Fire")
    BCUL F 2 BRIGHT A_CustomBulletAttack (5.0, 5.0, 1, random(1,5), "HumandBulletPuff", 0, CBAF_NORANDOM)
	BCUL E 2 A_FaceTarget
	BCUL E 0 A_PlaySound("Revolver/Fire")
    BCUL F 2 BRIGHT A_CustomBulletAttack (5.0, 5.0, 1, random(1,5), "HumandBulletPuff", 0, CBAF_NORANDOM)
	BCUL E 2 A_FaceTarget
	BCUL E 0 A_PlaySound("Revolver/Fire")
    BCUL F 2 BRIGHT A_CustomBulletAttack (5.0, 5.0, 1, random(1,5), "HumandBulletPuff", 0, CBAF_NORANDOM)
	BCUL E 2 A_FaceTarget
	BCUL E 0 A_PlaySound("Revolver/Fire")
    BCUL F 2 BRIGHT A_CustomBulletAttack (5.0, 5.0, 1, random(1,5), "HumandBulletPuff", 0, CBAF_NORANDOM)
	BCUL E 2 A_FaceTarget
	BCUL E 0 A_PlaySound("Revolver/Fire")
    BCUL F 2 BRIGHT A_CustomBulletAttack (5.0, 5.0, 1, random(1,5), "HumandBulletPuff", 0, CBAF_NORANDOM)
	BCUL E 2 A_FaceTarget
    Goto See
  Clear:
    BCUL A 0 A_ClearTarget
    BCUL AABBCCDD 2 A_Wander
    Goto See
  Pain:
    BCUL G 3
    BCUL G 3 A_Pain
    Goto See
  Death:
    BCUL H 5
    BCUL I 5 A_Scream
    BCUL J 5 A_NoBlocking
    BCUL KLM 5
    BCUL N -1
    Stop
  XDeath:
    BCUL O 5
    BCUL P 5 A_XScream
    BCUL Q 5 A_NoBlocking
    BCUL RST 5
    BCUL U -1
    Stop
  }
}