ACTOR CacoLich : DnD_BaseHybridMonster {
	Health 0x7FFFFFFF
	GibHealth -65
	Speed 12
	Radius 31
	Height 56
	PainChance 96
	Mass 500
	SeeSound "CacoLich/Sight"
	ActiveSound "CacoLich/Active"
	PainSound "CacoLich/Pain"
	DeathSound "CacoLich/Death"
	Obituary "%o was blasted by the Cacolich."
	BloodColor "Green"
	Species "Cacodemon"
	MeleeRange 160
	Tag "Cacolich"
	+ISMONSTER
	+DONTHURTSPECIES	
    +NOGRAVITY
	+FLOAT
	-FLOORCLIP
	States {
		SetInfo:
			TNT1 A 0 A_SetArg(4, DND_CACOLICH)
			TNT1 A 0 ACS_NamedExecuteWithResult("DnD Init Monster Data", DND_MWEIGHT_VERYRARE)
		Goto SpawnSetup
	
		IdleState:
			CALI A 1 A_GiveInventory("DnD_SightChecker", 1)
		Loop
		SeeState:
			CALI A 4 Fast A_Chase
		Goto See
		MissileState:
			CALI B 6 Fast A_FaceTarget
			CALI C 6 Fast A_CustomMissile("CacoLichBall", 35, 0, 0)
			CALI D 6 Fast A_FaceTarget
			CALI EF 5 Fast A_FaceTarget
			CALI GFGFGFGFGFGFGFGFGF 1 A_CustomMissile("CacoLichFlameFar", 24, 0, 0)
			CALI FE 5 Fast A_FaceTarget
			CALI E 0
		Goto See
		MeleeState:
			CALI E 8 Fast A_FaceTarget
			CALI F 6 Fast A_FaceTarget
			CALI G 1 A_CustomMissile("CacoLichFlame", 24, 0, 0)
			CALI F 1 A_CustomMissile("CacoLichFlame", 24, 0, 1)
			CALI G 1 A_CustomMissile("CacoLichFlame", 24, 0, 2)
			CALI F 1 A_CustomMissile("CacoLichFlame", 24, 0, 3)
			CALI G 1 A_CustomMissile("CacoLichFlame", 24, 0, 4)
			CALI F 1 A_CustomMissile("CacoLichFlame", 24, 0, 5)
			CALI G 1 A_CustomMissile("CacoLichFlame", 24, 0, 6)
			CALI F 1 A_CustomMissile("CacoLichFlame", 24, 0, 7)
			CALI G 1 A_CustomMissile("CacoLichFlame", 24, 0, 8)
			CALI F 1 A_CustomMissile("CacoLichFlame", 24, 0, 9)
			CALI G 1 A_CustomMissile("CacoLichFlame", 24, 0, 10)
			CALI F 1 A_CustomMissile("CacoLichFlame", 24, 0, 12)
			CALI G 1 A_CustomMissile("CacoLichFlame", 24, 0, 12)
			CALI F 1 A_CustomMissile("CacoLichFlame", 24, 0, 13)
			CALI G 1 A_CustomMissile("CacoLichFlame", 24, 0, 14)
			CALI F 1 A_CustomMissile("CacoLichFlame", 24, 0, 15)
			CALI G 1 A_CustomMissile("CacoLichFlame", 24, 0, 16)
			CALI F 1 A_CustomMissile("CacoLichFlame", 24, 0, 17)
			CALI G 1 A_CustomMissile("CacoLichFlame", 24, 0, 18)
			CALI F 1 A_CustomMissile("CacoLichFlame", 24, 0, 19)
			CALI G 1 A_CustomMissile("CacoLichFlame", 24, 0, 20)
			CALI F 1 A_CustomMissile("CacoLichFlame", 24, 0, 19)
			CALI G 1 A_CustomMissile("CacoLichFlame", 24, 0, 18)
			CALI F 1 A_CustomMissile("CacoLichFlame", 24, 0, 17)
			CALI G 1 A_CustomMissile("CacoLichFlame", 24, 0, 16)
			CALI F 1 A_CustomMissile("CacoLichFlame", 24, 0, 15)
			CALI G 1 A_CustomMissile("CacoLichFlame", 24, 0, 14)
			CALI F 1 A_CustomMissile("CacoLichFlame", 24, 0, 13)
			CALI G 1 A_CustomMissile("CacoLichFlame", 24, 0, 12)
			CALI F 1 A_CustomMissile("CacoLichFlame", 24, 0, 11)
			CALI G 1 A_CustomMissile("CacoLichFlame", 24, 0, 10)
			CALI F 1 A_CustomMissile("CacoLichFlame", 24, 0, 9)
			CALI G 1 A_CustomMissile("CacoLichFlame", 24, 0, 8)
			CALI F 1 A_CustomMissile("CacoLichFlame", 24, 0, 7)
			CALI G 1 A_CustomMissile("CacoLichFlame", 24, 0, 6)
			CALI F 1 A_CustomMissile("CacoLichFlame", 24, 0, 5)
			CALI G 1 A_CustomMissile("CacoLichFlame", 24, 0, 4)
			CALI F 1 A_CustomMissile("CacoLichFlame", 24, 0, 3)
			CALI G 1 A_CustomMissile("CacoLichFlame", 24, 0, 2)
			CALI F 1 A_CustomMissile("CacoLichFlame", 24, 0, 1)
			CALI G 1 A_CustomMissile("CacoLichFlame", 24, 0, 0)
			CALI G 0 A_SpidRefire
			CALI F 1 A_CustomMissile("CacoLichFlame", 24, 0, -1)
			CALI G 1 A_CustomMissile("CacoLichFlame", 24, 0, -2)
			CALI F 1 A_CustomMissile("CacoLichFlame", 24, 0, -3)
			CALI G 1 A_CustomMissile("CacoLichFlame", 24, 0, -4)
			CALI F 1 A_CustomMissile("CacoLichFlame", 24, 0, -5)
			CALI G 1 A_CustomMissile("CacoLichFlame", 24, 0, -6)
			CALI F 1 A_CustomMissile("CacoLichFlame", 24, 0, -7)
			CALI G 1 A_CustomMissile("CacoLichFlame", 24, 0, -8)
			CALI F 1 A_CustomMissile("CacoLichFlame", 24, 0, -9)
			CALI G 1 A_CustomMissile("CacoLichFlame", 24, 0, -10)
			CALI F 1 A_CustomMissile("CacoLichFlame", 24, 0, -12)
			CALI G 1 A_CustomMissile("CacoLichFlame", 24, 0, -12)
			CALI F 1 A_CustomMissile("CacoLichFlame", 24, 0, -13)
			CALI G 1 A_CustomMissile("CacoLichFlame", 24, 0, -14)
			CALI F 1 A_CustomMissile("CacoLichFlame", 24, 0, -15)
			CALI G 1 A_CustomMissile("CacoLichFlame", 24, 0, -16)
			CALI F 1 A_CustomMissile("CacoLichFlame", 24, 0, -17)
			CALI G 1 A_CustomMissile("CacoLichFlame", 24, 0, -18)
			CALI F 1 A_CustomMissile("CacoLichFlame", 24, 0, -19)
			CALI G 1 A_CustomMissile("CacoLichFlame", 24, 0, -20)
			CALI F 1 A_CustomMissile("CacoLichFlame", 24, 0, -19)
			CALI G 1 A_CustomMissile("CacoLichFlame", 24, 0, -18)
			CALI F 1 A_CustomMissile("CacoLichFlame", 24, 0, -17)
			CALI G 1 A_CustomMissile("CacoLichFlame", 24, 0, -16)
			CALI F 1 A_CustomMissile("CacoLichFlame", 24, 0, -15)
			CALI G 1 A_CustomMissile("CacoLichFlame", 24, 0, -14)
			CALI F 1 A_CustomMissile("CacoLichFlame", 24, 0, -13)
			CALI G 1 A_CustomMissile("CacoLichFlame", 24, 0, -12)
			CALI F 1 A_CustomMissile("CacoLichFlame", 24, 0, -11)
			CALI G 1 A_CustomMissile("CacoLichFlame", 24, 0, -10)
			CALI F 1 A_CustomMissile("CacoLichFlame", 24, 0, -9)
			CALI G 1 A_CustomMissile("CacoLichFlame", 24, 0, -8)
			CALI F 1 A_CustomMissile("CacoLichFlame", 24, 0, -7)
			CALI G 1 A_CustomMissile("CacoLichFlame", 24, 0, -6)
			CALI F 1 A_CustomMissile("CacoLichFlame", 24, 0, -5)
			CALI G 1 A_CustomMissile("CacoLichFlame", 24, 0, -4)
			CALI F 1 A_CustomMissile("CacoLichFlame", 24, 0, -3)
			CALI G 1 A_CustomMissile("CacoLichFlame", 24, 0, -2)
			CALI F 1 A_CustomMissile("CacoLichFlame", 24, 0, -1)
			CALI G 1 A_CustomMissile("CacoLichFlame", 24, 0, 0)
		Goto See
		PainState:
			CALI H 4 Fast
			CALI I 6 Fast A_Pain
		Goto See
		XDeathState:
			TNT1 A 0 A_SpawnItemEx("GenericGibber_Medium", 0, 0, 0, 0, 0, 0, 0, SXF_USEBLOODCOLOR)
		DeathState:
			CALI J 0
			CALI J 0 A_SetFloorClip
			CALI J 6 A_Scream 
			CALI KL 6
			CALI M 6 ACS_NamedExecuteAlways("DnD Check Corpse Landing")
			CALI N 6
		Wait
		CorpseLand:
			TNT1 A 0 A_SpawnItemEx("GenericGibber_Medium", 0, 0, 0, 0, 0, 0, 0, SXF_USEBLOODCOLOR)
			CALI O 6
			CALI P 6
			CALI Q 6 A_NoBlocking
			CALI R 6
			CALI S -1
		Stop
		RaiseState:
			TNT1 A 0 A_UnsetFloorClip
			CALI RQPONMLKJ 3
		Goto See
	}
}

ACTOR CacoLichBall {
    Radius 8
    Height 6
    Speed 12
    Damage (7 * random(1, 8))
	DamageType "Poison"
	Stamina 128
	PROJECTILE
	+SEEKERMISSILE
	+DONTBLAST
	RENDERSTYLE ADD
	ALPHA 0.8
	SeeSound "Imp/attack"
	DeathSound "Imp/shotx"
	Decal CacoScorch
	States {
		Spawn:
			TNT1 A 0 NoDelay ACS_NamedExecuteAlways("DnD Pierce Check")
		SpawnLoop:
			LBAL AB 4 BRIGHT A_SeekerMissile(5,15)
		Loop
		Death:
			TNT1 A 0 A_SpawnItemEx("GreenParticleSpawner", 0, 0, 0, 0, 0, 0, 0, 128)
			TNT1 AAA 0 A_SpawnItemEx("ExplosionFX4", 0, 0, 0, frandom(-1, 1), frandom(-1, 1), frandom(-1, 1))
			TNT1 AAA 0 A_CustomMissile("FireballSmoke", 0, 0, random(0,360), 2, random(0,360))
			LBAL CDEFG 6 BRIGHT
		Stop
	}
}

ACTOR CacoLichFlameFar {
	Radius 4
	Height 6
	Speed 30
	Damage (4 * random(1, 4))
	DamageType "Poison"
	Stamina 128
	PROJECTILE
	+DONTBLAST
	RENDERSTYLE ADD
	ALPHA 0.8
	SeeSound "CacoFlame/attack"
	States {
		Spawn:
			TNT1 A 0 NoDelay ACS_NamedExecuteAlways("DnD Pierce Check")
			CFIR ABCDEFGHIJKLMOP 1
		Stop
		Death:
			CFIR HIJKLMOP 1
		Stop
	}
}

ACTOR CacoLichFlame {
	Radius 4
	Height 6
	Speed 28
	Damage (random(1, 4))
	DamageType "Poison"
	Stamina 128
	PROJECTILE
	+DONTBLAST
	RENDERSTYLE ADD
	ALPHA 0.8
	SeeSound "CacoFlame/attack"
	States {
		Spawn:
			TNT1 A 0 NoDelay ACS_NamedExecuteAlways("DnD Pierce Check")
			CFIR ABCDEFGHIJKLMOP 1
		Stop
		Death:
			CFIR HIJKLMOP 1
		Stop
	}
}

ACTOR DeathWhisperer : DnD_BaseRangedMonster { 
    Health 0x7FFFFFFF
	Mass 500
    Radius 31
    Height 56
    Speed 13
    PainChance 145
	+ISMONSTER
    +NOGRAVITY
    +FLOAT
	-FLOORCLIP
    Obituary "%o's spirit was eradicated by a Death Whisperer."
	SeeSound "CacoLich/Sight"
	ActiveSound "CacoLich/Active"
	PainSound "CacoLich/Pain"
	DeathSound "CacoLich/Death"
	Species "Cacodemon"
	Tag "Death Whisperer"
	+DONTHURTSPECIES
	+DONTRIP
	+NOBLOOD
    States {
		SetInfo:
			TNT1 A 0 A_SetArg(4, DND_DEATHWHISPERER)
			TNT1 A 0 ACS_NamedExecuteWithResult("DnD Init Monster Data", DND_MWEIGHT_RARE2)
		Goto SpawnSetup

		IdleState:
			DCAC A 10 A_GiveInventory("DnD_SightChecker", 1)
		Loop
		SeeState:
			DCAC A 4 Fast A_Chase
		Goto See
		MissileState:
			DCAC B 5 Fast A_FaceTarget
			DCAC C 5 Fast A_Custommissile ("CacoLichBall",35,0,0)
			DCAC D 5 Fast A_FaceTarget
		Goto See
		PainState:
			DCAC E 5 Fast
			DCAC E 3 Fast A_Pain
		Goto See
		XDeathState:
		DeathState:
			DCAC J 0
			DCAC J 0 A_SetFloorClip
			DCAC F 6 A_Scream
			DCAC G 6 ACS_NamedExecuteAlways("DnD Check Corpse Landing")
			DCAC H 6
		Wait 
		CorpseLand:
			DCAC I 6
			DCAC J 6
			DCAC K 6 A_NoBlocking
			DCAC L -1
		Stop
		RaiseState:
			TNT1 A 0 A_UnsetFloorClip
			DCAC KJIHGF 2
		Goto See
    }
}

ACTOR EarthLich : DnD_BaseRangedMonster { 
    Health 0x7FFFFFFF
	Mass 2000
    Radius 31
    Height 56
    Speed 8
	+ISMONSTER
    +NOGRAVITY
    +FLOAT
	-FLOORCLIP
    Obituary "%o was eliminated by an Earth Lich."
	SeeSound "monster/cubsit"
	ActiveSound "monster/senact"
	DeathSound "EarthLich/Death"
	Species "Cacodemon"
	Tag "Earth Lich"
	+DONTHURTSPECIES
	+DONTRIP
	+NOBLOOD
	+NOPAIN
    States {
		SetInfo:
			TNT1 A 0 A_SetArg(4, DND_EARTHLICH)
			TNT1 A 0 ACS_NamedExecuteWithResult("DnD Init Monster Data", DND_MWEIGHT_VERYRARE)
		Goto SpawnSetup

		IdleState:
			ELIC A 10 A_GiveInventory("DnD_SightChecker", 1)
		Loop
		SeeState:
			ELIC A 4 Fast A_Chase
		Goto See
		MissileState:
			TNT1 A 0 A_Jump(160, "Spikes")
			TNT1 A 0 A_PlaySound("EarthLich/Rock")
			ELIC BBBBBBBBB 1 A_FaceTarget
			ELIC B 5 Fast A_Custommissile ("EarthLichRock",18,0,0)
		Goto See
		Spikes:
			TNT1 A 0 A_JumpIfInventory("SpikeCounter", 30, "See")
			TNT1 A 0 A_FaceTarget
			ELIC B 2 Fast A_CustomMissile ("EarthLichSpike", 18, random(-4,4), random(-6,6))
			TNT1 A 0 A_GiveInventory("SpikeCounter", 1)
			ELIC B 0 A_CPosRefire
		Loop
		XDeathState:
		DeathState:
			TNT1 A 0
			TNT1 A 0 A_SetFloorClip
			ELIC C 6 A_Scream
			ELIC D 6 ACS_NamedExecuteAlways("DnD Check Corpse Landing")
			ELIC E 6
		Wait	 
		CorpseLand:
			ELIC F 6
			ELIC G 6
			ELIC H 6 A_NoBlocking
			ELIC I -1
		Stop
		RaiseState:
			TNT1 A 0 A_UnsetFloorClip
			ELIC IHGFEDC 6
		Goto See
    }
}

Actor Spikecounter : Inventory {
	inventory.maxamount 45
}

Actor EarthLichSpike {
	PROJECTILE
	+THRUGHOST
	+DONTBLAST
	Speed 28
	Damage (random(8,12))
	DamageType "Physical"
	Stamina 1
	Radius 6
	Height 10
	Alpha 0.8
	RenderStyle Translucent
	SeeSound "Armors/NecroShard"
	DeathSound "Armors/NecroShardHit"
	States {
		Spawn:
			TNT1 A 0 NoDelay ACS_NamedExecuteAlways("DnD Pierce Check")
		SpawnLoop:
			CRYS AAAAA 1 
		Loop
		Death:
			TNT1 AAA 0 A_CustomMissile("FireballSmoke", 0, 0, random(0,360), 2, random(0,360))
			CRYE ABCDEF 3
		Stop
	}
}

Actor EarthLichExp : BaseExplosionDamage {
	DamageType "Physical"
	Stamina 1
    Obituary "%o was eliminated by an Earth Lich."
	States {
		Spawn:
			TNT1 A 0 NoDelay ACS_NamedExecuteAlways("DnD Pierce Check")
			TNT1 A 1 A_Explode(32, 72, 0)
		Stop
	}
}

Actor EarthLichRock {
	PROJECTILE
	+THRUGHOST
	+DONTBLAST
	Speed 22
	Damage (5*random(4,6))
	DamageType "Physical"
	Stamina 1
	Radius 10
	Height 14
	Alpha 0.8
	Scale 0.8
	DeathSound "EarthLich/Rockhit"
	States {
		Spawn:
			TNT1 A 0 NoDelay ACS_NamedExecuteAlways("DnD Pierce Check")
		SpawnLoop:
			HHRB A 5
		Loop
		Death:
			TNT1 A 0 A_SpawnItem("EarthLichExp")
			TNT1 AAAAAAAA 0 A_CustomMissile("FireballSmoke", 0, 0, random(0,360), 2, random(0,360))
			TNT1 AAAAAAAAAAAAA 0 A_SpawnItemEx("EarthLichRockPiece", random(-3,3), random(-3,3), random(3,8), random(-3,3), random(-3,3), random(-1,9), random(0,360))
			HHPF A 2
			HHPF BCDEF 2
		Stop
	}
}

Actor EarthLichRockPiece {
	+CLIENTSIDEONLY
	PROJECTILE
	-NOGRAVITY
	Height 4
	Radius 8
	States {
		Spawn:
			HRCK FGH 3
		Loop
		Death:
			HRKE ABCDE 2
		Stop
	}
}

ACTOR EnhancedCacodemon : DnD_BaseHybridMonster { 
	Health 0x7FFFFFFF
	GibHealth -65
	Speed 8 
	Radius 31
	Height 56
	PainChance 128
	Mass 400
	Meleedamage 6 
	REACTIONTIME 8 
	+ISMONSTER
	+NOGRAVITY
	+FLOAT
	-FLOORCLIP
	SeeSound "caco/sight"
	Painsound "Cacodemon/Pain"
	DeathSound "caco/death"
	ActiveSound "caco/active"
	HitObituary "%o was mowed down by an enhanced cacodemon." 
	Obituary "%o was made into a snack by the enhanced cacodemon." 
	Species "Cacodemon"
	Translation "9:12=190:190", "16:31=88:103", "32:39=104:109", "40:47=110:111", "112:116=173:175", "117:127=176:191", "166:166=14:14", "167:167=79:79", "168:175=80:103", "176:187=106:111", "188:189=5:5", "190:191=6:6", "192:207=168:191", "223:223=14:14", "235:235=107:107", "240:246=191:191"
	Tag "Enhanced Cacodemon"
	+DONTHURTSPECIES   
	States {
		SetInfo:
			TNT1 A 0 A_SetArg(4, DND_ENHANCEDCACO)
			TNT1 A 0 ACS_NamedExecuteWithResult("DnD Init Monster Data", DND_MWEIGHT_UNCOMMON)
		Goto SpawnSetup
	
		IdleState:
			HEAD A 10 A_GiveInventory("DnD_SightChecker", 1) 
		Loop 
		SeeState: 
			HEAD A 3 Fast A_Chase 
		Goto See 
		MissileState: 
		MeleeState:
			HEAD BC 5 Fast A_FaceTarget 
			HEAD B 0 bright A_CustomMissile("CacoDemonBall", 24, 0, 0, 1)
			HEAD B 0 bright A_CustomMissile("EnhancedCacoBall_1", 24, 0, -8, 1)
			HEAD D 5 Fast bright A_CustomMissile("EnhancedCacoBall_2", 24, 0, 8, 1)
		Goto See 
		PainState: 
			HEAD E 4 Fast 
			HEAD E 4 Fast A_Pain 
			HEAD F 5 Fast 
		Goto See 
		XDeathState:
			TNT1 A 0 A_SpawnItemEx("GenericGibber_Medium", 0, 0, 0, 0, 0, 0, 0, SXF_USEBLOODCOLOR)
		DeathState: 
			HEAD E 8 	  
			HEAD F 8 A_Scream 
			HEAD GH 8 
			TNT1 A 0 A_SpawnItemEx("GenericGibber_Low_Delayed", 0, 0, 0, 0, 0, 0, 0, SXF_USEBLOODCOLOR)
			HEAD IJK 8 A_NoBlocking 
			HEAD L -1 A_SetFloorClip
		Stop 
		RaiseState: 
			HEAD K 8 A_UnsetFloorClip
			HEAD JIHGFE 8 
		Goto See 
	}
}

Actor EnhancedCacoBall_1 : CacoDemonBall {
	States {
		Spawn:
			BAL2 AABB 2 Bright A_Weave(6, 0, 4, 0)
		Loop
	}
}

Actor EnhancedCacoBall_2 : EnhancedCacoBall_1 {
	weaveindexXY 32
}

ACTOR Inferno : DnD_BaseHybridMonster { 
	Health 0x7FFFFFFF
	GibHealth -65
	Radius 31 
	Height 56 
	Mass 400 
	Speed 10
	PainChance 128 
	HITOBITUARY "%o got eaten by an inferno."
	OBITUARY "%o got incinerated by an inferno."
	+ISMONSTER
	+NoGravity 
	+Float
	+DontFall
	+DontHurtSpecies
	-FLOORCLIP
	SEESOUND "monster/infsit" 
	PAINSOUND "monster/infpai" 
	DEATHSOUND "monster/infdth" 
	ACTIVESOUND "caco/active"
	MELEESOUND "caco/melee"
	Species "Cacodemon"
	Tag "Inferno"
	states { 
		SetInfo:
			INFR A 0 A_SetArg(4, DND_INFERNO)
			TNT1 A 0 ACS_NamedExecuteWithResult("DnD Init Monster Data", DND_MWEIGHT_UNCOMMON)
		Goto SpawnSetup

		IdleState:
			INFR A 10 Bright A_GiveInventory("DnD_SightChecker", 1) 
		Loop 
		SeeState: 
			INFR BCD 3 Fast Bright A_Chase 
		Loop
		MissileState:
			INFR HI 5 Fast Bright A_FaceTarget 
			INFR J 5 Fast Bright A_CustomMissile ("Lavaball",24,0,0,0)
		Goto See
		MeleeState: 
			INFR AFG 5 Fast Bright A_FaceTarget 
			INFR E 5 Fast Bright A_CustomMeleeAttack(8 * random(1, 8), "", "")
		Goto See 
		PainState: 
			INFR K 6 Fast Bright A_Pain 
			INFR K 6 Fast Bright
		Goto See 
		XDeathState:
			TNT1 A 0 A_SpawnItemEx("GenericGibber_Medium", 0, 0, 0, 0, 0, 0, 0, SXF_USEBLOODCOLOR)
		DeathState: 
			INFR L 6 Bright 
			INFR M 6 Bright A_Scream
			INFR N 6 Bright
			TNT1 A 0 A_SpawnItemEx("GenericGibber_Low", 0, 0, 0, 0, 0, 0, 0, SXF_USEBLOODCOLOR)
			INFR N 0 A_CustomMissile("Lavaball",32,0,45,2)
			INFR N 0 A_CustomMissile("Lavaball",32,0,135,2)
			INFR N 0 A_CustomMissile("Lavaball",32,0,225,2)
			INFR N 0 A_CustomMissile("Lavaball",32,0,315,2)
			INFR O 6 Bright
			INFR P 6 Bright A_NoBlocking 
			INFR Q 6 Bright
		Stop
	} 
}

Actor InfernoExp : BaseExplosionDamage {
	DamageType "Fire"
	Stamina 32
	Obituary "%o got incinerated by an inferno."
	States {
		Spawn:
			TNT1 A 0 NoDelay ACS_NamedExecuteAlways("DnD Pierce Check")
			TNT1 A 1 A_Explode(32, 96, 0)
		Stop
	}
}

ACTOR Lavaball {
	Radius 8
	Height 8
	Speed 15
	Damage (6 * random(1, 8))
	DamageType "Fire"
	Stamina 32
	SpawnID 250
	Scale 1.0
	PROJECTILE
	RENDERSTYLE ADD
	ALPHA 0.95
	+DONTBLAST
	SeeSound "weapons/firmfi"
	DeathSound "weapons/firex3"
	DONTHURTSHOOTER
	States {
		Spawn: 
			TNT1 A 0 NoDelay ACS_NamedExecuteAlways("DnD Pierce Check")
		SpawnLoop:
			BAL3 AB 4 Bright A_SpawnItem("RedPuff",0,0)
		loop
		Death:
			TNT1 A 0 A_SpawnItemEx("RedParticleSpawner", 0, 0, 0, 0, 0, 0, 0, 128)
			TNT1 AAAA 0 A_SpawnItemEx("ExplosionFX2", 0, 0, 0, frandom(-1, 1), frandom(-1, 1), frandom(-1, 1))
			TNT1 AAAA 0 A_CustomMissile("FireballSmoke", 0, 0, random(0,360), 2, random(0,360))
			BAL3 C 5 Bright A_SpawnItem("InfernoExp")
			BAL3 DE 5 Bright
		stop
	}
}

ACTOR Weakener : DnD_BaseRangedMonster {
	Health 0x7FFFFFFF
	GibHealth -65
	Radius 24
	Height 44
	Mass 400
	Speed 10
	PainChance 160
	+ISMONSTER
	+FLOAT
	+NOGRAVITY
	+MISSILEEVENMORE
	-FLOORCLIP
	SeeSound "caco/sight"
	Painsound "Cacodemon/Pain"
	DeathSound "caco/death"
	ActiveSound "caco/active"
	Obituary "%o was drained by a Weakener."
	bloodcolor "Green"
	Species "Cacodemon"
	Tag "Weakener"
	+DONTHURTSPECIES	
	States {
		SetInfo:
			TNT1 A 0 A_SetArg(4, DND_WEAKENER)
			TNT1 A 0 ACS_NamedExecuteWithResult("DnD Init Monster Data", DND_MWEIGHT_UNCOMMON)
		Goto SpawnSetup
	
		IdleState:
			CCMN A 10 A_GiveInventory("DnD_SightChecker", 1)
		Loop
		SeeState:
			CCMN A 3 Fast A_Chase
		Goto See
		MissileState:
			CCMN B 5 Fast A_FaceTarget
			CCMN C 5 Fast A_FaceTarget
			TNT1 A 0 A_CustomMissile("WeakenerBall", 15, 0, -8)
			TNT1 A 0 A_CustomMissile("WeakenerBall", 15, 0, 8)
			CCMN D 5 Fast A_CustomMissile("WeakenerBall", 15)
		Goto See
		PainState:
			CCMN E 3 Fast
			CCMN E 3 Fast A_Pain
			CCMN F 6 Fast
		Goto See
		XDeathState:
			TNT1 A 0 A_SpawnItemEx("GenericGibber_Medium", 0, 0, 0, 0, 0, 0, 0, SXF_USEBLOODCOLOR)
		DeathState:
			CCMN G 8
			CCMN H 8 A_Scream
			CCMN I 8
			TNT1 A 0 A_SpawnItemEx("GenericGibber_Low_Delayed", 0, 0, 0, 0, 0, 0, 0, SXF_USEBLOODCOLOR)
			CCMN J 8
			CCMN K 8 A_NoBlocking
			CCMN L -1 A_SetFloorClip
		Stop
		RaiseState:
			CCMN L 8 A_UnSetFloorClip
			CCMN KJIHG 8
		Goto See
	}
}

ACTOR WeakenerBall {
	Radius 6
	Height 8
	Speed 28
	Damage (4 * random(1, 8))
	+DONTBLAST
	DamageType "Magical"
	Stamina 8
	Projectile
	RenderStyle Add
	Alpha 0.8
	SeeSound "caco/attack"
	DeathSound "caco/shotx"
	States {
		Spawn:
			TNT1 A 0 NoDelay ACS_NamedExecuteAlways("DnD Pierce Check")
		SpawnLoop:
			CMFB AB 3 BRIGHT
		Loop
		Death:
			TNT1 A 0 A_SpawnItemEx("GreenParticleSpawner", 0, 0, 0, 0, 0, 0, 0, 128)
			TNT1 AAA 0 A_SpawnItemEx("ExplosionFX4", 0, 0, 0, frandom(-1, 1), frandom(-1, 1), frandom(-1, 1))
			TNT1 AAA 0 A_CustomMissile("FireballSmoke", 0, 0, random(0,360), 2, random(0,360))
			CMFB CDE 6 BRIGHT
		Stop
	}
}

Actor WeakenerBallHoming : WeakenerBall {
	+SEEKERMISSILE
	States {
		Spawn:
			TNT1 A 0 NoDelay ACS_NamedExecuteAlways("DnD Pierce Check")
		SpawnLoop:
			CMFB BA 3 Bright A_SeekerMissile(10, 90)
		Loop
	}
}

actor Grell : DnD_BaseRangedMonster {
	//$Category Monsters
	Tag "Grell"
	Health 0x7FFFFFFF
	GibHealth -65
	radius 24
	height 56
	mass 400
	speed 10
	Obituary "%o was plagued by a grell." 
	painchance 128
	seesound "grell/sight"
	painsound "grell/pain"
	deathsound "grell/death"
	activesound "grell/active"
	Species "Cacodemon"
	Tag "Grell"
	+ISMONSTER
	+NOGRAVITY
	+FLOAT
	+DONTHURTSPECIES
	-FLOORCLIP
	States {
		SetInfo:
			TNT1 A 0 A_SetArg(4, DND_GRELL)
		Goto SpawnSetup
	
		IdleState:
			GREL A 10 A_GiveInventory("DnD_SightChecker", 1)
		Loop
		SeeState:
			GREL AAB 3 Fast A_Chase
			GREL BCC 3 Fast A_Chase
		Goto See
		MissileState:
			GREL D 0 A_PlaySound("grell/attack")
			GREL D 4 Fast A_FaceTarget
			GREL E 4 Fast Bright A_FaceTarget    
			GREL F 4 Fast Bright A_CustomMissile("GrellBall", 32, 0, 0) 
		Goto See
		PainState:
			GREL G 3 Fast 
			GREL G 3 Fast A_Pain
		Goto See
		XDeathState:
			TNT1 A 0 A_SpawnItemEx("GenericGibber_Medium", 0, 0, 0, 0, 0, 0, 0, SXF_USEBLOODCOLOR)
		DeathState:
			GREL H 5
			GREL I 0 A_NoBlocking
			TNT1 A 0 ACS_NamedExecuteAlways("DnD Check Corpse Landing")
			GREL I 4 A_Scream
		Wait
		CorpseLand:
			GREL J 4 A_PlaySound("grell/thud", CHAN_AUTO)
			GREL K 4 A_NoBlocking
			GREL LM 4 A_SetFloorClip
			GREL N -1 
		Stop
		RaiseState:
			GREL M 5 A_UnSetFloorClip
			GREL LKJIH 5
		Goto See
	}
}

ACTOR GrellBall {
	Radius 8
	Height 16
	Speed 20
	Damage (4 * random(1, 8))
	+DONTBLAST
	+THRUGHOST
	DamageType "Poison"
	Stamina 128
	Renderstyle Add
	Alpha 0.67
	Projectile
	DeathSound "grell/projhit"
	States {
		Spawn:
			TNT1 A 0 NoDelay ACS_NamedExecuteAlways("DnD Pierce Check")
		SpawnLoop:
			FVUL AAABBB 1 Bright A_SpawnItemEx("BarbTrail",0,0,0,0,0,0,0,128,0)
		loop
		Death:
			TNT1 A 0 A_SpawnItemEx("GreenParticleSpawner", 0, 0, 0, 0, 0, 0, 0, 128)
			FVUL CDEF 4 Bright
		stop
	}
}

ACTOR ShadowPriest : DnD_BaseRangedMonster {
	Health 0x7FFFFFFF
	PainChance 170
	Speed 8
	Scale 0.90
	Radius 20
	Height 56
	Mass 150
	+ISMONSTER
	+NOBLOOD
	+NOGRAVITY
	+FLOAT
	+DONTHURTSPECIES
	-TELESTOMP
	-DONTOVERLAP
	-NOTARGETSWITCH
	Obituary "A Shadow Priest dragged %o into darkness."
	SeeSound "monster/acosit"
	AttackSound ""
	PainSound "monster/acopai"
	DeathSound "monster/acodth"
	ActiveSound "monster/acoact"
	Species "Cacodemon"
	Tag "Shadow Priest"
	States {
		SetInfo:
			TNT1 A 0 A_SetArg(4, DND_SHADOWPRIEST)
			TNT1 A 0 ACS_NamedExecuteWithResult("DnD Init Monster Data", DND_MWEIGHT_RARE1)
		Goto SpawnSetup
	
		IdleState:
			ACOL AB 10 A_GiveInventory("DnD_SightChecker", 1)
		Loop
		SeeState:
			ACOL AAABBB 4 Fast A_Chase
			ACOL B 0 A_Jump(96, "Dash")
		Goto See
		Dash:
			ACOL A 0 A_Chase
			ACOL A 1 A_Playsound("monster/blur")
			ACOL A 0 Bright A_SpawnItem("AcolFX2",0,0)
			ACOL A 1 A_Chase
			ACOL A 0 Bright A_SpawnItem("AcolFX2",0,0)
			ACOL A 1 A_Chase
			ACOL A 0 Bright A_SpawnItem("AcolFX2",0,0)
			ACOL A 1 A_Chase
			ACOL A 0 Bright A_SpawnItem("AcolFX2",0,0)
			ACOL A 1 A_Chase
			ACOL A 0 Bright A_SpawnItem("AcolFX2",0,0)
			ACOL A 1 A_Chase
			ACOL A 0 Bright A_SpawnItem("AcolFX2",0,0)
			ACOL A 1 A_Chase
			ACOL B 0 Bright A_SpawnItem("AcolFX2",0,0)
			ACOL B 1 A_Chase
			ACOL B 0 Bright A_SpawnItem("AcolFX2",0,0)
			ACOL B 1 A_Chase
			ACOL B 0 Bright A_SpawnItem("AcolFX2",0,0)
			ACOL B 1 A_Chase
			ACOL B 0 Bright A_SpawnItem("AcolFX2",0,0)
			ACOL B 1 A_Chase
			ACOL B 0 Bright A_SpawnItem("AcolFX2",0,0)
			ACOL B 1 A_Chase
			ACOL B 0 Bright A_SpawnItem("AcolFX2",0,0)
			ACOL A 1 A_Chase
			ACOL A 0 Bright A_SpawnItem("AcolFX2",0,0)
			ACOL A 1 A_Chase
			ACOL A 0 Bright A_SpawnItem("AcolFX2",0,0)
			ACOL A 1 A_Chase
			ACOL A 0 Bright A_SpawnItem("AcolFX2",0,0)
			ACOL A 1 A_Chase
			ACOL A 0 Bright A_SpawnItem("AcolFX2",0,0)
			ACOL A 1 A_Chase
			ACOL A 0 Bright A_SpawnItem("AcolFX2",0,0)
			ACOL A 1 A_Chase
			ACOL A 0 Bright A_SpawnItem("AcolFX2",0,0)
			ACOL A 1 A_Chase
			ACOL B 0 Bright A_SpawnItem("AcolFX2",0,0)
			ACOL B 1 A_Chase
			ACOL B 0 Bright A_SpawnItem("AcolFX2",0,0)
			ACOL B 1 A_Chase
			ACOL B 0 Bright A_SpawnItem("AcolFX2",0,0)
			ACOL B 1 A_Chase
			ACOL B 0 Bright A_SpawnItem("AcolFX2",0,0)
			ACOL B 1 A_Chase
			ACOL B 0 Bright A_SpawnItem("AcolFX2",0,0)
			ACOL B 1 A_Chase
			ACOL B 0 Bright A_SpawnItem("AcolFX2",0,0)
			ACOL B 0 A_Jump(96, "See")
		Goto Dash
		MissileState:
			ACOL D 8 Fast Bright A_FaceTarget
			ACOL E 5 Fast Bright A_FaceTarget
			ACOL F 3 Fast Bright A_CustomMissile("AcolyteShot",34,0,0,0)
			ACOL F 0 Bright A_FaceTarget
			ACOL F 3 Fast Bright A_CustomMissile("AcolyteShot",34,0,0,0)
			ACOL F 0 Bright A_FaceTarget
			ACOL F 3 Fast Bright A_CustomMissile("AcolyteShot",34,0,0,0)
			ACOL F 0 Bright A_FaceTarget
			ACOL F 3 Fast Bright A_CustomMissile("AcolyteShot",34,0,0,0)
			ACOL F 0 Bright A_FaceTarget
			ACOL F 3 Fast Bright A_CustomMissile("AcolyteShot",34,0,0,0)
			ACOL F 0 Bright A_FaceTarget
			ACOL F 3 Fast Bright A_CustomMissile("AcolyteShot",34,0,0,0)
			ACOL F 0 Bright A_FaceTarget
			ACOL F 3 Fast Bright A_CustomMissile("AcolyteShot",34,0,0,0)
			ACOL F 0 Bright A_FaceTarget
			ACOL F 3 Fast Bright A_CustomMissile("AcolyteShot",34,0,0,0)
			ACOL F 0 Bright A_FaceTarget
			ACOL F 3 Fast Bright A_CustomMissile("AcolyteShot",34,0,0,0)
			ACOL F 0 Bright A_FaceTarget
			ACOL F 3 Fast Bright A_CustomMissile("AcolyteShot",34,0,0,0)
		Goto See
		PainState:
			ACOL C 2 Fast
			ACOL C 2 Fast A_Pain
			ACOL C 0 A_Jump(96, "Dash")
		Goto See
		XDeathState:
		DeathState:
			ACOL G 8 Bright A_Scream
			ACOL H 5 Bright
			ACOL I 5 Bright
			ACOL J 5 Bright A_NoBlocking
			ACOL KLM 5 Bright
			ACOL N 5 A_CustomMissile("AcolFX1",54,0,0,0)
			ACOL O 5 A_SpawnItem("DissipationEffect_Orange")
			ACOL P -1
		Stop
		RaiseState:
			ACOL PONMLKJIHG 3
		Goto See
	}
}
 
ACTOR AcolyteShot {
	Radius 8
	Height 16
	Speed 10
	Damage (2 * random(1, 8))
	RENDERSTYLE ADD
	ALPHA 0.72
	Scale 0.85
	PROJECTILE
	+DONTBLAST
	+SEEKERMISSILE
	DamageType "Magical"
	Stamina 8
	SeeSound "monster/acosht"
	DeathSound "monster/acohit"
	Decal "BishopScorch"
	States {
		Spawn:
			TNT1 A 0 NoDelay ACS_NamedExecuteAlways("DnD Pierce Check")
		SpawnLoop:
			CFX1 AABB 1 Bright A_BishopMissileWeave
			CFX1 B 0 Bright A_SeekerMissile(2, 3)
		loop
		Death:
			CFX1 CDEFGH 3 Bright
		stop
	}
}

ACTOR AcolFX2 {  
	Scale 0.90
	RENDERSTYLE Translucent
	+NOINTERACTION
	+CLIENTSIDEONLY
	ALPHA 0.90
	States {
		Spawn:
			TNT1 A 3
			ACOL A 5 A_FadeOut(0.10)
		goto Spawn+1
	}
}

ACTOR AcolFX1 {
	Radius 0
	Height 2
	Speed 0
	PROJECTILE
	+DONTBLAST
	+CLIENTSIDEONLY
	RENDERSTYLE Translucent
	ALPHA 0.67
	States {
		Spawn:
			ACOL QRSTUVW 4
		Stop 
	}
}

Actor ShadowPriest2 : ShadowPriest {
	Species "Cyber"
	States {
		SetInfo:
			TNT1 A 0 A_SetArg(4, DND_SHADOWPRIEST)
			TNT1 A 0 A_SetArg(1, DND_SUMMONED)
		Goto SpawnSetup
		
		MissileState:
			ACOL D 8 Fast Bright A_FaceTarget
			ACOL E 5 Fast Bright A_FaceTarget
			ACOL F 3 Fast Bright A_CustomMissile("AcolyteShot2",34,0,0,0)
			ACOL F 0 Bright A_FaceTarget
			ACOL F 3 Fast Bright A_CustomMissile("AcolyteShot2",34,0,0,0)
			ACOL F 0 Bright A_FaceTarget
			ACOL F 3 Fast Bright A_CustomMissile("AcolyteShot2",34,0,0,0)
			ACOL F 0 Bright A_FaceTarget
			ACOL F 3 Fast Bright A_CustomMissile("AcolyteShot2",34,0,0,0)
			ACOL F 0 Bright A_FaceTarget
			ACOL F 3 Fast Bright A_CustomMissile("AcolyteShot2",34,0,0,0)
			ACOL F 0 Bright A_FaceTarget
			ACOL F 3 Fast Bright A_CustomMissile("AcolyteShot2",34,0,0,0)
			ACOL F 0 Bright A_FaceTarget
			ACOL F 3 Fast Bright A_CustomMissile("AcolyteShot2",34,0,0,0)
			ACOL F 0 Bright A_FaceTarget
			ACOL F 3 Fast Bright A_CustomMissile("AcolyteShot2",34,0,0,0)
			ACOL F 0 Bright A_FaceTarget
			ACOL F 3 Fast Bright A_CustomMissile("AcolyteShot2",34,0,0,0)
			ACOL F 0 Bright A_FaceTarget
			ACOL F 3 Fast Bright A_CustomMissile("AcolyteShot2",34,0,0,0)
		Goto See
	}
}

Actor AcolyteShot2 : AcolyteShot {
	DamageType "Magical"
	Stamina 8
}

ACTOR Guardian : DnD_BaseRangedMonster { 
	Health 0x7FFFFFFF
	Radius 24 
	Height 56
	Mass 640
	Speed 9 
	PainChance 48
	Scale 1.1
	HitObituary "%o got fried by a Guardian."
	Obituary "%o got fried by a Guardian."
	Species "CacoDemon"
	+ISMONSTER
	+NOGRAVITY 
	+FLOAT
	+DONTFALL
	+NOBLOOD
	+DONTHURTSPECIES
	+NOICEDEATH
	+DONTRIP
	+LOOKALLAROUND
	-FLOORCLIP
    SeeSound "monster/sensit"
    PainSound "monster/senpai"
    ActiveSound "monster/cubfly"
    deathsound "monster/sendth"
	Tag "Guardian"
	States { 
		SetInfo:
			TNT1 A 0 A_SetArg(4, DND_GUARDIAN)
			TNT1 A 0 ACS_NamedExecuteWithResult("DnD Init Monster Data", DND_MWEIGHT_RARE1)
		Goto SpawnSetup

		IdleState:
			GAR9 ABCDEF 3 A_GiveInventory("DnD_SightChecker", 1) 
		Loop 
		SeeState: 
			GAR9 ABCDEF 3 Fast A_Chase
		Goto See 
		MissileState: 
			GAR9 G 8 Fast Bright A_FaceTarget 
			GAR9 H 4 Fast Bright A_FaceTarget
		KeepFiring:
			GAR9 I 0 Bright A_PlaySound("weapons/magic1",0,2.0)
			GAR9 I 0 BRIGHT A_CustomMissile("GuardShot",32,4,0,1)
			GAR9 I 4 Fast BRIGHT A_CustomMissile("GuardShot",32,-4,0,1)
			GAR9 H 4 Fast Bright A_FaceTarget
			TNT1 A 0 ACS_NamedExecuteAlways("DnD On Monster Attack", 0)
			GAR9 I 0 Bright A_PlaySound("weapons/magic1",0,2.0)
			GAR9 I 0 BRIGHT A_CustomMissile("GuardShot",32,4,0,1)
			GAR9 I 4 Fast BRIGHT A_CustomMissile("GuardShot",32,-4,0,1)
			GAR9 H 4 Fast Bright A_FaceTarget
			TNT1 A 0 ACS_NamedExecuteAlways("DnD On Monster Attack", 0)
			GAR9 I 0 Bright A_PlaySound("weapons/magic1",0,2.0)
			GAR9 I 0 BRIGHT A_CustomMissile("GuardShot",32,4,0,1)
			GAR9 I 4 Fast BRIGHT A_CustomMissile("GuardShot",32,-4,0,1)
			GAR9 H 4 Fast Bright A_FaceTarget
			TNT1 A 0 A_JumpIfTargetInLOS("KeepFiring", 0, JLOSF_DEADNOJUMP, 320)
			GAR9 G 8 Bright A_FaceTarget
		Goto See 
		PainState: 
			GAR9 J 3 Fast 
			GAR9 J 3 Fast A_Pain 
		Goto See 
		XDeathState:
		DeathState:
			TNT1 A 0 A_NoBlocking
			TNT1 A 0 A_SetFloorClip
			GAR9 K 4 Bright A_Scream 
			TNT1 AAAAAAAAAAAAAAA 0 A_CustomMissile("FireballSmoke", 0, 0, random(0,360), 2, random(0,360))
			GAR9 LMNOPQ 4 Bright
		Stop 
   } 
}

ACTOR GuardShot : CacodemonBall {
	Radius 6
	Height 6
	Speed 18
	Damage (4 * random(1, 8))
	DamageType "Magical"
	Stamina 8
	ALPHA 0.85
	+FORCEXYBILLBOARD
	Seesound "none"
	deathsound "weapons/maceex"
	Obituary "%o was fried by a Guardian."
	States {
		Spawn:
			TNT1 A 0 NoDelay ACS_NamedExecuteAlways("DnD Pierce Check")
		SpawnLoop:
			GBAL AAABBB 1 Bright A_SpawnItem("GuardianShotTrail")
		loop
		Death:
			TNT1 AAA 0 A_CustomMissile("FireballSmoke", 0, 0, random(0,360), 2, random(0,360))
			GBAL CDEFGHI 3 Bright
		stop
	}
}

Actor GuardianShotTrail {
	+CLIENTSIDEONLY
	+NOINTERACTION
	+NOGRAVITY
	Renderstyle Add
	Alpha 0.5
	States {
		Spawn:
			TNT1 A 1
		SpawnLoop:
			GBAL AAABBB 1 Bright A_FadeOut(0.075)
		Loop
	}
}

Actor Wicked : DnD_BaseRangedMonster { 
	Health 0x7FFFFFFF
	GibHealth -65
	Radius 28
	Height 56
	Mass 200 
	Speed 10 
	PainChance 112 
	+ISMONSTER
	+NoGravity
	+Float
	-FLOORCLIP
	Obituary "%o got blasted by a Wicked."
	SeeSound "Wicked/See" 
	PainSound "Wicked/Pain" 
	DeathSound "Wicked/Die" 
	ActiveSound "Wicked/Act"
	Tag "Wicked"
	Species "Cacodemon"
	States { 
		SetInfo:
			TNT1 A 0 A_SetArg(4, DND_WICKED)
			TNT1 A 0 ACS_NamedExecuteWithResult("DnD Init Monster Data", DND_MWEIGHT_RARE1)
		Goto SpawnSetup

		IdleState:
			WICK ABCD 8 A_GiveInventory("DnD_SightChecker", 1) 
		Loop 
		SeeState:
			WICK AABBCCDD 4 Fast A_Chase
			WICK A 0 A_Jump(64, "See2")
		Goto See
		See2:
			WICK EE 2 Fast A_Chase("", "")
			WICK FF 2 Fast A_Chase
			WICK GG 2 Fast A_Chase("", "")
			WICK HH 2 Fast A_Chase
			WICK E 0 A_Jump(32, "See")
		Goto See2
		MissileState:
			WICK I 1 A_PlaySound("Wicked/Attack")
			WICK I 4 A_FaceTarget
			TNT1 A 0 A_FaceTarget
			WICK JJJJJ 1 BRIGHT A_SpawnItemEx("WickedFireFX_1", 0, 0, 0, 0, random(-6, 6))
			TNT1 A 0 A_CustomMissile("WickedShot",60,0,0)
			WICK KKKKKKKK 1 BRIGHT A_SpawnItemEx("WickedFireFX_2", 0, 0, 0, 0, random(-6, 6))
			WICK L 5 
		Goto See       
		PainState: 
			WICK M 3 Fast
			WICK M 3 Fast A_Pain 
			WICK M 3 Fast
		Goto See
		XDeathState:
			TNT1 A 0 A_SpawnItemEx("GenericGibber_Medium", 0, 0, 0, 0, 0, 0, 0, SXF_USEBLOODCOLOR)
		DeathState:
			TNT1 A 0 A_SpawnItemEx("GenericGibber_Low_Delayed", 0, 0, 0, 0, 0, 0, 0, SXF_USEBLOODCOLOR)
			WICK N 5 A_Scream
			WICK OP 5 
			TNT1 A 0 A_SpawnItemEx("GenericGibber_Low", 0, 0, 0, 0, 0, 0, 0, SXF_USEBLOODCOLOR)
			WICK P 0 A_SpawnItemEX("WickedTorso",0,0,48,0,0,0,0,16)
			WICT A 5 A_NoBlocking
			WICT BCDEF 5 
			WICT G -1 A_SetFloorClip 
		Stop 
		RaiseState:
			WICT G 0 A_RemoveChildren(TRUE)
			WICK G 0 A_SpawnItemEx("WickedTorsoRes",0,0,0,0,0,1,0,0)
			WICT G 5 A_UnSetFloorClip
			WICT FEDBC 5
			WICK PON 5
		Goto See
	} 
}

Actor WickedFireFX_1 {
	+NOINTERACTION
	+CLIENTSIDEONLY
	Renderstyle Translucent
	Alpha 0.0
	States {
		Spawn:
			WICK JJJJJJJJJJ 1 A_FadeIn(0.05)
			WICK JJJJJJJJJJ 1 A_FadeOut(0.05)
		Stop
	}
}

Actor WickedFireFX_2 : WickedFireFX_1 {
	States {
		Spawn:
			WICK KKKKKKKKKK 1 A_FadeIn(0.05)
			WICK KKKKKKKKKK 1 A_FadeOut(0.05)
		Stop
	}
}

Actor WickedShot {
	Radius 8
	Height 8
	Speed 10
	Damage (8 * random(3, 5))
	RenderStyle Add
	DamageType "MagicalFire"
	Stamina 40
	Alpha 0.67
	Projectile
	+ThruGhost
	+SeekerMissile
	+ForceXYBillboard
	+PIERCEARMOR
	+NODAMAGETHRUST
	SeeSound "weapons/firmfi"
	DeathSound "FireDemonMissileHit"
	Decal "DoomImpScorch"
	States {
		Spawn:
			TNT1 A 0 NoDelay ACS_NamedExecuteAlways("DnD Pierce Check")
		SpawnLoop:
			WIBL ABCDABCDABCDABCDABCDABCDABCD 1 Bright A_SpawnItemEx("WickedFX",0,0,0,random(-1,1),random(-1,1),random(-1,1),0,128,0)
			WIBL ABCD 0 Bright A_SeekerMissile(90, 90)
		Loop
		Death:
			WIBL JKLMN 3 Bright
		Stop
	}
}

Actor WickedFX {   
	Radius 2
	Height 2
	+NoBlockMap
	+NoGravity
	+DontSplash
	+ForceXYBillboard
	+CLIENTSIDEONLY
	RenderStyle Add
	Alpha 0.67
	States {
		Spawn:
			TNT1 A 3 Bright
			WIBL EFGHI 3 BRIGHT
		Stop 
	}
}

Actor WickedTorso {
	Mass 1000000
	Radius 1
	Height 1
	+IsMonster
	+Corpse
	States {
		Spawn:
			WICK Q 5 NoDelay A_PlaySound("monster/tenpn1")
			WICK R 5
		Wait
		Crash:
			WICK S 1 A_SetFloorClip
			WICK S 4 A_PlaySound("monster/tenpn2")
			WICK TUV 5
			WICK W -1
		Stop
	}
}

Actor WickedTorsoRes {
	Radius 24
	Height 24
	+NoGravity
	+NoBlockMap
	+NoClip
	+CLIENTSIDEONLY
	States {
		Spawn:
			WICK WVUTSRQ 5
		Stop     
	}
}