Advertisement
Guest User

Untitled

a guest
Sep 21st, 2017
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.71 KB | None | 0 0
  1. void Player::UpdateParryPercentage()
  2. {
  3.     static const float parry_cap[MAX_CLASSES] = {
  4.          47.003525f,  // Warrior
  5.          47.003525f,  // Paladin
  6.                0.0f,  // Hunter
  7.                0.0f,  // Rogue
  8.                0.0f,  // Priest
  9.          47.003525f,  // DK
  10.                0.0f,  // Shaman
  11.                0.0f,  // Mage
  12.                0.0f,  // Warlock
  13.                0.0f,  // ??
  14.                0.0f   // Druid
  15.     };
  16.  
  17.     static const float k[MAX_CLASSES] = {
  18.             0.9560f,  // Warrior
  19.             0.9560f,  // Paladin
  20.                0.0f,  // Hunter
  21.                0.0f,  // Rogue
  22.                0.0f,  // Priest
  23.             0.9560f,  // DK
  24.                0.0f,  // Shaman
  25.                0.0f,  // Mage
  26.                0.0f,  // Warlock
  27.                0.0f,  // ??
  28.                0.0f   // Druid
  29.     };
  30.  
  31.     // No parry
  32.     float value = 0.0f;
  33.     if (CanParry())
  34.     {
  35.         float parryFromDefense = (int32(GetRatingBonusValue(CR_DEFENSE_SKILL))) * 0.04f;
  36.         //float parryFromDefense = (GetSkillValue(SKILL_DEFENSE) - GetMaxSkillValueForLevel()) * 0.04f;
  37.         float parryFromRating = GetRatingBonusValue(CR_PARRY);
  38.         uint32 pclass = getClass()-1;
  39.         float coef = k[pclass] / (parryFromDefense + parryFromRating);
  40.         float avoidance = 1 / parry_cap[pclass] + coef;
  41.         float diminished = 1 / avoidance;
  42.  
  43.         value = diminished;
  44.         // no diminished
  45.         value += GetTotalAuraModifier(SPELL_AURA_MOD_PARRY_PERCENT);
  46.         value += 5.0f;
  47.         value += (GetSkillValue(SKILL_DEFENSE) - GetMaxSkillValueForLevel()) * 0.04f;
  48.  
  49.         value = value < 0.0f ? 0.0f : value;
  50.     }
  51.     SetStatFloatValue(PLAYER_PARRY_PERCENTAGE, value);
  52. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement