#ifndef CREATURELIB_BASETURNCHOICE_HPP #define CREATURELIB_BASETURNCHOICE_HPP #include "../ScriptHandling/ScriptSource.hpp" #include "TurnChoiceKind.hpp" namespace CreatureLib::Battling { class Creature; class BaseTurnChoice : public ScriptSource { int32_t _randomValue; protected: ArbUt::BorrowedPtr _user; BaseTurnChoice(ArbUt::BorrowedPtr user) noexcept : _user(user){}; public: virtual ~BaseTurnChoice() = default; [[nodiscard]] virtual TurnChoiceKind GetKind() const noexcept = 0; [[nodiscard]] inline const ArbUt::BorrowedPtr& GetUser() const noexcept { return _user; } inline void __SetRandomValue(int32_t val) noexcept { _randomValue = val; } inline int32_t __GetRandomValue() const noexcept { return _randomValue; } }; } #endif // CREATURELIB_BASETURNCHOICE_HPP