-- Compiled with roblox-ts v3.0.0 local TS = _G[script] local StandardAction = TS.import(script, script.Parent, "standard-action").StandardAction local SequentialAction do local super = StandardAction SequentialAction = setmetatable({}, { __tostring = function() return "SequentialAction" end, __index = super, }) SequentialAction.__index = SequentialAction function SequentialAction:constructor(...) super.constructor(self, ...) self.timing = 0.3 self.rawInputIndex = 0 self.lastTap = 0 self.firstInput = true end function SequentialAction:handleInput(input, processed, isPress) if isPress == nil then isPress = input.UserInputState == Enum.UserInputState.Begin end if self.processed ~= processed then return nil end if isPress then local expectedRawInput = self.rawInputs[self.rawInputIndex + 1] local withinTime = self.firstInput or os.clock() - self.lastTap < self.timing if expectedRawInput ~= nil and self:rawInputMatches(expectedRawInput, input) and withinTime then self.firstInput = false if self.rawInputIndex == #self.rawInputs - 1 then super.handleInput(self, input, processed, isPress) end self.rawInputIndex += 1 else self.firstInput = true self.rawInputIndex = 0 end self.lastTap = os.clock() return nil end if not self.isActive then return nil end if self.rawInputIndex < #self.rawInputs - 1 then return nil end super.handleInput(self, input, processed, isPress) end end local SequentialActionBuilder do local super = SequentialAction SequentialActionBuilder = setmetatable({}, { __tostring = function() return "SequentialActionBuilder" end, __index = super, }) SequentialActionBuilder.__index = SequentialActionBuilder function SequentialActionBuilder.new(...) local self = setmetatable({}, SequentialActionBuilder) return self:constructor(...) or self end function SequentialActionBuilder:constructor(...) super.constructor(self, ...) end function SequentialActionBuilder:setID(id) self.id = id return self end function SequentialActionBuilder:setProcessed(processed) self.processed = processed return self end function SequentialActionBuilder:setCooldown(cooldown) self.cooldown = cooldown return self end function SequentialActionBuilder:setTiming(timing) self.timing = timing return self end end return { SequentialAction = SequentialAction, SequentialActionBuilder = SequentialActionBuilder, }