Example #1
0
        /// <summary>
        /// Will drop between 1 and 4 items from the ItemModel set...
        /// </summary>
        public override List <ItemModel> GetRandomMonsterItemDrops(int round)
        {
            // Teams, You need to implement your own modification to the Logic cannot use mine as is.

            // You decide how to drop monster items, level, etc.

            // The Number drop can be Up to the Round Count, but may be less.
            // Negative results in nothing dropped

            /*
             * Once monster is killed for the round, they will drop their item.
             *  1. find which monsters were killed
             *  2. see if they have drop item
             *  3. move that item to the list. make a copy of it.
             *
             * We added in another method for helper.
             *
             */
            var NumberToDrop = (DiceHelper.RollDice(1, round + 1) - 1);

            var result = new List <ItemModel>();

            for (var i = 0; i < NumberToDrop; i++)
            {
                // Get a random Unique Item
                var data = ItemIndexViewModel.Instance.GetItem(RandomPlayerHelper.GetMonsterUniqueItem());
                result.Add(data);
            }

            return(result);
        }
        public async Task RandomPlayerHelper_GetMonsterUniqueItem_2_Should_Return_2()
        {
            // Arrange
            DiceHelper.EnableForcedRolls();
            DiceHelper.SetForcedRollValue(2);
            var save = ItemIndexViewModel.Instance.Dataset;

            ItemIndexViewModel.Instance.Dataset.Clear();
            await ItemIndexViewModel.Instance.CreateAsync(new ItemModel { ItemType = ItemTypeEnum.Calculator });

            await ItemIndexViewModel.Instance.CreateAsync(new ItemModel { ItemType = ItemTypeEnum.Diploma });

            await ItemIndexViewModel.Instance.CreateAsync(new ItemModel { ItemType = ItemTypeEnum.FoodCourtCard });

            var expected = ItemIndexViewModel.Instance.Dataset.ElementAt(1).Id;

            // Act
            var result = RandomPlayerHelper.GetMonsterUniqueItem();

            // Reset
            ItemIndexViewModel.Instance.Dataset.Clear();
            ItemIndexViewModel.Instance.Dataset = save;
            DiceHelper.DisableForcedRolls();

            // Assert
            Assert.AreEqual(expected, result);
        }
Example #3
0
        /// <summary>
        /// Will drop between 1 and 4 items from the ItemModel set...
        /// </summary>
        /// <param name="round"></param>
        /// <returns></returns>
        public List <ItemModel> GetRandomMonsterItemDrops()
        {
            //pick 1 to 3 items every monster dies
            var NumberToDrop = DiceHelper.RollDice(1, rnd.Next(1, 4));

            var myList = new List <ItemModel>();

            for (var i = 0; i < NumberToDrop; i++)
            {
                var data = ItemIndexViewModel.Instance.GetItem(RandomPlayerHelper.GetMonsterUniqueItem());
                myList.Add(data);
            }
            return(myList);
        }
Example #4
0
        /// <summary>
        /// Will drop between 1 and number of (round // 10 + 1) items from the ItemModel set...
        /// </summary>
        public override List <ItemModel> GetRandomMonsterItemDrops(int round)
        {
            // Roll dice to drop number of items between 1 and number of (rounds divide by 10 + 1)
            var NumberToDrop = DiceHelper.RollDice(1, round / 10 + 1);

            var result = new List <ItemModel>();

            for (var i = 0; i < NumberToDrop; i++)
            {
                // Get a random Unique Item
                var data = ItemIndexViewModel.Instance.GetItem(RandomPlayerHelper.GetMonsterUniqueItem());
                result.Add(data);
            }

            return(result);
        }
Example #5
0
        public void RandomPlayerHelper_GetMonsterUniqueItem_2_Should_Return_2()
        {
            // Arrange
            DiceHelper.EnableForcedRolls();
            DiceHelper.SetForcedRollValue(2);

            var expected = ItemIndexViewModel.Instance.Dataset.ElementAt(1).Id;

            // Act
            var result = RandomPlayerHelper.GetMonsterUniqueItem();

            // Reset
            DiceHelper.DisableForcedRolls();

            // Assert
            Assert.AreEqual(expected, result);
        }
Example #6
0
        /// <summary>
        /// Will drop between 1 and 4 items from the ItemModel set...
        /// </summary>
        /// <param name="round"></param>
        /// <returns></returns>
        public List <ItemModel> GetRandomMonsterItemDrops(int round)
        {
            // You decide how to drop monster items, level, etc.

            // The Number drop can be Up to the Round Count, but may be less.
            // Negative results in nothing dropped
            var NumberToDrop = (DiceHelper.RollDice(1, round + 1) - 1);

            var result = new List <ItemModel>();

            for (var i = 0; i < NumberToDrop; i++)
            {
                // Get a random Unique Item
                var data = ItemIndexViewModel.Instance.GetItem(RandomPlayerHelper.GetMonsterUniqueItem());
                result.Add(data);
            }

            return(result);
        }
Example #7
0
        /// <summary>
        /// Randomize the Monster, keep the level the same
        /// </summary>
        /// <returns></returns>
        public bool RandomizeMonster()
        {
            // Randomize Name
            ViewModel.Data.Name        = RandomPlayerHelper.GetMonsterName();
            ViewModel.Data.Description = RandomPlayerHelper.GetMonsterDescription();

            // Randomize the Attributes
            ViewModel.Data.Attack  = RandomPlayerHelper.GetAbilityValue();
            ViewModel.Data.Speed   = RandomPlayerHelper.GetAbilityValue();
            ViewModel.Data.Defense = RandomPlayerHelper.GetAbilityValue();

            ViewModel.Data.Difficulty = RandomPlayerHelper.GetMonsterDifficultyValue();

            ViewModel.Data.ImageURI = RandomPlayerHelper.GetMonsterImage();

            ViewModel.Data.UniqueItem = RandomPlayerHelper.GetMonsterUniqueItem();

            UpdatePageBindingContext();

            return(true);
        }
        /// <summary>
        /// Will drop between 1 and 4 items from the ItemModel set...
        /// </summary>
        /// <param name="round"></param>
        /// <returns></returns>
        public List <ItemModel> GetRandomMonsterItemDrops(int round)
        {
            // TODO: Teams, You need to implement your own modification to the Logic cannot use mine as is.

            // You decide how to drop monster items, level, etc.

            // The Number drop can be Up to the Round Count, but may be less.
            // Negative results in nothing dropped
            var NumberToDrop = (DiceHelper.RollDice(1, round + 1) - 1);

            var result = new List <ItemModel>();

            //If NumberToDrop is even, then get as many random items as possible up to NumberToDrop
            if (NumberToDrop % 2 == 0)
            {
                for (var i = 0; i < NumberToDrop; i++)
                {
                    // Get a random Unique Item
                    var data = ItemIndexViewModel.Instance.GetItem(RandomPlayerHelper.GetMonsterUniqueItem());
                    result.Add(data);
                }
            }
            //If NumberToDrop is odd, then only drop one item.
            else
            {
                // Get a random Unique Item
                var data = ItemIndexViewModel.Instance.GetItem(RandomPlayerHelper.GetMonsterUniqueItem());
                result.Add(data);
            }

            /*for (var i = 0; i < NumberToDrop; i++)
             * {
             *  // Get a random Unique Item
             *  var data = ItemIndexViewModel.Instance.GetItem(RandomPlayerHelper.GetMonsterUniqueItem());
             *  result.Add(data);
             * }*/

            return(result);
        }