-- Bot Ability --

if srb2p return end

addHook("BotTiccmd", function(bot, cmd)
	local player = players[0]
	local mo = players[0].mo
	
	if player.exiting then
		return
	end
	
	if bot.mo and bot.mo.skin == "flchan" and players[0].mo
	
		if bot.mo.mdind
			if P_AproxDistance(bot.mo.z-mo.z,P_AproxDistance(bot.mo.x-mo.x,bot.mo.y-mo.y)) <= bot.mo.radius*2
			and player.speed == 0 and P_IsObjectOnGround(bot.mo)
			and not bot.mo.comdencore
				bot.mo.mdind.flags2 = $ & ~MF2_DONTDRAW 
				bot.jumpfactor = FRACUNIT
			else
				bot.mo.mdind.flags2 = $|MF2_DONTDRAW
				bot.jumpfactor = skins[bot.mo.skin].jumpfactor
			end
		else
			local micind = P_SpawnMobj(bot.mo.x, bot.mo.y, bot.mo.z, MT_OVERLAY)
			micind.target = bot.mo
			micind.state = S_MICDROP_INDICATOR
			micind.flags2 = $|MF2_DONTDRAW
			bot.mo.mdind = micind
		end
		
		if bot.mo.comdencore
			cmd.buttons = $ | BT_USE
			if P_IsObjectOnGround(bot.mo)
				bot.mo.comdencore = nil
				cmd.buttons = $ & ~BT_USE
			end
			return true
		end
			
		
		if player.cmd.buttons & BT_JUMP
		and not (player.pflags & PF_THOKKED)
		and player.pflags & PF_JUMPED
		and P_IsObjectOnGround(bot.mo)
		and P_AproxDistance(bot.mo.z-mo.z,P_AproxDistance(bot.mo.x-mo.x,bot.mo.y-mo.y)) <= bot.mo.radius*2
			bot.mo.comdencore = true
			cmd.buttons = $ | BT_USE
			return true
		end
		
		if player.cmd.buttons & BT_CUSTOM1
		and P_IsObjectOnGround(bot.mo)
		and P_AproxDistance(bot.mo.z-mo.z,P_AproxDistance(bot.mo.x-mo.x,bot.mo.y-mo.y)) <= bot.mo.radius*2
			cmd.buttons = $ | BT_CUSTOM1
		end
	end
end)