Advertisement
Guest User

StatSystem.cpp

a guest
Mar 12th, 2015
312
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.02 KB | None | 0 0
  1. {
  2. switch (getClass())
  3. {
  4. case CLASS_WARRIOR:
  5. val2 = level * 3.0f + GetStat(STAT_STRENGTH) * 2.0f - 20.0f;
  6. break;
  7. case CLASS_PALADIN:
  8. val2 = level * 3.0f + GetStat(STAT_STRENGTH) * 2.0f - 20.0f;
  9. break;
  10. case CLASS_DEATH_KNIGHT:
  11. val2 = level * 3.0f + GetStat(STAT_STRENGTH) * 2.0f - 20.0f;
  12. break;
  13. case CLASS_ROGUE:
  14. val2 = level * 2.0f + GetStat(STAT_STRENGTH) + GetStat(STAT_AGILITY) - 20.0f;
  15. break;
  16. case CLASS_HUNTER:
  17. val2 = level * 2.0f + GetStat(STAT_STRENGTH) + GetStat(STAT_AGILITY) - 20.0f;
  18. break;
  19. case CLASS_SHAMAN:
  20. val2 = level * 2.0f + GetStat(STAT_STRENGTH) + GetStat(STAT_AGILITY) - 20.0f;
  21. break;
  22. case CLASS_DRUID:
  23. {
  24. // Check if Predatory Strikes is skilled
  25. float mLevelMult = 0.0f;
  26. float weapon_bonus = 0.0f;
  27. if (IsInFeralForm())
  28. {
  29. Unit::AuraEffectList const& mDummy = GetAuraEffectsByType(SPELL_AURA_DUMMY);
  30. for (Unit::AuraEffectList::const_iterator itr = mDummy.begin(); itr != mDummy.end(); ++itr)
  31. {
  32. AuraEffect* aurEff = *itr;
  33. if (aurEff->GetSpellInfo()->SpellIconID == 1563)
  34. {
  35. switch (aurEff->GetEffIndex())
  36. {
  37. case 0: // Predatory Strikes (effect 0)
  38. mLevelMult = CalculatePct(1.0f, aurEff->GetAmount());
  39. break;
  40. case 1: // Predatory Strikes (effect 1)
  41. if (Item* mainHand = m_items[EQUIPMENT_SLOT_MAINHAND])
  42. {
  43. // also gains % attack power from equipped weapon
  44. ItemTemplate const* proto = mainHand->GetTemplate();
  45. if (!proto)
  46. continue;
  47.  
  48. weapon_bonus = CalculatePct(float(proto->getFeralBonus()), aurEff->GetAmount());
  49. }
  50. break;
  51. default:
  52. break;
  53. }
  54. }
  55. }
  56. }
  57.  
  58. switch (GetShapeshiftForm())
  59. {
  60. case FORM_CAT:
  61. val2 = getLevel() * (mLevelMult + 2.0f) + GetStat(STAT_STRENGTH) * 2.0f + GetStat(STAT_AGILITY) - 20.0f + weapon_bonus + m_baseFeralAP;
  62. break;
  63. case FORM_BEAR:
  64. case FORM_DIREBEAR:
  65. val2 = getLevel() * (mLevelMult + 3.0f) + GetStat(STAT_STRENGTH) * 2.0f - 20.0f + weapon_bonus + m_baseFeralAP;
  66. break;
  67. case FORM_MOONKIN:
  68. val2 = getLevel() * (mLevelMult + 1.5f) + GetStat(STAT_STRENGTH) * 2.0f - 20.0f + m_baseFeralAP;
  69. break;
  70. default:
  71. val2 = GetStat(STAT_STRENGTH) * 2.0f - 20.0f;
  72. break;
  73. }
  74. break;
  75. }
  76. case CLASS_MAGE:
  77. val2 = GetStat(STAT_STRENGTH) - 10.0f;
  78. break;
  79. case CLASS_PRIEST:
  80. val2 = GetStat(STAT_STRENGTH) - 10.0f;
  81. break;
  82. case CLASS_WARLOCK:
  83. val2 = GetStat(STAT_STRENGTH) - 10.0f;
  84. break;
  85. case CLASS_NECROMANCER:
  86. val2 = GetStat(STAT_STRENGTH) - 10.0f;
  87. break;
  88. }
  89. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement