| 347 | implicitReqs = {} |
| 348 | |
| 349 | def traverseReqs(itemReqs, topLevel=True): |
| 350 | for skillName, (skillLevel, skillTypeID, subReqs) in itemReqs.items(): |
| 351 | if (skillTypeID, skillName) not in allReqs or allReqs[(skillTypeID, skillName)] < skillLevel: |
| 352 | allReqs[(skillTypeID, skillName)] = skillLevel |
| 353 | if not topLevel and (skillTypeID not in implicitReqs or implicitReqs[skillTypeID] < skillLevel): |
| 354 | implicitReqs[skillTypeID] = skillLevel |
| 355 | traverseReqs(subReqs, topLevel=False) |
| 356 | |
| 357 | for item, itemReqs in reqs.items(): |
| 358 | traverseReqs(itemReqs) |