So I've got an idea of how I want to handle stats in my RPG, but I'm not sure if I can implement it this way. I'm using C# in Unity.
All entities in my game have some physical properties which can be modified. This is stuff like mass, density and the like. Just as any other statistic, I want to be able to modify this with various (de/buffs). For example, an object that suddenly gets heavier will have its mass buffed.
So every entity needs the ability to be de/buffed without having its base stat values messed with, and every stat needs a minimum and maximum value that the buffs can't exceed.
Specific types of entities such as characters have special stats like Agility or Willpower and junk. These are straightforward enough.
But when it comes to things like vitals (health/energy), there's some issues. Some characters can have vitals other characters can't. (Like Death Knights in WoW having Runic Power, Warlocks having Demonic Fury, Mages Warlocks and Priests having Mana, etc.)
So when I'm buffing an entity, I have to check whether the entity has any of these stats to buff in the first place. And another thing to keep in mind is other types of stats that may need altering without messing with the base value; Vector3s like center of mass and buoyancy, bools like whether or not a character can breathe or fly, etc.
How can I handle all these different stats in a generic manner? Is it a lost cause?