//===========================================================================
//
// Spider boss
//
//===========================================================================
ACTOR TheSpiderMastermind: SpiderMastermind Replaces SpiderMastermind
{
    //damagefactor "BFG", 0.0
    damagefactor "HKFT", 0.05
    damagefactor "Head", 2.5
    damagefactor "MinorHead", 2.0
	damagefactor "Explosive", 1.5
	damagefactor "Avoid", 0.0
	damagefactor "Decaptate", 5.0
	Game Doom
	SpawnID 7
	Health 12000
	Radius 120
    damagefactor "Crush", 30.0
    Scale 1.4
	Height 72
	Mass 500000
	Speed 20
	PainChance 30
	Monster
	//MinMissileChance 200
	+BOSS
	+FLOORCLIP
    +DONTRIP
	+DONTMORPH
	+BOSSDEATH
    +NORADIUSDMG
    +NOBLOOD
	+MISSILEMORE
	+MISSILEEVENMORE
	DropItem "DemonStrengthRune" 25
	SeeSound "spider/sight"
	AttackSound "spider/attack"
	PainSound "spider/pain"
	DeathSound "spider/death"
	ActiveSound "spider/active"
	Obituary "$OB_SPIDER"
    damagefactor "Blood", 0.0
	MaxStepHeight 24
	MaxDropOffHeight 32
	States
	{
	Death.KillMe:
    Death.Taunt:
	    TNT1 A 0 A_ChangeFlag("SOLID", 0)
        TNT1 A 0 A_SpawnItem("TheSpiderMastermind")
        Stop
	Spawn:
		SPID A 10 A_Look
		Loop
	See:
		TNT1 A 0 A_SpawnItem("MasterMindHitBox", 0, 72,0)
		SPID A 2 A_Metal
		TNT1 A 0 A_SpawnItem("MasterMindHitBox", 0, 72,0)
		SPID A 2 A_Chase
		TNT1 A 0 A_SpawnItem("MasterMindHitBox", 0, 72,0)
		SPID B 2 A_Chase
		TNT1 A 0 A_SpawnItem("MasterMindHitBox", 0, 72,0)
		SPID B 2 A_Chase


		TNT1 A 0 A_SpawnItem("MasterMindHitBox", 0, 72,0)
		SPID C 2 A_Chase
		TNT1 A 0 A_SpawnItem("MasterMindHitBox", 0, 72,0)
		SPID C 2 A_Chase
		TNT1 A 0 A_SpawnItem("MasterMindHitBox", 0, 72,0)
		SPID D 2 A_Chase
		TNT1 A 0 A_SpawnItem("MasterMindHitBox", 0, 72,0)
		SPID D 2 A_Metal

		TNT1 A 0 A_SpawnItem("MasterMindHitBox", 0, 72,0)
		SPID E 2 A_Chase
		TNT1 A 0 A_SpawnItem("MasterMindHitBox", 0, 72,0)
		SPID E 2 A_Chase
		TNT1 A 0 A_SpawnItem("MasterMindHitBox", 0, 72,0)
		SPID F 2 A_Chase
		TNT1 A 0 A_SpawnItem("MasterMindHitBox", 0, 72,0)
		SPID F 2
		Loop

	Missile:
	    TNT1 A 0 A_TakeInventory ("BrutalCounter2", 500)
        TNT1 AAAAAAAAAAAAAAAAA 0
		TNT1 A 0 A_SpawnItem("MasterMindHitBox", 0, 81,0)
		SPID A 2 BRIGHT A_FaceTarget 
		TNT1 A 0 A_SpawnItem("MasterMindHitBox", 0, 81,0)
		SPID A 2 BRIGHT A_FaceTarget 
		TNT1 A 0 A_SpawnItem("MasterMindHitBox", 0, 81,0)
		SPID A 2 BRIGHT A_FaceTarget 
		TNT1 A 0 A_SpawnItem("MasterMindHitBox", 0, 81,0)
        TNT1 AAAAAAAAAAAAAAAAA 0
        SPID H 1 A_FaceTarget
		TNT1 A 0 A_JumpIfInventory ("BrutalCounter2", 3, "See")
		TNT1 A 0 A_SpawnItem("MasterMindHitBox", 0, 81,0)
		SPID G 4 BRIGHT A_CustomMissile("MastermindTracer", 54, 0, random(-4, 4), 1)
		TNT1 A 0 A_GiveInventory("BrutalCounter2", 1)
		//TNT1 A 0 A_SpawnItem ("RifleCaseSpawn", 0, 30,0)
		TNT1 A 0 A_SpawnItem("MasterMindHitBox", 0, 81,0)
		SPID H 4 BRIGHT A_CustomMissile("MastermindTracer", 54, 0, random(-4, 4), 1)
		//TNT1 A 0 A_SpawnItem ("RifleCaseSpawn", 0, -30,0)
		TNT1 A 0 A_SpawnItem("MasterMindHitBox", 0, 81,0)
		
		        SPID H 1 A_FaceTarget
		TNT1 A 0 A_SpawnItem("MasterMindHitBox", 0, 81,0)
		SPID G 4 BRIGHT A_CustomMissile("MastermindTracer", 54, 0, random(-4, 4), 1)
		//TNT1 A 0 A_SpawnItem ("RifleCaseSpawn", 0, 30,0)
		TNT1 A 0 A_SpawnItem("MasterMindHitBox", 0, 81,0)
		SPID H 4 BRIGHT A_CustomMissile("MastermindTracer", 54, 0, random(-4, 4), 1)
		//TNT1 A 0 A_SpawnItem ("RifleCaseSpawn", 0, -30,0)
		TNT1 A 0 A_SpawnItem("MasterMindHitBox", 0, 81,0)
		
		        SPID H 1 A_FaceTarget
		TNT1 A 0 A_SpawnItem("MasterMindHitBox", 0, 81,0)
		SPID G 4 BRIGHT A_CustomMissile("MastermindTracer", 54, 0, random(-4, 4), 1)
		//TNT1 A 0 A_SpawnItem ("RifleCaseSpawn", 0, 30,0)
		TNT1 A 0 A_SpawnItem("MasterMindHitBox", 0, 81,0)
		SPID H 4 BRIGHT A_CustomMissile("MastermindTracer", 54, 0, random(-4, 4), 1)
		//TNT1 A 0 A_SpawnItem ("RifleCaseSpawn", 0, -30,0)
		TNT1 A 0 A_SpawnItem("MasterMindHitBox", 0, 81,0)
		
		        SPID H 1 A_FaceTarget
		TNT1 A 0 A_SpawnItem("MasterMindHitBox", 0, 81,0)
		SPID G 4 BRIGHT A_CustomMissile("MastermindTracer", 54, 0, random(-4, 4), 1)
		TNT1 A 0 A_SpawnItem ("RifleCaseSpawn", 0, 30,0)
		TNT1 A 0 A_SpawnItem("MasterMindHitBox", 0, 81,0)
		SPID H 4 BRIGHT A_CustomMissile("MastermindTracer", 54, 0, random(-4, 4), 1)
		TNT1 A 0 A_SpawnItem ("RifleCaseSpawn", 0, -30,0)
		TNT1 A 0 A_SpawnItem("MasterMindHitBox", 0, 81,0)
		
		        SPID H 1 A_FaceTarget
		TNT1 A 0 A_SpawnItem("MasterMindHitBox", 0, 81,0)
		SPID G 4 BRIGHT A_CustomMissile("MastermindTracer", 54, 0, random(-4, 4), 1)
		//TNT1 A 0 A_SpawnItem ("RifleCaseSpawn", 0, 30,0)
		TNT1 A 0 A_SpawnItem("MasterMindHitBox", 0, 81,0)
		SPID H 4 BRIGHT A_CustomMissile("MastermindTracer", 54, 0, random(-4, 4), 1)
		//TNT1 A 0 A_SpawnItem ("RifleCaseSpawn", 0, -30,0)
		TNT1 A 0 A_SpawnItem("MasterMindHitBox", 0, 81,0)
		SPID H 1 BRIGHT A_SpidRefire
		Goto Missile+30
	
	
		Avoid:
         NULL A 0 A_FaceTarget
         SPID A 6 A_FastChase
		TNT1 A 0 A_SpawnItem("MasterMindHitBox", 0, 81,0)
         NULL A 0 A_FaceTarget
         SPID B 6 A_FastChase
		TNT1 A 0 A_SpawnItem("MasterMindHitBox", 0, 81,0)
		 NULL A 0 A_FaceTarget
         SPID C 6 A_FastChase
		TNT1 A 0 A_SpawnItem("MasterMindHitBox", 0, 81,0)
         NULL A 0 A_FaceTarget
         SPID D 6 A_FastChase 
		TNT1 A 0 A_SpawnItem("MasterMindHitBox", 0, 81,0)
		 Goto Missile
		
	Pain:
		TNT1 A 0 A_SpawnItem("MasterMindHitBox", 0, 72,0)
		SPID I 3
		TNT1 A 0 A_SpawnItem("MasterMindHitBox", 0, 72,0)
		SPID I 3 A_Pain
        Goto See






	Death:

		SPID J 20 A_Scream
		EXPL A 0 Radius_Quake (8, 100, 0, 22, 0)
        TNT1 AAAA 0 A_CustomMissile ("ExplosionSpawner", 110, 0, random (0, 360), 2, random (0, 180))
        TNT1 AAAAAA 0 A_CustomMissile ("ExplosionSpawner", 110, 0, random (0, 360), 2, random (0, 180))
        TNT1 AAAA 0 A_CustomMissile ("SuperGoreSPawner", 110, 0, random (0, 360), 2, random (0, 180))
        TNT1 AAAAAA 0 A_CustomMissile ("SuperGoreSpawner", 110, 0, random (0, 360), 2, random (0, 180))
		SPID K 10 A_NoBlocking
        TNT1 AAAA 0 A_CustomMissile ("ExplosionSpawner", 80, 0, random (0, 360), 2, random (0, 180))
        TNT1 AAAAAA 0 A_CustomMissile ("ExplosionSpawner", 80, 0, random (0, 360), 2, random (0, 180))
        TNT1 AAAA 0 A_CustomMissile ("UltraGoreSPawner", 80, 0, random (0, 360), 2, random (0, 180))
        TNT1 AAAAAA 0 A_CustomMissile ("SuperGoreSpawner", 80, 0, random (0, 360), 2, random (0, 180))
		SPID L 5
        TNT1 AAAA 0 A_CustomMissile ("MuchMeatDeath", 0, 0, random (0, 360), 2, random (0, 160))
        TNT1 AAAAAAAA 0 A_CustomMissile ("LongExplosionSpawner", 30, 0, random (0, 360), 2, random (0, 180))
        TNT1 AAAAAAAAAAAAA 0 A_CustomMissile ("LongExplosionSpawner", 30, 0, random (0, 360), 2, random (0, 180))
		TNT1 AAAAAAAAAAAA 0 A_CustomMissile ("PEPart2SuperFast", 32, 0, random (0, 360), 2, random (0, 160))
        TNT1 AAAA 0 A_CustomMissile ("UltraGoreSPawner", 30, 0, random (0, 360), 2, random (0, 180))
        TNT1 AAAAAA 0 A_CustomMissile ("UltraGoreSpawner", 30, 0, random (0, 360), 2, random (0, 180))
        SPID MNOPQR 5
		//TNT1 AAAAAAAAAAAA 0 A_CustomMissile ("PEPart2SuperFast", 32, 0, random (0, 360), 2, random (0, 160))
        Goto Burns
	Burns:
	    TNT1 A 0
		TNT1 A 0 A_JumpIfInventory("BrutalCounter", 30, "BossDead")
		TNT1 A 0 A_GiveInventory("BrutalCounter")
	    SPID SS 2 A_SpawnItem("YellowFlare",0,50)
        ID22 F 0 A_CustomMissile ("FlameTrails", 30, 0, random (0, 360), 2, random (70, 110))
		SPID SS 2 A_SpawnItem("YellowFlare",0,50)
		ID22 F 0 A_CustomMissile ("FlameTrails", 30, 0, random (0, 360), 2, random (70, 110))
		ID22 F 0 A_CustomMissile ("ExplosionSmoke", 60, 0, random (0, 360), 2, random (70, 110))
        Loop
	Bossdead:
	TNT1 A 0
	TNT1 A 0 A_BossDeath 
	Goto Smokes
	Smokes:
	    TNT1 A 0
		TNT1 A 0 A_JumpIfInventory("BrutalCounter", 100, "Rest")
		TNT1 A 0 A_GiveInventory("BrutalCounter")
	    SPID S 5 A_CustomMissile ("ExplosionSmoke", 60, 0, random (0, 360), 2, random (70, 110))
        Loop	
	Rest:	
		SPID S -1
        Stop
		
    Crush:
        TNT1 A 0 A_PlaySound("misc/xdeath4")
        CRS3 A 5
        CRS3 A -1
        Stop
		
		
Death.Cut:
Death.decaptate:
		TNT1 AAAAAAAAAAAAAAAAA 0 A_CustomMissile ("XDeath1", 120, 0, random (0, 360), 2, random (50, 130))
		TNT1 A 0 A_CustomMissile ("XSpiderMastermindCuttedBrain", 120, 0, random (0, 360), 2, random (50, 130))
		SPIY AAAAAAAAAAA 8 A_SpawnItem("MuchBlood", 0, 120)
		
		EXPL A 0 Radius_Quake (8, 100, 0, 22, 0)
        TNT1 AAAA 0 A_CustomMissile ("ExplosionSpawner", 110, 0, random (0, 360), 2, random (0, 180))
        TNT1 AAAAAA 0 A_CustomMissile ("ExplosionSpawner", 110, 0, random (0, 360), 2, random (0, 180))
        TNT1 AAAA 0 A_CustomMissile ("SuperGoreSPawner", 110, 0, random (0, 360), 2, random (0, 180))
        TNT1 AAAAAA 0 A_CustomMissile ("SuperGoreSpawner", 110, 0, random (0, 360), 2, random (0, 180))
		SPID K 0 A_NoBlocking
        TNT1 AAAA 0 A_CustomMissile ("ExplosionSpawner", 80, 0, random (0, 360), 2, random (0, 180))
        TNT1 AAAAAA 0 A_CustomMissile ("ExplosionSpawner", 80, 0, random (0, 360), 2, random (0, 180))
        TNT1 AAAA 0 A_CustomMissile ("UltraGoreSPawner", 80, 0, random (0, 360), 2, random (0, 180))
        TNT1 AAAAAA 0 A_CustomMissile ("SuperGoreSpawner", 80, 0, random (0, 360), 2, random (0, 180))
		SPID L 0
		Goto Burns		
	}
}


ACTOR XSpiderMastermindCuttedBrain
{
    Radius 8
    Height 8
    Speed 10
    Scale 1.2
	Mass 1
    +NOBLOCKMAP
	+MISSILE
    +NOTELEPORT
    +MOVEWITHSECTOR
    +CLIENTSIDEONLY
    +RIPPER
    +BLOODLESSIMPACT 
	-DONTSPLASH
	+THRUGHOST
damagetype Blood
    SeeSound "misc/xdeath4"
    DeathSound "misc/xdeath1"
	Decal BrutalBloodSplat
	Mass 1
    States
    {
    Spawn:
	    TNT1 A 0 A_JumpIf(waterlevel > 1, "Splash")
        SPIP ABCDEFGH 3 A_CustomMissile ("NashGore_FlyingBloodTrail", 0, 0, random (0, 360), 2, random (0, 360))
        Loop
    Death:
        TNT1 A 0 A_SpawnItem("NashGore_BloodSpot",0,0,0,1)
        SPIP I 1
		SPIP I -1
        Stop
     Splash:
        TNT1 A 0
        Stop
    }
}


ACTOR CyberStomp
{
	Radius 12
	Height 8
	+MISSILE
	Speed 15
    Damage 50
	renderstyle translucent
	alpha 0.75
	DamageType Stomp
    MeleeDamage 0
    Gravity 2.0
    Decal "Cracks"
    -NOGRAVITY
    +EXTREMEDEATH
    Health 5
	States
	{
	Spawn:
        TNT1 A 10
		Stop
	Death:

NULL A 0 A_CustomMissile("FootStep6", 0, 0, 150)
NULL A 0 A_CustomMissile("FootStep6", 0, 0, -150)
NULL A 0 A_CustomMissile("FootStep6", 0, 0, -30)
NULL A 0 A_CustomMissile("FootStep6", 0, 0, 30)
NULL A 0 A_CustomMissile("FootStep6", 0, 0, -60)
NULL A 0 A_CustomMissile("FootStep6", 0, 0, 60)
NULL A 0 A_CustomMissile("FootStep6", 0, 0, -90)
NULL A 0 A_CustomMissile("FootStep6", 0, 0, 90)
NULL A 0 A_CustomMissile("FootStep6", 0, 0, -120)
NULL A 0 A_CustomMissile("FootStep6", 0, 0, 120)
        TNT1 A 0 A_SpawnItemEx("FootStep5", 0, 0, 40, 0, 0)
          TNT1 A 0 A_PlaySound("CLAP")
		TNT1 AAAAAAAAAAAA 0 A_custommissile("HugeWallChunk",0,0,random(0,360),2,random(-40,40))
        TNT1 AAAAAAAAAAAA 0 A_custommissile("BigWallChunk",0,0,random(0,360),2,random(-40,40))
		EXPL AAA 0 A_CustomMissile ("BigSmokes", 0, 0, random (0, 360), 2, random (0, 360))
		EXPL AAA 0 A_CustomMissile ("ExplosionSmoke", 0, 0, random (0, 360), 2, random (0, 360))
		
		EXPL A 0 A_Explode
		MNSM ABCDEFGHIJKLMNOPQ 1 bright
		Stop
	}
}
