local function f()if target then maid.alignOrientation.Enabled=true maid.worldAttachment.CFrame=CFrame.new(maid.humanoidRootPart.Position,target.Position)else maid.alignOrientation.Enabled=false end if target then local f=(target.Position-maid.humanoidRootPart.Position).magnitude<=ATTACK_RANGE+1 if f then if not attacking and tick()-lastAttackTime>ATTACK_DELAY then attack()end else runToTarget()end end if not target or not isInstaceAttackable(target)then findTargets()end end local function V()target=nil attacking=false newTarget=nil searchParts=nil searchingForTargets=false maid.heartbeatConnection:Disconnect()maid.humanoidRootPart.Anchored=true maid.deathAnimation:Play()wait(maid.deathAnimation.Length*.65)maid.deathAnimation:Stop()maid.humanoidRootPart.Anchored=false if RAGDOLL_ENABLED then Ragdoll(maid.instance,maid.humanoid)end if DESTROY_ON_DEATH then delay(DEATH_DESTROY_DELAY,function()destroy()end)end end
--[[
	Event functions
]]

local function onHeartbeat()
	if target then
		-- Point towards the enemy
		maid.alignOrientation.Enabled = true
		maid.worldAttachment.CFrame = CFrame.new(maid.humanoidRootPart.Position, target.Position)
	else
		maid.alignOrientation.Enabled = false
	end

	if target then
		local inAttackRange = (target.Position - maid.humanoidRootPart.Position).magnitude <= ATTACK_RANGE + 1

		if inAttackRange then
			if not attacking and tick() - lastAttackTime > ATTACK_DELAY then
				attack()
			end
		else
			runToTarget()
		end
	end

	-- Check if the current target no longer exists or is not attackable
	if not target or not isInstaceAttackable(target) then
		findTargets()
	end
end

local function died()
	target = nil
	attacking = false
	newTarget = nil
	searchParts = nil
	searchingForTargets = false

	maid.heartbeatConnection:Disconnect()

	maid.humanoidRootPart.Anchored = true
	maid.deathAnimation:Play()

	wait(maid.deathAnimation.Length * 0.65)

	maid.deathAnimation:Stop()
	maid.humanoidRootPart.Anchored = false

	if RAGDOLL_ENABLED then
		Ragdoll(maid.instance, maid.humanoid)
	end

	if DESTROY_ON_DEATH then
		delay(DEATH_DESTROY_DELAY, function()
			destroy()
		end)
	end
end
