freeslot("MT_METAL30CHASE")

mobjinfo[MT_METAL30CHASE] = {
        doomednum = -1,
        spawnstate = S_NULL,
        spawnhealth = 1,
        seestate = S_NULL,
        seesound = sfx_None,
        attacksound = sfx_None,
        painstate = S_NULL,
        painsound = sfx_None,
        meleestate = S_NULL,
        missilestate = S_NULL,
        deathstate = S_NULL,
        xdeathstate = S_NULL,
        deathsound = sfx_None,
		radius = mobjinfo[MT_TAILSOVERLAY].radius,
		height = mobjinfo[MT_TAILSOVERLAY].height,
        activesound = sfx_None,
        flags = MF_NOBLOCKMAP|MF_NOGRAVITY|MF_NOCLIP|MF_NOCLIPHEIGHT|MF_SCENERY,
        raisestate = S_NULL
}

addHook("FollowMobj", function(player, mobj)
	local mo = player.mo
	if not (mo and mo.valid and mobj and mobj.valid) 
		return true 
	end
	mobj.flags2 = $&~MF2_LINKDRAW
	mobj.skin = mo.skin
	mobj.rollangle = mo.rollangle
	mobj.mirrored = mo.mirrored
	mobj.spritexscale = mo.spritexscale
	mobj.spriteyscale = mo.spriteyscale
	mobj.spritexoffset = mo.spritexoffset
	mobj.spriteyoffset = mo.spriteyoffset
	mobj.renderflags = $|RF_FULLBRIGHT
	mobj.sprite2 = mo.sprite2
	mobj.angle = player.drawangle
	if player.speed >= player.runspeed
	and (player.mo.state == S_PLAY_RUN or player.mo.state == S_PLAY_FLOAT or player.mo.state == S_PLAY_FLOAT_RUN or player.mo.state == S_PLAY_DASH)
		local metal30run = P_SpawnMobjFromMobj(mobj, -10*FRACUNIT, -10*FRACUNIT, 0, MT_SPINDUST)
		metal30run.color = SKINCOLOR_PURPLE
		metal30run.colorized = true
		metal30run.blendmode = AST_ADD
		metal30run.fuse = 1
		metal30run.scale = player.mo.scale/1
		metal30run.state = S_JETFUME1
		if (leveltime % 4 == 0)
			metal30run.frame = B|FF_FULLBRIGHT
		elseif (leveltime % 5 == 0)
			metal30run.frame = C|FF_FULLBRIGHT
		elseif (leveltime % 6 == 0)
			metal30run.frame = B|FF_FULLBRIGHT
		elseif (leveltime % 7 == 0)
			metal30run.frame = A|FF_FULLBRIGHT
		elseif (leveltime % 2 == 0)
			metal30run.frame = B|FF_FULLBRIGHT
		else
			metal30run.frame = A|FF_FULLBRIGHT
		end
	end
end, MT_METAL30CHASE)