ACTOR Ruffian
{
Monster
Health 1800
Height 64
Radius 48
Mass 1000
Speed 4
Scale 1.1
BloodColor Blue
Painchance "Mine", 50
PainChance 12
+BOSSDEATH
+NOTARGET
+FLOORCLIP
+MISSILEMORE
+DONTHARMSPECIES
Species "Fatsos"
Species "SatanGuard"
Damagefactor "DemonTechProjectile", 0.5
//No Infighting
Damagefactor "SatanGuard", 0.0
Damagefactor "CurseComet", 0.0
DamageFactor "BeheComet", 0.0
DamageFactor "FatFlamer", 0.0
DamageFactor "SoulToxic", 0.0
DamageFactor "Cacolich", 0.0
DropItem "BossLifeEssence", 256 
DropItem "NemesisArmorBonus16", 256
DropItem "ExtraArmor", 128, 1 
DropItem "RuffianCannon", 64
SeeSound "ruffian/sight"
ActiveSound "ruffian/idle"
PainSound "ruffian/pain"
DeathSound "ruffian/death"
Obituary "%o was bashed by a Ruffian."
Tag "Ruffian"
States
	{
	Spawn:
		RFT2 C 8 A_Look
		RFT2 C 8 A_Look
		RFTI C 8 A_Look
		RFTI C 8 A_Look
		Loop
	See:
		TNT1 A 0 A_SpawnItemEx("BeefyStep2",0,0,2,0,0,-20)     
		RFT2 AAAAABBBBBCCCCCDDDDD 1 A_Chase
		TNT1 A 0 HealThing(10)
		TNT1 A 0 A_SpawnItemEx("BeefyStep2",0,0,2,0,0,-20)
		RFT2 EEEEEFFFFF 1 A_Chase
		TNT1 A 0 HealThing(5)
		Loop
	Missile:
		TNT1 A 0
		TNT1 A 0 A_PlaySound("ruffian/attack")
		TNT1 A 0 A_Jump(78,"BigComets","CurseComets")
	Normal:
		RFT2 GGGGG 3 A_FaceTarget(45)
		TNT1 A 0 A_FaceTarget 
		TNT1 AA 0 A_CustomMissile("RuffianComet",26,30,random(-12,6))
		RFT2 HH 3 Bright A_CustomMissile("RuffianComet",26,-30,random(-6,12))
		RFT2 IG 6 A_FaceTarget      
		TNT1 A 0 A_CustomMissile("RuffianComet",26,30,random(-12,6))
		RFT2 HH 3 Bright A_CustomMissile("RuffianComet",26,-30,Random(12,-6))
		RFT2 IG 10 A_FaceTarget
		TNT1 AA 0 Bright A_CustomMissile("RuffianComet",26,-30,Random(0,6))
		RFT2 HH 1 Bright A_CustomMissile("RuffianComet",26,30,Random(-6,0))
		TNT1 AA 0 Bright A_CustomMissile("RuffianComet",26,30,Random(-13,-7))
		RFT2 HH 3 Bright A_CustomMissile("RuffianComet",26,-30,Random(7,13))
		RFT2 I 12
		Goto See
	BigComets:
		RFT2 GGGGG 3 A_FaceTarget(45)
		TNT1 A 0 A_FaceTarget
		RFT2 H 6 Bright A_CustomMissile("PaladinComet",26,30,random(-12,6))
		RFT2 IG 6 A_FaceTarget
		RFT2 H 6 Bright A_CustomMissile("PaladinComet",26,-30,random(-6,12))
		RFT2 IG 10 A_FaceTarget
		TNT1 A 0 Bright A_CustomMissile("PaladinComet",26,-30,random(0,6))
		RFT2 H 2 Bright A_CustomMissile("PaladinComet",26,30,random(-6,0))
		TNT1 A 0 Bright A_CustomMissile("PaladinComet",26,30,random(-13,-7))
		RFT2 H 6 Bright A_CustomMissile("PaladinComet",26,-30,random(7,13))
		RFT2 I 12
		Goto See
	CurseComets:
		RFT2 GGGGGGGGGGGGGGG 1 A_FaceTarget(45)
		TNT1 A 0 A_FaceTarget
		RFT2 H 6 Bright A_CustomMissile("CurseComet",26,30,Random(-12,6))
		RFT2 IG 6 A_FaceTarget
		RFT2 H 6 Bright A_CustomMissile("CurseComet",26,-30,Random(-6,12))
		RFT2 IG 10 A_FaceTarget
		RFT2 H 2 Bright A_CustomMissile("CurseComet",26,30,Random(-6,0))
		RFT2 H 6 Bright A_CustomMissile("CurseComet",26,-30,Random(7,13))
		RFT2 I 12
		Goto See
	Pain:
		TNT1 A 0
		TNT1 A 0 A_Jump(87,"Missile")
		RFT2 J 6 A_Pain
		Goto See
	Death:
		RFT2 K 6
		RFT2 L 6 A_Scream
		TNT1 A 0 A_RadiusGive("RuffRevive",670,RGF_CORPSES|RGF_MONSTERS,1)
		RFT2 MMMMMMM 1 Bright A_SpawnItemEx("BlueFire2",random(8,-8),random(8,-8),random(10,25),random(2,-2),random(2,-2),random(2,5),random(0,360),SXF_CLIENTSIDE,0)
		TNT1 A 0 A_SpawnItemEx("BlueGibbedGenerator",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0)
		RFT2 M 1 A_NoBlocking
		TNT1 A 0 A_SpawnItemEx("BlueGibbedGenerator",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0)
		RFT2 NOPQR 6
		TNT1 A 0 A_RemoveChildren
		RFT2 S 6 A_BossDeath
		TNT1 A 0 A_KillMaster
		RFT2 T 63000 CanRaise
		Stop
	}
}

ACTOR CurseComet : Comet
{
MissileType ""
Damage 8
ExplosionDamage 42
ExplosionRadius 102
+SEEKERMISSILE
+HITTRACER
+DONTHARMSPECIES
Damagetype ""
DamageType "CurseComet"
DeathSound "barbcomet/explosion"
States
	{
	Spawn:
		RUBB AAABBB 1 Bright A_SpawnItemEx("CurseCometTail",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		Loop
	Crush:
	Death:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_SpawnItemEx("BlueParticleSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 AAA 0 Bright A_CustomMissile("SmokeFX2",0,0,random(0,360),CMF_AIMDIRECTION,random(0,360))
		TNT1 AAA 0 Bright A_CustomMissile("Kaboom23",0,0,random(0,360),CMF_AIMDIRECTION,random(0,360))
		RUBB C 3 Bright A_Explode
		RUBB D 3 Bright A_SetTranslucent(0.75,1)
		RUBB EFG 3 Bright
		Stop
	}
}

ACTOR CurseCometTail : CometTail
{
Alpha 0.85
Scale 0.75
+NONETID
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		TNT1 A 2 Bright
		RUBT ABCDE 2 Bright A_FadeOut(0.2,1)
		Stop
	}
}

Actor RuffianComet : HEMHomingCometBase
{
Speed 21
FastSpeed 25
Reactiontime 29
Damage 4
Damagetype "SatanGuard"
}

Actor RuffRevive : CustomInventory
{
 +INVENTORY.ALWAYSPICKUP
 States
  {
   PickUp:
    TNT1 A 0
    TNT1 A 0 A_JumpIfHealthLower(25,"PickUp.Revive")
	TNT1 AAA 0 A_SpawnItemEx("DFMarkFX",0,0,0)
    TNT1 A 0 HealThing(217,999)
    Stop
    PickUp.Revive:
    TNT1 A 0 A_Jump(45,"PickUp.Nightmare")
    TNT1 A 0 A_CustomMissile("HellionResRadius",10,0,random(0,360),0)
    Stop
    PickUp.Nightmare:
    TNT1 A 0 A_SpawnItemEx("Nightmare",0,0,0,0,0,0,0,SXF_SETMASTER|SXF_TRANSFERPOINTERS|SXF_NOCHECKPOSITION)
    Stop
  }
}