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