function onRunning(C)if C>0 then playAnimation("\119\097\108\107",.1,Humanoid)pose="\082\117\110\110\105\110\103"else playAnimation("\105\100\108\101",.1,Humanoid)pose="\083\116\097\110\100\105\110\103"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()playAnimation("\099\108\105\109\098",.1,Humanoid)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(C)if C>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 C,l in ipairs(Figure:GetChildren())do if l.className=="\084\111\111\108"then return l end end return nil end function getToolAnim(C)for C,l in ipairs(C: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)return end if toolAnim=="\083\108\097\115\104"then playToolAnimation("\116\111\111\108\115\108\097\115\104",0,Humanoid)return end if toolAnim=="\076\117\110\103\101"then playToolAnimation("\116\111\111\108\108\117\110\103\101",0,Humanoid)return end end function moveSit()RightHip:SetDesiredAngle(1.57)LeftHip:SetDesiredAngle(-1.57)end local C=0 function move(l)local x=1 local p=1 local j=l-C C=l local v=0 local b=false if jumpAnimTime>0 then jumpAnimTime=jumpAnimTime-j 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 stopAllAnimations()moveSit()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 x=.1 p=1 b=true end if b then desiredAngle=x*math.sin(l*p)RightHip:SetDesiredAngle(-desiredAngle)LeftHip:SetDesiredAngle(-desiredAngle)end local I=getTool()if I then animStringValueObject=getToolAnim(I)if animStringValueObject then toolAnim=animStringValueObject.Value animStringValueObject.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"toolAnimTime=0 end end

	
	
function onRunning(speed)
	if speed>0 then
		playAnimation("walk", 0.1, Humanoid)
		pose = "Running"
	else
		playAnimation("idle", 0.1, Humanoid)
		pose = "Standing"
	end
end
	
function onDied()
	pose = "Dead"
end
	
function onJumping()
	playAnimation("jump", 0.1, Humanoid)
	jumpAnimTime = jumpAnimDuration
	pose = "Jumping"
end
	
function onClimbing()
	playAnimation("climb", 0.1, Humanoid)
	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)
		return
	end
		
	if (toolAnim == "Slash") then
		playToolAnimation("toolslash", 0, Humanoid)
		return
	end
		
	if (toolAnim == "Lunge") then
		playToolAnimation("toollunge", 0, Humanoid)
		return
	end
end
	
function moveSit()
	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
		stopAllAnimations()
		moveSit()
		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)
		amplitude = 0.1
		frequency = 1
		setAngles = true
	end
		
	if (setAngles) then
		desiredAngle = amplitude * math.sin(time * frequency)
			
		RightHip:SetDesiredAngle(-desiredAngle)
		LeftHip:SetDesiredAngle(-desiredAngle)
	end
		
	-- Tool Animation handling
	local tool = getTool()
	if tool then
			
		animStringValueObject = getToolAnim(tool)
			
		if animStringValueObject then
			toolAnim = animStringValueObject.Value
			-- message recieved, delete StringValue
			animStringValueObject.Parent = nil
			toolAnimTime = time + .3
		end
			
		if time > toolAnimTime then
			toolAnimTime = 0
			toolAnim = "None"
		end
			
		animateTool()		
	else
		stopToolAnimations()
		toolAnim = "None"
		toolAnimTime = 0
	end
end
	