/*
================================================================================
	Dolls
	
	Class: Doll
	
	Demons and wicked souls captured by the angels are given the option to 
serve heaven by having their souls placed into angelic dolls. The doll acts as 
a prison where the demon can do nothing but observe and bid its time. These 
dolls are then given to lonely children who show them love and compassion, 
something most demons never feel. Over time, the demon's soul learns empathy 
and love which purifies it soul. When the soul is purified enough, the doll is 
brought back to heaven and given limited mobility. In heaven, dolls preform 
most of the chores such as cooking and cleaning for the Cherubs. 
	In battle, they are given human weapons as angels cannot wield firearms. 
When enough time passes and the demon's soul has been completely purified,
it is reborn as a Cherub and allowed to live amongst the angels of heaven.
It should be noted that the dollification process is entirely voluntarily. 
Most demons choose this option as they believe they will be able to betray
heaven when the opportunity arrises.
This never happens, and the angels use this to their advantage to increase 
their numbers. 
Every single demonic soul put through the process eventually becomes purified 
and reborn as an angel.
================================================================================
*/

/*
================================================================================
	Revolover Doll
"A clumsy angelic doll who has trouble wielding her gun."
-Smaller and harder to hit than a zombieman, but moves slower and takes 
longer to fire.
================================================================================
*/

Actor RevolverDollSpawner replaces ZombieMan // Spawns the Cherub, Less Annoying Cherub or the Quiet Cherub.
{
  +NOBLOCKMAP
  +NOSECTOR
  +THRUACTORS
  States
  {
  Spawn:
  	TNT1 A 0
	TNT1 A 0
	TNT1 A 0 A_SpawnItemEx("RevolverDoll",0,0,0, 0, 0,0,0, SXF_NOCHECKPOSITION | SXF_TRANSFERAMBUSHFLAG )
	Stop
	SummonQuietRevolverdoll:
	TNT1 A 0
	TNT1 A 0 A_SpawnItemEx("QuietRevolverdoll",0,0,0, 0, 0,0,0, SXF_NOCHECKPOSITION | SXF_TRANSFERAMBUSHFLAG )
	Stop
	TNT1 A 0 A_SpawnItemEx("QuietSmolRevolverdoll",0,0,0, 0, 0,0,0, SXF_NOCHECKPOSITION | SXF_TRANSFERAMBUSHFLAG )
	Stop
	SummonSmolRevolverdoll:
	TNT1 A 0
	TNT1 A 0 A_SpawnItemEx("SmolRevolverDoll",0,0,0, 0, 0,0,0, SXF_NOCHECKPOSITION | SXF_TRANSFERAMBUSHFLAG )
	Stop
	SummonQuietSmolRevolverDoll:
	TNT1 A 0
	TNT1 A 0 A_SpawnItemEx("QuietSmolRevolverDoll",0,0,0, 0, 0,0,0, SXF_NOCHECKPOSITION | SXF_TRANSFERAMBUSHFLAG )
	Stop
	}
}

ACTOR RevolverDoll
{
  Health 20
  Radius 20
  Height 26
  Speed 3
  PainChance 200
  Monster
  Species "Doll"
  Tag "Revolver Doll"
  +FLOORCLIP
  +NOBLOOD
  SeeSound "doll/sight"
  AttackSound "grunt/attack"
  PainSound "doll/pain"
  DeathSound "doll/death"
  ActiveSound "doll/active"
  Obituary "%o was shot by a Revolver Doll."
  DropItem "Clip"
	DropItem "AngelArmorSpawner" 64
	DropItem "AngelArmorSpawner" 64
	DropItem "AngelArmorSpawner" 32
	DropItem "Stimpack" 1
  States
  {
  Spawn:
    RDOL AB 10 A_Look
    Loop
  See:
    RDOL AABBCCDD 4 A_Chase
    Loop
  Missile:
    RDOL E 10 A_FaceTarget
	RDOL E 10
    RDOL F 8 A_PosAttack
    RDOL E 8
    Goto See
  Pain:
    RDOL G 3
    RDOL G 3 A_Pain
    Goto See
  Death:
    RDOL H 5
    RDOL I 5 A_Scream
    RDOL J 5 A_NoBlocking
    RDOL K 5
    RDOL L -1
    Stop
  XDeath:
    RDOL M 5
    RDOL N 5 A_playsound ("doll/gib")
    RDOL O 5 A_NoBlocking
    RDOL PQRST 5
    RDOL U -1
    Stop
  Death.Ice:
	TNT1 A 0 A_playsound("doll/frozen")
	TNT1 A 0 A_Changeflag("DONTCORPSE",TRUE) 
	TNT1 A 0 A_SpawnItemEx ("FrozenRevolverDoll", 0,0,0, 0,0,0, 0, SXF_NOCHECKPOSITION | SXF_SETMASTER)
    Stop
  Raise:
    RDOL K 5
    RDOL JIH 5
    Goto See
	}
}

ACTOR QuietRevolverDoll : RevolverDoll
{
  Tag "Revolver Doll"
  SeeSound "angel/blink"
  PainSound "bird/flap"
  DeathSound "doll/death1"
  ActiveSound "bird/flap" 
  States
	{
    XDeath:
    RDOL M 5
    RDOL N 5 A_Scream
    RDOL O 5 A_NoBlocking
    RDOL PQRST 5
    RDOL U -1
    Stop
	}
  }
  
ACTOR SmolRevolverDoll : RevolverDoll
{
  Tag "Revolver Doll"
  Height 20
  }
  
ACTOR QuietSmolRevolverDoll : RevolverDoll
{
  Tag "Revolver Doll"
  Height 20
  SeeSound "angel/blink"
  PainSound "bird/flap"
  DeathSound "doll/death1"
  ActiveSound "bird/flap" 
  States
	{
    XDeath:
    RDOL M 5
    RDOL N 5 A_Scream
    RDOL O 5 A_NoBlocking
    RDOL PQRST 5
    RDOL U -1
    Stop
	}
  }

ACTOR TurboRevolverDoll
{
  Health 30
  Radius 20
  Height 26
  Speed 8
  PainChance 200
  Monster
  Species "DollMakyr_Pet"
  Tag "Turbo Revolver Doll"
  +FLOORCLIP
  +NOBLOOD
  +THRUSPECIES
  -COUNTKILL
  SeeSound "tdoll/sight"
  AttackSound "grunt/attack"
  PainSound "tdoll/pain"
  DeathSound "tdoll/death"
  ActiveSound "tdoll/active"
  Obituary "%o was overwhelmed by Dolls."
  Translation "192:207=112:127", "240:247=120:127"
	DropItem "Clip"
	DropItem "AngelArmorSpawner" 64
	DropItem "AngelArmorSpawner" 64
	DropItem "AngelArmorSpawner" 32
	DropItem "Stimpack" 1
  States
  {
  Spawn:
    RDOL ABCD 10 A_Look
    Loop
  See:
    RDOL AABBCCDD 4 A_Chase
    Loop
  Missile:
    RDOL E 10 A_FaceTarget
	RDOL E 10
    RDOL F 8 A_PosAttack
    RDOL E 8
    Goto See
  Pain:
    RDOL G 3
    RDOL G 3 A_Pain
    Goto See
  Death:
    RDOL H 5
    RDOL I 5 A_Scream
    RDOL J 5 A_NoBlocking
    RDOL K 5
    RDOL L 500
	RDOL L 5 a_fadeout (0.10)
	RDOL L 5 a_fadeout (0.10)
	RDOL L 5 a_fadeout (0.10)
	RDOL L 5 a_fadeout (0.10)
	RDOL L 5 a_fadeout (0.10)
	RDOL L 5 a_fadeout (0.10)
	RDOL L 5 a_fadeout (0.10)
	RDOL L 5 a_fadeout (0.10)
	RDOL L 5 a_fadeout (0.10)
	RDOL L 5 a_fadeout (0.10)
    Stop
  XDeath:
    RDOL M 5
    RDOL N 5 A_playsound ("doll/gib1")
    RDOL O 5 A_NoBlocking
    RDOL PQRST 5
    RDOL U 500
	RDOL U 5 a_fadeout (0.10)
	RDOL U 5 a_fadeout (0.10)
	RDOL U 5 a_fadeout (0.10)
	RDOL U 5 a_fadeout (0.10)
	RDOL U 5 a_fadeout (0.10)
	RDOL U 5 a_fadeout (0.10)
	RDOL U 5 a_fadeout (0.10)
	RDOL U 5 a_fadeout (0.10)
	RDOL U 5 a_fadeout (0.10)
	RDOL U 5 a_fadeout (0.10)
    Stop
  Death.Ice:
	TNT1 A 0 A_playsound("doll/frozen")
	TNT1 A 0 A_Changeflag("DONTCORPSE",TRUE) 
	TNT1 A 0 A_SpawnItemEx ("FrozenRevolverDoll", 0,0,0, 0,0,0, 0, SXF_NOCHECKPOSITION | SXF_SETMASTER)
    Stop
  Raise:
    RDOL K 5
    RDOL JIH 5
    Goto See
  }
}

ACTOR SmolTurboRevolverDoll : TurboRevolverDoll
{
  Tag "Revolver Doll"
  Height 20
  }
  
ACTOR QuietTurboRevolverDoll : TurboRevolverDoll
{
  Tag "Revolver Doll"
  SeeSound "angel/blink"
  PainSound "bird/flap"
  DeathSound "doll/death1"
  ActiveSound "bird/flap" 
  States
	{
    XDeath:
    RDOL M 5
    RDOL N 5 A_Scream
    RDOL O 5 A_NoBlocking
    RDOL PQRST 5
    RDOL U -1
    Stop
	}
  }

ACTOR QuietSmolTurboRevolverDoll : TurboRevolverDoll
{
  Tag "Revolver Doll"
  Height 20
  SeeSound "angel/blink"
  PainSound "bird/flap"
  DeathSound "doll/death1"
  ActiveSound "bird/flap" 
  States
	{
    XDeath:
    RDOL M 5
    RDOL N 5 A_Scream
    RDOL O 5 A_NoBlocking
    RDOL PQRST 5
    RDOL U -1
    Stop
	}
  }
  
Actor FrozenRevolverDoll
{
  Health 15
  Radius 20
  Height 40
  +SOLID
  +SHOOTABLE
  +PUSHABLE
  +NOICEDEATH
  +NOBLOOD
  -COUNTKILL
  DamageFactor "Ice", 0
  DamageFactor "Fire", 2
  States
  {
  Spawn:
	TNT1 A 0
	RDOL V 10000000000000
	TNT1 A 0 A_SpawnItemEx ("AviaryIceSpawner")
	Stop
   Death:
	TNT1 A 0 A_NoBlocking
	TNT1 A 0 A_SpawnItemEx ("AviaryIceSpawner")
    Stop
  }
}

/*
================================================================================
	Shotgun Duo
"So smol, it takes two dolls just to carry a shotgun. When the first doll dies, 
the second comes at you with a knife and a vengeance. A rocket will put 
both dolls out of commission."

-Much like the revolver doll, the shotgun duo moves and fires more slowly than 
the vanilla sergeants and is a smaller target. When the main doll is killed, the
second doll will charge at the player with a knife. Gibbing this enemy will 
prevent the second doll from spawning so rockets or a berserk patch is recommended.
================================================================================
*/

Actor ShotgunDuoSpawner Replaces ShotgunGuy
{
  +NOBLOCKMAP
  +NOSECTOR
  +THRUACTORS
  States
  {
  Spawn:
  	TNT1 A 0
	TNT1 A 0
	TNT1 A 0 A_SpawnItemEx("ShotgunDuo",0,0,0, 0, 0,0,0, SXF_NOCHECKPOSITION | SXF_TRANSFERAMBUSHFLAG )
	Stop
	SummonQuietShotgunDuo:
	TNT1 A 0
	TNT1 A 0 A_SpawnItemEx("QuietShotgunDuo",0,0,0, 0, 0,0,0, SXF_NOCHECKPOSITION | SXF_TRANSFERAMBUSHFLAG )
	Stop
	TNT1 A 0 A_SpawnItemEx("QuietSmolShotgunDuo",0,0,0, 0, 0,0,0, SXF_NOCHECKPOSITION | SXF_TRANSFERAMBUSHFLAG )
	Stop
	SummonSmolShotgunDuo:
	TNT1 A 0
	TNT1 A 0 A_SpawnItemEx("SmolShotgunDuo",0,0,0, 0, 0,0,0, SXF_NOCHECKPOSITION | SXF_TRANSFERAMBUSHFLAG )
	Stop
	SummonQuietSmolShotgunDuo:
	TNT1 A 0
	TNT1 A 0 A_SpawnItemEx("QuietSmolShotgunDuo",0,0,0, 0, 0,0,0, SXF_NOCHECKPOSITION | SXF_TRANSFERAMBUSHFLAG )
	Stop
	}
}

ACTOR ShotgunDuo 
{
  Health 30
  Radius 20
  Height 26
  Mass 100
  Speed 4
  PainChance 170
  Monster
  Species "Doll"
  Tag "Shotgun Duo"
  +FLOORCLIP
  +NOBLOOD
  SeeSound "shotgunduo/sight"
  AttackSound "shotguy/attack"
  PainSound "shotgunduo/pain"
  DeathSound "shotgunduo/death"
  ActiveSound "doll/active"
  Obituary "%o was blown away by a shotgun duo."
  DropItem "Shotgun" 
	DropItem "AngelArmorSpawner" 128
	DropItem "AngelArmorSpawner" 64
	DropItem "AngelArmorSpawner" 32
	DropItem "AngelArmorSpawner" 16
	DropItem "Shell" 1
	
  States
  {
  Spawn:
    SDUO AB 10 A_Look
    Loop
  See:
    SDUO AABBCCDD 3 A_Chase
    Loop
  Missile:
    SDUO E 10 A_FaceTarget
	SDUO E 10
	TNT1 A 0 A_Recoil(5)	
    SDUO F 10 Bright A_SPosAttackUseAtkSound
    SDUO E 10
    Goto See
  Pain:
    SDUO G 3
    SDUO G 3 A_Pain
    Goto See
  Death:
    SDUO H 7 
	TNT1 A 0 A_DropItem ("Knifedoll")
    SDUO I 5 A_Scream
    SDUO J 5 A_NoBlocking
    SDUO K 5
    SDUO L -1
    Stop
  XDeath:
    SDUO M 5
    SDUO N 5 A_playsound ("doll/gib")
	TNT1 A 0 A_SpawnItemEx ("Knifedollgib", 10,0,0,0,0,0,0,0,0,0)
    SDUO O 5 A_NoBlocking
    SDUO PQRST 5
    SDUO U -1
    Stop
  Death.Ice:
	TNT1 A 0 A_playsound("doll/frozen")
	TNT1 A 0 A_Changeflag("DONTCORPSE",TRUE) 
	TNT1 A 0 A_SpawnItemEx ("FrozenShotgunDuo", 0,0,0, 0,0,0, 0, SXF_NOCHECKPOSITION | SXF_SETMASTER)
    Stop
  Raise:
	SDUO LKJIH 3 Bright
	OD0L LMNOP 6 Bright
	TNT1 A 0 A_SpawnItemEx ("DollMagus", 0,0,0, 0,0,0, 0, SXF_NOCHECKPOSITION | SXF_SETMASTER)
    Stop
  }
}

ACTOR SmolShotgunDuo : ShotgunDuo
{
  Tag "Shotgun Duo"
  Height "20"
    States
	{
  Death:
    SDUO H 7 
	TNT1 A 0 A_DropItem ("SmolKnifedoll") 
    SDUO I 5 A_Scream
    SDUO J 5 A_NoBlocking
    SDUO K 5
    SDUO L -1
    Stop
		}
}
  
ACTOR QuietShotgunDuo : ShotgunDuo
{
  Tag "Shotgun Duo"
  SeeSound "angel/blink"
  PainSound "bird/flap"
  DeathSound "doll/death1"
  ActiveSound "bird/flap" 
  States
	{
  Death:
    SDUO H 7 
	TNT1 A 0 A_DropItem ("QuietKnifedoll") 
    SDUO I 5 A_Scream
    SDUO J 5 A_NoBlocking
    SDUO K 5
    SDUO L -1
    Stop
  XDeath:
    SDUO M 5
    SDUO N 5 A_playsound ("doll/death1")
	TNT1 A 0 A_SpawnItemEx ("Knifedollgib", 10,0,0,0,0,0,0,0,0,0)
    SDUO O 5 A_NoBlocking
    SDUO PQRST 5
    SDUO U -1
    Stop
	}
  }

ACTOR QuietSmolShotgunDuo : ShotgunDuo
{
  Tag "Shotgun Duo"
  Height "20"
  SeeSound "angel/blink"
  PainSound "bird/flap"
  DeathSound "doll/death1"
  ActiveSound "bird/flap" 
  States
	{
  Death:
    SDUO H 7 
	TNT1 A 0 A_DropItem ("QuietSmolKnifedoll") 
    SDUO I 5 A_Scream
    SDUO J 5 A_NoBlocking
    SDUO K 5
    SDUO L -1
    Stop
  XDeath:
    SDUO M 5
    SDUO N 5 A_Scream
	TNT1 A 0 A_SpawnItemEx ("Knifedollgib", 10,0,0,0,0,0,0,0,0,0)
    SDUO O 5 A_NoBlocking
    SDUO PQRST 5
    SDUO U -1
    Stop
	}
  }

ACTOR TurboShotgunDuo
{
  Health 30
  Radius 20
  Height 26
  Mass 100
  Speed 8
  PainChance 170
  Monster
  Species "DollMakyr_Pet"
  Tag "Turbo Shotgun Duo"
  +FLOORCLIP
  +NOBLOOD
  +THRUSPECIES
  -COUNTKILL
  SeeSound "doll/sight"
  AttackSound "shotguy/attack"
  PainSound "doll/pain"
  DeathSound "doll/death"
  ActiveSound "doll/active"
  Obituary "%o was overwhelmed by dolls."
  Translation "192:207=112:127", "240:247=120:127"
  DropItem "Shotgun" 
	DropItem "AngelArmorSpawner" 128
	DropItem "AngelArmorSpawner" 64
	DropItem "AngelArmorSpawner" 32
	DropItem "AngelArmorSpawner" 16
	DropItem "Shell" 1
	
  States
  {
  Spawn:
    SDUO ABCD 10 A_Look
    Loop
  See:
    SDUO AABBCCDD 3 A_Chase
    Loop
  Missile:
    SDUO E 10 A_FaceTarget
	SDUO E 10
    SDUO F 10 Bright A_SPosAttackUseAtkSound
    SDUO E 10
    Goto See
  Pain:
    SDUO G 3
    SDUO G 3 A_Pain
    Goto See
  Death:
    SDUO H 5 
    SDUO I 5 A_Scream
	TNT1 A 0 A_DropItem ("Turbodoll")
    SDUO J 5 A_NoBlocking
    SDUO K 5
    SDUO L -1
    Stop
  XDeath:
    SDUO M 5
    SDUO N 5 A_XScream
	TNT1 A 0 A_SpawnItemEx ("Knifedollgib", 10,0,0,0,0,0,0,0,0,0)
    SDUO O 5 A_NoBlocking
    SDUO PQRST 5
    SDUO U -1
    Stop
  Death.Ice:
	TNT1 A 0 A_playsound("doll/frozen")
	TNT1 A 0 A_Changeflag("DONTCORPSE",TRUE) 
	TNT1 A 0 A_SpawnItemEx ("FrozenShotgunDuo", 0,0,0, 0,0,0, 0, SXF_NOCHECKPOSITION | SXF_SETMASTER)
    Stop
  Raise:
	SDUO LKJIH 3 Bright
	OD0L LMNOP 6 Bright
	TNT1 A 0 A_SpawnItemEx ("DollMagus", 0,0,0, 0,0,0, 0, SXF_NOCHECKPOSITION | SXF_SETMASTER)
    Stop
  }
}

ACTOR QuietTurboShotgunDuo : TurboShotgunDuo
{
  Tag "Turbo Shotgun Duo"
  SeeSound "angel/blink"
  PainSound "bird/flap"
  DeathSound "doll/death1"
  ActiveSound "bird/flap" 
  States
  {
  Death:
    SDUO H 5 
    SDUO I 5 A_Scream
	TNT1 A 0 A_DropItem ("QuietTurbodoll")
    SDUO J 5 A_NoBlocking
    SDUO K 5
    SDUO L -1
    Stop
  }
}

ACTOR SmolTurboShotgunDuo : TurboShotgunDuo
{
  Tag "Turbo Shotgun Duo"
  Height 20 
  States
  {
  Death:
    SDUO H 5 
    SDUO I 5 A_Scream
	TNT1 A 0 A_DropItem ("SmolTurbodoll")
    SDUO J 5 A_NoBlocking
    SDUO K 5
    SDUO L -1
    Stop
  }
}

ACTOR QuietSmolTurboShotgunDuo : TurboShotgunDuo
{
  Tag "Turbo Shotgun Duo"
  Height 20
  SeeSound "angel/blink"
  PainSound "bird/flap"
  DeathSound "doll/death1"
  ActiveSound "bird/flap" 
  States
  {
  Death:
    SDUO H 5 
    SDUO I 5 A_Scream
	TNT1 A 0 A_DropItem ("QuietSmolTurbodoll")
    SDUO J 5 A_NoBlocking
    SDUO K 5
    SDUO L -1
    Stop
  }
}

Actor FrozenShotgunDuo
{
  Health 15
  Radius 20
  Height 40
  +SOLID
  +SHOOTABLE
  +PUSHABLE
  +NOICEDEATH
  +NOBLOOD
  -COUNTKILL
  DamageFactor "Ice", 0
  DamageFactor "Fire", 2
  States
  {
  Spawn:
	TNT1 A 0
	TNT1 A 0 A_DropItem ("Shotgun")
	SDUO V 10000000000000
	TNT1 A 0 A_SpawnItemEx ("AviaryIceSpawner")
	Stop
   Death:
	TNT1 A 0 A_NoBlocking
	TNT1 A 0 A_SpawnItemEx ("AviaryIceSpawner")
    Stop
  }
}

/*
================================================================================
	Knife Doll
"Super weak, super slow, this doll is about as dangerous as aged chesse. Avoid
wasting ammo on her."

-Knife dolls spawns when killing the shotgun duo or can be summoned by a Dollmaykr.
While they don't pose much of a threat, they are designed to waste the player's ammo,
especially shotgun shells. It's recommended to take them out with the fists or
the chainsaw.
================================================================================
*/

ACTOR KnifeDoll
{
  Health 15
  Radius 20
  Height 26
  Speed 8
  Damage 1
  PainChance 256
  Monster
  Species "Doll"
  Tag "Knife Doll"
  +FLOORCLIP
  +NOBLOOD
  +THRUSPECIES
  -COUNTKILL
  SeeSound "angel/blink"
  AttackSound "cardinal/melee"
  PainSound "doll/pain"
  DeathSound "doll/death1"
  ActiveSound "doll/laugh"
  Obituary "%o was shanked by a knife Doll."
  DropItem "AngelArmorSpawner" 64
  States
  {
  Spawn:
    KDOL ABCD 10 A_Look
  See:
    KDOL AABBCCDD 4 Fast A_Chase 
    Loop
  Melee:
    KDOL E 30 Fast A_FaceTarget
    KDOL F 8 Fast A_SargAttack
    KDOL G 10 Fast
    Goto See
  Pain:
    KDOL H 3
    KDOL H 3 A_Pain
    Goto See
  Death:
    KDOL I 5
    KDOL J 5 A_Scream
    KDOL K 5 A_NoBlocking
    KDOL L 5
    KDOL M -1
    Stop
  XDeath:
    KDOL N 5
    KDOL O 5 A_Scream
    KDOL P 5 A_NoBlocking
    KDOL QRST 5
    KDOL U -1
    Stop
  Death.Ice:
	TNT1 A 0 A_playsound("doll/frozen")
	TNT1 A 0 A_Changeflag("DONTCORPSE",TRUE) 
	TNT1 A 0 A_SpawnItemEx ("FrozenKnifeDoll", 0,0,0, 0,0,0, 0, SXF_NOCHECKPOSITION | SXF_SETMASTER)
    Stop
  Raise:
    KDOL K 5
    KDOL JIH 5
    Goto See
  }
}

ACTOR SmolKnifedoll : KnifeDoll
{
  Tag "Knife Doll"
  Height "20"
  }

ACTOR QuietKnifedoll : KnifeDoll
{
  Tag "Knife Doll"
  SeeSound "angel/blink"
  PainSound "bird/flap"
  DeathSound "doll/death1"
  ActiveSound "bird/flap" 
  }

ACTOR QuietSmolKnifedoll : KnifeDoll
{
  Tag "Knife Doll"
  Height "20"
  SeeSound "angel/blink"
  PainSound "bird/flap"
  DeathSound "doll/death1"
  ActiveSound "bird/flap" 
  }
  
Actor FrozenKnifeDoll
{
  Health 15
  Radius 20
  Height 20
  ProjectilePassHeight -16
  +SOLID
  +SHOOTABLE
  +PUSHABLE
  +NOICEDEATH
  +NOBLOOD
  -COUNTKILL
  DamageFactor "Ice", 0
  DamageFactor "Fire", 2
  States
  {
  Spawn:
	TNT1 A 0 A_playsound("doll/frozen")
	KDOL V 10000000000000
	TNT1 A 0 A_SpawnItemEx ("AviaryIceSpawner")
	Stop
   Death:
	TNT1 A 0 A_NoBlocking
	TNT1 A 0 A_SpawnItemEx ("AviaryIceSpawner")
    Stop
  }
}
   
/*
================================================================================
	Turbo Doll
"A wind-up doll that moves and attacks quicker than the standard knife doll."

-Turbo dolls will only appear when summoned by Dollmaykrs. 
These dolls have increased health and speed compaired to standard knife dolls 
and can pose a severe threat.
================================================================================
*/

ACTOR TurboDoll
{
  Health 30
  Radius 20
  Height 26
  Speed 14
  Damage 1
  PainChance 256
  Monster
  Species "DollMakyr_Pet"
  Tag "Turbo Doll"
  +FLOORCLIP
  +NOBLOOD
  +THRUSPECIES
  -COUNTKILL
  SeeSound "tdoll/sight"
  AttackSound "cardinal/melee"
  PainSound "tdoll/pain"
  DeathSound "tdoll/death"
  ActiveSound "tdoll/active"
  Obituary "%o was overwhelmed by dolls."
  DropItem "AngelArmorSpawner" 64
  
  States
  {
  Spawn:
    TDOL ABCD 10 A_Look
  See:
    TDOL AABBCCDD 4 Fast A_Chase 
    Loop
  Melee:
    TDOL E 10 Fast A_FaceTarget
    TDOL F 6 Fast A_SargAttack
    TDOL G 10 Fast
    Goto See
  Pain:
    TDOL H 3
    TDOL H 3 A_Pain
    Goto See
  Death:
    TDOL I 5
    TDOL J 5 A_Scream
    TDOL K 5 A_NoBlocking
    TDOL L 5
    TDOL M -1
    Stop
  XDeath:
    TDOL N 5
    TDOL O 5 A_Scream
    TDOL P 5 A_NoBlocking
    TDOL QRSTU 5
    TDOL V -1
    Stop
  Death.Ice:
	TNT1 A 0 A_playsound("doll/frozen")
	TNT1 A 0 A_Changeflag("DONTCORPSE",TRUE) 
	TNT1 A 0 A_SpawnItemEx ("FrozenTurboKnifeDoll", 0,0,0, 0,0,0, 0, SXF_NOCHECKPOSITION | SXF_SETMASTER)
    Stop
  Raise:
    TDOL K 5
    TDOL JIH 5
    Goto See
  }
}

ACTOR SmolTurbodoll : TurboDoll
{
  Tag "Knife Doll"
  Height "20"
  }
  
ACTOR QuietTurbodoll : TurboDoll
{
  Tag "Knife Doll"
  SeeSound "angel/blink"
  PainSound "bird/flap"
  DeathSound "doll/death1"
  ActiveSound "bird/flap" 
  }
  
ACTOR QuietSmolTurbodoll : TurboDoll
{
  Tag "Knife Doll"
  Height "20"
  SeeSound "angel/blink"
  PainSound "bird/flap"
  DeathSound "doll/death1"
  ActiveSound "bird/flap" 
  }
  
Actor FrozenTurboKnifeDoll
{
  Health 15
  Radius 20
  Height 20
  ProjectilePassHeight -16
  +SOLID
  +SHOOTABLE
  +PUSHABLE
  +NOICEDEATH
  +NOBLOOD
  -COUNTKILL
  DamageFactor "Ice", 0
  DamageFactor "Fire", 2
  States
  {
  Spawn:
	TNT1 A 0
	TDOL W 10000000000000
	TNT1 A 0 A_SpawnItemEx ("AviaryIceSpawner")
	Stop
   Death:
	TNT1 A 0 A_NoBlocking
	TNT1 A 0 A_SpawnItemEx ("AviaryIceSpawner")
    Stop
  }
}

ACTOR DollMagus
{
  Health 30
  Radius 20
  Height 26
  Speed 14
  PainChance 48
  Monster
  Species "Doll"
  Tag "Doll Magus"
  +FLOORCLIP
  +NOBLOOD
  +MISSILEMORE
  +LOOKALLAROUND
  +NOICEDEATH
  +BRIGHT
  SeeSound "putto/sight"
  PainSound "putto/pain"
  DeathSound "putto/death"
  ActiveSound "putto/active"
  Obituary "%o was incinerated by a Doll Magus."
	DropItem "AngelArmorSpawner" 64
	DropItem "AngelArmorSpawner" 64
	DropItem "AngelArmorSpawner" 32
  States
  {
  Spawn:
    0D0L AB 10 A_Look
    Loop
  See:
    0D0L ABCD 3 A_Chase
    Loop
  Missile:
	TNT1 A 0 A_Jump(128, "Fireball")
    0D0L E 10 Bright A_FaceTarget
	0D0L F 10 Bright
    0D0L G 8 Bright A_CustomMissile ("BlueFireFloor",0, 10, 0, 0, 0)
    0D0L H 8
    Goto See
  FireBall:
    0D0L I 10 A_FaceTarget
    0D0L J 8 Bright A_CustomMissile ("Tinyyfireball",0, -10, 0, 0, 0)
    Goto See
  Pain:
    0D0L K 3
    0D0L K 3 A_Pain
    Goto See
  Death:
    0D0L K 6
    OD0L Q 6 A_PlaySound ("Putto/Death")
	TNT1 A 0 A_PainAttack("Putto",0,PAF_AIMFACING | PAF_NOTARGET)
    PUTT O 6 Bright 
    PUTT P 6 Bright A_NoBlocking
	TNT1 A 0 Bright A_PlaySound ("seraph/attack4")
    PUTT Q 6 Bright 
    PUTT R 6 Bright 
    PUTT S 6 Bright
	PUTT T 6 Bright
    Stop
	}
}

ACTOR ShotgunDuoCast : ShotgunDuo
{
  States
	{
	Missile:
    SDUO E 10 A_FaceTarget
	SDUO E 10
    SDUO F 10 Bright A_SPosAttackUseAtkSound
    SDUO E 10
	Goto See
	Death:
    SDUO H 7 A_Scream
    SDUO I 5 
    SDUO J 5 A_NoBlocking
    SDUO K 5
    SDUO L -1
    Stop
	}
}