30#include <boost/container/small_vector.hpp>
77 _killers(killers), _victim(victim),
78 _groupRate(1.0f), _maxNotGrayMember(nullptr), _count(0), _sumLevel(0), _xp(0),
79 _isFullXP(false), _maxLevel(0), _isBattleGround(isBattleGround), _isPvP(false)
96 Player* member = itr.GetSource();
152 uint32(xp * rate / 2) + 1;
166 pet->GivePetXP(player->
GetGroup() ? xp / 2 : xp);
205 float const rate = player->
GetGroup() ?
244 Player* member = itr.GetSource();
261 if (
Group* group = killer->GetGroup())
263 if (!processedGroups.
insert(group).second)
294 if (
Scenario* scenario = victim->GetScenario())
DB2Storage< MapEntry > sMapStore("Map.db2", &MapLoadInfo::Instance)
@ SPELL_AURA_MOD_XP_FROM_CREATURE_TYPE
ObjectGuid const & GetGUID() const
GroupRefManager & GetMembers()
void _InitGroupData(Player const *killer)
KillRewarder(Trinity::IteratorPair< Player ** > killers, Unit *victim, bool isBattleGround)
void _RewardGroup(Group const *group, Player const *killer)
void _RewardHonor(Player *player)
void _RewardPlayer(Player *player, bool isDungeon)
Trinity::IteratorPair< Player ** > _killers
void _RewardReputation(Player *player, float rate)
Player * _maxNotGrayMember
void _InitXP(Player *player, Player const *killer)
void _RewardXP(Player *player, float rate)
void _RewardKillCredit(Player *player)
void KilledMonster(Creature const *creature)
bool RewardHonor(Unit *victim, uint32 groupsize, int32 honor=-1, HonorGainSource source=HonorGainSource::Kill)
void GiveXP(uint32 xp, Unit *victim, float group_rate=1.0f)
bool IsAtGroupRewardDistance(WorldObject const *pRewardSource) const
void KilledPlayerCredit(ObjectGuid victimGuid)
void UpdateCriteria(CriteriaType type, uint64 miscValue1=0, uint64 miscValue2=0, uint64 miscValue3=0, WorldObject *ref=nullptr)
Corpse * GetCorpse() const
void RewardReputation(Unit *victim, float rate)
Group * GetGroup(Optional< uint8 > partyIndex)
std::pair< iterator, bool > insert(Key const &key)
Utility class to enable range for loop syntax for multimap.equal_range uses.
constexpr end_iterator end() const
constexpr iterator begin() const
Vehicle * GetVehicle() const
ObjectGuid GetCharmerOrOwnerGUID() const override
float GetTotalAuraMultiplier(AuraType auraType) const
uint32 GetCreatureType() const
float GetTotalAuraMultiplierByMiscValue(AuraType auraType, int32 misc_value) const
uint8 GetLevelForTarget(WorldObject const *) const override
constexpr uint32 GetMapId() const
uint32 Gain(Player *player, Unit *u, bool isBattleGround=false)
float xp_in_group_rate(uint32 count, bool isRaid)
uint8 GetGrayLevel(uint8 pl_level)