//FLASHER
freeslot(
	"MT_FLASHER",
	"MT_ORB",
	"SPR_FLSH",
	"SPR_LORB",
	"S_ORB1",
	"S_ORB2",
	"S_ORB3",
	"S_ORB4",
	"S_FLASH1",
	"S_FLASH2",
	"S_FLASHINPLACE1",
	"S_FLASHINPLACE2",
	"S_FLASHMOVE1",
	"S_FLASHMOVE2",
	"S_FLASHMOVE3",
	"S_FLASHMOVE4",
	"S_FLASHATTACK1",
	"S_FLASHATTACK2",
	"S_FLASHATTACK3",
	"S_FLASHATTACK4",
	"S_FLASHATTACK5",
	"S_FLASHATTACK6",
	"S_FLASHATTACK7",
	"S_FLASHATTACK8",
	"S_FLASHATTACK9",
	"S_FLASHATTACK10",
	"S_FLASHATTACK11",
	"S_FLASHATTACK12",
	"S_FLASHATTACK13",
	"S_FLASHATTACK14",
	"S_FLASHATTACK15",
	"S_FLASHATTACK16",
	"S_FLASHATTACK17",
	"S_FLASHATTACK18",
	"S_FLASHATTACK19",
	"S_FLASHATTACK20",
	"S_FLASHATTACK21",
	"S_FLASHATTACK22"
)

mobjinfo[MT_FLASHER] = {
//$Name Flasher
//$Sprite FLSHA1
//$Category Genesis Enemies
	doomednum = 2048,
	spawnstate = S_FLASHINPLACE1,
	spawnhealth = 1,
	seestate = S_FLASHMOVE1,
	reactiontime = 2,
	meleestate = S_FLASHATTACK1,
	missilestate = S_FLASHATTACK1,
	deathstate = S_XPLD_FLICKY,
	deathsound = sfx_pop,
	speed = 4*FRACUNIT,
	radius = 20*FRACUNIT,
	height = 24*FRACUNIT,
	mass = 100,
	activesound = sfx_None,
	flags = MF_SLIDEME|MF_ENEMY|MF_SPECIAL|MF_SHOOTABLE|MF_NOGRAVITY
}

states[S_FLASHINPLACE1] =	{SPR_FLSH,	A,	2,	A_Look,	0,	0,	S_FLASHINPLACE2}
states[S_FLASHINPLACE2] =	{SPR_FLSH,	A,	2,	A_Look,	0,	0,	S_FLASHINPLACE1}
states[S_FLASHMOVE1] =	{SPR_FLSH,	A,	16,	A_BuzzFly,	0,	0,	S_FLASHMOVE2}
states[S_FLASHMOVE2] =	{SPR_FLSH,	A,	16,	A_BuzzFly,	0,	0,	S_FLASHMOVE3}
states[S_FLASHMOVE3] =	{SPR_FLSH,	A,	16,	A_BuzzFly,	0,	0,	S_FLASHMOVE4}
states[S_FLASHMOVE4] =	{SPR_FLSH,	A,	16,	A_BuzzFly,	0,	0,	S_FLASHATTACK1}
states[S_FLASHATTACK1] =	{SPR_FLSH,	A,	1,	A_SpawnObjectRelative,	0,	0+MT_ORB,	S_FLASHATTACK2}
states[S_FLASHATTACK2] =	{SPR_FLSH,	A,	2,	A_ForceStop,	0,	0,	S_FLASHATTACK3}
states[S_FLASHATTACK3] =	{SPR_FLSH,	A,	1,	A_SpawnObjectRelative,	0,	0+MT_ORB,	S_FLASHATTACK4}
states[S_FLASHATTACK4] =	{SPR_FLSH,	A,	2,	A_ForceStop,	0,	0,	S_FLASHATTACK5}
states[S_FLASHATTACK5] =	{SPR_FLSH,	A,	1,	A_SpawnObjectRelative,	0,	0+MT_ORB,	S_FLASHATTACK6}
states[S_FLASHATTACK6] =	{SPR_FLSH,	A,	2,	A_ForceStop,	0,	0,	S_FLASHATTACK7}
states[S_FLASHATTACK7] =	{SPR_FLSH,	A,	1,	A_SpawnObjectRelative,	0,	0+MT_ORB,	S_FLASHATTACK8}
states[S_FLASHATTACK8] =	{SPR_FLSH,	A,	2,	A_ForceStop,	0,	0,	S_FLASHATTACK9}
states[S_FLASHATTACK9] =	{SPR_FLSH,	A,	1,	A_SpawnObjectRelative,	0,	0+MT_ORB,	S_FLASHATTACK10}
states[S_FLASHATTACK10] =	{SPR_FLSH,	A,	2,	A_ForceStop,	0,	0,	S_FLASHATTACK11}
states[S_FLASHATTACK11] =	{SPR_FLSH,	A,	1,	A_SpawnObjectRelative,	0,	0+MT_ORB,	S_FLASHATTACK12}
states[S_FLASHATTACK12] =	{SPR_FLSH,	A,	2,	A_ForceStop,	0,	0,	S_FLASHATTACK13}
states[S_FLASHATTACK13] =	{SPR_FLSH,	A,	1,	A_SpawnObjectRelative,	0,	0+MT_ORB,	S_FLASHATTACK14}
states[S_FLASHATTACK14] =	{SPR_FLSH,	A,	2,	A_ForceStop,	0,	0,	S_FLASHATTACK15}
states[S_FLASHATTACK15] =	{SPR_FLSH,	A,	1,	A_SpawnObjectRelative,	0,	0+MT_ORB,	S_FLASHATTACK16}
states[S_FLASHATTACK16] =	{SPR_FLSH,	A,	2,	A_ForceStop,	0,	0,	S_FLASHATTACK17}
states[S_FLASHATTACK17] =	{SPR_FLSH,	A,	1,	A_SpawnObjectRelative,	0,	0+MT_ORB,	S_FLASHATTACK18}
states[S_FLASHATTACK18] =	{SPR_FLSH,	A,	2,	A_ForceStop,	0,	0,	S_FLASHATTACK19}
states[S_FLASHATTACK19] =	{SPR_FLSH,	A,	1,	A_SpawnObjectRelative,	0,	0+MT_ORB,	S_FLASHATTACK20}
states[S_FLASHATTACK20] =	{SPR_FLSH,	A,	2,	A_ForceStop,	0,	0,	S_FLASHATTACK21}
states[S_FLASHATTACK21] =	{SPR_FLSH,	A,	1,	A_SpawnObjectRelative,	0,	0+MT_ORB,	S_FLASHATTACK22}
states[S_FLASHATTACK22] =	{SPR_FLSH,	A,	2,	A_ForceStop,	0,	0,	S_FLASHMOVE1}

mobjinfo[MT_ORB] = {
	doomednum = -1,
	spawnstate = S_ORB1,
	spawnhealth = 1,
	seestate = S_ORB1,
	reactiontime = 2,
	deathsound = sfx_s3k40,
	speed = 2*FRACUNIT,
	radius = 25*FRACUNIT,
	height = 30*FRACUNIT,
	mass = 100,
	damage = 1,
	flags = MF_PAIN|MF_NOGRAVITY|MF_RUNSPAWNFUNC
}

states[S_ORB1] =	{SPR_LORB,	FF_FULLBRIGHT|A,	2,	A_PlaySound,	sfx_s3kd9l,	1,	S_ORB2}
states[S_ORB2] =	{SPR_LORB,	B,	2,	None,	0,	0,	S_ORB3}
states[S_ORB3] =	{SPR_NULL,	A,	2,	None,	0,	0,	S_ORB4}
states[S_ORB4] =	{SPR_NULL,	A,	1,	A_RemoteDamage,	0,	2,	S_ORB3}
