#pragma once

#include "adapters/il2cpp/Il2CppObjectInstance.h"
#include "adapters/eft/player/PlayerTypes.h"

namespace ta::adapters::eft::player::runtime
{
    class PlayerVitalsService
    {
    public:
        void apply(ta::adapters::il2cpp::Il2CppObjectInstance& main_player, const PlayerSettings& settings);

    private:
        GodModeState god_mode_state_;

        static void refill_stamina(ta::adapters::il2cpp::Il2CppObjectInstance& main_player);
        static void set_resource_current(ta::adapters::il2cpp::Il2CppObjectInstance& owner, const char* field_name, float value);
        void apply_god_mode(Il2CppObject* health_controller_ptr, bool enabled);
        static void refill_hunger_and_thirst(Il2CppObject* health_controller_ptr);
    };
}
