actor bigspider : spidermastermind replaces spidermastermind
{
	species "Bigspider"
	SeeSound "bigspider/see"
	PainSound "bigspider/pain"
	ActiveSound "bigspider/idle"
	DeathSound "bigspider/die"
	AttackSound "bigspider/attack"

	var int user_bossexplosiontimer;
	Obituary  "%o was shot to pieces from the biggest spider"
	states
	{
	Spawn:
		SPID AB 10 A_Look
		Loop
	See:
		SPID A 1 a_playsound ("bigspider/walk")
		SPID A 2 A_chase
		SPID ABB 3 A_Chase
		SPID C 1 a_playsound ("bigspider/walk")
		SPID C 2 A_chase
		SPID CDD 3 A_Chase
		SPID E 1 a_playsound ("bigspider/walk")
		SPID E 2 A_chase
		SPID EFF 3 A_Chase
		Loop
	Missile:
		TNT1 A 0
		TNT1 A 0 a_jump (60, "GrenadeVolley")
		SPID A 20 Bright A_FaceTarget
		SPID G 4 Bright A_SPosAttackUseAtkSound
		SPID H 4 Bright A_SPosAttackUseAtkSound
  		SPID H 1 Bright A_MonsterRefire (10,"see")
		Goto Missile+3
	GrenadeVolley:
		TNT1 A 0 
		TNT1 A 0 a_playsound ("bigspider/see",0)
		SPID A 20 bright A_FaceTarget
		TNT1 A 0 a_playsound ("Malefactors/GrenadeReady",0,1,0,0.6)
		SPID A 15 bright A_FaceTarget
		TNT1 A 0 a_playsound ("Malefactors/GrenadeReady",0,1,0,0.6)
		SPID A 15 bright A_FaceTarget
		TNT1 A 0 a_playsound ("Malefactors/GrenadeReady",0,1,0,0.6)
		SPID A 20 Bright A_FaceTarget
		TNT1 AAA 0 A_custommissile("CAZombieGrenade", 30, 0, frandom(-3,4), CMF_OFFSETPITCH, frandom(3,-2))
		SPID G 8 Bright a_playsound ("bigspider/slugshot",CHAN_WEAPON)
		SPID H 8 Bright 
		SPID A random (3,8) bright
		SPID A 5 bright A_FaceTarget
		TNT1 AAA 0 A_custommissile("CAZombieGrenade", 30, 0, frandom(-5,6), CMF_OFFSETPITCH, frandom(-4,8))
		SPID G 8 Bright a_playsound ("bigspider/slugshot",CHAN_WEAPON)
		SPID H 8 Bright 
		SPID A random (3,8) bright
		SPID A 5 bright A_FaceTarget
		TNT1 AAA 0 A_custommissile("CAZombieGrenade", 30, 0, frandom(-6,8), CMF_OFFSETPITCH, frandom(-7,12))
		SPID G 8 Bright a_playsound ("bigspider/slugshot",CHAN_WEAPON)
		SPID H 8 Bright 
		SPID A 5 bright A_FaceTarget
		goto see
	Pain:
		SPID I 3
		SPID I 3 A_Pain
		Goto See	
	death:
		TNT1 A 0
		SPID J 2 A_BossDeath
		SPID J 2 A_NoBlocking
		TNT1 A 0 A_SetUserVar("user_bossexplosiontimer", 20)
	DeathExplosionLoop:
		TNT1 A 0 A_JumpIf (user_bossexplosiontimer <= 0, "DeathFinish")
		TNT1 A 0 A_Quake(2, 4, 0, 768, "")
		SPID J 1 Bright
		TNT1 A 0 A_Jump (10, 3)
		TNT1 A 0 a_playsound ("monsters/boom",CHAN_VOICE,1,0,0.80)
		TNT1 A 0 A_SpawnItemEx ("MonsterFireExplosion", frandom(-56,56),frandom(-56,56),frandom(4,90), 0,0,0, 0, SXF_NOCHECKPOSITION)
		SPID J 1 Bright
		SPID J 1 Bright
		TNT1 A 0 A_SetUserVar("user_bossexplosiontimer", user_bossexplosiontimer - 1)
		Goto DeathExplosionLoop
	Deathfinish:
		SPID J 2 A_Scream
		SPID K 10 A_NoBlocking
		SPID L 1 a_setscale (1.05)
		SPID L 1 a_setscale (1.15)
		TNT1 A 0 a_setscale (1)
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx ("MonsterFireExplosion", frandom(-56,56),frandom(-56,56),frandom(4,90), 0,0,0, 0, SXF_NOCHECKPOSITION)
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx ("MonsterFireExplosion", frandom(-86,86),frandom(-86,86),frandom(30,60), 0,0,0, 0, SXF_NOCHECKPOSITION)
		TNT1 AAAAAAAAAAA 0 a_spawnitemex("CAXblood",0,0,10,random(-8,8),random(-10,10),random(9,16))
		TNT1 AAAAAAAA 0 a_spawnitemex("CAXblood",0,0,10,random(-10,10),random(-10,10),random(9,16))
    	TNT1 AAAAAAAAA 0 BRIGHT a_spawnitemex("CAMonsterBlud",0,0,0,random(-8,14),random(-12,16),random(15,22))
    	TNT1 AAAAAAAAA 0 BRIGHT a_spawnitemex("CABlood",0,0,0,random(-12,22),random(-20,20),random(15,22))
    	TNT1 AAAAAAAAA 0 BRIGHT a_spawnitemex("cs_go",0,0,0,random(-12,20),random(-14,22),random(16,22))
    	TNT1 AAAAAAAA 0 BRIGHT a_spawnitemex("cs_go",0,0,0,random(-6,22),random(-18,26),random(15,22))
    	TNT1 AA 0 BRIGHT a_spawnitemex("MalefactorBigChunk1",0,0,0,random(-6,8),random(-8,8),random(4,6))
    	TNT1 AAAAA 0 BRIGHT a_spawnitemex("MalefactorBigChunk1",0,0,0,random(-4,4),random(-4,5),random(3,4))
		TNT1 A 0 A_Quake(2, 24, 0, 768, "")
		SPID MNOPQR 10 a_spawnitemex("CAXblood",0,0,10,random(-16,16),random(-20,20),random(15,20))
		SPID S 4 A_Bossdeath
		SPID S random (15,35)
    	TNT1 AAAAA 0 BRIGHT a_spawnitemex("CABlood",0,0,0,random(-8,14),random(-12,16),random(15,22))
		SPID SSSSSSSS 2 A_spawnitemex("CAXblood",0,0,10,random(-8,8),random(-10,10),random(9,16))
		SPID S random (25,45)
    	TNT1 AAAAA 0 BRIGHT a_spawnitemex("CABlood",0,0,0,random(-8,14),random(-12,16),random(15,22))
		SPID SSSSSSSS 2 A_spawnitemex("CAXblood",0,0,10,random(-8,8),random(-10,10),random(9,16))
		SPID S -1
		Stop		
	Death.CALinkedBomb:
	Death.CALinked:
		TNT1 A 0
		TNT1 A 0 a_noblocking
		TNT1 A 0 A_SetUserVar("user_bossexplosiontimer", 16)
	CALinkedExplosionLoop:
		TNT1 A 0 A_JumpIf (user_bossexplosiontimer <= 10, "CALinkedExplosionLoop2")
		TNT1 A 0 A_Quake(2, 4, 0, 768, "")	
		SPID J 15 bright
		TNT1 A 0 a_playsound ("Malefactors/LinkedExplosion",CHAN_VOICE,1,0,0.80)
		TNT1 A 0 A_SpawnItemEx ("CALinkedBossExplosion", frandom(-56,56),frandom(-56,56),frandom(4,90), 0,0,0, 0, SXF_NOCHECKPOSITION)
		TNT1 A 0 A_SetUserVar("user_bossexplosiontimer", user_bossexplosiontimer - 1)
		Goto CALinkedExplosionLoop
	CALinkedExplosionLoop2:
		TNT1 A 0 A_JumpIf (user_bossexplosiontimer <= 6, "CALinkedExplosionLoop3")
		TNT1 A 0 A_Quake(2, 4, 0, 768, "")	
		SPID J 8 bright
		TNT1 A 0 a_playsound ("Malefactors/LinkedExplosion",CHAN_VOICE,1,0,0.80)
		TNT1 A 0 A_SpawnItemEx ("CALinkedBossExplosion", frandom(-56,56),frandom(-56,56),frandom(4,90), 0,0,0, 0, SXF_NOCHECKPOSITION)
		TNT1 A 0 A_SetUserVar("user_bossexplosiontimer", user_bossexplosiontimer - 1)
		Goto CALinkedExplosionLoop2
	CALinkedExplosionLoop3:
		TNT1 A 0 A_JumpIf (user_bossexplosiontimer <= 0, "CALinkedDeathFinish")
		TNT1 A 0 A_Quake(2, 4, 0, 768, "")	
		SPID J 5 bright
		TNT1 A 0 a_playsound ("Malefactors/LinkedExplosion",CHAN_VOICE,1,0,0.80)
		TNT1 A 0 A_SpawnItemEx ("CALinkedBossExplosion", frandom(-56,56),frandom(-56,56),frandom(4,90), 0,0,0, 0, SXF_NOCHECKPOSITION)
		TNT1 A 0 A_SetUserVar("user_bossexplosiontimer", user_bossexplosiontimer - 1)
		Goto CALinkedExplosionLoop3
		
	CALinkedDeathFinish:
		TNT1 A 0
		SPID J 2 bright
		TNT1 A 2
		SPID J 2 bright
		TNT1 A 2
		SPID J 1 bright
		TNT1 A 1
		SPID J 1 bright
		TNT1 A 1
		SPID J 1 bright
		TNT1 A 1
		SPID J 9 bright
		TNT1 A 0 a_playsound ("Malefactors/LinkedExplosion",0,1,0,0.80)
		TNT1 A 0 a_playsound ("Malefactors/LinkedExplosion2",0,0.60,0,0.90)
		TNT1 A 0 a_playsound ("Malefactors/LinkedExplosion3",0,0,1,0.30)
		TNT1 A 0 A_Quake(4, 10, 0, 768, "")	
		TNT1 AAAAAAAAAA 0 A_SpawnItemEx ("CALinkedBossExplosion", frandom(-56,56),frandom(-56,56),frandom(4,90), 0,0,0, 0, SXF_NOCHECKPOSITION)
		TNT1 AAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx ("CALinkedBossExplosion", frandom(-56,56),frandom(-56,56),frandom(4,90), random(-20,10),random(-20,10),random(-20,20), 0, SXF_NOCHECKPOSITION)
		TNT1 A 0 a_playsound ("Malefactors/LinkedBoss",0)
		TNT1 A 0 a_setscale (1.80,1.40)
		TNT1 A 6
		TNT1 A 1 a_spawnitemex ("CALinkedBossKill",0,0,65)
		TNT1 A 2
		TNT1 A 3 ThrustThingZ (0,30,0,1)
		L1ST N 1 
		L1ST N -1 a_bossdeath
		wait
	Death.CABladeBeam:
		TNT1 A 0
		TNT1 A 0 a_facetarget
		TNT1 A 0 a_noblocking
		TNT1 A 0 a_spawnitemex ("MalefactorBigSpiderTorso",0,0,46,random(-3,3),random(-3,3),random (1,2),0,SXF_NOCHECKPOSITION)
		TNT1 A 0 a_playsound ("Malefactors/BladeBeamDeath2",0,1,0,0.60)
		8D15 B random (45,50)
		TNT1 A 0 A_SetUserVar("user_bossexplosiontimer", 20)
	SlicedDeathExplosionLoop:
		TNT1 A 0 A_JumpIf (user_bossexplosiontimer <= 0, "SlicedDeathFinish")
		TNT1 A 0 A_Quake(2, 4, 0, 768, "")
		8D15 B 1 Bright
		TNT1 A 0 A_Jump (10, 3)
		TNT1 A 0 a_playsound ("monsters/boom",CHAN_VOICE,1,0,0.80)
		TNT1 A 0 A_SpawnItemEx ("MonsterFireExplosion", frandom(-56,56),frandom(-56,56),frandom(4,90), 0,0,0, 0, SXF_NOCHECKPOSITION)
		8D15 B 1 Bright
		8D15 B 1 Bright
		TNT1 A 0 A_SetUserVar("user_bossexplosiontimer", user_bossexplosiontimer - 1)
		Goto SlicedDeathExplosionLoop
	SlicedDeathfinish:
		8D15 B 2 A_Scream
		TNT1 A 0 A_NoBlocking
		8D15 BBBBBBB 1 A_spawnitemex("CAXblood",0,0,10,random(-16,16),random(-20,20),random(15,20))
		8D15 BBBBBBBB 1 A_SpawnItemEx ("MonsterFireExplosion", frandom(-56,56),frandom(-56,56),frandom(4,90), 0,0,0, 0, SXF_NOCHECKPOSITION)
		TNT1 AAAAAA 0 a_spawnitemex("CAXblood",0,0,10,random(-10,10),random(-10,10),random(9,16))
		8D15 B 1 a_setscale (1.05)
		TNT1 AAAAAAAA 0 A_SpawnItemEx ("MonsterFireExplosion", frandom(-56,56),frandom(-56,56),frandom(4,90), 0,0,0, 0, SXF_NOCHECKPOSITION)
		TNT1 AAAAAA 0 a_spawnitemex("CAXblood",0,0,10,random(-10,10),random(-10,10),random(9,16))
		8D15 B 1 a_setscale (1.15)
		TNT1 A 0 a_setscale (1)
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx ("MonsterFireExplosion", frandom(-56,56),frandom(-56,56),frandom(4,90), 0,0,0, 0, SXF_NOCHECKPOSITION)
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx ("MonsterFireExplosion", frandom(-86,86),frandom(-86,86),frandom(30,60), 0,0,0, 0, SXF_NOCHECKPOSITION)
		TNT1 AAAAAAAAAAA 0 a_spawnitemex("CAXblood",0,0,10,random(-8,8),random(-10,10),random(9,16))
		TNT1 AAAAAAAAA 0 a_spawnitemex("CAXblood",0,0,10,random(-10,10),random(-10,10),random(9,16))
    	TNT1 AAAAAAAAAAA 0 BRIGHT a_spawnitemex("CAMonsterBlud",0,0,0,random(-8,14),random(-12,16),random(15,22))
    	TNT1 AAAAAAAAA 0 BRIGHT a_spawnitemex("CABlood",0,0,0,random(-12,22),random(-20,20),random(15,22))
    	TNT1 AAAAAAA 0 BRIGHT a_spawnitemex("cs_go",0,0,0,random(-12,20),random(-14,22),random(16,22))
    	TNT1 AAAAAAA 0 BRIGHT a_spawnitemex("cs_go",0,0,0,random(-6,22),random(-18,26),random(15,22))
    	TNT1 AAA 0 BRIGHT a_spawnitemex("MalefactorBigChunk1",0,0,0,random(-6,8),random(-8,8),random(4,6))
    	TNT1 AAAAAAA 0 BRIGHT a_spawnitemex("MalefactorBigChunk1",0,0,0,random(-4,4),random(-4,5),random(3,4))
    	TNT1 A 0 BRIGHT a_spawnitemex("MalefactorMasterMindChunk",0,0,0,random(-4,4),random(-4,5),random(3,4))
		TNT1 A 0 A_Quake(2, 24, 0, 768, "")
		TNT1 AAAAAAAAAAAA 0 a_spawnitemex("BigFireDebris",0,0,random(8,13),random(-15,15),random(-16,16),random(9,12),0,SXF_NOCHECKPOSITION)
		TNT1 AAAAAAAA 0 A_spawnitemex("CAXblood",0,0,10,random(-16,16),random(-20,20),random(15,20))
		TNT1 AAAAAAAA 1 A_SpawnItemEx ("MonsterFireExplosion", frandom(-56,56),frandom(-56,56),frandom(4,90), 0,0,0, 0, SXF_NOCHECKPOSITION)
		TNT1 AAAAAAAA 0 A_spawnitemex("CAXblood",0,0,10,random(-16,16),random(-20,20),random(15,20))
		TNT1 AAAAAAAA 1 A_SpawnItemEx ("MonsterFireExplosion", frandom(-56,56),frandom(-56,56),frandom(4,90), 0,0,0, 0, SXF_NOCHECKPOSITION)
		TNT1 AAAAAAAA 0 A_spawnitemex("CAXblood",0,0,10,random(-16,16),random(-20,20),random(15,20))
		TNT1 AAAAAAAA 1 A_SpawnItemEx ("MonsterFireExplosion", frandom(-56,56),frandom(-56,56),frandom(4,90), 0,0,0, 0, SXF_NOCHECKPOSITION)
		TNT1 AAAAAAAA 0 A_spawnitemex("CAXblood",0,0,10,random(-16,16),random(-20,20),random(15,20))
		TNT1 AAAAAAAA 1 A_SpawnItemEx ("MonsterFireExplosion", frandom(-56,56),frandom(-56,56),frandom(4,90), 0,0,0, 0, SXF_NOCHECKPOSITION)
		TNT1 AAAAAAAA 0 A_spawnitemex("CAXblood",0,0,10,random(-16,16),random(-20,20),random(15,20))
		TNT1 AAAAAAAA 1 A_SpawnItemEx ("MonsterFireExplosion", frandom(-56,56),frandom(-56,56),frandom(4,90), 0,0,0, 0, SXF_NOCHECKPOSITION)
		TNT1 AAAAAAAA 0 A_spawnitemex("CAXblood",0,0,10,random(-16,16),random(-20,20),random(15,20))
		TNT1 AAAAAAAA 1 A_SpawnItemEx ("MonsterFireExplosion", frandom(-56,56),frandom(-56,56),frandom(4,90), 0,0,0, 0, SXF_NOCHECKPOSITION)
		TNT1 AAAAAAAA 0 A_spawnitemex("CAXblood",0,0,10,random(-16,16),random(-20,20),random(15,20))
		TNT1 AAAAAAAA 1 A_SpawnItemEx ("MonsterFireExplosion", frandom(-56,56),frandom(-56,56),frandom(4,90), 0,0,0, 0, SXF_NOCHECKPOSITION)
		TNT1 AAAAAAAA 0 A_spawnitemex("CAXblood",0,0,10,random(-16,16),random(-20,20),random(15,20))
		TNT1 AAAAAAAA 1 A_SpawnItemEx ("MonsterFireExplosion", frandom(-56,56),frandom(-56,56),frandom(4,90), 0,0,0, 0, SXF_NOCHECKPOSITION)
		TNT1 A 4 A_Bossdeath
		TNT1 A -1
		Stop		
	}
}



actor MalefactorBigSpiderTorso : MalefactorRiflemanTorso
{
	gravity 0.80
    States
    {
    Spawn:
		TNT1 A 0
		8D15 A 6
		TNT1 A 0 a_scalevelocity (0.30)
		8D15 A 6
		TNT1 A 0 a_scalevelocity (0.50)
		8D15 A 6
		TNT1 A 0 a_stop
		8D15 A 30
		TNT1 A 0 a_changeflag ("NOGRAVITY",0)
		TNT1 A 0 a_changeflag ("HEXENBOUNCE",0)
	Falling:
		8D15 A 1
		TNT1 A 0 A_CheckFloor ("Death")
		loop
	Death:
		8D15 A 1 a_setscale (1.10)
		TNT1 A 0 a_setscale (1)
		TNT1 AAAAAAAAAAAA 0 A_SpawnItemEx ("MonsterFireExplosion", frandom(-56,56),frandom(-56,56),frandom(4,90), 0,0,0, 0, SXF_NOCHECKPOSITION)
		TNT1 AAAAAAAAAAA 0 A_SpawnItemEx ("MonsterFireExplosion", frandom(-86,86),frandom(-86,86),frandom(30,60), 0,0,0, 0, SXF_NOCHECKPOSITION)
		TNT1 AAAAAA 0 a_spawnitemex("CAXblood",0,0,10,random(-8,8),random(-10,10),random(9,16))
		TNT1 AAAAAAAA 0 a_spawnitemex("CAXblood",0,0,10,random(-10,10),random(-10,10),random(9,16))
    	TNT1 AAAAAAAAAAA 0 BRIGHT a_spawnitemex("CAMonsterBlud",0,0,0,random(-8,14),random(-12,16),random(15,22))
    	TNT1 AAAAA 0 BRIGHT a_spawnitemex("CABlood",0,0,0,random(-12,22),random(-20,20),random(15,22))
    	TNT1 AAAA 0 BRIGHT a_spawnitemex("cs_go",0,0,0,random(-12,20),random(-14,22),random(16,22))
    	TNT1 AAAAA 0 BRIGHT a_spawnitemex("cs_go",0,0,0,random(-6,22),random(-18,26),random(15,22))
    	TNT1 AA 0 BRIGHT a_spawnitemex("MalefactorBigChunk1",0,0,0,random(-3,5),random(-3,4),random(2,3))
    	TNT1 AAAA 0 BRIGHT a_spawnitemex("MalefactorBigChunk1",0,0,0,random(-2,2),random(-4,5),random(3,4))
		TNT1 A 0 a_playsound ("monsters/boom",CHAN_VOICE,1,0,0.80)
		TNT1 AAAAAAAAAAAA 0 a_spawnitemex("BigFireDebris",0,0,random(8,13),random(-15,15),random(-16,16),random(9,12),0,SXF_NOCHECKPOSITION)
		8D15 C -1
		stop
    }
}
	

//Old unused crap I'm keeping around just in case


actor spiderslug : chaingunnerslug 
{
	Damage 15
	scale 2.5
	States
	{
	death:
		TNT1 A 0
		TNT1 A 0 A_PlaySound("slugshot/wall", CHAN_AUTO)
		TNT1 A 0 A_SpawnDebris("MonsterSpark")
		TNT1 A 1 a_spawnitemex ("fallenspiderslug")
		stop
	crash:
	xdeath:
		TNT1 A 0
		TNT1 A 0 A_radiusthrust (7000,30,RTF_NOIMPACTDAMAGE)
		TNT1 A 0 A_PlaySound("slugshot/hit", CHAN_AUTO)
		TNT1 A 1 a_spawnitemex ("fallenspiderslug")	
		stop
	}
}


actor fallenspiderslug : fallengunnerslug
{
	scale 2.5
	states
	{
	spawn:
		SGRN A 99 bright
		SGRN A 4 bright thrustthingz (0,40,0,0)
		goto death
	death:
		TNT1 A 0
		TNT1 A 0 a_fall
		TNT1 A 1 A_spawnitemex ("spiderslugfire")
		stop
	}
}

actor spiderslugfire : slugfire
{
	states
	{
	spawn:
		TNT1 A 0
		TNT1 A 0 radius_quake (3,5,0,40,0)
		TNT1 A 0 a_playsound ("weapons/rocklx",0)
		TNT1 AAAAAAAAAAAAAAAAAAAAA 0 a_spawnitemex("EvilSpiderPellet",0,0,0,Frandom(-50,50),Frandom(-50,50),Frandom (-5,5))
		TNT1 A 0 a_explode (50,140,1)
		MISL BCD 5 bright
		stop
	death:
		TNT1 A 1
		stop
	}
}


actor EvilSpiderPellet : Evilpellet
{
	species "Bigspider"
	+thruspecies
}

