diff options
| author | 2022-04-29 10:48:09 +0200 | |
|---|---|---|
| committer | 2022-04-29 10:48:09 +0200 | |
| commit | 07c5f6ec23fcf9237a24e71adcfacabce677f818 (patch) | |
| tree | 588e8c5f82b9163181fad3581f610e6f1d88cba4 /src/libparser/node/dicerollernode.h | |
| parent | a9153f1615a842cfb9e9bcda4d9071e202618569 (diff) | |
| download | OneRoll-07c5f6ec23fcf9237a24e71adcfacabce677f818.tar.gz OneRoll-07c5f6ec23fcf9237a24e71adcfacabce677f818.zip | |
Change file organization.
Diffstat (limited to 'src/libparser/node/dicerollernode.h')
| -rw-r--r-- | src/libparser/node/dicerollernode.h | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/src/libparser/node/dicerollernode.h b/src/libparser/node/dicerollernode.h new file mode 100644 index 0000000..52178cb --- /dev/null +++ b/src/libparser/node/dicerollernode.h @@ -0,0 +1,63 @@ +#ifndef DICEROLLERNODE_H +#define DICEROLLERNODE_H + +#include <Qt> + +#include "executionnode.h" +#include "result/diceresult.h" +#include <utility> +/** + * @brief The DiceRollerNode class rolls dice of one kind. + */ +class DiceRollerNode : public ExecutionNode +{ +public: + /** + * @brief DiceRollerNode builds an instance + * @param faces, number of faces of dices + * @param offset, first value of dice. + */ + DiceRollerNode(qint64 max, qint64 min= 1); + + /** + * @brief run - starts to roll dice. + */ + virtual void run(ExecutionNode*); + /** + * @brief getFaces accessor + * @return the face count + */ + quint64 getFaces() const; + std::pair<qint64, qint64> getRange() const; + + /** + * @brief toString + * @param wl + * @return use to generate dot tree; + */ + virtual QString toString(bool wl) const; + /** + * @brief getPriority + * @return priority for dice roll: 4 (higher) + */ + virtual qint64 getPriority() const; + + virtual ExecutionNode* getCopy() const; + + // private members + Dice::ArithmeticOperator getOperator() const; + void setOperator(const Dice::ArithmeticOperator& dieOperator); + + bool getUnique() const; + void setUnique(bool unique); + +private: + quint64 m_diceCount; + qint64 m_max; /// faces + DiceResult* m_diceResult{nullptr}; + qint64 m_min; + Dice::ArithmeticOperator m_operator; + bool m_unique{false}; +}; + +#endif // DICEROLLERNODE_H |