/* * This file is part of the AzerothCore Project. See AUTHORS file for Copyright information * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * * You should have received a copy of the GNU General Public License along * with this program. If not, see . */ #ifndef __KILL_REWARDER_H__ #define __KILL_REWARDER_H__ #include "Define.h" class Group; class Player; class Unit; class AC_GAME_API KillRewarder { public: KillRewarder(Player* killer, Unit* victim, bool isBattleGround); void Reward(); Unit* GetVictim(); Player* GetKiller(); private: void _InitXP(Player* player); void _InitGroupData(); void _RewardHonor(Player* player); void _RewardXP(Player* player, float rate); void _RewardReputation(Player* player); void _RewardKillCredit(Player* player); void _RewardPlayer(Player* player, bool isDungeon); void _RewardGroup(); Player* _killer; Unit* _victim; Group* _group; float _groupRate; Player* _maxNotGrayMember; uint32 _count; uint32 _aliveSumLevel; uint32 _sumLevel; uint32 _xp; bool _isFullXP; uint8 _maxLevel; bool _isBattleGround; bool _isPvP; }; #endif