int32 Client::CalcMaxMana() { switch (GetCasterClass()) { case 'I': case 'W': { max_mana = (CalcBaseMana() + itembonuses.Mana + spellbonuses.Mana + aabonuses.Mana + GroupLeadershipAAManaEnhancement()); break; } case 'N': { max_mana = 0; break; } default: { Log.Out(Logs::Detail, Logs::Spells, "Invalid Class '%c' in CalcMaxMana", GetCasterClass()); max_mana = 0; break; } } if (max_mana < 0) { max_mana = 0; } if (cur_mana > max_mana) { cur_mana = max_mana; } int mana_perc_cap = spellbonuses.ManaPercCap[0]; if (mana_perc_cap) { int curMana_cap = (max_mana * mana_perc_cap) / 100; if (cur_mana > curMana_cap || (spellbonuses.ManaPercCap[1] && cur_mana > spellbonuses.ManaPercCap[1])) { cur_mana = curMana_cap; } } Log.Out(Logs::Detail, Logs::Spells, "Client::CalcMaxMana() called for %s - returning %d", GetName(), max_mana); return max_mana; }
int32 Client::CalcMaxMana() { switch(GetCasterClass()) { case 'I': case 'W': { max_mana = (CalcBaseMana() + itembonuses.Mana + spellbonuses.Mana + GroupLeadershipAAManaEnhancement()); break; } case 'N': { max_mana = 0; break; } default: { LogFile->write(EQEMuLog::Debug, "Invalid Class '%c' in CalcMaxMana", GetCasterClass()); max_mana = 0; break; } } if (max_mana < 0) { max_mana = 0; } if (cur_mana > max_mana) { cur_mana = max_mana; } int mana_perc_cap = spellbonuses.ManaPercCap[0]; if(mana_perc_cap) { int curMana_cap = (max_mana * mana_perc_cap) / 100; if (cur_mana > curMana_cap || (spellbonuses.ManaPercCap[1] && cur_mana > spellbonuses.ManaPercCap[1])) cur_mana = curMana_cap; } #if EQDEBUG >= 11 LogFile->write(EQEMuLog::Debug, "Client::CalcMaxMana() called for %s - returning %d", GetName(), max_mana); #endif return max_mana; }