local function M(M,n)while not M:FindFirstChild(n)do M.ChildAdded:wait()end return M[n]end local n=script.Parent local e={}local a local F local function Y(M)if e[M]then e[M]:Play()end end local function t(M)if e[M]then e[M]:Stop()end end function OnEquipped(t)F=n.Parent a=M(F,"\072\117\109\097\110\111\105\100")if a then e.EquipAnim=a:LoadAnimation(M(n,"\069\113\117\105\112\065\110\105\109\053"))e.IdleAnim=a:LoadAnimation(M(n,"\073\100\108\101\065\110\105\109\051"))e.OverheadAnim=a:LoadAnimation(M(n,"\079\118\101\114\104\101\097\100\065\110\105\109\050"))e.SlashAnim=a:LoadAnimation(M(n,"\083\108\097\115\104\065\110\105\109\050"))e.ThrustAnim=a:LoadAnimation(M(n,"\084\104\114\117\115\116\065\110\105\109\050"))e.UnequipAnim=a:LoadAnimation(M(n,"\085\110\101\113\117\105\112\065\110\105\109\050"))end e.EquipAnim:Play(.1,.8,1)Y("\073\100\108\101\065\110\105\109")end function OnUnequipped()n.Handle.deactivate:Play()for M,n in pairs(e)do t(M)end end n.Equipped:connect(OnEquipped)n.Unequipped:connect(OnUnequipped);(M(n,"\080\108\097\121\083\108\097\115\104")).Changed:connect(function(M)Y("\083\108\097\115\104\065\110\105\109")end);(M(n,"\080\108\097\121\084\104\114\117\115\116")).Changed:connect(function(M)Y("\084\104\114\117\115\116\065\110\105\109")end);(M(n,"\080\108\097\121\079\118\101\114\104\101\097\100")).Changed:connect(function(M)e.OverheadAnim:Play()end)
-- Waits for the child of the specified parent
local function WaitForChild(parent, childName)
	while not parent:FindFirstChild(childName) do
		parent.ChildAdded:wait()
	end
	return parent[childName]
end

local Tool = script.Parent

local Animations = {}
local MyHumanoid
local MyCharacter

local function PlayAnimation(animationName)
	if Animations[animationName] then
		Animations[animationName]:Play()
	end
end

local function StopAnimation(animationName)
	if Animations[animationName] then
		Animations[animationName]:Stop()
	end
end

function OnEquipped(mouse)
	MyCharacter = Tool.Parent
	MyHumanoid = WaitForChild(MyCharacter, "Humanoid")
	if MyHumanoid then
		Animations["EquipAnim"] = MyHumanoid:LoadAnimation(WaitForChild(Tool, "EquipAnim5"))
		Animations["IdleAnim"] = MyHumanoid:LoadAnimation(WaitForChild(Tool, "IdleAnim3"))
		Animations["OverheadAnim"] = MyHumanoid:LoadAnimation(WaitForChild(Tool, "OverheadAnim2"))
		Animations["SlashAnim"] = MyHumanoid:LoadAnimation(WaitForChild(Tool, "SlashAnim2"))
		Animations["ThrustAnim"] = MyHumanoid:LoadAnimation(WaitForChild(Tool, "ThrustAnim2"))
		Animations["UnequipAnim"] = MyHumanoid:LoadAnimation(WaitForChild(Tool, "UnequipAnim2"))
	end

	Animations["EquipAnim"]:Play(0.1, 0.8, 1)
	PlayAnimation("IdleAnim")
end

function OnUnequipped()
	Tool.Handle.deactivate:Play()
	for animName, _ in pairs(Animations) do
		StopAnimation(animName)
	end
end

Tool.Equipped:connect(OnEquipped)
Tool.Unequipped:connect(OnUnequipped)

WaitForChild(Tool, "PlaySlash").Changed:connect(function(value)
	--if value then
	PlayAnimation("SlashAnim")
	--else
	--	StopAnimation('SlashAnim')
	--end
end)

WaitForChild(Tool, "PlayThrust").Changed:connect(function(value)
	--if value then
	PlayAnimation("ThrustAnim")
	--else
	--	StopAnimation('ThrustAnim')
	--end
end)

WaitForChild(Tool, "PlayOverhead").Changed:connect(function(value)
	--if value then
	Animations["OverheadAnim"]:Play()
	--else
	--	StopAnimation('OverheadAnim')
	--end
end)
