Esempio n. 1
0
        public static string TestLootGenMonster(uint deathTreasureDID, int numCorpses, bool logStats, string displayTable)
        {
            string displayHeader = $"\n LootFactory Simulator - Corpses\n ---------------------\n";

            var corpseContainer = new List <WorldObject>();
            var ls = new LootStats(logStats);

            Console.WriteLine($"Creating {numCorpses} corpses.");

            var deathTreasure = DatabaseManager.World.GetCachedDeathTreasure(deathTreasureDID);

            if (deathTreasure != null)
            {
                displayHeader += $" Loot profile {deathTreasure.Id} (a Tier {deathTreasure.Tier} profile) from DID {deathTreasureDID} was used for creating {numCorpses} corpses. \n";
            }
            else
            {
                displayHeader += $" DID {deathTreasureDID} you specified is invalid. \n";
                return(displayHeader);
            }

            for (int i = 0; i < numCorpses; i++)
            {
                if (deathTreasure != null)
                {
                    corpseContainer = LootGenerationFactory.CreateRandomLootObjects_New(deathTreasure);

                    if (corpseContainer.Count < ls.MinItemsCreated)
                    {
                        ls.MinItemsCreated = corpseContainer.Count;
                    }
                    if (corpseContainer.Count > ls.MaxItemsCreated)
                    {
                        ls.MaxItemsCreated = corpseContainer.Count;
                    }

                    foreach (var lootItem in corpseContainer)
                    {
                        ls.AddItem(lootItem, logStats);
                    }
                }
            }

            var displayStats = BuildDisplayStats(ls, displayTable);

            Console.WriteLine(displayHeader);
            Console.WriteLine(displayStats);

            displayHeader += $" A total of {ls.TotalItems} unique items were generated. \n";

            if (logStats)
            {
                string myfilename = $"LootSim_DeathTreasureDID-{deathTreasureDID}" + string.Format("_{0:hh-mm-ss-tt_MM-dd-yyyy}.csv", DateTime.Now);
                File.WriteAllText(myfilename, displayHeader + displayStats);
            }

            return(displayHeader);
        }
Esempio n. 2
0
        public static string TestLootGen(int numItems, int tier, bool logStats, string displayTable)
        {
            string displayHeader = $"\n LootFactory Simulator - Items\n ---------------------\n";

            Console.WriteLine($"Creating {numItems} items, that are in tier {tier}");

            var lootStats = new LootStats(logStats);

            // Create a dummy treasure profile for passing in tier value
            TreasureDeath profile = new TreasureDeath
            {
                Tier           = tier,
                LootQualityMod = 0
            };

            // Loop depending on how many items you are creating
            for (int i = 0; i < numItems; i++)
            {
                var testItem = LootGenerationFactory.CreateRandomLootObjects(profile, true);
                lootStats.AddItem(testItem, logStats);
            }

            var displayStats = BuildDisplayStats(lootStats, displayTable);

            Console.WriteLine(displayHeader);
            Console.WriteLine(displayStats);

            displayHeader += $" A total of {lootStats.TotalItems} items were generated in Tier {tier}. \n";

            if (logStats)
            {
                string myfilename = string.Format("LootSim-{0:hh-mm-ss-tt_MM-dd-yyyy}.csv", DateTime.Now);
                File.WriteAllText(myfilename, displayHeader + displayStats);
            }

            return(displayHeader);
        }