Hello there,
Loved to know about your idea to bring out old school platformer concept to this game.
So this game is gonna be an improvised mario game since there are a new gameplay throwing knife and attacking sword. And as I read your project description, you need this project to be easily to understand. Using class, list, and Interface Function are good ways to create a project to be easily reused and become a project template. But there is a main mistakes when developer creating a project for template purpose. They don't do a nice documentation (such as comments) and they don't do a design pattern for the project. Design pattern is a very good method to create a project understandable.
In other words, the developer are not creating a project with open minded perspective. Usually they program is understandable by their own self. Because different people, have different flow of thinking too. This is why the key is creating a good Design Pattern with trying to figure out how other people think.
Can you tell me more about the project? Remember the key is good design pattern with open minded perspective... Love to know more if you would like to chat about it.
Best regards,
Haidar Abhirama