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; } }