public Item Generate(string power, string itemName, params string[] traits) { if (curseGenerator.IsSpecificCursedItem(itemName)) { return(curseGenerator.Generate(itemName, traits)); } var item = innerGenerator.Generate(power, itemName, traits); if (curseGenerator.HasCurse(item)) { var canBeSpecific = curseGenerator.CanBeSpecificCursedItem(itemName); do { item.Magic.Curse = curseGenerator.GenerateCurse(); }while (item.Magic.Curse == TableNameConstants.Percentiles.Set.SpecificCursedItems && !canBeSpecific); if (item.Magic.Curse == TableNameConstants.Percentiles.Set.SpecificCursedItems && canBeSpecific) { var cursedItem = curseGenerator.Generate(itemName, traits); return(cursedItem); } } return(item); }
public void TemplateHasCurse() { var name = Guid.NewGuid().ToString(); var template = itemVerifier.CreateRandomTemplate(name); var cursedItems = new[] { "other cursed item", name }; mockCollectionsSelector.Setup(s => s.SelectFrom(TableNameConstants.Collections.Set.ItemGroups, CurseConstants.SpecificCursedItem)).Returns(cursedItems); var isCursed = curseGenerator.IsSpecificCursedItem(template); Assert.That(isCursed, Is.True); }
public Item Generate(Item template, bool allowRandomDecoration = false) { if (curseGenerator.IsSpecificCursedItem(template)) { return(curseGenerator.GenerateSpecificCursedItem(template)); } var item = innerGenerator.Generate(template, allowRandomDecoration); if (allowRandomDecoration && curseGenerator.HasCurse(item.IsMagical)) { do { item.Magic.Curse = curseGenerator.GenerateCurse(); }while (item.Magic.Curse == TableNameConstants.Percentiles.Set.SpecificCursedItems); } return(item); }