diff options
| -rw-r--r-- | node/rerolldicenode.cpp | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/node/rerolldicenode.cpp b/node/rerolldicenode.cpp index 4a60880..4dff6b7 100644 --- a/node/rerolldicenode.cpp +++ b/node/rerolldicenode.cpp @@ -1,9 +1,10 @@ #include "rerolldicenode.h" -#include "dicerollernode.h" + RerollDiceNode::RerollDiceNode() + : m_myDiceResult(new DiceResult()) { - + m_result=m_myDiceResult; } void RerollDiceNode::run(ExecutionNode* previous) { @@ -12,18 +13,17 @@ void RerollDiceNode::run(ExecutionNode* previous) DiceResult* previous_result = static_cast<DiceResult*>(previous->getResult()); if(NULL!=previous_result) { - QList<Die> list = previous_result->getResultList(); + QList<Die*> list = previous_result->getResultList(); - foreach(Die die, list) + foreach(Die* die, list) { - if(m_value == die.getValue()) + if(m_validator->isValid(die)) { - /* - DiceRollerNode roller; - roller.run(this);*/ + die->roll(); } } + m_myDiceResult->setResultList(list); if(NULL!=m_nextNode) { @@ -32,3 +32,7 @@ void RerollDiceNode::run(ExecutionNode* previous) } } } +void RerollDiceNode::setValidator(Validator* val) +{ + m_validator = val; +} |