From 58893c479bfdf2ea7631bff12710a436c3bcfa51 Mon Sep 17 00:00:00 2001 From: Renaud G Date: Sun, 28 Jul 2019 02:38:00 +0200 Subject: set of possibility --- operationcondition.cpp | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) (limited to 'operationcondition.cpp') diff --git a/operationcondition.cpp b/operationcondition.cpp index 97c7bce..9ef8e1e 100644 --- a/operationcondition.cpp +++ b/operationcondition.cpp @@ -68,7 +68,7 @@ qint64 OperationCondition::hasValid(Die* b, bool recursive, bool unhighlight) co if(valueScalar == 0) valueScalar= 1; die.insertRollValue(value % valueScalar); - sum+= m_boolean->hasValid(&die, recursive, false); + sum+= m_boolean->hasValid(&die, recursive, false) ? 1 : 0; } break; } @@ -125,6 +125,7 @@ Dice::CONDITION_STATE OperationCondition::isValidRangeSize(const std::pairgetResult(); return result->getResult(Dice::RESULT_TYPE::SCALAR).toInt(); } + +const std::set& OperationCondition::getPossibleValues(const std::pair& range) +{ + if(nullptr == m_boolean) + return m_values; + + for(qint64 i= std::min(range.first, range.second); i <= std::max(range.first, range.second); ++i) + { + auto valueScalar= valueToScalar(); + auto val= i % valueScalar; + Die die; + die.insertRollValue(val); + if(m_boolean->hasValid(&die, false, false)) + m_values.insert(i); + } + return m_values; +} -- cgit v1.2.3-70-g09d2