Actor BloodElemental
{
Monster
Health 450
Height 56
Radius 30
Mass 400
Speed 7
FloatSpeed 4
Scale 1.2
Painchance "Mine", 128
Painchance "SatanGuard", 0
Painchance "Broat", 0
Painchance "Wicked", 0
Painchance 76
+Floatbob
+Float
+NOGRAVITY
+DontHurtSpecies
+DontHarmSpecies
+DontHarmClass
Species "EleSouls"
Species "BloodElemental"
DamageFactor "PDTBFG", 0.25
DamageFactor "PDTBFGTracer", 0.25
DamageFactor "PlayerDevBall", 0.125
DamageFactor "PlayerDevBall2", 0.125
DamageFactor "PlayerDevTracer", 0.125
DamageFactor "PlayerDTBFGRailgunSlug", 0.125
DamageFactor "PlayerDevTracer", 0.125
DamageFactor "LegendaryPlayer", 0.3
DamageFactor "LegendaryGuruPlayer", 0.3
//No Infighting
Damagefactor "BloodElemental", 0.0
Damagefactor "BloodSkull", 0.0
Damagefactor "Broat", 0.0
Damagefactor "Wicked", 0.0
Damagefactor "EleSouls", 0.0
DamageFactor "CacoComet", 0.0
DropItem "LifeEssence", 200, 13
DropItem "HEMArmorBonusMax13", 200
seesound "grell/sight"
activesound "grell/active"
painsound "grell/pain"
deathsound "grell/death"
Obituary "%o was plagued by a Blood Elemental."
Tag "Blood Elemental"
var int user_currenthp;
States
	{
	Spawn:
		GREL A 10 A_Look
		Loop
	See:
		TNT1 A 0 A_SetSolid
		GREL AAABBBCCC 1 A_Chase
		GREL AAABBBCCC 1 A_Chase
		TNT1 A 0 Healthing(1)
		TNT1 A 0 A_SetUserVar("user_currenthp",ACS_NamedExecuteWithResult("Hem_GetCurrentHealth"))
		Loop
	Missile:
		TNT1 A 0 A_SetSolid
		GREL A 1 A_Jump(128,"BloodSpit","Normal")
		TNT1 A 0 A_Jump(89,"Wicked","BabyWatcher","Cruel")
	Normal:
		TNT1 A 0
		TNT1 A 0 A_JumpIfInventory("Tic",10,"BloodSpit")
		GREL DDDD 1 A_FaceTarget
		GREL EEEFF 1 Bright A_FaceTarget
		TNT1 A 0 A_DualPainAttack("BloodSkull~")
		TNT1 A 0 A_GiveInventory("Tic",1)
		GREL EDD 4
		GoTo See
	BloodSpit:
		GREL DDD 1 A_FaceTarget
		GREL EEFF 1 Bright A_FaceTarget
		TNT1 A 0 A_CustomMissile("BloodSpit",47,9,0)
		TNT1 A 0 A_CustomMissile("BloodSpit",47,-9,0)
		TNT1 A 0 A_TakeInventory("Tic",1)
		GREL EDD 2
		GoTo See
	Wicked:
		TNT1 A 0
		TNT1 A 0 A_JumpIfInventory("Tic",10,"BloodSpit")
		GREL DDDD 1 A_FaceTarget
		GREL EEEFF 1 Bright A_FaceTarget
		TNT1 A 0 A_PainAttack("Wicked")
		TNT1 A 0 A_GiveInventory("Tic",1)
		GREL EDD 4
		GoTo See
	BabyWatcher:
		TNT1 A 0
		TNT1 A 0 A_JumpIfInventory("Tic",10,"BloodSpit")
		GREL DDDD 1 A_FaceTarget
		GREL EEEFF 1 Bright A_FaceTarget
		TNT1 A 0 A_PainAttack("BabyWatcher")
		TNT1 A 0 A_GiveInventory("Tic",1)
		GREL EDD 4
		GoTo See
	Cruel:
		TNT1 A 0
		TNT1 A 0 A_JumpIfInventory("Tic",10,"BloodSpit")
		GREL DDDD 1 A_FaceTarget
		GREL EEEFF 1 Bright A_FaceTarget
		TNT1 A 0 A_PainAttack("Cruel")
		TNT1 A 0 A_GiveInventory("Tic",1)
		GREL EDD 4
		GoTo See
	Pain:
		GREL G 3
		GREL G 3 A_Pain
		"####" "#" 0 A_JumpIf((user_currenthp - ACS_NamedExecuteWithResult("Hem_GetCurrentHealth")) <= 0,2)
		"####" "#" 1 HealThing(((user_currenthp - ACS_NamedExecuteWithResult("Hem_GetCurrentHealth"))*0.75)+1)
		"####" "#" 0 A_SetUserVar("user_currenthp",ACS_NamedExecuteWithResult("Hem_GetCurrentHealth"))
		TNT1 A 0 A_TakeInventory("Tic",1)
		Goto See
	XDeath:
	Death:
		TNT1 A 0
		GREL H 1 A_ChangeFlag(FLOATBOB,0)
		GREL H 1 A_Scream
		GREL H 1 A_SpawnItemEx("GibbedGenerator",0,0,44,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		GREL H 1 A_PainDie("BloodSkull~")
		GREL I 1 A_Fall
		TNT1 A 0 A_ChangeFlag(SOLID,0)
		TNT1 A 0 A_ChangeFlag(THRUACTORS,1)
		TNT1 A 0 A_TakeInventory("Tic",999999)
	Fall:
		GREL I 1 A_CheckFloor("Land")
		TNT1 A 0 A_JumpIfInventory("Tic",525,"Land")
		TNT1 A 0 A_GiveInventory("Tic",1)
		Loop
	Land:
		TNT1 A 0
		TNT1 A 0 A_TakeInventory("Tic",999999)	
		TNT1 A 0 A_ChangeFlag(CORPSE,1)
		TNT1 A 0 A_SpawnItemEx("GibbedGenerator",0,0,44)
		GREL J 4 A_PlaySound("grell/thud",CHAN_AUTO)
		GREL KLM 4
		TNT1 A 0 A_ChangeFlag(SOLID,0)
		TNT1 A 0 A_ChangeFlag(THRUACTORS,0)
		TNT1 A 0 A_ChangeFlag(MOVEWITHSECTOR,1)
		GREL N 63000 CanRaise
		Stop
	Raise:
		TNT1 A 0
		TNT1 A 0 A_ChangeFlag(MOVEWITHSECTOR,0)
		TNT1 A 0 A_SpawnItemEx("VileHealEffect",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		GREL MLKJIH 5
		Goto See
	}
}

Actor BloodSpit
{
PROJECTILE
Height 6
Radius 6
Speed 34
Scale 0.5
Mass 1
Gravity 0.02
Decal BloodSplat
Reactiontime 88
Damage (random(9,12))
-NOGRAVITY
+DontHurtSpecies
+DontHarmSpecies
Species "BloodElemental"
Damagetype "BloodElemental"
SeeSound "Blood/Spit"
DeathSound "Blood/Impact"
States
	{
	Spawn:
		BSHT AABB 1 A_CustomMissile("NewFlyingBlood",0,0,180,2)
		TNT1 A 0 A_Countdown
		Loop
	Crash:
	Death:
		TNT1 A 0
		TNT1 A 0 A_SetGravity(0.1)
		BSHT C 2
		BSHT C 4
		BSHT D 6 
		Stop
	XDeath:
		BSHT C 2
		TNT1 AAA 0 A_CustomMissile("BloodSpitExplode",0,0,random(0,360),2,random(0,360))
		TNT1 AAAAAA 0 A_CustomMissile("NewFlyingBlood",0,0,random(0,360),2,random(0,360))
		BSHT C 4
		BSHT D 6 
		Stop
	}
}

Actor BloodSpitExplode : RedBloodCloud { Scale 0.4 }