ACTOR Draugr : McM_Monster replaces Revenant {
	Health 250
	Radius 20
	Height 64
	Mass 500
	Speed 10
	PainChance 112
	Monster
	+FLOORCLIP
	+DONTHARMSPECIES
	+DONTHURTSPECIES
	SeeSound "Draugr/See"
	PainSound "Draugr/pain"
	DeathSound "Draugr/Die"
	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"
	Renderstyle Translucent
	States {
		Idle:
			// 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_Look
		Loop
		See:
			SKE2 AABBCCDDEEFF 2 A_Chase
		Loop
		Melee:
			TNT1 A 0 A_JumpIfInventory("MCM_BehaviorToggle", 1, "FadeMelee")
		MeleeCont:
			TNT1 A 0 A_FaceTarget
			SKE2 J 6 A_SkelWhoosh
			SKE2 K 6 A_FaceTarget
			SKE2 L 6 A_CustomMeleeAttack(random(26, 46), "Draugr/Melee", "")
		Goto See
		FadeMelee:
			TNT1 A 0 A_Jump(128, "FadeAway")
		Goto MeleeCont
		FadeAway:
			TNT1 A 0 A_JumpIfInventory("DraugrFadeCooldown", 1, "MissileNoFade")
			SKE2 J 6 A_FaceTarget
			TNT1 A 0 A_UnsetShootable
			TNT1 A 0 A_PlaySound("Draugr/Fade")
			SKE2 JJJJJJJJJJ 2 A_FadeOut(0.1, 0)
			TNT1 AAAAA 0 A_CustomMissile("SmokeFX", 0, 0, random(0, 360), 2, random(0, 180))
			TNT1 AAAAAAAA 0 A_CustomMissile("SmokeFX", 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("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 1
		Goto See
		
		FadePain:
			TNT1 A 0 A_Jump(96, "FadeAway")
		Goto PainCont
		FadeChance:
			TNT1 A 0 A_JumpIfCloser(256, "FadeChanceCont")
		Goto MissileNoFade
		FadeChanceCont:
			TNT1 A 0 A_Jump(128, "MissileNoFade")
		Goto FadeAway
		
		MissileRoll:
			SKE2 J 1
			TNT1 A 0 A_Jump(96, "AngryMissile")
			SKE2 J 1
		Goto See
		Missile:
			TNT1 A 0 A_JumpIfInventory("MCM_BehaviorToggle", 1, "FadeChance")
		MissileNoFade:
			SKE2 G 8 A_FaceTarget
			SKE2 H 7 Bright A_CustomMissile("DraugrSeeker", 60, -16)
			SKE2 I 8 A_FaceTarget
		Goto See
		AngryMissile:
			SKE2 G 6 A_FaceTarget
			SKE2 H 5 Bright A_CustomMissile("DraugrSeeker", 60, -16)
			SKE2 I 6 A_FaceTarget
			SKE2 G 8 A_FaceTarget
			SKE2 H 7 Bright A_CustomMissile("DraugrSeeker", 60, -16)
			SKE2 I 8 A_FaceTarget
		Goto See
		Pain:
			SKE2 M 4 A_Pain
			TNT1 A 0 A_JumpIfInventory("MCM_BehaviorToggle", 1, "FadePain")
		PainCont:
			SKE2 M 4
		Goto See
		Death:
			SKE2 N 6
			SKE2 O 6 A_Scream
			SKE2 P 5 A_NoBlocking
			SKE2 QR 4
			SKE2 S -1
		Stop
		Raise:
			SKE2 R 5
			SKE2 QPON 5
		Goto See
		Death.Corpse:
			SKE2 S -1
		Stop
	}
}

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 AABBCCDDEE 1 Bright A_FadeOut(0.085)
		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 (5 * random(3, 6))
	Radius 8
	Height 12
	Renderstyle Add
	Scale 0.5
	PROJECTILE
	+SEEKERMISSILE
	+DOOMBOUNCE
	+NODAMAGETHRUST
	BounceCount 2
	BounceFactor 1
	Decal RevenantScorch
	SeeSound "Draugr/Scream"
	DeathSound "Draugr/SeekerExplode"
	States {
		Spawn:
			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
	}
}