thanks for the input. the game is just now getting _close_ to the point of where stuff like that might start to be added *uuhhgg*
things like this will be subsystems of the game. this makes them modular. there is a base skill system which is basically just a framework of values attached to keys. most subsystems, including combat, specialized weapon training systems, and even magic, will need to reference this framework. this allows the abstract skill framework to just be value holders, and each subsystem can use it as necessary, but without requiring special integration.
the skill framework is hierarchical, but doesn't enforce a specific depth of hiearchy. skills can give others a bonus if they are related in the hierarchy. this formula checks each skill a player possess and compares it to all their other possessed skills:
Code:
if id(baseskill) != id(bonus):
skill.count = (skill.count +
(bonus.count *
(self.dictmatchcount(skill.fam, bonus.fam) /
(6 + baseskill.count))))
first, if a skill equals itself, then it can't give itself a bonus
basically, this formula checks to see what 'family' each skill is in and looks for all other skills that share part or all of its family, the more the family is shared the bigger the bonus (that's the dictmatchcount function, it looks at the two families and returns the number of matches). lastly, the bonus is divided by 6 plus the base value of the skill. the 6 is just to lessen the amount of bonus, and the basevalue actually means that a skill that has a real high base value is relatively unaffected by 'family association bonus'.
an outcome of this formula is that deeper hierarchies get bigger bonuses ultimately, but will never apply more bonus to things with shorter hierarchies that share some piece of their family. also, i think i could add something to the code handling adding to baseskill counts that make skills with deeper hierarchies more expensive to increase, finding something that would balance out exactly the effect of getting a bigger bonus from other skills that share its entire family. EDIT: actually, i just realized there is probably a way to make that constant '6' be a variable that varies by hierarchy depth of the base skill, this could be used to cancel out the depth bonus problem.
anyway...
basically everything will be subsystems that reference the values of this tree. each subsystem can specify what values it references and how they effect the action. even combat will be a subsystem that references the weapon skill values and whatever else (armor skill values maybe? tactics skills? who knows). at first it will pretty simple so that I can get a broad range of necessary subsystems in place. once this is done the entirely modular nature allows combat to be revamped without too much trouble.
it seems to me then that these specialized fighting styles and stuff can either be added as their own subsystems, or made as an addition to the combat subsystem. i'll handle that part when i get there
