freeslot(
	"MT_ELECTRIDUS",
	"MT_ELECTRIDUSBALL",
			"SPR_THMG",
			"S_THMG1",	
			"S_THMG2",
			"S_THMG3",
	"S_ELECTRIDUS_STND",
	"S_ELECTRIDUS_RUN",
	"S_ELECTRIDUSBALL"
)

addHook("MapThingSpawn", function(mobj)
	local ball
	for i=1, mobj.info.damage do
		ball = P_SpawnMobj(mobj.x, mobj.y, mobj.z, mobj.info.painchance)
		ball.target = mobj
		ball.movedir = FixedAngle(FixedMul(FixedDiv(i<<FRACBITS, mobj.info.damage<<FRACBITS), 360<<FRACBITS))
		ball.threshold = ball.radius + mobj.radius + FixedMul(ball.info.painchance, ball.scale)
	end
end,MT_ELECTRIDUS)

mobjinfo[MT_ELECTRIDUS]={
//$Category Enemies
//$Name Electridus
//$Sprite UNIDA1
	doomednum = 2500,
	spawnstate = S_ELECTRIDUS_STND,
	seestate = S_ELECTRIDUS_RUN,
	deathstate = S_XPLD1,
	deathsound = sfx_pop,
	spawnhealth = 1,
	reactiontime = 32,
	painchance = MT_ELECTRIDUSBALL, --object to spawn
	speed = 2,
	mass = 4*FRACUNIT,
	damage = 5, --amount of objects to spawn
	radius = 18*FRACUNIT,
	height = 36*FRACUNIT,	
	flags = MF_ENEMY|MF_SHOOTABLE|MF_SPECIAL|MF_NOGRAVITY
}

mobjinfo[MT_ELECTRIDUSBALL]={
	doomednum = -1,
	spawnstate = S_THMG1,
	spawnhealth = 1,
	reactiontime = 1,
	painchance = 30*FRACUNIT, --additional distance from spawner
	speed = 2*FRACUNIT,
	mass = DMG_ELECTRIC, --damage type
	damage = 8*FRACUNIT,
	radius = 13*FRACUNIT,
	height = 26*FRACUNIT,	
	flags = MF_PAIN|MF_NOGRAVITY|MF_NOCLIP|MF_NOCLIPHEIGHT|MF_NOCLIPTHING
}

states[S_ELECTRIDUS_STND]={SPR_UNID, A, 4,  A_Look, 0, 0, S_ELECTRIDUS_STND}
states[S_ELECTRIDUS_RUN]={SPR_UNID, A, 1,  A_Chase, 0, 0, S_ELECTRIDUS_RUN}
states[S_ELECTRIDUSBALL]={SPR_UNID, B, 1,  A_UnidusBall, 1, 0, S_ELECTRIDUSBALL}

states[S_THMG1]={SPR_THMG, A, 2,  A_UnidusBall, 1, 0, S_THMG2}
states[S_THMG2]={SPR_THMG, B, 2,  A_UnidusBall, 1, 0, S_THMG3}
states[S_THMG3]={SPR_THMG, C, 2,  A_UnidusBall, 1, 0, S_THMG1}