#ifndef MOD_SHARED_KILL_CREDIT_H
#define MOD_SHARED_KILL_CREDIT_H

#include "ObjectGuid.h"
#include 
#include 
#include 

class Unit;

class SharedKillCredit
{
public:
    static SharedKillCredit* instance()
    {
        static SharedKillCredit instance;
        return &instance;
    }

    void LoadConfig();
    bool IsEnabled() const { return _enabled; }

    void RecordDamage(Unit* attacker, Unit* victim);
    void RewardTaggers(Unit* victim);
    void ForgetCreature(ObjectGuid const& creatureGuid);

private:
    bool _enabled = true;

    std::mutex _mutex;
    std::unordered_map> _taggersByCreature;
};

#define sSharedKillCredit SharedKillCredit::instance()

#endif