Actor Wicked
{
Monster
Health 220
Height 41
Radius 11
Scale 0.45
Mass 200 
Speed 6
FloatSpeed 6
FastSpeed 6
ReactionTime 23
Painchance "SatanGuard", 0
Painchance "BloodElemental", 0
Painchance "Broat", 0
PainChance 100
Damage (random(7,10))
+Float
+NoGravity
+FloorClip
+MissileMore
+DontHurtSpecies
+DontHarmSpecies
+DontHarmClass
Species "EleSouls"
Species "Souls"
DamageType "Wicked"
DamageFactor "PDTBFG", 0.25
DamageFactor "PDTBFGTracer", 0.25
DamageFactor "PlayerDevBall", 0.125
DamageFactor "PlayerDevBall2", 0.125
DamageFactor "PlayerDevTracer", 0.125
DamageFactor "PlayerDTBFGRailgunSlug", 0.125
DamageFactor "PlayerDevTracer", 0.125
DamageFactor "LegendaryPlayer", 0.3
DamageFactor "LegendaryGuruPlayer", 0.3
DamageFactor 0.75
//No Infighting
Damagefactor "Wicked", 0.0
Damagefactor "BloodSkull", 0.0
Damagefactor "BloodElemental", 0.0
Damagefactor "Broat", 0.0
DamageFactor "SoulToxic", 0.0
DamageFactor "BombBreath", 0.0
Damagefactor "EleSouls", 0.0
DropItem "LifeEssence", 196
DropItem "HEMArmorBonusMax1", 196
SeeSound "monster/wiksit"
ActiveSound "monster/wikact"
PainSound "monster/wikpai"
DeathSound "monster/wikdth"
Obituary "%o was set ablaze by a Wicked."
HitObituary "%o got a Wicked to the head."
States
	{
	Spawn:
		WICK ABCD 5 A_Look
		Loop
	See:
		WICK AAA 1 A_Chase("","")
		WICK A 1 A_Chase
		WICK BBB 1 A_Chase("","")
		WICK B 1 A_Chase
		WICK CCC 1 A_Chase("","")
		WICK C 1 A_Chase
		WICK DDD 1 A_Chase("","")
		WICK D 1 A_Chase
		TNT1 A 0 A_Jump(20,"Dodge")
		TNT1 A 0 A_FastChase
		Loop
	Dodge:
		TNT1 A 0 A_Jump(255,"Right","Left","Back","BackLeftRange","BackRightRange")
		GoTo See
	Right:
		TNT1 A 0
		TNT1 A 0 ThrustThing(angle*256/360+64,30,0,0)
		WICK A 5
		GoTo See
	Left:
		TNT1 A 0
		TNT1 A 0 ThrustThing(angle*256/360+192,30,0,0)
		WICK A 5
		GoTo See
	Back:
		TNT1 A 0
		TNT1 A 0 ThrustThing(angle*256/360+128,30,0,0)
		WICK A 5
		GoTo See
	BackLeftRange:
		TNT1 A 0
		TNT1 A 0 ThrustThing(angle*256/360+random(133,187),30,0,0)
		WICK A 5
		GoTo See
	BackRightRange:
		TNT1 A 0
		TNT1 A 0 ThrustThing(angle*256/360+random(69,123),30,0,0)
		WICK A 5
		GoTo See
	Missile:
		TNT1 A 0
		WICK I 1 A_PlaySound("monster/wikatk")
		TNT1 A 0 A_Jump(138,"Ram")
		TNT1 A 0 A_Jump(80,"Homer")
	Normal:
		WICK IIII 1 A_FaceTarget
		WICK JJJJKK 1 BRIGHT A_FaceTarget  
		TNT1 A 0 A_CustomMissile("WickedShot",28,0,random(-2,2))
		WICK KK 1 BRIGHT A_FaceTarget  
		TNT1 A 0 A_CustomMissile("WickedShot",28,0,random(-2,2))
		WICK KK 1 BRIGHT A_FaceTarget  
		TNT1 A 0 A_CustomMissile("WickedShot",28,0,random(-2,2))
		WICK KK 1 BRIGHT A_FaceTarget  
		TNT1 A 0 A_CustomMissile("WickedShot",28,0,random(-2,2))
		WICK KK 1 BRIGHT A_FaceTarget  
		TNT1 A 0 A_CustomMissile("WickedShot",28,0,random(-2,2))
		WICK KK 1 BRIGHT A_FaceTarget  
		TNT1 A 0 A_CustomMissile("WickedShot",28,0,random(-2,2))
		WICK L 8
		Goto See
	Homer:
		WICK IIII 1 A_FaceTarget
		WICK JJJJKK 1 BRIGHT A_FaceTarget  
		TNT1 A 0 A_CustomMissile("WickedHomer",28,0,random(-2,2))
		WICK L 12
		GoTo See
	Ram:
		WICK EEEFFFGGGHEG 1 A_FaceTarget
		WICK G 1 A_SkullAttack(18)
	LoopRam:
		WICK FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 1 A_SpawnItem("WickedGhost")
		WICK F 1 A_Stop
		GoTo See
	Pain:
		WICK M 3 A_Pain
		WICK M 4
		GoTo See
	XDeath:
	Death:
		TNT1 A 0
		WICK N 5 A_Scream
		WICK OP 5
		TNT1 A 0 A_SpawnItemEx("GibbedGenerator",0,0,20)
		TNT1 A 0 A_SpawnItemEX("WickedTorso",0,0,41,-7,0,4)
		WICT A 5 A_Fall
		TNT1 A 0 A_ChangeFlag(SOLID,0)
		TNT1 A 0 A_ChangeFlag(THRUACTORS,1)
		TNT1 A 0 A_TakeInventory("Tic",999999)
	Fall:
		WICT B 1 A_CheckFloor("Land")
		TNT1 A 0 A_JumpIfInventory("Tic",525,"Land")
		TNT1 A 0 A_GiveInventory("Tic",1)
		Loop
	Land:
		TNT1 A 0
		TNT1 A 0 A_TakeInventory("Tic",999999)	
		TNT1 A 0 A_ChangeFlag(CORPSE,1)
		TNT1 A 0 A_SpawnItem("BodyCrash",0,0,0,0)
		TNT1 A 0 A_ChangeFlag(SOLID,0)
		TNT1 A 0 A_ChangeFlag(THRUACTORS,0)
		TNT1 A 0 A_ChangeFlag(MOVEWITHSECTOR,1)
		WICT CDEF 5
		WICT G 525
	Fade:
		WICT G 5 A_FadeOut(0.1,1)
		Loop
	}
}

Actor CruelBall : NewDoomImpBall
{
Damage (random(14,16))
+DontHurtSpecies
+DontHarmSpecies
Species ""
Species "Souls"
Damagetype ""
DamageType "Wicked"
}

Actor WickedHomer : CruelBall
{
BounceCount 3
BounceFactor 1.1
+SeekerMissile
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_Jump(120,"Weave","Slither")
		TNT1 A 0 Bright A_Jump(65,"Bounce")
	Normal:
		BAL8 AB 1 Bright A_SpawnItemEx("DoomImpBallTrail",0,0,RANDOM(-3,3),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 Bright A_SeekerMissile(8,10)
		Loop
	Weave:
		BAL8 A 1 Bright A_SpawnItemEx("DoomImpBallTrail",0,0,RANDOM(-3,3),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 AA 0 Bright A_BishopMissileWeave
		BAL8 B 1 Bright A_SpawnItemEx("DoomImpBallTrail",0,0,RANDOM(-3,3),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 AA 0 Bright A_BishopMissileWeave
		TNT1 A 0 Bright A_SeekerMissile(8,10)
		Loop
	Slither:
		BAL8 A 1 Bright A_SpawnItemEx("DoomImpBallTrail",0,0,RANDOM(-3,3),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 AA 0 Bright A_CStaffMissileSlither
		BAL8 B 1 Bright A_SpawnItemEx("DoomImpBallTrail",0,0,RANDOM(-3,3),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 AA 0 Bright A_CStaffMissileSlither
		TNT1 A 0 Bright A_SeekerMissile(8,10)
		Loop
	Bounce:
		BAL8 A 1 Bright A_ChangeFlag(HexenBounce,1)
		TNT1 A 0 Bright A_Jump(128,"Weave","Slither")
		GoTo Normal
	}
}

Actor WickedShot : DoomImpBall
{
FastSpeed 21
Scale 0.65
Speed 17
Decal DoomImpScorch
Damage 1
+DontHurtSpecies
+DontHarmSpecies
Species ""
Species "Souls"
Damagetype ""
Damagetype "Wicked"
States
	{
	Spawn:
		FDMB A 1 Bright A_SpawnItemEx("WickedFX",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		Loop
	Death:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_SpawnItemEx("OrangeParticleSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 AAA 0 A_CustomMissile("Kaboom9",0,0,random(0,360),2,random(0,360))
		TNT1 AAA 0 A_CustomMissile("SmokeFX4",0,0,random(0,360),2,random(0,360))
		FDMB BCDE 3 Bright
		Stop
	}
}

Actor WickedFX
{
Scale 0.65
RENDERSTYLE Add
+CLIENTSIDEONLY
+NOINTERACTION
+FORCEXYBILLBOARD
States
	{
	Spawn:
		TNT1 A 1 Bright
		FDMB A 1 Bright A_FadeOut(0.1,1)
		Goto Spawn+1
	}
}

Actor WickedGhost
{
Radius 2
Height 41
Scale 0.45
Alpha 0.7
RENDERSTYLE Translucent
+CLIENTSIDEONLY
+NOINTERACTION
States
	{
	Spawn:
		TNT1 A 1 Bright
		WICK F 2 A_FadeOut(0.1,1)
		Goto Spawn+1
	}
}

Actor WickedTorso
{
Mass 1000000
Radius 1
Height 1
Scale 0.45
+IsMonster
+Corpse
+FloorClip
+THRUACTORS
+NOBLOCKMAP
States
	{
	Spawn:
		WICK Q 5 A_PlaySound("monster/tenpn1")
		WICK R 525
	Crash:
		WICK S 1
		WICK S 4 A_PlaySound("monster/tenpn2")
		WICK TUV 5
		TNT1 A 0 A_SpawnItem("BodyCrash",0,0,0,0)
		TNT1 A 0 A_ChangeFlag(MOVEWITHSECTOR,1)
		WICK W 525
	Fade:
		WICK W 5 A_FadeOut(0.1,1)
		Loop
	}
}

Actor CruelGhost : WickedGhost
{
Height 48
Scale 0.6
States
	{
	Spawn:
		TNT1 A 1
		CRUL F 2 A_FadeOut(0.1,1)
		Goto Spawn+1
	}
}

Actor CruelTorso
{
Mass 1000000
Radius 1
Height 1
Scale 0.6
+IsMonster
+Corpse
+FloorClip
+THRUACTORS
+NOBLOCKMAP
States
	{
	Spawn:
		CRUL Q 5 A_PlaySound("monster/tenpn1")
		CRUL R 525
	Crash:
		CRUL S 1
		CRUL S 4 A_PlaySound("monster/tenpn2")
		CRUL TUV 5
		TNT1 A 0 A_SpawnItem("BodyCrash",0,0,0,0)
		TNT1 A 0 A_ChangeFlag(MOVEWITHSECTOR,1)
		CRUL W 525
	Fade:
		CRUL W 5 A_FadeOut(0.1,1)
		Loop
	}
}

Actor Cruel : Wicked
{
Health 200
Height 48
Radius 16
Mass 300
Scale 0.6
Bloodcolor Black
Damage (random(17,20))
DropItem ""
DropItem "LifeEssence", 196
DropItem "ArmorBonusMax", 196
Obituary "%o was charred by a Cruel."
HitObituary "%o was rammed by a Cruel."
States
	{ 
	Spawn:
		CRUL ABCD 5 A_Look
		Loop
	See:
		CRUL AAAABBBB 1 A_Chase
		TNT1 A 0 A_FastChase
		CRUL CCCCDDDD 1 A_Chase
		TNT1 A 0 A_FastChase
		TNT1 A 0 A_Jump(20,"Dodge")
		Loop
	Dodge:
		TNT1 A 0
		TNT1 A 0 A_Jump(255,"Right","Left","Back","BackLeftRange","BackRightRange")
		GoTo See
	Right:
		TNT1 A 0
		TNT1 A 0 ThrustThing(angle*256/360+64,30,0,0)
		CRUL A 5
		GoTo See
	Left:
		TNT1 A 0
		TNT1 A 0 ThrustThing(angle*256/360+192,30,0,0)
		CRUL A 5
		GoTo See
	Back:
		TNT1 A 0
		TNT1 A 0 ThrustThing(angle*256/360+128,30,0,0)
		CRUL A 5
		GoTo See
	BackLeftRange:
		TNT1 A 0
		TNT1 A 0 ThrustThing(angle*256/360+random(133,187),30,0,0)
		CRUL A 5
		GoTo See
	BackRightRange:
		TNT1 A 0
		TNT1 A 0 ThrustThing(angle*256/360+random(69,123),30,0,0)
		CRUL A 5
		GoTo See
	Missile:
		CRUL I 1 A_PlaySound("monster/wikatk")
		TNT1 A 0 A_Jump(138,"Ram")
		TNT1 A 0 A_Jump(80,"Homer")
		Goto Normal
	Normal:
		CRUL IIII 1 A_FaceTarget
		CRUL JJJJKK 1 BRIGHT A_FaceTarget  
		TNT1 A 0 A_CustomMissile("CruelBall",34,0,random(-2,2))
		CRUL LKK 1 BRIGHT A_FaceTarget  
		TNT1 A 0 A_CustomMissile("CruelBall",34,0,random(-2,2))
		CRUL LKK 1 BRIGHT A_FaceTarget  
		TNT1 A 0 A_CustomMissile("CruelBall",34,0,random(-2,2))
		CRUL LKK 1 BRIGHT A_FaceTarget  
		TNT1 A 0 A_CustomMissile("CruelBall",34,0,random(-2,2))
		CRUL LKK 1 BRIGHT A_FaceTarget  
		TNT1 A 0 A_CustomMissile("CruelBall",34,0,random(-2,2))
		CRUL L 8
		Goto See
	Homer:
		CRUL IIII 1 A_FaceTarget
		CRUL LLL 1 A_FaceTarget  
		CRUL KK 1 BRIGHT A_FaceTarget  
		TNT1 A 0 A_CustomMissile("WickedHomer",34,0,random(-2,2))
		CRUL LLL 1 A_FaceTarget  
		CRUL KK 1 BRIGHT A_FaceTarget  
		TNT1 A 0 A_CustomMissile("WickedHomer",34,0,random(-2,2))
		CRUL LLL 1 A_FaceTarget  
		CRUL L 12
		GoTo See
	Ram:
		CRUL EEEFFFGGGHEG 1 A_FaceTarget
		CRUL G 1 A_SkullAttack(22)
		Goto LoopRam
	LoopRam:
		CRUL FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 1 A_SpawnItem("CruelGhost")
		CRUL F 1 A_Stop
		GoTo See
	Pain:
		CRUL M 3 A_Pain
		CRUL M 4
		GoTo See
	XDeath:
	Death:
		TNT1 A 0
		CRUL N 5 A_Scream
		CRUL OP 5
		TNT1 A 0 A_SpawnItemEx("BlackGibbedGenerator",0,0,20,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 0 A_SpawnItemEX("CruelTorso",0,0,48,-7,0,4)
		CRUT A 5 A_Fall
		TNT1 A 0 A_ChangeFlag(SOLID,0)
		TNT1 A 0 A_ChangeFlag(THRUACTORS,1)
		TNT1 A 0 A_TakeInventory("Tic",999999)
		Goto Fall
	Fall:
		CRUT B 1 A_CheckFloor("Land")
		TNT1 A 0 A_JumpIfInventory("Tic",525,"Land")
		TNT1 A 0 A_GiveInventory("Tic",1)
		Loop
	Land:
		TNT1 A 0
		TNT1 A 0 A_TakeInventory("Tic",999999)	
		TNT1 A 0 A_ChangeFlag(CORPSE,1)
		TNT1 A 0 A_SpawnItem("BodyCrash",0,0,0,0)
		TNT1 A 0 A_ChangeFlag(SOLID,0)
		TNT1 A 0 A_ChangeFlag(THRUACTORS,0)
		TNT1 A 0 A_ChangeFlag(MOVEWITHSECTOR,1)
		CRUT CDEF 5
		CRUT G 525
		Goto Fade
	Fade:
		CRUT G 5 A_FadeOut(0.1,1)
		Loop
	}
}