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
+DONTHURTSPECIES
+DONTHARMSPECIES
+DONTHARMCLASS
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", 250 
DropItem "NemesisArmorBonusMax", 250, 35
DropItem "ExtraArmor", 128, 1 
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 GGGGGGGGGGGGGGG 1 A_FaceTarget    
		TNT1 A 0 A_FaceTarget 
		TNT1 AA 0 A_CustomMissile("RuffianComet",26,30,Random(6,-12),0)
		RFT2 HH 3 Bright A_CustomMissile("RuffianComet",26,-30,Random(12,-6),0)
		RFT2 IG 6 A_FaceTarget      
		TNT1 A 0 A_CustomMissile("RuffianComet", 26, 30, Random(6,-12),0)
		RFT2 HH 3 Bright A_CustomMissile("RuffianComet",26,-30,Random(12,-6),0)
		RFT2 IG 10 A_FaceTarget
		TNT1 AA 0 Bright A_CustomMissile("RuffianComet",26,-30,Random(0,6),0)
		RFT2 HH 1 Bright A_CustomMissile("RuffianComet",26,30,Random(0,-6),0)
		TNT1 AA 0 Bright A_CustomMissile("RuffianComet",26,30,Random(-7,-13),0)
		RFT2 HH 3 Bright A_CustomMissile("RuffianComet",26,-30,Random(7,13),0)
		RFT2 I 12
		Goto See
	BigComets:
		RFT2 GGGGGGGGGGGGGGG 1 A_FaceTarget
		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(12,-6))
		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(0,-6))
		TNT1 A 0 Bright A_CustomMissile("PaladinComet",26,30,Random(-7,-13))
		RFT2 H 6 Bright A_CustomMissile("PaladinComet",26,-30,Random(7,13))
		RFT2 I 12
		Goto See
	CurseComets:
		RFT2 GGGGGGGGGGGGGGG 1 A_FaceTarget
		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(12,-6))
		RFT2 IG 10 A_FaceTarget
		RFT2 H 2 Bright A_CustomMissile("CurseComet",26,30,Random(0,-6))
		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:
		TNT1 A 0
		RFT2 K 6
		RFT2 L 6 A_Scream
		TNT1 A 0 A_CustomMissile("HellionResRadius",10,0,0,0)
		TNT1 A 0 A_CustomMissile("HellionResRadius",10,0,20,0)
		TNT1 A 0 A_CustomMissile("HellionResRadius",10,0,40,0)
		TNT1 A 0 A_CustomMissile("HellionResRadius",10,0,60,0)
		TNT1 A 0 A_CustomMissile("HellionResRadius",10,0,80,0)
		TNT1 A 0 A_CustomMissile("HellionResRadius",10,0,100,0)
		TNT1 A 0 A_CustomMissile("HellionResRadius",10,0,120,0)
		TNT1 A 0 A_CustomMissile("HellionResRadius",10,0,140,0)
		TNT1 A 0 A_CustomMissile("HellionResRadius",10,0,160,0)
		TNT1 A 0 A_CustomMissile("HellionResRadius",10,0,180,0)
		TNT1 A 0 A_CustomMissile("HellionResRadius",10,0,200,0)
		TNT1 A 0 A_CustomMissile("HellionResRadius",10,0,220,0)
		TNT1 A 0 A_CustomMissile("HellionResRadius",10,0,240,0)
		TNT1 A 0 A_CustomMissile("HellionResRadius",10,0,260,0)
		TNT1 A 0 A_CustomMissile("HellionResRadius",10,0,280,0)
		TNT1 A 0 A_CustomMissile("HellionResRadius",10,0,300,0)
		TNT1 A 0 A_CustomMissile("HellionResRadius",10,0,320,0)
		TNT1 A 0 A_CustomMissile("HellionResRadius",10,0,340,0)
		TNT1 A 0 A_CustomMissile("HellionResRadius",10,0,20,0)
		TNT1 A 0 A_CustomMissile("HellionResRadius",10,0,40,0)
		TNT1 A 0 A_CustomMissile("HellionResRadius",10,0,60,0)
		TNT1 A 0 A_CustomMissile("HellionResRadius",10,0,80,0)
		TNT1 A 0 A_CustomMissile("HellionResRadius",10,0,100,0)
		TNT1 A 0 A_CustomMissile("HellionResRadius",10,0,120,0)
		TNT1 A 0 A_CustomMissile("HellionResRadius",10,0,140,0)
		TNT1 A 0 A_CustomMissile("HellionResRadius",10,0,160,0)
		TNT1 A 0 A_CustomMissile("HellionResRadius",10,0,180,0)
		TNT1 A 0 A_CustomMissile("HellionResRadius",10,0,200,0)
		TNT1 A 0 A_CustomMissile("HellionResRadius",10,0,220,0)
		TNT1 A 0 A_CustomMissile("HellionResRadius",10,0,240,0)
		TNT1 A 0 A_CustomMissile("HellionResRadius",10,0,260,0)
		TNT1 A 0 A_CustomMissile("HellionResRadius",10,0,280,0)
		TNT1 A 0 A_CustomMissile("HellionResRadius",10,0,300,0)
		TNT1 A 0 A_CustomMissile("HellionResRadius",10,0,320,0)
		TNT1 A 0 A_CustomMissile("HellionResRadius",10,0,340,0)
		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),128)
		TNT1 A 0 A_SpawnItemEx("BlueGibbedGenerator",0,0,0,0,0,0,0,128,0)
		RFT2 M 1 A_NoBlocking
		TNT1 A 0 A_SpawnItemEx("BlueGibbedGenerator",0,0,0,0,0,0,0,128,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 (random(25,35))
+SEEKERMISSILE
+DontHurtSpecies
+DontHarmSpecies
Species ""
Species "SatanGuard"
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)
		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),2,random(0,360))
		TNT1 AAA 0 Bright A_CustomMissile("Kaboom23",0,0,random(0,360),2,random(0,360))
		RUBB C 3 Bright A_Explode(random(10,20),128,0,0)
		RUBB D 3 Bright A_SetTranslucent(0.75,1)
		RUBB EFG 3 Bright
		Stop
	XDeath:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_GiveInventory("SlowDownMode",1,AAPTR_TRACER)
		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),2,random(0,360))
		TNT1 AAA 0 Bright A_CustomMissile("Kaboom23",0,0,random(0,360),2,random(0,360))
		RUBB C 3 Bright A_Explode(random(10,20),128,0,0)
		RUBB D 3 Bright A_SetTranslucent(0.75,1)
		RUBB EFG 3 Bright
		Stop
	}
}

ACTOR CurseCometTail : CometTail
{
Alpha 0.85
Scale 0.75
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 : HomingComet
{
Speed 21
Reactiontime 29
Damage (random(20,40))
States
	{
    Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_Jump(135,"Homing")
		Goto Normal
	Normal:
		TNT1 A 0 Bright A_Jump(20,"Homing")
		HPCM AAABBBCCCAAABBBCCC 1 Bright A_SpawnItemEx("BlueCometTail",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		Loop
	Homing:
		HPCM AABB 1 Bright A_SpawnItemEx("BlueCometTail",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		Goto Travel
	Travel:
		HPCM AA 1 Bright A_SpawnItemEx("BlueCometTail",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 Bright A_SeekerMissile(6,9)
		HPCM AB 1 Bright A_SpawnItemEx("BlueCometTail",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 Bright A_SeekerMissile(6,9)
		HPCM BB 1 Bright A_SpawnItemEx("BlueCometTail",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 Bright A_SeekerMissile(6,9)
		HPCM BC 1 Bright A_SpawnItemEx("BlueCometTail",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 Bright A_SeekerMissile(6,9)
		HPCM CC 1 Bright A_SpawnItemEx("BlueCometTail",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 Bright A_SeekerMissile(6,9)
		HPCM DD 1 Bright A_SpawnItemEx("BlueCometTail",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 Bright A_SeekerMissile(6,9)
		HPCM DA 1 Bright A_SpawnItemEx("BlueCometTail",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 Bright A_SeekerMissile(6,9)
		HPCM AA 1 Bright A_SpawnItemEx("BlueCometTail",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 Bright A_SeekerMissile(6,9)
		HPCM BB 1 Bright A_SpawnItemEx("BlueCometTail",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 Bright A_SeekerMissile(6,9)
		TNT1 A 0 Bright A_Countdown
		Loop
	XDeath:
	Death:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_Explode(15,74,0,0)
		TNT1 A 0 Bright A_SetTranslucent(0.75,1)
		TNT1 A 0 Bright A_SpawnItemEx("BlueParticleSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		HPCM D 3 Bright A_SpawnItemEx("BlueCometDeathGlow",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		HPCM E 3 Bright A_SpawnItemEx("BlueCometDeath",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		Stop
	}
}