ACTOR StoneImp 3103
{
  Health 250
  Radius 20
  Height 56
  Speed 6
  Mass 400
  Monster
  BloodType "StoneBitsSpawner"
  Species "Imps"
  DamageFactor "ImpComet", 0.0
  DamageFactor "Bullet", 0.40
  DamageFactor "Explosion", 0.75
  DropItem "ArmorPlate" 170
  DropItem "LifeEssence" 100
  DropItem "ArmorBonusMax" 100
  RadiusDamageFactor 0.25
  SeeSound "imp/sight"
  PainSound "imp/pain"
  DeathSound "imp/death"
  ActiveSound "imp/active"
  Obituary "%o was smashed by a stone imp."
  Tag "Stone Imp"
  +FLOORCLIP
  +NOBLOODDECALS
  +NOPAIN
  States
  {
  Spawn:
    GIMP AB 10 A_Look
    Loop
  See:
    GIMP AABBCCDD 3 A_Chase
    Loop
  Melee:
    GIMP EF 8 A_FaceTarget
    GIMP G 6 A_CustomMeleeAttack(12 * random(1, 4), "stoneimp/hit", "", "Melee")
    Goto See
  Missile:
    GIMP EF 10 A_FaceTarget
    GIMP G 6 A_CustomMissile("StoneImpBoulder",32,0,0)
    Goto See  
  Pain:
    GIMP H 2
    GIMP H 2 A_Pain
    Goto See
  XDeath:
  Death:
    GIMP I 6 A_CustomMissile("SmokeFX",Random(10,40),0,random(0,360),2,random(0,360))	
	TNT1 AAAA 0 A_SpawnItemEx("Debris",0,0,0,Random(4,-4),Random(4,-4),Random(4,8),0,128)
    GIMP J 6 A_Scream
    GIMP K 5 A_CustomMissile("SmokeFX",Random(10,40),0,random(0,360),2,random(0,360))
    GIMP L 5 A_Fall
    GIMP M 5
    GIMP N -1
    Stop
  Raise:
  	TNT1 A 0
	TNT1 A 0 A_SpawnItemEx("VileHealEffect",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
    GIMP MLKJI 4
	Goto See	
  }
}

ACTOR Morphed : Inventory {}
ACTOR StoneImpHidden1
{
  Health 250
  Radius 20
  Height 56
  Speed 8
  Mass 400
  Monster
  BloodType "StoneBitsSpawner"
  Species "Imps"
  DamageFactor "ImpComet", 0.0
  DamageFactor "Bullets", 0.60
  DamageFactor "Explosion", 0.75
  DropItem "ArmorPlate" 100
  DropItem "LifeEssence" 100
  DropItem "ArmorBonusMax" 100
  RadiusDamageFactor 0.25
  PainSound "imp/pain"
  DeathSound "imp/death"
  ActiveSound "imp/active"
  Obituary "%o didn't see that stone imp coming."
  Tag "Stone Imp"
  +FLOORCLIP
  +NOBLOODDECALS
  +NOPAIN
  +LOOKALLAROUND
  +NODAMAGE
  -SHOOTABLE
  States
  {
  Spawn:
	STNI A 1 A_Look
	Loop
  Idle:
    GIMP AB 10 A_Look
    Loop
  See:
	STNI A 1 A_JumpIfInventory("Morphed", 1, "Chase")
	STNI A 1 A_JumpIfCloser(128, "Morph")
	Wait
  Morph:
	STNI A 0 A_ChangeFlag("SHOOTABLE", 1)
	STNI A 0 A_ChangeFlag("NOBLOOD", 0)
	STNI A 0 A_ChangeFlag("NODAMAGE", 0)
	STNI ABEFG 4
	GIMP H 4 A_GiveInventory("Morphed", 1)
  Chase:
    GIMP AABBCCDD 3 A_Chase
    Loop
  Melee:
    GIMP EF 8 A_FaceTarget
    GIMP G 6 A_CustomMeleeAttack(12 * random(1, 4), "stoneimp/hit", "", "Melee")
    Goto See
  Missile:
    GIMP EF 8 A_FaceTarget
    GIMP G 6 A_CustomMissile("StoneImpBoulder",32,0,0)
    Goto See  
  Pain:
    GIMP H 2
    GIMP H 2 A_Pain
    Goto See
  Death:
    GIMP I 6 A_CustomMissile("SmokeFX",Random(10,40),0,random(0,360),2,random(0,360))	
	TNT1 AAAA 0 A_SpawnItemEx("Debris",0,0,0,Random(4,-4),Random(4,-4),Random(4,8),0,128)
    GIMP J 6 A_Scream
    GIMP K 5 A_CustomMissile("SmokeFX",Random(10,40),0,random(0,360),2,random(0,360))
    GIMP L 5 A_Fall
    GIMP M 5
    GIMP N -1
    Stop
  }
}
ACTOR StoneImpHidden2 : StoneImpHidden1
{
	States
	{
  Spawn:
	STNI C 1 A_Look
	Wait
  See:
	STNI C 1 A_JumpIfInventory("Morphed", 1, "Chase")
	STNI C 1 A_JumpIfCloser(128, "Morph")
  Wait
  Morph:
	STNI A 0 A_ChangeFlag("SHOOTABLE", 1)
	STNI A 0 A_ChangeFlag("NOBLOOD", 0)
	STNI A 0 A_ChangeFlag("NODAMAGE", 0)
	STNI CDEFG 4
	GIMP H 4 A_GiveInventory("Morphed", 1)
	Goto Chase
	}
}
// Stone bits SFX - by Blue Shadow (the spawning code is based on Nash's nashgore code)



Actor StoneImpBoulder
{
Projectile 
+DOOMBOUNCE
+BOUNCEONActorS
-NOGRAVITY
SeeSound "stone/bounce"
Radius 6
Height 6
Scale 0.7
Speed 28
Damage 5
States
{
  Spawn:
    TNT1 A 0
    TNT1 A 1 ThrustThingZ(0,12,0,1)
  Fly:
    STNB ABCDEFGH 3
    Loop
  Death:
    STNB H 200
    Stop
  }
}