uint16 CBattleEntity::EVA() { int16 evasion = GetSkill(SKILL_EVA); if (evasion > 200) { //Evasion skill is 0.9 evasion post-200 evasion = 200 + (evasion - 200)*0.9; } return dsp_max(0, (m_modStat[MOD_EVA] + evasion + AGI() / 2) * ((100 + m_modStat[MOD_EVAP]) / 100)); }
uint16 CBattleEntity::RACC(uint8 skill, uint16 bonusSkill) { int skill_level = GetSkill(skill) + bonusSkill; uint16 acc = skill_level; if (skill_level > 200) { acc = 200 + (skill_level - 200)*0.9; } acc += getMod(MOD_RACC); acc += battleutils::GetRangedAccuracyBonuses(this); acc += AGI() / 2; if (this->objtype == TYPE_PET && ((CPetEntity*)this)->getPetType() == PETTYPE_AUTOMATON) { acc += ((CCharEntity*)PMaster)->PMeritPoints->GetMeritValue(MERIT_FINE_TUNING, (CCharEntity*)PMaster); } return ((100 + getMod(MOD_RACCP)) * acc) / 100 + dsp_min(((100 + getMod(MOD_FOOD_RACCP)) * acc) / 100, getMod(MOD_FOOD_RACC_CAP)); }
uint16 CBattleEntity::EVA() { return dsp_max(0, (m_modStat[MOD_EVA] * (100 + m_modStat[MOD_EVAP])) / 100 + AGI() / 2); }