ACTOR Summoner 22065
{
	Health 900
	Radius 20
	Height 56
	Mass 400
	Speed 35
	PainChance 10
	Monster
	+QUICKTORETALIATE 
	+FLOORCLIP 
	+NOTARGET
	+NEVERTARGET
	SeeSound "summoner/sight"
	PainSound "summoner/pain"
	DeathSound "summoner/death"
	ActiveSound "summoner/active"
	Obituary "$o was zapped by a Summoner"
	States
	{
	Spawn:
		SUMM A 10 A_Look
		Loop
	See:
		TNT1 A 0 A_PlaySound("summoner/teleport", CHAN_AUTO)
		TNT1 A 0 A_SpawnItemEx("SummonerTeleportFog")
	See2:
		TNT1 A 0 A_UnSetShootable
		TNT1 A 0 A_UnSetSolid
		TNT1 A 0 A_Chase
		TNT1 A 2 A_SpawnItemEx("SummonerTrail", 0, 0, 32)
		TNT1 A 0 A_Chase
		TNT1 A 2 A_SpawnItemEx("SummonerTrail", 0, 0, 32)
		TNT1 A 0 A_Chase
		TNT1 A 2 A_SpawnItemEx("SummonerTrail", 0, 0, 32)
		TNT1 A 0 A_Chase
		TNT1 A 2 A_SpawnItemEx("SummonerTrail", 0, 0, 32)
		Loop
	Missile:
		TNT1 A 0 A_PlaySound("summoner/teleport", CHAN_AUTO)
		TNT1 A 0 A_SpawnItemEx("SummonerTeleportFog")
		TNT1 A 0 A_SetShootable
		TNT1 A 0 A_SetSolid
		SUMM AAA 10 BRIGHT A_FaceTarget
		TNT1 A 0 A_Jump(128,"Summon")
		SUMM B 4 BRIGHT A_FaceTarget
		SUMM C 4 BRIGHT A_FaceTarget
		SUMM D 4 BRIGHT A_CustomMissile("SummonerArgentBall")
		SUMM C 4 BRIGHT A_FaceTarget
		SUMM D 4 BRIGHT A_CustomMissile("SummonerArgentBall")
		SUMM C 4 BRIGHT A_FaceTarget
		SUMM D 4 BRIGHT A_CustomMissile("SummonerArgentBall")
		SUMM C 4 BRIGHT A_FaceTarget
		SUMM D 4 BRIGHT A_CustomMissile("SummonerArgentBall")
		TNT1 A 0 A_PlaySound("summoner/teleport", CHAN_AUTO)
		TNT1 A 0 A_SpawnItemEx("SummonerTeleportFog")
		Goto See2
	Summon:
		SUMM EE 2 BRIGHT A_FaceTarget
		SUMM E 2 BRIGHT A_SpawnItemEx("SummonerSpawnerCube", 0, 0, 23, 15, 0, 0, 0, SXF_SETMASTER | SXF_NOCHECKPOSITION )
		TNT1 A 0 A_PlaySound("summoner/teleport", CHAN_AUTO)
		TNT1 A 0 A_SpawnItemEx("SummonerTeleportFog")
		Goto See2
	Pain:
		SUMM F 3   
		SUMM F 3 A_Pain
		TNT1 A 0 A_SpawnItemEx("SummonerTeleportFog")
		TNT1 A 0 A_PlaySound("summoner/teleport", CHAN_AUTO)
		Goto See2
	Death:
		SUMM G 7 A_KillChildren
		SUMM H 7 A_Scream
		SUMM I 7 A_NoBlocking
		SUMM JKL 7
		SUMM M 38
		SUMM M 2 A_KillChildren
		SUMM M -1
		Stop
	}
}

ACTOR SummonerArgentBall
{
	Radius 6
	Height 8
	Speed 30
	Damage 5
	Scale 0.7
	Projectile 
	+RANDOMIZE
	RenderStyle Add
	Alpha 1
	SeeSound "summoner/attack"
	DeathSound "summoner/shotx"
	States
	{
	Spawn:
		4RGX AB 4 BRIGHT
		Loop
	Death:
		4RGX CDE 6 BRIGHT
		Stop
	}
}

ACTOR SummonerTeleportFog
{
	Height 78
	+NOBLOCKMAP
	+NOGRAVITY
	RenderStyle Add
	States
	{
	Spawn:
		SF0Z ABCDEFGH 4 Bright
		Stop
	}
}

ACTOR SummonerTrail
{
	Height 16
	Scale 0.5
	Alpha 0.5
	+NOBLOCKMAP
	+NOGRAVITY
	RenderStyle Add
	States
	{
	Spawn:
		4RGX ABABABABAB 2 Bright A_FadeOut(0.1)
		Stop
	}
}

ACTOR SummonerSpawnerCube
{
	Radius 32
	Height 32
	Scale 0.5
	Speed 15
	Damage 5
	RenderStyle Add
	Alpha 1
	Projectile
	BounceType "Doom"
	+RANDOMIZE
	+BOUNCEONWALLS
	+BOUNCEONFLOORS
	+BOUNCEONCEILINGS
	SeeSound "summoner/cube"
	DeathSound "summoner/teleport"
	States
	{
	Spawn:
		SUZ8 ABCD 3 BRIGHT
		SUZ8 ABCD 3 BRIGHT
		SUZ8 ABCD 3 BRIGHT
	Death:
		SUZ8 ABCD 3 BRIGHT
		SUZ8 A 1 BRIGHT A_SpawnItemEx("SummonerTeleportFog")
		TNT1 A 0 A_Jump(128, "Demon", "Spectre") //add your own custom monsters like this, so they die when the Summoner is killed.
	Imp:
		TNT1 A 0 A_SpawnItemEx("DoomImp", 0, 0, 0, 0, 0, 0, 0, SXF_SETMASTER | SXF_NOCHECKPOSITION )
		Stop
	Demon:
		TNT1 A 0 A_SpawnItemEx("Demon", 0, 0, 0, 0, 0, 0, 0, SXF_SETMASTER | SXF_NOCHECKPOSITION )
		Stop
	Spectre:
		TNT1 A 0 A_SpawnItemEx("Spectre", 0, 0, 0, 0, 0, 0, 0, SXF_SETMASTER | SXF_NOCHECKPOSITION )
		Stop
	}
}