// // Licensed under the MIT License. See LICENSE file in the project root for full license information. // namespace MUnique.OpenMU.GameLogic.Benchmarks.Helpers; using Moq; using MUnique.OpenMU.DataModel.Configuration; using MUnique.OpenMU.DataModel.Configuration.Items; /// /// Extensions for . /// public static class DropItemGroupExtensions { /// /// Adds the basic drop item groups. /// /// The item groups. public static void AddBasicDropItemGroups(this ICollection itemGroups) { itemGroups.Add(1, SpecialItemType.RandomItem, true); itemGroups.Add(1000, SpecialItemType.Excellent, true); itemGroups.Add(3000, SpecialItemType.Money, true); } /// /// Adds a new drop item group with the specified data. /// /// The list. /// The chance. /// Type of the item. /// if set to true, it adds a test item to the possible item list. /// The drop item group which has been added to the list. public static DropItemGroup Add(this ICollection list, int chance, SpecialItemType itemType, bool addItem) { var dropItemGroup = new Mock(); dropItemGroup.SetupAllProperties(); dropItemGroup.Object.Chance = chance / 10000.0; dropItemGroup.Object.ItemType = itemType; var itemList = new List(); dropItemGroup.Setup(g => g.PossibleItems).Returns(itemList); if (addItem) { var itemDefinition = new Mock(); itemDefinition.SetupAllProperties(); itemDefinition.Object.DropsFromMonsters = true; itemDefinition.Setup(d => d.PossibleItemSetGroups).Returns(new List()); itemDefinition.Setup(d => d.PossibleItemOptions).Returns(new List()); itemList.Add(itemDefinition.Object); } list.Add(dropItemGroup.Object); return dropItemGroup.Object; } }