Should I have a different class for the storyline and have a bunch of IFs to see if the player meets the required standards to start the mission? and an int for the mission he is currently in?
I don't know, did you actually try that idea? Sounds like a possible route...
Stop asking "Should". You will only learn if you TRY your ideas out. Come up with horrible, crappy ideas, implement them, see how crappy they are, and try something else. Eventually they start becoming good ideas.
Bam. Experience and wisdom.
It's how we all got to where we are right now. I've scrapped my entire codebase on projects multiple times because the architecture idea I had was utterly brittle and useless in practice. Each time I had the experience and understanding of why the last idea didn't work to build off of, and the code just keeps getting better as I refactor and rebuild.
You only appreciate "best practice" design once you've tried to put it together yourself in a worse fashion.