actor BIGPLANET 10001
{
	height 400
	radius 400
	scale 8
	+SPAWNCEILING
	+SOLID
	+NOGRAVITY
	+FLOAT
	states
	{
	Spawn:
		PLAN A -1 bright
		Stop
	}
}

actor ASTRONAUT 10002
{
	height 128
	radius 128
	+SOLID
	+NOGRAVITY
	+FLOAT
	states
	{
	Spawn:
		ASTR A -1
		Stop
	}
}

actor SMALLPLANET 10003
{
	height 200
	radius 200
	scale .8
	+SPAWNCEILING
	+SOLID
	+NOGRAVITY
	+FLOAT
	states
	{
	Spawn:
		PLAN A -1 bright
		Stop
	}
}

actor TABLELAMP : Rocket 10004
{
	spawnid 153
	height 20
	radius 20
	PROJECTILE
	states
	{
	Spawn:
		JLMP A 3 bright
		JLMP B 3 bright
		JLMP C 3 bright
		JLMP D 3 bright
		JLMP E 3 bright
		JLMP F 3 bright
		JLMP G 3 bright
		JLMP H 3 bright
		JLMP I 3 bright
		JLMP J 3 bright
		JLMP K 3 bright
		JLMP L 3 bright
		Loop
	}
}

actor FRYINGPAN : Rocket 10005
{
	spawnid 154
	height 20
	radius 20
	PROJECTILE
	states
	{
	Spawn:
		FPAN A 3 bright
		FPAN B 3 bright
		FPAN C 3 bright
		FPAN D 3 bright
		FPAN E 3 bright
		FPAN F 3 bright
		FPAN G 3 bright
		FPAN H 3 bright
		FPAN I 3 bright
		FPAN J 3 bright
		FPAN K 3 bright
		FPAN L 3 bright
		Loop
	}
}

actor ROLLINGPIN : Rocket 10006
{
	spawnid 155
	height 20
	radius 20
	PROJECTILE
	states
	{
	Spawn:
		RPIN A 3 bright
		RPIN B 3 bright
		RPIN C 3 bright
		RPIN D 3 bright
		RPIN E 3 bright
		RPIN F 3 bright
		RPIN G 3 bright
		RPIN H 3 bright
		RPIN I 3 bright
		RPIN J 3 bright
		RPIN K 3 bright
		RPIN L 3 bright
		Loop
	}
}

actor IMPSPIN 10007
{
	radius 20
	height 56
	+SOLID

	states
	{
	Spawn:
		TROO H -1
		Stop
	}
}

actor MANCDANCE 10008
{
	radius 60
	height 56
	+SOLID

	states
	{
	Spawn:
		FATT A 6
		FATT G 6
		FATT I 6
		FATT J 6
		Loop
	}
}

actor CACODANCE 10009
{
	radius 40
	height 56
	+SOLID

	states
	{
	Spawn:
		HEAD A 6
		HEAD B 6
		HEAD C 6
		HEAD D 6
		HEAD C 6
		HEAD B 6
		Loop
	}
}

actor HKDANCE 10010
{
	radius 30
	height 56
	+SOLID

	states
	{
	Spawn:
		BOSS E 6
		BOSS F 6
		BOSS G 6
		BOSS H 10
		Loop
	}
}

actor ELEMDANCE 10011
{
	radius 40
	height 56
	+SOLID

	states
	{
	Spawn:
		PAIN A 6
		PAIN B 6
		PAIN C 6
		PAIN D 6
		PAIN C 6
		PAIN B 6
		Loop
	}
}

actor REVEDANCE 10012
{
	radius 30
	height 56
	+SOLID

	states
	{
	Spawn:
		SKEL A 6
		SKEL B 6
		SKEL C 6

		SKEL A 6
		SKEL B 6
		SKEL C 6


		SKEL G 6
		SKEL H 6
		SKEL I 6

		SKEL G 6
		SKEL H 6
		SKEL I 6


		SKEL K 6
		SKEL L 6

		SKEL K 6
		SKEL L 6

		Loop
	}
}

actor SEAWEED1 10013
{
	radius 20
	height 20

	states
	{
	Spawn:
		SEAW A -1
		Stop
	}
}

actor SEAWEED2 10014
{
	radius 20
	height 20

	states
	{
	Spawn:
		SEAW B -1
		Stop
	}
}

actor SEAWEED3 10015
{
	radius 20
	height 20

	states
	{
	Spawn:
		SEAW D -1
		Stop
	}
}

actor CORAL 10016
{
	radius 20
	height 56
	+SOLID

	states
	{
	Spawn:
		SEAW C -1
		Loop
	}
}

actor SNOWSPAWN 10017
{
	+NOCLIP
	+SPAWNCEILING
	+NOGRAVITY
	states
	{
	Spawn:
		TNT1 A 1
		TNT1 A 0 A_Jump(5, 2)
		TNT1 A 2
		Loop
		TNT1 A 0 A_Jump(127, 1, 2, 3, 4, 5)
		TNT1 A 0 A_SpawnItem("SNOW1", 0, 0)
		Loop
		TNT1 A 0 A_SpawnItem("SNOW2", 0, 0)
		Loop
		TNT1 A 0 A_SpawnItem("SNOW3", 0, 0)
		Loop
		TNT1 A 0 A_SpawnItem("SNOW4", 0, 0)
		Loop
		TNT1 A 0 A_SpawnItem("SNOW5", 0, 0)
		Loop
	}
}

actor SNOW1 
{
	spawnid 156
	height 0
	+MISSILE
	+LOWGRAVITY
	states
	{
	Spawn: 
		SNOW A -1 bright
		Stop
	Death:
		Stop
	}
}

actor SNOW2 : SNOW1
{
	spawnid 157
	scale 1.5
}

actor SNOW3 : SNOW1
{
	spawnid 158
	scale .75
}

actor SNOW4 : SNOW1
{
	spawnid 159
	scale .5
}

actor SNOW5 : SNOW1
{
	spawnid 159
	scale 2
}

actor FlashlightGL : Weapon
{
	+WIMPY_WEAPON
	+DONTBOB
	radius 20
	height 16
	inventory.pickupmessage "You got the flashlight!"
	inventory.pickupsound "pickups/weapons"
	weapon.selectionorder 999999999
	weapon.ammouse 0
	weapon.ammogive 0
	states
	{
	Ready:
		JTFL A 1 A_WeaponReady
		JTFL A 0 A_Light0
		loop
	Deselect:
		JTFL A 1 A_Lower
		loop
	Select:
		JTFL A 1 A_Raise
		loop
	Fire:
		JTFL A 0 A_SpawnItemEx("Lightbeam1", 14.0, -6.0, 32.0, 0.0, 0.0, 0.0, 0.0, 128)
		JTFL A 0 A_SpawnItemEx("Lightbeam1", 32.0 * (cos(pitch) * 2), -6.0, (32.0 * (sin(pitch) * 2)) * -1.0 + 32.0, 0.0, 0.0, 0.0, 0.0, 128)
		JTFL A 0 A_SpawnItemEx("Lightbeam1", 64.0 * (cos(pitch) * 2), -6.0, (64.0 * (sin(pitch) * 2)) * -1.0 + 32.0, 0.0, 0.0, 0.0, 0.0, 128)
		JTFL A 0 A_SpawnItemEx("Lightbeam2", 96.0 * (cos(pitch) * 2), -6.0, (96.0 * (sin(pitch) * 2)) * -1.0 + 32.0, 0.0, 0.0, 0.0, 0.0, 128)
		JTFL A 0 A_SpawnItemEx("Lightbeam2", 128.0 * (cos(pitch) * 2), -6.0, (128.0 * (sin(pitch) * 2)) * -1.0 + 32.0, 0.0, 0.0, 0.0, 0.0, 128)
		JTFL A 0 A_SpawnItemEx("Lightbeam3", 160.0 * (cos(pitch) * 2), -6.0, (160.0 * (sin(pitch) * 2)) * -1.0 + 32.0, 0.0, 0.0, 0.0, 0.0, 128)
		JTFL A 1 A_SpawnItemEx("Lightbeam3", 192.0 * (cos(pitch) * 2), -6.0, (192.0 * (sin(pitch) * 2)) * -1.0 + 32.0, 0.0, 0.0, 0.0, 0.0, 128)
		goto Ready
	AltFire:
		JTFL A 0 A_Jump (128, 1, 2, 6, 8, 10)
		JTFL A 6 A_Light2
		goto Ready
		JTFL A 3 A_Light1
		JTFL A 2 A_Light0
		JTFL A 3 A_Light1
		JTFL A 4 A_Light2
		goto Ready
		JTFL A 4 A_Light1
		JTFL A 2 A_Light2
		goto Ready
		JTFL A 3 A_Light1
		JTFL A 2 A_Light2
		goto Ready
		JTFL A 2 A_Light1
		JTFL A 3 A_Light2
		goto Ready
	Spawn:
		LAUN A -1
		stop
	}
}

actor Lightbeam1
{
	+NOBLOCKMAP
	+NOGRAVITY
	+NOCLIP
	+ALLOWCLIENTSPAWN
	renderstyle none
	states
	{
	Spawn:
// The old frame length of 1 doesn't work on Zandronum and ZDoom.--Acts 19 quiz
		TNT1 A 2 Light("FLASHGL1")
		stop
	}
}

actor Lightbeam2 : Lightbeam1
{
	states
	{
	Spawn:
		TNT1 A 2 Light("FLASHGL2")
		stop
	}
}

actor Lightbeam3 : Lightbeam1
{
	states
	{
	Spawn:
		TNT1 A 2 Light("FLASHGL3")
		stop
	}
}


actor COSBY 10020
{
	MONSTER
	Speed 24
	Floatspeed 12
	Health 100000
	meleedamage 255
	Radius 32
	Height 38
	Mass 90000
	Scale 0.6
	painchance 200
	Obituary "%o bought a one-way ticket to the Jell-O Pudding Pop factory."
	+FLOAT
	+LOOKALLAROUND
	+NOGRAVITY
	seesound "JTBCHAH3"
	activesound "JTBCHAH1"
	States
	{
	Spawn:
		JTBC A 1 A_Look
		Loop
	See:
		JTBC AAAAAAAA 1 A_Chase("Melee",0,1)
		JTBC A 0
		Loop
	Pain:
		JTBC A 0 A_PlaySound("JTBCRAP")
		goto See
	Melee:
		JTBC A 0 A_FaceTarget
		JTBC A 0 A_MeleeAttack
		JTBC A 0 A_VileAttack
		JTBC A 0 A_Jump(255,1,2,3,4,5,6,7,8,9,10)
		JTBC A 6 bright A_PlaySound("JTBCZIPZ")
		goto See
		JTBC A 6 bright A_PlaySound("JTBCWHAT")
		goto See
		JTBC A 6 bright A_PlaySound("JTBCBICY")
		goto See
		JTBC A 6 bright A_PlaySound("JTBCYSEE")
		goto See
		JTBC A 6 bright A_PlaySound("JTBCPOKE")
		goto See
		JTBC A 6 bright A_PlaySound("JTBCJAZ2")
		goto See
		JTBC A 6 bright A_PlaySound("JTBCKOO1")
		goto See
		JTBC A 6 bright A_PlaySound("JTBCKOO2")
		goto See
		JTBC A 6 bright A_PlaySound("JTBCPOK2")
		goto See
		JTBC A 6 bright A_PlaySound("JTBCJAZZ")
		goto See
	Death:
		JTBC B 8 bright A_PlaySound("JTBCHAH2")
		JTBC C 8 bright A_XScream
		JTBC D 8 bright
		JTBC E 8 bright 
		JTBC F 8 bright A_NoBlocking
		JTBC G 8 bright // A_PainDie("MINICOZ")
		JTBC H 8 bright 
		JTBC H 0
		Stop
	}
}

actor MINICOZ 10021
{
	obituary "%o listened to the rap music."
	Scale 0.28
	health 400
	radius 16
	height 48
	mass 60
	speed 18
	damage 30
	painchance 160
	attacksound "jtmbbicy"
	painsound "jtmbrap"
	deathsound "jtmbgwah"
	activesound "jtmbhehe"
	MONSTER
	+FLOAT
	+LOOKALLAROUND
	+NOGRAVITY
	+MISSILEMORE
	+DONTFALL
	states
	{
	Spawn:
		JTBC A 10 A_Look
		loop
	See:
		JTBC A 6 A_Chase
		loop
	Missile:
		JTBC A 8 bright A_FaceTarget
		JTBC A 4 bright A_SkullAttack
		JTBC A 4 bright
		goto See
	Pain:
		JTBC A 3
		JTBC A 3 A_Pain
		goto See
	Death:
		JTBC B 8 bright A_PlaySound("JTMBGWAH")
		JTBC C 8 bright A_XScream
		JTBC D 8 bright
		JTBC E 8 bright
		JTBC F 8 bright A_NoBlocking
		JTBC G 8 bright
		JTBC H 8 bright 
		JTBC H 0
		Stop
	}
}

actor STEAMCEIL 10022
{
	+NOCLIP
	+SPAWNCEILING
	+NOGRAVITY
	states
	{
	Spawn:
		TNT1 A 0 A_Jump(256, 1, 2, 3, 4, 5)
		TNT1 A 4 A_SpawnItemEx("STEAMPART1", 0, 0, -5, Random(1,2), Random(1,2), Random(-0.2,-0.6), 0, 128)
		Loop
		TNT1 A 4 A_SpawnItemEx("STEAMPART2", 0, 0, -5, Random(1,2), Random(1,2), Random(-0.2,-0.6), 0, 128)
		Loop
		TNT1 A 4 A_SpawnItemEx("STEAMPART3", 0, 0, -5, Random(1,2), Random(1,2), Random(-0.2,-0.6), 0, 128)
		Loop
		TNT1 A 4 A_SpawnItemEx("STEAMPART4", 0, 0, -5, Random(1,2), Random(1,2), Random(-0.2,-0.6), 0, 128)
		Loop
		TNT1 A 4 A_SpawnItemEx("STEAMPART5", 0, 0, -5, Random(1,2), Random(1,2), Random(-0.2,-0.6), 0, 128)
		Loop
	}
}

actor STEAMFLOOR 10023
{
	+NOCLIP
	+NOGRAVITY
	states
	{
	Spawn:
		TNT1 A 0 A_Jump(256, 1, 2, 3, 4, 5)
		TNT1 A 4 A_SpawnItemEx("STEAMPART1", 0, 0, 0, Random(1,2), Random(1,2), Random(0.6,1.0), 0, 128)
		Loop
		TNT1 A 4 A_SpawnItemEx("STEAMPART2", 0, 0, 0, Random(1,2), Random(1,2), Random(0.6,1.0), 0, 128)
		Loop
		TNT1 A 4 A_SpawnItemEx("STEAMPART3", 0, 0, 0, Random(1,2), Random(1,2), Random(0.6,1.0), 0, 128)
		Loop
		TNT1 A 4 A_SpawnItemEx("STEAMPART4", 0, 0, 0, Random(1,2), Random(1,2), Random(0.6,1.0), 0, 128)
		Loop
		TNT1 A 4 A_SpawnItemEx("STEAMPART5", 0, 0, 0, Random(1,2), Random(1,2), Random(0.6,1.0), 0, 128)
		Loop
	}
}

actor STEAMPART1
{
	height 0
	+MISSILE
	+NOGRAVITY
	+NOCLIP
	+ALLOWCLIENTSPAWN
	renderstyle add
	alpha 0.4
	states
	{
	Spawn:
		JTSM A 10 A_SetTranslucent(0.05, 1)
		JTSM A 10 A_SetTranslucent(0.10, 1)
		JTSM A 10 A_SetTranslucent(0.15, 1)
		JTSM A 10 A_SetTranslucent(0.20, 1)
		JTSM A 10 A_SetTranslucent(0.25, 1)
		JTSM A 10 A_SetTranslucent(0.30, 1)
		JTSM A 10 A_SetTranslucent(0.35, 1)
		JTSM A 10 A_SetTranslucent(0.40, 1)
		JTSM A 10 A_SetTranslucent(0.35, 1)
		JTSM A 10 A_SetTranslucent(0.30, 1)
		JTSM A 10 A_SetTranslucent(0.25, 1)
		JTSM A 10 A_SetTranslucent(0.20, 1)
		JTSM A 10 A_SetTranslucent(0.15, 1)
		JTSM A 10 A_SetTranslucent(0.10, 1)
		JTSM A 10 A_SetTranslucent(0.05, 1)
		goto Death
	Death:
		Stop
	}
}

actor STEAMPART2
{
	height 0
	+MISSILE
	+NOGRAVITY
	+NOCLIP
	+ALLOWCLIENTSPAWN
	renderstyle add
	alpha 0.4
	states
	{
	Spawn:
		JTSM B 10 A_SetTranslucent(0.05, 1)
		JTSM B 10 A_SetTranslucent(0.10, 1)
		JTSM B 10 A_SetTranslucent(0.15, 1)
		JTSM B 10 A_SetTranslucent(0.20, 1)
		JTSM B 10 A_SetTranslucent(0.25, 1)
		JTSM B 10 A_SetTranslucent(0.30, 1)
		JTSM B 10 A_SetTranslucent(0.35, 1)
		JTSM B 10 A_SetTranslucent(0.40, 1)
		JTSM B 10 A_SetTranslucent(0.35, 1)
		JTSM B 10 A_SetTranslucent(0.30, 1)
		JTSM B 10 A_SetTranslucent(0.25, 1)
		JTSM B 10 A_SetTranslucent(0.20, 1)
		JTSM B 10 A_SetTranslucent(0.15, 1)
		JTSM B 10 A_SetTranslucent(0.10, 1)
		JTSM B 10 A_SetTranslucent(0.05, 1)
		goto Death
	Death:
		Stop
	}
}

actor STEAMPART3
{
	height 0
	+MISSILE
	+NOGRAVITY
	+NOCLIP
	+ALLOWCLIENTSPAWN
	renderstyle add
	alpha 0.4
	states
	{
	Spawn:
		JTSM C 10 A_SetTranslucent(0.05, 1)
		JTSM C 10 A_SetTranslucent(0.10, 1)
		JTSM C 10 A_SetTranslucent(0.15, 1)
		JTSM C 10 A_SetTranslucent(0.20, 1)
		JTSM C 10 A_SetTranslucent(0.25, 1)
		JTSM C 10 A_SetTranslucent(0.30, 1)
		JTSM C 10 A_SetTranslucent(0.35, 1)
		JTSM C 10 A_SetTranslucent(0.40, 1)
		JTSM C 10 A_SetTranslucent(0.35, 1)
		JTSM C 10 A_SetTranslucent(0.30, 1)
		JTSM C 10 A_SetTranslucent(0.25, 1)
		JTSM C 10 A_SetTranslucent(0.20, 1)
		JTSM C 10 A_SetTranslucent(0.15, 1)
		JTSM C 10 A_SetTranslucent(0.10, 1)
		JTSM C 10 A_SetTranslucent(0.05, 1)
		goto Death
	Death:
		Stop
	}
}

actor STEAMPART4
{
	height 0
	+MISSILE
	+NOGRAVITY
	+NOCLIP
	+ALLOWCLIENTSPAWN
	renderstyle add
	alpha 0.4
	states
	{
	Spawn:
		JTSM D 10 A_SetTranslucent(0.05, 1)
		JTSM D 10 A_SetTranslucent(0.10, 1)
		JTSM D 10 A_SetTranslucent(0.15, 1)
		JTSM D 10 A_SetTranslucent(0.20, 1)
		JTSM D 10 A_SetTranslucent(0.25, 1)
		JTSM D 10 A_SetTranslucent(0.30, 1)
		JTSM D 10 A_SetTranslucent(0.35, 1)
		JTSM D 10 A_SetTranslucent(0.40, 1)
		JTSM D 10 A_SetTranslucent(0.35, 1)
		JTSM D 10 A_SetTranslucent(0.30, 1)
		JTSM D 10 A_SetTranslucent(0.25, 1)
		JTSM D 10 A_SetTranslucent(0.20, 1)
		JTSM D 10 A_SetTranslucent(0.15, 1)
		JTSM D 10 A_SetTranslucent(0.10, 1)
		JTSM D 10 A_SetTranslucent(0.05, 1)
		goto Death
	Death:
		Stop
	}
}

actor STEAMPART5
{
	height 0
	+MISSILE
	+NOGRAVITY
	+NOCLIP
	+ALLOWCLIENTSPAWN
	renderstyle add
	alpha 0.4
	states
	{
	Spawn:
		JTSM E 10 A_SetTranslucent(0.05, 1)
		JTSM E 10 A_SetTranslucent(0.10, 1)
		JTSM E 10 A_SetTranslucent(0.15, 1)
		JTSM E 10 A_SetTranslucent(0.20, 1)
		JTSM E 10 A_SetTranslucent(0.25, 1)
		JTSM E 10 A_SetTranslucent(0.30, 1)
		JTSM E 10 A_SetTranslucent(0.35, 1)
		JTSM E 10 A_SetTranslucent(0.40, 1)
		JTSM E 10 A_SetTranslucent(0.35, 1)
		JTSM E 10 A_SetTranslucent(0.30, 1)
		JTSM E 10 A_SetTranslucent(0.25, 1)
		JTSM E 10 A_SetTranslucent(0.20, 1)
		JTSM E 10 A_SetTranslucent(0.15, 1)
		JTSM E 10 A_SetTranslucent(0.10, 1)
		JTSM E 10 A_SetTranslucent(0.05, 1)
		goto Death
	Death:
		Stop
	}
}

ACTOR EvilXeroxBall : BFGBall
{
	SpawnID 222
	States
	{
	Death:
		BFE1 A 6 BRIGHT
		BFE1 B 6 BRIGHT A_Explode(512,512,1)
		BFE1 CDEF 6 BRIGHT
		Stop
	}
}

actor FLOATINGCAR 10030
{
	height 128
	radius 128
	scale 1.5
	+SOLID
	+NOGRAVITY
	+FLOAT
	states
	{
	Spawn:
		BCAR A -1
		Stop
	}
}

// https://zandronum.com/forum/viewtopic.php?t=8510#p108486
actor SpaceDM5FloorKiller
{
	+SHOOTABLE
	States
	{
	Spawn:
		TNT1 A 0
		Stop
	See:
		TNT1 A 0 A_CustomMeleeAttack(0x7FFFFFFF, "", "", Falling, false)
		Stop
	}
}