public void TestGenerateDelLily() { Enemy delLily = new Enemy(); delLily.setDropAnythingRate(0.35); delLily.setRareRate(0.015625); delLily.setEquipmentDropType(ItemDropType.WEAPON); ItemDropGenerator itemDropGenerator = new ItemDropGenerator(new RandomGenerator()); for(int i = 0; i < 10; i++) { ItemDropType result = itemDropGenerator.generateDrop(delLily); System.Console.WriteLine("Generated [" + result + "]"); } }
public void TestGenerateMeseta() { Enemy enemy = new Enemy(); enemy.setDropAnythingRate(50.0); enemy.setRareRate(50.0); enemy.setEquipmentDropType(ItemDropType.WEAPON); // Rig the random to return true for the DAR check MockRandomGenerator mockRandomGenerator = new MockRandomGenerator(); mockRandomGenerator.rigDropAnythingRate(true); mockRandomGenerator.rigRareRate(false); mockRandomGenerator.rigMesetaRate(true); ItemDropGenerator itemDropGenerator = new ItemDropGenerator(mockRandomGenerator); ItemDropType result = itemDropGenerator.generateDrop(enemy); Assert.AreEqual(ItemDropType.MESETA, result); }
public ItemDropType generateDrop(Enemy enemy) { // First, check if we drop anything at all if (randomGenerator.rollDropAnythingRate(enemy.getDropAnythingRate(), 2)) { // Next, check if we got a Rare or a Common if (randomGenerator.rollDropRareRate(enemy.getRareRate(), 6)) { System.Console.WriteLine("Generated a [Rare] item"); return ItemDropType.RARE; } else { System.Console.WriteLine("Generated a [Common] item..."); // Decide if this is Meseta or an actual Item if (randomGenerator.rollMesetaRate(MESETA_RATE, 2)) { System.Console.WriteLine("Generated [Meseta] "); return ItemDropType.MESETA; } else { // Decide if this is a Tool or the assigned Equipment if (randomGenerator.rollToolRate(TOOL_RATE, 2)) { System.Console.WriteLine("Generated [Tool] "); return ItemDropType.TOOL; } else { System.Console.WriteLine("Generated [" + enemy.getEquipmentDropType() + "]"); return enemy.getEquipmentDropType(); } } } } else { System.Console.WriteLine("Generated [Nothing]"); return ItemDropType.NOTHING; } }