Actor HEMStoneFiend : BullFiend 30343
{
Monster
Health 600
Height 48
Radius 24
Mass 800
Speed 13
BloodColor "None"
BloodType "StoneBitsSpawner"
Missiletype "LobbedRock"
PainChance 68
Painchance "Stun", 0
Painchance "Mine", 0
Painchance "Explosion", 0
+NOFEAR
+FLOORCLIP
+FASTMELEE
+DONTRIP
+NORADIUSDMG
+NOBLOODDECALS
+QUICKTORETALIATE
+DONTHARMSPECIES
Species "Fiends"
Damagefactor "Acid", 0.0
Damagefactor "Fire", 0.1
DamageFactor "Ice", 0.1
Damagefactor "Poison", 0.0
Damagefactor "PoisonCloud", 0.0
Damagefactor "Electric", 0.01
Damagefactor "Disintegrate", 0.25
DamageFactor "PDTBFG", 0.25
DamageFactor "PDTBFGTracer", 0.25
DamageFactor "PlayerDevBall", 0.125
DamageFactor "PlayerDevBall2", 0.125
DamageFactor "PlayerDevTracer", 0.125
DamageFactor 0.75
//No Infighting
Damagefactor "Stun", 0.0
DamageFactor "FiendFire", 0.0
DamageFactor "DTFiendEx", 0.0
DropItem "LifeEssence", 96, 1
DropItem "LifeEssence", 32, 1
DropItem "ArmorBonusMax", 96, 1
DropItem "ArmorBonusMax", 32, 1
SeeSound "stone/sight"
AttackSound "demon/melee"
PainSound "demon/pain"
DeathSound "stone/death"
ActiveSound "demon/active"
Obituary "%o was gored by a Stone Fiend."
HitObituary "%o was smashed by a Stone Fiend."
Tag "Stone Fiend"
var int user_fake_death;
States
	{
	Spawn:
		STDE A 10 A_Look
		Loop
	Idle:
		TNT1 A 0 A_JumpIf(user_fake_death == 1,"DontRaise")
		TNT1 A 0 A_SetSolid
		TNT1 A 0 A_SetShootable
		TNT1 A 0 A_UnSetInvulnerable
		TNT1 A 0 A_ChangeFlag(NOPAIN,0)
		STDE AABB 2 A_Wander
		TNT1 A 0 A_Look
		TNT1 A 0 A_SpawnItem("HeavyFleshStep",0,0,0,0)
		STDE CCDD 2 A_Wander
		TNT1 A 0 A_Look
		TNT1 A 0 A_SpawnItem("HeavyFleshStep",0,0,0,0)
		Loop
	See:
		TNT1 A 0 A_JumpIf(user_fake_death == 1,"DontRaise")
		TNT1 A 0 A_SetSolid
		TNT1 A 0 A_SetShootable
		TNT1 A 0 A_UnSetInvulnerable
		TNT1 A 0 A_ChangeFlag("NOPAIN",0)
		STDE AABB 2 A_Chase
		TNT1 A 0 A_SpawnItem("HeavyFleshStep",0,0,0,0)
		STDE CCDD 2 A_Chase
		TNT1 A 0 A_SpawnItem("HeavyFleshStep",0,0,0,0)
		Loop
	Melee:
		TNT1 A 0
		TNT1 A 0 A_SetSolid
		TNT1 A 0 A_SetShootable
		TNT1 A 0 A_UnSetInvulnerable
		TNT1 A 0 A_ChangeFlag("NOPAIN",0)
		STDE EF 8 A_FaceTarget
		STDE G 6 A_CustomMeleeAttack(28,"stone/melee","None","Stun")
		Goto See
	Missile:
		TNT1 A 0
		TNT1 A 0 A_SetSolid
		TNT1 A 0 A_SetShootable
		TNT1 A 0 A_UnSetInvulnerable
		TNT1 A 0 A_ChangeFlag("NOPAIN",0)
		TNT1 A 0 A_Jump(128,"StoneLunge")
		STDE EF 5 A_FaceTarget
		STDE G 3 A_ThrowGrenade("LobbedRock",32)//A_MissileAttack
		Goto See
	StoneLunge:
		TNT1 A 0 A_PlaySound("demon/melee")
		STDE EF 7 A_FaceTarget
		TNT1 A 0 A_ChangeFlag("SLIDESONWALLS",1)
		TNT1 A 0 ThrustThingZ(0,20,0,1)
		STDE F 2 A_Recoil(-24)
		STDE F 3 A_CustomMissile("PinkyLunge",18,0,0,CMF_AIMDIRECTION)
		STDE G 6
		STDE G 2 A_ScaleVelocity(0.2)
		TNT1 A 0 A_ChangeFlag("SLIDESONWALLS",0)
		STDE G 1 A_ScaleVelocity(0)
		Goto See	
	Pain:
		TNT1 A 0
		TNT1 A 0 A_ChangeFlag("NOPAIN",1)
		STDE H 3
		STDE H 3 A_Pain
		Goto See
	RaiseUnderTarget:
		TNT1 A 0
		TNT1 A 0 A_UnsetSolid
		TNT1 A 0 A_SetInvulnerable
		STDE OP 3 A_CustomMissile("SmokeFX",Random(10,40),0,random(0,360),CMF_AIMDIRECTION,random(0,360))
		STDE NM 3 A_SpawnItemEx("Debris",0,0,0,Random(4,-4),Random(4,-4),Random(4,8),0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 A_Explode(random(60,90),120,0)
		TNT1 A 0 A_Blast(BF_NOIMPACTDAMAGE,100,120,10)
		TNT1 A 0 A_PlaySound("StoneArmor/Destroy",0,1.5,0)
		STDE LK 3 A_CustomMissile("SmokeFX",Random(10,40),0,random(0,360),CMF_AIMDIRECTION,random(0,360))
		STDE JI 3 A_SpawnItemEx("Debris",0,0,0,Random(4,-4),Random(4,-4),Random(4,8),0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 A_UnSetInvulnerable
		TNT1 A 0 A_SetSolid
		GoTo See
	FakeDeath:
		TNT1 A 0
		TNT1 A 0 A_SetUserVar("user_fake_death",1)
		TNT1 A 0 A_UnsetSolid
		TNT1 A 0 A_UnsetShootable
		TNT1 A 0 A_ChangeFlag("BOSS",1)
		TNT1 A 0 ACS_NamedExecuteAlways("Hem_StFiendGrndAttack",0)
		STDE I 5 A_CustomMissile("SmokeFX",Random(10,40),0,random(0,360),CMF_AIMDIRECTION,random(0,360))
		TNT1 AAAA 0 A_SpawnItemEx("Debris",0,0,0,Random(4,-4),Random(4,-4),Random(4,8),0,SXF_CLIENTSIDE,0)
		STDE J 5 A_Scream
		TNT1 A 0 A_ChangeFlag("COUNTKILL",0)
		TNT1 A 0 A_ChangeFlag("CORPSE",1)
		STDE K 5 A_CustomMissile("SmokeFX",Random(10,40),0,random(0,360),CMF_AIMDIRECTION,random(0,360))
		TNT1 AAAA 0 A_SpawnItemEx("Debris",0,0,0,Random(4,-4),Random(4,-4),Random(4,8),0,SXF_CLIENTSIDE,0)
		TNT1 A 0 A_SpawnItemEx("LifeEssence",0,0,0,random(0,4),random(0,4),2,random(0,360),0,64)
		TNT1 A 0 A_SpawnItemEx("ArmorBonusMax",0,0,0,random(0,4),random(0,4),2,random(0,360),0,64)
		STDE L 5 
		STDE MNOP 4
		STDE Q 525
		Goto DontRaise
	XDeath:
	Death:
		TNT1 A 0
		STDE I 5 A_CustomMissile("SmokeFX",Random(10,40),0,random(0,360),CMF_AIMDIRECTION,random(0,360))
		TNT1 AAAA 0 A_SpawnItemEx("Debris",0,0,0,Random(4,-4),Random(4,-4),Random(4,8),0,SXF_CLIENTSIDE,0)
		STDE J 5 A_Scream
		STDE K 5 A_CustomMissile("SmokeFX",Random(10,40),0,random(0,360),CMF_AIMDIRECTION,random(0,360))
		TNT1 AAAA 0 A_SpawnItemEx("Debris",0,0,0,Random(4,-4),Random(4,-4),Random(4,8),0,SXF_CLIENTSIDE,0)
		STDE L 5 A_Fall
		STDE MNOP 4
		STDE Q 63000 CanRaise
		Stop
	Raise:
		TNT1 A 0
		TNT1 A 0 A_SpawnItemEx("VileHealEffect",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
		STDE QPONMLKJI 3
		Goto See
	DontRaise:
		STDE Q 1 A_FadeOut(0.1,1)
		Loop
	}
}