Actor HereticKnight
{
Monster
Health 1750
Height 64
Radius 24
Speed 5
Mass 1000
Painchance "Mine", 80
PainChance "NewRocket", 256
PainChance "RifleGrenade", 256
PainChance "ThrownGrenade", 256
PainChance "NewPlasmaBall", 256
PainChance "DemonTechProjectile", 256
PainChance "BulletAR", 256
PainChance "BulletMG", 256
PainChance "BulletCSG", 256
PainChance "BulletSSG", 256
PainChance "BulletQSG", 256
Painchance "SatanGuard", 0
Painchance 20
MeleeDamage 15
+NoFear
+FLOORCLIP
+MISSILEMORE
+MISSILEEVENMORE
+FASTMELEE
+QUICKTORETALIATE
+NOTARGET
+DONTHARMSPECIES
+DONTHURTSPECIES
+DONTHARMCLASS
-BOSSDEATH
Species "Nobles"
Damagefactor "Acid", 0.6
//No Infighting
DamageFactor "SatanGuard", 0.0
Damagefactor "Nightshade", 0.0
DamageFactor "NobleComet", 0.0
DamageFactor "SoulToxic", 0.0
DamageFactor "Cacolich", 0.0
DropItem "BossLifeEssence", 196
DropItem "HEMBossArmorBonusMax35", 196
DropItem "UltraSphere", 40 
SeeSound "satyr/sight"
PainSound "baron/pain"
DeathSound "satyr/death"
ActiveSound "baron/active"
MeleeSound "imp/melee"
Obituary "%o was profaned by a Heretic Knight's dark magics."
HitObituary "%o was seared by a Heretic Knight's fist."
Tag "Heretic Knight"
States
	{
	Spawn:
		HWAR A 10 A_Look
		Loop
	See:
		TNT1 A 0 A_TakeInventory("Blocking",1)
		TNT1 A 0 A_ChangeFlag(NoPain,0)
		HWAR A 1
		TNT1 A 0 A_ChangeFlag(NoPain,0)
		HWAR AAAAABBBBB 1 A_Chase
		TNT1 A 0 A_SpawnItemEx("HoofStep2",0,0,2,0,0,-20)
		HWAR CCCCCDDDDD 1 A_Chase
		TNT1 A 0 A_SpawnItemEx("HoofStep2",0,0,2,0,0,-20)
		GoTo See+4
	Melee:
	Missile:
		TNT1 A 0 A_Jump(60,"Block")
		TNT1 A 0 A_Jump(8,"HellWarp")
		HWAR EF 4 A_FaceTarget
		HWAR G 4 A_CustomComboAttack("PurpleFireShot",32,15,"Imp/Melee","")
		HWAR FE 4 A_FaceTarget
		GoTo See+3
	Pain.NewPlasmaBall:
		TNT1 A 0 A_JumpIfInventory("Blocking",1,"BouncePlasma")
		TNT1 A 0 A_Jump(20,"Pain")
		GoTo See
	/*Pain.BFG:
		TNT1 A 0 A_JumpIfInventory("Blocking",1,"BounceBFG")
		NULL A 0
		GoTo Pain*/
	Pain.BulletAR:
		TNT1 A 0 A_JumpIfInventory("Blocking",1,"BounceAR")
		TNT1 A 0 A_Jump(20,"Pain")
		GoTo See
	Pain.BulletMG:
		TNT1 A 0 A_JumpIfInventory("Blocking",1,"BounceMG")
		TNT1 A 0 A_Jump(20,"Pain")
		GoTo See
	Pain.BulletCSG:
		TNT1 A 0 A_JumpIfInventory("Blocking",1,"BounceCSG")
		TNT1 A 0 A_Jump(20,"Pain")
		GoTo See
	Pain.BulletSSG:
		TNT1 A 0 A_JumpIfInventory("Blocking",1,"BounceSSG")
		TNT1 A 0 A_Jump(20,"Pain")
		GoTo See
	Pain.BulletQSG:
		TNT1 A 0 A_JumpIfInventory("Blocking",1,"BounceQSG")
		TNT1 A 0 A_Jump(20,"Pain")
		GoTo See
	Pain.DemonTechProjectile:
		TNT1 A 0 A_JumpIfInventory("Blocking",1,"BounceDTR")
		TNT1 A 0 A_Jump(20,"Pain")
		GoTo See
	/*Pain.Extreme:
		TNT1 A 0 A_JumpIfInventory("Blocking",1,"BounceCSaw")
		NULL A 0
		GoTo Pain*/
	Pain.NewRocket:
		TNT1 A 0 A_JumpIfInventory("Blocking",1,"BounceRocket")
		TNT1 A 0 A_Jump(20,"Pain")
		GoTo See
	Pain.RifleGrenade:
	Pain.ThrownGrenade:
		TNT1 A 0 A_JumpIfInventory("Blocking",1,"BounceGrenade")
		TNT1 A 0 A_Jump(20,"Pain")
		GoTo See
	Pain:
		TNT1 A 0 A_ChangeFlag(NoPain,0)
		TNT1 A 0 A_ChangeFlag(NoBlood,0)
		TNT1 A 0 A_TakeInventory("Blocking",1)
		TNT1 A 0 A_TakeInventory("Tic", 9999)
		TNT1 A 0 A_Jump(40,"Block")
		HWAR J 5 A_Pain
		GoTo See
	Block:
		TNT1 A 0 A_GiveInventory("Blocking",1)
		GoTo Blocking
	HellWarp:
		TNT1 A 0 A_ChangeFlag(NoPain,1)
		TNT1 A 0 A_ChangeFlag(ShieldReflect,1)
		HWAR HHHHHHHHHHHHHHHHHHHHHHHHHH 1 A_FaceTarget
		HWAR IIII 1 Bright A_FaceTarget
		TNT1 A 0 A_PlaySound("Warp/Spawn2",0,1.0,0)
		TNT1 A 0 A_CustomMissile("WarpPortal",40,0,0,CMF_TRACKOWNER)
		HWAR I 1 Bright A_Facetarget
		TNT1 A 0 A_ChangeFlag(NoPain,0)
		TNT1 A 0 A_ChangeFlag(ShieldReflect,0)
		TNT1 A 0 A_Recoil(random(-20.0,20.0))
		HWAR I 3 Bright
		HWAR H 4
		GoTo See
	Blocking:
		TNT1 A 0 A_ChangeFlag(NoBlood,1)
		TNT1 A 0 A_JumpIfInventory("Tic",280,"BlockEnd")
		TNT1 A 0 A_Jump(5,"BlockEnd")
		TNT1 A 0 A_GiveInventory("Tic",1)
		HWAR H 1 A_FaceTarget
		Loop
	BlockEnd:
		TNT1 A 0
		TNT1 A 0 A_ChangeFlag(NoBlood,0)
		TNT1 A 0 A_ChangeFlag(NoPain,0)
		TNT1 A 0 A_TakeInventory("Blocking",1)
		TNT1 A 0 A_TakeInventory("Tic", 999)
		GoTo See
	BouncePlasma:
		TNT1 A 0
		TNT1 A 0 HealThing(18)
		TNT1 A 0 A_Jump(150,"BouncePlasma2")
		GoTo Blocking
	BouncePlasma2:
		HWAR H 5 A_FaceTarget
		HWAR I 4 A_CustomMissile("RedBallPlasma",32,0,0,CMF_TRACKOWNER)
		TNT1 A 0 A_FaceTarget
		HWAR I 4 A_CustomMissile("RedBallPlasma",32,0,0,CMF_TRACKOWNER)
		TNT1 A 0 A_FaceTarget
		HWAR I 4 A_CustomMissile("RedBallPlasma",32,0,0,CMF_TRACKOWNER)
		TNT1 A 0 A_FaceTarget
		HWAR I 4 A_CustomMissile("RedBallPlasma",32,0,0,CMF_TRACKOWNER)
		TNT1 A 0 A_FaceTarget
		GoTo Blocking
	/*BounceBFG:
		NULL A 0
		HWAR H 5 A_FaceTarget
		HWAR I 2 A_CustomMissile("RedBallBFG",32,0,0,0)
		GoTo Blocking*/
	BounceAR:
		TNT1 A 0
		TNT1 A 0 HealThing(6)
		TNT1 A 0 A_Jump(80,"BounceAR2")
		GoTo Blocking
	BounceAR2:
		TNT1 A 0 A_ChangeFlag(NOPAIN,1)
		HWAR H 5 A_FaceTarget
		HWAR I 2 A_CustomMissile("RedBallAR",32,0,0,CMF_TRACKOWNER)
		TNT1 A 0 A_FaceTarget
		HWAR I 2 A_CustomMissile("RedBallAR",32,0,0,CMF_TRACKOWNER)
		TNT1 A 0 A_FaceTarget
		HWAR I 2 A_CustomMissile("RedBallAR",32,0,0,CMF_TRACKOWNER)
		TNT1 A 0 A_FaceTarget
		GoTo Blocking
	BounceMG:
		TNT1 A 0
		TNT1 A 0 HealThing(7)
		TNT1 A 0 A_Jump(80,"BounceMG2")
		GoTo Blocking
	BounceMG2:
		TNT1 A 0 A_ChangeFlag(NOPAIN,1)
		HWAR H 5 A_FaceTarget
		HWAR I 1 A_CustomMissile("RedBallMG",32,0,0,CMF_TRACKOWNER)
		TNT1 A 0 A_FaceTarget
		HWAR I 1 A_CustomMissile("RedBallMG",32,0,0,CMF_TRACKOWNER)
		TNT1 A 0 A_FaceTarget
		HWAR I 1 A_CustomMissile("RedBallMG",32,0,0,CMF_TRACKOWNER)
		TNT1 A 0 A_FaceTarget
		HWAR I 1 A_CustomMissile("RedBallMG",32,0,0,CMF_TRACKOWNER)
		TNT1 A 0 A_FaceTarget
		HWAR I 1 A_CustomMissile("RedBallMG",32,0,0,CMF_TRACKOWNER)
		TNT1 A 0 A_FaceTarget
		HWAR I 1 A_CustomMissile("RedBallMG",32,0,0,CMF_TRACKOWNER)
		TNT1 A 0 A_FaceTarget
		HWAR I 1 A_CustomMissile("RedBallMG",32,0,0,CMF_TRACKOWNER)
		TNT1 A 0 A_FaceTarget
		HWAR I 1 A_CustomMissile("RedBallMG",32,0,0,CMF_TRACKOWNER)
		TNT1 A 0 A_FaceTarget
		GoTo Blocking
	BounceCSG:
		TNT1 A 0
		TNT1 A 0 HealThing(12)
		TNT1 A 0 A_Jump(80,"BounceCSG2")
		GoTo Blocking
	BounceCSG2:
		TNT1 A 0 A_ChangeFlag(NOPAIN,1)
		HWAR H 5 A_FaceTarget
		HWAR I 2 A_CustomMissile("RedBallCSG",32,0,0,CMF_TRACKOWNER)
		GoTo Blocking
	BounceSSG:
		TNT1 A 0
		TNT1 A 0 HealThing(24)
		TNT1 A 0 A_Jump(130,"BounceSSG2")
		GoTo Blocking
	BounceSSG2:
		TNT1 A 0 A_ChangeFlag(NOPAIN,1)
		HWAR H 5 A_FaceTarget
		HWAR I 2 A_CustomMissile("RedBallSSG",32,0,0,CMF_TRACKOWNER)
		GoTo Blocking
	BounceQSG:
		TNT1 A 0
		TNT1 A 0 HealThing(48)
		TNT1 A 0 A_Jump(150,"BounceQSG2")
		GoTo Blocking
	BounceQSG2:
		TNT1 A 0 A_ChangeFlag(NOPAIN,1)
		HWAR H 5 A_FaceTarget
		HWAR I 2 A_CustomMissile("RedBallQSG",32,0,0,CMF_TRACKOWNER)
		GoTo Blocking
	BounceRocket:
		TNT1 A 0
		TNT1 A 0 HealThing(35)
		TNT1 A 0 A_Jump(170,"BounceRocket2")
		GoTo Blocking
	BounceRocket2:
		TNT1 A 0 A_ChangeFlag(NOPAIN,1)
		HWAR H 5 A_FaceTarget
		HWAR I 2 A_CustomMissile("RedBallRocket",32,0,0,CMF_TRACKOWNER)
		GoTo Blocking
	BounceGrenade:
		TNT1 A 0
		TNT1 A 0 HealThing(35)
		TNT1 A 0 A_Jump(170,"BounceGrenade2")
		GoTo Blocking
	BounceGrenade2:
		TNT1 A 0 A_ChangeFlag(NOPAIN,1)
		HWAR H 5 A_FaceTarget
		HWAR I 2 A_CustomMissile("RedBallGrenade",32,0,0,CMF_TRACKOWNER)
		GoTo Blocking
	BounceDTR:
		TNT1 A 0
		TNT1 A 0 HealThing(12)
		TNT1 A 0 A_Jump(70,"BounceDTR2")
		GoTo Blocking
	BounceDTR2:
		TNT1 A 0 A_ChangeFlag(NOPAIN,1)
		HWAR H 5 A_FaceTarget
		HWAR I 2 A_CustomMissile("RedBallDTR",32,0,0,CMF_TRACKOWNER)
		GoTo Blocking
	/*BounceBFGSuper:
		NULL A 0
		TNT1 A 0 HealThing(12)
		TNT1 A 0 A_Jump(50,1)
		GoTo Blocking
		TNT1 A 0 A_ChangeFlag(NOPAIN,1)
		HWAR H 5 A_FaceTarget
		HWAR I 2 A_CustomMissile("RedBallBFGSuper",32,0,0,0)
		GoTo Death*/
	/*BounceCSaw:
		NULL A 0
		TNT1 A 0 HealThing(12)
		TNT1 A 0 A_Jump(70,1)
		GoTo Blocking
		TNT1 A 0 A_ChangeFlag(NOPAIN,1)
		HWAR H 5 A_FaceTarget
		HWAR I 2 A_CustomMissile("RedBallCSaw",32,0,0,0)
		TNT1 A 0 A_ChangeFlag(NOPAIN,0)
		GoTo Blocking*/
	Death: 
		HWAR K 5 A_SpawnItemEx("HellWarriorShield",0,0,25,6,0,0,60,128)
		HWAR L 5 A_Scream
		HWAR M 5 A_Fall
		HWAR N 5
		HWAR OPQRS 5
		TNT1 A 0 A_SpawnItem("BodyCrash")
		HWAR T 63000 CanRaise
		Stop 
	Raise:
		TNT1 A 0
		TNT1 A 0 A_SpawnItemEx("VileHealEffect",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		HWAR QPONMLK 5 
		Goto See 
	} 
}

Actor RedBallAR : ShadeMissile
{
Speed 95
Damage (4*random(1,8))
-SeekerMissile
Species ""
Species "Nobles"
}

Actor RedBallMG : ShadeMissile
{
Speed 95
Damage (5*random(1,8))
-SeekerMissile
Species ""
Species "Nobles"
}

Actor RedBallCSG : ShadeMissile
{
Speed 5
Damage (0)
-SeekerMissile
Species ""
Species "Nobles"
States
	{
	Spawn:
		TNT1 A 2
		TNT1 AAAA 0 A_CustomMissile("RedBallAR",0,0,random(5,-5),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(5,-5))
		TNT1 A 1
		Stop
	}
}

Actor RedBallSSG : RedBallCSG
{
States
	{
	Spawn:
		TNT1 A 2
		TNT1 AAAAAAAA 0 A_CustomMissile("RedBallAR",0,0,random(5,-5),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(5,-5))
		TNT1 A 1
		Stop
	}
}

Actor RedBallQSG : RedBallCSG
{
States
	{
	Spawn:
		TNT1 A 2
		TNT1 AAAAAAAAAAA 0 A_CustomMissile("RedBallMG",0,0,random(5,-5),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(5,-5))
		TNT1 A 1
		Stop
	}
}

Actor RedBallPlasma : RedBallAR
{
Scale 1.5
Speed 30
Damage 6
-StrifeDamage
}

Actor RedBallDTR : RedBallAR
{
Speed 55
Scale 0.5
Damage 3
SeeSound "weapons/demontechfire"
DeathSound "weapons/demontechex"
States
	{
	Spawn:
		SHBB AAABBB 1 Bright A_SpawnItemEx("RedBallTrail",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		Loop
	Crash:
	Death:
		TNT1 A 0 Bright
		SHBB CDEFG 3 Bright
		Stop
	XDeath:
		TNT1 A 0 Bright
		TNT1 A 0 A_SpawnItemEx("RedParticleSpawner",0,0,0,0,0,0,0,128)
		TNT1 AAA 0 A_CustomMissile("Kaboom10",0,0,random(0,360),2,random(0,360))
		TNT1 AAA 0 A_CustomMissile("SmokeFX4",0,0,random(0,360),2,random(0,360))
		SHBB CDEFG 3 Bright
		Stop
	}
}

Actor RedBallRocket : Comet
{
Speed 30
Species ""
Species "Nobles"
States
	{
	Spawn:
		SHBB AAABBB 1 Bright A_SpawnItemEx("HadesCometTrail",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		Loop
	Crash:
	Death:
		TNT1 A 0 Bright
		SHBB CDEFG 3 Bright
		Stop
	XDeath:
		TNT1 A 0 Bright
		TNT1 A 0 A_SpawnItemEx("RedParticleSpawner",0,0,0,0,0,0,0,128)
		TNT1 AAA 0 A_CustomMissile("Kaboom14",0,0,random(0,360),2,random(0,360))
		TNT1 AAA 0 A_CustomMissile("SmokeFX2",0,0,random(0,360),2,random(0,360))
		SHBB CDEFG 3 Bright
		Stop
	}
}

Actor HadesCometTrail : ShadePuff
{
Scale 1.0
Renderstyle Add
Alpha 1.0
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		SHBT ABCDE 2 A_FadeOut(0.1,1)
		Wait
	Toaster:
		TNT1 A 1 Bright
		Stop
	}
}
	 

Actor RedBallGrenade : RedBallRocket
{
+HexenBounce
-NoGravity
BounceCount 8
BounceFactor 25
} 

Actor ShadowPuff2 : ShadePuff { Scale 0.7 }

Actor RedBallTrail
{
+CLIENTSIDEONLY
+NOINTERACTION
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 1 Bright A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		TNT1 A 0 A_SpawnItemEx("ShadowPuff2",random(-5,5),random(-5,5),random(-5,5),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 1 A_SpawnItemEx("HadesFire",0,0,random(5,-5),0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		Stop
	Toaster:
		TNT1 A 1 Bright
		Stop
	}
}

Actor HellWarriorShield
{
Height 8
Radius 4
Speed 6
Bouncetype Doom
+Missile
+DROPOFF
+NOBLOCKMAP
+NOTELEPORT
+DOOMBOUNCE
States
	{
	Spawn:
		HWSH ABCDEFGH 3
		Loop
	Death:
		HWSH I 2100
		HWSH I 5 A_FadeOut(0.1,1)
		Wait
	}
}

Actor PurpleFireShot : GuardianTracer
{
Projectile
Speed 24
FastSpeed 26
RenderStyle Translucent
Alpha 0.85
Decal "BaronScorch"
Damage 10
-SEEKERMISSILE
+DONTHURTSPECIES
+DONTHARMSPECIES
Species ""
Species "Nobles"
SeeSound "monsters/newfireshoot"
DeathSound "monsters/newfireexplode"
States
	{
	Spawn:
		PKAL AAABBB 1 Bright A_SpawnItemEx("PurpleFireShotTrail",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		Loop
	Crash:
	Death:
		TNT1 A 0 Bright
		PKAL DEFG 3 Bright
		Stop
	XDeath:
		TNT1 A 0
		TNT1 A 0 A_SpawnItemEx("PurpleParticleSpawner",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0)
		TNT1 AAA 0 A_CustomMissile("Kaboom8",0,0,random(0,360),2,random(0,360))
		TNT1 AAA 0 A_CustomMissile("SmokeFX4",0,0,random(0,360),2,random(0,360))	
		PKAL DEFG 3 Bright
		Stop
	}
}

Actor PurpleFireShotTrail : BFG9500Trail
{
Scale 0.85
States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		TNT1 A 1
		Goto Spawnloop
	Spawnloop:
		PKAL AB 1 A_FadeOut(0.1,1)
		Loop
	}
}

Actor Blocking : Inventory { Inventory.MaxAmount 1 }

Actor WarpPortal
{
Projectile
Height 2
Radius 2
Speed 35
Scale 1.8
Renderstyle Translucent
Alpha 0.8
Damage (0)
+Ripper
+LookAllAround
+BloodlessImpact
+DontHurtSpecies
+DontHarmSpecies
Species "Nobles"
Damagetype "Nightshade"
States
	{
	Spawn:
		TNT1 A 1
		TNT1 A 0 A_Stop
		TNT1 A 0 A_ScaleVelocity(0.0)
		TNT1 A 0 A_PlaySound("Warp/Spawn1",2,1.0,0)
		GRBA MLKJI 3 Bright
	Warping:
		TNT1 A 0
		TNT1 A 0 A_PlaySound("Warp/Idle",3,1.0,0)
		GRBA AABBCCDDEEFFGGHHAABBCCDDEEFFGGHHAABBCCDDEEFFGGHHAABBCCDDEEFFGGHHAABBCCDDEEFFGGHHAABBCCDDEEFFGGHH 1 Bright A_SpawnItemEx("WarpPortalFXGen",0,0,0)
		TNT1 A 0 A_SpawnItemEx("WarpedFXGen",0,0,0)
		TNT1 A 0 A_SpawnItemEx("NightShade",0,0,0,random(1,4),0,0,random(0,360),SXF_TRANSFERPOINTERS|SXF_SETMASTER,0)
		TNT1 A 0 A_PlaySound("Warp/Idle",0,1.0,0)
		GRBA ABCDEFGH 1 Bright A_CustomMissile("WarpShots",0,0,random(0,360),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(0,360))
		GRBA AABBCCDDEEFFGGHHAABBCCDDEEFFGGHHAABBCCDDEEFFGGHHAABBCCDDEEFFGGHHAABBCCDDEEFFGGHHAABBCCDDEEFFGGHH 1 Bright A_SpawnItemEx("WarpPortalFXGen",0,0,0)
		TNT1 A 0 A_SpawnItemEx("WarpedFXGen",0,0,0)
		TNT1 A 0 A_SpawnItemEx("NightShade",0,0,0,random(1,4),0,0,random(0,360),SXF_TRANSFERPOINTERS|SXF_SETMASTER,0)
		TNT1 A 0 A_PlaySound("Warp/Idle",0,1.0,0)
		GRBA ABCDEFGH 1 Bright A_CustomMissile("WarpShots",0,0,random(0,360),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(0,360))
		GRBA AABBCCDDEEFFGGHHAABBCCDDEEFFGGHHAABBCCDDEEFFGGHHAABBCCDDEEFFGGHHAABBCCDDEEFFGGHHAABBCCDDEEFFGGHH 1 Bright A_SpawnItemEx("WarpPortalFXGen",0,0,0)
		TNT1 A 0 A_SpawnItemEx("WarpedFXGen",0,0,0)
		TNT1 A 0 A_SpawnItemEx("NightShade",0,0,0,random(1,4),0,0,random(0,360),SXF_TRANSFERPOINTERS|SXF_SETMASTER,0)
		TNT1 A 0 A_PlaySound("Warp/Idle",0,1.0,0)
		GRBA ABCDEFGH 1 Bright A_CustomMissile("WarpShots",0,0,random(0,360),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(0,360))
		GRBA IJKLM 3 Bright A_FadeOut(0.1,0)
		TNT1 A 0 A_PlaySound("Warp/Die",0,1.0,0)
		TNT1 A 1 A_SpawnItemEx("RedFlare")
		Stop
	}
}

Actor WarpPortalFXGen
{
+DROPOFF
+NOGRAVITY
+NOBLOCKMAP
+NOTELEPORT
+DONTSPLASH
States
	{
	Spawn:
		TNT1 A 0
		TNT1 AAA 0 A_SpawnItemEx("Kaboom10",0,0,0,random(-8,8),random(-20,20),random(-8,8),random(0,360))
		TNT1 A 0 A_SpawnItemEx("HadesElectroSmoke",0,0,0,random(-8,8),random(-8,8),random(-8,8),random(0,360))
		TNT1 A 0 A_SpawnItemEx("SHadesTrail1",0,0,0,random(-8,8),random(-8,8),random(-20,20),random(0,360))
		TNT1 A 1 A_SpawnItemEx("SHadesTrail2",0,0,0,random(-8,8),random(-8,8),random(-8,8),random(0,360))
		Stop
	}
}

Actor WarpedFXGen : WarpPortalFXGen
{
States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_SpawnItemEx("RedFlare",0,0,0)
		TNT1 AAAA 0 A_SpawnItemEx("Kaboom12",0,0,0,random(-20,20),random(-20,20),random(-20,20),random(0,360))
		TNT1 AAAAAAA 0 A_SpawnItemEx("HadesElectroSmoke",0,0,0,random(-20,20),random(-20,20),random(-20,20),random(0,360))
		TNT1 AAAAAAA 0 A_SpawnItemEx("SHadesTrail1",0,0,0,random(-20,20),random(-20,20),random(-20,20),random(0,360))
		TNT1 AAAAAAA 0 A_SpawnItemEx("SHadesTrail2",0,0,0,random(-20,20),random(-20,20),random(-20,20),random(0,360))
		TNT1 A 1
		Stop
	}
}

Actor WarpShots : ShadeMissile
{
Speed 24
BounceCount 6
BounceFactor 1.2
WallBounceFactor 1.1
Damage 2
-StrifeDamage
-SeekerMissile
+HexenBounce
+ThruSpecies
Species ""
Species "AdvancedImp"
Damagetype ""
Damagetype "Nightshade"
}