actor MCacodemon : Cacodemon 
{
  tag Cacodemon
  health 400
  radius 31
  height 56
  mass 400
  speed 8
  BloodColor "blue"
  
  PainChance "Control", 255
  DamageFactor "Control", 1
  
  +NOINFIGHTING //added 3.3
  
  // Takes damage from 
  DamageFactor "MarineDamage", 1
  DamageFactor "ImpBallDamage", 0.5
  DamageFactor "ZombiesDamage", 0.5
  DamageFactor "SkelDamage", 0.5
  DamageFactor "FatsoDamage", 0.5
  DamageFactor "KnightDamage", 0.5
  DamageFactor "ArachDamage", 0.5
  DamageFactor "viledamage", 0.5
  // immune to
  DamageFactor "CacoDamage", 0
  states
  {
  Spawn:
    HEAD A 5 A_Look 
	HEAD A 5 
	HEAD A 0 Thing_SetSpecial (0,226,409,0,health)
    loop
  See:
    HEAD A 3 A_Chase
    HEAD A 0 A_JumpIf (special != 226,1) 
	loop	
	HEAD A 0 Thing_SetSpecial (0,226,409,0,health)
	goto see	
  Death.Control:
    TNT1 A 0 ACS_Execute(410,0,7)
	TNT1 A 10
	stop
  Death:
    HEAD G 8 A_GiveToTarget ("MarineExp",4)
    HEAD H 8 A_Scream
    HEAD IJ 8
    HEAD K 24 A_NoBlocking
    HEAD L 1000 //A_SetFloorClip
    stop
   Raise:
	HEAD L 8 //A_UnsetFloorClip
	HEAD KJIHG 8
	Goto See
  }
}




actor MCacodemonBall : CacodemonBall replaces CacodemonBall
{
  DamageType "CacoDamage"
}

// Cacolanter

ACTOR MCacolantern : Cacolantern replaces Cacolantern
{
    tag Cacolantern
    PainChance "Control", 255
    DamageFactor "Control", 1
    BloodColor "blue"

	+NOINFIGHTING //added 3.3
	
    // Takes damage from 
    DamageFactor "MarineDamage", 1
    DamageFactor "ImpBallDamage", 0.5
    DamageFactor "ZombiesDamage", 0.5
    DamageFactor "SkelDamage", 0.5
    DamageFactor "FatsoDamage", 0.5
    DamageFactor "KnightDamage", 0.5
    DamageFactor "ArachDamage", 0.5
    DamageFactor "viledamage", 0.5
    // immune to
    DamageFactor "CacoDamage", 0
	States
	{
	Spawn:
		HED2 A 5 A_Look
		HED2 A 5 
	    HED2 A 0 Thing_SetSpecial (0,226,409,0,health)
		Loop
	See:
		HED2 A 3 A_Chase
		HEAD A 0 A_JumpIf (special != 226,1) 
	    loop	
	    HEAD A 0 Thing_SetSpecial (0,226,409,0,health)
	    goto see
	Pain:
		HED2 E 3
		HED2 E 3 A_Pain
		HED2 F 6
	    goto see	
	Death.Control:
        TNT1 A 0 ACS_Execute(410,0,25)
	    TNT1 A 10
	    stop
	Missile:
		HED2 BC 5 A_FaceTarget
		HED2 D 5 BRIGHT A_BasicAttack (8, "None", "MCacolanternBall", 32)
		Goto See
	Death:
	    HED2 G 1 A_GiveToTarget ("MarineExp",5)
		HED2 G 7 A_NoBlocking
		HED2 H 8 A_Scream
		HED2 IJ 8
		HED2 K 24
		HED2 L 1000 //A_SetFloorClip
		Stop
	Raise:
		HED2 L 8 //A_UnsetFloorClip
		HED2 KJIHG 8
		Goto See
	}
}

ACTOR MCacolanternBall : CacolanternBall
{
	DamageType "CacoDamage"
	Decal CacoScorch
}

// Abaddon

ACTOR MAbaddon : Abaddon replaces Abaddon
{
    tag Abaddon
    PainChance "Control", 255
    DamageFactor "Control", 1
    seesound "abba/sight"
    painsound "abba/pain"
    deathsound "abba/death"
    activesound "abba/active"
  
    +NOINFIGHTING //added 3.3
	
    // Takes damage from 
    DamageFactor "MarineDamage", 1
    DamageFactor "ImpBallDamage", 0.5
    DamageFactor "ZombiesDamage", 0.5
    DamageFactor "SkelDamage", 0.5
    DamageFactor "FatsoDamage", 0.5
    DamageFactor "KnightDamage", 0.5
    DamageFactor "ArachDamage", 0.5
    DamageFactor "viledamage", 0.5
    // immune to
    DamageFactor "CacoDamage", 0
	
	+ALWAYSFAST //added
	
	States
	{
	Spawn:
		HED3 A 5 A_Look
		HED3 A 5 
	    HED3 A 0 Thing_SetSpecial (0,226,409,0,health)
		Loop
	See:
		HED3 A 3 A_Chase
		HED3 A 0 A_JumpIf (special != 226,1) 
	    loop	
	    HED3 A 0 Thing_SetSpecial (0,226,409,0,health)
	    goto see
	Missile:
		HED3 BC 5 A_FaceTarget
		HED3 D 5 BRIGHT A_BasicAttack (8, "None", "MAbaddonBall", 32)
		HED3 BC 5 A_FaceTarget
		HED3 D 5 BRIGHT A_BasicAttack (8, "None", "MAbaddonBall", 32)
		Goto See
	Death:
	    HED3 G 1 A_GiveToTarget ("MarineExp",5)
		HED3 G 7 A_NoBlocking
		HED3 H 8 A_Scream
		HED3 IJ 8
		HED3 K 24
		HED3 L -1 //A_SetFloorClip
		Stop
	Death.Control:
        TNT1 A 0 ACS_Execute(410,0,26)
	    TNT1 A 10
	    stop	
	Raise:
		HED3 L 8 //A_UnsetFloorClip
		HED3 KJIHG 8
		Goto See
	}
}

ACTOR MAbaddonBall : AbaddonBall
{
	DamageType "CacoDamage"
	Decal CacoScorch
	SeeSound "hecto/attack"
}