#ifndef PRAYER_HPP_INCLUDED
#define PRAYER_HPP_INCLUDED

#include <cstdint>
#include <vector>

/** @addtogroup GameTabs
* @{ */
class Prayer
{
    public:

        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;

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

};

/** @} */

#endif // PRAYER_HPP_INCLUDED
