int32 Client::CalcManaRegen() { uint8 clevel = GetLevel(); int32 regen = 0; //this should be changed so we dont med while camping, etc... if (IsSitting() || (GetHorseId() != 0)) { BuffFadeBySitModifier(); if(HasSkill(SkillMeditate)) { this->medding = true; regen = (((GetSkill(SkillMeditate) / 10) + (clevel - (clevel / 4))) / 4) + 4; regen += spellbonuses.ManaRegen + itembonuses.ManaRegen; CheckIncreaseSkill(SkillMeditate, nullptr, -5); } else regen = 2 + spellbonuses.ManaRegen + itembonuses.ManaRegen; } else { this->medding = false; regen = 2 + spellbonuses.ManaRegen + itembonuses.ManaRegen; } //AAs regen += aabonuses.ManaRegen; return (regen * RuleI(Character, ManaRegenMultiplier) / 100); }
int32 Client::CalcBaseManaRegen() { uint8 clevel = GetLevel(); int32 regen = 0; if (IsSitting() || (GetHorseId() != 0)) { if(HasSkill(SkillMeditate)) regen = (((GetSkill(SkillMeditate) / 10) + (clevel - (clevel / 4))) / 4) + 4; else regen = 2; } else { regen = 2; } return regen; }
void Player::SendCompletedProjects() { if (!HasSkill(SKILL_ARCHAEOLOGY)) return; WorldPacket data(SMSG_RESEARCH_SETUP_HISTORY, 3 + _completedProjects.size() * 3 * 4); data.WriteBits(_completedProjects.size(), 22); for (CompletedProjectList::iterator itr = _completedProjects.begin(); itr != _completedProjects.end(); ++itr) { data << uint32(itr->entry->ID); data << uint32(itr->count); data << uint32(itr->date); } SendDirectMessage(&data); }
bool GlobalEnemy::AddSkill(uint32_t skill_id) { if(skill_id == 0) { IF_PRINT_WARNING(GLOBAL_DEBUG) << "function received an invalid skill_id argument: " << skill_id << std::endl; return false; } if(HasSkill(skill_id)) { IF_PRINT_WARNING(GLOBAL_DEBUG) << "failed to add skill because the enemy already knew this skill: " << skill_id << std::endl; return false; } GlobalSkill *skill = new GlobalSkill(skill_id); if(skill->IsValid() == false) { IF_PRINT_WARNING(GLOBAL_DEBUG) << "the skill to add failed to load: " << skill_id << std::endl; delete skill; return false; } // Insert the pointer to the new skill inside of the global skills vectors _skills.push_back(skill); _skills_id.push_back(skill_id); return true; }