GE Lua Documentation

Press F to search!

getUnlockedStarCountsForMissionById

Definition


-- @/lua/ge/extensions/gameplay/missions/progress.lua:1631

local function getUnlockedStarCountsForMissionById(id)
  local mission = gameplay_missions_missions.getMissionById(id)
  if not mission then
    log("E","","Mission not found! " .. dumps(id))
    return 0, 0, 0
  end
  if not mission.saveData.unlockedStars
    or not mission.careerSetup.starsActive or not next(mission.careerSetup.starsActive) then
    return 0, 0
  end
  local starKeys, defaultCache = mission.careerSetup._activeStarCache.sortedStars, mission.careerSetup._activeStarCache.defaultStarKeysByKey

  local defaultUnlockedStarCount = 0
  local bonusUnlockedStarCount = 0
  for i, key in ipairs(starKeys) do

    local count = mission.saveData.unlockedStars[key] or 0
    local unlocked = count > 0

    defaultUnlockedStarCount = defaultUnlockedStarCount + (unlocked and defaultCache[key] and 1 or 0)
    bonusUnlockedStarCount = bonusUnlockedStarCount + (unlocked and (not defaultCache[key]) and 1 or 0)
  end

  return (defaultUnlockedStarCount + bonusUnlockedStarCount), defaultUnlockedStarCount, bonusUnlockedStarCount
end

Callers

@/lua/ge/extensions/career/modules/branches/leagues.lua
      for _, mId in ipairs(otherLeague.missions) do
        local all, def, bon = gameplay_missions_progress.getUnlockedStarCountsForMissionById(mId)
        -- todo: decide if all or only default stars count
      league.totalStarsAvailable = league.totalStarsAvailable + mission.careerSetup._activeStarCache.defaultStarCount
      local all, def, bon = gameplay_missions_progress.getUnlockedStarCountsForMissionById(mId)
      league.totalStarsObtained = league.totalStarsObtained + def
      total = total + m.careerSetup._activeStarCache.defaultStarCount
      local _, def, _ = gameplay_missions_progress.getUnlockedStarCountsForMissionById(m.id)
      unlocked = unlocked + def