CCCPaste

Mask System

local gui = script.Parent

local debounce = false
local equipped = false

local tweenService = game:GetService("TweenService")
local tweenInfo = TweenInfo.new(
	0.25,
	Enum.EasingStyle.Back,
	Enum.EasingDirection.Out,
	0,
	false,
	0
)

local function animateMask(animateStyle)
	local mask = gui.MaskImage
	mask.Visible = true
	if animateStyle then
		if animateStyle == "down" then
			mask.Position = UDim2.new(0, 0, -1, 0)
			local downMaskTween = tweenService:Create(mask, tweenInfo, {Position = UDim2.new(0, 0, 0, 0)})
			downMaskTween:Play()
		elseif animateStyle == "up" then
			mask.Position = UDim2.new(0, 0, 0, 0)
			local upMaskTween = tweenService:Create(mask, tweenInfo, {Position = UDim2.new(0, 0, -1, 0)})
			upMaskTween:Play()
		end
	end
end

local function toggleMask()
	if debounce == false then
		if equipped == false then
			debounce = true
			equipped = true
			animateMask("down")
			game.ReplicatedStorage.MaskEquipped.Value = "On"
			wait(1)
			debounce = false
		elseif equipped == true then
			debounce = true
			equipped = false
			animateMask("up")
			game.ReplicatedStorage.MaskEquipped.Value = "Off"
			wait(1)
			debounce = false
		end
	end
end

gui.MaskButton.MouseEnter:Connect(toggleMask)