actor broodslime : actor replaces painelemental
{
	Health 400
	Radius 31
	Height 56
	damage (10)
	Speed 18
	PainChance 200
	Painchance "KustamKick", 256
	Painchance "BarrelGrab", 0
	bloodtype slimebloodsplatter
	Mass 900
	scale 1
	MONSTER 
	+FLOAT
	+NOGRAVITY
	+DONTCORPSE
	+thruspecies
	+noblooddecals
	species "slime"
	SeeSound "Broodslime/see"
	PainSound "Broodslime/pain"
	DeathSound "Broodslime/die"
	ActiveSound "Broodslime/idle"
	Obituary "%o couldn't dodge a Brood slime's snotrocket."
	states
	{
	spawn:
		WSLI ABCCBB 8 A_Look
		loop      
	see:
		TNT1 AAA 0 A_SpawnItemEx("slimeparticle",0,0,0,0,0,-3)
		WSLI AABBCCBB 2 A_Chase 
		TNT1 A 0 A_TakeInventory ("slimecooldown", 3)
		TNT1 A 0 A_PlaySound ("wyvern/fly",0)
		TNT1 A 0 A_PlaySound ("Broodslime/wing",0,1,0,2.0)
		TNT1 AAAA 0 A_SpawnItemEx("slimeparticle",0,0,0,0,0,-3)				
		loop
	missile:
		TNT1 a 0
		WSLI DEF 4 bright A_FaceTarget
		TNT1 A 0 A_Jumpifinventory ("slimecooldown",1, "weakshot")
		TNT1 A 0 A_PlaySound ("Broodslime/attack",0)
		WSLI F 3 A_CustomMissile ("slimeshot")
		TNT1 A 0 A_GiveInventory ("slimecooldown", 50)
		WSLI F 2
		goto see
	weakshot:
		TNT1 A 0
		TNT1 A 0 A_PlaySound ("Broodslime/attack",0)
		WSLI F 3 A_CustomMissile ("weakslimeshot")
		TNT1 A 0 A_TakeInventory ("slimecooldown", 10)
		WSLI F 2
		goto see
	pain:
		WSLI G 4
		TNT1 A 0 A_ChangeFlag ("NoGravity",1)
		TNT1 A 0 A_TakeInventory ("PowerTerrorStatus",999)
		TNT1 A 0 A_TakeInventory ("PowerKickedStatus",999)
		WSLI G 4 A_Pain
		goto see
	Pain.Dazer:
	Pain.Superkick:
		WSLI G 4
		TNT1 A 0 A_GiveInventory ("KickDazer",1)
		TNT1 A 0 A_ChangeFlag ("NoGravity",0)
		WSLI G 4 A_Pain
		goto Dazed
	Dazed:
		WSLI G 2
		WSLI G 1 A_SetAngle (angle+15)
		WSLI G 1 A_JumpIfInventory ("PowerKickedStatus",1,"Dazed")
		WSLI G 1 A_ChangeFlag ("NoGravity",1)
		Goto See
		
	death:
		TNT1 A 0
		TNT1 A 1 A_Fall
		TNT1 A 0 A_SpawnItemEx ("groundslime",0,0,5,0,0,5,0,SXF_NOCHECKPOSITION)
		TNT1 AAAAAA 0 A_SpawnItemEx("slimeparticle",0,0,0,random(-10,10),random(-10,10),15) 		
		TNT1 AAAAAAAAAAA 0 A_SpawnItemEx("slimeparticle",0,0,0,random(-10,10),random(-10,10),15) 		
		TNT1 A 1
		stop
	xdeath:
		TNT1 A 0
		TNT1 A 1 A_Fall
		TNT1 A 0 A_Scream
		TNT1 AAAAAA 0 A_SpawnItemEx("slimeparticle",0,0,0,random(-10,10),random(-10,10),15) 		
		TNT1 AAAAAAAAAAA 0 A_SpawnItemEx("slimeparticle",0,0,0,random(-10,10),random(-10,10),15) 		
		TNT1 AAAAAAAA 0 A_SpawnItemEx ("slimebloodspray",0,0,0,random(-10,10),random(-10,10),random(5,10))       
		TNT1 AAAAAAAA 0 A_SpawnItemEx ("slimebloodspray",0,0,0,random(-15,20),random(-14,16),random(5,10))       
		TNT1 AAAA 0 A_SpawnItemEx ("slimebloodspray",0,0,0,random(-10,10),random(-10,10),random(5,10))       
		TNT1 AAAA 0 A_SpawnItemEx ("slimebloodspray",0,0,0,random(-10,10),random(-10,10),random(5,10))       
		TNT1 A 1
		stop	
	death.superkick:
		GSLI F 1 A_Scream
		GSLI F 1 A_ScaleVelocity (0.1)
		GSLI F 1 A_Stop
		GSLI F 1 A_NoBlocking
		TNT1 A 0 A_ChangeFlag ("NOCLIP",1)
		TNT1 A 0 A_ChangeFlag ("NOGRAVITY",1)
		GSLI F 1 A_FaceTarget
		TNT1 A 0 ThrustThingZ (0,80,0,1)
		TNT1 A 0 ThrustThing(angle*256/360+128, 110, 1, 0)
		TNT1 A 0 A_SpawnItemEx ("kickdeathsound")
		GSLI F 1
		GSLI F 2
	kickfly:
		GSLI FFFFFFF 1 A_SpawnItemEx ("KustamParticle",random(-8,8),random(-8,8),random(-10,10),random(-120,120)/15.0,random(-130,130)/12.0,random(-110,110)/17.0,0)
		TNT1 A 0 A_FadeOut (0.02)
		loop
	death.SentinelArm:
		TNT1 A 0
		WSLI G 4
		WSLI G 4 A_Fall
		TNT1 A 0 A_NoGravity
		TNT1 A 0 A_Stop
		TNT1 A 0 A_PlaySound ("Kustam/OCKill",CHAN_VOICE,1,0,0.4)
		TNT1 A 0 A_PlaySound ("Kustam/OCKill",5,1,0,0.6)
		TNT1 A 0 A_PlaySound ("Kustam/OCKill",6,1,0,0.6)
		TNT1 A 0 A_PlaySound ("Kustam/OCKill",7,1,0,0.6)
		OCKL ABCDEF 2 bright
		stop
		
	death.blazice:
		TNT1 A 0
		WSLI G 2 A_Scream
		WSIC A 2 A_NoBlocking
		TNT1 A 0 ThrustThingZ (0,25,0,0)
		TNT1 A 0 A_PlaySound ("swordtech/freezedeath")
		TNT1 A 0 A_FadeOut (0.20)
		TNT1 AAAAAAAAAAAA 0 A_SpawnItemEx ("iceparticle",random(-8,8),random(-8,8),32,random(-100,100)/10.0,random(-100,100)/10.0,random(-100,100)/20.0,0,160)
	falling:	
		TNT1 A 0 A_JumpIf(Abs(VelZ) <= 0.01, "Shatter")
		WSIC B 1 bright A_JumpIf(Abs(VelZ) <= 0.01, "Shatter")
		TNT1 A 0 A_JumpIf(Abs(VelZ) <= 0.01, "Shatter")
		loop
	shatter:
		WSIC A 2 bright
		TNT1 A 0 A_PlaySound ("swordtech/iceshatter")
		TNT1 AAA 0 A_SpawnItemEx ("icefragment",0,0,0,random(-10,10),random(-10,10),10) 
		TNT1 AAAA 0 A_SpawnItemEx ("icefragment",0,0,0,random(-4,13),random(-8,13),8) 
		stop
	death.fatalslash:
		TNT1 A 0
		WSLI G 2 A_Scream
		WSIC A 4 A_NoBlocking
		WSLI G 15
	randomwait:
		FDWS A 1 A_Jump (20,"split")
		loop
	split:
		FDWS AABBCC 5
		FDWS DE 2
		FDWS FGHIJ 3 bright A_SpawnItemEx ("fatalburst", frandom(-20,20),frandom(-20,20),frandom(10,30), 0,0,0, 0, SXF_NOCHECKPOSITION,80)
		FDWS J 1 bright A_SpawnItemEx ("fatalburst", frandom(-20,20),frandom(-20,20),frandom(10,30), 0,0,0, 0, SXF_NOCHECKPOSITION,80)
		FDWS J 1 bright A_SpawnItemEx ("fatalburst", frandom(-20,20),frandom(-20,20),frandom(10,30), 0,0,0, 0, SXF_NOCHECKPOSITION,80)
		FDWS J 1 bright A_SpawnItemEx ("fatalburst", frandom(-20,20),frandom(-20,20),frandom(10,30), 0,0,0, 0, SXF_NOCHECKPOSITION,80)
		FDWS J 1 bright A_SpawnItemEx ("fatalburst", frandom(-20,20),frandom(-20,20),frandom(10,30), 0,0,0, 0, SXF_NOCHECKPOSITION,80)
		FDWS J 1 bright A_SpawnItemEx ("fatalburst", frandom(-20,20),frandom(-20,20),frandom(10,30), 0,0,0, 0, SXF_NOCHECKPOSITION,80)
	exploding:
		FDWS J 1 bright
		TNT1 A 1 bright A_SpawnItemEx ("fatalburst", frandom(-20,20),frandom(-20,20),frandom(10,30), 0,0,0, 0, SXF_NOCHECKPOSITION,80)
		FDWS J 1 bright
		TNT1 A 1 bright A_SpawnItemEx ("fatalburst", frandom(-20,20),frandom(-20,20),frandom(10,30), 0,0,0, 0, SXF_NOCHECKPOSITION,80)
		FDWS J 1 bright
		TNT1 A 1 bright A_SpawnItemEx ("fatalburst", frandom(-20,20),frandom(-20,20),frandom(10,30), 0,0,0, 0, SXF_NOCHECKPOSITION,80)
		FDWS J 1 bright A_Jump (100,"reallydie")
		TNT1 A 1 bright A_SpawnItemEx ("fatalburst", frandom(-20,20),frandom(-20,20),frandom(10,30), 0,0,0, 0, SXF_NOCHECKPOSITION,80)
		loop
	reallydie:	
		TNT1 A 0
		TNT1 A 1 A_SpawnItemEx ("fataldrawdeath",0,0,30)
		stop
	}
}

actor groundslime
{
	Health 300
	Radius 31
	Height 56
	damage (10)
	Speed 18
	PainChance 200
	Painchance "grappler", 256
	Painchance "KustamKick", 256
	Mass 900
	scale 1
	MONSTER 
	+DONTCORPSE
	+thruspecies
	-countkill
	species "slime"
	SeeSound "Broodslime/see"
	PainSound "Broodslime/pain"
	DeathSound "Broodslime/die"
	ActiveSound "Broodslime/idle"
	bloodtype slimebloodsplatter
	Obituary "%o couldn't dodge a Brood slime's snotrocket."
	states
	{
	spawn:
		TNT1 A 0
		GSLI A 1 A_GiveInventory ("nosplit", 1)
	realspawn:
		GSLI AAAABBBB 8 A_Look
		loop
	see:
		TNT1 A 0
		TNT1 A 0 A_PlaySound ("broodslime/move",0,1,0,1.5)
		GSLI AAABBBCCC 3 A_Chase
		TNT1 A 0 A_Jumpifinventory ("nosplit", 1, "splitbuild")
		loop		
	splitbuild:
		TNT1 A 0
		TNT1 A 0 A_GiveInventory ("splitcounter", random(5,9))
		GSLI A 1 A_Jumpifinventory ("splitcounter", 40, "split")
		goto see
	missile:
		TNT1 A 0
		GSLI A 1 A_Jumpifcloser (300, "considerjump")
	considerjump:
		TNT1 A 0
		GSLI A 1 A_Jump (80,"jumpattack")
	arcshot:
		GSLI A 3 A_FaceTarget
		GSLI B 4 A_FaceTarget
		GSLI B 4 A_FaceTarget
		TNT1 A 0 A_PlaySound ("Broodslime/attack",0)
		GSLI C 1 A_CustomMissile ("slimearcball",10)
		GSLI C 3
		goto see
	jumpattack:
		GSLI A 3 A_FaceTarget
		GSLI B 2 A_FaceTarget
		GSLI C 1
		GSLI D 2 A_FaceTarget
		TNT1 A 0 ThrustThingZ(0,30,0,1)
		TNT1 A 0 ThrustThing(angle*256/360, 40, 0, 0)
		GSLI E 3	
		goto flyingattack
	flyingattack:
		TNT1 A 0
		GSLI E 1 A_JumpIf(Abs(VelZ) <= 0.01, "Land")
		loop	
	land:
		GSLI C 2 A_Stop
		GSLI C 1 
		TNT1 A 0 A_PlaySound ("broodslime/slimeballhit",0)
		TNT1 AAAAAA 0 A_SpawnItemEx("slimeparticle",0,0,0,random(-10,10),random(-10,10),15) 		
		GSLI B 2
		GSLI A 2 
		TNT1 AAAAA 0 A_SpawnItemEx("SlimeEgg",0,0,0,random(-20,20),random(-20,20),15) 		
		GSLI B 5
		GSLI C 2
		GSLI A 1
		goto see
	split:
		TNT1 A 0
		TNT1 A 0 A_PlaySound ("broodslime/split",0)
		GSPT A 4
		GSPT B 4
		GSPT C 4
		GSPT BC 2
		GSPT BC 2
		GSPT D 2
		GSLI B 1 A_SpawnItemEx ("clonedslime",0,0,0,random(-20,20),random(-20,20),15,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_TakeInventory ("nosplit", 99)
		TNT1 A 0 A_TakeInventory ("splitcounter", 999)
		GSLI B 15 A_FaceTarget
		goto see
	pain:
		TNT1 A 0 A_TakeInventory ("splitcounter", 5)
		GSLI F 6 
		TNT1 A 0 A_TakeInventory ("PowerTerrorStatus",999)
		TNT1 A 0 A_TakeInventory ("PowerKickedStatus",999)
		GSLI F 6 A_Pain
		goto see
	Pain.Dazer:
	Pain.Superkick:
		TNT1 A 0 A_TakeInventory ("splitcounter", 5)
		GSLI F 6 
		TNT1 A 0 A_GiveInventory ("KickDazer",1)
		GSLI F 6 A_Pain
		goto Dazed
	Dazed:
		GSLI F 2
		GSLI F 1 A_SetAngle (angle+15)
		GSLI F 1 A_JumpIfInventory ("PowerKickedStatus",1,"Dazed")
		Goto See
	
	death:
		TNT1 A 0
		TNT1 A 1 A_Fall
		TNT1 A 0 A_Scream
		TNT1 AAAAAA 0 A_SpawnItemEx("slimeparticle",0,0,0,random(-10,10),random(-10,10),15) 		
		TNT1 AAAAAAAAAAA 0 A_SpawnItemEx("slimeparticle",0,0,0,random(-10,10),random(-10,10),15) 		
		TNT1 AAAAAAAA 0 A_SpawnItemEx ("slimebloodspray",0,0,0,random(-10,10),random(-10,10),random(5,10))       
		TNT1 AAAAAAAA 0 A_SpawnItemEx ("slimebloodspray",0,0,0,random(-15,20),random(-14,16),random(5,10))       
		TNT1 AAAA 0 A_SpawnItemEx ("slimebloodspray",0,0,0,random(-10,10),random(-10,10),random(5,10))       
		TNT1 AAAA 0 A_SpawnItemEx ("slimebloodspray",0,0,0,random(-10,10),random(-10,10),random(5,10))       
		stop
	death.superkick:
		GSLI F 1 A_Scream
		GSLI F 1 A_ScaleVelocity (0.1)
		GSLI F 1 A_Stop
		GSLI F 1 A_NoBlocking
		TNT1 A 0 A_ChangeFlag ("NOCLIP",1)
		TNT1 A 0 A_ChangeFlag ("NOGRAVITY",1)
		GSLI F 1 A_FaceTarget
		TNT1 A 0 ThrustThingZ (0,80,0,1)
		TNT1 A 0 ThrustThing(angle*256/360+128, 110, 1, 0)
		TNT1 A 0 A_SpawnItemEx ("kickdeathsound")
		GSLI F 1
		GSLI F 2
	kickfly:
		GSLI FFFFFFF 1 A_SpawnItemEx ("KustamParticle",random(-8,8),random(-8,8),random(-10,10),random(-120,120)/15.0,random(-130,130)/12.0,random(-110,110)/17.0,0)
		TNT1 A 0 A_FadeOut (0.02)
		loop
	Death.Sentinelarm:
		GSLI F 3 
		TNT1 A 0 A_Scream
		GSLI F 4 A_FaceTarget 
		TNT1 A 1 A_Fall
		TNT1 A 0 ThrustThingZ (0,50,0,1)
		GSLI F 3 
		TNT1 A 0 a_nogravity
		TNT1 A 0 A_Stop
		TNT1 A 0 A_PlaySound ("Kustam/OCKill",CHAN_VOICE,1,0,0.4)
		TNT1 A 0 A_PlaySound ("Kustam/OCKill",5,1,0,0.6)
		TNT1 A 0 A_PlaySound ("Kustam/OCKill",6,1,0,0.6)
		TNT1 A 0 A_PlaySound ("Kustam/OCKill",7,1,0,0.6)
		OCKL ABCDEF 2 bright
		stop


	
	death.blazice:
		GSLI F 2 A_Scream
		GSIC A 2 A_NoBlocking
		TNT1 A 0 A_PlaySound ("swordtech/freezedeath")
		TNT1 A 0 A_FadeOut (0.20)
		TNT1 AAAAAAAAAAAA 0 A_SpawnItemEx ("iceparticle",random(-8,8),random(-8,8),32,random(-100,100)/10.0,random(-100,100)/10.0,random(-100,100)/20.0,0,160)
		GSIC B 90 bright
		GSIC B 2 bright
		TNT1 A 0 A_PlaySound ("swordtech/iceshatter")
		TNT1 AAA 0 A_SpawnItemEx ("icefragment",0,0,0,random(-10,10),random(-10,10),10) 
		TNT1 AAAA 0 A_SpawnItemEx ("icefragment",0,0,0,random(-4,13),random(-8,13),8) 
		stop
	death.fatalslash:
		TNT1 A 0
		GSLI F 2 A_Scream
		GSIC A 4 A_NoBlocking
		GSLI F 15
	randomwait:
		FDGS A 1 A_Jump (10,"splitdeath")
		loop
	splitdeath:
		FDGS AABBCC 5
		FDGS DE 2
		FDGS FGHIJ 3 bright A_SpawnItemEx ("fatalburst", frandom(-20,20),frandom(-20,20),frandom(10,30), 0,0,0, 0, SXF_NOCHECKPOSITION,80)
		FDGS J 1 bright A_SpawnItemEx ("fatalburst", frandom(-20,20),frandom(-20,20),frandom(10,30), 0,0,0, 0, SXF_NOCHECKPOSITION,80)
		FDGS J 1 bright A_SpawnItemEx ("fatalburst", frandom(-20,20),frandom(-20,20),frandom(10,30), 0,0,0, 0, SXF_NOCHECKPOSITION,80)
		FDGS J 1 bright A_SpawnItemEx ("fatalburst", frandom(-20,20),frandom(-20,20),frandom(10,30), 0,0,0, 0, SXF_NOCHECKPOSITION,80)
		FDGS J 1 bright A_SpawnItemEx ("fatalburst", frandom(-20,20),frandom(-20,20),frandom(10,30), 0,0,0, 0, SXF_NOCHECKPOSITION,80)
		FDGS J 1 bright A_SpawnItemEx ("fatalburst", frandom(-20,20),frandom(-20,20),frandom(10,30), 0,0,0, 0, SXF_NOCHECKPOSITION,80)
	exploding:
		FDGS J 1 Bright
		TNT1 A 1 Bright A_SpawnItemEx ("fatalburst", frandom(-20,20),frandom(-20,20),frandom(10,30), 0,0,0, 0, SXF_NOCHECKPOSITION,80)
		FDGS J 1 Bright
		TNT1 A 1 Bright A_SpawnItemEx ("fatalburst", frandom(-20,20),frandom(-20,20),frandom(10,30), 0,0,0, 0, SXF_NOCHECKPOSITION,80)
		FDGS J 1 Bright
		TNT1 A 1 Bright A_SpawnItemEx ("fatalburst", frandom(-20,20),frandom(-20,20),frandom(10,30), 0,0,0, 0, SXF_NOCHECKPOSITION,80)
		FDGS J 1 Bright A_Jump (100,"reallydie")
		TNT1 A 1 Bright A_SpawnItemEx ("fatalburst", frandom(-20,20),frandom(-20,20),frandom(10,30), 0,0,0, 0, SXF_NOCHECKPOSITION,80)
		loop
	reallydie:	
		TNT1 A 0
		TNT1 A 1 A_SpawnItemEx ("fataldrawdeath",0,0,30)
		stop
	}
}


actor clonedslime : groundslime
{ 
	Health 100
	Radius 31
	Height 56
	Speed 18
	PainChance 200
	Painchance "grappler", 256
	Mass 900
	scale 0.8
	MONSTER
	+thruspecies
	-countkill
	species "slime"
	bloodtype slimebloodsplatter
	Obituary "%o couldn't dodge a Brood slime's snotrocket."
	states
	{
	spawn:
		TNT1 A 0
		GSLI AAAABBBB 8 A_Look
		loop
	}
}

actor slimeshot
{
	+notimefreeze
	+BLOODSPLATTER
	+FORCEXYBILLBOARD	
	+THRUSPECIES
	+THRUGHOST
	+bright
	species "enemyshot"
	Radius 11
	Height 8
	Speed 20
	scale 2
	Damage (10)
	Projectile
	states
	{
	spawn:
		SLAT AB 5 A_SpawnItemEx("slimeparticle",0,0,0,random(-5,5),random(-3,3),-3)
		TNT1 AAA 0 A_SpawnItemEx("slimeparticle",0,0,0,random(-5,5),random(-3,3),-3)			
		loop
	death:
		TNT1 AAAAAAA 0 A_SpawnItemEx("slimeparticle",0,0,0,random(-10,10),random(-10,10),15) 		
		TNT1 AAAAA 0 A_SpawnItemEx("SlimeEgg",0,0,0,random(-10,10),random(-10,10),10,0,SXF_NOCHECKPOSITION) 		
		TNT1 A 0 A_PlaySound ("broodslime/slimeballhit",0)
		TNT1 A 0 A_PlaySound ("broodslime/slimeballsplit",0)
		SLAT CDEF 4
		stop
	}
}

actor weakslimeshot : slimeshot
{
	scale 1
	states
	{
	death:
		TNT1 AAAAAAA 0 A_SpawnItemEx("slimeparticle",0,0,0,random(-10,10),random(-10,10),15) 		
		TNT1 AA 0 A_SpawnItemEx("SlimeEgg",0,0,0,random(-10,10),random(-10,10),10,0,SXF_NOCHECKPOSITION) 		
		TNT1 A 0 A_PlaySound ("broodslime/slimeballhit",0)
		TNT1 A 0 A_PlaySound ("broodslime/slimeballsplit",0)
		SLAT CDEF 4
		stop
	}
}

actor slimearcball 
{
	projectile
	+notimefreeze
    +FORCEXYBILLBOARD	
	+LOOKALLAROUND
	+bloodlessimpact
	+bounceonceilings
	+bounceonwalls
	+thruspecies
	+THRUGHOST
	+doombounce
	species "slime"
	-nogravity
	radius 12
	speed 15
	damage (8)
	bouncecount 4
    gravity 0.8
	states
	{
	spawn:
		TNT1 A 0
		SLAT G 1 bright A_SpawnItemEx ("arctrail")
		TNT1 A 0 ThrustThingZ (0,45,0,0)
	flying:
		SLAT G 1 bright A_SpawnItemEx ("arctrail")		
		SLAT H 1 bright A_SpawnItemEx ("arctrail")
		loop
	Death:
		TNT1 A 0 A_ChangeFlag ("nogravity", 1)
		TNT1 A 0 A_PlaySound ("broodslime/slimeballhit",0)
		TNT1 A 0 A_PlaySound ("broodslime/slimeballsplit",0)
		TNT1 AA 0 A_SpawnItemEx("SlimeEgg",0,0,0,random(-10,10),random(-10,10),10,0,SXF_NOCHECKPOSITION) 		
		SLAT CDEF 4 bright
		stop
	}
}

actor arctrail
{
	+NOINTERACTION
	+clientsideonly
	Radius 4
	Height 5
	scale 0.80
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 2
		SLAT G 5 bright
		SLAT G 1 Bright A_FadeOut (0.40)
		wait
	}
}


actor SlimeEgg
{
	projectile
	+notimefreeze
    +FORCEXYBILLBOARD	
	+LOOKALLAROUND
	+bloodlessimpact
	+painless
	+ripper
	+bright
	+bounceonceilings
	+bounceonwalls
	+thruspecies
	species "enemyshot"
	-nogravity
	radius 12
	speed 5
	damage (0)
	bouncecount 2
    gravity 1.5
	Scale 1.5
	states
	{
	spawn:
		LSLI D 1
		loop
	death:
		TNT1 A 0 a_spawnitem ("broodling")
		stop
	}
}

actor broodling
{
	Monster
	Health 15
	Radius 20
	Height 10
	projectilepassheight 50
	Mass 400
	Speed 5
	PainChance 256
	+dontfall
	+DONTCORPSE
	+bounceonwalls
	+dontoverlap
	+thruspecies
	-solid
	species "slime"
	-floorclip
	-countkill
	+bright
	bloodtype slimebloodsplatter
	Obituary "%o fell under the weight of the Broodlings"
	states
	{
	spawn:
		LSLI A 1 A_Look
		loop
	see:
		LSLI A 2 A_FaceTarget
		LSLI B 4 A_FaceTarget
		TNT1 A 0 A_Jump (80, "jumpattack")
		LSLI B 2
		TNT1 A 0 A_Jump (100,"liljump")
		loop
	pain:
		LSLI A 2
		TNT1 A 0 A_TakeInventory ("PowerTerrorStatus",999)
		TNT1 A 0 A_TakeInventory ("PowerKickedStatus",999)
		LSLI A 2 A_Pain
		goto see
	Pain.Dazer:
	Pain.Superkick:
		LSLI A 2
		TNT1 A 0 A_GiveInventory ("KickDazer",1)
		LSLI A 2 A_Pain
		goto Dazed
	Dazed:
		LSLI A 2
		LSLI A 1 A_SetAngle (angle+15)
		LSLI A 1 A_JumpIfInventory ("PowerKickedStatus",1,"Dazed")
		Goto See
	jumpattack:
		TNT1 A 0 A_Jump (100, "liljump")
		TNT1 A 0 A_Jump (60, "bigjump")
		LSLI C 4 A_FaceTarget
		TNT1 A 0 ThrustThingZ(0,40,0,1)
		TNT1 A 0 ThrustThing(angle*256/360, 20, 0, 0)
		TNT1 A 0 A_PlaySound ("broodling/jump",0)
		LSLI D 3
	flying:
		TNT1 A 0
		TNT1 A 0 A_Chase ("burst", 0, CHF_DONTMOVE)
		LSLI D 1 A_JumpIf(Abs(VelZ) <= 0.01, "Land")
		TNT1 A 0 A_Chase ("burst", 0, CHF_DONTMOVE)
		loop
	liljump:
		LSLI C 4 A_FaceTarget
		TNT1 A 0 ThrustThingZ(0,20,0,1)
		TNT1 A 0 ThrustThing(angle*256/360, 20, 0, 0)
		TNT1 A 0 A_PlaySound ("broodling/jump",0)
		LSLI D 3
		goto flying
	bigjump:
		LSLI C 4 A_FaceTarget
		TNT1 A 0 ThrustThingZ(0,45,0,1)
		TNT1 A 0 ThrustThing(angle*256/360, 35, 0, 0)
		TNT1 A 0 A_PlaySound ("broodling/jump",0)
		LSLI D 3
		goto flying
	land:
		TNT1 A 0 A_Stop
		TNT1 A 0 A_PlaySound ("broodling/land",0)
		TNT1 A 0 A_GiveInventory ("broodlingtimer",random(2,6))
		TNT1 A 0 A_Jumpifinventory ("broodlingtimer",20,"burst")
		LSLI B 4
		LSLI E 3
		LSLI A 15
		goto see
	burst:
		TNT1 AAAA 0 A_SpawnItemEx("slimeparticle",0,0,0,random(-10,10),random(-10,10),10) 		
		TNT1 AAAA 0 A_SpawnItemEx("slimeparticle",0,0,0,random(-10,10),random(-10,10),10) 		
		TNT1 AAAAAA 0 A_SpawnItemEx("slimeparticle",0,0,0,random(-10,10),random(-10,10),10) 		
		TNT1 A 0 A_PlaySound ("broodling/burst",0)
		TNT1 A 0 A_CustomMeleeAttack (5,0,0,0)
		TNT1 A 0 A_Fall
		TNT1 A 1
		stop
	death:
		TNT1 A 0 A_Fall
		TNT1 A 0 A_PlaySound ("broodling/die",0)
		TNT1 AAAA 0 A_SpawnItemEx ("slimebloodspray",0,0,0,random(-10,10),random(-10,10),random(5,10))       
		TNT1 A 1
		stop
	}
}


actor slimeparticle
{
	+missile
	-nogravity
	+clientsideonly
	speed 10
	gravity 1.50
	+thruactors
	+NOTELEPORT
	states
	{
	spawn:	
		TNT1 A 0
		SPTL AAAAAAAAAAAA 2 
		SPTL A 1 
		Stop
	}
}

actor slimecooldown : inventory
{inventory.maxamount 50}

actor broodlingtimer : inventory
{inventory.maxamount 20}


actor nosplit : inventory
{inventory.maxamount 1}

actor splitcounter : inventory
{inventory.maxamount 200}

actor clipped : inventory
{inventory.maxamount 1}

actor slimeupsiedaisytoken : inventory
{inventory.maxamount 1}