ACTOR StickySpecilos
{
//Creator: Dr. Sticky & Dr. Blood
//Origin: Complex Doom Invasion
//Sprite: SPC2/SPCI
//Title: "Specilos" 
Health 2400
Radius 30
Height 64
Mass 1000
Speed 8
PainChance 45
Monster
Species "Fatsos"
DamageFactor "HFCyb3r", 0.0
DamageFactor "BeheComet", 0.0
DamageFactor "FatFlamer", 0.0
DamageFactor "Fire", 0.0
DamageFactor "FreezerBurn", 0.0
DropItem "HellfireUltrasphere" 60 1
DropItem "DemonicChalice" 34 1
DropItem "BehemothCannon" 100 1
DropItem "BossLifeEssence" 256 25
DropItem "BossArmorBonusMax" 256 1
SeeSound "Specilos/See"
PainSound "Specilos/Pain "
DeathSound "Specilos/Death"
ActiveSound "Specilos/Idle"
Obituary "%o was blown to smithereens by Specilos's hell forged cannons."
BloodColor "ff 2c 00"
Scale 1.15
PainChance "SoulToxic", 5
PainChance "FiendFire", 5
DamageType "BeheComet"
MaxStepHeight 32
MaxDropOffHeight 32
Tag "\c[z4]Specilos\c-"
+FLOORCLIP
+MISSILEMORE
+MISSILEEVENMORE
+NOTARGET
+QUICKTORETALIATE
+MISSILEMORE
+DONTHURTSPECIES
+DONTHARMSPECIES
+NOICEDEATH
+BOSSDEATH
var int user_delay;
States
{
  Spawn:
    SPC2 CC 8 Bright A_Look
	SPCI CC 8 Bright A_Look
    Loop
  See:
    TNT1 A 0 A_SpawnItem("BeefyStep",0,0,0,0)
    SPC2 AABBCCDD 3 Bright A_Chase
	TNT1 A 0 A_SpawnItem("BeefyStep",0,0,0,0)
	SPC2 EEFF 3 Bright A_Chase
    Loop
  Missile:
    TNT1 A 0 A_Jump(148,"Spikes","Comet","Seekers")
  Normal:
    SPC2 G 0 A_PlaySound("Specilos/Attack")
	SPC2 G 15 Bright A_FaceTarget
	SPC2 H 0 A_CustomMissile("StickySpecilosProj",30,30,Random(0,-6))
	SPC2 H 2 Bright A_CustomMissile("StickySpecilosProj",30,-30,Random(0,6))
	SPC2 H 0 A_CustomMissile("StickySpecilosProj",30,30,Random(-7,-12))
	SPC2 H 2 Bright A_CustomMissile("StickySpecilosProj",30,-30,Random(7,12))
	SPC2 H 0 A_CustomMissile("StickySpecilosProj",30,30,Random(-13,-18))
	SPC2 H 2 Bright A_CustomMissile("StickySpecilosProj",30,-30,Random(13,18))
	SPC2 IG 8 Bright A_FaceTarget
	SPC2 H 0 A_CustomMissile("StickySpecilosProj",30,30,Random(0,-6))
	SPC2 H 2 Bright A_CustomMissile("StickySpecilosProj",30,-30,Random(0,6))
	SPC2 H 0 A_CustomMissile("StickySpecilosProj",30,30,Random(-7,-12))
	SPC2 H 2 Bright A_CustomMissile("StickySpecilosProj",30,-30,Random(7,12))
	SPC2 H 0 A_CustomMissile("StickySpecilosProj",30,30,Random(-13,-18))
	SPC2 H 2 Bright A_CustomMissile("StickySpecilosProj",30,-30,Random(13,18))
	SPC2 IG 8 Bright A_FaceTarget
	SPC2 H 0 A_CustomMissile("StickySpecilosProj",30,30,0)
	SPC2 H 2 Bright A_CustomMissile("StickySpecilosProj",30,-30,0)
	SPC2 H 0 A_CustomMissile("StickySpecilosProj",30,30,Random(0,-6))
	SPC2 H 2 Bright A_CustomMissile("StickySpecilosProj",30,-30,Random(0,6))
	SPC2 H 0 A_CustomMissile("StickySpecilosProj",30,30,Random(-7,-12))
	SPC2 H 2 Bright A_CustomMissile("StickySpecilosProj",30,-30,Random(7,12))
	SPC2 H 0 A_CustomMissile("StickySpecilosProj",30,30,Random(-13,-18))
	SPC2 H 2 Bright A_CustomMissile("StickySpecilosProj",30,-30,Random(13,18))
	SPC2 IG 8 Bright
	TNT1 A 0 A_Jump(99,"Comet")
    Goto See
  Seekers:
	SPC2 G 0 A_PlaySound("Specilos/Attack")
	SPC2 G 15 Bright A_FaceTarget
	SPC2 H 0 A_CustomMissile("BehemothSeekingComet",30,30,Random(0,-6))
	SPC2 H 2 Bright A_CustomMissile("BehemothSeekingComet",30,-30,Random(0,6))
	SPC2 H 0 A_CustomMissile("BehemothSeekingComet",30,30,Random(-7,-12))
	SPC2 H 2 Bright A_CustomMissile("BehemothSeekingComet",30,-30,Random(7,12))
	SPC2 H 0 A_CustomMissile("BehemothSeekingComet",30,30,Random(-13,-18))
	SPC2 H 2 Bright A_CustomMissile("BehemothSeekingComet",30,-30,Random(13,18))
	SPC2 IG 8 Bright A_FaceTarget
	Goto See
  Comet:
	SPC2 G 0 A_PlaySound("Specilos/Attack")
	SPC2 GG 15 Bright A_FaceTarget
	SPC2 H 0 A_CustomMissile("StickySpecilosComet",30,30,Random(3,0))
	SPC2 H 8 Bright A_CustomMissile("StickySpecilosComet",30,-30,Random(0,-3))
	SPC2 IG 8 Bright A_FaceTarget
	TNT1 A 0 A_Jump(99,"Spikes")
	Goto See
  Spikes:
    TNT1 A 0 A_JumpIfTargetInLOS("SpikesGo",90,JLOSF_CLOSENOJUMP|JLOSF_DEADNOJUMP|JLOSF_TARGETLOS,0,800)
	Goto Comet
  SpikesGo:
    TNT1 A 0 A_CheckFlag("Float","Comet",AAPTR_TARGET)
	SPC2 G 0 A_PlaySound("Specilos/Attack")
	SPC2 G 0 A_ChangeFlag("NOPAIN",TRUE)
	SPCO A 5 Bright A_FaceTarget
	SPCO B 0 A_SetUserVar("user_delay",0)
	SPCO A 0 ThrustThingZ(0,56,0,1)
	SPCO A 20 Bright A_FaceTarget
  SpikesCheck:
	SPCO B 0 A_JumpIf(user_delay >= 105,"SpikesLand")
	SPCO B 0 A_SetUserVar("user_delay",user_delay+1)
	SPCO B 0 A_Explode(8,256)
	SPCO B 1 Bright A_CheckFloor("SpikesLand")
	Loop
  SpikesLand:
    SPCO BB  0 A_SpawnItemEx("OrangeParticleSpawner",0,0,0,0,0,0,0,128)
	SPCO BB  0 A_CustomMissile("SmokeFX3",0,0,random(0,360),2,random(0,360))
    SPCO BBBBBB 0 A_CustomMissile("Kaboom3",0,0,random(0,360),2,random(0,360))
	SPCO B 0 A_SetUserVar("user_delay",0)
	SPCO B 0 A_ChangeFlag("NOPAIN",FALSE)
	SPCO B 0 Radius_Quake(40,80,0,40,0)
	SPCO B 8 Bright A_CustomMissile("StickySpecilosSpikeSpawner",0,0,0)
	Goto See
  Pain:
	SPC2 J 4 Bright A_Pain
	TNT1 A 0 A_Jump(120,"Missile")
	Goto See
  Death:
    SPC2 K 6 Bright
	TNT1 A 0 A_SpawnItemEx("OrangeGibbedGenerator",0,0,0,0,0,0,0,128,0)
    SPC2 L 6 Bright A_Scream
    SPC2 M 6 Bright A_NoBlocking
	TNT1 A 0 A_BossDeath
	TNT1 A 0 A_SpawnItemEx("OrangeGibbedGenerator",0,0,0,0,0,0,0,128,0)
	TNT1 AA 0 //A_SpawnItemEx("BonusHellFireBaronFireFX",random(-32,32),random(-32,32),random(0,32)) Does not exist
    SPC2 NOPQRS 6 Bright
    SPC2 T -1
    Stop
  Raise:
    TNT1 A 0
	TNT1 A 0 A_SpawnItemEx("VileHealEffect",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
    SPC2 R 5 Bright
    SPC2 QPONMLK 5 Bright
    Goto See
  }
}

ACTOR LavaBallTrail2
{
Radius 0
Height 1
Speed 0
PROJECTILE
RENDERSTYLE ADD
ALPHA 0.85
States
{
  Spawn:
    TNT1 A 0
	TNT1 A 3
	CBPF ABCDE 3 Bright
	Stop
  Toaster:
    TNT1 A 0
    Stop
   }
}

ACTOR StickySpecilosProj : LavaBall
{
Radius 8
Height 8
Speed 30
Damage 8
ALPHA 0.95
DamageType "BeheComet"
+DONTHARMSPECIES
States
{
   Spawn:
      LBBL A 2 Bright A_CStaffMissileSlither
	  TNT1 A 0 A_SpawnItemEx("LavaBallTrail",0,0,0)
      LBBL A 2 Bright A_SpawnItem("LavaBallTrail2",0,0)
	  LBBL B 2 Bright A_CStaffMissileSlither
	  TNT1 A 0 A_SpawnItemEx("LavaBallTrail",0,0,0)
      LBBL B 2 Bright A_SpawnItem("LavaBallTrail2",0,0)
      Loop
   Death:
      TNT1 AA 0 A_SpawnItemEx("OrangeParticleSpawner", 0, 0, 0, 0, 0, 0, 0, 128)
	  TNT1 AAA 0 A_CustomMissile("Kaboom3", 0, 0, random(0,360), 2, random(0,360))
	  TNT1 AAA 0 A_CustomMissile("SmokeFX2", 0, 0, random(0,360), 2, random(0,360))
      LBBL C 5 Bright A_Explode(32,96,0)
      LBBL DE 5 Bright
      stop
   }
}

ACTOR StickySpecilosComet : Comet
{
Scale 1.35
Damage (22)
DamageType "BeheComet"
+HEXENBOUNCE
+USEBOUNCESTATE
+SKYEXPLODE
+CANBOUNCEWATER
+DONTHARMSPECIES
BounceCount 4
BounceFactor 1.15
WallBounceFactor 1.15
Reactiontime 45
Speed 32
Decal Scorch
States
{
   Spawn:
	GCMT AAAABBBBCCCC 1 Bright A_SpawnItemEx("SpecilosCometTail",0,0,0,0,0,0,0,128)
    TNT1 A 0 A_Countdown
	Loop
   Bounce:
	TNT1 A 0 A_PlaySound("weapons/rocklx")
	TNT1 A 0 A_Explode(48,192,0)
	TNT1 A 0 A_SpawnItemEx("OrangeParticleSpawner", 0, 0, 0, 0, 0, 0, 0, 128)
	TNT1 A 0 A_SpawnItemEx("CometDeathGlow",0,0,0,0,0,0,0,128,0)
	TNT1 A 0 A_SpawnItemEx("CometDeath",0,0,0,0,0,0,0,128,0)
	TNT1 A 0 A_SpawnItemEx("OrangeParticleSpawner",-10,0,0,0,0,0,0,128)
	TNT1 A 0 A_SpawnItemEx("OrangeParticleSpawner",10,0,0,0,0,0,0,128)
	TNT1 A 0 A_SpawnItemEx("OrangeParticleSpawner",0,-10,0,0,0,0,0,128)
	TNT1 A 0 A_SpawnItemEx("OrangeParticleSpawner",0,10,0,0,0,0,0,128)
    TNT1 A 0 A_SpawnItemEx("CometDeathGlow",-10,0,0,0,0,0,0,128,0)
	TNT1 A 0 A_SpawnItemEx("CometDeathGlow",10,0,0,0,0,0,0,128,0)
	TNT1 A 0 A_SpawnItemEx("CometDeathGlow",0,-10,0,0,0,0,0,128,0)
    TNT1 A 0 A_SpawnItemEx("CometDeathGlow",0,10,0,0,0,0,0,128,0)
    TNT1 A 0 A_SpawnItemEx("CometDeath",-10,0,0,0,0,0,0,128,0)
	TNT1 A 0 A_SpawnItemEx("CometDeath",10,0,0,0,0,0,0,128,0)
	TNT1 A 0 A_SpawnItemEx("CometDeath",0,-10,0,0,0,0,0,128,0)
	TNT1 A 0 A_SpawnItemEx("CometDeath",0,10,0,0,0,0,0,128,0)
	GCMT A 1 Bright
	Goto Spawn
   Death:
	TNT1 A 0
	TNT1 A 0 A_Explode(128,128)
	TNT1 A 0 A_SetTranslucent(0.75,1)
	TNT1 A 0 A_SpawnItemEx("OrangeParticleSpawner", 0, 0, 0, 0, 0, 0, 0, 128)
	COMT D 3 Bright A_SpawnItemEx("CometDeathGlow",0,0,0,0,0,0,0,128,0)
	COMT E 3 Bright A_SpawnItemEx("CometDeath",0,0,0,0,0,0,0,128,0)
	Stop
}
}

ACTOR StickySpecilosSpikeSpawner : DukeFireSpawner
{
Speed 25
FastSpeed 30
Damage 0
+RIPPER
+BLOODLESSIMPACT
+DONTSPLASH
+DONTHARMSPECIES
DamageType "BeheComet"
Species "Fatsos"
Obituary "%o was blown to smithereens by Specilos's hell forged cannons."
MissileType "StickySpecilosSpike"
MissileHeight 0
Reactiontime 100
States
{
  Spawn:
    TNT1 A 0
    TNT1 A 0 A_CountDown
	TNT1 A 7 Bright A_MissileAttack
    Loop
  Death:
    TNT1 A 5
    Stop
    }
}

Actor StickySpecilosSpike
{
Species "Fatsos"
DamageType "BeheComet"
Obituary "%o was blown to smithereens by Specilos's hell forged cannons."
+DONTSPLASH
+DONTHARMSPECIES
States
{
  Spawn:
    TNT1 A 0
	TNT1 A 0 A_Explode(64,128,0)
	TNT1 A 0 A_PlaySound("Specilos/Spike")
	TNT1 A 0 A_SpawnItemEx("OrangeParticleSpawner", 0, 0, 0, 0, 0, 0, 0, 128)
    TNT1 A 0 A_SpawnItemEx("CometDeathGlow",0,0,0,0,0,0,0,128,0)
    TNT1 A 0 A_SpawnItemEx("CometDeath",0,0,0,0,0,0,0,128,0)
	TNT1 A 0 A_SpawnItemEx("HFLava",0,0,0,0,0,0,0,128,0)
	TNT1 AAAA 0 A_SpawnItemEx("Debris",0,0,0,Random(4,-4),Random(4,-4),Random(4,8),0,128)
	TNT1 A 0 Radius_Quake(2,24,0,15,0)
	MSPK ABCDEFGH 3 Bright
	MSPK II 35 Bright
	TNT1 A 0 A_PlaySound("Specilos/Boom")
	TNT1 A 0 A_Explode(156,156,0)
	TNT1 A 0 A_PlaySound("Specilos/Spike")
	TNT1 A 0 A_SpawnItemEx("OrangeParticleSpawner", 0, 0, 0, 0, 0, 0, 0, 128)
    TNT1 A 0 A_SpawnItemEx("CometDeathGlow",0,0,0,0,0,0,0,128,0)
    TNT1 A 0 A_SpawnItemEx("CometDeath",0,0,0,0,0,0,0,128,0)
	TNT1 A 0 A_SpawnItemEx("OrangeParticleSpawner", 0, 0, 32, 0, 0, 0, 0, 128)
    TNT1 A 0 A_SpawnItemEx("CometDeathGlow",0,0,32,0,0,0,0,128,0)
    TNT1 A 0 A_SpawnItemEx("CometDeath",0,0,0,32,0,0,0,128,0)
	TNT1 A 0 A_SpawnItemEx("OrangeParticleSpawner", 0, 0, 64, 0, 0, 0, 0, 128)
    TNT1 A 0 A_SpawnItemEx("CometDeathGlow",0,0,64,0,0,0,0,128,0)
    TNT1 A 0 A_SpawnItemEx("CometDeath",0,0,64,0,0,0,0,128,0)
	TNT1 A 0 A_SpawnItemEx("HFLava",0,0,0,0,0,0,0,128,0)
	TNT1 AAAA 0 A_SpawnItemEx("Debris",0,0,0,Random(4,-4),Random(4,-4),Random(4,8),0,128)
	TNT1 A 0 Radius_Quake(2,24,0,15,0)
	MSPK HGFEDCBA 1 Bright
	Stop
   }
}