actor DivineShadow 10100
{
	//$Category Monsters
	//$Sprite VIL2G1
	//$Title Divine Shadow

	Health 4000
	Radius 20
	Height 56
	Mass 500
	Speed 15
	PainChance 0
	
	Monster
	
	+QUICKTORETALIATE
	+FLOORCLIP
	+NOTARGET
	
	SeeSound "vile/sight"
	PainSound "vile/pain"
	DeathSound "vile/death"
	ActiveSound "vile/active"
	MeleeSound "vile/stop"
	
	Obituary "%o was desintegrated by the Divine Shadow."
	
	States
	{
	Spawn:
		VIL1 AB 10 A_Look
		loop
		
	See:
		VIL1 AABBCC 2 A_Chase
		loop
		
	Missile:
		TNT1 A 0 A_Jump(64, "MissileLoopStart")
		//goto MissileSingle
		
	MissileSingle:
		TNT1 A 0 A_FaceTarget
		TNT1 A 0 ACS_ExecuteAlways(451, 0, 0, 0, 0)
		TNT1 A 0 A_CustomMissile("DivineShadowAtkLarge", 50.0, 0)
		TNT1 A 0 A_PlaySound("weapons/bfgf")
		VIL2 G 4 BRIGHT
		VIL2 HIJKLMNONP 4 BRIGHT
		goto See

	MissileLoopStart:
		TNT1 A 0 ACS_ExecuteAlways(440, 0, 0, 0, 0)
		goto MissileLoop
		
	MissileLoop:
		VIL2 A 1
		loop
		
	Death:
		VIL3 R 7 A_Scream
		VIL3 S 7 A_NoBlocking
		VIL3 TUWVXY 7
		VIL3 Z -1
		stop
	}
}

actor DivineShadowAtkSmall : BFGBall
{
	Scale 0.5
	Alpha 1.0
	Damage 25
	RenderStyle Translucent
	
	States
	{
	Death:
		BFE1 AB 8 BRIGHT
		BFE1 C 8 BRIGHT A_BFGSpray("BFGExtra", 3, 2)
		BFE1 DEF 8 BRIGHT
		stop
	}
}

actor DivineShadowAtkTrail
{
	+NOINTERACTION
	+NOGRAVITY
	
	RenderStyle Add
	Alpha 0.8

	States
	{
	Spawn:
		BFS2 H 4 BRIGHT A_FadeOut(0.1)
		BFS2 G 4 BRIGHT A_FadeOut(0.1)
		BFS2 F 4 BRIGHT A_FadeOut(0.1)
		BFS2 E 4 BRIGHT A_FadeOut(0.1)
		BFS2 D 4 BRIGHT A_FadeOut(0.1)
		BFS2 C 4 BRIGHT A_FadeOut(0.1)
		BFS2 B 4 BRIGHT A_FadeOut(0.1)
		BFS2 A 4 BRIGHT A_FadeOut(0.1)
		stop
	}
}

actor DivineShadowAtkLarge : BFGBall
{
	Alpha 1.0
	RenderStyle Translucent
	Speed 17
	
	+SEEKERMISSILE
	
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 ACS_ExecuteAlways(450, 0, 0, 0, 0) // basically, this holds the projectile in place for a bit
		BFS2 ABCDEF 6 BRIGHT
		goto SpawnLoop
	SpawnLoop:
		TNT1 A 0 A_SeekerMissile(0, 2, SMF_PRECISE)
		BFS2 G 1 BRIGHT A_SpawnItem("DivineShadowAtkTrail", 0, 0, false, false)
		TNT1 A 0 A_SeekerMissile(0, 2, SMF_PRECISE)
		BFS2 G 1 BRIGHT A_SpawnItem("DivineShadowAtkTrail", 0, 0, false, false)
		TNT1 A 0 A_SeekerMissile(0, 2, SMF_PRECISE)
		BFS2 G 1 BRIGHT A_SpawnItem("DivineShadowAtkTrail", 0, 0, false, false)
		TNT1 A 0 A_SeekerMissile(0, 2, SMF_PRECISE)
		BFS2 G 1 BRIGHT A_SpawnItem("DivineShadowAtkTrail", 0, 0, false, false)
		TNT1 A 0 A_SeekerMissile(0, 2, SMF_PRECISE)
		BFS2 H 1 BRIGHT A_SpawnItem("DivineShadowAtkTrail", 0, 0, false, false)
		TNT1 A 0 A_SeekerMissile(0, 2, SMF_PRECISE)
		BFS2 H 1 BRIGHT A_SpawnItem("DivineShadowAtkTrail", 0, 0, false, false)
		TNT1 A 0 A_SeekerMissile(0, 2, SMF_PRECISE)
		BFS2 H 1 BRIGHT A_SpawnItem("DivineShadowAtkTrail", 0, 0, false, false)
		TNT1 A 0 A_SeekerMissile(0, 2, SMF_PRECISE)
		BFS2 H 1 BRIGHT A_SpawnItem("DivineShadowAtkTrail", 0, 0, false, false)
		loop
	}
}