aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/server/game/Entities/Player/Player.cpp20
-rw-r--r--src/server/game/Entities/Player/Player.h2
2 files changed, 22 insertions, 0 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index 8eb2d34229e..1e3bd84c780 100644
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -24003,3 +24003,23 @@ void Player::_LoadRandomBGStatus(QueryResult_AutoPtr result)
if (result)
m_IsBGRandomWinner = true;
}
+
+float Player::GetAverageItemLevel()
+{
+ uint32 sum = 0;
+ uint32 count = 0;
+
+ for (int i = EQUIPMENT_SLOT_START; i < EQUIPMENT_SLOT_END; ++i)
+ {
+ // don't check tabard, ranged, offhand or chest
+ if (i == EQUIPMENT_SLOT_TABARD || i == EQUIPMENT_SLOT_RANGED || i == EQUIPMENT_SLOT_OFFHAND || i == EQUIPMENT_SLOT_CHEST)
+ continue;
+
+ if (m_items[i] && m_items[i]->GetProto())
+ sum += m_items[i]->GetProto()->ItemLevel;
+
+ count++;
+ }
+
+ return ((float)sum) / count;
+}
diff --git a/src/server/game/Entities/Player/Player.h b/src/server/game/Entities/Player/Player.h
index 4f8da387fb2..2d6690bd817 100644
--- a/src/server/game/Entities/Player/Player.h
+++ b/src/server/game/Entities/Player/Player.h
@@ -2347,6 +2347,8 @@ class Player : public Unit, public GridObject<Player>
void SetChampioningFaction(uint32 faction) { m_ChampioningFaction = faction; }
Spell * m_spellModTakingSpell;
+ float GetAverageItemLevel();
+
protected:
uint32 m_AreaID;
uint32 m_regenTimerCount;