7 #ifndef ROSETTASTONE_TASKS_HPP 8 #define ROSETTASTONE_TASKS_HPP 26 static inline constexpr
bool isTask =
27 std::is_convertible_v<std::decay_t<T>,
ITask>;
34 ITask(EntityType entityType);
48 virtual ~ITask() =
default;
103 return task.Run(player);
109 template <
typename... TaskType>
112 std::vector<TaskStatus> metas;
113 metas.reserve(
sizeof...(task));
115 (..., metas.push_back(task.Run(player)));
121 #endif // ROSETTASTONE_TASKS_HPP void SetSource(Entity *source)
EntityType GetEntityType() const
ITask()=default
Default constructor.
TaskStatus
Meta data to represent the result of the task.
Definition: TaskStatus.hpp:15
virtual ~ITask()=default
Default destructor.
virtual TaskID GetTaskID() const =0
EntityType m_entityType
Definition: Tasks.hpp:84
ITask & operator=(const ITask &task)=default
Default copy assignment operator.
static constexpr bool isTask
Definition: Tasks.hpp:26
Abstract entity structure that stores card data.
Definition: Entity.hpp:28
TaskStatus Run(Player &player)
std::vector< TaskStatus > RunMulti(Player &player, TaskType &&... task)
Definition: Tasks.hpp:110
void SetTarget(Entity *target)
TaskStatus Run(Player &player, ITask &&task)
Definition: Tasks.hpp:101
Player class.
Definition: Player.hpp:33
Definition: AccountInfo.hpp:14
Entity * m_target
Definition: Tasks.hpp:86
ITask class.
Definition: Tasks.hpp:22
Entity * m_source
Definition: Tasks.hpp:85