ACTOR PainLord : BaronOfHell~ 17556
{ 
//$Category Monsters/DUST
//$Sprite PILDA1C1
//$Title "Pain Lord"
  Health 2000
  PainChance 25
  Bloodcolor Blue
  Scale 1.2
  Meleedamage 8
  DropItem "BossLifeEssence" 200
  DropItem "BossArmorBonusMax" 200
  DropItem "PainLordSoul" 200
  DropItem "ExtraArmor" 80
  DropItem "BigDustMana" 128 100
  DropItem "DustMana" 256 30
  +FLOORCLIP
  +QUICKTORETALIATE
  +AVOIDMELEE
  Obituary "%o was cast with eternal suffering by the Pain Lord."
  HitObituary "%o got too close to the Pain Lord."
  SeeSound "Painlord/Sight" 
  ActiveSound "Painlord/Active"
  PainSound "Painlord/Pain"
  DeathSound "Painlord/Death"
  States 
  { 
  Spawn: 
    PILD A 10 A_Look 
    Loop 
  See: 
    TNT1 A 0 A_SpawnItem("HoofStep",0,0,0,0)
	TNT1 A 0 A_SpawnItemEx("PainlordWalkFire",0,0,0,0,0,0,0,128)
    PILD AA 3 Bright A_Chase
	TNT1 A 0 A_SpawnItemEx("PainlordWalkFire",0,0,0,0,0,0,0,128)
    PILD BB 3 Bright A_Chase
    TNT1 A 0 A_SpawnItem("HoofStep",0,0,0,0)
	TNT1 A 0 A_SpawnItemEx("PainlordWalkFire",0,0,0,0,0,0,0,128)
    PILD CC 3 Bright A_Chase
	TNT1 A 0 A_SpawnItemEx("PainlordWalkFire",0,0,0,0,0,0,0,128)
	PILD DD 3 Bright A_Chase
    Loop
  Missile:  
    TNT1 A 0 A_Jump(100,"DarkMatter","Comets")
    TNT1 A 0 A_Jump(40,"DarkMatterBarrage")
  Normal:
    PILD EF 6 Bright A_FaceTarget 
    PILD G 0 A_Custommissile("PainlordBall", 32, 0, 0) 
	PILD G 0 A_Custommissile("PainlordBall", 32, 0, 6)
	PILD G 5 Bright A_Custommissile("PainlordBall", 32, 0, -6)
    PILD IJ 6 Bright A_FaceTarget
    PILD K 0 A_Custommissile("PainlordBall", 32, 0, 0)
	PILD K 0 A_Custommissile("PainlordBall", 32, 0, 6)
	PILD K 5 Bright A_Custommissile("PainlordBall", 32, 0, -6)
	TNT1 A 0 A_Jump(160,"DarkMatter","See")
    PILD MN 8 Bright A_FaceTarget 	
	PILD O 0 Bright A_Custommissile("PainlordBall", 32, 0, 5)
	PILD O 0 Bright A_Custommissile("PainlordBall", 32, 0, -5)
	PILD O 0 Bright A_Custommissile("PainlordBall", 32, 0, 10)
	PILD O 0 Bright A_Custommissile("PainlordBall", 32, 0, -10)
    PILD O 7 Bright A_Custommissile("PainlordBall", 32, 0, 0)
    Goto See
  Comets:
    PILD EF 6 Bright A_FaceTarget 
	PILD G 0 Bright A_Custommissile("PainLordComet", 32, 0, random(-6,6))
	PILD G 5 Bright A_Custommissile("PainLordComet", 32, 0, 0)
    PILD IJ 6 Bright A_FaceTarget
	PILD G 0 Bright A_Custommissile("PainLordComet", 32, 0, random(-6,6))
	PILD K 5 Bright A_Custommissile("PainLordComet", 32, 0, 0)
	TNT1 A 0 A_Jump(128,"DarkMatter")
	TNT1 A 0 A_Jump(64,"See")
    PILD MN 8 Bright A_FaceTarget 	
	PILD O 0 Bright A_Custommissile("PainLordComet", 32, 0, 4)
	PILD O 0 Bright A_Custommissile("PainLordComet", 32, 0, -4)
	PILD O 0 Bright A_Custommissile("PainLordComet", 32, 0, 12)
    PILD O 7 Bright A_Custommissile("PainLordComet", 32, 0, -12)
    Goto See
  DarkMatter:
    PILD MN 8 Bright A_FaceTarget 	
    PILD O 7 Bright A_Custommissile("PainLordDarkMatter", 32, 0, 0)
	TNT1 A 0 A_Jump(64,"See")
    PILD NMN 8 Bright A_FaceTarget 	
    PILD O 7 Bright A_Custommissile("PainLordDarkMatter", 32, 0, 0)	
	TNT1 A 0 A_Jump(64,"Normal","DarkMatterBarrage")	
	Goto See
  DarkMatterBarrage:
	PILD M 1 Bright A_Playsound("Painlord/Attack",4)
	PILD MMMMMMMMMMMMMMMMMMMMMMMMMMMMMM 1 Bright A_SpawnItem("PainlordSmokeSpawner")
    PILD MN 12 Bright A_FaceTarget 	
    PILD O 3 Bright A_Custommissile("PainLordDarkMatter", 32, 0, 0)
    PILD O 0 A_Custommissile("PainLordDarkMatter", 32, 0, -8)
    PILD O 3 Bright A_Custommissile("PainLordDarkMatter", 32, 0, 8)
	TNT1 A 0 A_Jump(128,"See")	
	Goto See
  Melee:
    PILD EF 5 Bright A_FaceTarget 
    PILD G 4 Bright A_MeleeAttack 
    PILD FE 3 Bright A_FaceTarget 		
    Goto See
  Pain: 
    PILD Q 10 Bright A_Pain 
    Goto See 
  Death: 
  XDeath:
	PILD Q 0 A_SetTranslucent(1.0)
    PILD Q 0 A_Scream
	TNT1 A 0 A_FaceTarget
	TNT1 A 0 Radius_Quake(3,50,2,32,8)
    PILD QQQQQQQQQQ 2 Bright A_SpawnItemEx("ShadowVaporSpawnerDust",0,0,32,0,0,0,0,32)
    PILD QQQQQQQQQQ 3 Bright A_SpawnItemEx("PainLordDeathExplosionSpawner",0,0,32,0,0,0,0,32)
	TNT1 AAAA 0 A_SpawnItemEx("Debris",32,0,Random(20,40),Random(4,-4),Random(4,-4),Random(4,8),0,128)
	TNT1 AAA 0 A_CustomMissile("BlueKaboom", 32, 0, random(0,360), 2, random(0,360))	
	TNT1 AAA 0 A_CustomMissile("SmokeFX2", 32, 0, random(0,360), 2, random(0,360))
	TNT1 A 0 A_NoBlocking
    TNT1 A 0 A_Explode(300,200,1)
    PILD RR 1 A_SpawnItemEx("ShadowVaporSpawnerDust",0,0,32,0,0,0,0,32)
    PILD RR 1 A_SpawnItemEx("PainLordDeathExplosionSpawner",0,0,32,0,0,0,0,32)
    PILD SS 1 A_SpawnItemEx("ShadowVaporSpawnerDust",0,0,32,0,0,0,0,32)
    PILD SS 1 A_SpawnItemEx("PainLordDeathExplosionSpawner",0,0,32,0,0,0,0,32)
    PILD TT 1 A_SpawnItemEx("ShadowVaporSpawnerDust",0,0,32,0,0,0,0,32)
    PILD TT 1 A_SpawnItemEx("PainLordDeathExplosionSpawner",0,0,32,0,0,0,0,32)
	PILD UV 8
	PILD WXY 6
	TNT1 A 0 A_BossDeath
	PILD Z -1
	Stop
  } 
}

ACTOR PainLordSmokeSpawner : RedParticleSpawner
{
  States
  {
  Spawn:
    TNT1 A 0
	TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
    TNT1 A 0 A_SpawnItemEx("PainlordBallTrail",random(-30,30),random(-30,30),random(5,45),0,0,1)
    TNT1 A 1
    Stop
  }
}

Actor PainlordWalkFire : DukeWalkFire
{
  States
  {
  Spawn:
    TNT1 A 0
    TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
    TNT1 A 10
    FRBB ABC 3 Bright
    TNT1 A 0 A_Jump(191,3)
    TNT1 A 0 A_CustomMissile("PainlordWalkFire", 0, 24, 0)
    TNT1 A 0 A_CustomMissile("PainlordWalkFire", 0, -24, 0)
    FRBB DEFGHIJKLMNO 3 Bright
    Stop
  }
}

Actor PainlordBall
{
  Projectile
  Radius 8
  Height 8
  Mass 20
  Speed 25
  Damage 10
  RenderStyle Add
  Alpha 0.90
  Species "Nobles"
  DamageType "NobleComet"
  SeeSound "monsters/newfireshoot"
  DeathSound "monsters/newfireexplode"
  States
  {
  Spawn:
    VLBB AABB 1 BRIGHT A_SpawnItemEx ("PainlordBallTrail", 0, 0, 0, random(0, -2), random(-1, 1), random(-1, 1), 0, 0, 0)
    Loop
  Death:
	ICE9 A 0 BRIGHT A_CustomMissile("PainlordBallSplitFire",0,0,random(0,359),CMF_TRACKOWNER,random(0,60))
    ICE9 A 0 BRIGHT A_CustomMissile("PainlordBallSplitFire",0,0,random(0,359),CMF_TRACKOWNER,random(0,60))
    ICE9 A 0 BRIGHT A_CustomMissile("PainlordBallSplitFire",0,0,random(0,359),CMF_TRACKOWNER,random(0,60))
    ICE9 A 0 BRIGHT A_CustomMissile("PainlordBallSplitFire",0,0,random(0,359),CMF_TRACKOWNER,random(0,60))
    ICE9 A 0 BRIGHT A_CustomMissile("PainlordBallSplitFire",0,0,random(0,359),CMF_TRACKOWNER,random(0,60))
    ICE9 A 0 BRIGHT A_CustomMissile("PainlordBallSplitFire",0,0,random(0,359),CMF_TRACKOWNER,random(0,60))
	ICE9 A 2 BRIGHT A_CustomMissile("PainlordBallSplitFire",0,0,random(0,359),CMF_TRACKOWNER,random(0,60))
    ICE9 B 2 BRIGHT
    ICE9 C 2 BRIGHT
    ICE9 DEF 4 BRIGHT
    Stop
  }
}

ACTOR PainlordBallSplitFire
{
  Projectile
  Radius 8
  Height 6
  Speed 25
  Damage 5
  Renderstyle Add
  Alpha 0.90
  Gravity 0.825
  Species "Nobles"
  DamageType "NobleComet"
  +DROPOFF
  -NOGRAVITY
  States
  {
  Spawn:
    VBSB AAAABBBB 1 BRIGHT A_SpawnItemEx ("PainlordBallTrail", 0, 0, 0, random(0, -2), random(-1, 1), random(-1, 1), 0, 0, 0)
    Loop
  Death:
    VLBE CBABCDE 4 BRIGHT
    Stop
  }
}

ACTOR PainlordBallTrail : ImpBallTrail
{
  RenderStyle Add
  Alpha 1
  Scale 0.25
  States
  {
  Spawn:
    TNT1 A 0
    TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
    BMKE A 1 Bright A_ChangeVelocity(0,0,0.7)
	TNT1 A 0 A_FadeOut
	BMKE B 1 Bright A_ChangeVelocity(0,0,0.7)
	TNT1 A 0 A_FadeOut
	BMKE C 1 Bright A_ChangeVelocity(0,0,0.7)
	TNT1 A 0 A_FadeOut
	BMKE D 1 Bright A_ChangeVelocity(0,0,0.7)
	TNT1 A 0 A_FadeOut
	BMKE E 1 Bright A_ChangeVelocity(0,0,0.7)
	TNT1 A 0 A_FadeOut
	BMKE F 1 Bright A_ChangeVelocity(0,0,0.7)
	TNT1 A 0 A_FadeOut
	BMKE G 1 Bright A_ChangeVelocity(0,0,0.7)
	TNT1 A 0 A_FadeOut
	BMKE H 1 Bright A_ChangeVelocity(0,0,0.7)
	TNT1 A 0 A_FadeOut
	BMKE I 1 Bright A_ChangeVelocity(0,0,0.7)
	TNT1 A 0 A_FadeOut
	BMKE J 1 Bright A_ChangeVelocity(0,0,0.7)
	TNT1 A 0 A_FadeOut
	BMKE K 1 Bright A_ChangeVelocity(0,0,0.7)
	TNT1 A 0 A_FadeOut
	BMKE L 1 Bright A_ChangeVelocity(0,0,0.7)
	TNT1 A 0 A_FadeOut
    Stop
  }
}


Actor PainLordComet : Comet
{
  Damage 5
  DamageType "NobleComet"
  Species "Nobles"
  +DONTHURTSPECIES
  Speed 25
  Decal Scorch
  States
  {
  Spawn:
	LNCM AAAABBBBCCCC 1 Bright A_SpawnItemEx("PLCometTail",0,0,0,0,0,0,0,128)
	Loop
  Death:
	TNT1 A 0 Bright A_Explode(70,112)
	TNT1 A 0 A_SpawnItemEx("BlueParticleSpawner", 0, 0, 0, 0, 0, 0, 0, 128)
	LNCM DE 3 Bright
	TNT1 A 0 A_SpawnItemEx("PLCometDeath",0,0,0,0,0,0,0,128,0)
	Stop
  }
}

ACTOR PLCometDeath : CometDeath
{
  States
  {
	Spawn:
	TNT1 A 0
	TNT1 AAAA 0 A_SpawnItemEx("Debris",0,0,Random(20,40),Random(4,-4),Random(4,-4),Random(4,8),0,128)
	TNT1 AAA 0 A_CustomMissile("BlueKaboom", 0, 0, random(0,360), 2, random(0,360))	
	TNT1 AAA 0 A_CustomMissile("SmokeFX2", 0, 0, random(0,360), 2, random(0,360))
	LNCM JJJKKKLLMMNN 1 Bright A_FadeOut(0.065)
	Stop
  }
}

ACTOR PLCometTail : CometTail
{
  Scale 1.15
  +CLIENTSIDEONLY
  States
  {
  Spawn:
    TNT1 A 0
    TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
	TNT1 A 2 Bright
	BLUR DEFGHI 2 Bright
	Stop
  Toaster:
    TNT1 A 0
	Stop	
  }
}


ACTOR PainLordDarkMatter : Comet
{
  Speed 32
  Damage 30
  Scale 0.5
  +EXTREMEDEATH
  +FORCERADIUSDMG
  RenderStyle Translucent
  Alpha 0.625
  Damagetype "NobleComet"
  States
  {
  Spawn:
	DMGB AA 0 Bright A_SpawnItemEx("DarkMatterSpark",0,0,0,random(-1,1),random(-1,1),random(-1,1),0,32,0)
	DMGB A 1 Bright A_SpawnItemEx("DarkMatterSpark",0,0,0,random(-1,1),random(-1,1),random(-1,1),0,32,0)
	DMGB AA 0 Bright A_SpawnItemEx("DarkMatterSpark",0,0,0,random(-1,1),random(-1,1),random(-1,1),0,32,0)
	DMGB A 1 Bright A_SpawnItemEx("DarkMatterSpark",0,0,0,random(-1,1),random(-1,1),random(-1,1),0,32,0)
	DMGB AA 0 Bright A_SpawnItemEx("DarkMatterSpark",0,0,0,random(-1,1),random(-1,1),random(-1,1),0,32,0)
	DMGB A 1 Bright A_SpawnItemEx("DarkMatterSpark",0,0,0,random(-1,1),random(-1,1),random(-1,1),0,32,0)
	DMGB BB 0 Bright A_SpawnItemEx("DarkMatterSpark",0,0,0,random(-1,1),random(-1,1),random(-1,1),0,32,0)
	DMGB B 1 Bright A_SpawnItemEx("DarkMatterSpark",0,0,0,random(-1,1),random(-1,1),random(-1,1),0,32,0)
	DMGB BB 0 Bright A_SpawnItemEx("DarkMatterSpark",0,0,0,random(-1,1),random(-1,1),random(-1,1),0,32,0)
	DMGB B 1 Bright A_SpawnItemEx("DarkMatterSpark",0,0,0,random(-1,1),random(-1,1),random(-1,1),0,32,0)
	DMGB BB 0 Bright A_SpawnItemEx("DarkMatterSpark",0,0,0,random(-1,1),random(-1,1),random(-1,1),0,32,0)
	DMGB B 1 Bright A_SpawnItemEx("DarkMatterSpark",0,0,0,random(-1,1),random(-1,1),random(-1,1),0,32,0)
	DMGB CC 0 Bright A_SpawnItemEx("DarkMatterSpark",0,0,0,random(-1,1),random(-1,1),random(-1,1),0,32,0)
	DMGB C 1 Bright A_SpawnItemEx("DarkMatterSpark",0,0,0,random(-1,1),random(-1,1),random(-1,1),0,32,0)
	DMGB CC 0 Bright A_SpawnItemEx("DarkMatterSpark",0,0,0,random(-1,1),random(-1,1),random(-1,1),0,32,0)
	DMGB C 1 Bright A_SpawnItemEx("DarkMatterSpark",0,0,0,random(-1,1),random(-1,1),random(-1,1),0,32,0)
	DMGB CC 0 Bright A_SpawnItemEx("DarkMatterSpark",0,0,0,random(-1,1),random(-1,1),random(-1,1),0,32,0)
	DMGB C 1 Bright A_SpawnItemEx("DarkMatterSpark",0,0,0,random(-1,1),random(-1,1),random(-1,1),0,32,0)
	Loop
  Death:
	TNT1 A 0
	TNT1 A 0 A_Playsound("PainLord/Explode1",7)
	TNT1 AAAA 0 A_SpawnItemEx("Debris",0,0,Random(20,40),Random(4,-4),Random(4,-4),Random(4,8),0,128)
	TNT1 AAA 0 A_CustomMissile("BlueKaboom", 0, 0, random(0,360), 2, random(0,360))	
	TNT1 AAA 0 A_CustomMissile("SmokeFX2", 0, 0, random(0,360), 2, random(0,360))
	TNT1 A 0 A_SpawnItemEx("PainLordDeathExplosionSpawner",0,0,0,0,0,0,0,32)
	TNT1 A 0 A_SpawnItemEx("ShadowVaporSpawnerDust",0,0,0,0,0,0,0,32)
	TNT1 A 0 A_Explode(130,200,1)
	TNT1 A 15 Radius_Quake(5,15,0,20,0)
	Stop
  }
}

ACTOR DarkMatterSpark
{
  RenderStyle Translucent
  Scale 0.75
  Alpha 0.5
  +NOGRAVITY
  States
  {
  Spawn:
    TNT1 A 0
    TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
	VPXS ABCDEFGHIJKL 1 Bright A_FadeOut(0.04)
	Loop
  Toaster:
    TNT1 A 0
	Stop	
  }
}

ACTOR ShadowVaporSpawnerDust
{
  +NOGRAVITY
  Renderstyle None
  States
  {
  Spawn:
	TNT1 A 0
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("ShadowVaporDust",0,0,0,random(4,-4),random(4,-4),random(4,-4),random(0,359),32)
	PLAY A 3
	PLAY BCDEF 5
	Stop
  }
}

ACTOR ShadowVaporDust
{
  Projectile
  DamageType "NobleComet"
  Species "Nobles"
  Damage (1)
  Speed 0
  Radius 2
  Height 2
  Renderstyle Add
  Scale 0.65
  Alpha 0.7
  +DONTHARMSPECIES
  +THRUSPECIES
  +RIPPER
  +BLOODLESSIMPACT
  States
  {
  Spawn:
	VPXS MNOPQRSTUVWXYZ 1 Bright A_FadeOut(0.018)
	VPXS ABC 2 A_FadeOut(0.018)
	Stop
  }
}

ACTOR PainLordDeathExplosionSpawner
{
  +NOGRAVITY
  Renderstyle None
  States
  {
  Spawn:
	TNT1 A 0
	TNT1 A 0 Bright A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 A_SpawnItemEx("PainLordVapor",0,0,0,random(4,-4),random(4,-4),random(4,-4),random(0,359),32)
	TNT1 A 1
	Stop
  Toaster:
	TNT1 A 1
	Stop
  }
}

ACTOR PainLordVapor
{
  Radius 2
  Height 2
  Renderstyle Add
  Scale 0.65
  Alpha 0.9
  +NOGRAVITY
  States
  {
  Spawn:
	TNT1 A 0
	TNT1 A 0 A_Playsound("PainLord/Explode2",7)
	ICE9 ABCDEF 3
	Stop
  }
}