GE Lua Documentation

Press F to search!

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 {}