GE Lua Documentation

Press F to search!

sanitizeMissionAfterCreation

Definition


-- @/lua/ge/extensions/gameplay/missions/missions.lua:270
local function sanitizeMissionAfterCreation(mission)
  mission.official = mission.official or isOfficialContentVPath(mission.missionFolder)
  mission.date = tonumber(mission.date) or 0

  -- add mod information
  local mod = extensions.core_modmanager.getModFromPath(mission.missionFolder .. "/info.json", true)
  if mod then
    mission.modID = mod.modID
    mission.modName = mod.modname
    if mod.modData and mod.modData.title then
      mission.modTitle = mod.modData.title
    end
  else
    mission.modID = nil
    mission.modName = 'BeamNG'
    mission.modTitle = 'BeamNG.drive'
  end

  mission.bigMapIcon = mission.bigMapIcon or {}
  mission.bigMapIcon.icon = mission.bigMapIcon.icon or "mission_primary_triangle"
  mission.careerSetup._activeStarCache = {}
  local sortedStars, defaultKeysSorted, bonusKeysSorted, defaultStarKeysCache, bonusStarKeysCache = orderStarKeysDefaultThenBonus(mission)
  mission.careerSetup._activeStarCache.sortedStars = sortedStars
  mission.careerSetup._activeStarCache.defaultStarKeysByKey = defaultStarKeysCache
  mission.careerSetup._activeStarCache.defaultStarKeysSorted = defaultKeysSorted
  mission.careerSetup._activeStarCache.defaultStarCount = #defaultKeysSorted
  mission.careerSetup._activeStarCache.defaultStarKeysToIndex = {}
  for k,v in ipairs(defaultKeysSorted) do
    mission.careerSetup._activeStarCache.defaultStarKeysToIndex[v] = k
  end
  mission.careerSetup._activeStarCache.bonusStarKeysByKey = bonusStarKeysCache
  mission.careerSetup._activeStarCache.bonusStarKeysSorted = bonusKeysSorted
  mission.careerSetup._activeStarCache.bonusStarCount = #bonusKeysSorted
  for key, list in pairs(mission.careerSetup.starRewards) do
    for _, reward in ipairs(list) do
      if not reward.rewardAmount then
        log("E", "", "Found nil rewardAmount in starRewards for mission " .. mission.id .. " and key " .. key .. " and reward " .. dumps(reward.attributeKey))
        reward.rewardAmount = 0
      end
      reward._originalRewardAmount = reward.rewardAmount
    end
  end

  --[[
  --sums are done in progress.lua now
  mission.careerSetup._activeStarCache.sortedStarRewardsByKey = {}
  for key, list in pairs(mission.careerSetup.starRewards) do
    local newList = {}
    for _, reward in ipairs(list) do
      local elem = {rewardAmount = reward.rewardAmount, icon = "star", attributeKey = reward.attributeKey}
      table.insert(newList, elem)
    end
    mission.careerSetup._activeStarCache.sortedStarRewardsByKey[key] = newList
  end
  ]]

  mission.onStart = mission.onStart or nop
  mission.onUpdate = mission.onUpdate or nop
  mission.onStop = mission.onStop or nop
  mission.stateChanged = mission.stateChanged or nop
  mission.onFlowgraphStateStarted = mission.onFlowgraphStateStarted or nop
  mission.onFlowgraphStateStopped = mission.onFlowgraphStateStopped or nop
  mission.getCommonSettingsData = mission.getCommonSettingsData or nop
  mission.getUserSettingsData = mission.getUserSettingsData or nop
  mission.processCommonSettings = mission.processCommonSettings or nop
  mission.processUserSettings = mission.processUserSettings or nop
  mission.attemptAbandonMission = mission.attemptAbandonMission or nop
  mission.setBackwardsCompatibility = mission.setBackwardsCompatibility or nop
  mission.getMissionTips = mission.getMissionTips or function() return defaultMissionTips end
  mission.getRandomizedAttempt = mission.getRandomizedAttempt or function() return gameplay_missions_progress.testHelper.randomAttemptType(), {} end
end

Callers

@/lua/ge/extensions/gameplay/missions/missions.lua
      -- sanitize after creation
      M.sanitizeMissionAfterCreation(mission)