Sfoglia il codice sorgente

Fixed creature bonus formula

DjWarmonger 15 anni fa
parent
commit
26fe6b3f04
1 ha cambiato i file con 5 aggiunte e 4 eliminazioni
  1. 5 4
      hch/CObjectHandler.cpp

+ 5 - 4
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;
 			}
 		}