Actor GhoulIodsa
{ //Scripted (Samara and Halloween mode will not spawn this ghoul if replaced)
//Creator: High Councilor
//Origin: Nexus Infinity, ???
//Sprite: IODS
//Title: "Iodsa"
  Obituary "Iodsa managed to grab %o's heart."
  Monster
  speed 12
  health 2000
  mass 100
  Scale 0.5
  height 68
  radius 21
  DropItem "DemonAmmoBox", 256 200
  DropItem "BossLifeEssence" 256 25
  DropItem "BossArmorBonusMax" 256 1
  DropItem "SkullOfPower" 32
  DamageFactor 0.75
  DamageFactor "NobleComet", 0.0
  DamageFactor "CadaverRocket", 0.0
  DamageFactor "Vilesfire", 0.0
  DamageFactor "Hell", 0.0
  DamageFactor "Legendary", 0.25
  DamageFactor "PlayerLegendary", 0.25
  DamageFactor "PlayerNemesisPlasma", 0.5
  DamageFactor "BFGSplash", 0.25
  DamageFactor "PDTBFG", 0.2
  DamageFactor "PDTBFGTracer", 0.2
  DamageFactor "MechStep", 0.2
  DamageFactor "Iodsa", 0.0
  DamageFactor "IodsaBomb", 0.0
  RadiusDamageFactor 0.25
  +DROPOFF
  +DONTBLAST
  +LOOKALLAROUND
  +DONTMORPH
  +NOICEDEATH
  +BOSS
  +FULLVOLDEATH
  +FLOORCLIP
  Species "Viles"
  bloodcolor "Green"
  SeeSound "IodsaTaunt"
  ActiveSound "IodsaActive"
  PainSound "IodsaPain"
  DeathSound "IodsaDeath"
  Tag "\c[l2]Iodsa\c-"
  States
	{
  Spawn:
	IODS A 0 A_SetTranslucent(0.5,0)
	IODS AA 3 A_look
	IODS A 0 A_SetTranslucent(0.6,0)
	IODS AA 3 A_look
	IODS A 0 A_SetTranslucent(0.7,0)
	IODS AA 3 A_look
	IODS A 0 A_SetTranslucent(0.8,0)
	IODS AA 3 A_look
	IODS A 0 A_SetTranslucent(0.7,0)
	IODS AA 3 A_look
	IODS A 0 A_SetTranslucent(0.6,0)
	IODS AA 3 A_look
	Loop
  See:
	IODS A 0 A_SetTranslucent(0.8,0)
	IODS AAAAAA 1 A_Chase
	IODS B 0 A_SetTranslucent(0.7,0)
	IODS BBBBBB 1 A_Chase
 	IODS A 0 A_SetTranslucent(0.6,0)
	IODS AAAAAA 1 A_Chase
	IODS B 0 A_SetTranslucent(0.5,0)
	IODS BBBBBB 1 A_Chase
 	IODS A 0 A_SetTranslucent(0.6,0)
	IODS AAAAAA 1 A_Chase
	IODS B 0 A_SetTranslucent(0.7,0)
	IODS BBBBBB 1 A_Chase
    Loop
  Melee:
	IODS A 0 A_SetTranslucent(1.0,0)
	IODS A 0 A_PlaySound("IODSAACT")
	IODS ABCBA 1 A_CustomMeleeAttack(5,"none","none")
	goto see
  Missile:
    TNT1 A 0 A_Jump(96,"SkullsBarrage","SkullBomb")
    TNT1 A 0 A_Jump(128,"Spiders")
  Normal:
	IODS A 0 A_SetTranslucent(1.0,0)
	IODS A 0 A_Facetarget
	IODS C 5 A_CustomMissile("IodsaLittleSkull",32,0,0,0)
	IODS A 5 A_CustomMissile("IodsaLittleSkull",32,0,0,0)
	IODS C 5 A_CustomMissile("IodsaLittleSkull",32,0,0,0)
	IODS A 5 A_CustomMissile("IodsaLittleSkull",32,0,0,0)
	IODS C 5 A_CustomMissile("IodsaLittleSkull",32,0,0,0)
	Goto See
  Spiders:
	IODS A 0 A_SetTranslucent(1.0,0)
	IODS CAC 5 A_Facetarget
	IODS AAAAA 1 A_CustomMissile("IodsaSpider",0,0,random(-10,10),0)
	IODS C 5
	Goto See
  SkullsBarrage:
	IODS A 0 A_SetTranslucent(1.0,0)
	IODS A 0 A_PlaySoundEx("IodsaSkullDone","Body")
    IODS C 6 A_Facetarget
	IODS A 0 A_CustomMissile("IodsaWeakLittleSkull",32,0,0,0)
	IODS A 2 A_CustomMissile("IodsaWeakLittleSkull",32,0,180)
	IODS A 0 A_CustomMissile("IodsaWeakLittleSkull",32,0,0,22)
	IODS A 2 A_CustomMissile("IodsaWeakLittleSkull",32,0,-135)
	IODS A 0 A_CustomMissile("IodsaWeakLittleSkull",32,0,0,45)
	IODS A 2 A_CustomMissile("IodsaWeakLittleSkull",32,0,-112)

	IODS C 0 A_CustomMissile("IodsaWeakLittleSkull",32,0,0,90)
	IODS C 2 A_CustomMissile("IodsaWeakLittleSkull",32,0,-90)
	IODS C 0 A_CustomMissile("IodsaWeakLittleSkull",32,0,0,112)
	IODS C 2 A_CustomMissile("IodsaWeakLittleSkull",32,0,-45)
	IODS C 0 A_CustomMissile("IodsaWeakLittleSkull",32,0,0,135)
	IODS C 2 A_CustomMissile("IodsaWeakLittleSkull",32,0,-22)

	IODS A 0 A_CustomMissile("IodsaWeakLittleSkull",32,0,0,45)
	IODS A 2 A_CustomMissile("IodsaWeakLittleSkull",32,0,-112)
	IODS A 0 A_CustomMissile("IodsaWeakLittleSkull",32,0,0,0)
	IODS A 2 A_CustomMissile("IodsaWeakLittleSkull",32,0,180)
	IODS A 0 A_CustomMissile("IodsaWeakLittleSkull",32,0,0,22)
	IODS A 2 A_CustomMissile("IodsaWeakLittleSkull",32,0,-135)

	IODS C 0 A_CustomMissile("IodsaWeakLittleSkull",32,0,0,-112)
	IODS C 2 A_CustomMissile("IodsaWeakLittleSkull",32,0,45)
	IODS C 0 A_CustomMissile("IodsaWeakLittleSkull",32,0,0,90)
	IODS C 2 A_CustomMissile("IodsaWeakLittleSkull",32,0,-90)
	IODS C 0 A_CustomMissile("IodsaWeakLittleSkull",32,0,0,-45)
	IODS C 2 A_CustomMissile("IodsaWeakLittleSkull",32,0,112)

	IODS A 0 A_CustomMissile("IodsaWeakLittleSkull",32,0,0,135)
	IODS A 2 A_CustomMissile("IodsaWeakLittleSkull",32,0,-22)
	IODS ACACA 5
	Goto See
  SkullBomb:
	CLAW A 0 A_PlaySoundEx("IodsaSkullPrepare","Body")
	IODS A 0 A_Facetarget
	IODS AAA 2 A_SpawnItemEx("IodsaPainSmoke",0,0,40,8,8,random(3,10),random(-180,180))
	IODS A 0 A_Facetarget
	IODS CCC 2 A_SpawnItemEx("IodsaPainSmoke",0,0,40,8,8,random(3,10),random(-180,180))
	IODS A 0 A_Facetarget
	IODS AAA 2 A_SpawnItemEx("IodsaPainSmoke",0,0,40,8,8,random(3,10),random(-180,180))
	IODS A 0 A_Facetarget
	IODS CCC 2 A_SpawnItemEx("IodsaPainSmoke",0,0,40,8,8,random(3,10),random(-180,180))
	IODS A 0 A_Facetarget
	IODS AAA 2 A_SpawnItemEx("IodsaPainSmoke",0,0,40,8,8,random(3,10),random(-180,180))
	IODS A 0 A_Facetarget
	IODS CCC 2 A_SpawnItemEx("IodsaPainSmoke",0,0,40,8,8,random(3,10),random(-180,180))
	IODS A 0 A_Facetarget
	IODS AAA 2 A_SpawnItemEx("IodsaPainSmoke",0,0,40,8,8,random(3,10),random(-180,180))
	IODS A 0 A_Facetarget
	IODS CCC 2 A_SpawnItemEx("IodsaPainSmoke",0,0,40,8,8,random(3,10),random(-180,180))
	IODS A 0 A_Facetarget
	IODS AAAA 2 A_SpawnItemEx("IodsaPainSmoke",0,0,40,8,8,random(3,10),random(-180,180))
	IODS A 0 A_Facetarget
	IODS C 5 A_CustomMissile("IodsaSkullBomb",32,0,0,0)
	IODS CCC 2
    IODS A 29
	Goto See
  Pain:
	IODS C 2 A_SetTranslucent(1.0,0)
	IODS CC 0 A_SpawnItemEx("IodsaPainSmoke",0,random(-22,22),random(-22,22),random(2,4),momy,random(8,12),random(-180,180))
	IODS CC 0 A_SpawnItemEx("IodsaPainSmoke2",0,random(-22,22),random(-22,22),random(2,4),momy,random(8,12),random(-180,180))
	IODS C 2 A_Pain
	Goto See
  Death:
	//IODS A 0 A_SpawnItemEx("IodsaPain",0,0)
	IODS C 3 A_PlaySoundEx("IodsaDeath","Body",0,1)
	IODS CC 0 A_SpawnItemEx("IodsaPainSmoke",0,random(-22,22),random(-22,22),random(2,4),momy,random(8,12),random(-180,180))
	IODS CC 0 A_SpawnItemEx("IodsaPainSmoke2",0,random(-22,22),random(-22,22),random(2,4),momy,random(8,12),random(-180,180))
	IODS C 3 A_SetTranslucent(1.0,0)
	IODS CC 0 A_SpawnItemEx("IodsaPainSmoke",0,random(-22,22),random(-22,22),random(2,4),momy,random(8,12),random(-180,180))
	IODS CC 0 A_SpawnItemEx("IodsaPainSmoke2",0,random(-22,22),random(-22,22),random(2,4),momy,random(8,12),random(-180,180))
	IODS C 3 A_NoBlocking
	IODS CC 0 A_SpawnItemEx("IodsaPainSmoke",0,random(-22,22),random(-22,22),random(2,4),momy,random(8,12),random(-180,180))
	IODS CC 0 A_SpawnItemEx("IodsaPainSmoke2",0,random(-22,22),random(-22,22),random(2,4),momy,random(8,12),random(-180,180))
	IODS C 3 A_FadeOut(0.1)
	IODS CC 0 A_SpawnItemEx("IodsaPainSmoke",0,random(-22,22),random(-22,22),random(2,4),momy,random(8,12),random(-180,180))
	IODS CC 0 A_SpawnItemEx("IodsaPainSmoke2",0,random(-22,22),random(-22,22),random(2,4),momy,random(8,12),random(-180,180))
	IODS C 3 A_FadeOut(0.1)
	IODS CC 0 A_SpawnItemEx("IodsaPainSmoke",0,random(-22,22),random(-22,22),random(2,4),momy,random(8,12),random(-180,180))
	IODS CC 0 A_SpawnItemEx("IodsaPainSmoke2",0,random(-22,22),random(-22,22),random(2,4),momy,random(8,12),random(-180,180))
	IODS C 3 A_FadeOut(0.1)
	IODS CC 0 A_SpawnItemEx("IodsaPainSmoke",0,random(-22,22),random(-22,22),random(2,4),momy,random(8,12),random(-180,180))
	IODS CC 0 A_SpawnItemEx("IodsaPainSmoke2",0,random(-22,22),random(-22,22),random(2,4),momy,random(8,12),random(-180,180))
	IODS C 3 A_FadeOut(0.1)
	IODS CC 0 A_SpawnItemEx("IodsaPainSmoke",0,random(-22,22),random(-22,22),random(2,4),momy,random(8,12),random(-180,180))
	IODS CC 0 A_SpawnItemEx("IodsaPainSmoke2",0,random(-22,22),random(-22,22),random(2,4),momy,random(8,12),random(-180,180))
	IODS C 3 A_FadeOut(0.1)
	IODS CC 0 A_SpawnItemEx("IodsaPainSmoke",0,random(-22,22),random(-22,22),random(2,4),momy,random(8,12),random(-180,180))
	IODS CC 0 A_SpawnItemEx("IodsaPainSmoke2",0,random(-22,22),random(-22,22),random(2,4),momy,random(8,12),random(-180,180))
	IODS C 3 A_FadeOut(0.1)
	IODS CC 0 A_SpawnItemEx("IodsaPainSmoke",0,random(-22,22),random(-22,22),random(2,4),momy,random(8,12),random(-180,180))
	IODS CC 0 A_SpawnItemEx("IodsaPainSmoke2",0,random(-22,22),random(-22,22),random(2,4),momy,random(8,12),random(-180,180))
	IODS C 3 A_FadeOut(0.1)
	IODS CC 0 A_SpawnItemEx("IodsaPainSmoke",0,random(-22,22),random(-22,22),random(2,4),momy,random(8,12),random(-180,180))
	IODS CC 0 A_SpawnItemEx("IodsaPainSmoke2",0,random(-22,22),random(-22,22),random(2,4),momy,random(8,12),random(-180,180))
	IODS C 3 A_FadeOut(0.1)
	IODS CC 0 A_SpawnItemEx("IodsaPainSmoke",0,random(-22,22),random(-22,22),random(2,4),momy,random(8,12),random(-180,180))
	IODS CC 0 A_SpawnItemEx("IodsaPainSmoke2",0,random(-22,22),random(-22,22),random(2,4),momy,random(8,12),random(-180,180))
	IODS C 3 A_FadeOut(0.1)
	IODS CC 0 A_SpawnItemEx("IodsaPainSmoke",0,random(-22,22),random(-22,22),random(2,4),momy,random(8,12),random(-180,180))
	IODS CC 0 A_SpawnItemEx("IodsaPainSmoke2",0,random(-22,22),random(-22,22),random(2,4),momy,random(8,12),random(-180,180))
	IODS C 3 A_FadeOut(0.1)
	IODS CC 0 A_SpawnItemEx("IodsaPainSmoke",0,random(-22,22),random(-22,22),random(2,4),momy,random(8,12),random(-180,180))
	IODS CC 0 A_SpawnItemEx("IodsaPainSmoke2",0,random(-22,22),random(-22,22),random(2,4),momy,random(8,12),random(-180,180))
	IODS C -1
	Stop
	}
}

Actor IodsaLittleSkull
{
Height 8
Radius 10
Speed 30
Damage 10
DamageType "Iodsa"
Obituary "%o couldn't escape from Iodsa's little skulls chase." 
SeeSound "IodsaLittleSkullF"
DeathSound "IodsaLittleSkullX"
PROJECTILE
States
{
  Spawn: 
	ILSK A 0 A_PlaySoundEx("IodsaLittleSkullF","Body")
	ILSK ABCBABCBABCB 1 A_BishopMissileWeave
	Loop
  Death:
	ILSK AA 0 A_SpawnItemEx("IodsaSkullPiece1",0,random(-22,22),random(-22,22),momx,momy,random(8,12),random(-180,180),40)
	ILSK AA 0 A_SpawnItemEx("IodsaSkullPiece2",0,random(-22,22),random(-22,22),momx,momy,random(8,12),random(-180,180),40)
	ILSK AA 0 A_SpawnItemEx("IodsaSkullPiece3",0,random(-22,22),random(-22,22),momx,momy,random(8,12),random(-180,180),40)
	ILSK AA 0 A_SpawnItemEx("IodsaSkullPiece4",0,random(-22,22),random(-22,22),momx,momy,random(8,12),random(-180,180),40)
	ILSK AAA 1 A_SpawnItemEx("IodsaSkullPiece5",0,random(-22,22),random(-22,22),momx,momy,random(8,12),random(-180,180),40)
	Stop
	}
}

Actor IodsaWeakLittleSkull : IodsaLittleSkull
{
Speed 32
Scale 0.65
Damage 5
}

Actor IodsaSkullPiece1
{
Radius 8
Height 8
Scale 0.7
+DOOMBOUNCE
+DROPOFF
+MISSILE
+CLIENTSIDEONLY
States
{
Spawn:
SKLP A 65
Goto Death
Death:
TNT1 A 1
Stop
}
}

Actor IodsaSkullPiece2 : IodsaSkullPiece1
{
States
{
Spawn:
SKLP B 70
Goto Death
	}
}

Actor IodsaSkullPiece3 : IodsaSkullPiece1
{
States
{
Spawn:
SKLP C 90
Goto Death
	}
}

Actor IodsaSkullPiece4 : IodsaSkullPiece1
{
States
{
Spawn:
SKLP D 85
Goto Death
	}
}

Actor IodsaSkullPiece5 : IodsaSkullPiece1
{
States
{
Spawn:
SKLP E 80
Goto Death
	}
}

Actor IodsaSpider
{
Height 5
Radius 5
Speed 10
Damage 4
Obituary "Iodsa figured out that %o is arachnophobic." 
DamageType "Iodsa"
Scale 0.3
PROJECTILE
+RIPPER
+FLOORHUGGER
States
{
Spawn: 
IDSP AB 2
Loop
Death:
IDSP C 0
IDSP C 0 A_SpawnItemEx("IodsaDeadSpider")
Stop
}
}

Actor IodsaDeadSpider
{
States
{
Spawn:
IDSP C 0
IDSP C 0 A_PlaySoundEx("IodsaSpiderSquish","Body")
IDSP C 150
IDSP C 5 A_SetTranslucent(0.8,0)
IDSP C 5 A_SetTranslucent(0.6,0)
IDSP C 5 A_SetTranslucent(0.4,0)
IDSP C 5 A_SetTranslucent(0.2,0)
IDSP C 0 A_SetTranslucent(0.0,0)
Stop
Death:
IDSP C 1
Stop
}
}

Actor IodsaSkullBomb
{
Height 8
Radius 10
Speed 60
Damage 250 //100000000 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHHHHHHHHHHHH!!!
Obituary "Iodsa implanted a bomb inside %o's body." 
SeeSound "LilSkulS"
DeathSound "LilSkullX"
DamageType "IodsaBomb"
//Decal SkullBombDecal
PROJECTILE
States
{
Spawn:
IDSK A 2 A_SpawnItemEx("SkullbombTracer",0,0)
Loop
Death:
IDSK B 35
//TNT1 A 0 A_JumpIfInTargetInventory("Clip",1,"Boom")
Stop
//Boom:
//TNT1 A 0 A_TakeFromTarget("Clip",999)
//TNT1 A 36
//Stop
}
}

Actor SkullbombTracer
{
+NOBLOCKMAP
+NOGRAVITY
+RANDOMIZE
+CLIENTSIDEONLY
Mass 5
States
{
Spawn:
IDSK A 2 A_SetTranslucent(0.0,0)
IDSK A 2 A_SetTranslucent(0.9,0)
IDSK A 2 A_SetTranslucent(0.8,0)
IDSK A 2 A_SetTranslucent(0.7,0)
IDSK A 2 A_SetTranslucent(0.6,0)
IDSK A 2 A_SetTranslucent(0.5,0)
IDSK A 2 A_SetTranslucent(0.4,0)
IDSK A 2 A_SetTranslucent(0.3,0)
IDSK A 2 A_SetTranslucent(0.2,0)
IDSK A 2 A_SetTranslucent(0.1,0)
IDSK A 2 A_SetTranslucent(0.0,0)
Stop
}
}

Actor SkullBombExplosion
{
Speed 2
Radius 2
Height 2
DamageType "Iodsa"
Obituary "%o failed evading %k's living bomb."
PROJECTILE
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_SpawnItemEx("MegaExplosion") //Lord Archon Mega Bomb
TNT1 A 0 A_Explode(5000,300,0)
Stop
   }
}

Actor IodsaPainSmoke : BulletPuff
{
States
{
Spawn:
IODS DE 4
Melee:
IODS FG 4
Stop
}
}

Actor IodsaPainSmoke2 : IodsaPainSmoke
{
VSpeed 5
}