int32 Client::CalcPR() { //racial bases switch(GetBaseRace()) { case HUMAN: PR = 15; break; case BARBARIAN: PR = 15; break; case ERUDITE: PR = 15; break; case WOOD_ELF: PR = 15; break; case HIGH_ELF: PR = 15; break; case DARK_ELF: PR = 15; break; case HALF_ELF: PR = 15; break; case DWARF: PR = 20; break; case TROLL: PR = 15; break; case OGRE: PR = 15; break; case HALFLING: PR = 20; break; case GNOME: PR = 15; break; case IKSAR: PR = 15; break; case VAHSHIR: PR = 15; break; case FROGLOK: PR = 30; break; case DRAKKIN: PR = 15; break; default: PR = 15; } int c = GetClass(); if(c == ROGUE) { PR += 8; int l = GetLevel(); if(l > 49) PR += l - 49; } else if(c == SHADOWKNIGHT) { PR += 4; int l = GetLevel(); if(l > 49) PR += l - 49; } PR += itembonuses.PR + spellbonuses.PR + aabonuses.PR; if(PR < 1) PR = 1; if(PR > GetMaxPR()) PR = GetMaxPR(); return(PR); }
int32 Client::CalcPR() { //racial bases switch (GetBaseRace()) { case HUMAN: PR = 15; break; case BARBARIAN: PR = 15; break; case ERUDITE: PR = 15; break; case WOOD_ELF: PR = 15; break; case HIGH_ELF: PR = 15; break; case DARK_ELF: PR = 15; break; case HALF_ELF: PR = 15; break; case DWARF: PR = 20; break; case TROLL: PR = 15; break; case OGRE: PR = 15; break; case HALFLING: PR = 20; break; case GNOME: PR = 15; break; case IKSAR: PR = 15; break; case VAHSHIR: PR = 15; break; case FROGLOK: PR = 30; break; case DRAKKIN: { PR = 15; if (GetDrakkinHeritage() == 3) PR += 10; else if (GetDrakkinHeritage() == 5) PR += 2; break; } default: PR = 15; } int c = GetClass(); // this monk bonus is part of the base if (c == MONK) { int l = GetLevel(); if (l > 50) PR += l - 50; } if (c == ROGUE) { PR += 8; int l = GetLevel(); if (l > 49) { PR += l - 49; } } else if (c == SHADOWKNIGHT) { PR += 4; int l = GetLevel(); if (l > 49) { PR += l - 49; } } PR += itembonuses.PR + spellbonuses.PR + aabonuses.PR; if (PR < 1) { PR = 1; } if (PR > GetMaxPR()) { PR = GetMaxPR(); } return (PR); }