#ifndef PRAYER_HPP_INCLUDED
#define PRAYER_HPP_INCLUDED

#include <cstdint>
#include <vector>

namespace Prayer
{
    typedef enum PRAYERS
    {
        THICK_SKIN,
        BURST_OF_STRENGTH,
        CLARITY_OF_THOUGHT,
        SHARP_EYE,
        MYSTIC_WILL,
        ROCK_SKIN,
        SUPERHUMAN_STRENGTH,
        IMPROVED_REFLEXES,
        RAPID_RESTORE,
        RAPID_HEAL,
        PROTECT_ITEM,
        HAWK_EYE,
        MYSTIC_LORE,
        STEEL_SKIN,
        ULTIMATE_STRENGTH,
        INCREDIBLE_REFLEXES,
        PROTECT_FROM_MAGIC,
        PROTECT_FROM_MISSILES,
        PROTECT_FROM_MELEE,
        EAGLE_EYE,
        MYSTIC_MIGHT,
        RETRIBUTION,
        REDEMPTION,
        SMITE,
        PRESERVE,
        CHIVALRY,
        PIETY,
        RIGOUR,
        AUGURY
    } PRAYERS;

    bool IsOpen();
    bool Open(bool UseHotkey = false);
    std::int32_t GetTabHotkey();
    std::int32_t GetPoints();
    bool HasLevel(PRAYERS Prayer);
    bool IsActive(PRAYERS Prayer);
    bool AllActive(const std::vector<Prayer::PRAYERS>& Prayers);
    bool WaitPrayer(std::uint32_t Duration, std::uint32_t Step, PRAYERS Prayer, bool Active);
    bool Activate(PRAYERS Prayer);
    bool Deactivate(PRAYERS Prayer);
}

#endif // PRAYER_HPP_INCLUDED
