I've already learned the basics about OOP and the use of Unity3D and C# when I was working on TetraGems, but now that I'm working on the d20 project, my knowledge about them is exploding!
After yesterday's blog post, I've been extremely busy recoding large portions of the d20 project. As said yesterday, the use of extensions will become one of the primal additions I'll be working on the coming days, so that the used of the d20 Modern plugin will mainly be using the classes (and their extensions) that are part of the d20 project and no longer will be calling to methods in the scripts of the plugin.
A lot of these extensions will be called from the d20Character class and thse are mostly to get available options (feats, talents, classes and the alike) that are available, as well as adding them to the new d20Character class.
There are also 3 bool extensions available for the d20Class class, to check if it IsOccupation(), IsBasicClass() or IsAdvancedClass(). These checks (which
comes from my thought to merge all 3 different kind of character classes into one enum, and with that conform to the rest of the code where I'm linking to the enum name and not the int value of it) are needed because each of the 3 character class types have their own class properties, with the occupation being the real weird one and not actually being a class since it can't gain XP and level up.
Having started to code these extensions, I had to give them their own namespace, which I called d20Modern. I could have dropped all these extensions into the global namespace, but that's not really a professional way to handle it , while using my own namespace does look kinda cool
Yet, there's still a lot of methods that I need to move into the extensions. And while it's very easy to do (like I said yesterday, I'm just calling the method from the extension with correct parameters), I do need to check the code as a whole if I'm using that method elsewhere, and I have to rework the example project as well...