#ifndef CREATURELIB_SWITCHTURNCHOICE_HPP #define CREATURELIB_SWITCHTURNCHOICE_HPP #include "BaseTurnChoice.hpp" namespace CreatureLib::Battling { class SwitchTurnChoice : public BaseTurnChoice { ArbUt::OptionalBorrowedPtr _newCreature; public: SwitchTurnChoice(ArbUt::BorrowedPtr user, ArbUt::OptionalBorrowedPtr newCreature) noexcept : BaseTurnChoice(user), _newCreature(newCreature) {} TurnChoiceKind GetKind() const noexcept final { return TurnChoiceKind::Switch; } inline const ArbUt::OptionalBorrowedPtr& GetNewCreature() const noexcept { return _newCreature; } size_t ScriptCount() const override { return GetUser()->ScriptCount(); } protected: void GetActiveScripts(ArbUt::List& scripts) override { GetUser()->GetActiveScripts(scripts); } }; } #endif // CREATURELIB_SWITCHTURNCHOICE_HPP