From d5437e070c2e0c7b9ec5b21ebcf4bc7a626b0722 Mon Sep 17 00:00:00 2001 From: Linden <65407488+thelindat@users.noreply.github.com> Date: Sun, 16 Oct 2022 00:22:13 +1100 Subject: [PATCH] chore(interface/skillcheck): types --- resource/interface/client/skillcheck.lua | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/resource/interface/client/skillcheck.lua b/resource/interface/client/skillcheck.lua index b75c7e3..9dc1a90 100644 --- a/resource/interface/client/skillcheck.lua +++ b/resource/interface/client/skillcheck.lua @@ -1,19 +1,32 @@ +---@type promise? local skillcheck local gameCount = 0 + +---@alias SkillCheckDifficulity 'easy' | 'medium' | 'hard' | { areaSize: number, speedMultiplier: number } + +---@type SkillCheckDifficulity | SkillCheckDifficulity[] local gameDifficulty + +---@type promise? local gamePromise local function resolveSkillCheck(success) - skillcheck:resolve(success) - skillcheck = nil - SetNuiFocus(false, false) + if skillcheck then + skillcheck:resolve(success) + skillcheck = nil + SetNuiFocus(false, false) + end end +---@param difficulty SkillCheckDifficulity | SkillCheckDifficulity[] +---@return boolean? function lib.skillCheck(difficulty) if skillcheck then return end + skillcheck = promise:new() gameDifficulty = difficulty SetNuiFocus(true, false) + if type(difficulty) == 'table' then gameCount = 0 for i = 1, #difficulty do @@ -33,6 +46,7 @@ function lib.skillCheck(difficulty) data = difficulty }) end + return Citizen.Await(skillcheck) end @@ -45,4 +59,4 @@ RegisterNUICallback('skillCheckOver', function(data, cb) if gameCount == #gameDifficulty then resolveSkillCheck(data.success) end -end) \ No newline at end of file +end)