freeslot(
	"MT_EE_CRAWLA_TIMID",
	"MT_EE_CRAWLA_AGGRESSIVE",
	"MT_EE_CRAWLA_SHOOTER",
	"MT_EE_CRAWLA_SNIPER",
	"MT_EE_BULLET",
	"MT_EE_BULLET_SNIPER",
	"MT_SOUTHDIST_RINGBOX5",
	"MT_SOUTHDIST_RINGBOX20",
	"sfx_yellum",
	"sfx_raybng",
	"sfx_raylsr",
	"sfx_rayjng",
	"sfx_raybot",
	"sfx_raybul",
	"sfx_raybum",
	"sfx_raybos",
	"sfx_raybht"
)

sfxinfo[sfx_yellum] = {
	caption = "Yellow Lum"
}

sfxinfo[sfx_raybot] = {
	caption = "Bot Destroyed"
}

sfxinfo[sfx_raybul] = {
	caption = "Bullet"
}

sfxinfo[sfx_raybum] = {
	caption = "Boom"
}
sfxinfo[sfx_raybht] = {
	caption = "Bot Hit"
}

function A_CustomRingBox(actor, var1, var2)
	local givering = 0
	if not actor.target.player
		return
	end
	if var1 == 0
		local randval = P_RandomRange(0, 5)
		if randval == 0
			givering = 1
		elseif randval >= 1
		and randval <= 4
			givering = 5 * randval
		else
			givering = 40
		end
	else
		givering = var1
	end
	P_GivePlayerRings(actor.target.player, givering)
	S_StartSound(actor.target.player.mo, sfx_itemup)
end

-- Change Enemy colors
addHook("MobjSpawn",function(mobj)
	if not mapheaderinfo[gamemap].enchantedenclavelua then return end
	if mobj.type == MT_EE_CRAWLA_TIMID
		mobj.color = SKINCOLOR_BUBBLEGUM
	elseif mobj.type == MT_EE_CRAWLA_AGGRESSIVE
		mobj.color = SKINCOLOR_ICY
	elseif mobj.type == MT_EE_CRAWLA_SHOOTER
		mobj.color = SKINCOLOR_CRIMSON
	elseif mobj.type == MT_EE_CRAWLA_SNIPER
		mobj.color = SKINCOLOR_MOSS
	end
end)

-- Prevent bullets from destroying the bots
addHook("ShouldDamage", function(target, inflictor, source, damage, damagetype)
	if not mapheaderinfo[gamemap].enchantedenclavelua then return end
	if (target.type == MT_PLAYER) then return end
	if (inflictor.type == MT_EE_BULLET
	or inflictor.type == MT_EE_BULLET_SNIPER)
	and (target.type == MT_EE_CRAWLA_TIMID
	or target.type == MT_EE_CRAWLA_AGGRESSIVE
	or target.type == MT_EE_CRAWLA_SHOOTER
	or target.type == MT_EE_CRAWLA_SNIPER)
		return false
	end
end)

--Remove fret flag
addHook("MobjThinker", function(mobj)
	if not mapheaderinfo[gamemap].enchantedenclavelua then return end
	if mobj.flags2 & MF2_FRET and mobj.fuse <= 2
		mobj.flags2 = $ - MF2_FRET
		mobj.fuse = 0
	end
end,MT_EE_CRAWLA_SNIPER)

addHook("MobjDamage", function(mobj)
	if not mapheaderinfo[gamemap].enchantedenclavelua then return end
	mobj.fuse = 20
	if mobj.tracer == nil then return end
	mobj.tracer.state = S_NULL
end,MT_EE_CRAWLA_SNIPER)

--random daytime

local daytime = 0

local function RandomDayTime()
	P_LinedefExecute(4000 + daytime)
	P_LinedefExecute(4004 + daytime) --fix colormaps
end

addHook("MapLoad", function()
	if not mapheaderinfo[gamemap].enchantedenclavelua then return end
	-- 1-dawn 2-noon 3-dusk 4-night
	daytime = P_RandomRange(1,4)
	RandomDayTime()
end)

--synchronize

addHook("NetVars", function(net)
	if not mapheaderinfo[gamemap].enchantedenclavelua then return end
	mapmusname = net($)
end)

--play music

addHook("TeamSwitch", function(player)
	if not mapheaderinfo[gamemap].enchantedenclavelua then return end
	if (daytime == 1)
		print(daytime + 4000)
		S_ChangeMusic("ENENDA", true, player)
	elseif (daytime == 2)
		print(daytime + 4000)
		S_ChangeMusic("ENENNO", true, player)
	elseif (daytime == 3)
		print(daytime + 4000)
		S_ChangeMusic("ENENDU", true, player)
	elseif (daytime == 4)
		print(daytime + 4000)
		S_ChangeMusic("ENENNI", true, player)
	end
end)