GE Lua Documentation

Press F to search!

recursiveRemoveNestedFromCondition

Definition


-- @/lua/ge/extensions/gameplay/missions/missions.lua:344


local function recursiveRemoveNestedFromCondition(mId, cond)
  -- Handle branch level condition sanitization
  if cond.type == 'branchLevel' and cond.branchId then
    -- Map the old branchId to the new path format
    local newBranchId = career_branches.oldAttributeNamesToNewNames[cond.branchId]

    if newBranchId then
      cond.branchId = newBranchId
    end
  end

  -- Handle nested conditions
  if cond.nested then
    if cond.type == 'multiAnd' or cond.type == 'multiOr' then
      for _, n in ipairs(cond.nested) do
        recursiveRemoveNestedFromCondition(mId, n)
      end
    else
      cond.nested = nil
      log("W","","In Mission " .. mId..": Nested condition found in a condition that should not have nested in it. Re-save the mission to apply fix.")
    end
  end
end

Callers

@/lua/ge/extensions/gameplay/missions/missions.lua
      for _, n in ipairs(cond.nested) do
        recursiveRemoveNestedFromCondition(mId, n)
      end
  missionData.visibleCondition = (missionData.visibleCondition or {type='automatic'})
  M.recursiveRemoveNestedFromCondition(missionData.id, missionData.startCondition)
  M.recursiveRemoveNestedFromCondition(missionData.id, missionData.visibleCondition)
  M.recursiveRemoveNestedFromCondition(missionData.id, missionData.startCondition)
  M.recursiveRemoveNestedFromCondition(missionData.id, missionData.visibleCondition)