/*
================================================================================
	Putto
	
	Class: Outer Sphere angel
	
"A wandering soul seeking redemption. Putto can sacrifice themselves to 
resurrect any doll, outer or inner sphere angel. Eliminating Putto should 
always be a top priority."
 
-Putto exist solely to resurrect angels from the dead. This can range from the 
lowly knife doll to stong inner sphere angels such as Principalities and Ophanim. 
For this reason, they should be near the top of your “To kill list”, preferably
before the floor is littered with bodies.
Putto cannot resurrect Sacrifical angels (Virtue Virgins, Dollmaykrs, Seraphs 
Crusader Queens) or Joy elementals.

================================================================================
*/

Actor PuttoSpawner replaces LostSoul // Spawns the Putto or quiet Putto
{
  +NOBLOCKMAP
  +NOSECTOR
  +THRUACTORS
  States
  {
  Spawn:
  	TNT1 A 0
	TNT1 A 0
	TNT1 A 0 A_SpawnItemEx("Putto",0,0,0, 0, 0,0,0, SXF_NOCHECKPOSITION | SXF_TRANSFERAMBUSHFLAG )
	Stop
	SummonQuietPutto:
	TNT1 A 0
	TNT1 A 0 A_SpawnItemEx("QuietPutto",0,0,0, 0, 0,0,0, SXF_NOCHECKPOSITION | SXF_TRANSFERAMBUSHFLAG )
	Stop
	}
}

ACTOR Putto //Flip frames C and F until elemental is changed.
{
  Health 40
  Radius 16
  Height 56
  Mass 50
  Speed 12
  Damage 0
  PainChance 256
  Tag "Putto"
  Monster
  +FLOAT
  +NOGRAVITY
  +DONTFALL
  +NOICEDEATH
  +SPAWNFLOAT
  +AVOIDMELEE
  +NOTARGET
  +NOINFIGHTING
  +NOBLOOD
  
  +BRIGHT
  DamageFactor "UndeadGoHomeImpact", 0
  DamageFactor "Judgement", 0
  DamageFactor "Holy", 0
  DamageFactor "KissMagic", 2
  SeeSound "putto/sight"
  PainSound "putto/pain"
  DeathSound "putto/death"
  ActiveSound "putto/active"
  RenderStyle SoulTrans
  Obituary "%o should not have been killed by a Putto. This is impossible unless you cheated or did some hack or something really weird. I don't know. Maybe you had corruption cards running, that was the only way I was killed by a putto. Still, if you managed to get killed by a putto, good job... I guess."
  DropItem "AngelHealthSpawner" 8
  States
  {
  Spawn:
    PUTT AB 10 Bright A_Look
    Loop
  See:
    PUTT AABBFFGG 3 Bright A_VileChase
	TNT1 A 0 A_Jump (96, 1)
    Loop
	PUTT UUVV 3 Bright A_VileChase
	PUTT WW 3 Bright A_VileChase
	PUTT XX 3 Bright A_VileChase
	Loop
  Heal: 
	TNT1 A 0 A_Changeflag("NOPAIN",TRUE)
	TNT1 A 0 A_NoBlocking
	TNT1 A 0 A_PlaySound ("putto/raise")
	TNT1 A 0 A_NoBlocking
	PUTT CDHIJKL 4 Bright 
	PUTT M 8 Bright 
    Goto Death2
  Pain:
    PUTT E 3 Bright
    PUTT E 3 Bright A_Pain
    Goto See
  Death:
	TNT1 A 0 Bright
    PUTT N 6 Bright A_Scream
    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
   Death2:
    TNT1 T 1 Bright A_NoBlocking
	Stop
  }
}

ACTOR QuietPutto : Putto
{
  Tag "Putto"
  SeeSound "angel/blink"
  DeathSound "seraph/attack4"
  PainSound "bird/flap"
  ActiveSound "angel/blink"
  States
  {
  Death:
	TNT1 A 0 Bright
    PUTT N 6 Bright A_Scream
    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 PuttoCast : Putto
{
  States
	{
  See:
    PUTT AABBFFGGAABBFFGG 3 Bright
	Loop
  Missile:
	PUTT UUVV 3 Bright 
	PUTT WW 3 Bright 
	PUTT XX 3 Bright
    Goto See
  Death:
    PUTT N 6 Bright A_Scream
    PUTT O 6 Bright 
    PUTT P 6 Bright A_NoBlocking
    PUTT Q 6 Bright 
    PUTT R 6 Bright 
    PUTT S 6 Bright
	PUTT T 6 Bright
    Stop
	}
}
