aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/node/rerolldicenode.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'node/rerolldicenode.cpp')
-rw-r--r--node/rerolldicenode.cpp20
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;
+}