private void RollSpecialAbilities() { var abilitiesToRoll = from ability in appliedAbilities where ability.Name.ToLower().Contains("special abilities") select ability; var abilitiesToAdd = new List <Component>(); foreach (Component ability in abilitiesToRoll) { var typeToRoll = Types & ~(ItemTypes.Magic | ItemTypes.Magic_Major | ItemTypes.Magic_Medium | ItemTypes.Magic_Minor); var typeString = typeToRoll.ToString().ToLower() + " special abilities"; var rollTable = TableRepository.GetTypeSortedTableFromString(typeString, Types); if (rollTable != null) { var abilities = new GetLootVisitor(); rollTable.Accept(abilities); abilitiesToAdd.AddRange(abilities.GetLootBag()); } } appliedAbilities.AddRange(abilitiesToAdd); appliedAbilities.RemoveAll(k => k.Name.ToLower().Contains("special abilities")); }
private void RollAllAbilities() { var buildTable = TableRepository.GetTypeSortedTableFromString("magic base", Types); if (buildTable.Name != "Table Not Found" && buildTable != null) { var abilitiesVisitor = new GetLootVisitor(); buildTable.Accept(abilitiesVisitor); buildTable.RollCount = 1; appliedAbilities.AddRange(abilitiesVisitor.GetLootBag()); } }