Skip to content

Commit

Permalink
feat(client/skillcheck): skillcheck array chaining
Browse files Browse the repository at this point in the history
  • Loading branch information
LukeWasTakenn committed Oct 18, 2022
1 parent ed8e804 commit 4a28666
Showing 1 changed file with 36 additions and 7 deletions.
43 changes: 36 additions & 7 deletions resource/interface/client/skillcheck.lua
Original file line number Diff line number Diff line change
@@ -1,19 +1,48 @@
local skillcheck
local gameCount = 0
local gameDifficulty
local gamePromise

local function resolveSkillCheck(success)
skillcheck:resolve(success)
skillcheck = nil
SetNuiFocus(false, false)
end

function lib.skillCheck(difficulty)
if skillcheck then return end
skillcheck = promise:new()
gameDifficulty = difficulty
SetNuiFocus(true, false)
SendNUIMessage({
action = 'startSkillCheck',
data = difficulty
})
if type(difficulty) == 'table' then
gameCount = 0
for i = 1, #difficulty do
gamePromise = promise:new()
SendNUIMessage({
action = 'startSkillCheck',
data = difficulty[i]
})
if not Citizen.Await(gamePromise) then
gamePromise = nil
break
end
end
else
SendNUIMessage({
action = 'startSkillCheck',
data = difficulty
})
end
return Citizen.Await(skillcheck)
end

RegisterNUICallback('skillCheckOver', function(data, cb)
cb(1)
skillcheck:resolve(data.success)
skillcheck = nil
SetNuiFocus(false, false)
if not gamePromise then return resolveSkillCheck(data.success) end
gamePromise:resolve(data.success)
if not data.success then return resolveSkillCheck(data.success) end
gameCount += 1
if gameCount == #gameDifficulty then
resolveSkillCheck(data.success)
end
end)

0 comments on commit 4a28666

Please sign in to comment.