Actor SuperDemon 30097
{
	Monster
	Obituary "%o was crushed by a SuperDemon."
	Health 3000
	Radius 40//82SpriteW(120%=98)
	Height 100//108SpriteH(120%=130)
	Scale 1.2
	Mass 5000
	Speed 16
	MaxStepHeight 24
	MaxDropOffHeight 32
	BloodType "CyberDemon_Blood", "CyberDemon_SawBlood", "CyberDemon_Blood"
	PainChance 20
	seesound "cyber/sight"
	PainSound "CYBPAIN"
	deathsound "superdemon/death"
	activesound "cyber/active"
	Painchance "shock", 256
	Painchance "beartrap", 255
	PainChance "ChainCut", 200
	PainChance "ChainSaw", 200
	Painchance "Bleeding", 120 painchance "bleedingarmor", 129
	painchance "acid", 255
	painchance "kick", 255
	painchance "Fire", 60
	PainChance "Head", 40
	PainChance "KillMe", 64
	PainChance "Taunt", 255
	PainChance "Cut", 5
	painchance "bleeding", 256
	Painchance "Fatality", 90
	damagefactor "Chaincut", 0.7 damagefactor "chainsaw", 0.7
	damagefactor "HKFT", 0.05
	damagefactor "HKFT", 0.05
	damagefactor "slug", 1.2
	damagefactor "Decaptate", 5.0
	DamageFactor "Use", 0.0
	DamageFactor "shock", 2.0
	DamageFactor "Stealth", 0.0
	damagefactor "Avoid", 0.0
	damagefactor "GibRemoving", 0.0
	damagefactor "TeleportRemover", 0.0
	DamageFactor "CauseSplash", 0.0 DamageFactor "CauseObjectsToSplashSlime", 0.0 DamageFactor "CauseObjectsToSplashNukage", 0.0
	DamageFactor "CauseObjectsToSplashBlood", 0.0 DamageFactor "CauseObjectsToSplashLava", 0.0
	damagefactor "Crush", 20.0
	damagefactor "Blood", 0.0 damagefactor "BlueBlood", 0.0 damagefactor "GreenBlood", 0.0
	DropItem "DemonStrengthRune"
	DropItem "alphabloodspawner" 250
	DropItem "alphabloodspawner" 250
	Tag "Alpha Demon"
	Species "CyberDemon"
	+boss
	+FLOORCLIP
	+NOICEDEATH
	+MISSILEMORE
	+MISSILEEVENMORE
    +DONTRIP
	+QUICKTORETALIATE
	States
	{
	
	ReplaceForBOSS:
		TNT1 A 0
		TNT1 A 0 A_NoBlocking
		TNT1 A 0 ACS_NamedExecuteAlways("MapEnhancementE2M8")
		TNT1 A 0 A_ChangeFlag("THRUACTORS", 1)
		TNT1 A 0 A_ChangeFlag("COUNTKILL", 0)
		TNT1 A 0 A_SpawnItemEx ("CyberdemonBoss",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION | SXF_TRANSFERAMBUSHFLAG ,0)
		TNT1 A 0
		Stop
	
	ReplaceVanilla:
		TNT1 A 0 A_ChangeFlag("THRUACTORS", 1)
		TNT1 A 0 A_ChangeFlag("COUNTKILL", 0)
		TNT1 A 0 A_SpawnItemEx ("BaronofHell2",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION | SXF_TRANSFERAMBUSHFLAG | SXF_TRANSFERPOINTERS ,0, tid)
		Stop
	
		SpawnNospace:
		TNT1 A 0 A_ChangeFlag("THRUACTORS", 1)
		TNT1 A 0 A_ChangeFlag("COUNTKILL", 0)
		TNT1 A 0 A_SpawnItemEx ("BaronofHell2",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION | SXF_TRANSFERAMBUSHFLAG | SXF_TRANSFERPOINTERS ,0, tid)
		Stop
	
		Spawn:
			TNT1 A 0 
			TNT1 A 0 ACS_NamedExecuteWithResult("RADARSIGNAL",0)
			//
			//TNT1 A 0 A_JumpIf(x == -1472, "ReplaceForBOSS")
			TNT1 A 0 A_Checkceiling("SpawnnoSpace")
			TNT1 A 0 A_JUMPIF(GETCVAR("monsterspawns")==4, "ReplaceVanilla")
			//
			TNT1 A 0 A_GiveInventory("TargetIsACyberdemon")
			SUPR C 1
	Givearmor:
		TNT1 A 0 A_JumpIf(GetCVAR("EnemyArmorValue")==true,1)
		goto STAND
		TNT1 A 0 A_GiveInventory("40armorSUPER")
		TNT1 A 0 A_GiveInventory("hasLIGHTarmor")
		goto STAND  

		Stand:
			SUPR A 10 A_Look
			SUPR B 10 A_Look
			Loop
	
		Death.KillMe:
		Death.Taunt:
			TNT1 A 0 A_ChangeFlag("SOLID", 0)
			TNT1 A 0 A_SpawnItem("SuperDemon")
		Stop

pain.beartrap:
TNT1 A 0 a_spawnitem("beartraprip",0,0)	
goto pain.acid

PAIN.SYRINGE2:
	TNT1 A 0 A_CHANGEFLAG("FORCEINFIGHTING",1)
	TNT1 A 0 A_CHANGEFLAG("DOHARMSPECIES",1)
	TNT1 A 0 A_CHANGEFLAG("DONTHARMSPECIES",0)
	TNT1 A 0 A_CHANGEFLAG("DONTHARMCLASS",0)
	TNT1 A 0 A_CHANGEFLAG("NOINFIGHTSPECIES",0)
	TNT1 A 0 A_CHANGEFLAG("NOINFIGHTING",0)
	TNT1 A 0 A_CLEARTARGET
	TNT1 A 0 A_EXPLODE(1,270,XF_NOTMISSILE | XF_EXPLICITDAMAGETYPE,0,270,0,0,"bulletpuff","frenzytrigger")
	goto see
PAIN.FRENZYTRIGGER:
	TNT1 A 0 Healthing(1)
	TNT1 A 0 A_CHANGEFLAG("FORCEINFIGHTING",1)
	TNT1 A 0 A_CHANGEFLAG("DOHARMSPECIES",1)
	TNT1 A 0 A_CHANGEFLAG("DONTHARMSPECIES",0)
	TNT1 A 0 A_CHANGEFLAG("DONTHARMCLASS",0)
	TNT1 A 0 A_CHANGEFLAG("NOINFIGHTSPECIES",0)
	TNT1 A 0 A_CHANGEFLAG("NOINFIGHTING",0)
  goto See

pain.bleedingarmor:	  
Pain.Bleeding:
	TNT1 A 0 A_CustomMissile ("Brutal_FlyingBlood", 55, 0, random (0, 360), 2, random (0, 160))
	TNT1 A 0 a_Jump(200, "See")
	goto Pain

	PAIN.SYRINGE1:
	TNT1 A 0 A_JUMPIFinventory("syringedonce",1,3)
	TNT1 A 0 A_JUMPIFHEALTHLOWER(900,2)
	TNT1 A 0 A_GIVEINVENTORY("syringedonce",1)
	goto pain.acid
	tnt1 a 0 givebody(2000)
	TNT1 A 0 A_CHANGEFLAG("FRIENDLY",1)
	goto pain.acid
	Pain.Shock:
	TNT1 A 0 A_spawnitem("plasmaexplosion",0,30)
	TNT1 A 0 A_giveinventory("shockcharge",1)
	TNT1 A 0 A_playsound("Sparks/Spawn", CHAN_7)
	PAIN.ACID:
	SUPR G 10 A_Pain
		Pain:
			SUPR G 10 A_Pain
			TNT1 A 0 A_JumpIfInventory ("shockcharge", 1, "Shocked")
		goto See

		Pain.KillMe:
			TNT1 A 0
			Goto See
			
	Shocked:
	TNT1 A 0 A_takeinventory("shockcharge",1)
	TNT1 A 0 A_spawnitem("plasmashockbeeg",0,70)
	TNT1 A 0 A_DamageSelf(2,"plasma")
	goto Pain	
			
		See:
			SUPR AAAA 2 A_Chase
			TNT1 A 0 A_PlaySound("Cyber/Hoof",5)
			SUPR BBBB 2 A_Chase
			SUPR CCCC 2 A_Chase
			TNT1 A 0 A_PlaySound("Cyber/Hoof",5)
			SUPR DDDD 2 A_Chase
			TNT1 A 0 A_JumpIfintargetInventory("predatormode", 1, "Stand")
			Loop
			
		Missile://Y=62 | X=44.5, -44.5
			TNT1 A 0 A_Jump(64, "SpecialAttack")
			SUPR G 4 A_FaceTarget
			
			SUPR E 2 A_FaceTarget
			TNT1 A 0 bright A_CustomMissile ("SmallFlameTrails", 74, 53, random (0, 360), 2, random (70, 110))
			TNT1 A 0 A_CustomMissile ("ImBallGettingReady", 74, 53, random (0, 140), 2, random (0, 160))
			SUPR E 2 A_FaceTarget
			TNT1 A 0 bright A_CustomMissile ("SmallFlameTrails", 74, 53, random (0, 360), 2, random (70, 110))
			TNT1 A 0 A_CustomMissile ("ImBallGettingReady", 74, 53, random (0, 140), 2, random (0, 160))
			SUPR E 2 A_FaceTarget
			TNT1 A 0 bright A_CustomMissile ("SmallFlameTrails", 74, 53, random (0, 360), 2, random (70, 110))
			TNT1 A 0 A_CustomMissile ("ImBallGettingReady", 74, 53, random (0, 140), 2, random (0, 160))
			SUPR E 2 A_FaceTarget
			TNT1 A 0 bright A_CustomMissile ("SmallFlameTrails", 74, 53, random (0, 360), 2, random (70, 110))
			TNT1 A 0 A_CustomMissile ("ImBallGettingReady", 74, 53, random (0, 140), 2, random (0, 160))
			
			SUPR F 4 BRIGHT A_CustomMissile("SuperDemonBall", 65, 0, 0)
			TNT1 A 0 A_Jump(128, "Missile2")
			Goto See
		
		Missile2:
			SUPR P 4 A_FaceTarget
			
			SUPR Q 2 A_FaceTarget
			TNT1 A 0 bright A_CustomMissile ("SmallFlameTrails", 74, -53, random (0, 360), 2, random (70, 110))
			TNT1 A 0 A_CustomMissile ("ImBallGettingReady", 74, -53, random (0, 140), 2, random (0, 160))
			SUPR Q 2 A_FaceTarget
			TNT1 A 0 bright A_CustomMissile ("SmallFlameTrails", 74, -53, random (0, 360), 2, random (70, 110))
			TNT1 A 0 A_CustomMissile ("ImBallGettingReady", 74, -53, random (0, 140), 2, random (0, 160))
			SUPR Q 2 A_FaceTarget
			TNT1 A 0 bright A_CustomMissile ("SmallFlameTrails", 74, -53, random (0, 360), 2, random (70, 110))
			TNT1 A 0 A_CustomMissile ("ImBallGettingReady", 74, -53, random (0, 140), 2, random (0, 160))
			SUPR Q 2 A_FaceTarget
			TNT1 A 0 bright A_CustomMissile ("SmallFlameTrails", 74, -53, random (0, 360), 2, random (70, 110))
			TNT1 A 0 A_CustomMissile ("ImBallGettingReady", 74, -53, random (0, 140), 2, random (0, 160))
			
			SUPR R 4 BRIGHT A_CustomMissile("SuperDemonBall", 65, 0, 0)
			Goto See
			
		SpecialAttack://Y=61 | X=56, -56
			TNT1 A 0 A_PlaySound("Cyber/Sight")
			SUPR S 16 A_FaceTarget
			
			SUPR T 2 A_FaceTarget
			TNT1 A 0 bright A_CustomMissile ("SmallFlameTrails", 73, 67, random (0, 360), 2, random (70, 110))
			TNT1 A 0 bright A_CustomMissile ("SmallFlameTrails", 73, -67, random (0, 360), 2, random (70, 110))
			TNT1 A 0 A_CustomMissile ("ImBallGettingReady", 73, 67, random (0, 140), 2, random (0, 160))
			TNT1 A 0 A_CustomMissile ("ImBallGettingReady", 73, -67, random (0, 140), 2, random (0, 160))
			SUPR T 2 A_FaceTarget
			TNT1 A 0 bright A_CustomMissile ("SmallFlameTrails", 73, 67, random (0, 360), 2, random (70, 110))
			TNT1 A 0 bright A_CustomMissile ("SmallFlameTrails", 73, -67, random (0, 360), 2, random (70, 110))
			TNT1 A 0 A_CustomMissile ("ImBallGettingReady", 73, 67, random (0, 140), 2, random (0, 160))
			TNT1 A 0 A_CustomMissile ("ImBallGettingReady", 73, -67, random (0, 140), 2, random (0, 160))
			SUPR T 2 A_FaceTarget
			TNT1 A 0 bright A_CustomMissile ("SmallFlameTrails", 73, 67, random (0, 360), 2, random (70, 110))
			TNT1 A 0 bright A_CustomMissile ("SmallFlameTrails", 73, -67, random (0, 360), 2, random (70, 110))
			TNT1 A 0 A_CustomMissile ("ImBallGettingReady", 73, 67, random (0, 140), 2, random (0, 160))
			TNT1 A 0 A_CustomMissile ("ImBallGettingReady", 73, -67, random (0, 140), 2, random (0, 160))
			SUPR T 2 A_FaceTarget
			TNT1 A 0 bright A_CustomMissile ("SmallFlameTrails", 73, 67, random (0, 360), 2, random (70, 110))
			TNT1 A 0 bright A_CustomMissile ("SmallFlameTrails", 73, -67, random (0, 360), 2, random (70, 110))
			TNT1 A 0 A_CustomMissile ("ImBallGettingReady", 73, 67, random (0, 140), 2, random (0, 160))
			TNT1 A 0 A_CustomMissile ("ImBallGettingReady", 73, -67, random (0, 140), 2, random (0, 160))
			SUPR T 2 A_FaceTarget
			TNT1 A 0 bright A_CustomMissile ("SmallFlameTrails", 73, 67, random (0, 360), 2, random (70, 110))
			TNT1 A 0 bright A_CustomMissile ("SmallFlameTrails", 73, -67, random (0, 360), 2, random (70, 110))
			TNT1 A 0 A_CustomMissile ("ImBallGettingReady", 73, 67, random (0, 140), 2, random (0, 160))
			TNT1 A 0 A_CustomMissile ("ImBallGettingReady", 73, -67, random (0, 140), 2, random (0, 160))
			SUPR T 2 A_FaceTarget
			TNT1 A 0 bright A_CustomMissile ("SmallFlameTrails", 73, 67, random (0, 360), 2, random (70, 110))
			TNT1 A 0 bright A_CustomMissile ("SmallFlameTrails", 73, -67, random (0, 360), 2, random (70, 110))
			TNT1 A 0 A_CustomMissile ("ImBallGettingReady", 73, 67, random (0, 140), 2, random (0, 160))
			TNT1 A 0 A_CustomMissile ("ImBallGettingReady", 73, -67, random (0, 140), 2, random (0, 160))
			SUPR T 2 A_FaceTarget
			TNT1 A 0 bright A_CustomMissile ("SmallFlameTrails", 73, 67, random (0, 360), 2, random (70, 110))
			TNT1 A 0 bright A_CustomMissile ("SmallFlameTrails", 73, -67, random (0, 360), 2, random (70, 110))
			TNT1 A 0 A_CustomMissile ("ImBallGettingReady", 73, 67, random (0, 140), 2, random (0, 160))
			TNT1 A 0 A_CustomMissile ("ImBallGettingReady", 73, -67, random (0, 140), 2, random (0, 160))
			SUPR T 2 A_FaceTarget
			TNT1 A 0 bright A_CustomMissile ("SmallFlameTrails", 73, 67, random (0, 360), 2, random (70, 110))
			TNT1 A 0 bright A_CustomMissile ("SmallFlameTrails", 73, -67, random (0, 360), 2, random (70, 110))
			TNT1 A 0 A_CustomMissile ("ImBallGettingReady", 73, 67, random (0, 140), 2, random (0, 160))
			TNT1 A 0 A_CustomMissile ("ImBallGettingReady", 73, -67, random (0, 140), 2, random (0, 160))
			
			TNT1 A 0 A_PlaySound("BFGEXPL2")
			SUPR U 8 BRIGHT A_FaceTarget
			TNT1 A 0 A_CustomMissile("SuperDemonBall", 65, 0, 9, 11) 
			TNT1 A 0 A_CustomMissile("SuperDemonBall", 65, 0, -9, 11)
			TNT1 A 0 A_CustomMissile("SuperDemonBall", 65, 0, 0, 11)
			Goto See

Death.ChainCut:
Death.ChainSaw:
		TNT1 A 0 A_SpawnItemEx("HealthPlusFatalityBonus", 0, 0, 20, random (-1, 1), random (-1, 1), 8)
		TNT1 A 0 A_SpawnItemEx("Armorgem", 0, 0, 20, random (-1, 1), random (-1, 1), 8)			
Death.Saw:
TNT1 A 0 A_SpawnItemEx("HealthPlusFatalityBonus", 0, 0, 4, random (-1, 1), random (-1, 1), 5)
TNT1 A 0 A_SpawnItemEx("HealthPlusFatalityBonus", 0, 0, 4, random (-1, 1), random (-1, 1), 5)
TNT1 A 0 A_SpawnItemEx("HealthPlusFatalityBonus", 0, 0, 4, random (-1, 1), random (-1, 1), 5)
TNT1 A 0 A_SpawnItemEx("HealthPlusFatalityBonus", 0, 0, 4, random (-1, 1), random (-1, 1), 5)
TNT1 A 0 A_SpawnItemEx("HealthPlusFatalityBonus", 0, 0, 4, random (-1, 1), random (-1, 1), 5)
TNT1 AA 0 A_SpawnItemEx("Armorgem", 0, 0, 32, random (-1, 1), random (-1, 1), 5)
TNT1 AA 0 A_SpawnItemEx("Armorgem", 0, 0, 32, random (-1, 1), random (-1, 1), 5)
TNT1 AA 0 A_SpawnItemEx("Armorgem", 0, 0, 32, random (-1, 1), random (-1, 1), 5)
TNT1 AA 0 A_SpawnItemEx("Armorgem", 0, 0, 32, random (-1, 1), random (-1, 1), 5)
TNT1 AA 0 A_SpawnItemEx("Armorgem", 0, 0, 32, random (-1, 1), random (-1, 1), 5)
Death.Cut:
TNT1 A 0 A_SpawnItemEx("HealthPlusFatalityBonus", 0, 0, 4, random (-1, 1), random (-1, 1), 5)
TNT1 A 0 A_SpawnItemEx("HealthPlusFatalityBonus", 0, 0, 4, random (-1, 1), random (-1, 1), 5)
TNT1 A 0 A_SpawnItemEx("HealthPlusFatalityBonus", 0, 0, 4, random (-1, 1), random (-1, 1), 5)
TNT1 A 0 A_SpawnItemEx("HealthPlusFatalityBonus", 0, 0, 4, random (-1, 1), random (-1, 1), 5)
TNT1 A 0 A_SpawnItemEx("HealthPlusFatalityBonus", 0, 0, 4, random (-1, 1), random (-1, 1), 5)
TNT1 AA 0 A_SpawnItemEx("Armorgem", 0, 0, 32, random (-1, 1), random (-1, 1), 5)
TNT1 AA 0 A_SpawnItemEx("Armorgem", 0, 0, 32, random (-1, 1), random (-1, 1), 5)
TNT1 AA 0 A_SpawnItemEx("Armorgem", 0, 0, 32, random (-1, 1), random (-1, 1), 5)
TNT1 AA 0 A_SpawnItemEx("Armorgem", 0, 0, 32, random (-1, 1), random (-1, 1), 5)
TNT1 AA 0 A_SpawnItemEx("Armorgem", 0, 0, 32, random (-1, 1), random (-1, 1), 5)

		death.RailgunBig:
		Death:
			SUPR H 3 A_PlaySound ("SuperDemon/Snarl")
			SUPR H 3 A_CustomMissile("Brutal_FlyingBlood", 0, 0, random (-80, -100), 2, random(45, 80))
			SUPR I 3 A_Scream
			SUPR I 3 A_CustomMissile("Brutal_FlyingBlood", 0, 0, random (-80, -100), 2, random(45, 80))
			SUPR J 2 A_CustomMissile("SuperDemonArm", 45, -50, -50)

 TNT1 AAAA 0 A_CustomMissile ("UltraGoreSPawner", 90, 0, random (0, 360), 2, random (0, 180))
TNT1 A 0 A_CustomMissile ("CyberXDeath", 0, 0, random (0, 360), 2, random (0, 160))	

			SUPR KL 4 A_CustomMissile("Brutal_FlyingBlood", 0, 0, random (-80, -100), 2, random(45, 80))
			SUPR M 6 A_PlaySound("Superdemon/Crash")
			SUPR N 6 A_CustomMissile("Brutal_FlyingBlood", 0, 0, random (-80, -100), 2, random(45, 80))
			SUPR O 6 A_CustomMissile("Brutal_FlyingBlood", 0, 0, random (-80, -100), 2, random(45, 80))
			TNT1 A 0 A_NoBlocking
			SUPR O -1 
	}
}

ACTOR SuperDemonArm
{
   Radius 10
   Height 8
   Speed 1
   Damage 1
   Scale 1
   PROJECTILE
   -NOGRAVITY
   +LOWGRAVITY
   States
   {
	Spawn:
		TNT1 A 0 A_SpawnItem("Brutal_BloodSpot",0,0,0,1)
		TNT1 A 0 A_JumpIf(waterlevel > 1, "Death")
		SUPH ABC 5 A_CustomMissile("Brutal_FlyingBloodTrail5",0,0,random(-80,-100),2,random(45,80))
		Goto Death
	Death:
		SUPH D 5 
		SUPH E -1
		Stop
   }
}

actor SuperDemonBall : BelphegorGreenPlasmaBall
{
decal "scorch"
  States
	{
	Spawn:
	    TNT1 A 0 A_SpawnItem("RedFlare22",0,0)
		BAL9 K 1 BRIGHT A_SpawnItemEx("SmallExplosionFlames", 0, 0, 0, 0, 0, 0, 0, 128) 
		Loop
	
	Death:
		BFE1 A 0 Bright
		EXPL A 0 Radius_Quake (2, 54, 0, 15, 0)
		BFE1 A 0 Bright A_Explode(32, 96, 1)
        TNT1 AAAA 0 A_CustomMissile ("ExplosionFlames", 2, 0, random (0, 360), 2, random (0, 360))
        EXPL A 0 A_CustomMissile ("BigNeoSmoke", 0, 0, random (0, 360), 2, random (0, 360))
		TNT1 BCDEF 2 Bright
		TNT1 AAAA 2 A_CustomMissile ("BigNeoSmoke", 2, 0, random (0, 360), 2, random (0, 360))
		Stop
	}
}