ACTOR DevilChest: ComplexChest
{
 Radius 16
 Height 27
 Scale 1.2
 Tag "\c[G2]Devil Chest\c- (loot)"
 States
 {
  Spawn:
	DVBX A 0 Nodelay ACS_NamedExecuteAlways("ttkCrateIcon",0)
  SpawnLoop:
	DVBX A 1
	Loop
  ActiveCont:
	DVBX B 50
	TNT1 A 0 A_Jump(200,"Weapons","Ammos","Items","Monsters")
	Goto DeathLoop
  Weapons:
	TNT1 A 0 A_Jump(100,"Weapons2")
	TNT1 A 0 A_PlaySound("chest/drop",7)
	TNT1 A 0 A_SpawnItemEx("ChestWeapon",0,0,2,random(1,8),0,10,random(0,360),0,0)
	TNT1 A 0 A_SpawnItemEx("ChestWeapon",0,0,2,random(1,8),0,10,random(0,360),0,100)
	Goto DeathLoop
  Weapons2:
	DVBX B 1 A_PlaySound("chest/drop",7)
	TNT1 A 0 A_SpawnItemEx("RareChestWeapon",0,0,2,random(1,8),0,10,random(0,360),0,150)
	TNT1 A 0 A_SpawnItemEx("ChestWeapon",0,0,2,random(1,8),0,10,random(0,360),0,100)
	TNT1 A 0 A_SpawnItemEx("ChestWeapon",0,0,2,random(1,8),0,10,random(0,360),0,0)
	Goto DeathLoop
  Ammos:
	DVBX B 1 A_PlaySound("DevilChest/Good",7,5.0)
	TNT1 A 0 A_Jump(130,"NemesisAmmos")
  DCells:
	TNT1 A 0 A_SpawnItemEx("ChestWeaponFromTXS",0,0,2,random(1,8),0,10,random(0,360),0,0)
	TNT1 AAAAA 0 A_SpawnItemEx("DCell",0,0,2,random(1,8),0,10,random(0,360),0,0)
	TNT1 A 0 A_SpawnItemEx("DCellPack",0,0,2,random(1,8),0,10,random(0,360),0,0)
	Goto DeathLoop
  NemesisAmmos:
	TNT1 A 0 A_SpawnItemEx("ChestWeaponFromTXS",0,0,2,random(1,8),0,10,random(0,360),0,0)
	TNT1 AAAAA 0 A_SpawnItemEx("NemesisAmmoSpawner",0,0,2,random(1,8),0,10,random(0,360),0,0)
	TNT1 AA 0 A_SpawnItemEx("NemesisBoxSpawner",0,0,2,random(1,8),0,10,random(0,360),0,0)
	Goto DeathLoop
  Items:
	TNT1 A 0 A_Jump(128,"Item2","Item4")
	TNT1 A 0 A_Jump(50,"ItemLuck")
	DVBX B 1 A_PlaySound("DevilChest/Good",7,5.0)
	TNT1 A 0 A_SpawnItemEx("IShuffleSpawner",0,0,2,random(1,8),0,10,random(0,360),0,0)
	Goto DeathLoop
  Item2:
	DVBX B 1 A_PlaySound("DevilChest/Good",7,5.0)
	TNT1 A 0 A_Jump(100,"Item3")
	TNT1 A 0 A_SpawnItemEx("ChestCrate",0,0,2,random(1,8),0,10,random(0,360),0,0)
	Goto DeathLoop
  Item3:
	TNT1 A 0 A_SpawnItemEx("SuperCrate",0,0,2,random(1,8),0,10,random(0,360),0,0)
	Goto DeathLoop
  Item4:
	DVBX B 1 A_PlaySound("DevilChest/Good",7,5.0)
	TNT1 A 0 A_Jump(100,"Item5")
	TNT1 A 0 A_SpawnItemEx("PlayingCard",0,0,2,random(1,8),0,10,random(0,360),0,0)
	Goto DeathLoop
  Item5:
	TNT1 A 0 A_Jump(30,"Item6")
	TNT1 A 0 A_SpawnItemEx("Brimstoneitem",0,0,2,random(1,8),0,10,random(0,360),0,0)
	Goto DeathLoop
  Item6:
	TNT1 A 0 A_SpawnItemEx("MagicCard",0,0,2,random(1,8),0,10,random(0,360),0,0)
	Goto DeathLoop
  ItemLuck:
	DVBX B 1 A_PlaySound("DevilChest/Luck",7)
	TNT1 A 0 A_PlaySound("Weapons/ProxFire")
	TNT1 A 0 A_SpawnItemEx ("DevilStuff",0,0,24,random(3,14),0,random(2,12),random(0,359))
	DVBX B 44
	TNT1 A 0 A_PlaySound("Weapons/ProxFire")
	TNT1 A 0 A_SpawnItemEx ("DevilStuff",0,0,24,random(3,14),0,random(2,12),random(0,359))
	DVBX B 44
	TNT1 A 0 A_PlaySound("Weapons/ProxFire")
	TNT1 A 0 A_SpawnItemEx ("DevilStuff",0,0,24,random(3,14),0,random(2,12),random(0,359))
	DVBX B 44
	TNT1 A 0 A_PlaySound("Weapons/ProxFire")
	TNT1 A 0 A_SpawnItemEx ("DevilStuff",0,0,24,random(3,14),0,random(2,12),random(0,359))
	Goto DeathLoop
  Monsters:
	TNT1 A 0 A_Jump(80,"TooBad","Friend")
	TNT1 A 0 A_PlaySound("chest/drop",7)
	TNT1 A 0 A_SpawnItemEx("MonsterBeacon",0,0,2,random(1,8),0,10,random(0,360),0,0)
	Goto DeathLoop
  TooBad:
	TNT1 A 0 A_Jump(80,"OhShit","OhFuck")
	DVBX B 1 A_PlaySound("DevilChest/Bad",7)
	TNT1 A 0 A_SpawnItemEx("MonsterBeacon",0,0,2,random(1,8),0,10,random(0,360),0,0)
	TNT1 A 0 A_SpawnItemEx("MonsterBeacon",0,0,2,random(1,8),0,10,random(0,360),0,0)
	TNT1 A 0 A_SpawnItemEx("MonsterBeacon",0,0,2,random(1,8),0,10,random(0,360),0,0)
	Goto DeathLoop
  OhShit:
	DVBX B 1 A_PlaySound("DevilChest/Worst",7)
	DVBX B 11
	TNT1 A 0 A_PlaySound("Weapons/ProxFire")
	TNT1 A 0 A_SpawnItemEx ("MonsterCube",0,0,24,random(3,14),0,random(2,12),random(0,359))
	DVBX B 11
	TNT1 A 0 A_PlaySound("Weapons/ProxFire")
	TNT1 A 0 A_SpawnItemEx ("MonsterCube",0,0,24,random(3,14),0,random(2,12),random(0,359))
	DVBX B 11
	TNT1 A 0 A_PlaySound("Weapons/ProxFire")
	TNT1 A 0 A_SpawnItemEx ("MonsterCube",0,0,24,random(3,14),0,random(2,12),random(0,359))
	DVBX B 11
	TNT1 A 0 A_PlaySound("Weapons/ProxFire")
	TNT1 A 0 A_SpawnItemEx ("MonsterCube",0,0,24,random(3,14),0,random(2,12),random(0,359))
	DVBX B 11
	TNT1 A 0 A_PlaySound("Weapons/ProxFire")
	TNT1 A 0 A_SpawnItemEx ("MonsterCube",0,0,24,random(3,14),0,random(2,12),random(0,359))
	DVBX B 11
	TNT1 A 0 A_PlaySound("Weapons/ProxFire")
	TNT1 A 0 A_SpawnItemEx ("MonsterCube",0,0,24,random(3,14),0,random(2,12),random(0,359))
	DVBX B 11
	TNT1 A 0 A_PlaySound("Weapons/ProxFire")
	TNT1 A 0 A_SpawnItemEx ("MonsterCube",0,0,24,random(3,14),0,random(2,12),random(0,359))
	DVBX B 11
	TNT1 A 0 A_PlaySound("Weapons/ProxFire")
	TNT1 A 0 A_SpawnItemEx ("MonsterCube",0,0,24,random(3,14),0,random(2,12),random(0,359))
	DVBX B 11
	TNT1 A 0 A_PlaySound("Weapons/ProxFire")
	TNT1 A 0 A_SpawnItemEx ("MonsterCube",0,0,24,random(3,14),0,random(2,12),random(0,359))
	DVBX B 11
	TNT1 A 0 A_PlaySound("Weapons/ProxFire")
	TNT1 A 0 A_SpawnItemEx ("MonsterCube",0,0,24,random(3,14),0,random(2,12),random(0,359))
	Goto DeathLoop
  Friend:
	TNT1 A 0 A_PlaySound("DevilChest/Luck",7)
	TNT1 A 0 A_SpawnItemEx("Beacon",0,0,2,random(1,8),0,10,random(0,360),0,0)
	TNT1 A 0 A_SpawnItemEx("MarineMedicBeacon",0,0,2,random(1,8),0,10,random(0,360),0,0) //BLOOD
	TNT1 A 0 A_SpawnItemEx("MarineDispensersBeacon",0,0,2,random(1,8),0,10,random(0,360),0,0) //BLOOD
	TNT1 A 0 A_SpawnItemEx("MarineDBFGBeacon",0,0,2,random(1,8),0,10,random(0,360),0,0) //BLOOD
	Goto DeathLoop
  OhFuck:
	DVBX B 1 A_PlaySound("DevilChest/Worst",7)
	TNT1 A 0 A_SpawnItemEx("BossBeacon",0,0,2,random(1,3),0,10,random(0,360),0,0)
	TNT1 A 0 A_SpawnItemEx("ChestWeapon",0,0,2,random(1,8),0,10,random(0,360),0,0)
	Goto DeathLoop
  DeathLoop:
	DVBX B 70
	DVBX B 5 A_Fadeout(0.05)
	Wait
 }
}

actor MonsterBeacon
{
  -SOLID
  -SHOOTABLE
  States
  {
  Spawn:
    BEAC A 105
    BEAC A 0 A_CustomMissile ("TeleportFog", 0, 0, 0, 0, 0)
    BEAC A 0 A_SpawnItemEx ("ChestMonsters", 0, 0, 8, 0, 0, 0, 0, 1)
    BEAC A 105
    BEAC A 0 A_CustomMissile ("TeleportFog", 0, 0, 0, 0, 0)
    BEAC A 0 A_SpawnItemEx ("ChestMonsters", 0, 0, 8, 0, 0, 0, 0, 1)
    BEAC A 105
    BEAC A 0 A_CustomMissile ("TeleportFog", 0, 0, 0, 0, 0)
    BEAC A 0 A_SpawnItemEx ("ChestMonsters", 0, 0, 8, 0, 0, 0, 0, 1)
    BEAC A 105
    goto Death
  Death:
	TNT1 A 1 A_CustomMissile ("TeleportFog", 0, 0, 0, 0, 0)
    stop
  }
}

actor BossBeacon
{
  -SOLID
  -SHOOTABLE
  States
  {
  Spawn:
    BEAC A 330
    BEAC A 0 A_CustomMissile ("TeleportFog", 0, 0, 0, 0, 0)
    BEAC A 0 A_SpawnItemEx ("Cyberdemon", 0, 0, 8, 0, 0, 0, 0, 1)
    BEAC A 105
    goto Death
  Death:
	TNT1 A 1 A_CustomMissile ("TeleportFog", 0, 0, 0, 0, 0)
    stop
  }
}

Actor MonsterCube
{
Radius 20
Height 32
Scale 1
-SOLID
States
 {
  Spawn:
	BOSF AABBCCDD 1 Bright A_CheckFloor("Done")
	Loop
  Done:
    BOSF Z 0
	BOSF Z 0 A_CustomMissile ("TeleportFog", 0, 0, 0, 0, 0)
	BOSF Z 1 A_SpawnItemEx ("ChestMonsters", 0, 0, 8, 0, 0, 0, 0, 1)
	Stop
  }
}

Actor DevilStuff
{
Radius 20
Height 32
Scale 1
-SOLID
+DROPPED
States
 {
  Spawn:
	BOSF AABBCCDD 1 Bright A_CheckFloor("Done")
	Loop
  Done:
	BOSF Z 0 A_CustomMissile ("TeleportFog", 0, 0, 0, 0, 0)
	SUPC Z 0 A_Jump(100,2)
	BOSF Z 1 A_SpawnItemEx ("UtilyCrateGot", 0, 0, 8, 0, 0, 0, 0, 1)
	Stop
	BOSF Z 1 A_SpawnItemEx ("HealthCrateGot", 0, 0, 8, 0, 0, 0, 0, 1)
	Stop
  }
}