Well we plan to have a cpp file named CBasePerk. In CBasePerk there will be the implementation of the CBasePerk class which contains three enumerations, cooresponding to the three perk categories in the mod. They will contain names which later are linked to new classes inheriting from CBasePerk. jm_Player.cpp will have 3 network vars, which are linked to the perks that the player has picked or has had them assigned to them. Then in the player spawn function, it will call CBasePerk::ProcessPerks() which will update the players damage, speed health etc. Tha is a concise algorithom for perks. For the VGUI we plan to have a panel pop up, which will be like CSS buy menus, 3 seperate buttons to pick which category you wish to modify. From there seperate sub menus are opened and whatever perks are decided are assigned to the NetworkVar's. If this ends up working we will have a tutorial available on the VDC and on our mod page.
Stay tuned for more implementation alogorithoms!