//===========================================================================
// Lost Soul Replacements
//===========================================================================


ACTOR LostSoulSpawner : RandomSpawner replaces LostSoul
{
	DropItem "LostSoulV1"
	DropItem "LostSoulV2"
	DropItem "LostSoulV3"
}

//===========================================================================
//
// Lost Soul
//
// by Ghastly_Death (Sprites by Captain Toenail, color variants by Marty Kirra)
//
//===========================================================================
Actor LostSoulV1
{
  obituary "%o was taken over by a wandering Lost Soul."
  health 100
  Radius 16
  Height 56
  mass 50
  speed 3
  painchance 230
  Painchance "Melee", 230
  PainChance "Sling", 255
  PainSound "Forgotten/Pain"
  SeeSound "Forgotten/Sight"
  DeathSound "Forgotten/Death"
  ActiveSound "Forgotten/Active"
  DamageFactor "GasShellDamagePlayer", 0 //because skeleton
  Damage 3
  MONSTER
  +FLOORCLIP
  +FLOAT
  +NOGRAVITY
  +NOICEDEATH
  +DONTFALL
  +NOBLOOD
  //+SEEINVISIBLE
  states
  {
  Spawn:
    1FOR A 0 Bright
    1FOR AAAAAABBBBBB 1 Bright A_Look
    1FOR AAAAAABBBBBB 1 Bright A_Look
    1FOR AAAAAABBBBBB 1 Bright A_Look
    1FOR AAAAAABBBBBB 1 Bright A_Look
    1FOR AAAAAABBBBBB 1 Bright A_Look
    1FOR A 0 Bright A_Jump(16, 1)
    Loop
    1FOR A 0 Bright A_PlaySound("Forgotten/Active")
    Loop
  See:
    1FOR AAAAAABBBBBB 1 Bright A_Chase
    Loop
  Missile:
    1FOR C 10 Bright A_FaceTarget
    1FOR D 0 Bright A_PlaySound("Forgotten/Sight")
    1FOR D 4 Bright A_SkullAttack
    1FOR CCCC 1 Bright
    1FOR C 0 A_Jump(16, 6)
    1FOR DDDD 1 Bright
    1FOR D 0 A_Jump(16, 1)
    Goto Missile+4
    1FOR C 0
    Goto Missile+2
  Pain.Sling:
	TNT1 A 0 HealThing(1)
	TNT1 A 0 A_FaceTarget
    TNT1 A 0 A_CustomMissile("MagSlingShot", 32, 0)
	Goto Pain
  Pain:
    1FOR E 3 Bright
    1FOR E 3 Bright A_Pain
    Goto See
  Pain.Melee:
    1FOR E 5 Bright
    1FOR E 4 Bright A_Pain
    Goto See
  Death.Uppercut:
	TNT1 A 0 A_FaceTarget
	TNT1 A 0 Thrustthing(angle*256/360+192, random(3,4), 0, 0)
	TNT1 A 0 Thrustthingz(0,27,0,1)
	Goto Death
  Death:
    1FOR EF 4 Bright
    1FOR G 6 Bright A_Scream
	1FOR G 0 A_PlaySound("LostSoul/Explode", 0)
    1FOR H 6 Bright
    1FOR I 6 Bright A_NoBlocking
    1FOR J 6
    Stop
  }
}

Actor LostSoulV2
{
  obituary "%o was possessed by an angry Lost Soul."
  health 100
  Radius 16
  Height 56
  mass 50
  speed 3
  painchance 230
  Painchance "Melee", 230
  PainChance "Sling", 255
  PainSound "Forgotten/Pain"
  SeeSound "Forgotten/Sight"
  DeathSound "Forgotten/Death"
  ActiveSound "Forgotten/Active"
  DamageFactor "GasShellDamagePlayer", 0 //because skeleton
  Damage 3
  MONSTER
  //+SEEINVISIBLE
  +FLOORCLIP
  +FLOAT
  +NOGRAVITY
  +NOICEDEATH
  +DONTFALL
  +NOBLOOD
  states
  {
  Spawn:
    2FOR A 0 Bright
    2FOR AAAAAABBBBBB 1 Bright A_Look
    2FOR AAAAAABBBBBB 1 Bright A_Look
    2FOR AAAAAABBBBBB 1 Bright A_Look
    2FOR AAAAAABBBBBB 1 Bright A_Look
    2FOR AAAAAABBBBBB 1 Bright A_Look
    2FOR A 0 Bright A_Jump(16, 1)
    Loop
    2FOR A 0 Bright A_PlaySound("Forgotten/Active")
    Loop
  See:
    2FOR AAAAAABBBBBB 1 Bright A_Chase
    Loop
  Missile:
    2FOR C 10 Bright A_FaceTarget
    2FOR D 0 Bright A_PlaySound("Forgotten/Sight")
    2FOR D 4 Bright A_SkullAttack
    2FOR CCCC 1 Bright
    2FOR C 0 A_Jump(16, 6)
    2FOR DDDD 1 Bright
    2FOR D 0 A_Jump(16, 1)
    Goto Missile+4
    2FOR C 0
    Goto Missile+2
  Pain.Sling:
	TNT1 A 0 HealThing(1)
	TNT1 A 0 A_FaceTarget
    TNT1 A 0 A_CustomMissile("MagSlingShot", 32, 0)
	Goto Pain
  Pain:
    2FOR E 3 Bright
    2FOR E 3 Bright A_Pain
    Goto See
  Pain.Melee:
    2FOR E 5 Bright
    2FOR E 4 Bright A_Pain
    Goto See
  Death.Uppercut:
	TNT1 A 0 A_FaceTarget
	TNT1 A 0 Thrustthing(angle*256/360+192, random(3,4), 0, 0)
	TNT1 A 0 Thrustthingz(0,27,0,1)
	Goto Death
  Death:
    2FOR EF 4 Bright
    2FOR G 6 Bright A_Scream
	2FOR G 0 A_PlaySound("LostSoul/Explode", 0)
    2FOR H 6 Bright
    2FOR I 6 Bright A_NoBlocking
    2FOR J 6
    Stop
  }
}

Actor LostSoulV3
{
  obituary "%o's body was seized by an dismal Lost Soul."
  health 100
  Radius 16
  Height 56
  mass 50
  speed 3
  painchance 230
  Painchance "Melee", 230
  PainChance "Sling", 255
  PainSound "Forgotten/Pain"
  SeeSound "Forgotten/Sight"
  DeathSound "Forgotten/Death"
  ActiveSound "Forgotten/Active"
  DamageFactor "GasShellDamagePlayer", 0 //because skeleton
  Damage 3
  MONSTER
  //+SEEINVISIBLE
  +FLOORCLIP
  +FLOAT
  +NOGRAVITY
  +NOICEDEATH
  +DONTFALL
  +NOBLOOD
  states
  {
  Spawn:
    3FOR A 0 Bright
    3FOR AAAAAABBBBBB 1 Bright A_Look
    3FOR AAAAAABBBBBB 1 Bright A_Look
    3FOR AAAAAABBBBBB 1 Bright A_Look
    3FOR AAAAAABBBBBB 1 Bright A_Look
    3FOR AAAAAABBBBBB 1 Bright A_Look
    3FOR A 0 Bright A_Jump(16, 1)
    Loop
    3FOR A 0 Bright A_PlaySound("Forgotten/Active")
    Loop
  See:
    3FOR AAAAAABBBBBB 1 Bright A_Chase
    Loop
  Missile:
    3FOR C 10 Bright A_FaceTarget
    3FOR D 0 Bright A_PlaySound("Forgotten/Sight")
    3FOR D 4 Bright A_SkullAttack
    3FOR CCCC 1 Bright
    3FOR C 0 A_Jump(16, 6)
    3FOR DDDD 1 Bright
    3FOR D 0 A_Jump(16, 1)
    Goto Missile+4
    3FOR C 0
    Goto Missile+2
  Pain.Sling:
	TNT1 A 0 HealThing(1)
	TNT1 A 0 A_FaceTarget
    TNT1 A 0 A_CustomMissile("MagSlingShot", 32, 0)
	Goto Pain
  Pain:
    3FOR E 3 Bright
    3FOR E 3 Bright A_Pain
    Goto See
  Pain.Melee:
    3FOR E 5 Bright
    3FOR E 4 Bright A_Pain
    Goto See
  Death.Uppercut:
	TNT1 A 0 A_FaceTarget
	TNT1 A 0 Thrustthing(angle*256/360+192, random(3,4), 0, 0)
	TNT1 A 0 Thrustthingz(0,27,0,1)
	Goto Death
  Death:
    3FOR EF 4 Bright
    3FOR G 6 Bright A_Scream
	3FOR G 0 A_PlaySound("LostSoul/Explode", 0)
    3FOR H 6 Bright
    3FOR I 6 Bright A_NoBlocking
    3FOR J 6
    Stop
  }
}

//Rictus, a new monster by Captain Toenail//


actor TSPRictus
{
  obituary "%o was charred by a rictus."
  health 50
  radius 16
  height 56
  mass 50
  speed 3
  Damage 3
  painchance 128
  Painchance "Melee", 230
  PainChance "Sling", 255
  seesound "rictus/sight"
  deathsound "rictus/death"
  activesound "rictus/active"
  painsound "rictus/pain"
  DamageFactor "GasShellDamagePlayer", 0 //because skeleton
  MONSTER
  ////+SEEINVISIBLE
  +FLOAT
  +NOGRAVITY
  +NOICEDEATH
  +NOBLOOD
  +DONTFALL
  //+FIRERESIST
  //+DONTHURTSPECIES
  states
  {
  Spawn:
    RICT A 1 A_Look
    RICT AA 0 A_SpawnItemEx("RictusFire",(random(-50,-30)/10),(random(20,-20)/10),(random(20,-20)/10),(random(-20,-10)/10),(random(20,-20)/10),(random(10,30)/10),(random(-300,300)/10),SXF_NOCHECKPOSITION)
	RICT A 0 A_SpawnItemEx("RictusFireA",(random(-50,-30)/10),(random(20,-20)/10),(random(20,-20)/10),(random(-20,-10)/10),(random(20,-20)/10),(random(10,30)/10),(random(-300,300)/10),SXF_NOCHECKPOSITION)
	RICT A 0 A_SpawnItemEx("RictusFireB",(random(-50,-30)/10),(random(20,-20)/10),(random(20,-20)/10),(random(-20,-10)/10),(random(20,-20)/10),(random(10,30)/10),(random(-300,300)/10),SXF_NOCHECKPOSITION)
    RICT A 0 A_LoopActiveSound
    loop
  See:
    RICT A 1 A_Chase
    RICT AA 0 A_SpawnItemEx("RictusFire",(random(-50,-30)/10),(random(20,-20)/10),(random(20,-20)/10),(random(-20,-10)/10),(random(20,-20)/10),(random(10,30)/10),(random(-300,300)/10),SXF_NOCHECKPOSITION)
	RICT A 0 A_SpawnItemEx("RictusFireA",(random(-50,-30)/10),(random(20,-20)/10),(random(20,-20)/10),(random(-20,-10)/10),(random(20,-20)/10),(random(10,30)/10),(random(-300,300)/10),SXF_NOCHECKPOSITION)
	RICT A 0 A_SpawnItemEx("RictusFireB",(random(-50,-30)/10),(random(20,-20)/10),(random(20,-20)/10),(random(-20,-10)/10),(random(20,-20)/10),(random(10,30)/10),(random(-300,300)/10),SXF_NOCHECKPOSITION)
    RICT A 0 A_LoopActiveSound
    loop
  Missile:
    RICT A 1 A_FaceTarget
    RICT AA 0 A_SpawnItemEx("RictusFire",(random(-50,-30)/10),(random(20,-20)/10),(random(20,-20)/10),(random(-20,-10)/10),(random(20,-20)/10),(random(10,30)/10),(random(-300,300)/10),SXF_NOCHECKPOSITION)
	RICT A 0 A_SpawnItemEx("RictusFireA",(random(-50,-30)/10),(random(20,-20)/10),(random(20,-20)/10),(random(-20,-10)/10),(random(20,-20)/10),(random(10,30)/10),(random(-300,300)/10),SXF_NOCHECKPOSITION)
	RICT A 0 A_SpawnItemEx("RictusFireB",(random(-50,-30)/10),(random(20,-20)/10),(random(20,-20)/10),(random(-20,-10)/10),(random(20,-20)/10),(random(10,30)/10),(random(-300,300)/10),SXF_NOCHECKPOSITION)
    RICT A 1
    RICT AA 0 A_SpawnItemEx("RictusFire",(random(-50,-30)/10),(random(20,-20)/10),(random(20,-20)/10),(random(-20,-10)/10),(random(20,-20)/10),(random(10,30)/10),(random(-300,300)/10),SXF_NOCHECKPOSITION)
	RICT A 0 A_SpawnItemEx("RictusFireA",(random(-50,-30)/10),(random(20,-20)/10),(random(20,-20)/10),(random(-20,-10)/10),(random(20,-20)/10),(random(10,30)/10),(random(-300,300)/10),SXF_NOCHECKPOSITION)
	RICT A 0 A_SpawnItemEx("RictusFireB",(random(-50,-30)/10),(random(20,-20)/10),(random(20,-20)/10),(random(-20,-10)/10),(random(20,-20)/10),(random(10,30)/10),(random(-300,300)/10),SXF_NOCHECKPOSITION)
    RICT A 1
    RICT AA 0 A_SpawnItemEx("RictusFire",(random(-50,-30)/10),(random(20,-20)/10),(random(20,-20)/10),(random(-20,-10)/10),(random(20,-20)/10),(random(10,30)/10),(random(-300,300)/10),SXF_NOCHECKPOSITION)
	RICT A 0 A_SpawnItemEx("RictusFireA",(random(-50,-30)/10),(random(20,-20)/10),(random(20,-20)/10),(random(-20,-10)/10),(random(20,-20)/10),(random(10,30)/10),(random(-300,300)/10),SXF_NOCHECKPOSITION)
	RICT A 0 A_SpawnItemEx("RictusFireB",(random(-50,-30)/10),(random(20,-20)/10),(random(20,-20)/10),(random(-20,-10)/10),(random(20,-20)/10),(random(10,30)/10),(random(-300,300)/10),SXF_NOCHECKPOSITION)
    RICT A 1
    RICT AA 0 A_SpawnItemEx("RictusFire",(random(-50,-30)/10),(random(20,-20)/10),(random(20,-20)/10),(random(-20,-10)/10),(random(20,-20)/10),(random(10,30)/10),(random(-300,300)/10),SXF_NOCHECKPOSITION)
	RICT A 0 A_SpawnItemEx("RictusFireA",(random(-50,-30)/10),(random(20,-20)/10),(random(20,-20)/10),(random(-20,-10)/10),(random(20,-20)/10),(random(10,30)/10),(random(-300,300)/10),SXF_NOCHECKPOSITION)
	RICT A 0 A_SpawnItemEx("RictusFireB",(random(-50,-30)/10),(random(20,-20)/10),(random(20,-20)/10),(random(-20,-10)/10),(random(20,-20)/10),(random(10,30)/10),(random(-300,300)/10),SXF_NOCHECKPOSITION)

    RICT B 1 A_FaceTarget
    RICT BB 0 A_SpawnItemEx("RictusFire",(random(-50,-30)/10),(random(20,-20)/10),(random(20,-20)/10),(random(-20,-10)/10),(random(20,-20)/10),(random(10,30)/10),(random(-300,300)/10),SXF_NOCHECKPOSITION)
	RICT B 0 A_SpawnItemEx("RictusFireA",(random(-50,-30)/10),(random(20,-20)/10),(random(20,-20)/10),(random(-20,-10)/10),(random(20,-20)/10),(random(10,30)/10),(random(-300,300)/10),SXF_NOCHECKPOSITION)
	RICT B 0 A_SpawnItemEx("RictusFireB",(random(-50,-30)/10),(random(20,-20)/10),(random(20,-20)/10),(random(-20,-10)/10),(random(20,-20)/10),(random(10,30)/10),(random(-300,300)/10),SXF_NOCHECKPOSITION)
    RICT B 1
    RICT BB 0 A_SpawnItemEx("RictusFire",(random(-50,-30)/10),(random(20,-20)/10),(random(20,-20)/10),(random(-20,-10)/10),(random(20,-20)/10),(random(10,30)/10),(random(-300,300)/10),SXF_NOCHECKPOSITION)
	RICT B 0 A_SpawnItemEx("RictusFireA",(random(-50,-30)/10),(random(20,-20)/10),(random(20,-20)/10),(random(-20,-10)/10),(random(20,-20)/10),(random(10,30)/10),(random(-300,300)/10),SXF_NOCHECKPOSITION)
	RICT B 0 A_SpawnItemEx("RictusFireB",(random(-50,-30)/10),(random(20,-20)/10),(random(20,-20)/10),(random(-20,-10)/10),(random(20,-20)/10),(random(10,30)/10),(random(-300,300)/10),SXF_NOCHECKPOSITION)
    RICT B 1
    RICT BB 0 A_SpawnItemEx("RictusFire",(random(-50,-30)/10),(random(20,-20)/10),(random(20,-20)/10),(random(-20,-10)/10),(random(20,-20)/10),(random(10,30)/10),(random(-300,300)/10),SXF_NOCHECKPOSITION)
	RICT B 0 A_SpawnItemEx("RictusFireA",(random(-50,-30)/10),(random(20,-20)/10),(random(20,-20)/10),(random(-20,-10)/10),(random(20,-20)/10),(random(10,30)/10),(random(-300,300)/10),SXF_NOCHECKPOSITION)
	RICT B 0 A_SpawnItemEx("RictusFireB",(random(-50,-30)/10),(random(20,-20)/10),(random(20,-20)/10),(random(-20,-10)/10),(random(20,-20)/10),(random(10,30)/10),(random(-300,300)/10),SXF_NOCHECKPOSITION)
    RICT B 1
    RICT BB 0 A_SpawnItemEx("RictusFire",(random(-50,-30)/10),(random(20,-20)/10),(random(20,-20)/10),(random(-20,-10)/10),(random(20,-20)/10),(random(10,30)/10),(random(-300,300)/10),SXF_NOCHECKPOSITION)
	RICT B 0 A_SpawnItemEx("RictusFireA",(random(-50,-30)/10),(random(20,-20)/10),(random(20,-20)/10),(random(-20,-10)/10),(random(20,-20)/10),(random(10,30)/10),(random(-300,300)/10),SXF_NOCHECKPOSITION)
	RICT B 0 A_SpawnItemEx("RictusFireB",(random(-50,-30)/10),(random(20,-20)/10),(random(20,-20)/10),(random(-20,-10)/10),(random(20,-20)/10),(random(10,30)/10),(random(-300,300)/10),SXF_NOCHECKPOSITION)
    Goto Missile2
  Missile2:
    RICT A 0 A_LoopActiveSound

    RICT A 1 A_SkullAttack(14)
    RICT AA 0 A_SpawnItemEx("RictusFire",(random(-50,-30)/10),(random(20,-20)/10),(random(20,-20)/10),(random(-20,-10)/10),(random(20,-20)/10),(random(10,30)/10),(random(-300,300)/10),SXF_NOCHECKPOSITION)
	RICT A 0 A_SpawnItemEx("RictusFireA",(random(-50,-30)/10),(random(20,-20)/10),(random(20,-20)/10),(random(-20,-10)/10),(random(20,-20)/10),(random(10,30)/10),(random(-300,300)/10),SXF_NOCHECKPOSITION)
	RICT A 0 A_SpawnItemEx("RictusFireB",(random(-50,-30)/10),(random(20,-20)/10),(random(20,-20)/10),(random(-20,-10)/10),(random(20,-20)/10),(random(10,30)/10),(random(-300,300)/10),SXF_NOCHECKPOSITION)
    RICT A 1
    RICT AA 0 A_SpawnItemEx("RictusFire",(random(-50,-30)/10),(random(20,-20)/10),(random(20,-20)/10),(random(-20,-10)/10),(random(20,-20)/10),(random(10,30)/10),(random(-300,300)/10),SXF_NOCHECKPOSITION)
	RICT A 0 A_SpawnItemEx("RictusFireA",(random(-50,-30)/10),(random(20,-20)/10),(random(20,-20)/10),(random(-20,-10)/10),(random(20,-20)/10),(random(10,30)/10),(random(-300,300)/10),SXF_NOCHECKPOSITION)
	RICT A 0 A_SpawnItemEx("RictusFireB",(random(-50,-30)/10),(random(20,-20)/10),(random(20,-20)/10),(random(-20,-10)/10),(random(20,-20)/10),(random(10,30)/10),(random(-300,300)/10),SXF_NOCHECKPOSITION)
    RICT A 1
    RICT AA 0 A_SpawnItemEx("RictusFire",(random(-50,-30)/10),(random(20,-20)/10),(random(20,-20)/10),(random(-20,-10)/10),(random(20,-20)/10),(random(10,30)/10),(random(-300,300)/10),SXF_NOCHECKPOSITION)
	RICT A 0 A_SpawnItemEx("RictusFireA",(random(-50,-30)/10),(random(20,-20)/10),(random(20,-20)/10),(random(-20,-10)/10),(random(20,-20)/10),(random(10,30)/10),(random(-300,300)/10),SXF_NOCHECKPOSITION)
	RICT A 0 A_SpawnItemEx("RictusFireB",(random(-50,-30)/10),(random(20,-20)/10),(random(20,-20)/10),(random(-20,-10)/10),(random(20,-20)/10),(random(10,30)/10),(random(-300,300)/10),SXF_NOCHECKPOSITION)
    RICT A 1
    RICT AA 0 A_SpawnItemEx("RictusFire",(random(-50,-30)/10),(random(20,-20)/10),(random(20,-20)/10),(random(-20,-10)/10),(random(20,-20)/10),(random(10,30)/10),(random(-300,300)/10),SXF_NOCHECKPOSITION)
	RICT A 0 A_SpawnItemEx("RictusFireA",(random(-50,-30)/10),(random(20,-20)/10),(random(20,-20)/10),(random(-20,-10)/10),(random(20,-20)/10),(random(10,30)/10),(random(-300,300)/10),SXF_NOCHECKPOSITION)
	RICT A 0 A_SpawnItemEx("RictusFireB",(random(-50,-30)/10),(random(20,-20)/10),(random(20,-20)/10),(random(-20,-10)/10),(random(20,-20)/10),(random(10,30)/10),(random(-300,300)/10),SXF_NOCHECKPOSITION)

    RICT B 1 //A_SkullAttack(14)
    RICT BB 0 A_SpawnItemEx("RictusFire",(random(-50,-30)/10),(random(20,-20)/10),(random(20,-20)/10),(random(-20,-10)/10),(random(20,-20)/10),(random(10,30)/10),(random(-300,300)/10),SXF_NOCHECKPOSITION)
	RICT B 0 A_SpawnItemEx("RictusFireA",(random(-50,-30)/10),(random(20,-20)/10),(random(20,-20)/10),(random(-20,-10)/10),(random(20,-20)/10),(random(10,30)/10),(random(-300,300)/10),SXF_NOCHECKPOSITION)
	RICT B 0 A_SpawnItemEx("RictusFireB",(random(-50,-30)/10),(random(20,-20)/10),(random(20,-20)/10),(random(-20,-10)/10),(random(20,-20)/10),(random(10,30)/10),(random(-300,300)/10),SXF_NOCHECKPOSITION)
    RICT B 1
    RICT BB 0 A_SpawnItemEx("RictusFire",(random(-50,-30)/10),(random(20,-20)/10),(random(20,-20)/10),(random(-20,-10)/10),(random(20,-20)/10),(random(10,30)/10),(random(-300,300)/10),SXF_NOCHECKPOSITION)
	RICT B 0 A_SpawnItemEx("RictusFireA",(random(-50,-30)/10),(random(20,-20)/10),(random(20,-20)/10),(random(-20,-10)/10),(random(20,-20)/10),(random(10,30)/10),(random(-300,300)/10),SXF_NOCHECKPOSITION)
	RICT B 0 A_SpawnItemEx("RictusFireB",(random(-50,-30)/10),(random(20,-20)/10),(random(20,-20)/10),(random(-20,-10)/10),(random(20,-20)/10),(random(10,30)/10),(random(-300,300)/10),SXF_NOCHECKPOSITION)
    RICT B 1
    RICT BB 0 A_SpawnItemEx("RictusFire",(random(-50,-30)/10),(random(20,-20)/10),(random(20,-20)/10),(random(-20,-10)/10),(random(20,-20)/10),(random(10,30)/10),(random(-300,300)/10),SXF_NOCHECKPOSITION)
	RICT B 0 A_SpawnItemEx("RictusFireA",(random(-50,-30)/10),(random(20,-20)/10),(random(20,-20)/10),(random(-20,-10)/10),(random(20,-20)/10),(random(10,30)/10),(random(-300,300)/10),SXF_NOCHECKPOSITION)
	RICT B 0 A_SpawnItemEx("RictusFireB",(random(-50,-30)/10),(random(20,-20)/10),(random(20,-20)/10),(random(-20,-10)/10),(random(20,-20)/10),(random(10,30)/10),(random(-300,300)/10),SXF_NOCHECKPOSITION)
    RICT B 1
    RICT BB 0 A_SpawnItemEx("RictusFire",(random(-50,-30)/10),(random(20,-20)/10),(random(20,-20)/10),(random(-20,-10)/10),(random(20,-20)/10),(random(10,30)/10),(random(-300,300)/10),SXF_NOCHECKPOSITION)
	RICT B 0 A_SpawnItemEx("RictusFireA",(random(-50,-30)/10),(random(20,-20)/10),(random(20,-20)/10),(random(-20,-10)/10),(random(20,-20)/10),(random(10,30)/10),(random(-300,300)/10),SXF_NOCHECKPOSITION)
	RICT B 0 A_SpawnItemEx("RictusFireB",(random(-50,-30)/10),(random(20,-20)/10),(random(20,-20)/10),(random(-20,-10)/10),(random(20,-20)/10),(random(10,30)/10),(random(-300,300)/10),SXF_NOCHECKPOSITION)

    Goto Missile2


  Pain.Sling:
	TNT1 A 0 HealThing(1)
	TNT1 A 0 A_FaceTarget
    TNT1 A 0 A_CustomMissile("MagSlingShot", 32, 0)
	Goto See
  Pain:
    RICT B 1
    RICT BB 0 A_SpawnItemEx("RictusFire",(random(-50,-30)/10),(random(20,-20)/10),(random(20,-20)/10),(random(-20,-10)/10),(random(20,-20)/10),(random(10,30)/10),(random(-300,300)/10),SXF_NOCHECKPOSITION)
	RICT B 0 A_SpawnItemEx("RictusFireA",(random(-50,-30)/10),(random(20,-20)/10),(random(20,-20)/10),(random(-20,-10)/10),(random(20,-20)/10),(random(10,30)/10),(random(-300,300)/10),SXF_NOCHECKPOSITION)
	RICT B 0 A_SpawnItemEx("RictusFireB",(random(-50,-30)/10),(random(20,-20)/10),(random(20,-20)/10),(random(-20,-10)/10),(random(20,-20)/10),(random(10,30)/10),(random(-300,300)/10),SXF_NOCHECKPOSITION)
    RICT B 1
    RICT BB 0 A_SpawnItemEx("RictusFire",(random(-50,-30)/10),(random(20,-20)/10),(random(20,-20)/10),(random(-20,-10)/10),(random(20,-20)/10),(random(10,30)/10),(random(-300,300)/10),SXF_NOCHECKPOSITION)
	RICT B 0 A_SpawnItemEx("RictusFireA",(random(-50,-30)/10),(random(20,-20)/10),(random(20,-20)/10),(random(-20,-10)/10),(random(20,-20)/10),(random(10,30)/10),(random(-300,300)/10),SXF_NOCHECKPOSITION)
	RICT B 0 A_SpawnItemEx("RictusFireB",(random(-50,-30)/10),(random(20,-20)/10),(random(20,-20)/10),(random(-20,-10)/10),(random(20,-20)/10),(random(10,30)/10),(random(-300,300)/10),SXF_NOCHECKPOSITION)
    RICT B 1
    RICT BB 0 A_SpawnItemEx("RictusFire",(random(-50,-30)/10),(random(20,-20)/10),(random(20,-20)/10),(random(-20,-10)/10),(random(20,-20)/10),(random(10,30)/10),(random(-300,300)/10),SXF_NOCHECKPOSITION)
	RICT B 0 A_SpawnItemEx("RictusFireA",(random(-50,-30)/10),(random(20,-20)/10),(random(20,-20)/10),(random(-20,-10)/10),(random(20,-20)/10),(random(10,30)/10),(random(-300,300)/10),SXF_NOCHECKPOSITION)
	RICT B 0 A_SpawnItemEx("RictusFireB",(random(-50,-30)/10),(random(20,-20)/10),(random(20,-20)/10),(random(-20,-10)/10),(random(20,-20)/10),(random(10,30)/10),(random(-300,300)/10),SXF_NOCHECKPOSITION)

    RICT B 1 A_Pain
    RICT BB 0 A_SpawnItemEx("RictusFire",(random(-50,-30)/10),(random(20,-20)/10),(random(20,-20)/10),(random(-20,-10)/10),(random(20,-20)/10),(random(10,30)/10),(random(-300,300)/10),SXF_NOCHECKPOSITION)
	RICT B 0 A_SpawnItemEx("RictusFireA",(random(-50,-30)/10),(random(20,-20)/10),(random(20,-20)/10),(random(-20,-10)/10),(random(20,-20)/10),(random(10,30)/10),(random(-300,300)/10),SXF_NOCHECKPOSITION)
	RICT B 0 A_SpawnItemEx("RictusFireB",(random(-50,-30)/10),(random(20,-20)/10),(random(20,-20)/10),(random(-20,-10)/10),(random(20,-20)/10),(random(10,30)/10),(random(-300,300)/10),SXF_NOCHECKPOSITION)
    RICT B 1
    RICT BB 0 A_SpawnItemEx("RictusFire",(random(-50,-30)/10),(random(20,-20)/10),(random(20,-20)/10),(random(-20,-10)/10),(random(20,-20)/10),(random(10,30)/10),(random(-300,300)/10),SXF_NOCHECKPOSITION)
	RICT B 0 A_SpawnItemEx("RictusFireA",(random(-50,-30)/10),(random(20,-20)/10),(random(20,-20)/10),(random(-20,-10)/10),(random(20,-20)/10),(random(10,30)/10),(random(-300,300)/10),SXF_NOCHECKPOSITION)
	RICT B 0 A_SpawnItemEx("RictusFireB",(random(-50,-30)/10),(random(20,-20)/10),(random(20,-20)/10),(random(-20,-10)/10),(random(20,-20)/10),(random(10,30)/10),(random(-300,300)/10),SXF_NOCHECKPOSITION)
    RICT B 1
    RICT BB 0 A_SpawnItemEx("RictusFire",(random(-50,-30)/10),(random(20,-20)/10),(random(20,-20)/10),(random(-20,-10)/10),(random(20,-20)/10),(random(10,30)/10),(random(-300,300)/10),SXF_NOCHECKPOSITION)
	RICT B 0 A_SpawnItemEx("RictusFireA",(random(-50,-30)/10),(random(20,-20)/10),(random(20,-20)/10),(random(-20,-10)/10),(random(20,-20)/10),(random(10,30)/10),(random(-300,300)/10),SXF_NOCHECKPOSITION)
	RICT B 0 A_SpawnItemEx("RictusFireB",(random(-50,-30)/10),(random(20,-20)/10),(random(20,-20)/10),(random(-20,-10)/10),(random(20,-20)/10),(random(10,30)/10),(random(-300,300)/10),SXF_NOCHECKPOSITION)
    goto See
  Death.Uppercut:
	TNT1 A 0 A_FaceTarget
	TNT1 A 0 Thrustthing(angle*256/360+192, random(3,4), 0, 0)
	TNT1 A 0 Thrustthingz(0,27,0,1)
	Goto Death
  Death:
    DRFX G 1 A_ScreamAndUnblock
	SHAP AA 0 A_SpawnItemEx("RictusFire2",0,0,0,cos(-pitch+Random(-90,90))*3,0,sin(-pitch+Random(-90,90))*3,Random(-180,180),SXF_NOCHECKPOSITION)
	SHAP AA 0 A_SpawnItemEx("RictusFire2A",0,0,0,cos(-pitch+Random(-90,90))*3,0,sin(-pitch+Random(-90,90))*3,Random(-180,180),SXF_NOCHECKPOSITION)
	SHAP AAA 0 A_SpawnItemEx("RictusFire2B",0,0,0,cos(-pitch+Random(-90,90))*3,0,sin(-pitch+Random(-90,90))*3,Random(-180,180),SXF_NOCHECKPOSITION)
	
    DRFX H 1
	SHAP AA 0 A_SpawnItemEx("RictusFire2",0,0,0,cos(-pitch+Random(-90,90))*3,0,sin(-pitch+Random(-90,90))*3,Random(-180,180),SXF_NOCHECKPOSITION)
	SHAP AA 0 A_SpawnItemEx("RictusFire2A",0,0,0,cos(-pitch+Random(-90,90))*3,0,sin(-pitch+Random(-90,90))*3,Random(-180,180),SXF_NOCHECKPOSITION)
	SHAP AAA 0 A_SpawnItemEx("RictusFire2B",0,0,0,cos(-pitch+Random(-90,90))*3,0,sin(-pitch+Random(-90,90))*3,Random(-180,180),SXF_NOCHECKPOSITION)
	
    DRFX I 1
	SHAP AA 0 A_SpawnItemEx("RictusFire2",0,0,0,cos(-pitch+Random(-90,90))*3,0,sin(-pitch+Random(-90,90))*3,Random(-180,180),SXF_NOCHECKPOSITION)
	SHAP AA 0 A_SpawnItemEx("RictusFire2A",0,0,0,cos(-pitch+Random(-90,90))*3,0,sin(-pitch+Random(-90,90))*3,Random(-180,180),SXF_NOCHECKPOSITION)
	SHAP AAA 0 A_SpawnItemEx("RictusFire2B",0,0,0,cos(-pitch+Random(-90,90))*3,0,sin(-pitch+Random(-90,90))*3,Random(-180,180),SXF_NOCHECKPOSITION)
	
	DRFX J 1
	SHAP AA 0 A_SpawnItemEx("RictusFire2",0,0,0,cos(-pitch+Random(-90,90))*3,0,sin(-pitch+Random(-90,90))*3,Random(-180,180),SXF_NOCHECKPOSITION)
	SHAP AA 0 A_SpawnItemEx("RictusFire2A",0,0,0,cos(-pitch+Random(-90,90))*3,0,sin(-pitch+Random(-90,90))*3,Random(-180,180),SXF_NOCHECKPOSITION)
	SHAP AA 0 A_SpawnItemEx("RictusFire2B",0,0,0,cos(-pitch+Random(-90,90))*3,0,sin(-pitch+Random(-90,90))*3,Random(-180,180),SXF_NOCHECKPOSITION)
	
	DRFX K 1
	SHAP AA 0 A_SpawnItemEx("RictusFire2",0,0,0,cos(-pitch+Random(-90,90))*3,0,sin(-pitch+Random(-90,90))*3,Random(-180,180),SXF_NOCHECKPOSITION)
	SHAP AA 0 A_SpawnItemEx("RictusFire2A",0,0,0,cos(-pitch+Random(-90,90))*3,0,sin(-pitch+Random(-90,90))*3,Random(-180,180),SXF_NOCHECKPOSITION)
	SHAP AA 0 A_SpawnItemEx("RictusFire2B",0,0,0,cos(-pitch+Random(-90,90))*3,0,sin(-pitch+Random(-90,90))*3,Random(-180,180),SXF_NOCHECKPOSITION)
	
	DRFX L 1
	SHAP AA 0 A_SpawnItemEx("RictusFire2",0,0,0,cos(-pitch+Random(-90,90))*3,0,sin(-pitch+Random(-90,90))*3,Random(-180,180),SXF_NOCHECKPOSITION)
	SHAP A 0 A_SpawnItemEx("RictusFire2A",0,0,0,cos(-pitch+Random(-90,90))*3,0,sin(-pitch+Random(-90,90))*3,Random(-180,180),SXF_NOCHECKPOSITION)
	SHAP A 0 A_SpawnItemEx("RictusFire2B",0,0,0,cos(-pitch+Random(-90,90))*3,0,sin(-pitch+Random(-90,90))*3,Random(-180,180),SXF_NOCHECKPOSITION)
    stop
  }
}

actor RictusFire
{
  Radius 2
  Height 2
  Renderstyle Add
  +NOBLOCKMAP
  +THRUACTORS
  +NOINTERACTION
  +CLIENTSIDEONLY
  +NOGRAVITY
  //+MISSILE
  +BRIGHT
  +NOTELEPORT
  +DONTSPLASH
  States
  {
  Spawn:
    TNT1 A 0 
	TNT1 A 0 
	TNT1 A 0
	TNT1 A 0
	TNT1 A 0 ACS_ExecuteWithResult(857,12)
	//TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(857,11) == 1,"Toaster1")
	//TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(857,11) >= 2,"Toaster2")
	Goto SpawnAfterScript
  Toaster1:
    Goto SpawnAfterScript
  Toaster2:
    TNT1 A 0
    Stop
  SpawnAfterScript:
	TNT1 A 0
	TNT1 A 0 A_ScaleVelocity(0.8)
	TNT1 A 0 A_Jump(255,"Spawn1","Spawn2","Spawn3","Spawn4","Spawn5","Spawn6","Spawn7","Spawn8","Spawn9","Spawn10")
	Goto Spawn1
  Spawn1:
    CFC1 ABCDEFG 1
	Goto Spawn1A
  Spawn1A:
    CFC1 HIJKLMNOPABCDEFG 1 A_Fadeout(0.15)
    Loop
  Spawn2:
    CFC2 ABCDEFG 1
	Goto Spawn2A
  Spawn2A:
    CFC2 HIJKLMNOPABCDEFG 1 A_Fadeout(0.15)
    Loop
  Spawn3:
    CFC3 ABCDEFG 1
	Goto Spawn3A
  Spawn3A:
    CFC3 HIJKLMNOPABCDEFG 1 A_Fadeout(0.15)
    Loop
  Spawn4:
    CFC4 ABCDEFG 1
	Goto Spawn4A
  Spawn4A:
    CFC4 HIJKLMNOPABCDEFG 1 A_Fadeout(0.15)
    Loop
  Spawn5:
    CFC5 ABCDEFG 1
	Goto Spawn5A
  Spawn5A:
    CFC5 HIJKLMNOPABCDEFG 1 A_Fadeout(0.15)
    Loop
  Spawn6:
    CFC6 ABCDEFG 1
	Goto Spawn6A
  Spawn6A:
    CFC6 HIJKLMNOPABCDEFG 1 A_Fadeout(0.15)
    Loop
  Spawn7:
    CFC7 ABCDEFG 1
	Goto Spawn7A
  Spawn7A:
    CFC7 HIJKLMNOPABCDEFG 1 A_Fadeout(0.15)
    Loop
  Spawn8:
    CFC8 ABCDEFG 1
	Goto Spawn8A
  Spawn8A:
    CFC8 HIJKLMNOPABCDEFG 1 A_Fadeout(0.15)
    Loop
  Spawn9:
    CFC9 ABCDEFG 1
	Goto Spawn9A
  Spawn9A:
    CFC9 HIJKLMNOPABCDEFG 1 A_Fadeout(0.15)
    Loop
  Spawn10:
    CFCF ABCDEFG 1
    Goto SpawnB
  Spawn10A:
    CFCF HIJKLMNOPABCDEFG 1 A_Fadeout(0.15)
    Loop
  }
}

ACTOR RictusFireA : RictusFire
{
  States
  {
  Toaster1:
    TNT1 A 0
	Stop
  }
}

ACTOR RictusFireB : RictusFire
{
  States
  {
  Spawn:
    TNT1 A 0
	TNT1 A 0
	TNT1 A 0
	TNT1 A 0
	TNT1 A 0 A_ScaleVelocity(0.8)
	TNT1 A 0 A_Jump(255,"Spawn1","Spawn2","Spawn3","Spawn4","Spawn5","Spawn6","Spawn7","Spawn8","Spawn9","Spawn10")
	Goto Spawn1
  }
}

actor RictusFire2
{
  Radius 2
  Height 2
  Renderstyle Add
  +NOBLOCKMAP
  +THRUACTORS
  +NOINTERACTION
  +NOGRAVITY
  //+MISSILE
  +BRIGHT
  +NOTELEPORT
  +DONTSPLASH
  States
  {
  Spawn:
    TNT1 A 0 
	TNT1 A 0 
	TNT1 A 0
	TNT1 A 0
	TNT1 A 0 ACS_ExecuteWithResult(857,12)
	//TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(857,11) == 1,"Toaster1")
	//TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(857,11) >= 2,"Toaster2")
	Goto SpawnAfterScript
  Toaster1:
    Goto SpawnAfterScript
  Toaster2:
    TNT1 A 0
    Stop
  SpawnAfterScript:
	TNT1 A 0
	TNT1 A 0 A_ScaleVelocity(0.8)
	TNT1 A 0 A_Jump(256,"Spawn2","Spawn3","Spawn4","Spawn5","Spawn6")
	Goto Spawn2
  Spawn2:
    CFC2 ABCDEF 1
	Goto Spawn2A
  Spawn2A:
    CFC2 GHIJKLMNOPABCDEF 1 A_Fadeout(0.15)
    Loop
  Spawn3:
    CFC3 ABCDEF 1
	Goto Spawn3A
  Spawn3A:
    CFC3 GHIJKLMNOPABCDEF 1 A_Fadeout(0.15)
    Loop
  Spawn4:
    CFC4 ABCDEF 1
	Goto Spawn4A
  Spawn4A:
    CFC4 GHIJKLMNOPABCDEF 1 A_Fadeout(0.15)
    Loop
  Spawn5:
    CFC5 ABCDEF 1
	Goto Spawn5A
  Spawn5A:
    CFC5 GHIJKLMNOPABCDEF 1 A_Fadeout(0.15)
    Loop
  Spawn6:
    CFC6 ABCDEF 1
	Goto Spawn6A
  Spawn6A:
    CFC6 GHIJKLMNOPABCDEF 1 A_Fadeout(0.15)
    Loop
  }
}

ACTOR RictusFire2A : RictusFire2
{
  States
  {
  Toaster1:
    TNT1 A 0
	Stop
  }
}

ACTOR RictusFire2B : RictusFire2
{
  States
  {
  Spawn:
    TNT1 A 0
	TNT1 A 0
	TNT1 A 0
	TNT1 A 0
	TNT1 A 0 A_ScaleVelocity(0.8)
	TNT1 A 0 A_Jump(256,"Spawn2","Spawn3","Spawn4","Spawn5","Spawn6")
	Goto Spawn2
  }
}