getUnlockDiff
Definition
-- @/lua/ge/extensions/gameplay/missions/unlocks.lua:108
-- compares two simpleUnlockedStatus lists to see what changed between them
local function getUnlockDiff(before, after)
local diff = {list = {}, byId = {}, missionsList={}}
for _, mission in ipairs(gameplay_missions_missions.get()) do
local id = mission.id
local comp = compareUnlock(before[id], after[id])
if next(comp) then
table.insert(diff.list,{
missionId = id,
change = comp
})
diff.byId[id] = comp
-- check if a mission is now startable
if after[id].startable and (not before[id].startable) then
table.insert(diff.missionsList, {
name = mission.name,
id = id
})
end
end
end
return diff
end
Callers
@/lua/ge/extensions/gameplay/missions/progress.lua
local unlockMissionsAfter = gameplay_missions_unlocks.getSimpleUnlockedStatus()
local unlockChange = gameplay_missions_unlocks.getUnlockDiff(unlockMissionsBefore, unlockMissionsAfter)
local unlockedMissions = unlockChange.missionsList or {}