コード例 #1
0
        public void Successfully_ApplyDisadvantage()
        {
            var node = new KeepNode(KeepType.Disadvantage, null)
            {
                Expression = _1d20
            };

            EvaluateNode(node, Data(AdvantageConf), 2, "1d20.disadvantage() => 2 + 19* => 2");
        }
コード例 #2
0
        public void ThrowNegativeDice_WhenKeepingNegativeDice()
        {
            var node = new KeepNode(KeepType.KeepHigh, MinusOne)
            {
                Expression = _4d6
            };

            EvaluateNode(node, Data(StatConf), DiceErrorCode.NegativeDice);
        }
コード例 #3
0
        public void Successfully_KeepLowest()
        {
            var node = new KeepNode(KeepType.KeepLow, One)
            {
                Expression = _4d6
            };

            EvaluateNode(node, Data(StatConf), 4, "4d6.keepLowest(1) => 5* + 3* + 6!* + 1! => 1");
        }
コード例 #4
0
        public void Successfully_ApplyAdvantage()
        {
            var node = new KeepNode(KeepType.Advantage, null)
            {
                Expression = _1d20
            };

            EvaluateNode(node, Data(AdvantageConf), 2, "1d20.advantage() => 2* + 19 => 19");
        }
コード例 #5
0
        public void Successfully_DropLowest()
        {
            var node = new KeepNode(KeepType.DropLow, One)
            {
                Expression = _4d6
            };

            EvaluateNode(node, Data(StatConf), 4, "4d6.dropLowest(1) => 5 + 3 + 6! + 1!* => 14");
        }
コード例 #6
0
        public void Successfully_DropHighest()
        {
            var node = new KeepNode(KeepType.DropHigh, One)
            {
                Expression = _4d6
            };

            EvaluateNode(node, Data(StatConf), 4, "4d6.dropHighest(1) => 5 + 3 + 6!* + 1! => 9");
        }
コード例 #7
0
        public void Successfully_AllowKeepingZeroDice()
        {
            var node = new KeepNode(KeepType.KeepHigh, Zero)
            {
                Expression = _4d6
            };

            EvaluateNode(node, Data(StatConf), 4, "4d6.keepHighest(0) => 5* + 3* + 6!* + 1!* => 0");
        }
コード例 #8
0
        public void Successfully_AllowDroppingMoreDiceThanExist()
        {
            var node = new KeepNode(KeepType.DropHigh, Five)
            {
                Expression = _4d6
            };

            EvaluateNode(node, Data(StatConf), 4, "4d6.dropHighest(5) => 5* + 3* + 6!* + 1!* => 0");
        }
コード例 #9
0
        public void CountSuccesses_WhenKeepingSuccessDice()
        {
            var success = new SuccessNode(greaterEqual5, equal1)
            {
                Expression = _4d6
            };
            var node = new KeepNode(KeepType.DropLow, One)
            {
                Expression = success
            };

            EvaluateNode(node, Data(StatConf), 4, "4d6.success(>=5).failure(=1).dropLowest(1) => $5 + 3 + $6 + 1* => 2 successes");
        }
コード例 #10
0
        public void Successfully_IgnoreDroppedDice()
        {
            var drop = new KeepNode(KeepType.DropLow, One)
            {
                Expression = _4d6
            };
            var node = new SuccessNode(greaterEqual5, equal1)
            {
                Expression = drop
            };

            EvaluateNode(node, Data(SuccessConf), 4, "4d6.dropLowest(1).success(>=5).failure(=1) => 4 + $5 + 1* + $6 => 2 successes");
        }