Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const float m_diminishing_k[MAX_CLASSES] =
- {
- 0.9560f, // Warrior
- 0.9560f, // Paladin
- 0.9880f, // Hunter
- 0.9880f, // Rogue
- 0.9830f, // Priest
- 0.9560f, // DK
- 0.9880f, // Shaman
- 0.9830f, // Mage
- 0.9830f, // Warlock
- 0.0f, // ??
- 0.9720f, // Druid
- 0.9830f // Necromancer
- };
- float Player::GetMissPercentageFromDefence() const
- {
- float const miss_cap[MAX_CLASSES] =
- {
- 16.00f, // Warrior //correct
- 16.00f, // Paladin //correct
- 16.00f, // Hunter //?
- 16.00f, // Rogue //?
- 16.00f, // Priest //?
- 16.00f, // DK //correct
- 16.00f, // Shaman //?
- 16.00f, // Mage //?
- 16.00f, // Warlock //?
- 0.0f, // ??
- 16.00f, // Druid //?
- 16.00f // Necromancer//?
- };
- float diminishing = 0.0f, nondiminishing = 0.0f;
- // Modify value from defense skill (only bonus from defense rating diminishes)
- nondiminishing += (GetSkillValue(SKILL_DEFENSE) - GetMaxSkillValueForLevel()) * 0.04f;
- diminishing += (int32(GetRatingBonusValue(CR_DEFENSE_SKILL))) * 0.04f;
- // apply diminishing formula to diminishing miss chance
- uint32 pclass = getClass()-1;
- return nondiminishing + (diminishing * miss_cap[pclass] / (diminishing + miss_cap[pclass] * m_diminishing_k[pclass]));
- }
- void Player::UpdateParryPercentage()
- {
- const float parry_cap[MAX_CLASSES] =
- {
- 47.003525f, // Warrior
- 47.003525f, // Paladin
- 145.560408f, // Hunter
- 145.560408f, // Rogue
- 0.0f, // Priest
- 47.003525f, // DK
- 145.560408f, // Shaman
- 0.0f, // Mage
- 0.0f, // Warlock
- 0.0f, // ??
- 0.0f, // Druid
- 0.0f // Necromancer
- };
- // No parry
- float value = 0.0f;
- uint32 pclass = getClass()-1;
- if (CanParry() && parry_cap[pclass] > 0.0f)
- {
- float nondiminishing = 5.0f;
- // Parry from rating
- float diminishing = GetRatingBonusValue(CR_PARRY);
- // Modify value from defense skill (only bonus from defense rating diminishes)
- nondiminishing += (GetSkillValue(SKILL_DEFENSE) - GetMaxSkillValueForLevel()) * 0.04f;
- diminishing += (int32(GetRatingBonusValue(CR_DEFENSE_SKILL))) * 0.04f;
- // Parry from SPELL_AURA_MOD_PARRY_PERCENT aura
- nondiminishing += GetTotalAuraModifier(SPELL_AURA_MOD_PARRY_PERCENT);
- // apply diminishing formula to diminishing parry chance
- value = nondiminishing + diminishing * parry_cap[pclass] / (diminishing + parry_cap[pclass] * m_diminishing_k[pclass]);
- if (sWorld->getBoolConfig(CONFIG_STATS_LIMITS_ENABLE))
- value = value > sWorld->getFloatConfig(CONFIG_STATS_LIMITS_PARRY) ? sWorld->getFloatConfig(CONFIG_STATS_LIMITS_PARRY) : value;
- value = value < 0.0f ? 0.0f : value;
- }
- SetStatFloatValue(PLAYER_PARRY_PERCENTAGE, value);
- }
- void Player::UpdateDodgePercentage()
- {
- const float dodge_cap[MAX_CLASSES] =
- {
- 88.129021f, // Warrior
- 88.129021f, // Paladin
- 145.560408f, // Hunter
- 145.560408f, // Rogue
- 150.375940f, // Priest
- 88.129021f, // DK
- 145.560408f, // Shaman
- 150.375940f, // Mage
- 150.375940f, // Warlock
- 0.0f, // ??
- 116.890707f, // Druid
- 150.375940f // Necromancer
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement