ACTOR Juggernaut : Fatso 2545
{
	//$category "BD Monsters"
	Game Doom
    GibHealth 25
	Health 5000
	Radius 106//112SpriteW(188%=211)
	Height 150//80SpriteH(188%=150)
	Scale 1.88
	Mass 7500
	Speed 8
	MaxStepHeight 24
	MaxDropOffHeight 32
	PainChance 30
	Bloodtype "MastermindBlood"
	DropItem "DemonStrengthRune" 25
	PainSound "juggernaut/pain"
	DeathSound "juggernaut/death"
	ActiveSound "juggernaut/roam"
	SeeSound "juggernaut/see"
	Obituary "%o was destroyed by the Juggernaut"
	MinMissileChance 150
	DeathHeight 4
	BurnHeight 0
	+NOICEDEATH
	+BOSS
	+FLOORCLIP
    +DONTRIP
	+DONTMORPH
	+BOSSDEATH
    +NORADIUSDMG
	+MISSILEMORE
	+SOLID
	+MISSILEEVENMORE
	+SHOOTABLE
	damagefactor "Avoid", 0.0
	PainChance "Kick", 255
	damagefactor "Head", 2.0
	damagefactor "Stomp", 0.0
	damagefactor "GibRemoving", 0.0
	damagefactor "MINORHead", 1.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
	Painchance "Explosive", 50
    damagefactor "Blood", 0.0 damagefactor "BlueBlood", 0.0 damagefactor "GreenBlood", 0.0
    damagefactor "Shrapnel", 0.4
	damagefactor "Explosive", 1.3
	Tag "Juggernaut"
	Species "TheSpiderMastermind"
	States
	{
	/////////////////////
	Spawn:
		BS1W A 1
	    TNT1 A 0 A_SpawnItemEx ("KillTreads",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
		Goto Standby
	
	Standby:
	    BS1W A 1
	    BS1W AC 10 A_Look
	    Loop
		
	//////////////////
	
	See:
	    BS1W A 1 A_FaceTarget
		Goto Rolling
	
	Rolling:
		TNT1 A 0
		TNT1 A 0 A_PlaySound("juggernaut/engine")
	    BS1W AAABBBCCCDDD 2 A_Chase
		TNT1 A 0 A_SpawnItem("TreadsDamage", 106)
		TNT1 A 0 A_PlaySound("juggernaut/engine")
	    BS1W AAABBBCCCDDD 2 A_Chase
		TNT1 A 0 A_SpawnItem("TreadsDamage", 106)
		TNT1 A 0 A_Jump (128, "Rolling2")
		TNT1 A 0 A_CheckSight("See")
		Loop
		
	Rolling2:
		TNT1 A 0
		TNT1 A 0 A_PlaySound("juggernaut/engine")
		TNT1 A 0 A_CustomMissile ("JuggernautBody1", 0)//Torso not shooting
		BS1B A 2 A_Chase//Tracks
		TNT1 A 0 A_CustomMissile ("JuggernautBody1", 0)
		BS1B A 2 A_Chase
		TNT1 A 0 A_CustomMissile ("JuggernautBody1", 0)
		BS1B A 2 A_Chase
		TNT1 A 0 A_CustomMissile ("JuggernautBody1", 0)
		BS1B A 2 A_Chase
		TNT1 A 0 A_CustomMissile ("JuggernautBody1", 0)
		BS1B A 2 A_Chase
		TNT1 A 0 A_CustomMissile ("JuggernautBody1", 0)
		BS1B A 2 A_Chase
		
		TNT1 A 0 A_CustomMissile ("JuggernautBody1", 0)
		BS1B A 2 A_Chase
		TNT1 A 0 A_CustomMissile ("JuggernautBody1", 0)
		BS1B A 2 A_Chase
		TNT1 A 0 A_CustomMissile ("JuggernautBody1", 0)
		BS1B A 2 A_Chase
		TNT1 A 0 A_CustomMissile ("JuggernautBody1", 0)
		BS1B A 2 A_Chase
		TNT1 A 0 A_CustomMissile ("JuggernautBody1", 0)
		BS1B A 2 A_Chase
		TNT1 A 0 A_CustomMissile ("JuggernautBody1", 0)
		BS1B A 2 A_Chase
		TNT1 A 0 A_SpawnItem("TreadsDamage", 106)
		
		TNT1 A 0 A_CheckSight("Rolling")
		Goto Missile
		
	///////////////////	
	
	Missile:
		TNT1 A 0 A_JumpIfCloser(362, "FireMachinegun")
		TNT1 A 0 A_Jump(64, "FireRockets")
		TNT1 A 0 A_PlaySound("CHAINSTA")
		TNT1 A 0 A_PlaySound("juggernaut/engine")
		TNT1 A 0 A_CustomMissile ("JuggernautBody1", 0)
		BS1B A 2 A_FaceTarget
		TNT1 A 0 A_CustomMissile ("JuggernautBody1", 0)
		BS1B A 2 A_FaceTarget
		TNT1 A 0 A_CustomMissile ("JuggernautBody1", 0)
		BS1B A 2 A_FaceTarget
		TNT1 A 0 A_CheckSight("Rolling")
		Goto FireMachinegun
		
    FireMachinegun://Y=54 | X=31, -31
		TNT1 A 0
		TNT1 A 0 A_CheckSight("Rolling")
		TNT1 A 0 A_CustomMissile ("JuggernautBody2", 0)//Torso shooting
		BS1B A 2 A_Chase//Tracks
		TNT1 A 0 A_CustomMissile("MastermindTracer", 102, 58, random(-4, 4), 0)
		TNT1 A 0 A_CustomMissile("MastermindTracer", 102, -58, random(-4, 4), 0)
		TNT1 A 0 A_CustomMissile("OrangeLensFlareAlt", 102, 58, random(-4, 4), 0)
		TNT1 A 0 A_CustomMissile("OrangeLensFlareAlt", 102, -58, random(-4, 4), 0)
		TNT1 A 0 A_CustomMissile("MasterMindCaseSpawn", 102, 58, angle-90, CMF_ABSOLUTEANGLE)
		TNT1 A 0 A_CustomMissile("MasterMindCaseSpawn", 102, -58, angle-270, CMF_ABSOLUTEANGLE)
		TNT1 A 0 A_CustomMissile ("JuggernautBody1", 0)//Torso not shooting
		BS1B A 2 A_Chase//Tracks
		TNT1 A 0 A_GiveInventory("JuggernautMachinegunAmmo", 2)
		TNT1 A 0 A_JumpIfInventory("JuggernautMachinegunAmmo", 60, "StopFiring")
		Goto FireMachinegun
		
	FireRockets://Y=72, 63, 54 | X= 47, -47
	    TNT1 A 0
		TNT1 A 0 A_JumpIfCloser(362, "FireMachinegun")//avoid it's own splash damage
		
		TNT1 A 0 A_CustomMissile ("JuggernautBody1", 0)
		BS1B A 2 A_FaceTarget
		TNT1 A 0 A_CustomMissile ("JuggernautBody1", 0)
		BS1B A 2 A_FaceTarget
		TNT1 A 0 A_CustomMissile ("JuggernautBody1", 0)
		BS1B A 2 A_FaceTarget
		TNT1 A 0 A_CustomMissile("JuggernautRocket", 135, 88, random(-3, 3), 0)
		TNT1 A 0 Radius_Quake(4, 3, 0, 15, 0)
		TNT1 A 0 A_PlaySOund("RLANSHOT", 1)
		TNT1 A 0 A_CustomMissile ("JuggernautBody1", 0)
		BS1B A 2 A_FaceTarget
		TNT1 A 0 A_CustomMissile ("JuggernautBody1", 0)
		BS1B A 2 A_FaceTarget
		TNT1 A 0 A_CustomMissile ("JuggernautBody1", 0)
		BS1B A 2 A_FaceTarget
		
		TNT1 A 0 A_CustomMissile ("JuggernautBody1", 0)
		BS1B A 2 A_FaceTarget
		TNT1 A 0 A_CustomMissile ("JuggernautBody1", 0)
		BS1B A 2 A_FaceTarget
		TNT1 A 0 A_CustomMissile ("JuggernautBody1", 0)
		BS1B A 2 A_FaceTarget
		TNT1 A 0 A_CustomMissile("JuggernautRocket", 135, -88, random(-3, 3), 0)
		TNT1 A 0 Radius_Quake(4, 3, 0, 15, 0)
		TNT1 A 0 A_PlaySOund("RLANSHOT", 1)
		TNT1 A 0 A_CustomMissile ("JuggernautBody1", 0)
		BS1B A 2 A_FaceTarget
		TNT1 A 0 A_CustomMissile ("JuggernautBody1", 0)
		BS1B A 2 A_FaceTarget
		TNT1 A 0 A_CustomMissile ("JuggernautBody1", 0)
		BS1B A 2 A_FaceTarget
		
		TNT1 A 0 A_CheckSight("Rolling")
		TNT1 A 0 A_PlaySound("juggernaut/engine")
		TNT1 A 0 A_JumpIfCloser(362, "FireMachinegun")//avoid it's own splash damage
		TNT1 A 0 A_CustomMissile ("JuggernautBody1", 0)
		BS1B A 2 A_FaceTarget
		TNT1 A 0 A_CustomMissile ("JuggernautBody1", 0)
		BS1B A 2 A_FaceTarget
		TNT1 A 0 A_CustomMissile ("JuggernautBody1", 0)
		BS1B A 2 A_FaceTarget
		TNT1 A 0 A_CustomMissile("JuggernautRocket", 118, 88, random(-3, 3), 0)
		TNT1 A 0 Radius_Quake(4, 3, 0, 15, 0)
		TNT1 A 0 A_PlaySOund("RLANSHOT", 1)
		TNT1 A 0 A_CustomMissile ("JuggernautBody1", 0)
		BS1B A 2 A_FaceTarget
		TNT1 A 0 A_CustomMissile ("JuggernautBody1", 0)
		BS1B A 2 A_FaceTarget
		TNT1 A 0 A_CustomMissile ("JuggernautBody1", 0)
		BS1B A 2 A_FaceTarget
		
		TNT1 A 0 A_CustomMissile ("JuggernautBody1", 0)
		BS1B A 2 A_FaceTarget
		TNT1 A 0 A_CustomMissile ("JuggernautBody1", 0)
		BS1B A 2 A_FaceTarget
		TNT1 A 0 A_CustomMissile ("JuggernautBody1", 0)
		BS1B A 2 A_FaceTarget
		TNT1 A 0 A_CustomMissile("JuggernautRocket", 118, -88, random(-3, 3), 0)
		TNT1 A 0 Radius_Quake(4, 3, 0, 15, 0)
		TNT1 A 0 A_PlaySOund("RLANSHOT", 1)
		TNT1 A 0 A_CustomMissile ("JuggernautBody1", 0)
		BS1B A 2 A_FaceTarget
		TNT1 A 0 A_CustomMissile ("JuggernautBody1", 0)
		BS1B A 2 A_FaceTarget
		TNT1 A 0 A_CustomMissile ("JuggernautBody1", 0)
		BS1B A 2 A_FaceTarget
		
		TNT1 A 0 A_CheckSight("Rolling")
		TNT1 A 0 A_PlaySound("juggernaut/engine")
		TNT1 A 0 A_JumpIfCloser(362, "FireMachinegun")//avoid it's own splash damage
		TNT1 A 0 A_CustomMissile ("JuggernautBody1", 0)
		BS1B A 2 A_FaceTarget
		TNT1 A 0 A_CustomMissile ("JuggernautBody1", 0)
		BS1B A 2 A_FaceTarget
		TNT1 A 0 A_CustomMissile ("JuggernautBody1", 0)
		BS1B A 2 A_FaceTarget
		TNT1 A 0 A_CustomMissile("JuggernautRocket", 102, 88, random(-3, 3), 0)
		TNT1 A 0 Radius_Quake(4, 3, 0, 15, 0)
		TNT1 A 0 A_PlaySOund("RLANSHOT", 1)
		TNT1 A 0 A_CustomMissile ("JuggernautBody1", 0)
		BS1B A 2 A_FaceTarget
		TNT1 A 0 A_CustomMissile ("JuggernautBody1", 0)
		BS1B A 2 A_FaceTarget
		TNT1 A 0 A_CustomMissile ("JuggernautBody1", 0)
		BS1B A 2 A_FaceTarget
		
		TNT1 A 0 A_CustomMissile ("JuggernautBody1", 0)
		BS1B A 2 A_FaceTarget
		TNT1 A 0 A_CustomMissile ("JuggernautBody1", 0)
		BS1B A 2 A_FaceTarget
		TNT1 A 0 A_CustomMissile ("JuggernautBody1", 0)
		BS1B A 2 A_FaceTarget
		TNT1 A 0 A_CustomMissile("JuggernautRocket", 102, -88, random(-3, 3), 0)
		TNT1 A 0 Radius_Quake(4, 3, 0, 15, 0)
		TNT1 A 0 A_PlaySOund("RLANSHOT", 1)
		TNT1 A 0 A_CustomMissile ("JuggernautBody1", 0)
		BS1B A 2 A_FaceTarget
		TNT1 A 0 A_CustomMissile ("JuggernautBody1", 0)
		BS1B A 2 A_FaceTarget
		TNT1 A 0 A_CustomMissile ("JuggernautBody1", 0)
		BS1B A 2 A_FaceTarget
		Goto Rolling
    
	StopFiring:
		TNT1 A 0
		TNT1 A 0 A_TakeInventory("JuggernautMachinegunAmmo", 60)
		Goto Rolling
		
	////////////////////
	Pain:	
	    TNT1 A 0
	    BS1W A 2
		BS1W A 2 A_Pain
		Goto Rolling
		
		
	///////////////////////
	Death:
	    TNT1 A 0
		TNT1 A 0 A_Scream
		TNT1 A 0 A_NoBlocking
		TNT1 A 0 A_SpawnItem("KillTreads")
		EXPL A 0 Radius_Quake (6, 100, 0, 22, 0)
        TNT1 AAAA 0 A_CustomMissile ("ExplosionSpawner", 90, 0, random (0, 360), 2, random (0, 180))
        TNT1 AAAAAA 0 A_CustomMissile ("ExplosionSpawner", 90, 0, random (0, 180), 2, random (0, 180))
        TNT1 AAAA 0 A_CustomMissile ("UltraGoreSPawner", 90, 0, random (0, 360), 2, random (0, 180))
        TNT1 AAAAAA 0 A_CustomMissile ("UltraGoreSpawner", 90, 0, random (0, 180), 2, random (0, 180))
        TNT1 A 0 A_CustomMissile ("CyberXDeath", 0, 0, random (0, 360), 2, random (0, 160))
		TNT1 A 0
		BS1B B 5 A_CustomMissile ("ExplosionSmoke", 60, 0, random (0, 360), 2, random (70, 110))
		BS1B B 5 A_CustomMissile ("RealFlameTrailsMedium", 60, 0, random (0, 360), 2, random (0, 160))
				BS1B B 5 A_CustomMissile ("ExplosionSmoke", 60, 0, random (0, 360), 2, random (70, 110))
		BS1B B 5 A_CustomMissile ("RealFlameTrailsMedium", 60, 0, random (0, 360), 2, random (0, 160))
				BS1B B 5 A_CustomMissile ("ExplosionSmoke", 60, 0, random (0, 360), 2, random (70, 110))
		BS1B B 5 A_CustomMissile ("RealFlameTrailsMedium", 60, 0, random (0, 360), 2, random (0, 160))
				BS1B B 5 A_CustomMissile ("ExplosionSmoke", 60, 0, random (0, 360), 2, random (70, 110))
		BS1B B 5 A_CustomMissile ("RealFlameTrailsMedium", 60, 0, random (0, 360), 2, random (0, 160))
				BS1B B 5 A_CustomMissile ("ExplosionSmoke", 60, 0, random (0, 360), 2, random (70, 110))
		BS1B B 5 A_CustomMissile ("RealFlameTrailsMedium", 60, 0, random (0, 360), 2, random (0, 160))
				BS1B B 5 A_CustomMissile ("ExplosionSmoke", 60, 0, random (0, 360), 2, random (70, 110))
		BS1B B 5 A_CustomMissile ("RealFlameTrailsMedium", 60, 0, random (0, 360), 2, random (0, 160))
				BS1B B 5 A_CustomMissile ("ExplosionSmoke", 60, 0, random (0, 360), 2, random (70, 110))
		BS1B B 5 A_CustomMissile ("RealFlameTrailsMedium", 60, 0, random (0, 360), 2, random (0, 160))
				BS1B B 5 A_CustomMissile ("ExplosionSmoke", 60, 0, random (0, 360), 2, random (70, 110))
		BS1B B 5 A_CustomMissile ("RealFlameTrailsMedium", 60, 0, random (0, 360), 2, random (0, 160))
				BS1B B 5 A_CustomMissile ("ExplosionSmoke", 60, 0, random (0, 360), 2, random (70, 110))
		BS1B B 5 A_CustomMissile ("RealFlameTrailsMedium", 60, 0, random (0, 360), 2, random (0, 160))
				BS1B B 5 A_CustomMissile ("ExplosionSmoke", 60, 0, random (0, 360), 2, random (70, 110))
		BS1B B 5 A_CustomMissile ("RealFlameTrailsMedium", 60, 0, random (0, 360), 2, random (0, 160))
				BS1B B 5 A_CustomMissile ("ExplosionSmoke", 60, 0, random (0, 360), 2, random (70, 110))
		BS1B B 5 A_CustomMissile ("RealFlameTrailsMedium", 60, 0, random (0, 360), 2, random (0, 160))
		Goto Decay
		
		Decay:
		BS1B B 8 A_CustomMissile ("ExplosionSmoke", 60, 0, random (0, 360), 2, random (70, 110))
		Loop
		
	Pain.Killme:
	Pain.Taunt:
		TNT1 A 0
		TNT1 A 0 HealThing(1)
		Goto Missile	 
	}
} 

actor JuggernautBase : CurbstompedMarine
{
	Health 10000
	damagefactor "Killme", 9999.0
	Radius 64
	Height 2
	Scale 1.5
	Monster
	+NOBLOOD
	+SOLID
	-NOBLOCKMAP
	-COUNTKILL
	Mass 99999
	States
	{
	Spawn:
	BS1B A 5
	Loop
	
	Death:
	TNT1 A 0
	TNT1 A 0 A_NoBlocking
	Stop
	}
}


actor KillTreads
{
+NOTARGET
Radius 1
Height 1
DamageType Killme
+NOGRAVITY
+NOTELEPORT
+NODAMAGETHRUST
+THRUGHOST
+NORADIUSDMG
+NOEXTREMEDEATH
+FORCERADIUSDMG
PROJECTILE
	+DEHEXPLOSION
	+ACTIVATEMCROSS
States
{
Spawn:
TNT1 A 0
        TNT1 A 0 A_Explode(20,80,0)
Stop
 }
}


actor TreadsDamage
{
+NOTARGET
Radius 1
Height 1
DamageType Stomp
+NOGRAVITY
+NOTELEPORT
+NODAMAGETHRUST
+THRUGHOST
+NORADIUSDMG
+NOEXTREMEDEATH
+FORCERADIUSDMG
PROJECTILE
	+DEHEXPLOSION
	+ACTIVATEMCROSS
	+EXPLODEONWATER
States
{
Spawn:
TNT1 A 0
        TNT1 A 0 A_Explode(500,50,0)
TNT1 A 1 A_Noblocking
Stop
 }
}

Actor JuggernautBody1
{
+RANDOMIZE
+FORCEXYBILLBOARD
+DONTSPLASH
+NOEXTREMEDEATH
+THRUACTORS
+NOGRAVITY
+NOCLIP
Projectile
damage 0
radius 2
height 0
speed 1
Scale 1.88
states
	{
	Spawn:
		BS1T AAAA 1 //A_FaceTarget
	    Stop
		Goto Death
Death:
    TNT1 A 0
    Stop
XDeath:
TNT1 A 0
Stop
	}
}

Actor JuggernautBody2: JuggernautBody1
{
states
	{
	Spawn:
		BS1T BBBB 1 BRIGHT //A_FaceTarget
	    Stop
		Goto Death
	}
}