aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/server/game/DataStores/DBCStructure.h6
-rwxr-xr-xsrc/server/game/DataStores/DBCfmt.h2
-rwxr-xr-xsrc/server/game/Entities/Unit/StatSystem.cpp14
3 files changed, 5 insertions, 17 deletions
diff --git a/src/server/game/DataStores/DBCStructure.h b/src/server/game/DataStores/DBCStructure.h
index ded0ff65a94..d210347cc2a 100644
--- a/src/server/game/DataStores/DBCStructure.h
+++ b/src/server/game/DataStores/DBCStructure.h
@@ -706,9 +706,9 @@ struct ChrClassesEntry
//uint32 flags2; // 8 m_flags (0x08 HasRelicSlot)
uint32 CinematicSequence; // 9 m_cinematicSequenceID
uint32 expansion; // 10 m_required_expansion
- uint32 APPerStrenth; // 11
- uint32 APPerAgility; // 12
- //uint32 // 13
+ uint32 APPerStrenth; // 11 Attack Power bonus per point of strength
+ uint32 APPerAgility; // 12 Attack Power bonus per point of agility
+ uint32 RAPPerAgility; // 13 Ranged Attack Power bonus per point of agility
};
struct ChrRacesEntry
diff --git a/src/server/game/DataStores/DBCfmt.h b/src/server/game/DataStores/DBCfmt.h
index 8dfc40d9b4e..41c4bc58a1d 100755
--- a/src/server/game/DataStores/DBCfmt.h
+++ b/src/server/game/DataStores/DBCfmt.h
@@ -39,7 +39,7 @@ const char CharStartOutfitEntryfmt[]="diiiiiiiiiiiiiiiiiiiiiiiiixxxxxxxxxxxxxxxx
const char CharTitlesEntryfmt[]="nxsxix";
const char ChatChannelsEntryfmt[]="nixsx";
-const char ChrClassesEntryfmt[]="nixsxxxixiiiix";
+const char ChrClassesEntryfmt[]="nixsxxxixiiiii";
const char ChrRacesEntryfmt[]="nxixiixixxxxixsxxxxxixxx";
const char ChrClassesXPowerTypesfmt[]="nii";
diff --git a/src/server/game/Entities/Unit/StatSystem.cpp b/src/server/game/Entities/Unit/StatSystem.cpp
index c0f7f5c8939..b6ce94cd39b 100755
--- a/src/server/game/Entities/Unit/StatSystem.cpp
+++ b/src/server/game/Entities/Unit/StatSystem.cpp
@@ -274,19 +274,7 @@ void Player::UpdateAttackPowerAndDamage(bool ranged)
if (ranged)
{
index = UNIT_FIELD_RANGED_ATTACK_POWER;
-
- switch (getClass())
- {
- case CLASS_HUNTER:
- val2 = level * 2.0f + GetStat(STAT_AGILITY) * 2.0f - 20.0f;
- break;
- case CLASS_ROGUE:
- val2 = level + GetStat(STAT_AGILITY) - 10.0f;
- break;
- case CLASS_WARRIOR:
- val2 = level + GetStat(STAT_AGILITY) - 10.0f;
- break;
- }
+ val2 = (level + std::max(GetStat(STAT_AGILITY) - 10.0f, 0.0f)) * entry->RAPPerAgility;
}
else
{