Basic idea: If you haven’t made any progress towards unlocking a part, it shouldn’t appear in the list of locked parts.
‘Progress’, in this case, is defined as having partially fulfilled an unlock condition. If you need to have X proteins for Y time to unlock an organelle, then possessing a number of proteins less than X or possessing X proteins for a time less than Y would count as ‘partial progress’. (I’m unsure about which of these is better, or whether there should be a specific threshold for ‘partial progress’ - say, possessing half-X proteins unlocks the ability to see how many proteins you need and for how long.)
This serves two purposes I can think of:
- It reduces the issue of goal-oriented evolution. As it stands, if you want to evolve a high-level part that you’ve never worked towards, you can simply apply its low-level counterparts and leave them unused to work towards the goal. For instance, if you reached eukaryote without having toxins, then decided to evolve eukaryotic toxins. If the high-level part is hidden entirely, then you wouldn’t be incentivised to perform such a significant shift with the end goal visible from the start. (This doesn’t stop experienced players, but not much could, save for randomly changing lock conditions/removing parts outright.)
- It removes the UI problem of the Eukaryotic locked-parts list going off the ends of the screen when you’re starting a run. (This will presumably be much more of an issue when you are a more complex cell, since you’d presumably have more parts in that case - unless every multicellular part is custom-built by the player, which seems annoyingly complex.)