Actor Devil 13800
{
//$Category Monsters
  obituary "%o was fried by a Devil."
  hitobituary "%o was flayed by a Devil."
  health 120
  radius 20
  height 56
  mass 120
  speed 10
  painchance 160
  +DONTHURTSPECIES
  SeeSound "imp/sight"
  PainSound "imp/pain"
  DeathSound "imp/death"
  ActiveSound "imp/active"
  MONSTER
  +FLOORCLIP
  states
  {
  Spawn:
    TRO2 AB 10 A_Look
    loop
  See:
    TRO2 AABBCCDD 3 A_Chase
    loop
  Melee:
  Missile:
    TRO2 EF 6 A_FaceTarget
    TRO2 G 4 A_TroopAttack
    TRO2 B 2
    TRO2 VW 6 A_FaceTarget
    TRO2 X 4 A_TroopAttack
    TRO2 E 0 A_Jump(200,9)
    TRO2 D 2
    TRO2 EF 6 A_FaceTarget
    TRO2 G 4 A_TroopAttack
    TRO2 B 2
    TRO2 VW 6 A_FaceTarget
    TRO2 X 4 A_TroopAttack
    TRO2 B 0
    goto See
  Pain:
    TRO2 H 2
    TRO2 H 2 A_Pain
    goto See
  Death:
    TRO2 I 8
    TRO2 J 8 A_Scream
    TRO2 K 6
    TRO2 L 6 A_NoBlocking
    TRO2 M -1
    stop
  XDeath:
    TRO2 N 5
    TRO2 O 5 A_XScream
    TRO2 P 5
    TRO2 Q 5 A_NoBlocking
    TRO2 RST 5
    TRO2 U -1
    stop
  Raise:
    TRO2 ML 8
    TRO2 KJI 6
    goto See
  }
}
//bro thanks for the imp if you are reading this

Actor PSXSpectre 13801
{
//$Category Monsters
Game Doom
Health 300
PainChance 180
Renderstyle Translucent
Alpha 0.8
Speed 10
Radius 30
Height 56
Mass 400
Monster
+FLOORCLIP +FASTER +FASTMELEE
SeeSound "demon/sight"
AttackSound "demon/melee"
PainSound "demon/pain"
DeathSound "demon/death"
ActiveSound "demon/active"
states
{
Spawn:
SAR2 AB 10 A_Look
Loop
See:
SAR2 AABBCCDD 2 A_Chase
Loop
Melee:
SAR2 EF 8 A_FaceTarget
SAR2 G 8 A_SargAttack
Goto See
Pain:
SAR2 H 2
SAR2 H 2 A_Pain
Goto See
Death:
SAR2 I 8
SAR2 J 8 A_Scream
SAR2 K 4
SAR2 L 4 A_NoBlocking
SAR2 M 4
SAR2 N -1
Stop
XDeath:
SARX G 5
SARX H 5 A_XScream
SARX I 5
SARX J 5 A_NoBlocking
SARX J -1
Stop
Raise:
SAR2 NMLKJI 5
Goto See
}
}


ACTOR BounceBall
{
Radius 6
Height 8
Speed 10
spawnid 228
Damage 8000
Projectile
+BOUNCEONWALLS
BounceFactor 1
RenderStyle Add
Alpha 1
SeeSound "caco/attack"
DeathSound "caco/shotx"
States
{
Spawn:
BAL2 AB 4 Bright
Loop
Death:
BAL2 CDE 6 Bright
Stop
}
}

ACTOR SlimeArachnotron 13802
{
//$Category Monsters
Health 375
Radius 64
Height 64
Mass 500
Speed 20
PainChance 15
Monster
+FLOORCLIP
+BOSSDEATH
SeeSound "baby/sight"
PainSound "baby/pain"
DeathSound "baby/death"
ActiveSound "baby/active"
Obituary "$OB_BABY"
States
{
Spawn:
BRSP AB 10 A_Look
Loop
See:
BRSP A 20
BRSP A 3 A_BabyMetal
BRSP ABBCC 3 A_Chase
BRSP D 3 A_BabyMetal
BRSP DEEFF 3 A_Chase
Goto See+1
Missile:
BRSP A 20 Bright A_FaceTarget
BRSP G 4 Bright A_CustomMissile("SlimePlasma",20,0)
BRSP H 4 Bright
BRSP G 4 Bright A_CustomMissile("SlimePlasma",20,0)
BRSP H 1 Bright A_SpidRefire
Goto Missile+1
Pain:
BRSP I 3
BRSP I 3 A_Pain
Goto See+1
Death:
BRSP J 20 A_Scream
BRSP K 7 A_NoBlocking
BRSP LMNO 7
BRSP P -1 A_BossDeath
Stop
Raise:
BRSP P 5
BRSP ONMLKJ 5
Goto See+1
}
}



ACTOR SlimePlasma
{
Radius 16
Height 8
Speed 29
Damage 4
Projectile
+RANDOMIZE
RenderStyle Add 
Alpha 0.75
SeeSound "baby/attack"
DeathSound "baby/shotx"
States
{
Spawn:
SPBX A 5 Bright A_SpawnItem("SlimeParticle",0,0)
Loop
Death:
SPBX BCD 5 Bright A_SpawnItem("PlasmaSmoke",0,0) 
Stop
}
}

ACTOR BaronOfHell
{
Health 1250
Radius 24
Height 64
Mass 1000
Speed 10
PainChance 25
Monster
+FLOORCLIP
+BOSSDEATH
+NOFEAR
+SEEINVISIBLE
+DONTMORPH
+DONTDRAIN 
SeeSound "baron/sight"
PainSound "baron/pain"
DeathSound "baron/death"
ActiveSound "baron/active"
Obituary "$OB_BARON"
HitObituary "$OB_BARONHIT"
States
{
Spawn:
BOSS AB 10 A_Look
Loop
See:
BOSS AABBCCDD 3 A_Chase
Loop
Missile:
BOSS E 0 A_Jump(140,"Missile1", "Missile2" , "Missile3")
BOSS EF 6 A_FaceTarget
BOSS G 4 A_CustomMissile("BaronBall",32,0,0,0)
Goto See
Missile1:
BOSS PQ 8 A_FaceTarget
BOSS R 1 A_CustomMissile("BaronBall",32,0,0,0)
BOSS R 1 A_CustomMissile("BaronBall",32,0,-4,0)
BOSS R 1 A_CustomMissile("BaronBall",32,0,4,0)
Goto See
Missile2:
BOSS PQ 8 A_FaceTarget
BOSS R 1 A_CustomMissile("BaronBall",32,0,0,0)
BOSS R 1 A_CustomMissile("BaronBall",32,0,-9,0)
BOSS R 1 A_CustomMissile("BaronBall",32,0,9,0)
Goto See
Missile3:
BOSS PQ 8 A_FaceTarget
BOSS R 1 A_CustomMissile("BaronBall",32,0,0,0)
BOSS R 1 A_CustomMissile("BaronBall",32,0,-12,0)
BOSS R 1 A_CustomMissile("BaronBall",32,0,12,0)
Goto See
Melee: 
BOSS EF 7 A_FaceTarget
BOSS G 7 A_BruisAttack 
Goto See
Pain:
BOSS H 2
BOSS H 2 A_Pain
Goto See
Death:
BOSS I 8
BOSS J 8 A_Scream
BOSS K 8
BOSS L 8 A_NoBlocking
BOSS MN 8
BOSS O -1 A_BossDeath
Stop
Raise:
BOSS O 8
BOSS NMLKJI 8
Goto See
}
}

ACTOR HellKnight
{
Health 500
Radius 24
Height 64
Mass 1000
Speed 10
PainChance 25
Monster
+FLOORCLIP
+BOSSDEATH
+NOFEAR
+SEEINVISIBLE
+DONTMORPH
+DONTDRAIN 
Health 500
-BOSSDEATH
SeeSound "knight/sight"
ActiveSound "knight/active"
PainSound "knight/pain"
DeathSound "knight/death"
HitObituary "$OB_KNIGHTHIT"
Obituary "$OB_KNIGHT"
States
  {
  Spawn:
    BOS2 AB 10 A_Look
    Loop
  See:
    BOS2 AABBCCDD 3 A_Chase
    Loop
  Melee:
  Missile:
    BOSS E 0 A_Jump(128,"Missile1")
    BOSS E 0 A_Jump(64,"Missile2")
    BOS2 EF 8 A_FaceTarget
    BOS2 G 8 A_BruisAttack
    Goto See
  Missile1:
    LOS2 EF 8 A_FaceTarget
    LOS2 G 8 A_BruisAttack
    Goto See
  Missile2:
    LOS2 EF 8 A_FaceTarget
    LOS2 G 8 A_BruisAttack
    BOS2 EF 8 A_FaceTarget
    BOS2 G 8 A_BruisAttack
    Goto See
  Pain:
    BOS2 H 2
    BOS2 H 2 A_Pain
    Goto See
  Death:
    BOS2 I 8
    BOS2 J 8 A_Scream
    BOS2 K 8
    BOS2 L 8 A_NoBlocking
    BOS2 MN 8
    BOS2 O -1
    Stop
  Raise:
    BOS2 O 8
    BOS2 NMLKJI 8
    Goto See
  }
}


ACTOR BaronBall
{
Radius 6
Height 16
Speed 20
FastSpeed 20
Damage 8
Projectile
PoisonDamage 2, 5, 49
+RANDOMIZE
RenderStyle Add
Alpha 1
SeeSound "baron/attack"
DeathSound "baron/shotx"
States
{
Spawn:
BAL7 AB 4 Bright A_SpawnItem("GreenParticle",0,0)
Loop
Death:
BAL7 CDE 6 Bright
Stop
}
}

Actor TallYellowTorch 13809
{
//$Category Light sources
Game Doom
Radius 16
Height 68
ProjectilePassHeight -16
+SOLID
States
{
Spawn:
YELT ABCD 4 BRIGHT
Loop
}
}


Actor ShortYellowTorch 13810
{
//$Category Light sources
Game Doom
Radius 16
Height 37
ProjectilePassHeight -16
+SOLID
States
{
Spawn:
SYLT ABCD 4 BRIGHT
Loop
}
}

ACTOR Column2 13811
{
//$Category Light Sources
Radius 16
Height 48
ProjectilePassHeight -16
+SOLID
States
{
Spawn:
BCOL A -1 Bright
Stop
}
}

ACTOR RedCandleStick 13814
{
//$Category Light sources
Game Doom
Radius 20
Height 14
States
{
Spawn:
CANR A -1 BRIGHT
Stop
}
}

ACTOR BlueCandleStick 13815
{
//$Category Light sources
Game Doom
Radius 20
Height 14
States
{
Spawn:
CANB A -1 BRIGHT
Stop
}
}

ACTOR BlueEvilEye 13816
{
//$Category Obstacles
Game Doom
Radius 16
Height 54
+SOLID
States
{
Spawn:
CEYB ABCB 6 BRIGHT
Loop
}
}

ACTOR RedEvilEye 13817
{
//$Category Obstacles
Game Doom
Radius 16
Height 54
+SOLID
States
{
Spawn:
CEYR ABCB 6 BRIGHT
Loop
}
}

ACTOR ShortWhiteTorch 13818
{
//$Category Light sources
Game Doom
Radius 16
Height 37
+SOLID
States
{
Spawn:
SMWT ABCD 4 BRIGHT
Loop
}
}

ACTOR TallWhiteTorch 13819
{
//$Category Light sources
Game Doom
Radius 16
Height 68
+SOLID
States
{
Spawn:
TWHI ABCD 4 BRIGHT
Loop
}
}


//==================================================================
//FAST MONSTERS
//==================================================================


ACTOR FastCacodemon : Cacodemon 6000
{
//$Category Fast
Health 425
+ALWAYSFAST
}


ACTOR FastImp : DoomImp 6001
{ 
//$Category Fast
Health 65
+ALWAYSFAST
}


ACTOR FastFatso : Fatso 6002
{
//$Category Fast
Health 625
+ALWAYSFAST
}

ACTOR FastArachnotron 6003
{
//$Category Fast
Health 525
Radius 64
Height 64
Mass 600
Speed 12
PainChance 128
Monster
+FLOORCLIP
+BOSSDEATH
+ALWAYSFAST
SeeSound "baby/sight"
PainSound "baby/pain"
DeathSound "baby/death"
ActiveSound "baby/active"
Obituary "$OB_BABY"
States
{
Spawn:
BSPI AB 10 A_Look
Loop
See:
BSPI A 20
BSPI A 3 A_BabyMetal
BSPI ABBCC 3 A_Chase
BSPI D 3 A_BabyMetal
BSPI DEEFF 3 A_Chase
Goto See+1
Missile:
BSPI A 20 Bright A_FaceTarget
BSPI G 4 Bright A_BspiAttack
BSPI H 4 Bright
BSPI H 1 Bright A_SpidRefire
Goto Missile+1
Pain:
BSPI I 3
BSPI I 3 A_Pain
Goto See+1
Death:
BSPI J 20 A_Scream
BSPI K 7 A_NoBlocking
BSPI LMNO 7
BSPI P -1 A_BossDeath
Stop
Raise:
BSPI P 5
BSPI ONMLKJ 5
Goto See+1
}
}

ACTOR FastBaronOfHell : BaronOfHell 6004
{
//$Category Fast
+ALWAYSFAST
}


Actor SlimePlasmaParticle
{
Height 0
Radius 0
Mass 0
+Missile
+NoBlockMap
-NoGravity
//+LowGravity
+DontSplash
+DoomBounce
+FORCEXYBILLBOARD
BounceFactor 0.2
Gravity 0.8
RenderStyle Add
Scale 0.035
//Speed 2
Speed 12
States
{
Spawn:
Death:
SPKB A 2 Bright A_FadeOut(0.04)
Loop
}
}

Actor GreenPlasmaParticle
{
Height 0
Radius 0
Mass 0
+Missile
+NoBlockMap
-NoGravity
//+LowGravity
+DontSplash
+DoomBounce
+FORCEXYBILLBOARD
BounceFactor 0.2
Gravity 0.8
RenderStyle Add
Scale 0.035
//Speed 2
Speed 12
States
{
Spawn:
Death:
PGEX A 2 Bright A_FadeOut(0.04)
Loop
}
}

Actor GreenParticle
{
RenderStyle Add
Alpha 0.55
Scale 0.4
+NoClip
+NoBlockMap
+NoGravity
+Missile
+FORCEXYBILLBOARD
States
{
Spawn:
TNT1 AA 0 A_CustomMissile ("GreenPlasmaParticle", 0, 0, random (0, 360), 2, random (50, 130))
PGEX A 1
Stop
}
}

Actor SlimeParticle
{
RenderStyle Add
Alpha 0.95
Scale 1.1
+NoClip
+NoBlockMap
+NoGravity
+Missile
+FORCEXYBILLBOARD
States
{
Spawn:
TNT1 AA 0 A_CustomMissile ("SlimePlasmaParticle", 0, 0, random (0, 360), 2, random (50, 130))
TNT1 AA 0 A_CustomMissile ("PlasmaSmoke", 0, 0, random (0, 360), 2, random (0, 360))
PBEX A 1 BRIGHT 
TNT1 A 1
Stop
}
}


ACTOR ExplosionSmoke
{
+NOBLOCKMAP
+NOTELEPORT
+DONTSPLASH
+MISSILE
+FORCEXYBILLBOARD
+NOINTERACTION
+NOGRAVITY
+DOOMBOUNCE
+THRUACTORS
BounceFactor 0.5
Radius 0
Height 0
Alpha 0.2
RenderStyle Translucent
Scale 0.9
Speed 2
States
{
Spawn:
TNT1 A 0
SMO2 A 20
SMO2 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 2 A_FadeOut(0.01)
Goto Death
Death:
TNT1 A 0
Stop

Stap:		
TNT1 A 0
Stop
}
}

Actor PlasmaSmoke: ExplosionSmoke
{
Speed 1
Scale 0.5
Alpha 0.1
}

ACTOR NewRadSuit : PowerupGiver Replaces RadSuit
{
 Height 46
 +INVENTORY.AUTOACTIVATE
 +INVENTORY.ALWAYSPICKUP
 Inventory.MaxAmount 0
 Inventory.PickupMessage "$GOTSUIT"
 Powerup.Type IronFeet
 States
 {
 Spawn:
  SUIT A -1 Bright
  Stop
  Pickup:
  TNT1 A 1 A_GiveInventory("PowerPoisonProtection")
  stop
 }
} 

Actor PoisonProtectionGiver : PowerupGiver
{
  Inventory.MaxAmount 0
  Powerup.Type PowerPoisonProtection
  Powerup.Color White 0.0
  Powerup.Duration -1
  +INVENTORY.AUTOACTIVATE
  +INVENTORY.ALWAYSPICKUP
  States
  {
  Spawn:
    NULL A 1 Bright
    Loop
  }
}

Actor PowerPoisonProtection : PowerProtection 
{
DamageFActor "Poison", 0.0
Inventory.Icon "none"
}




Actor SnowParticle 
{
Radius 1
Height 1
Projectile
RenderStyle Translucent
Alpha 0
Scale 0.6
+MISSILE 
+NOBLOCKMAP
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_SetScale(frandom(0.3, 0.6))
SNEG AAAAAAA 2 A_FadeIn(0.1)
SNEG A 3
goto Spawn+9
Death:
SNEG A 1 A_FadeOut(0.05)
Loop
}
}

Actor SnowSpawner 13803
{
Radius 4
Height 4
+WINDTHRUST
+NOTRIGGER
+SPAWNCEILING
+NOBLOCKMAP
+NOGRAVITY
+NOSECTOR
+NOCLIP
-SOLID
+NOINTERACTION
+DONTSPLASH 
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_CheckSight("Nevidim")
TNT1 A 0 A_JumpIf(Args[2] > 0, "Circle")
TNT1 A 8 A_SpawnItemEx ("SnowParticle", Random(-Args[0], -Args[0]), Random(-Args[0], -Args[0]), 0, frandom(-1.0, 1.0), frandom(-1.0, 1.0), frandom(-1.0, -3.0), 0, 128, Args[1])
Loop
Circle:
TNT1 A 8 A_SpawnItemEx ("SnowParticle", Random(-Args[0], -Args[0]), 0, 0, frandom(-1.0, 1.0), frandom(-1.0, 1.0), frandom(-1.0, -3.0), Random(0, 360), 128, Args[1])
Loop
Nevidim:
TNT1 A 1
Goto Spawn
}
}


ACTOR HealthBackpack : BackpackItem 13808
{
//$Category Ammunition
  Height 26
  Inventory.PickupMessage "Picked up a backpack full of ammo and health!"
  Inventory.Amount 1
  States
  {
  Spawn:
    MPAK A -1
    Stop
  }
}




ACTOR VP_BlueTorch replaces BlueTorch
{
	Radius 16
	Height 64
	+SOLID
	states
	{
	Spawn:
		TBLU AABBCCDD 1 BRIGHT A_SpawnItemEx("VP_BlueFlame", random(-2, 2), random(-2, 2), 58, 0, 0, 1)
		loop
	}
}

ACTOR VP_BlueFlame
{
	radius 2
	height 2
	mass 400
	-SOLID
	+NOGRAVITY
//	renderstyle add
	states
	{
	Spawn:
		BLUF ABCDEFGGG 2 BRIGHT
		stop
	}
}

ACTOR VP_GreenTorch replaces GreenTorch
{
	Radius 16
	Height 64
	+SOLID
	states
	{
	Spawn:
		TGRN AABBCCDD 1 BRIGHT A_SpawnItemEx("VP_GreenFlame", random(-2, 2), random(-2, 2), 58, 0, 0, 1)
		loop
	}
}

ACTOR VP_GreenFlame
{
	radius 2
	height 2
	mass 400
	-SOLID
	+NOGRAVITY
//	renderstyle add
	states
	{
	Spawn:
		GRNF ABCDEFGGG 2 BRIGHT
		stop
	}
}

ACTOR VP_RedTorch replaces RedTorch
{
	Radius 16
	Height 64
	+SOLID
	states
	{
	Spawn:
		TRED AABBCCDD 1 BRIGHT A_SpawnItemEx("VP_RedFlame", random(-2, 2), random(-2, 2), 58, 0, 0, 1)
		loop
	}
}

ACTOR VP_RedFlame
{
	radius 2
	height 2
	mass 400
	-SOLID
	+NOGRAVITY
//	renderstyle add
	states
	{
	Spawn:
		REDF ABCDEFGGG 2 BRIGHT
		stop
	}
}

actor VoxelSwitchBase : SwitchableDecoration
{
	Radius 16
	Height 32

	Activation THINGSPEC_Switch

	+SOLID
	+NOGRAVITY
	+USESPECIAL
	+NOCLIP
}

actor VoxelSwitchTech01 : VoxelSwitchBase 15000
{
	states
	{
		Spawn:
			Goto Inactive
		Active:
			SW01 B 70 A_PlaySound("switches/normbutn")
			SW01 B 0 Thing_Deactivate(0)
		Inactive:
			SW01 A -1 A_PlaySound("switches/exitbutn")
			Stop
	}
}

actor VoxelSwitchTech02 : VoxelSwitchBase 15001
{
	states
	{
		Spawn:
			Goto Inactive
		Active:
			SW02 B 70 A_PlaySound("switches/normbutn")
			SW02 B 0 Thing_Deactivate(0)
		Inactive:
			SW02 A -1 A_PlaySound("switches/exitbutn")
			Stop
	}
}

actor VoxelSwitchTech03 : VoxelSwitchBase 15002
{
	states
	{
		Spawn:
			Goto Inactive
		Active:
			SW03 B 70 A_PlaySound("switches/normbutn")
			SW03 B 0 Thing_Deactivate(0)
		Inactive:
			SW03 A -1 A_PlaySound("switches/exitbutn")
			Stop
	}
}

actor VoxelSwitchTech04 : VoxelSwitchBase 15003
{
	states
	{
		Spawn:
			Goto Inactive
		Active:
			SW04 B 70 A_PlaySound("switches/normbutn")
			SW04 B 0 Thing_Deactivate(0)
		Inactive:
			SW04 A -1 A_PlaySound("switches/exitbutn")
			Stop
	}
}

actor VoxelSwitchHell01 : VoxelSwitchBase 15020
{
	states
	{
		Spawn:
			Goto Inactive
		Active:
			SW05 B 70 A_PlaySound("switches/normbutn")
			SW05 B 0 Thing_Deactivate(0)
		Inactive:
			SW05 A -1 A_PlaySound("switches/exitbutn")
			Stop
	}
}