mirror of
https://github.com/unixtensor/Roblox-Elevator-Game.git
synced 2025-12-14 14:51:55 +00:00
40 lines
1.2 KiB
Lua
40 lines
1.2 KiB
Lua
local CrouchModule = {
|
|
IsCrouching = false,
|
|
StandHeight = 2.1,
|
|
CrouchHeight = .6,
|
|
WalkSpeedMultiplier = 6,
|
|
CrouchSpeed = .2
|
|
}
|
|
CrouchModule.__index = CrouchModule
|
|
|
|
local Tween = require(game:GetService("ReplicatedStorage"):WaitForChild("Tween"))
|
|
|
|
function CrouchModule.constructor(Humanoid: Humanoid)
|
|
return setmetatable({
|
|
Humanoid = Humanoid
|
|
}, CrouchModule)
|
|
end
|
|
|
|
local CrouchTween = Tween.constructor()
|
|
|
|
function CrouchModule:Crouch(StandingWalkSpeed: number)
|
|
local Easing = TweenInfo.new(CrouchModule.CrouchSpeed, Enum.EasingStyle.Linear)
|
|
|
|
CrouchTween:Start(self.Humanoid, {
|
|
HipHeight = CrouchModule.CrouchHeight,
|
|
WalkSpeed = math.max(1, StandingWalkSpeed-CrouchModule.WalkSpeedMultiplier)
|
|
}, Easing)
|
|
CrouchModule.IsCrouching = true
|
|
end
|
|
|
|
function CrouchModule:Stand(CrouchingWalkSpeed: number)
|
|
local Easing = TweenInfo.new(CrouchModule.CrouchSpeed, Enum.EasingStyle.Linear)
|
|
|
|
CrouchTween:Start(self.Humanoid, {
|
|
HipHeight = CrouchModule.StandHeight,
|
|
WalkSpeed = math.max(1, CrouchingWalkSpeed+CrouchModule.WalkSpeedMultiplier)
|
|
}, Easing)
|
|
CrouchModule.IsCrouching = false
|
|
end
|
|
|
|
return CrouchModule |