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")); }
static void Main(string[] args) { TableRepository.LoadSingleFile(@"..\..\..\Tables\treasure table.json", new JSONLoader()); TableRepository.LoadSingleFile(@"..\..\..\Tables\magic base.json", new JSONLoader()); TableRepository.LoadAllMatchingStringFromDirectory(@"..\..\..\Tables", @"*special abilities*", new JSONLoader()); var baseTable = TableRepository.GetTableFromString("treasure table"); TableRepository.GetTableFromString("armor special abilities").Accept(new PrintEntireTreeVisitor()); TableRepository.GetTableFromString("shield special abilities").Accept(new PrintEntireTreeVisitor()); baseTable.Accept(new PrintEntireTreeVisitor()); Console.WriteLine("\r\n===================\r\n"); baseTable.RollCount = 16; Console.WriteLine("\r\n===================\r\n"); var loot = new GetLootVisitor(); baseTable.Accept(loot); foreach (Component comp in loot.GetLootBag()) { Console.WriteLine("--------------------------------------"); Console.WriteLine(comp); Console.WriteLine("--------------------------------------"); } Console.ReadLine(); }
private void RollAllAbilities() { var buildTable = getSortedTableFromDictionaryString("magic base"); if (buildTable.Name != "Table Not Found" && buildTable != null) { var abilitiesVisitor = new GetLootVisitor(); buildTable.Accept(abilitiesVisitor); buildTable.RollCount = 1; appliedAbilities.AddRange(abilitiesVisitor.GetLootBag()); } }
static void Main(string[] args) { var baseTable = new Table("Treasure Table"); baseTable.LoadFromFile(@"..\..\Tables\treasure table.json", new JSONLoader()); var baseTable2 = new Table("Treasure Table"); baseTable.LoadFromFile(@"..\..\Tables\treasure table 2.json", new JSONLoader()); var baseMagicTable = new Table("magic base"); baseMagicTable.LoadFromFile(@"..\..\Tables\magic base.json", new JSONLoader()); var printTree = new PrintEntireTreeVisitor(); baseTable.Accept(printTree); Console.WriteLine("\r\n===================\r\n"); baseTable2.Accept(printTree); //baseMagicTable.Accept(printTree); baseTable.RollCount = 100; Console.WriteLine("\r\n===================\r\n"); var lootBag = new GetLootVisitor(); var lootBag2 = new GetLootVisitor(); baseTable.Accept(lootBag); foreach (Component comp in lootBag.GetLootBag()) { Console.WriteLine(comp); } Console.ReadLine(); }