From be8415d8976fee460710613bcb3403a7f2028aa9 Mon Sep 17 00:00:00 2001 From: obiwankennedy Date: Fri, 10 Jan 2014 10:42:31 +0100 Subject: Create explosedicenode.cpp adding explosing dice --- node/explosedicenode.cpp | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 node/explosedicenode.cpp (limited to 'node') 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(previous->getResult()); + if(NULL!=previous_result) + { + QList 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; +} -- cgit v1.2.3-70-g09d2