コード例 #1
0
        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"));
        }
コード例 #2
0
        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();
        }
コード例 #3
0
        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());
            }
        }
コード例 #4
0
        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();
        }