local function s(s,N)while not s:FindFirstChild(N)do s.ChildAdded:wait()end return s[N]end local N=script.Parent local g={}local b local I local function D(s)if g[s]then g[s]:Play()end end local function Q(s)if g[s]then g[s]:Stop()end end function OnEquipped(Q)I=N.Parent b=s(I,"\072\117\109\097\110\111\105\100")if b then g.EquipAnim=b:LoadAnimation(s(N,"\069\113\117\105\112\065\110\105\109\053"))g.IdleAnim=b:LoadAnimation(s(N,"\073\100\108\101\065\110\105\109\051"))g.OverheadAnim=b:LoadAnimation(s(N,"\079\118\101\114\104\101\097\100\065\110\105\109\050"))g.SlashAnim=b:LoadAnimation(s(N,"\083\108\097\115\104\065\110\105\109\050"))g.ThrustAnim=b:LoadAnimation(s(N,"\084\104\114\117\115\116\065\110\105\109\050"))g.UnequipAnim=b:LoadAnimation(s(N,"\085\110\101\113\117\105\112\065\110\105\109\050"))end D("\069\113\117\105\112\065\110\105\109")D("\073\100\108\101\065\110\105\109")end function OnUnequipped()for s,N in pairs(g)do Q(s)end end N.Equipped:connect(OnEquipped)N.Unequipped:connect(OnUnequipped);(s(N,"\080\108\097\121\083\108\097\115\104")).Changed:connect(function(s)D("\083\108\097\115\104\065\110\105\109")end);(s(N,"\080\108\097\121\084\104\114\117\115\116")).Changed:connect(function(s)D("\084\104\114\117\115\116\065\110\105\109")end);(s(N,"\080\108\097\121\079\118\101\114\104\101\097\100")).Changed:connect(function(s)D("\079\118\101\114\104\101\097\100\065\110\105\109")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
	PlayAnimation("EquipAnim")
	PlayAnimation("IdleAnim")
end

function OnUnequipped()
	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
	PlayAnimation("OverheadAnim")
	--else
	--	StopAnimation('OverheadAnim')
	--end
end)
