diff --git a/hch/CObjectHandler.cpp b/hch/CObjectHandler.cpp index a5964371c..5e55682c7 100644 --- a/hch/CObjectHandler.cpp +++ b/hch/CObjectHandler.cpp @@ -1153,16 +1153,17 @@ void CGHeroInstance::UpdateSpeciality() } double primSkillModifier = (int)(level / creLevel) / 20.0; - + int param; switch (it->subtype) { case PrimarySkill::ATTACK: - it->val = (*creatures)[it->additionalInfo]->attack * primSkillModifier; - break; + param = (*creatures)[it->additionalInfo]->attack; + break; case PrimarySkill::DEFENSE: - it->val = (*creatures)[it->additionalInfo]->defence * primSkillModifier; + param = (*creatures)[it->additionalInfo]->defence; break; } + it->val = ceil(param * (1 + primSkillModifier)) - param; //yep, overcomplicated but matches original break; } }