ACTOR MArchvileExorcist : Archvile
{
  tag "Archvile Exorcist"
  Health 700
  Radius 20
  Height 56
  Mass 500
  Speed 15
  
  +ALWAYSFAST
  Obituary "%o soul was purged by ArchvileExorcist"
  
  PainChance "Control", 255
  
  // no immune for archvile
  DamageFactor "CybRLDamage", 0 //added
  DamageFactor "CybYamato", 0.02 //added
  DamageFactor "Control", 1
  DamageFactor "MarineDamage", 1
  DamageFactor "ImpBallDamage", 0.5
  DamageFactor "ZombiesDamage", 0.5
  DamageFactor "CacoDamage", 0.5
  DamageFactor "SkelDamage", 0.5
  DamageFactor "FatsoDamage", 0.5
  DamageFactor "KnightDamage", 0.5
  DamageFactor "ArachDamage", 0.5
  DamageFactor "viledamage", 0
  States
  {
  Spawn:
    VILE A 10 A_Look 
	VILE B 10 
	VILE A 0 Thing_SetSpecial (0,226,409,0,health)
    loop
  See:
    VILE AABBCCDDEEFF 2 A_VileChase
    VILE A 0 A_JumpIf (special != 226,1) 
	loop	
	VILE A 0 Thing_SetSpecial (0,226,409,0,health)
	goto see 	
  Death.Control:
    TNT1 A 0 ACS_Execute(410,0,15)
	TNT1 A 10
	stop
  Death:
    VILE Q 7 A_GiveToTarget ("MarineExp",10)
    VILE R 7 A_Scream
    VILE S 7 A_NoBlocking
    VILE TUVWXY 7
	VILE Z 120 //delay before it can be risen again
	VILE Z 1 A_JumpIf(random(1,3) == 3, 2)
	//random 1/4 chance jump to disallow to be raised again, dissapear
	//on average, allow 3 times to be raised
    VILE Z -1
    Stop
		VILE Z 120 //randomly disallow to be raised again, dissapear
		Stop		
  Raise: // added
    VILE Y 20 //added
    VILE X 20 //added
    VILE W 20 //added
	VILE V 20 //added
	VILE U 20 //added
	VILE T 20 //added
    Goto See //added
   }
}
