Пример #1
0
        public void BuildDiceBucket_BasicFateDice()
        {
            var diceRoller = new DiceRoller(numberGenerator);

            numberGenerator.QueuedResults.Enqueue(1);
            numberGenerator.QueuedResults.Enqueue(2);
            numberGenerator.QueuedResults.Enqueue(3);

            var bucket = diceRoller.BuildDiceBucket("3dF", RollType.normalRoll, new List <int>());

            Assert.That(bucket.Count == 1);
            Assert.That(bucket[3].ToArray()[0] == "-1");
            Assert.That(bucket[3].ToArray()[1] == "+0");
            Assert.That(bucket[3].ToArray()[2] == "+1");
        }
Пример #2
0
        public void BuildDiceBucket_ComplicatedRollWithBadData()
        {
            var diceRoller = new DiceRoller(numberGenerator);

            numberGenerator.QueuedResults.Enqueue(10);
            numberGenerator.QueuedResults.Enqueue(3);
            numberGenerator.QueuedResults.Enqueue(5);

            var bucket = diceRoller.BuildDiceBucket("d20 + fred -george !r#andom %%text IS $here + 5-3-2d10 + 7-2", RollType.normalRoll, new List <int>());

            Assert.That(bucket.Count == 3);
            Assert.That(bucket[20].Count == 1);
            Assert.That(bucket[10].Count == 2);
            Assert.That(bucket[0].Count == 4);
        }
Пример #3
0
        public void BuildDiceBucket_DiceMultiplier()
        {
            var diceRoller = new DiceRoller(numberGenerator);

            numberGenerator.QueuedResults.Enqueue(10);
            numberGenerator.QueuedResults.Enqueue(15);
            numberGenerator.QueuedResults.Enqueue(5);
            numberGenerator.QueuedResults.Enqueue(8);
            numberGenerator.QueuedResults.Enqueue(3);

            var bucket = diceRoller.BuildDiceBucket(@"2d20 + 5 - 3d6", RollType.normalRoll, new List <int>());

            Assert.That(bucket.Count == 3);
            Assert.That(bucket[20].Count == 2);
            Assert.That(bucket[6].Count == 3);
        }
Пример #4
0
        public void BuildDiceBucket_MultipleLists()
        {
            var diceRoller = new DiceRoller(numberGenerator);

            numberGenerator.QueuedResults.Enqueue(10);
            numberGenerator.QueuedResults.Enqueue(3);

            var bucket = diceRoller.BuildDiceBucket(@"d20 +5, d10+3", RollType.normalRoll, new List <int>());

            Assert.That(bucket.Count == 3);
            Assert.That(bucket[20].Count == 1);
            Assert.That(bucket[20].ToArray()[0] == "+10");
            Assert.That(bucket[10].Count == 1);
            Assert.That(bucket[10].ToArray()[0] == "+3");
            Assert.That(bucket[0].Count == 2);
        }
Пример #5
0
        public void BuildDiceBucket_RollWithDisadvantage()
        {
            var diceRoller = new DiceRoller(numberGenerator);

            numberGenerator.QueuedResults.Enqueue(10);
            numberGenerator.QueuedResults.Enqueue(3);

            var throwAway = new List <int>();
            var bucket    = diceRoller.BuildDiceBucket("d20+4 /dis", RollType.withDisadvantage, throwAway);

            Assert.That(bucket.Count == 2);

            Assert.That(bucket[20].Count == 1);
            Assert.That(bucket[20].ToArray()[0] == "+3");
            Assert.That(throwAway.Count == 1);
        }
Пример #6
0
        public void BuildDiceBucket_ComplicatedRoll()
        {
            var diceRoller = new DiceRoller(numberGenerator);

            numberGenerator.QueuedResults.Enqueue(10);
            numberGenerator.QueuedResults.Enqueue(3);

            var bucket = diceRoller.BuildDiceBucket(@"/d20 + 5 -3-/d10 + 7-2", RollType.normalRoll, new List <int>());

            Assert.That(bucket.Count == 3);
            Assert.That(bucket[20].Count == 1);
            Assert.That(bucket[20].ToArray()[0] == "+10");

            Assert.That(bucket[10].Count == 1);
            Assert.That(bucket[10].ToArray()[0] == "-3");

            Assert.That(bucket[0].Count == 4);
            Assert.That(bucket[0].ToArray()[0] == "+5");
            Assert.That(bucket[0].ToArray()[1] == "-3");
            Assert.That(bucket[0].ToArray()[2] == "+7");
            Assert.That(bucket[0].ToArray()[3] == "-2");
        }
Пример #7
0
        public void BuildDiceBucket_RollWithAdvantageMoreComplicatedRoll()
        {
            var diceRoller = new DiceRoller(numberGenerator);

            numberGenerator.QueuedResults.Enqueue(10);
            numberGenerator.QueuedResults.Enqueue(3);
            numberGenerator.QueuedResults.Enqueue(4);
            numberGenerator.QueuedResults.Enqueue(6);
            numberGenerator.QueuedResults.Enqueue(2);

            var throwAway = new List <int>();
            var bucket    = diceRoller.BuildDiceBucket("d20 +2d8 -7 +2 -1d4 adv", RollType.withAdvantage, throwAway);

            Assert.That(bucket.Count == 4);

            Assert.That(bucket[20].Count == 1);
            Assert.That(bucket[20].ToArray()[0] == "+10");
            Assert.That(throwAway.Count == 1);

            Assert.That(bucket[8].Count == 2);
            Assert.That(bucket[4].Count == 1);
        }
Пример #8
0
        public void BuildDiceBucket_RollWithAdvantageMultipleD20s()
        {
            var diceRoller = new DiceRoller(numberGenerator);

            numberGenerator.QueuedResults.Enqueue(10);
            numberGenerator.QueuedResults.Enqueue(3);

            numberGenerator.QueuedResults.Enqueue(6);
            numberGenerator.QueuedResults.Enqueue(20);

            // Right now the way this is coded, each d20 will get multiple rolls, so effectively each roll
            // will be rolled with advantage.  Not sure if this is what we really want in the end or not.

            var throwAway = new List <int>();
            var bucket    = diceRoller.BuildDiceBucket("2d20+4 /adv", RollType.withAdvantage, throwAway);

            Assert.That(bucket.Count == 2);
            Assert.That(bucket[20].Count == 2);
            Assert.That(throwAway.Count == 2);
            Assert.That(bucket[20].ToArray()[0] == "+10");
            Assert.That(bucket[20].ToArray()[1] == "+20");
        }