Ok, this should be the final formula we needed, which is for calculating HP per Stamina point.
Code:
float Client::HPPerStamina(int8 level, int8 class) {
float hpunder40;
float hpover40;
float hpover80;
// Note: hpunder40 is equal to hpover80 / 120, and hpover40 is just hpunder40 * 2
switch(class){
case DRUID:
case ENCHANTER:
case NECROMANCER:
case MAGICIAN:
case WIZARD:
hpunder40 = 0.06666666;
hpover40 = 0.13333333;
hpover80 = 8;
break;
case BEASTLORD:
case BERSERKER:
case MONK:
case ROGUE:
case SHAMAN:
hpunder40 = 0.07083333;
hpover40 = 0.14166666;
hpover80 = 8.5;
break;
case BARD:
case CLERIC:
hpunder40 = 0.07333333;
hpover40 = 0.14666666;
hpover80 = 8.8;
break;
case SHADOWKNIGHT:
case PALADIN:
hpunder40 = 0.08;
hpover40 = 0.16;
hpover80 = 9.6;
break;
case RANGER:
hpunder40 = 0.07666666;
hpover40 = 0.15333333;
hpover80 = 9.2;
break;
case WARRIOR:
hpunder40 = 0.08333333;
hpover40 = 0.16666666;
hpover80 = 10;
break;
default:
hpunder40 = 0.06666666;
hpover40 = 0.13333333;
hpover80 = 8;
break;
}
float hp_per_sta = 0.0;
// Do calculations for HP Per Stamina point
if (level < 40) {
hp_per_sta = level * hpunder40;
}
else if (level < 80) {
hp_per_sta = ((40 * hpunder40) + ((level - 40) * hpover40));
}
else {
hp_per_sta = hpover80; // ((40 * hpunder40) + (40 * hpover40))
}
return hp_per_sta;
}
Now, I just need to look through the source and figure out where to add these in and how best to format them and junk, so they work like the current ones for Titanium.