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