ACTOR ToxicImp 21769
{
Monster
Health 150
Height 56
Radius 20
Mass 100
Speed 9
Bloodcolor "yellow green"
PainChance 70
PainChance "Poison", 0
PainChance "PoisonCloud", 0
+FloorClip
+MissileMore
+QUICKTORETALIATE
Damagefactor "Poison", 0.001
Damagefactor "PoisonCloud", 0.001
DropItem "LifeEssence", 100
DropItem "ArmorBonusMax", 100
DropItem "DemonAmmo", 100
SeeSound "TImp/sight"
ActiveSound "imp/active"
PainSound "TImp/pain"
DeathSound "imp/death"
Obituary "%o was corroded by a Toxic Imp."
HitObituary "%o was scratched by a Toxic Imp."
States
	{
	Spawn:
		TNT1 A 0 A_SpawnItem("GHellionSmokeSpawner2",0,0,0,0)
		TIMP A 10 A_Look
		TNT1 A 0 A_SpawnItem("GHellionSmokeSpawner2",0,0,0,0)
		TIMI A 10 A_Look
		Loop
	See:
		TNT1 A 0 A_Jump(46,"Evade")
		TNT1 A 0 A_SpawnItem("GHellionSmokeSpawner2",0,0,0,0)
		TIMP AABB 3 A_Chase
		TNT1 A 0 A_SpawnItem("GHellionSmokeSpawner2",0,0,0,0)
		TNT1 A 0 A_SpawnItem("HumanishStep",0,0,0,0)
		TIMP CCDD 3 A_Chase
		TNT1 A 0 A_SpawnItem("GHellionSmokeSpawner2",0,0,0,0)
		TNT1 A 0 A_SpawnItem("HumanishStep",0,0,0,0)	
		Loop
	Evade:
    	TNT1 A 0 A_SpawnItem("GHellionSmokeSpawner2",0,0,0,0)
		TNT1 A 0 A_Jump(128,"Evade2")
		TNT1 A 0 ThrustThing(Angle*256/360+64,16,0,0)
		TNT1 A 0 A_SpawnItem("GHellionSmokeSpawner",0,0,0,0)
		TIMP AAAA 3 A_Chase
		TNT1 A 0 A_Stop
		Goto See
	Evade2:
		TNT1 A 0 ThrustThing(Angle*256/360+192,16,0,0)
		TNT1 A 0 A_SpawnItem("GHellionSmokeSpawner2",0,0,0,0)
		TIMP AAAA 3 A_Chase
		TNT1 A 0 A_Stop
		Goto See
    Melee:
	    TNT1 A 0 A_SpawnItem("GHellionSmokeSpawner2",0,0,0,0)
        TIMP EF 5 A_FaceTarget
		TNT1 A 0 A_SpawnItem("GHellionSmokeSpawner2",0,0,0,0)
        TIMP G 5 A_MeleeAttack
		TNT1 A 0 A_SpawnItem("GHellionSmokeSpawner2",0,0,0,0)
        TIMP FE 5 A_FaceTarget		
        Goto See
    Missile:
		TNT1 A 0
	    TNT1 A 0 A_SpawnItem("GHellionSmokeSpawner2",0,0,0,0)
        TIMP EEEEEEFFFFFF 1 A_FaceTarget
		TNT1 A 0 A_SpawnItem("GHellionSmokeSpawner2",0,0,0,0)
		TNT1 A 0 Bright A_PlaySound("imp/attack")
        TIMP G 5 Bright A_CustomMissile("ToxicBall",32,0,0,CMF_TRACKOWNER)
		TIMP FE 4 A_SpawnItem("GHellionSmokeSpawner2",0,0,0,0)
        Goto See
    Pain:
		TNT1 A 0
	    TNT1 A 0 A_SpawnItem("GHellionSmokeSpawner2",0,0,0,0)
    	TIMP H 6 A_Pain
		TNT1 A 0 A_SpawnItem("GHellionSmokeSpawner2",0,0,0,0)
    	Goto See
    Death:
		TNT1 A 0
	    TNT1 A 0 A_SpawnItem("GHellionSmokeSpawner2",0,0,0,0)
        TIMP J 8 A_Scream
        TIMP K 6
        TIMP L 6 A_Fall
        TIMP M 63000 CanRaise
        Stop
    XDeath:
		TNT1 A 0
		TIMP N 3 
		TIMP O 3 A_XScream
		TIMP P 3 A_SpawnItemEx("GibbedGenerator",0,0,0,0,0,0,0,128,0)
		TIMP Q 3 A_Fall
		TIMP RST 3
		TIMP U 63000 CanRaise
        Stop
    Raise:
		TNT1 A 0
		TNT1 A 0 A_SpawnItemEx("VileHealEffect",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
        TIMP TSRQPON 5
        Goto See
	}
}

ACTOR ToxicBall
{
PROJECTILE
Height 8
Radius 8
Speed 15
FastSpeed 19
Scale 0.9
RenderStyle Add
Decal DoomImpScorch
Damage(Random(5,7))   
+SEEKERMISSILE
+NOBOSSRIP
+BLOODLESSIMPACT
DeathSound "barbcomet/explosion"
States
	{
	Spawn:
		TNT1 A 0 Bright A_SeekerMissile(14,0)
		TNT1 A 0 Bright A_CStaffMissileSlither
        BRTB A 1 Bright A_SpawnItemEx("BarbCometTail",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 Bright A_CStaffMissileSlither
        BRTB B 1 Bright A_SpawnItemEx("BarbCometTail",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
        Loop
	Death:
	    TNT1 A 0 Bright
		TNT1 AAAAA 0 Bright A_SpawnItemEx("TImpPoison",0,0,10,Random(4,-4),Random(4,-4),Random(4,-2))
        BRTB CDEFG 3 Bright
        Stop
	Crash:
	XDeath:
	    TNT1 A 0 Bright
		TNT1 A 0 Bright A_SpawnItemEx("GreenParticleSpawner",0,0,0,0,0,0,0,128)
		TNT1 AAA 0 Bright A_CustomMissile("Kaboom7",0,0,random(0,360),2,random(0,360))
		TNT1 AAAAA 0 Bright A_SpawnItemEx("TImpPoison",0,0,10,Random(4,-4),Random(4,-4),Random(4,-2))
		TNT1 AAA 0 Bright A_CustomMissile("SmokeFX4",0,0,random(0,360),2,random(0,360))
        BRTB CDEFG 3 Bright
        Stop
	}
}

ACTOR GHellionSmokeSpawner2 : RedParticleSpawner
{
+NOINTERACTION
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		TNT1 A 0 Bright A_CheckSight("Toaster")
		TNT1 AAAA 0 Bright A_SpawnItemEx("GHellionSmoke3",random(12,-12),random(12,-12),random(12,64),0,0,random(1,3),0,128,0)
		TNT1 A 1 Bright
		Stop
	Toaster:
		TNT1 A 1 Bright
		Stop
	}
}

ACTOR GHellionSmoke3 : GHellionSmoke { Scale 0.2 }
Actor TImpPoison : BarbatosPoison { DamageType "ImpComet" }