ModifyManaTask.hpp
Go to the documentation of this file.
1 // This code is based on Sabberstone project.
2 // Copyright (c) 2017-2019 SabberStone Team, darkfriend77 & rnilva
3 // Hearthstone++ is hearthstone simulator using C++ with reinforcement learning.
4 // Copyright (c) 2019 Chris Ohk, Youngjoong Kim, SeungHyun Jeon
5 
6 #ifndef ROSETTASTONE_MODIFY_MANA_TASK_HPP
7 #define ROSETTASTONE_MODIFY_MANA_TASK_HPP
8 
10 
11 namespace RosettaStone
12 {
14 enum class ManaOperator
15 {
16  ADD = 0,
17  SUB = 1,
18  SET = 2,
19 };
20 
22 enum class ManaType
23 {
24  AVAILABLE = 0,
25  MAXIMUM = 1,
26 };
27 
28 namespace SimpleTasks
29 {
35 class ModifyManaTask : public ITask
36 {
37  public:
43  ModifyManaTask(ManaOperator numMode, ManaType manaMode, std::size_t num);
44 
47  TaskID GetTaskID() const override;
48 
49  private:
53  TaskStatus Impl(Player& player) override;
54 
55  ManaOperator m_numMode;
56  ManaType m_manaMode;
57  std::size_t m_num;
58 };
59 } // namespace SimpleTasks
60 } // namespace RosettaStone
61 
62 #endif // ROSETTASTONE_MODIFY_MANA_TASK_HPP
TaskStatus
Meta data to represent the result of the task.
Definition: TaskStatus.hpp:15
ManaOperator
The operator to change mana.
Definition: ModifyManaTask.hpp:14
ManaType
The type to change mana.
Definition: ModifyManaTask.hpp:22
ModifyManaTask class.
Definition: ModifyManaTask.hpp:35
ModifyManaTask(ManaOperator numMode, ManaType manaMode, std::size_t num)
Player class.
Definition: Player.hpp:33
Definition: AccountInfo.hpp:14
ITask class.
Definition: Tasks.hpp:22