diff options
| author | 2014-01-10 10:42:31 +0100 | |
|---|---|---|
| committer | 2014-01-10 10:42:31 +0100 | |
| commit | be8415d8976fee460710613bcb3403a7f2028aa9 (patch) | |
| tree | 6136961b80dadad3f4d2acc61283d04b8afb6bfc | |
| parent | ab5615e6dfde7fb0fa2b57e8bcbe34b831c47294 (diff) | |
| download | OneRoll-be8415d8976fee460710613bcb3403a7f2028aa9.tar.gz OneRoll-be8415d8976fee460710613bcb3403a7f2028aa9.zip | |
Create explosedicenode.cpp
adding explosing dice
| -rw-r--r-- | node/explosedicenode.cpp | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/node/explosedicenode.cpp b/node/explosedicenode.cpp new file mode 100644 index 0000000..9ed949a --- /dev/null +++ b/node/explosedicenode.cpp @@ -0,0 +1,37 @@ +#include "explosedicenode.h" + +ExploseDiceNode::ExploseDiceNode() + : m_diceResult(new DiceResult()) +{ + m_result = m_diceResult; +} +void ExploseDiceNode::run(ExecutionNode* previous) +{ + if((NULL!=previous)&&(NULL!=previous->getResult())) + { + DiceResult* previous_result = static_cast<DiceResult*>(previous->getResult()); + if(NULL!=previous_result) + { + QList<Die*> list = previous_result->getResultList(); + + + foreach(Die* die, list) + { + while(m_validator->isValid(die)) + { + die->roll(true); + } + } + m_diceResult->setResultList(list); + + if(NULL!=m_nextNode) + { + m_nextNode->run(this); + } + } + } +} +void ExploseDiceNode::setValidator(Validator* val) +{ + m_validator = val; +} |