diff --git a/src/engine/loot/LootManager.java b/src/engine/loot/LootManager.java index 40e9c3ca..ba9e9f4f 100644 --- a/src/engine/loot/LootManager.java +++ b/src/engine/loot/LootManager.java @@ -104,7 +104,7 @@ public class LootManager { } break; case "ITEM": - GenerateItemLootDrop(mob,bse); + GenerateItemLootDrop(mob,bse,multiplier); break; } } @@ -175,9 +175,9 @@ public class LootManager { if(mobLevel > 65){ mobLevel = 65; } - int max = (int)(5.882 * mobLevel + 127.0); - if(max > 320){ - max = 320; + int max = (int)(4.882 * mobLevel + 127.0); + if(max > 321){ + max = 321; } int min = (int)(4.469 * mobLevel - 3.469); int roll = ThreadLocalRandom.current().nextInt(max-min) + min; @@ -273,7 +273,12 @@ public class LootManager { } return; } - public static void GenerateItemLootDrop(Mob mob, BootySetEntry bse){ + public static void GenerateItemLootDrop(Mob mob, BootySetEntry bse, float multiplier){ + int chanceRoll = ThreadLocalRandom.current().nextInt(100) + 1; + if (chanceRoll > bse.dropChance * multiplier) { + //early exit, failed to hit minimum chance roll + return; + } MobLoot disc = new MobLoot(mob, ItemBase.getItemBase(bse.itemBase), true); if (disc != null) mob.getCharItemManager().addItemToInventory(disc);