function onRunning(R)if R>.01 then playAnimation("\119\097\108\107",.1,Humanoid)if currentAnimInstance and currentAnimInstance.AnimationId=="\104\116\116\112\058\047\047\119\119\119\046\114\111\098\108\111\120\046\099\111\109\047\097\115\115\101\116\047\063\105\100\061\049\056\048\052\050\054\051\053\052"then setAnimationSpeed(R/14.5)end pose="\082\117\110\110\105\110\103"else if emoteNames[currentAnim]==nil then playAnimation("\105\100\108\101",.1,Humanoid)pose="\083\116\097\110\100\105\110\103"end end end function onDied()pose="\068\101\097\100"end function onJumping()playAnimation("\106\117\109\112",.1,Humanoid)jumpAnimTime=jumpAnimDuration pose="\074\117\109\112\105\110\103"end function onClimbing(R)playAnimation("\099\108\105\109\098",.1,Humanoid)setAnimationSpeed(R/12.0)pose="\067\108\105\109\098\105\110\103"end function onGettingUp()pose="\071\101\116\116\105\110\103\085\112"end function onFreeFall()if jumpAnimTime<=0 then playAnimation("\102\097\108\108",fallTransitionTime,Humanoid)end pose="\070\114\101\101\070\097\108\108"end function onFallingDown()pose="\070\097\108\108\105\110\103\068\111\119\110"end function onSeated()pose="\083\101\097\116\101\100"end function onPlatformStanding()pose="\080\108\097\116\102\111\114\109\083\116\097\110\100\105\110\103"end function onSwimming(R)if R>0 then pose="\082\117\110\110\105\110\103"else pose="\083\116\097\110\100\105\110\103"end end function getTool()for R,l in ipairs(Figure:GetChildren())do if l.className=="\084\111\111\108"then return l end end return nil end function getToolAnim(R)for R,l in ipairs(R:GetChildren())do if l.Name=="\116\111\111\108\097\110\105\109"and l.className=="\083\116\114\105\110\103\086\097\108\117\101"then return l end end return nil end function animateTool()if toolAnim=="\078\111\110\101"then playToolAnimation("\116\111\111\108\110\111\110\101",toolTransitionTime,Humanoid,Enum.AnimationPriority.Idle)return end if toolAnim=="\083\108\097\115\104"then playToolAnimation("\116\111\111\108\115\108\097\115\104",0,Humanoid,Enum.AnimationPriority.Action)return end if toolAnim=="\076\117\110\103\101"then playToolAnimation("\116\111\111\108\108\117\110\103\101",0,Humanoid,Enum.AnimationPriority.Action)return end end function moveSit()RightShoulder.MaxVelocity=.15 LeftShoulder.MaxVelocity=.15 RightShoulder:SetDesiredAngle(1.57)LeftShoulder:SetDesiredAngle(-1.57)RightHip:SetDesiredAngle(1.57)LeftHip:SetDesiredAngle(-1.57)end local R=0 function move(l)local a=1 local M=1 local U=l-R R=l local E=0 local O=false if jumpAnimTime>0 then jumpAnimTime=jumpAnimTime-U end if pose=="\070\114\101\101\070\097\108\108"and jumpAnimTime<=0 then playAnimation("\102\097\108\108",fallTransitionTime,Humanoid)elseif pose=="\083\101\097\116\101\100"then playAnimation("\115\105\116",.5,Humanoid)return elseif pose=="\082\117\110\110\105\110\103"then playAnimation("\119\097\108\107",.1,Humanoid)elseif pose=="\068\101\097\100"or pose=="\071\101\116\116\105\110\103\085\112"or pose=="\070\097\108\108\105\110\103\068\111\119\110"or pose=="\083\101\097\116\101\100"or pose=="\080\108\097\116\102\111\114\109\083\116\097\110\100\105\110\103"then stopAllAnimations()a=.1 M=1 O=true end if O then local R=a*math.sin(l*M)RightShoulder:SetDesiredAngle(R+E)LeftShoulder:SetDesiredAngle(R-E)RightHip:SetDesiredAngle(-R)LeftHip:SetDesiredAngle(-R)end local x=getTool()if x and x:FindFirstChild("\072\097\110\100\108\101")then local R=getToolAnim(x)if R then toolAnim=R.Value R.Parent=nil toolAnimTime=l+.3 end if l>toolAnimTime then toolAnimTime=0 toolAnim="\078\111\110\101"end animateTool()else stopToolAnimations()toolAnim="\078\111\110\101"toolAnimInstance=nil toolAnimTime=0 end end
-------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------

function onRunning(speed)
	if speed > 0.01 then
		playAnimation("walk", 0.1, Humanoid)
		if currentAnimInstance and currentAnimInstance.AnimationId == "http://www.roblox.com/asset/?id=180426354" then
			setAnimationSpeed(speed / 14.5)
		end
		pose = "Running"
	else
		if emoteNames[currentAnim] == nil then
			playAnimation("idle", 0.1, Humanoid)
			pose = "Standing"
		end
	end
end

function onDied()
	pose = "Dead"
end

function onJumping()
	playAnimation("jump", 0.1, Humanoid)
	jumpAnimTime = jumpAnimDuration
	pose = "Jumping"
end

function onClimbing(speed)
	playAnimation("climb", 0.1, Humanoid)
	setAnimationSpeed(speed / 12.0)
	pose = "Climbing"
end

function onGettingUp()
	pose = "GettingUp"
end

function onFreeFall()
	if jumpAnimTime <= 0 then
		playAnimation("fall", fallTransitionTime, Humanoid)
	end
	pose = "FreeFall"
end

function onFallingDown()
	pose = "FallingDown"
end

function onSeated()
	pose = "Seated"
end

function onPlatformStanding()
	pose = "PlatformStanding"
end

function onSwimming(speed)
	if speed > 0 then
		pose = "Running"
	else
		pose = "Standing"
	end
end

function getTool()
	for _, kid in ipairs(Figure:GetChildren()) do
		if kid.className == "Tool" then
			return kid
		end
	end
	return nil
end

function getToolAnim(tool)
	for _, c in ipairs(tool:GetChildren()) do
		if c.Name == "toolanim" and c.className == "StringValue" then
			return c
		end
	end
	return nil
end

function animateTool()
	if toolAnim == "None" then
		playToolAnimation("toolnone", toolTransitionTime, Humanoid, Enum.AnimationPriority.Idle)
		return
	end

	if toolAnim == "Slash" then
		playToolAnimation("toolslash", 0, Humanoid, Enum.AnimationPriority.Action)
		return
	end

	if toolAnim == "Lunge" then
		playToolAnimation("toollunge", 0, Humanoid, Enum.AnimationPriority.Action)
		return
	end
end

function moveSit()
	RightShoulder.MaxVelocity = 0.15
	LeftShoulder.MaxVelocity = 0.15
	RightShoulder:SetDesiredAngle(3.14 / 2)
	LeftShoulder:SetDesiredAngle(-3.14 / 2)
	RightHip:SetDesiredAngle(3.14 / 2)
	LeftHip:SetDesiredAngle(-3.14 / 2)
end

local lastTick = 0

function move(time)
	local amplitude = 1
	local frequency = 1
	local deltaTime = time - lastTick
	lastTick = time

	local climbFudge = 0
	local setAngles = false

	if jumpAnimTime > 0 then
		jumpAnimTime = jumpAnimTime - deltaTime
	end

	if pose == "FreeFall" and jumpAnimTime <= 0 then
		playAnimation("fall", fallTransitionTime, Humanoid)
	elseif pose == "Seated" then
		playAnimation("sit", 0.5, Humanoid)
		return
	elseif pose == "Running" then
		playAnimation("walk", 0.1, Humanoid)
	elseif
		pose == "Dead"
		or pose == "GettingUp"
		or pose == "FallingDown"
		or pose == "Seated"
		or pose == "PlatformStanding"
	then
		--		print("Wha " .. pose)
		stopAllAnimations()
		amplitude = 0.1
		frequency = 1
		setAngles = true
	end

	if setAngles then
		local desiredAngle = amplitude * math.sin(time * frequency)

		RightShoulder:SetDesiredAngle(desiredAngle + climbFudge)
		LeftShoulder:SetDesiredAngle(desiredAngle - climbFudge)
		RightHip:SetDesiredAngle(-desiredAngle)
		LeftHip:SetDesiredAngle(-desiredAngle)
	end

	-- Tool Animation handling
	local tool = getTool()
	if tool and tool:FindFirstChild("Handle") then
		local animStringValueObject = getToolAnim(tool)

		if animStringValueObject then
			toolAnim = animStringValueObject.Value
			-- message recieved, delete StringValue
			animStringValueObject.Parent = nil
			toolAnimTime = time + 0.3
		end

		if time > toolAnimTime then
			toolAnimTime = 0
			toolAnim = "None"
		end

		animateTool()
	else
		stopToolAnimations()
		toolAnim = "None"
		toolAnimInstance = nil
		toolAnimTime = 0
	end
end
