public Item GenerateAtPower(string power) { var item = innerGenerator.GenerateAtPower(power); if (curseGenerator.HasCurse(item.IsMagical)) { var curse = curseGenerator.GenerateCurse(); if (curse == TableNameConstants.Percentiles.Set.SpecificCursedItems) { return(curseGenerator.GenerateSpecificCursedItem()); } item.Magic.Curse = curse; } return(item); }
public void GetSpecificCursedItem() { mockPercentileSelector.Setup(s => s.SelectFrom(TableNameConstants.Percentiles.Set.SpecificCursedItems)).Returns("specific cursed item"); var itemType = new[] { "item type" }; mockCollectionsSelector.Setup(s => s.SelectFrom(TableNameConstants.Collections.Set.SpecificCursedItemItemTypes, "specific cursed item")) .Returns(itemType); var attributes = new[] { "attribute 1", "attribute 2" }; mockCollectionsSelector.Setup(s => s.SelectFrom(TableNameConstants.Collections.Set.SpecificCursedItemAttributes, "specific cursed item")) .Returns(attributes); var cursedItem = curseGenerator.GenerateSpecificCursedItem(); Assert.That(cursedItem.Name, Is.EqualTo("specific cursed item")); Assert.That(cursedItem.IsMagical, Is.True); Assert.That(cursedItem.Magic.Curse, Is.EqualTo(CurseConstants.SpecificCursedItem)); Assert.That(cursedItem.ItemType, Is.EqualTo("item type")); Assert.That(cursedItem.Attributes, Is.EquivalentTo(attributes)); }
public Item GenerateRandom(string power) { var item = innerGenerator.GenerateRandom(power); if (curseGenerator.HasCurse(item)) { var canBeSpecific = curseGenerator.ItemTypeCanBeSpecificCursedItem(item.ItemType); do { item.Magic.Curse = curseGenerator.GenerateCurse(); }while (item.Magic.Curse == TableNameConstants.Percentiles.Set.SpecificCursedItems && !canBeSpecific); if (item.Magic.Curse == TableNameConstants.Percentiles.Set.SpecificCursedItems && canBeSpecific) { return(curseGenerator.GenerateSpecificCursedItem(item.ItemType)); } } return(item); }