ACTOR Incarnate : DnD_BaseHybridMonster {
	Health 0x7FFFFFFF
	GibHealth -75
	Radius 20
	Height 56
	Mass 500
	Speed 12
	PainChance 64
	GibHealth 15
	MaxTargetRange 256
	Species "Skeleton"
	+DONTHURTSPECIES
	Obituary "%o was killed by a Death Incarnate's glare."
	HitObituary "%o was beaten to death by a Death Incarnate."
	SeeSound "monster/incsit"
	PainSound "skeleton/pain"
	DeathSound "monster/incdth"
	ActiveSound "monster/incact"
	AttackSound "monster/incatk"
	MeleeSound "monster/inchit"
	Tag "Death Incarnate"
	+ISMONSTER
	States {
		SetInfo:
			TNT1 A 0 A_SetArg(4, DND_INCARNATE)
		Goto SpawnSetup

		IdleState:
			INCA AB 10 A_GiveInventory("DnD_SightChecker", 1)
		Loop
		SeeState:
			INCA AABBCCDDEEFF 2 Fast A_Chase
		Goto See
		MeleeState:
			INCA G 0 A_Jump(128, "DoubleMelee")
			INCA G 0 A_FaceTarget
			INCA G 6 Fast A_SkelWhoosh
			INCA H 6 Fast A_FaceTarget
			INCA I 6 Fast A_CustomMeleeAttack(7 * random(1, 8), "monster/inchit", "")
		Goto See
		DoubleMelee:
			INCA R 0 A_FaceTarget
			INCA R 5 Fast A_SkelWhoosh
			INCA S 5 Fast A_FaceTarget
			INCA T 5 Fast A_CustomMeleeAttack(7 * random(1, 8), "monster/inchit", "")
			INCA G 0 A_FaceTarget
			INCA G 5 Fast A_SkelWhoosh
			INCA H 5 Fast A_FaceTarget
			INCA I 5 Fast A_CustomMeleeAttack(7 * random(1, 8), "monster/inchit", "")
		Goto See
		MissileState:
			INCA J 5 Fast A_FaceTarget
		Again:
			INCA J 5 Fast A_FaceTarget
			INCA U 10 Fast Bright A_CustomBulletAttack(32,0,5, 3 * random(1, 3), "DIpuff", 512, CBAF_NORANDOM)
			INCA K 10 Fast A_Jump(96, "Again")
		Goto See
		PainState:
			INCA L 5 Fast
			INCA L 5 Fast A_Pain
		Goto See
		DeathState:
			INCA L 0 A_Jump(64, "Pretend")
			INCA LM 7
			INCA N 7 A_Scream
			INCA O 7 A_NoBlocking
			INCA P 7
			INCA Q -1
		Stop
		Pretend:
			INCA LM 7
			INCA N 7 A_Scream
			INCA O 7 A_NoBlocking
			INCA P 7 
			INCA Q 1 A_SpawnItemEx("Incarnate_Pretender", 0, 0, 0, velx, vely, velz, 0, SXF_NOCHECKPOSITION)
		Stop
		XDeathState:
			TNT1 A 0 A_SpawnItemEx("GenericGibber_Medium", 0, 0, 0, 0, 0, 0, 0, SXF_USEBLOODCOLOR)
			INCX A 10 Bright A_Playsound("monster/incexp")
			INCX BC 5 Bright
			INCX D 5 Bright A_NoBlocking
			INCX D 0 Bright A_SpawnItemEx("HS", 0, 0, 32, 0, 0, 0, 0, SXF_SETMASTER)
			INCX EFGHIJ 5 Bright
			INCX K -1
		Stop
		RaiseState:
			INCA Q 0 A_KillChildren("Perish")
			INCA QPONML 5
		Goto See
   }
}

Actor Incarnate_Pretender : DnD_BaseHybridMonster_NoRes {
	Health 0x7FFFFFFF
	GibHealth -75
	Radius 20
	Height 56
	Mass 500
	Speed 12
	PainChance 64
	GibHealth 15
	MaxTargetRange 256
	Species "Skeleton"
	+DONTHURTSPECIES
	Obituary "%o was killed by a Death Incarnate's glare."
	HitObituary "%o was beaten to death by a Death Incarnate."
	SeeSound "monster/incsit"
	PainSound "skeleton/pain"
	DeathSound "monster/incdth"
	ActiveSound "monster/incact"
	AttackSound "monster/incatk"
	MeleeSound "monster/inchit"
	Tag "Death Incarnate"
	+ISMONSTER
	-COUNTKILL
	States {
		SetInfo:
			TNT1 A 0 A_SetArg(4, DND_INCARNATE)
		Goto SpawnSetup

		IdleState:
			TNT1 A 0 A_UnSetSolid
			TNT1 A 0 A_UnSetShootable
			TNT1 A 0 ACS_NamedExecuteWithResult("DnD Monster Trait Give", DND_REVIVED, -1, -1, -1)
			TNT1 A 0 A_Jump(192, 4)
			TNT1 A 0 A_Jump(128, 4)
			TNT1 A 0 A_Jump(64, 4)
			INCA Q 115
			INCA Q 115
			INCA Q 115
			INCA Q 115
		WaitCollision:
			INCA Q 35 A_JumpIf(ACS_NamedExecuteWithResult("DnD Collision Checker", DND_REVENANT_COLLIDER), "GetUp")
		Loop
		GetUp:
			TNT1 A 0 A_SetSolid
			TNT1 A 0 A_SetShootable
			INCA PONML 4
		SeekEnemy:
			INCA AB 10 A_GiveInventory("DnD_SightChecker", 1)
		Loop
		SeeState:
			INCA AABBCCDDEEFF 2 Fast A_Chase
		Goto See
		MeleeState:
			INCA G 0 A_Jump(128, "DoubleMelee")
			INCA G 0 A_FaceTarget
			INCA G 6 Fast A_SkelWhoosh
			INCA H 6 Fast A_FaceTarget
			INCA I 6 Fast A_CustomMeleeAttack(7 * random(1, 8), "monster/inchit", "")
		Goto See
		DoubleMelee:
			INCA R 0 A_FaceTarget
			INCA R 5 Fast A_SkelWhoosh
			INCA S 5 Fast A_FaceTarget
			INCA T 5 Fast A_CustomMeleeAttack(7 * random(1, 8), "monster/inchit", "")
			INCA G 0 A_FaceTarget
			INCA G 5 Fast A_SkelWhoosh
			INCA H 5 Fast A_FaceTarget
			INCA I 5 Fast A_CustomMeleeAttack(7 * random(1, 8), "monster/inchit", "")
		Goto See
		MissileState:
			INCA J 5 Fast A_FaceTarget
		Again:
			INCA J 5 Fast A_FaceTarget
			INCA U 10 Fast Bright A_CustomBulletAttack(32,0,5, 3 * random(1, 3), "DIpuff", 512, CBAF_NORANDOM)
			INCA K 10 Fast A_Jump(96, "Again")
		Goto See
		PainState:
			INCA L 5 Fast
			INCA L 5 Fast A_Pain
		Goto See
		DeathState:
			INCA LM 7
			INCA N 7 A_Scream
			INCA O 7 A_NoBlocking
			INCA P 7
			INCA Q -1
		Stop
		XDeathState:
			TNT1 A 0 A_SpawnItemEx("GenericGibber_Medium", 0, 0, 0, 0, 0, 0, 0, SXF_USEBLOODCOLOR)
			INCX A 10 Bright A_Playsound("monster/incexp")
			INCX BC 5 Bright
			INCX D 5 Bright A_NoBlocking
			TNT1 A 0 A_SpawnItemEx("HS",0, 0, 32, 0, 0, 0, 0, SXF_SETMASTER)
			INCX EFGHIJ 5 Bright
			INCX K -1
		Stop
   }
}

//new visible puff
ACTOR DIPuff {
	+NOBLOCKMAP
	+NOGRAVITY
	+RANDOMIZE
	+PUFFONACTORS
	+PUFFGETSOWNER
	RENDERSTYLE Add
	DamageType "Magical"
	Stamina 8
	States {
		Spawn:
			TNT1 A 0 NoDelay ACS_NamedExecuteAlways("DnD Pierce Check")
			INPF ABCDE 3 Bright
		Stop
	}
}

ACTOR BeamRevenant : DnD_BaseHybridMonster {
	HitObituary "%o was punched by a Beam Revenant."
	Obituary "%o was caught in a Beam Revenant's crosshair."
	Health 0x7FFFFFFF
	GibHealth -75
	Radius 20
	Height 56
	Mass 500
	Speed 10
	PainChance 100
	+ISMONSTER
	MeleeThreshold 196
	+MISSILEMORE 
	+FLOORCLIP
	+DONTHURTSPECIES
	SeeSound "skeleton/sight"
	PainSound "Revenant/Pain"
	DeathSound "skeleton/death"
	ActiveSound "skeleton/active"
	MeleeSound "skeleton/melee"
	Species "Skeleton"
	Tag "Revenant"
	States {
		SetInfo:
			TNT1 A 0 A_SetArg(4, DND_BEAMREVENANT)
			TNT1 A 0 ACS_NamedExecuteWithResult("DnD Init Monster Data", DND_MWEIGHT_UNCOMMON)
		Goto SpawnSetup
	
		IdleState:
			RASK AB 10 A_GiveInventory("DnD_SightChecker", 1)
		Loop
		SeeState:
			RASK AAABBBCCCDDDEEEFFF 2 Fast A_Chase
		Goto See
		MeleeState:
			RASK G 1 A_FaceTarget
			RASK G 6 Fast A_SkelWhoosh
			RASK H 6 Fast A_FaceTarget
			RASK I 6 Fast A_CustomMeleeAttack(6 * random(1, 10), "skeleton/melee")
		Goto See
		MissileState:
			RASK J 1 Bright A_FaceTarget
			RASK J 9 Fast Bright A_FaceTarget
			RASK K 10 Fast A_CustomMissile("Revrailshot", 60, 0, random(-6,6),0)
			RASK K 10 Fast A_FaceTarget
		Goto See
		PainState:
			TNT1 A 0 A_SpawnDebris("MetalScrap")
			RASK L 5 Fast
			RASK L 5 Fast A_Pain
		Goto See
		XDeathState:
			TNT1 A 0 A_SpawnItemEx("GenericGibber_Medium", 0, 0, 0, 0, 0, 0, 0, SXF_USEBLOODCOLOR)
		DeathState:
			RASK LM 7
			RASK N 7 A_Scream
			RASK O 7 A_NoBlocking
			RASK P 7
			RASK Q -1
		Stop
		RaiseState:
			RASK Q 5
			RASK PONML 5
		Goto See
	}
}

ACTOR Revrailshot : FastProjectile {
	radius 1
	height 1
	speed 100
	damage (random(18,30))
	DamageType "Energy"
	Stamina 16
	renderstyle Add
	decal RailScorchLower
	seesound "weapons/newrailfire"
	deathsound ""
	obituary "%o was shafted by a Beam Revenant."
	PROJECTILE
	+RANDOMIZE
	+BLOODSPLATTER
	+FOILINVUL
	+DONTREFLECT
	+DONTBLAST
	+THRUGHOST
	states {
		Spawn:
			TNT1 A 0 NoDelay ACS_NamedExecuteAlways("DnD Pierce Check")
		SpawnLoop:
			TNT1 A 1 bright A_SpawnItemEx("railtrail", 0, 0, 0,0,0,0,0,128)
		loop
		Death:
			TNT1 A 2 bright A_SpawnItemEx("railpow", 0, 0, 0,0,0,0,0,128)
		stop
	}
}

ACTOR Railtrail {
	scale 0.5
	+CLIENTSIDEONLY
	+NOINTERACTION
	States {
		Spawn:
			APLS ABABAB 3 BRIGHT
		Stop
	}
}

ACTOR Railpow {
	Scale 0.5
	+NOINTERACTION
	+CLIENTSIDEONLY
	States {
		Spawn:
			APBX ABCDE 5 bright
		Stop
	}
}

ACTOR Cadaver : DnD_BaseHybridMonster {
	Painchance 70
	Health 0x7FFFFFFF
	GibHealth -75
	+DONTHURTSPECIES
	+MISSILEMORE
	+MISSILEEVENMORE
	SeeSound "heavynant/sight"
	PainSound "heavynant/pain"
	DeathSound "heavynant/die"
	ActiveSound "heavynant/active"
	MeleeSound "skeleton/melee"
	HitObituary "%o's face got caved in by a Cadaver."
	Obituary "%o was blown to shit by a Cadaver."
	BloodColor "Green"
	Tag "Cadaver"
	Translation "1:2=0:0", "4:4=89:89", "13:15=5:7", "16:47=112:127", "16:20=106:110", "48:76=103:111", "48:48=90:90", "77:79=5:5", "80:108=90:111", "109:111=5:5", "131:167=5:8", "128:141=101:111", "144:149=107:111", "152:159=101:111", "160:167=118:123", "169:191=112:127", "168:170=89:97", "192:207=88:111", "209:223=117:122", "208:210=89:93", "224:224=89:89", "225:235=113:127", "236:239=5:5", "248:249=117:117"
	Radius 20
	Height 56
	Mass 500
	Speed 10
	MeleeThreshold 196
	Species "Skeleton"
	+ISMONSTER
	States {
		SetInfo:
			TNT1 A 0 A_SetArg(4, DND_CADAVER)
			TNT1 A 0 ACS_NamedExecuteWithResult("DnD Init Monster Data", DND_MWEIGHT_RARE2)
		Goto SpawnSetup

		IdleState:
			RASK AB 10 A_GiveInventory("DnD_SightChecker", 1)
		Loop
		SeeState:
			RASK AABBCCDDEEFF 2 Fast A_Chase
		Goto See
		MeleeState:
			TNT1 A 0 A_FaceTarget
			RASK G 7 Fast A_SkelWhoosh
			RASK H 6 Fast A_FaceTarget
			RASK I 5 Fast A_CustomMeleeAttack(6 * random(1, 10), "skeleton/melee")
		Goto See
		MissileState:
			RASK J 12 Fast Bright A_FaceTarget
			RASK K 4 Fast A_CustomMissile("CadaverRocket",52,12,0)
			RASK K 10 Fast
		Goto See
		PainState:
			TNT1 A 0 A_SpawnDebris("MetalScrap")
			TNT1 A 0 A_Jump(150,"MissilePain")
			RASK L 10 Fast A_Pain
		Goto See
		MissilePain:
			RASK L 10 Fast A_Pain
		Goto Missile
		XDeathState:
			TNT1 A 0 A_SpawnItemEx("GenericGibber_Medium", 0, 0, 0, 0, 0, 0, 0, SXF_USEBLOODCOLOR)
		DeathState:
			RASK LM 7
			RASK N 7 A_Scream
			RASK O 7 A_NoBlocking
			TNT1 L 0 A_CustomMissile("TorturedSoulPoison", 32, 0, 0) 
			TNT1 L 0 A_CustomMissile("TorturedSoulPoison", 32, 0, 45) 
			TNT1 L 0 A_CustomMissile("TorturedSoulPoison", 32, 0, 90) 
			TNT1 L 0 A_CustomMissile("TorturedSoulPoison", 32, 0, 135) 
			TNT1 L 0 A_CustomMissile("TorturedSoulPoison", 32, 0, 180) 
			TNT1 L 0 A_CustomMissile("TorturedSoulPoison", 32, 0, 225) 
			TNT1 L 0 A_CustomMissile("TorturedSoulPoison", 32, 0, 270) 
			TNT1 L 0 A_CustomMissile("TorturedSoulPoison", 32, 0, 315) 
			RASK P 7
			RASK Q -1
		Stop
		RaiseState:
			RASK PONML 5
		Goto See
	}
}

Actor CadaverExp : BaseExplosionDamage {
	DamageType "Explosive"
	Stamina 4
	Obituary "%o was blown to shit by a Cadaver."
	States {
		Spawn:
			TNT1 A 0 NoDelay ACS_NamedExecuteAlways("DnD Pierce Check")
			TNT1 A 1 A_Explode(30, 128, 0)
		Stop
	}
}

ACTOR CadaverRocket {
	Speed 20
	Damage (8 * random(1, 8))
	DamageType "Explosive"
	Stamina 4
	PROJECTILE
	Radius 8
	Height 11
	+SEEKERMISSILE
	+SCREENSEEKER
	+Rockettrail
	+THRUGHOST
	+FORCEXYBILLBOARD
	+EXPLODEONWATER
	+DONTBLAST
	+FORCERADIUSDMG
	DeathSound "weapons/heavyrlexp"
	SeeSound "weapons/heavyrlfire"
	States {
		Spawn:
			TNT1 A 0 NoDelay ACS_NamedExecuteAlways("DnD Pierce Check")
			TNT1 A 0 A_Jump(128, "Homing")
		Regular:
			TNT1 A 0 Bright A_CustomMissile("MissileTrail",Random(0,2),Random(-2,2))
			HMIS A 2 Bright A_CustomMissile("ProjectileTrailParticleOrange",Random(0,2),Random(-2,2))
		Loop	
		Homing:
			TNT1 A 0 Bright A_SeekerMissile(6,14)
			TNT1 A 0 Bright A_CustomMissile("MissileTrail",Random(0,2),Random(-2,2))
			HMIS A 2 Bright A_CustomMissile("ProjectileTrailParticleOrange",Random(0,2),Random(-2,2))
			TNT1 A 0 Bright A_CustomMissile("MissileTrail",Random(0,2),Random(-2,2))
			HMIS A 2 Bright A_CustomMissile("ProjectileTrailParticleOrange",Random(0,2),Random(-2,2))
			TNT1 A 0 Bright A_SeekerMissile(6,14)
			TNT1 A 0 Bright A_CustomMissile("MissileTrail",Random(0,2),Random(-2,2))
			HMIS A 2 Bright A_CustomMissile("ProjectileTrailParticleOrange",Random(0,2),Random(-2,2))
			TNT1 A 0 Bright A_CustomMissile("MissileTrail",Random(0,2),Random(-2,2))
			HMIS A 2 Bright A_CustomMissile("ProjectileTrailParticleOrange",Random(0,2),Random(-2,2))		
			TNT1 A 0 A_PlaySound("Weapons/HeatSeek", 7)
		Loop
		Death:
			TNT1 A 0 A_StopSound(7)
			TNT1 A 0 A_SetTranslucent (0.75,1)
			MACX A 2 Bright A_SpawnItem("CadaverExp")
			TNT1 A 0 A_SpawnItemEx("OrangeParticleSpawner", 0, 0, 0, 0, 0, 0, 0, 128)
			TNT1 AAA 0 A_SpawnItemEx("ExplosionFX2", 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))
			TNT1 AAAAA 0 A_CustomMissile("RocketSmoke", 0, 0, random(0, 360), 2, random(0, 180))
			TNT1 AAAAAAAA 0 A_CustomMissile("RocketSmoke", 0, 0, random(0, 360), 2, random(0, 360))	
			TNT1 AAAAAAAAA 0 A_CustomMissile ("ExplosionParticleVeryFast", 0, 0, random (0, 360), 2, random (0, 360))
			MACX BCDEFGHIJ 2 Bright
		stop	
	}
}

ACTOR MissileTrail {
	Speed 0.5
	Scale 0.4
	+DONTSPLASH
	+CLIENTSIDEONLY
	PROJECTILE
	RenderStyle Add
	Alpha 0.45
	States {
		Spawn:
			TNT1 A 2
			PDBA ABCDEFGHIJKL 1 A_FadeOut(0.02)
		Stop
	}
}

ACTOR ProjectileTrailParticleOrange {
	+THRUACTORS
	+NOTELEPORT
	+DONTSPLASH
	+HEXENBOUNCE
	+CLIENTSIDEONLY
	+MISSILE
	+NOBLOCKMAP
	+FORCEXYBILLBOARD
	RENDERSTYLE ADD
	Gravity 0.2
	Height 3
	Radius 2
	BounceFactor 0.6
	Scale 0.3
	+NOGRAVITY
	States {
		Spawn:
			SPK2 A 5 Bright
			SPK2 A 1 Bright A_SetTranslucent(.8,1)
			SPK2 A 1 Bright A_SetTranslucent(.7,1)	
			SPK2 A 1 Bright A_SetTranslucent(.6,1) 
			SPK2 A 1 Bright A_SetTranslucent(.5,1)
			SPK2 A 1 Bright A_SetTranslucent(.4,1)
			SPK2 A 1 Bright A_SetTranslucent(.3,1)
		Stop
	}
}

actor Widowmaker : DnD_BaseHybridMonster  {
	Health 0x7FFFFFFF
	GibHealth -75
	speed 16
	painchance 60
	scale 1.05
	Species "Skeleton"
	+DONTHURTSPECIES
	+MISSILEMORE
	+QUICKTORETALIATE
	+NODROPOFF
	Radius 20
    Height 56
	Tag "Widowmaker"
	SeeSound "widowmaker/sight"
	ActiveSound "widowmaker/act"
	PainSound "widowmaker/pain"
	DeathSound "widowmaker/death"
	Obituary "%o was sought out by a Widowmaker."
	+ISMONSTER
	states {
		SetInfo:
			TNT1 A 0 A_SetArg(4, DND_WIDOWMAKER)
			TNT1 A 0 ACS_NamedExecuteWithResult("DnD Init Monster Data", DND_MWEIGHT_RARE2)
		Goto SpawnSetup

		IdleState:
			WDMK AB 10 A_GiveInventory("DnD_SightChecker", 1)
		Loop
		SeeState:
			WDMK ABCD 4 Fast A_Chase
		Goto See
		MeleeState:
			WDMK E 0 A_FaceTarget
			WDMK E 0 A_PlaySound("player/normjump")
			WDMK E 8 Fast A_Recoil(25)
			WDMK E 0 A_PlaySound("plyrland")
		Goto Autocannon
		MissileState:
			TNT1 A 0 A_Jump(128,"SeekMissile")
		Goto Autocannon
		Autocannon:
			WDMK EEEE 2 A_FaceTarget
			TNT1 A 0 A_PlaySound("weapons/tp_fire")
			WDMK F 6 Fast Bright A_CustomMissile("widowmaker_slugshot",38,4, random(-20/10.0,20/10.0)) 
			WDMK F 2 Fast Bright A_FaceTarget
			WDMK E 2 Fast A_Jump(64, "See")
		Goto Autocannon + 2
		SeekMissile:
			WDMK G 1 A_FaceTarget
			WDMK G 5 Fast A_PlaySound("shockgrunt/cycle", CHAN_WEAPON)
			WDMK G 1 A_FaceTarget
			WDMK G 5 Fast A_PlaySound("widowmaker/beep")
			WDMK G 1 A_FaceTarget
			WDMK G 5 Fast A_PlaySound("widowmaker/beep")
			WDMK G 1 A_FaceTarget
			WDMK G 5 Fast A_PlaySound("widowmaker/beep")
			WDMK G 1 A_FaceTarget
			TNT1 A 0 A_PlaySound("widowmaker/launch")
			WDMK H 6 Fast Bright
			WDMK H 0 Bright A_CustomMissile("widowmaker_seekMissile",55,40,-25, 0 , 90) 
			WDMK H 0 Bright A_CustomMissile("widowmaker_seekMissile",55,25,0, 0 , 90) 
			WDMK H 0 Bright A_CustomMissile("widowmaker_seekMissile",55,10,25, 0 , 90) 
			WDMK H 2 Fast Bright A_FaceTarget
			WDMK G 2 Fast
		Goto See
		PainState:
			WDMK I 5 Fast
			WDMK I 5 Fast A_Pain
		Goto See
		DeathState:
			WDMK I 7 A_Scream
			WDMK I 2 Bright 
			WDMK II 1 A_SpawnItemEx ("msxgen_smoke3", 0, 0, 0, random(0,1), frandom(-1.8,1.8) , frandom(-1.8,1.8) , random(0,90), 0)
			WDMK I 2 Bright 
			WDMK II 1 A_SpawnItemEx ("msxgen_smoke3", 0, 0, 0, random(0,1), frandom(-1.8,1.8) , frandom(-1.8,1.8) , random(0,90), 0)
			WDMK I 2 Bright 
			WDMK II 1 A_SpawnItemEx ("msxgen_smoke3", 0, 0, 0, random(0,1), frandom(-1.8,1.8) , frandom(-1.8,1.8) , random(0,90), 0)	
			WDMK II 8 Bright
			TNT1 A 0 A_PlaySoundEx("weapons/grenadexpl","Weapon")
			TNT1 A 0 A_SpawnItemEx("GenericGibber_Medium", 0, 0, 0, 0, 0, 0, 0, SXF_USEBLOODCOLOR)
			TNT1 A 0 A_SpawnItem("WidowExplosion")
			TNT1 A 0 A_SpawnItemEx ("msxBarrelboomflash", 0,0,7, 0,0,0, 0, 0)
			TNT1 A 0 A_SpawnItemEx ("msxBarrelboom1", 0,0,16, 0,0,0, 0, 0)
			TNT1 A 0 A_SpawnItemEx ("msxBarrelboom3", 0,0,19, 0,0,0, 0, 0)		
			TNT1 A 0 A_SpawnItemEx ("msxBarrelboom2", 0,0,37, 0,0,0, 0, 0)		
			WDMK J 4
			TNT1 AAAAAA 0 A_SpawnItemEx ("msxgen_smoke4", 0,0,15, random(-3,3),random(-30/10.0,30/10.0), random(-30/10.0,30/10.0), random(1,360), 0)
			TNT1 AAAA 0 A_SpawnItemEx ("msxgen_smoke4", 0,0,40, random(-2,2), random(-20/10.0,20/10.0), random(-20/10.0,20/10.0), random(1,360), 0)

			TNT1 A 0  A_SpawnItemEx("msxgen_smoke4",  10,  0,0,  3.5,  0,0,0,32)
			TNT1 A 0  A_SpawnItemEx("msxgen_smoke4", -10,  0,0, -3.5,  0,0,0,32)
			TNT1 A 0  A_SpawnItemEx("msxgen_smoke4",   0, 10,0,  0,  3.5,0,0,32)
			TNT1 A 0  A_SpawnItemEx("msxgen_smoke4",   0,-10,0,  0, -3.5,0,0,32)

			TNT1 A 0  A_SpawnItemEx("msxgen_smoke4", -10,  5,0, -3.5,  1.5,0,0,32)
			TNT1 A 0  A_SpawnItemEx("msxgen_smoke4",  -5, 10,0, -1.5,  3.5,0,0,32)
			TNT1 A 0  A_SpawnItemEx("msxgen_smoke4",   5, 10,0,  1.5,  3.5,0,0,32)
			TNT1 A 0  A_SpawnItemEx("msxgen_smoke4",  10,  5,0,  3.5,  1.5,0,0,32)

			TNT1 A 0  A_SpawnItemEx("msxgen_smoke4",  10, -5,0,  3.5, -1.5,0,0,32)
			TNT1 A 0  A_SpawnItemEx("msxgen_smoke4",   5,-10,0,  1.5, -3.5,0,0,32)
			TNT1 A 0  A_SpawnItemEx("msxgen_smoke4",  -5,-10,0, -1.5, -3.5,0,0,32)
			TNT1 A 0  A_SpawnItemEx("msxgen_smoke4", -10, -5,0, -3.5, -1.5,0,0,32)	
			WDMK JKL 6
			WDMK M 6 A_NoBlocking
			WDMK N -1
		Stop
		XDeathState:
			TNT1 A 0 A_SpawnItemEx("GenericGibber_Medium", 0, 0, 0, 0, 0, 0, 0, SXF_USEBLOODCOLOR)
			WDMK I 7 A_Scream
			WDMK J 5 A_NoBlocking
			WDMK KLM 6
			WDMK N -1
		Stop
		RaiseState:
			WDMK NMLKJI 5
		Goto See
	}   
}

Actor WidowExplosion : BaseExplosionDamage {
	DamageType "Explosive"
	Stamina 4
	States {
		Spawn:
			TNT1 A 1 NoDelay A_Explode(40, 128, 0)
		Stop
	}
}

actor msxgen_smoke {
	scale 0.15
	alpha 0.5
	renderstyle translucent
	+NOTELEPORT
	+FLOORCLIP
	+NOGRAVITY
	+FORCEXYBILLBOARD
	+NOINTERACTION
	+CLIENTSIDEONLY
	states{
		spawn:
			TNT1 A 0
			TNT1 A 0 A_Jump(255, "s1","s2","s3","s4","s5","s6","s7","s8","s9","s10","s11","s12","s13","s14","s15","s16","s17","s18","s19","s20","s21","s22","s23","s24")
		s1:
			SMK5 A 3 A_ScaleVelocity(0.9)
			TNT1 A 0 A_FadeOut(0.05)
		loop
		s2:
			SMK5 B 3 A_ScaleVelocity(0.9)
			TNT1 A 0 A_FadeOut(0.05)
		loop
		s3:
			SMK5 C 3 A_ScaleVelocity(0.9)
			TNT1 A 0 A_FadeOut(0.05)
		loop
		s4:
			SMK5 D 3 A_ScaleVelocity(0.9)
			TNT1 A 0 A_FadeOut(0.05)
		loop
		s5:
			SMK5 E 3 A_ScaleVelocity(0.9)
			TNT1 A 0 A_FadeOut(0.05)
		loop
		s6:
			SMK5 F 3 A_ScaleVelocity(0.9)
			TNT1 A 0 A_FadeOut(0.05)
		loop
		s7:
			SMK5 G 3 A_ScaleVelocity(0.9)
			TNT1 A 0 A_FadeOut(0.05)
		loop
		s8:
			SMK5 H 3 A_ScaleVelocity(0.9)
			TNT1 A 0 A_FadeOut(0.05)
		loop
		s9:
			SMK5 I 3 A_ScaleVelocity(0.9)
			TNT1 A 0 A_FadeOut(0.05)
		loop
		s10:
			SMK5 J 3 A_ScaleVelocity(0.9)
			TNT1 A 0 A_FadeOut(0.05)
		loop
		s11:
			SMK5 K 3 A_ScaleVelocity(0.9)
			TNT1 A 0 A_FadeOut(0.05)
		loop
		s12:
			SMK5 L 3 A_ScaleVelocity(0.9)
			TNT1 A 0 A_FadeOut(0.05)
		loop
		s13:
			SMK5 M 3 A_ScaleVelocity(0.9)
			TNT1 A 0 A_FadeOut(0.05)
		loop
		s14:
			SMK5 N 3 A_ScaleVelocity(0.9)
			TNT1 A 0 A_FadeOut(0.05)
		loop
		s15:
			SMK5 O 3 A_ScaleVelocity(0.9)
			TNT1 A 0 A_FadeOut(0.05)
		loop
		s16:
			SMK5 P 3 A_ScaleVelocity(0.9)
			TNT1 A 0 A_FadeOut(0.05)
		loop
		s17:
			SMK5 Q 3 A_ScaleVelocity(0.9)
			TNT1 A 0 A_FadeOut(0.05)
		loop
		s18:
			SMK5 R 3 A_ScaleVelocity(0.9)
			TNT1 A 0 A_FadeOut(0.05)
		loop
		s19:
			SMK5 S 3 A_ScaleVelocity(0.9)
			TNT1 A 0 A_FadeOut(0.05)
		loop
		s20:
			SMK5 T 3 A_ScaleVelocity(0.9)
			TNT1 A 0 A_FadeOut(0.05)
		loop
		s21:
			SMK5 U 3 A_ScaleVelocity(0.9)
			TNT1 A 0 A_FadeOut(0.05)
		loop
		s22:
			SMK5 V 4 A_ScaleVelocity(0.9)
			TNT1 A 0 A_FadeOut(0.05)
		loop
		s23:
			SMK5 W 3 A_ScaleVelocity(0.9)
			TNT1 A 0 A_FadeOut(0.05)
		loop
		s24:
			SMK5 X 3 A_ScaleVelocity(0.9)
			TNT1 A 0 A_FadeOut(0.05)
		loop	
	}
}

actor msxgen_smoke2 : msxgen_smoke {
	scale 0.52
	alpha 0.6
}

actor msxgen_smoke3 : msxgen_smoke {
	scale 0.25
	alpha 0.6
}

actor msxgen_smoke4 : msxgen_smoke {
	scale 0.65
	alpha 0.6
}

actor cslugtrail_spawner {
	+NOGRAVITY
	+NOCLIP
	+CLIENTSIDEONLY
	States{
		spawn:
			TNT1 A 0
			TNT1 A 0 A_SpawnItemEx ("cslugcoretrail", 0,0,0, 0,0,0, 0)
			TNT1 A 0 A_SpawnItemEx ("cslugtrail", 0,0,0, 0,0,0, 0)
			stop
	}
}

actor cslugcoretrail {
	scale 0.12
	alpha 1.0
	renderstyle add
	+NOINTERACTION
	+NOGRAVITY
	+FORCEXYBILLBOARD
	+NOTELEPORT
	+CLIENTSIDEONLY
	states {
		spawn:
			SPRK C 2 bright
		sploop:
			SPRK C 1 bright A_FadeOut(0.25)
			loop
	}		
}

actor cslugtrail {
	scale 0.08
	alpha 1.0
	renderstyle add
	+NOINTERACTION
	+NOGRAVITY
	+FORCEXYBILLBOARD
	+NOTELEPORT
	+CLIENTSIDEONLY
	states {
		spawn:
			TNT1 A 0
			SMK1 ABCDEFGHIJKLMNOPQ 1 bright A_FadeOut(0.08)
			stop
	
	}
}

Actor SlugExp : BaseExplosionDamage {
	DamageType "Explosive"
	Stamina 4
	Obituary "%o was forced to become a widow thanks to a Widowmaker."
	States {
		Spawn:
			TNT1 A 0 NoDelay ACS_NamedExecuteAlways("DnD Pierce Check")
			TNT1 A 1 A_Explode(8, 96, 0)
		Stop
	}
}

actor widowmaker_slugshot : FastProjectile { 
    Radius 5
	Height 5  
	Mass 1
	Damage ((10 + (5*random(0,3))))
	alpha 1
	Speed 64
	RenderStyle ADD
	Scale 0.275
	DamageType "Physical"
	Stamina 1
	Decal "Scorch"
	MissileHeight 8
	PROJECTILE
	+THRUGHOST
	+NOTELEPORT
	+FORCEXYBILLBOARD
	+DONTBLAST
	States {
		Spawn:
			TNT1 A 0 NoDelay ACS_NamedExecuteAlways("DnD Pierce Check")
		SpawnLoop:
			LEYS O 1 bright A_SpawnItem("cslugtrail_spawner")
      		loop
		Death:
			TNT1 AA 0 A_PlaySound("sfx/cannonblast")
			TNT1 A 0 bright A_SpawnItem("SlugExp")
			TNT1 A 0 A_SpawnItemEx("RevMisBoom", 0, 0, 0, 0, 0, 0, 0, 0)
			TNT1 AAAAA 0 A_SpawnItemEx ("cslugboom_spark", 0, 0, 0, random(1,2), random(2,4) , random(0,6) , random(180,360))
			TNT1 AAA 0 A_SpawnItemEx ("cslugboom_spark2", 0, 0, 0, random(1,2), random(2,4) , random(0,6) , random(180,360))
			TNT1 A 3
			TNT1 AAAAAA 0 A_SpawnItemEx ("msxgen_smoke3", 0, 0, 0, random(0,1), frandom(-1.8,1.8) , frandom(-1.8,1.8) , random(0,90), 0)
			stop		
   	}
}

actor RevMisSmoke : RevenantTracerSmoke  {
	states {
	spawn:
		BAL1 CCDE 3
		Stop
	}
}

actor RevMisBoom  {
	+NOINTERACTION
	+FORCEXYBILLBOARD
	renderstyle add
	+CLIENTSIDEONLY
	states {
		spawn:
			SX02 ABCDEFGHIJKLMNOPQRSTU 1 bright
		stop
	}

}

actor msxBarrelboom1  {
	+NOINTERACTION
	+FORCEXYBILLBOARD
	+CLIENTSIDEONLY
	renderstyle add
	scale 1.1
	states {
		spawn:
			SX06 ABCDEFGHIJKLMNOPQRSTUWX 1 bright
		stop
	}
}

actor msxBarrelboom2{
	+NOINTERACTION
	+FORCEXYBILLBOARD
	+CLIENTSIDEONLY
	renderstyle add
	scale 1.6
	states {
		spawn:
			SX01 BCDEFGHIJKLMNOPQRSTUWX 1 bright
		stop
	}
}

actor msxBarrelboom3{
	+NOINTERACTION
	+FORCEXYBILLBOARD
	+CLIENTSIDEONLY
	renderstyle add
	scale 1.1
	states {
		spawn:
			SX07 BCDEFGHIJKLMNOP 1 bright
		stop
	}
}

actor msxBarrelboomflash{
	+NOINTERACTION
	+FORCEXYBILLBOARD
	+CLIENTSIDEONLY
	renderstyle add
	scale 1
	states {
		spawn:
			BFSH A 2 bright
		stop
	}
}

actor cslugshotboom {
	alpha 1
	RenderStyle ADD
	Scale 0.75
	+NOGRAVITY
	+NOBLOCKMAP
	+FLOORCLIP
	+NOTELEPORT
	+FORCEXYBILLBOARD
	+NOINTERACTION
	+CLIENTSIDEONLY
	states {
		spawn:
			SX06 ABCDEFGHIJKLMNOPQRSTUVWX 1 bright		
		stop	
	}
}

actor cslugshotboom2 {
	alpha 1
	RenderStyle ADD
	Scale 1
	+NOGRAVITY
	+NOBLOCKMAP
	+FLOORCLIP
	+NOTELEPORT
	+FORCEXYBILLBOARD
	+NOINTERACTION
	+CLIENTSIDEONLY
	states{
		spawn:
			TNT1 A 5
			SX05 BCDFG 1 bright	
		sploop:
			SX05 G 1 bright A_FadeOut(0.08)
		loop
	}
}

actor cslugshotboom3 {
	alpha 1
	RenderStyle ADD
	Scale 1
	+NOGRAVITY
	+NOBLOCKMAP
	+FLOORCLIP
	+NOTELEPORT
	+FORCEXYBILLBOARD
	+NOINTERACTION
	+CLIENTSIDEONLY
	states {
		spawn:
			TNT1 A 2
			SX07 ABCDEFGHIJKLMNOP 1 bright
		stop
	}
}

actor cslugboom_flash {
	scale 0.74
	alpha 1.0
	renderstyle add
	+NOTELEPORT
	+NOCLIP
	+FLOORCLIP
	+NOGRAVITY
	+FORCEXYBILLBOARD
	+NOINTERACTION
	+CLIENTSIDEONLY
	states {
		spawn:
			BFSH A 3 bright
		stop
	}
}

actor cslugboom_spark {
	radius 2
	height 2
	alpha 1
	scale 0.04
	gravity 0.4
	renderstyle add
	+NOTELEPORT
	+FLOORCLIP
	+FORCEXYBILLBOARD
	+CLIENTSIDEONLY
	bouncetype "doom"
	bouncefactor 0.2
	states {
		spawn:
			SPRK A 15 bright
		spawnloop:
			SPRK A 1 bright A_FadeOut(0.1)
		loop
	}
}

actor cslugboom_spark2 : cslugboom_spark {
	scale 0.06
	gravity 0.3
	states {
		spawn:
			SPRK C 20 bright
		spawnloop:
			SPRK C 1 bright A_FadeOut(0.1)
		loop
	}
}

ACTOR widowseekertrail {
	+NOBLOCKMAP
	+NOGRAVITY
	+CLIENTSIDEONLY
	RenderStyle Translucent
	Alpha 0.55
	SeeSound ""
	States {
		Spawn:
			MPUF ABCD 4
		Stop
	}
}

Actor SlugExp2 : BaseExplosionDamage {
	DamageType "Explosive"
	Stamina 4
	Obituary "%o was forced to become a widow thanks to a Widowmaker."
	States {
		Spawn:
			TNT1 A 0 NoDelay ACS_NamedExecuteAlways("DnD Pierce Check")
			TNT1 A 1 A_Explode(8, 48, 0)
		Stop
	}
}

actor widowmaker_seekMissile {
	Health 25
	Radius 10
	Height 10
	mass 200
	Speed 24
	Damage (random(12,18))
	DamageType "Explosive"
	Stamina 4
	PROJECTILE
	+THRUGHOST
	+SEEKERMISSILE
	+FORCEXYBILLBOARD
	+DONTBLAST
	Scale 0.9
	States {
		Spawn:
			TNT1 A 0 NoDelay ACS_NamedExecuteAlways("DnD Pierce Check")
		SpawnLoop:
			MICR A 1 bright A_SpawnItemEx("widowseekertrail", -10,0,5, 0,random(-80/10.0,80/10.0), random(-80/10.0,80/10.0))
			TNT1 A 0 A_SeekerMissile (4,8)
		Loop
		Death:
			TNT1 A 0 A_PlaySound("weapons/grenadexpl")
			TNT1 A 0 A_SpawnItem("SlugExp2")
			TNT1 A 0 A_SpawnItemEx("RevMisBoom", 0, 0, 0, 0, 0, 0, 0, 0)
			TNT1 AAAA 0 A_SpawnItemEx ("msxgen_smoke3", 0,0,0, random(-60/10.0,60/10.0),random(-60/10.0,60/10.0), random(-60/10.0,60/10.0), 0, 0)
			TNT1 A 1
		Stop
	}	
}

ACTOR AxeKnight : DnD_BaseHybridMonster {
	Health 0x7FFFFFFF
	+MISSILEMORE
	+DONTHURTSPECIES
	+DONTRIP
	+NOBLOOD
	Species "Skeleton"
	SeeSound "hknight/sight"
	AttackSound "hknight/attack"
	PainSound "hknight/pain"
	DeathSound "hknight/death"
	ActiveSound "hknight/active"
	Radius 20
	Height 56
	Mass 384
	Speed 12
	Obituary "%o was axed by an Undead Knight."
	HitObituary "%o witnessed that Undead Knight axes are effective up close."
	Tag "Undead Knight"
	+ISMONSTER
	States {
		SetInfo:
			TNT1 A 0 A_SetArg(4, DND_AXEKNIGHT)
			TNT1 A 0 ACS_NamedExecuteWithResult("DnD Init Monster Data", DND_MWEIGHT_UNCOMMON)
		Goto SpawnSetup

		IdleState:
			XNIG AB 10 A_GiveInventory("DnD_SightChecker", 1)
		Loop
		SeeState:
			XNIG ABCD 4 Fast A_Chase
		Goto See
		MeleeState:
		MissileState:
			TNT1 A 0 A_Jump(96, "BloodAxe")
		EtherealAxe:
			XNIG E 10 Fast A_FaceTarget
			XNIG F 8 Fast A_FaceTarget
			XNIG G 8 Fast A_CustomComboAttack("KnightAxe2", 32, 3 * random(1, 8), "hknight/melee")
			XNIG E 10 Fast A_FaceTarget
			XNIG F 8 Fast A_FaceTarget
			XNIG G 8 Fast A_CustomComboAttack("KnightAxe2", 32, 3 * random(1, 8), "hknight/melee")
		Goto See
		BloodAxe:
			XNIG H 10 Fast A_FaceTarget
			XNIG I 8 Fast A_FaceTarget
			XNIG J 8 Fast A_CustomComboAttack("RedAxe2", 32, 3 * random(1, 8), "hknight/melee")
			XNIG H 10 Fast A_FaceTarget
			XNIG I 8 Fast A_FaceTarget
			XNIG J 8 Fast A_CustomComboAttack("RedAxe2", 32, 3 * random(1, 8), "hknight/melee")
		Goto See
		PainState:
			XNIG K 3 Fast
			XNIG K 3 Fast A_Pain
		Goto See
		XDeathState:
		DeathState:
			XNIG L 6
			XNIG M 6 A_Scream
			XNIG N 6
			XNIG O 6 A_NoBlocking
			XNIG PQ 6
			XNIG R -1
		Stop
		RaiseState:
			XNIG QPONML 4
		Goto See
  }
}

Actor KnightAxeTrailA {
	+NOBLOCKMAP
	+NOGRAVITY
	+CLIENTSIDEONLY
	Height 2
	Radius 2
	Renderstyle Add
	Alpha 0.75
	States {
		Spawn:
			SPAX A 4
		Stop
	}
}

Actor KnightAxeTrailB : KnightAxeTrailA {
	States {
		Spawn:
			SPAX B 4
		Stop
	}
}

Actor KnightAxeTrailC : KnightAxeTrailA {
	States {
		Spawn:
			SPAX C 4
		Stop
	}
}

Actor KnightAxe2 : KnightAxe {
	Speed 22
	Damage (8*random(1, 3))
	DamageType "Magical"
	Stamina 8
	+DONTBLAST
	States {
		Spawn:
			TNT1 A 0 NoDelay ACS_NamedExecuteAlways("DnD Pierce Check")
		SpawnLoop:
			SPAX AAA 1 A_SpawnItemEx("KnightAxeTrailA")
			TNT1 A 0  A_PlaySound("hknight/axewhoosh")
			SPAX BBB 1 A_SpawnItemEx("KnightAxeTrailB")
			SPAX CCC 1 A_SpawnItemEx("KnightAxeTrailC")
		Loop
		Death:
			TNT1 A 0 A_SpawnItemEx("GreenParticleSpawner", 0, 0, 0, 0, 0, 0, 0, 128)
		Goto Super::Death
	}
}

Actor KnightRedAxeTrail : KnightAxeTrailA {
	States {
		Spawn:
			RAXE A 4
		Stop
	}
}

Actor RedAxe2 : RedAxe {
	Speed 28
	Damage (8*random(2, 6))
	DamageType "Physical"
	Stamina 1
	States {
		Spawn:
			TNT1 A 0 NoDelay ACS_NamedExecuteAlways("DnD Pierce Check")
		SpawnLoop:
			RAXE AAAAA 1 Bright A_SpawnItemEx("KnightRedAxeTrail")
			TNT1 A 0 A_DripBlood
			RAXE BBBBB 1 Bright A_SpawnItemEx("KnightRedAxeTrail")
			TNT1 A 0 A_DripBlood
		Loop
		Death:
			TNT1 A 0 A_SpawnItemEx("RedParticleSpawner", 0, 0, 0, 0, 0, 0, 0, 128)
		Goto Super::Death
	}
}

Actor Yeti : DnD_BaseHybridMonster {
	Health 0x7FFFFFFF
	Mass 1024
	Height 56
	Radius 20
	Speed 12
	Species "Skeleton"
	Renderstyle Translucent
	Alpha 0.5
	PainChance 32
	SeeSound "IceuySee"
	ActiveSound "IceGuySee"
	MeleeRange 128
	Obituary "%o was frozen solid by a Yeti."
	Tag "Yeti"
	+ISMONSTER
	+NOBLOOD
	+DONTRIP
	+REFLECTIVE
	+NORADIUSDMG
	+DONTHURTSPECIES
	+GHOST
	States {
		SetInfo:
			TNT1 A 0 A_SetArg(4, DND_YETI)
			TNT1 A 0 ACS_NamedExecuteWithResult("DnD Init Monster Data", DND_MWEIGHT_RARE1)
		Goto SpawnSetup
	
		IdleState:
			YETI A 0 ACS_NamedExecuteAlways("DnD Wendigo Wisp Spawn", 0, 0, 25)
			YETI A 10 A_GiveInventory("DnD_SightChecker", 1)
		Loop
	    SeeState:
			YETI A 4 Fast A_Chase
			YETI B 0 A_CustomMissile("DnD_IceGuyWisp1",70,0)
			YETI B 3 Fast A_Chase
			YETI C 0 A_CustomMissile("DnD_IceGuyWisp2",70,0)
			YETI C 4 Fast A_Chase
			YETI D 3 Fast A_Chase
		Loop
		PainState:
			YETI H 5 Fast A_Pain
		Goto SeeState
		MeleeState:
			YETI E 6 Fast A_FaceTarget
			YETI F 5 Fast
		MeleeLoop:
			TNT1 A 0 A_TakeInventory("YetiLooper", 1)
			TNT1 A 0 A_FaceTarget
			TNT1 A 0 A_GiveInventory("YetiCheck", 1)
			YETI G 2 Fast Bright A_CustomMissile("YetiIceWave", 40, random(-6, 6), random(-4, 4))
			YETI G 1 Bright A_JumpIFInventory("YetiLooper", 1, "MeleeLoop")
			YETI F 3 Fast
		Goto SeeState
		MissileState:
			YETI E 6 Fast A_FaceTarget
			TNT1 A 0 A_FaceTarget
			YETI F 5 Fast A_PlaySound("monster/culatk")
			TNT1 A 0 A_CustomMissile("YetiIce", 40, 18, 0, CMF_AIMOFFSET)
			TNT1 A 0 A_CustomMissile("YetiIce", 40, -18, 0, CMF_AIMOFFSET)
			YETI G 6 Fast Bright A_FaceTarget
			YETI F 3 Fast
		Goto SeeState
		XDeathState:
		DeathState:
			YETI H 1 A_NoBlocking
			YETI H 1
			TNT1 AAAAA 0 A_SpawnItemEx("WhiteParticleSpawner", 0, 0, 32, 0, 0, 0, 0, 128)
			TNT1 AAAAAAAAAAA 0 A_CustomMissile("ExplosionFX10", 32, random(-16, 16), random(0,360), 2, random(0,360))
			TNT1 A 0 A_SpawnItem("IceBurst")
			TNT1 A 0 A_PlaySound("IceGuyShatter")
			TNT1 A 0 A_SpawnDebris("IceChunkDebris")
			TNT1 A -1
		Stop
		RaiseState:
			TNT1 A 0 A_ChangeFlag("NOPAIN", 1)
			YETI H 1 A_SetScale(0.05, 0.05)
			YETI H 1 A_SetScale(0.1, 0.1)
			YETI H 1 A_SetScale(0.15, 0.15)
			YETI H 1 A_SetScale(0.2, 0.2)
			YETI H 1 A_SetScale(0.25, 0.25)
			YETI H 1 A_SetScale(0.3, 0.3)
			YETI H 1 A_SetScale(0.35, 0.35)
			YETI H 1 A_SetScale(0.4, 0.4)
			YETI H 1 A_SetScale(0.45, 0.45)
			YETI H 1 A_SetScale(0.5, 0.5)
			YETI H 1 A_SetScale(0.55, 0.55)
			YETI H 1 A_SetScale(0.6, 0.6)
			YETI H 1 A_SetScale(0.65, 0.65)
			YETI H 1 A_SetScale(0.7, 0.7)
			YETI H 1 A_SetScale(0.75, 0.75)
			YETI H 1 A_SetScale(0.8, 0.8)
			YETI H 1 A_SetScale(0.85, 0.85)
			YETI H 1 A_SetScale(0.9, 0.9)
			YETI H 1 A_SetScale(0.95, 0.95)
			YETI H 1 A_SetScale(1.0, 1.0)
			TNT1 A 0 A_ChangeFlag("NOPAIN", 0)
	    Goto SeeState
	}
}

Actor IceBurst {
	Radius 40
	Height 80
	-SOLID
	+CLIENTSIDEONLY
	+NOGRAVITY
	States {
		Spawn:
			TNT1 A 0
			TNT1 A 0 A_PlaySound("Yeti/Burst")
			TNT1 A 1 A_Burst("IceChunk") 
		stop
	}
}

Actor IceChunkDebris : IceChunk {
	Health 24
}

Actor YetiLooper : DnD_Boolean { }

Actor YetiCheck : DnD_Activator {
	States {
		Pickup:
			TNT1 A 0 A_JumpIfTargetInLOS("Check", 90, JLOSF_DEADNOJUMP, 144)
		Stop
		Check:
			TNT1 A 0 A_JumpIfCloser(144, "Confirm")
		Stop
		Confirm:
			TNT1 A 0 A_GiveInventory("YetiLooper", 1)
		Stop
	}
}

Actor YetiIce {
	PROJECTILE
	Damage (3 * random(1, 8))
	DamageType "Ice"
	Stamina 64
	Speed 24
	Alpha 0.8
	Scale 1.25
	Renderstyle Add
	SeeSound "Lich/Ice"
	+DONTBLAST
	+NODAMAGETHRUST
	States {
		Spawn:
			TNT1 A 0 NoDelay ACS_NamedExecuteAlways("DnD Pierce Check")
		SpawnLoop:
			FX39 ABC 3 Bright
		Loop
		XDeath:
			TNT1 A 0 A_PlaySound("Lich/IceHit")
		Goto SkipSound
		Death:
			TNT1 A 0 A_Playsound("Lich/IceHitW")
		SkipSound:
			TNT1 A 0 A_SpawnItemEx("WhiteParticleSpawner", 0, 0, 0, 0, 0, 0, 0, 128)
			TNT1 AAA 0 A_CustomMissile("ExplosionFX10", 0, 0, random(0,360), 2, random(0,360))
			TNT1 AAA 0 A_CustomMissile("FireballSmoke", 0, 0, random(0,360), 2, random(0,360))
			FX39 D 5 Bright
			TNT1 A 0 A_CustomMissile("YetiIceShard", 0, 0, 0, CMF_TRACKOWNER)
			TNT1 A 0 A_CustomMissile("YetiIceShard", 0, 0, 45, CMF_TRACKOWNER)
			TNT1 A 0 A_CustomMissile("YetiIceShard", 0, 0, 90, CMF_TRACKOWNER)
			TNT1 A 0 A_CustomMissile("YetiIceShard", 0, 0, 135, CMF_TRACKOWNER)
			TNT1 A 0 A_CustomMissile("YetiIceShard", 0, 0, 180, CMF_TRACKOWNER)
			TNT1 A 0 A_CustomMissile("YetiIceShard", 0, 0, 225, CMF_TRACKOWNER)
			TNT1 A 0 A_CustomMissile("YetiIceShard", 0, 0, 270, CMF_TRACKOWNER)
			TNT1 A 0 A_CustomMissile("YetiIceShard", 0, 0, 315, CMF_TRACKOWNER)
			FX39 EEEEFFFFGGGG 1 Bright A_FadeOut(0.025)
		Stop
	}
}

Actor YetiIceWave {
	Radius 10
	Height 8
	Speed 20
	Damage (random(2, 6))
	DamageType "Ice"
	Stamina 64
	PROJECTILE
	+RIPPER
	+BLOODLESSIMPACT
	+DONTBLAST
	+NODAMAGETHRUST
	RenderStyle Add
	Scale 0.8
	Alpha 0.8
	SeeSound "Avatar/IceJet"
	DeathSound "Avatar/IceJet"
	States {
		Spawn:
			TNT1 A 0 NoDelay ACS_NamedExecuteAlways("DnD Pierce Check")
		SpawnLoop:
			AVIC ABC 4 BRIGHT
		Loop
		Death:
			TNT1 A 0 A_SpawnItemEx("BlueParticleSpawner", 0, 0, 0, 0, 0, 0, 0, 128)
			TNT1 AAA 0 A_SpawnItemEx("ExplosionFX5", 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))
			AVIC DEFG 4 BRIGHT
		Stop
	}
}

ACTOR YetiIceShard {
	Radius 12
	Height 6
	Speed 10
	Damage (random(1, 8))
	DamageType "Ice"
	Stamina 64
	Scale 1.25
	Projectile
	Gravity 0.3
	+NODAMAGETHRUST
	-NOGRAVITY
	-ACTIVATEIMPACT
	-ACTIVATEPCROSS
	+DONTBLAST
	Alpha 0.8
	RenderStyle Add
	States {
		Spawn:
			TNT1 A 0 NoDelay ACS_NamedExecuteAlways("DnD Pierce Check")
		SpawnLoop:
			FX39 HIJ 3 Bright
		Loop
		XDeath:
			TNT1 A 0 A_PlaySound("Lich/IceHit")
		Goto SkipSound
		Death:
			TNT1 A 0 A_Playsound("Lich/IceHitW")
		SkipSound:
			FX39 DEFG 3 Bright
		Stop
	}
}

Actor SludgeGiant : DnD_BaseHybridMonster {
	obituary "%o was beaten down by a Sludge Giant."
	Health 0x7FFFFFFF
	radius 20
	height 56
	mass 1000
	speed 12
	painchance 96
	seesound ""
	painsound ""
	deathsound "SludgeGiant/Die"
	activesound ""
	meleerange 72
	Species "Skeleton"
	BloodType "SludgeBlood"
	BloodColor "79 75 49"
	Tag "Sludge Giant"
	+ISMONSTER
	+DONTHURTSPECIES
	-FLOORCLIP
	States {
		SetInfo:
			TNT1 A 0 A_SetArg(4, DND_SLUDGEGIANT)
			TNT1 A 0 ACS_NamedExecuteWithResult("DnD Init Monster Data", DND_MWEIGHT_RARE1)
		Goto SpawnSetup

		IdleState:
			SLDM H 5 A_GiveInventory("DnD_SightChecker", 1)
		Loop
		SeeState:
			TNT1 A 0 A_SetTranslucent(1.0)
			SLDM ABCD 4 Fast A_Chase
		Goto See
		MeleeState:
			TNT1 A 0 A_PlaySound("SludgeGiant/Attack")
			SLDM E 6 Fast A_FaceTarget
			SLDM F 7 Fast A_CustomMeleeAttack(random(16, 24), "SludgeGiant/Melee", "")
		Goto See
		MissileState:
			TNT1 A 0 A_PlaySound("SludgeGiant/Attack")
			SLDM E 6 Fast A_FaceTarget
			SLDM F 3 Fast A_FaceTarget
			TNT1 A 0 A_FaceTarget
			TNT1 AAAAA 0 A_CustomMissile("SludgeMissile", 40, random(-2, 2), random(-6, 6), CMF_AIMDIRECTION, random(-8, 8))
			SLDM FGG 3 Fast A_FaceTarget
		Goto See
		PainState:
			TNT1 A 0 A_SetTranslucent(1.0)
			SLDM H 3 Fast
			SLDM H 3 Fast A_Pain
		Goto See
		XDeathState:
		DeathState:
			SLDM H 1
			TNT1 A 0 A_NoBlocking
			SLDM H 1
			TNT1 AAAAAAAAAA 0 A_SpawnItemEx("NashGore_FlyingBlood_Green", random(-16, 16), random(-16, 16), random(12, 36), random(-4, 4), random(-4, 4), random(0, 6))
			TNT1 AAAAAAAAAA 0 A_SpawnItemEx("NashGore_FlyingBlood_Green", random(-16, 16), random(-16, 16), random(24, 48), random(-8, 8), random(-8, 8), random(2, 12))
			TNT1 AAAAAAAAAA 0 A_SpawnItemEx("NashGore_FlyingBlood_Green", random(-8, 8), random(-8, 8), random(32, 56), random(-6, 6), random(-6, 6), random(3, 6))
			TNT1 A 0 A_SpawnItemEx("SludgeGiantSplit", 0, 16, 0, 0, 0, 0, 0, SXF_SETMASTER)
			TNT1 A 0 A_SpawnItemEx("SludgeGiantSplit", 0, -16, 0, 0, 0, 0, 0, SXF_SETMASTER)
			SLDM H 1
			TNT1 A -1
		Stop
		
		RaiseState:
			TNT1 A 0 A_ChangeFlag("NOPAIN", 1)
			SLDM H 1 A_SetScale(0.05, 0.05)
			SLDM H 1 A_SetScale(0.1, 0.1)
			SLDM H 1 A_SetScale(0.15, 0.15)
			SLDM H 1 A_SetScale(0.2, 0.2)
			SLDM H 1 A_SetScale(0.25, 0.25)
			SLDM H 1 A_SetScale(0.3, 0.3)
			SLDM H 1 A_SetScale(0.35, 0.35)
			SLDM H 1 A_SetScale(0.4, 0.4)
			SLDM H 1 A_SetScale(0.45, 0.45)
			SLDM H 1 A_SetScale(0.5, 0.5)
			SLDM H 1 A_SetScale(0.55, 0.55)
			SLDM H 1 A_SetScale(0.6, 0.6)
			SLDM H 1 A_SetScale(0.65, 0.65)
			SLDM H 1 A_SetScale(0.7, 0.7)
			SLDM H 1 A_SetScale(0.75, 0.75)
			SLDM H 1 A_SetScale(0.8, 0.8)
			SLDM H 1 A_SetScale(0.85, 0.85)
			SLDM H 1 A_SetScale(0.9, 0.9)
			SLDM H 1 A_SetScale(0.95, 0.95)
			SLDM H 1 A_SetScale(1.0, 1.0)
			TNT1 A 0 A_ChangeFlag("NOPAIN", 0)
	    Goto See
	}
}

Actor SludgeGiantSplit : DnD_BaseHybridMonster {
	Height 38
	Radius 15
	Scale 0.75
	Health 0x7FFFFFFF
	MeleeRange 40
	MaxStepHeight 16
	Tag "Sludge Creature"
	Obituary "%o couldn't see the sludge creatures beneath %h."
	+THRUSPECIES
	mass 1000
	speed 12
	painchance 96
	seesound ""
	painsound ""
	deathsound "SludgeGiant/Die"
	activesound ""
	Species "Skeleton"
	BloodType "SludgeBlood"
	BloodColor "79 75 49"
	+ISMONSTER
	+DONTHURTSPECIES
	-FLOORCLIP
	States {
		SetInfo:
			TNT1 A 0 A_SetArg(4, DND_SLUDGEGIANT2)
		Goto SpawnSetup

		IdleState:
			SLDM H 5 A_GiveInventory("DnD_SightChecker", 1)
		Loop
		SeeState:
			TNT1 A 0 A_SetTranslucent(1.0)
			SLDM ABCD 4 Fast A_Chase
		Goto See
		MeleeState:
			TNT1 A 0 A_PlaySound("SludgeGiant/Attack")
			SLDM E 6 Fast A_FaceTarget
			SLDM F 7 Fast A_CustomMeleeAttack(random(8, 14), "SludgeGiant/Melee", "")
		Goto See
		MissileState:
			TNT1 A 0 A_PlaySound("SludgeGiant/Attack")
			SLDM E 6 Fast A_FaceTarget
			SLDM F 3 Fast A_FaceTarget
			TNT1 A 0 A_FaceTarget
			TNT1 AAAAA 0 A_CustomMissile("SludgeMissileWeak", 24, random(-2, 2), random(-6, 6), CMF_AIMDIRECTION, random(-8, 8))
			SLDM FGG 3 Fast A_FaceTarget
		Goto See
		PainState:
			TNT1 A 0 A_SetTranslucent(1.0)
			SLDM H 3 Fast
			SLDM H 3 Fast A_Pain
		Goto See
		XDeathState:
		DeathState:
			SLDM H 1
			TNT1 A 0 A_NoBlocking
			SLDM H 1
			TNT1 AAAAAAAAAA 0 A_SpawnItemEx("NashGore_FlyingBlood_Green", random(-16, 16), random(-16, 16), random(12, 36), random(-4, 4), random(-4, 4), random(0, 6))
			TNT1 AAAAAAAAAA 0 A_SpawnItemEx("NashGore_FlyingBlood_Green", random(-16, 16), random(-16, 16), random(20, 36), random(-8, 8), random(-8, 8), random(2, 12))
			TNT1 A 0 A_SpawnItemEx("SludgeGiantSplitFinal", 0, 16, 0, 0, 0, 0, 0, SXF_SETMASTER)
			TNT1 A 0 A_SpawnItemEx("SludgeGiantSplitFinal", 0, -16, 0, 0, 0, 0, 0, SXF_SETMASTER)
			SLDM H 1
			TNT1 A 5
		Stop
	}
}

Actor SludgeBlood : RealBlood {
	States {
		Spawn:
			TNT1 A 0
			TNT1 A 0 A_PlaySound("SludgeGiant/Hit")
		Goto Super::Spawn
	}
}

Actor SludgeMissile {
	PROJECTILE
	Gravity 0.4
	Speed 20
	Radius 4
	Height 8
	Scale 0.65
	Damage (8)
	ProjectileKickBack 8
	DamageType "Poison"
	Stamina 128
	+THRUGHOST
	-NOGRAVITY
	+DONTBLAST
	States {
		Spawn:
			TNT1 A 0 NoDelay ACS_NamedExecuteAlways("DnD Pierce Check")
			SLFX A -1
		Stop
		Death:
			TNT1 A 1
		Stop
	}
}

Actor SludgeMissileWeak : SludgeMissile {
	Damage (4)
	Scale 0.4
	Radius 4
	Height 7
}

Actor SludgeGiantSplitFinal : DnD_BaseHybridMonster {
	Height 24
	Radius 12
	Scale 0.5
	Health 0x7FFFFFFF
	MeleeRange 40
	MaxStepHeight 16
	Tag "Tiny Sludge Creature"
	Obituary "%o couldn't see the tiny sludge creatures beneath %h."
	+THRUSPECIES
	mass 1000
	speed 12
	painchance 96
	seesound ""
	painsound ""
	deathsound "SludgeGiant/Die"
	activesound ""
	Species "Skeleton"
	BloodType "SludgeBlood"
	BloodColor "79 75 49"
	+ISMONSTER
	+DONTHURTSPECIES
	-FLOORCLIP
	States {
		SetInfo:
			TNT1 A 0 A_SetArg(4, DND_SLUDGEGIANT3)
		Goto SpawnSetup
	
		IdleState:
			SLDM H 5 A_GiveInventory("DnD_SightChecker", 1)
		Loop
		SeeState:
			TNT1 A 0 A_SetTranslucent(1.0)
			SLDM ABCD 4 Fast A_Chase
		Goto See
		MeleeState:
			TNT1 A 0 A_PlaySound("SludgeGiant/Attack")
			SLDM E 3 Fast A_FaceTarget
			SLDM F 5 Fast A_CustomMeleeAttack(random(4, 7), "SludgeGiant/Melee", "")
		Goto See
		MissileState:
			TNT1 A 0 A_PlaySound("SludgeGiant/Attack")
			SLDM E 5 Fast A_FaceTarget
			SLDM F 2 Fast A_FaceTarget
			TNT1 A 0 A_FaceTarget
			TNT1 AAAAA 0 A_CustomMissile("SludgeMissileWeakFinal", 12, random(-2, 2), random(-6, 6), CMF_AIMDIRECTION, random(-8, 8))
			SLDM FGG 2 Fast A_FaceTarget
		Goto See
		PainState:
			TNT1 A 0 A_SetTranslucent(1.0)
			SLDM H 3 Fast
			SLDM H 3 Fast A_Pain
		Goto See
		DeathState:
		XDeathState:
			SLDM H 1
			TNT1 A 0 A_NoBlocking
			SLDM H 1
			TNT1 AAAAAAAAAA 0 A_SpawnItemEx("NashGore_FlyingBlood_Green", random(-16, 16), random(-16, 16), random(12, 36), random(-4, 4), random(-4, 4), random(0, 6))
			TNT1 AAAAAAAAAA 0 A_SpawnItemEx("NashGore_FlyingBlood_Green", random(-16, 16), random(-16, 16), random(20, 36), random(-8, 8), random(-8, 8), random(2, 12))
			SLDM H 1
			TNT1 A 5
		Stop
	}
}

Actor SludgeMissileWeakFinal : SludgeMissile {
	Damage (2)
	Scale 0.22
	Radius 2
	Height 4
}

Actor DarkServant : DnD_BaseHybridMonster {
	Health 0x7FFFFFFF
	+MISSILEMORE
	+DONTHURTSPECIES
	+NOBLOOD
	Species "Skeleton"
	SeeSound "DarkServant/See"
	PainSound "DarkServant/Pain"
	ActiveSound "DarkServant/Act"
	DeathSound "Weapons/SReaverLoop"
	Obituary "%o's soul was claimed by a Dark Servant."
	Tag "Dark Servant"
	PainChance 96
	Radius 20
	Height 56
	Speed 8
	Renderstyle Translucent
	XScale 1.1
	YScale 1.25
	Mass 750
	var int user_teleport;
	+ISMONSTER
	States {
		SetInfo:
			TNT1 A 0 A_SetArg(4, DND_DARKSERVANT)
			TNT1 A 0 ACS_NamedExecuteWithResult("DnD Init Monster Data", DND_MWEIGHT_RARE1)
		Goto SpawnSetup

		IdleState:
			DSON AB 10 A_GiveInventory("DnD_SightChecker", 1)
		Loop
		SeeState:
			DSON A 3 Fast A_Chase
			DSON A 3 Fast A_Chase("")
			DSON B 3 Fast A_Chase
			DSON B 3 Fast A_Chase("")
			DSON C 3 Fast A_Chase
			DSON C 3 Fast A_Chase("")
			DSON D 3 Fast A_Chase
			DSON D 3 Fast A_Chase("")
		Goto See
		MeleeState:
		MissileState:
			TNT1 A 0 A_Jump(128, "OtherWay")
			TNT1 A 0 A_Jump(128, "Aggressive")
			TNT1 A 0 A_GiveInventory("DarkServantSetGhost", 1)
			TNT1 A 0 A_PlaySound("DarkServant/Attack1", CHAN_WEAPON)
			DSON FF 4 Fast Bright A_FaceTarget
			TNT1 A 0 A_CustomMissile("DarkServantMissile1", 40, 0, 0)
			DSON G 7 Fast Bright A_CustomMissile("DarkServantMissile1", 40, 0, 8)
			DSON G 0 A_GiveInventory("DarkServantUnsetGhost", 1)
		Goto See
		OtherWay:
			TNT1 A 0 A_GiveInventory("DarkServantsetGhost", 1)
			TNT1 A 0 A_PlaySound("DarkServant/Attack1", CHAN_WEAPON)
			DSON TT 4 Fast Bright A_FaceTarget
			TNT1 A 0 A_CustomMissile("DarkServantMissile1", 40, 0, 0)
			DSON U 7 Fast Bright A_CustomMissile("DarkServantMissile1", 40, 0, -8)
			DSON U 0 A_GiveInventory("DarkServantUnsetGhost", 1)
		Goto See
		Aggressive:
			TNT1 A 0 A_GiveInventory("DarkServantsetGhost", 1)
			TNT1 A 0 A_PlaySound("DarkServant/Attack1", CHAN_WEAPON)
			DSON FF 4 Fast Bright A_FaceTarget
			TNT1 A 0 A_CustomMissile("DarkServantMissile1", 40, 0, 0)
			DSON G 7 Fast Bright A_CustomMissile("DarkServantMissile1", 40, 0, 8)
			TNT1 A 0 A_PlaySound("DarkServant/Attack1", CHAN_WEAPON)
			DSON TT 4 Fast Bright A_FaceTarget
			TNT1 A 0 A_CustomMissile("DarkServantMissile1", 40, 0, 0)
			DSON U 7 Fast Bright A_CustomMissile("DarkServantMissile1", 40, 0, -8)
			TNT1 A 0 A_PlaySound("DarkServant/Attack2", CHAN_WEAPON)
			DSON FFFF 4 Fast Bright A_FaceTarget
			DSON G 10 Fast Bright A_CustomMissile("DarkServantMissile2", 40)
			TNT1 A 0 A_GiveInventory("DarkServantUnsetGhost", 1)
			DSON G 0 A_JumpIfCloser(128, "Teleport")
		Goto See
		PainState:
			TNT1 A 0 A_Jump(144, "Teleport")
			DSON E 3 Fast
			DSON E 3 Fast A_Pain
		Goto See
		Teleport:
			TNT1 A 0 A_PlaySound("DarkServant/Laugh")
			TNT1 A 0 A_UnsetShootable
			DSON OPQRS 3 Fast Bright
		TeleportLoop:
			TNT1 A 0 A_JumpIf(user_teleport == 20, "TeleportFinish")
			TNT1 AAAA 0 A_SpawnItemEx("DarkServantTrail", frandom(-36.0, 36.0), frandom(-36.0, 36.0), frandom(8.0, 56.0), 0, 0, 0, 0, SXF_NOCHECKPOSITION | SXF_CLIENTSIDE)
			TNT1 AA 0 A_Wander
			TNT1 A 2 A_Wander
			TNT1 A 0 A_SetUserVar("user_teleport", user_teleport + 1)
		Loop
		TeleportFinish:
			TNT1 A 0 A_ScaleVelocity(0.5)
			TNT1 A 0 A_SetUserVar("user_teleport", 0)
			DSON SRQPO 3 Fast Bright
			TNT1 A 0 A_SetShootable
			DSON O 0 Bright A_Jump(192, "Aggressive")
		Goto See
		XDeathState:
		DeathState:
			DSON H 6
			TNT1 A 0 A_SetTranslucent(1.0, 0)
			DSON I 6 A_Scream
			TNT1 A 0 A_SpawnItem("DissipationEffect")
			DSON J 6
			DSON K 6 A_NoBlocking
			DSON LM 6
			DSON N -1
		Stop
		RaiseState:
			TNT1 A 0 A_SetTranslucent(1.0, 1)
			TNT1 A 0 A_GiveInventory("DarkServantUnSetGhost", 1)
			DSON NLMKJIH 4
		Goto See
	}
}

Actor DarkServantSetGhost : DnD_Activator {
	States {
		Pickup:
			TNT1 A 0 A_ChangeFlag("NOPAIN", 1)
			TNT1 A 0 A_ChangeFlag("GHOST", 1)
			TNT1 A 0 ACS_ExecuteAlways(961, 0, 2)
			TNT1 A 0 ACS_NamedExecuteWithResult("DnD Monster Trait Give", DND_GHOST, DND_NOPAIN, -1, -1)
		Stop
	}
}

Actor DarkServantUnSetGhost : DnD_Activator {
	States {
		Pickup:
			TNT1 A 0 A_ChangeFlag("NOPAIN", 0)
			TNT1 A 0 A_ChangeFlag("GHOST", 0)
			TNT1 A 0 ACS_ExecuteAlways(961, 0, 3)
			TNT1 A 0 ACS_NamedExecuteWithResult("DnD Monster Trait Take", DND_GHOST, DND_NOPAIN, -1, -1)
		Stop
	}
}

Actor DarkServantTrail {
	+CLIENTSIDEONLY
	+NOINTERACTION
	Renderstyle Add
	Height 1
	Radius 1
	States {
		Spawn:
			FX18 HHIIHHIIJJKK 1 Bright A_FadeOut(0.05)
			FX18 L 2 Bright
		Stop
	}
}

Actor DarkServantMissile1 {
	Speed 32
	Height 8
	Radius 4
	SeeSound "Weapons/SmallLightning"
	DeathSound "Weapons/SmallLightningH"
	Damage (5 * random(2, 4))
	DamageType "Lightning"
	Stamina 256
	PROJECTILE
	+THRUGHOST
	Renderstyle Translucent
	+PIERCEARMOR
	+FORCEPAIN
	States {
		Spawn:
			TNT1 A 0 NoDelay ACS_NamedExecuteAlways("DnD Pierce Check")
		SpawnLoop:
			FX16 AABBCC 2 Bright A_SpawnItemEx("DarkServantMissile1Trail", 0, 0, 0, -4, random(-3, 3))
		Loop
		Death:
			FX16 GHIJKL 2 Bright
		Stop
	}
}

Actor DarkServantMissile2 {
	Speed 28
	Height 10
	Radius 6
	Damage (8 * random(1, 4))
	DamageType "Lightning"
	Stamina 256
	SeeSound "Weapons/BigLightning"
	DeathSound "Weapons/BigLightningH"
	PROJECTILE
	+SEEKERMISSILE
	+PIERCEARMOR
	+FORCEPAIN
	States {
		Spawn:
			TNT1 A 0 NoDelay ACS_NamedExecuteAlways("DnD Pierce Check")
		SpawnLoop:
			TNT1 A 0 A_SeekerMissile(16, 16, SMF_LOOK)
			FX18 AA 2 Bright A_SpawnItem("DarkServantMissile2Trail")
			TNT1 A 0 A_SeekerMissile(16, 16, SMF_LOOK)
			FX18 BB 2 Bright A_SpawnItem("DarkServantMissile2Trail")
		Loop
		Death:
			FX18 CDEFG 3 Bright
		Stop
	}
}

Actor Crawler : DnD_BaseHybridMonster {
	Health 0x7FFFFFFF
	GibHealth -75
	Radius 20
	Height 56
	Speed 13
	PainChance 64
	Mass 640
	BloodColor "Green"
	Species "Skeleton"
	+MISSILEMORE
	+DONTHURTSPECIES
	SeeSound "ChaosSerpent/See"
	AttackSound "ChaosSerpent/Melee"
	PAINSOUND "Beast/pain"
	DeathSound "ChaosSerpent/Die"
	ActiveSound "ChaosSerpent/See"
	Obituary "%o was regurgitated by a Crawler."
	HitObituary "%o was regurgitated by a Crawler."
	const int ChunkFlags = SXF_TRANSFERTRANSLATION|SXF_ABSOLUTEVELOCITY;
	const int spread = 24;
	Tag "Crawler"
	+ISMONSTER
	States {
		SetInfo:
			TNT1 A 0 A_SetArg(4, DND_CRAWLER)
			TNT1 A 0 ACS_NamedExecuteWithResult("DnD Init Monster Data", DND_MWEIGHT_RARE1)
		Goto SpawnSetup
	
		IdleState:
			GDMN AA 10 A_GiveInventory("DnD_SightChecker", 1)
		Loop
		SeeState:
			GDMN ABCD 4 Fast A_Chase
		Goto See
		PainState:
			GDMN E 4 Fast
			GDMN E 4 Fast A_Pain
		Goto See
		MissileState:
			GDMN E 5 Fast A_FaceTarget
			GDMN F 6 Fast A_FaceTarget
			GDMN E 0 A_JumpIfCloser(224, "Breath")
			GDMN G 5 Fast BRIGHT A_CustomMissile("CrawlerPoisonBall",64,0,0,0)
			GDMN F 4 Fast A_FaceTarget
			GDMN E 0 A_JumpIfCloser(224, "Breath")
			GDMN G 5 Fast BRIGHT A_CustomMissile("CrawlerPoisonBall",64,0,0,0)
			GDMN F 4 Fast A_FaceTarget
			GDMN E 0 A_JumpIfCloser(224, "Breath")
			GDMN G 5 Fast BRIGHT A_CustomMissile("CrawlerPoisonBall",64,0,0,0)
		goto see
		Breath:
			GDMN G 0 A_PlaySoundEx("torturedsoul/poison", auto)
			GDMN G 0 A_FaceTarget
			TNT1 A 0 A_CustomMissile("CrawlerPoisonCloud", 65, 0, random(-spread, spread), CMF_CHECKTARGETDEAD)
			GDMN G 2 Fast bright A_CustomMissile("CrawlerPoisonCloud", 65, 0, random(-spread, spread), CMF_CHECKTARGETDEAD)
			TNT1 A 0 A_CustomMissile("CrawlerPoisonCloud", 65, 0, random(-spread, spread), CMF_CHECKTARGETDEAD)
			GDMN G 2 Fast bright A_CustomMissile("CrawlerPoisonCloud", 65, 0, random(-spread, spread), CMF_CHECKTARGETDEAD)
			TNT1 A 0 A_CustomMissile("CrawlerPoisonCloud", 65, 0, random(-spread, spread), CMF_CHECKTARGETDEAD)
			GDMN G 2 Fast bright A_CustomMissile("CrawlerPoisonCloud", 65, 0, random(-spread, spread), CMF_CHECKTARGETDEAD)
		goto See
		MeleeState:
			GDMN E 5 Fast A_FaceTarget
			GDMN F 7 Fast A_FaceTarget
			GDMN G 5 Fast A_CustomMeleeAttack(random[DemonAttack1](4,16) * 2)
		Goto See
		XDeathState:
			TNT1 A 0 A_SpawnItemEx("GenericGibber_Medium", 0, 0, 0, 0, 0, 0, 0, SXF_USEBLOODCOLOR)
		DeathState:
			GDMN H 6
			GDMN I 0 A_SpawnItemEx("CrawlerChunk1", 0,0,45, 1+(random[DemonChunks](0,255)*0.015625),
						   1+(random[DemonChunks](0,255)*0.015625), ChunkFlags, 90)
			GDMN I 0 A_SpawnItemEx("CrawlerChunk2", 0,0,45, 1+(random[DemonChunks](0,255)*0.015625),
						   1+(random[DemonChunks](0,255)*0.015625), ChunkFlags, 270)
			GDMN I 0 A_SpawnItemEx("CrawlerChunk3", 0,0,45, 1+(random[DemonChunks](0,255)*0.015625),
						   1+(random[DemonChunks](0,255)*0.015625), ChunkFlags, 270)
			GDMN I 0 A_SpawnItemEx("CrawlerChunk4", 0,0,45, 1+(random[DemonChunks](0,255)*0.015625),
						   1+(random[DemonChunks](0,255)*0.015625), ChunkFlags, 270)
			GDMN I 6 A_SpawnItemEx("CrawlerChunk5", 0,0,45, 1+(random[DemonChunks](0,255)*0.015625),
						   1+(random[DemonChunks](0,255)*0.015625), ChunkFlags, 270)
			GDMN J 1
			GDMN J 6 A_Scream
			GDMN K 6 A_NoBlocking
			GDMN L 6  A_QueueCorpse
			GDMN MNO 6
			GDMN P -1
		Stop
		RaiseState:
			GDMN PONMLKJIH 5
		Goto See
	}
}

Actor CrawlerPoisonBall {
	Speed 24
	Radius 10
	Height 16
	Damage (8)
	DamageType "Poison"
	Stamina 128
	Projectile
	+SEEKERMISSILE
	+THRUGHOST
	RenderStyle Add
	SeeSound "Beast/Attack"
	DeathSound "weapons/phoenixhit"
	Scale 1.1
	States {
		Spawn:
			TNT1 A 0 NoDelay ACS_NamedExecuteAlways("DnD Pierce Check")
		SpawnLoop:
			D2FX ABCDEF 4 Bright A_SeekerMissile(30, 30)
		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))
			D5FX GHI 4 Bright
			D5FX JK 3 Bright
			D5FX L 2 Bright
		Stop
	}
}

actor CrawlerPoisonCloud : TorturedSoulPoison { 
    Height 10
    Speed 8 
    Damage (1)
	DamageType "Poison"
	Stamina 128
}

ACTOR CrawlerChunk1 : DemonChunk {
	+CLIENTSIDEONLY
	+MOVEWITHSECTOR
	States {
		Spawn:
			GDMA A 4
			GDMA A 10
			GDMA A 20
		Wait
		Death:
			GDMA A -1
		Stop
	}
}

ACTOR CrawlerChunk2 : DemonChunk {
	+CLIENTSIDEONLY
	+MOVEWITHSECTOR
	States {
		Spawn:
			GDMB A 4
			GDMB A 10
			GDMB A 20
		Wait
		Death:
			GDMB A -1
		Stop
	}
}

ACTOR CrawlerChunk3 : DemonChunk {
	+CLIENTSIDEONLY
	+MOVEWITHSECTOR
	States {
		Spawn:
			GDMC A 4
			GDMC A 10
			GDMC A 20
		Wait
		Death:
			GDMC A -1
		Stop
	}
}

ACTOR CrawlerChunk4 : DemonChunk {
	+CLIENTSIDEONLY
	+MOVEWITHSECTOR
	States {
		Spawn:
			GDMD A 4
			GDMD A 10
			GDMD A 20
		Wait
		Death:
			GDMD A -1
		Stop
	}
}

ACTOR CrawlerChunk5 : DemonChunk {
	+CLIENTSIDEONLY
	+MOVEWITHSECTOR
	States {
		Spawn:
			GDME A 4
			GDME A 10
			GDME A 20
		Wait
		Death:
			GDME A -1
		Stop
	}
}

ACTOR Draugr : DnD_BaseHybridMonster {
	Health 0x7FFFFFFF
	GibHealth -75
	Radius 20
	Height 56
	Mass 500
	Speed 10
	PainChance 100
	+MISSILEMORE 
	+NODAMAGETHRUST
	+DONTHARMSPECIES
	+DONTHURTSPECIES
	SeeSound "Draugr/See"
	PainSound "Draugr/pain"
	DeathSound "Widowmaker/Death"
	ActiveSound "Draugr/Act"
	MeleeSound "skeleton/melee"
	HitObituary "%o was smacked in the face by a Draugr."
	Obituary "%o was caught by a Draugr's fire."
	Tag "Draugr"
	Species "Skeleton"
	Renderstyle Translucent
	+ISMONSTER
	States {
		SetInfo:
			TNT1 A 0 A_SetArg(4, DND_DRAUGR)
			TNT1 A 0 ACS_NamedExecuteWithResult("DnD Init Monster Data", DND_MWEIGHT_RARE1)
		Goto SpawnSetup
	
		IdleState:
			// in case player dies while this guy was fading
			TNT1 A 0 A_SetShootable
			TNT1 A 0 A_SetTranslucent(1.0)
		IdleLoop:
			SKE2 AB 10 A_GiveInventory("DnD_SightChecker", 1)
		Loop
		SeeState:
			TNT1 A 0 A_SetShootable
			SKE2 AABBCCDDEEFF 2 Fast A_Chase
		Goto See
		MeleeState:
			TNT1 A 0 A_Jump(128, "FadeAway")
			TNT1 A 0 A_FaceTarget
			SKE2 J 6 Fast A_SkelWhoosh
			SKE2 K 6 Fast A_FaceTarget
			SKE2 L 6 Fast A_CustomMeleeAttack(random(26, 46), "monster/inchit", "")
		Goto See
		FadeAway:
			TNT1 A 0 A_JumpIfInventory("DraugrFadeCooldown", 1, "MissileNoFade")
			SKE2 J 6 Fast A_FaceTarget
			TNT1 A 0 A_UnsetShootable
			TNT1 A 0 A_PlaySound("Draugr/Fade")
			SKE2 JJJJJJJJJJ 2 Fast A_FadeOut(0.1, 0)
			TNT1 AAAAA 0 A_CustomMissile("RocketSmoke", 0, 0, random(0, 360), 2, random(0, 180))
			TNT1 AAAAAAAA 0 A_CustomMissile("RocketSmoke", 0, 0, random(0, 360), 2, random(0, 360))
			TNT1 AAAAAA 0 A_SpawnItemEx("DraugrFader", frandom(-24.0, 24.0), frandom(-24.0, 24.0), 0)
			TNT1 A 0 A_ChangeFlag("AVOIDMELEE", 1)
			TNT1 AAAAAAAA 0 A_Wander
			TNT1 AAAAAAAA 3 A_Chase("", "", CHF_NOPLAYACTIVE)
			TNT1 AAAAAAAA 0 A_Wander
			TNT1 A 3
			TNT1 A 0 A_Stop
			TNT1 A 0 A_ChangeFlag("AVOIDMELEE", 0)
			TNT1 A 0 ACS_NamedExecuteAlways("DnD Draugr Appear FX")
			TNT1 A 8 A_FaceTarget
			SKE2 JJJJJJJJJJJJJJJJJJJJ 1 A_FadeIn(0.05)
			TNT1 A 0 A_GiveInventory("DraugrFadeCooldown", 1)
			SKE2 J 1
			TNT1 A 0 A_SetShootable
			SKE2 J 1 A_FaceTarget
			TNT1 A 0 A_JumpIfTargetInLOS("MissileRoll")
			SKE2 J 2
		Goto See
		MissileRoll:
			SKE2 J 1
			TNT1 A 0 A_Jump(96, "AngryMissile")
			SKE2 J 1
		Goto See
		MissileState:
			TNT1 A 0 A_JumpIfCloser(224, "FadeAway")
		MissileNoFade:
			SKE2 G 8 Fast A_FaceTarget
			TNT1 A 0 A_PlaySound("weapons/tp_fire")
			SKE2 H 7 Fast Bright A_CustomMissile("DraugrSeeker", 60, -16)
			SKE2 I 8 Fast A_FaceTarget
		Goto See
		AngryMissile:
			SKE2 G 6 Fast A_FaceTarget
			TNT1 A 0 A_PlaySound("weapons/tp_fire")
			SKE2 H 5 Fast Bright A_CustomMissile("DraugrSeeker", 60, -16)
			SKE2 I 6 Fast A_FaceTarget
			SKE2 G 8 Fast A_FaceTarget
			TNT1 A 0 A_PlaySound("weapons/tp_fire")
			SKE2 H 7 Fast Bright A_CustomMissile("DraugrSeeker", 60, -16)
			SKE2 I 8 Fast A_FaceTarget
		Goto See
		PainState:
			SKE2 M 4 Fast A_Pain
			SKE2 M 4 Fast A_Jump(96, "FadeAway")
		Goto See
		XDeathState:
			TNT1 A 0 A_SpawnItemEx("GenericGibber_Medium", 0, 0, 0, 0, 0, 0, 0, SXF_USEBLOODCOLOR)
		DeathState:
			SKE2 NO 7
			SKE2 P 7 A_Scream
			SKE2 Q 7 A_NoBlocking
			SKE2 R 7
			SKE2 S -1
		Stop
		RaiseState:
			SKE2 RQPON 5
		Goto See
	}
}

Actor DraugrFadeCooldown : PowerDamage {
	damagefactor "normal", 1.0
	powerup.duration -3
}

Actor DraugrFader {
	Radius 20
	Height 56
	Renderstyle Translucent
	+CLIENTSIDEONLY
	var int user_angle;
	var int user_speed;
	MaxStepHeight 24
	Alpha 0.8
	States {
		Spawn:
			TNT1 A 0 NoDelay A_Jump(256, "1", "2", "3", "4", "5", "6", "7", "8", "9")
		1:
			SKE2 A 0
		Goto Animate
		2:
			SKE2 B 0
		Goto Animate
		3:
			SKE2 C 0
		Goto Animate
		4:
			SKE2 D 0
		Goto Animate
		5:
			SKE2 E 0
		Goto Animate
		6:
			SKE2 F 0
		Goto Animate
		7:
			SKE2 J 0
		Goto Animate
		8:
			SKE2 K 0
		Goto Animate
		9:
			SKE2 L 0
		Goto Animate
		Animate:
			"####" "#" 0 A_setUserVar("user_angle", random(0, 255))
			"####" "#" 0 A_setUserVar("user_speed", random(2, 3))
		AnimLoop:
			"####" "#" 0 A_FadeOut(0.06)
			"####" "#" 4 ThrustThing(user_angle, user_speed, 0, 0)
		Loop
	}
}

Actor DraugrFader2 : DraugrFader {
	States {
			Spawn:
			TNT1 A 0 NoDelay A_Jump(256, "1", "2", "3", "4", "5", "6", "7", "8", "9")
		1:
			SKE2 A 0
		Goto Animate
		2:
			SKE2 B 0
		Goto Animate
		3:
			SKE2 C 0
		Goto Animate
		4:
			SKE2 D 0
		Goto Animate
		5:
			SKE2 E 0
		Goto Animate
		6:
			SKE2 F 0
		Goto Animate
		7:
			SKE2 J 0
		Goto Animate
		8:
			SKE2 K 0
		Goto Animate
		9:
			SKE2 L 0
		Goto Animate
		Animate:
			"####" "#" 0 A_ScaleVelocity(-1)
		AnimateLoop:
			"####" "#" 4 A_FadeOut(0.06)
		Loop
	}
}

Actor DraugrSeekerTrail {
	RenderStyle Add
	Alpha 0.85
	+CLIENTSIDEONLY
	+NOINTERACTION
	States {
		Spawn:
			TNT1 A 2
			FMTT ABCDE 2 Bright A_FadeOut(0.2)
		Stop
	}
}

Actor DraugrSeekerBoomFX {
	Scale 0.75
	RenderStyle Add
	Alpha 0.75
	+CLIENTSIDEONLY
	+NOGRAVITY
	States {
		Spawn:
			NREB CDEFGHIJKL 2 Bright
		Stop
	}
}

Actor DraugrSeeker {
	Speed 16
	Damage (random(15, 30))
	Radius 8
	Height 6
	Renderstyle Add
	Scale 0.45
	PROJECTILE
	DamageType "Magical"
	Stamina 8
	+SEEKERMISSILE
	+DOOMBOUNCE
	+NODAMAGETHRUST
	BounceCount 2
	BounceFactor 1
	Decal RevenantScorch
	SeeSound "harvester/scream"
	DeathSound "Draugr/SeekerExplode"
	States {
		Spawn:
			TNT1 A 0 NoDelay ACS_NamedExecuteAlways("DnD Pierce Check")
		SpawnLoop:
			TNT1 A 0 A_Jump(128,1,3,5,7,9)
			NREB ABABABABAB 2 Bright
			Goto StartSeek
		StartSeek:
			TNT1 A 0 A_SpawnItemEx("DraugrSeekerTrail",0,0,6,0,0,0,0,128) 
			NREB A 2 Bright	A_Tracer2
			NREB B 2 Bright A_SpawnItemEx("DraugrSeekerTrail",0,0,6,0,0,0,0,128) 
			Loop
		Death:
			TNT1 A 0
			TNT1 A 0 A_SpawnItemEx("RedParticleSpawner", 0, 0, 0, 0, 0, 0, 0, 128)
			TNT1 A 1 A_SpawnItem("DraugrSeekerBoomFX")
			Stop
	}
}

Actor CyborgSoldier : DnD_BaseHybridMonster {
	OBITUARY "%o was shot down by a Cyborg Soldier."
	Health 0x7FFFFFFF
	Radius 20
	Height 56
	Mass 512
	Speed 14
	Painchance 40
	Scale 1.2
	SEESOUND "Monsters/NBSight"
	ACTIVESOUND "Monsters/NBAct"
	PAINSOUND "Monsters/NBPain"
	DEATHSOUND "Monsters/NBDeath"
	Bloodcolor "7F 3F 00"
	Tag "Cyborg Soldier"
	Species "Skeleton"
	+DONTHURTSPECIES
	+DONTHARMSPECIES
	+ISMONSTER
	States {
		SetInfo:
			TNT1 A 0 A_SetArg(4, DND_CYBORGSOLDIER)
			TNT1 A 0 ACS_NamedExecuteWithResult("DnD Init Monster Data", DND_MWEIGHT_RARE2)
		Goto SpawnSetup
	
		IdleState:
			NLBG AB 10 A_GiveInventory("DnD_SightChecker", 1)
		Loop
		SeeState:
			NLBG AA 4 A_Chase
			NLBG A 0 A_PlaySound("Monsters/NBWalk")
			NLBG BBCC 4 A_Chase
			NLBG CC 0 A_PlaySound("Monsters/NBWalk")
			NLBG DD 4 A_Chase
		Goto See
		MissileState:
      		NLBG E 0 A_Jump(96, "Scattershot")
		MissileFire:
      		NLBG E 10 A_FaceTarget
		KeepFiring:
      		NLBG E 0 A_PlaySound("weapons/nailfire")
      		NLBG F 3 BRIGHT A_CustomMissile("NailProjectileWeak", 40, 8, frandom(6, -6), 0, 1)
      		NLBG E 2 BRIGHT
			NLBG E 0 A_PlaySound("weapons/nailfire")
      		NLBG F 3 BRIGHT A_CustomMissile("NailProjectileWeak", 40, 8, frandom(6, -6), 0, 1)
      		NLBG E 2 BRIGHT A_FaceTarget
      		NLBG E 0 A_PlaySound("weapons/nailfire")
      		NLBG F 3 BRIGHT A_CustomMissile("NailProjectileWeak", 40, 8, frandom(6, -6), 0, 1)
      		NLBG E 2 BRIGHT A_FaceTarget
      		NLBG E 0 A_PlaySound("weapons/nailfire")
      		NLBG F 3 BRIGHT A_CustomMissile("NailProjectileWeak", 40, 8, frandom(6, -6), 0, 1)
      		NLBG E 2 BRIGHT A_FaceTarget
      		NLBG E 0 A_PlaySound("weapons/nailfire")
      		NLBG F 3 BRIGHT A_CustomMissile("NailProjectileWeak", 40, 8, frandom(6, -6), 0, 1)
      		NLBG E 2 BRIGHT A_FaceTarget
      		NLBG E 0 A_PlaySound("weapons/nailfire")
      		NLBG F 3 BRIGHT A_CustomMissile("NailProjectileWeak", 40, 8, frandom(6, -6), 0, 1)
      		NLBG E 2 BRIGHT A_FaceTarget
      		NLBG E 0 A_PlaySound("weapons/nailfire")
      		NLBG F 3 BRIGHT A_CustomMissile("NailProjectileWeak", 40, 8, frandom(6, -6), 0, 1)
      		NLBG E 2 BRIGHT A_FaceTarget
      		NLBG E 0 A_PlaySound("weapons/nailfire")
      		NLBG F 3 BRIGHT A_CustomMissile("NailProjectileWeak", 40, 8, frandom(6, -6), 0, 1)
			TNT1 A 0 A_JumpIfCloser(256, "KeepFiring")
      		NLBG E 2 BRIGHT
		Goto See
		Scattershot:
      		NLBG E 10 A_FaceTarget
      		NLBG E 0 A_PlaySound("weapons/nailfire")
      		NLBG F 4 A_CustomMissile("NailProjectileWeak", 40, 8, 9, 0, 1)
      		NLBG F 0 A_CustomMissile("NailProjectileWeak", 40, 8, -9, 0, 1)
      		NLBG F 0 A_CustomMissile("NailProjectileWeak", 40, 8, 4.5, 0, 1)
      		NLBG F 0 A_CustomMissile("NailProjectileWeak", 40, 8, -4.5, 0, 1)
      		NLBG F 0 BRIGHT A_CustomMissile("NailProjectileWeak", 40, 8, 0, 0)
      		NLBG E 15
      	Goto See
		MeleeState:
      		TNT1 A 0 A_Jump(192, "Scattershot")
      	Goto MissileFire
		PainState:
			NLBG G 3
			NLBG G 3 A_Pain
		Goto See
		DeathState:
			NLBG H 5
			NLBG I 5 A_Scream
			NLBG J 5 A_NoBlocking
			NLBG J 0 A_PlaySound("Weapons/NailBomb")
			NLBG K 5 A_CustomMissile("BorgNailBomb", 32)
			NLBG L -1
		Stop
		XDeathState:
			NLBG O 5
			NLBG P 5 A_XScream
			NLBG Q 5 A_NoBlocking
			NLBG Q 0 A_PlaySound("Weapons/NailBomb")
			NLBG RTUV 5 A_CustomMissile("BorgNailBomb", 32)
			NLBG W -1
		Stop
		RaiseState:
			NLBG KJIH 5
		Goto See
	}
}

Actor BorgNailBomb {
	Radius 24
	Height 24
	Speed 0
	SeeSound "GenericGL/FireAdd"
	DEATHSOUND "Weapons/NailBombExp"
	PROJECTILE
	Gravity 0.8
	+THRUACTORS
	-NOGRAVITY
	states {
		Spawn:
			TNT1 A 0 NoDelay A_ChangeVelocity(0, 0, 8, CVF_RELATIVE)
		SpawnLoop:
			NBMB AB 6
		Loop
		Death:
			TNT1 AAA 0 A_CustomMissile("RocketSmoke", 0, 0, random(0, 360), 2, random(0, 180))
			TNT1 A 0 A_CustomMissile("NailProjectileWeak", 16, 2, 0, CMF_TRACKOWNER | CMF_AIMDIRECTION)
			TNT1 A 0 A_CustomMissile("NailProjectileWeak", 16, 2, 40, CMF_TRACKOWNER | CMF_AIMDIRECTION)
			TNT1 A 0 A_CustomMissile("NailProjectileWeak", 16, 2, 80, CMF_TRACKOWNER | CMF_AIMDIRECTION)
			TNT1 A 0 A_CustomMissile("NailProjectileWeak", 16, 2, 120, CMF_TRACKOWNER | CMF_AIMDIRECTION)
			TNT1 A 0 A_CustomMissile("NailProjectileWeak", 16, 2, 160, CMF_TRACKOWNER | CMF_AIMDIRECTION)
			TNT1 A 0 A_CustomMissile("NailProjectileWeak", 16, 2, 200, CMF_TRACKOWNER | CMF_AIMDIRECTION)
			TNT1 A 0 A_CustomMissile("NailProjectileWeak", 16, 2, 240, CMF_TRACKOWNER | CMF_AIMDIRECTION)
			TNT1 A 0 A_CustomMissile("NailProjectileWeak", 16, 2, 280, CMF_TRACKOWNER | CMF_AIMDIRECTION)
			TNT1 A 0 A_CustomMissile("NailProjectileWeak", 16, 2, 320, CMF_TRACKOWNER | CMF_AIMDIRECTION)
			TNT1 A 0 A_CustomMissile("NailProjectileWeak", 16, 2, 350, CMF_TRACKOWNER | CMF_AIMDIRECTION)
			TNT1 A 15
		Stop
	}
}