aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/booleancondition.cpp
blob: a255d0a49c6fac919b1cf8524384ad968be9973c (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#include "booleancondition.h"


BooleanCondition::BooleanCondition()
{
}
qint64 BooleanCondition::hasValid(Die* b,bool recursive) const
{
    QList<qint64> listValues;
    if(recursive)
    {
        listValues = b->getListValue();
    }
    else
    {
        listValues.append(b->getLastRolledValue());
    }

    qint64 sum= 0;
    foreach(qint64 value, listValues)
    {

        switch(m_operator)
        {
            case Equal:
                sum+=(value==m_value)?1:0;
                break;
            case GreaterThan:
                sum+= (value>m_value)?1:0;
                break;
            case LesserThan:
                sum+= (value<m_value)?1:0;
                break;
            case GreaterOrEqual:
                sum+= (value>=m_value)?1:0;
                break;
            case LesserOrEqual:
                sum+= (value<=m_value)?1:0;
                break;


        }
    }

    return sum;
}

void BooleanCondition::setOperator(LogicOperator m)
{
    m_operator = m;
}

void BooleanCondition::setValue(qint64 v)
{
    m_value=v;
}