ITask class. More...

#include <Rosetta/Tasks/Tasks.hpp>

Inheritance diagram for RosettaStone::ITask:
RosettaStone::DoBothPlayer RosettaStone::DoUntil RosettaStone::PlayerTasks::AttackTask RosettaStone::PlayerTasks::ChooseTask RosettaStone::PlayerTasks::EndTurnTask RosettaStone::PlayerTasks::PlayCardTask RosettaStone::SimpleTasks::AddEnchantmentTask RosettaStone::SimpleTasks::ControlTask RosettaStone::SimpleTasks::DamageTask RosettaStone::SimpleTasks::DestroyTask RosettaStone::SimpleTasks::DiscardTask RosettaStone::SimpleTasks::DrawTask RosettaStone::SimpleTasks::HealFullTask RosettaStone::SimpleTasks::HealTask RosettaStone::SimpleTasks::IncludeTask RosettaStone::SimpleTasks::ModifyManaTask

Public Member Functions

 ITask ()=default
 Default constructor. More...
 
 ITask (EntityType entityType)
 
 ITask (Entity *source, Entity *target)
 
 ITask (EntityType entityType, Entity *source, Entity *target)
 
virtual ~ITask ()=default
 Default destructor. More...
 
 ITask (const ITask &task)=default
 Default copy constructor. More...
 
 ITask (ITask &&task)=default
 Default move constructor. More...
 
ITaskoperator= (const ITask &task)=default
 Default copy assignment operator. More...
 
ITaskoperator= (ITask &&task)=default
 Default move assignment operator. More...
 
EntityType GetEntityType () const
 
void SetSource (Entity *source)
 
void SetTarget (Entity *target)
 
TaskStatus Run (Player &player)
 
virtual TaskID GetTaskID () const =0
 

Static Public Attributes

template<typename T >
static constexpr bool isTask
 

Protected Attributes

EntityType m_entityType = EntityType::EMPTY
 
Entitym_source = nullptr
 
Entitym_target = nullptr
 

Detailed Description

ITask class.

This class is interface of various task classes. All classes that inherit from it must implement GetTaskID and Impl methods.

Constructor & Destructor Documentation

◆ ITask() [1/6]

RosettaStone::ITask::ITask ( )
default

Default constructor.

◆ ITask() [2/6]

RosettaStone::ITask::ITask ( EntityType  entityType)

Constructs task with given entityType.

Parameters
entityTypeThe entity type of target.

◆ ITask() [3/6]

RosettaStone::ITask::ITask ( Entity source,
Entity target 
)

Constructs task with given source and target.

Parameters
sourceA source entity to apply task.
targetA target entity to apply task.

◆ ITask() [4/6]

RosettaStone::ITask::ITask ( EntityType  entityType,
Entity source,
Entity target 
)

Constructs task with given entityType, source and target.

Parameters
entityTypeThe entity type of target.
sourceA source entity to apply task.
targetA target entity to apply task.

◆ ~ITask()

virtual RosettaStone::ITask::~ITask ( )
virtualdefault

Default destructor.

◆ ITask() [5/6]

RosettaStone::ITask::ITask ( const ITask task)
default

Default copy constructor.

◆ ITask() [6/6]

RosettaStone::ITask::ITask ( ITask &&  task)
default

Default move constructor.

Member Function Documentation

◆ GetEntityType()

EntityType RosettaStone::ITask::GetEntityType ( ) const

Returns entity type.

Returns
Entity type.

◆ GetTaskID()

◆ operator=() [1/2]

ITask& RosettaStone::ITask::operator= ( const ITask task)
default

Default copy assignment operator.

◆ operator=() [2/2]

ITask& RosettaStone::ITask::operator= ( ITask &&  task)
default

Default move assignment operator.

◆ Run()

TaskStatus RosettaStone::ITask::Run ( Player player)

Calls Impl method and returns meta data.

Parameters
playerThe player to run task.
Returns
The result of task processing.

◆ SetSource()

void RosettaStone::ITask::SetSource ( Entity source)

Sets the source.

Parameters
sourceA pointer to the source.

◆ SetTarget()

void RosettaStone::ITask::SetTarget ( Entity target)

Sets the target.

Parameters
targetA pointer to the target.

Member Data Documentation

◆ isTask

template<typename T >
constexpr bool RosettaStone::ITask::isTask
inlinestatic
Initial value:
=
std::is_convertible_v<std::decay_t<T>, ITask>

◆ m_entityType

EntityType RosettaStone::ITask::m_entityType = EntityType::EMPTY
protected

◆ m_source

Entity* RosettaStone::ITask::m_source = nullptr
protected

◆ m_target

Entity* RosettaStone::ITask::m_target = nullptr
protected

The documentation for this class was generated from the following file: