|
|
@ -124,15 +124,19 @@ public enum LootManager { |
|
|
|
case "LOOT": |
|
|
|
case "LOOT": |
|
|
|
if (ThreadLocalRandom.current().nextInt(1, 100 + 1) < (bse.dropChance * dropRate)) |
|
|
|
if (ThreadLocalRandom.current().nextInt(1, 100 + 1) < (bse.dropChance * dropRate)) |
|
|
|
GenerateLootDrop(mob, bse.genTable); //generate normal loot drop
|
|
|
|
GenerateLootDrop(mob, bse.genTable); //generate normal loot drop
|
|
|
|
if(ThreadLocalRandom.current().nextInt(2500) < 10 * dropRate){ |
|
|
|
if(!hasExtraRolled && ThreadLocalRandom.current().nextInt(2500) < 10 * dropRate){ |
|
|
|
MobLoot extraLoot = rollForContract(bse.genTable, mob); |
|
|
|
MobLoot extraLoot = rollForContract(bse.genTable, mob); |
|
|
|
if (extraLoot != null) |
|
|
|
if (extraLoot != null) { |
|
|
|
mob.getCharItemManager().addItemToInventory(extraLoot); |
|
|
|
mob.getCharItemManager().addItemToInventory(extraLoot); |
|
|
|
|
|
|
|
hasExtraRolled = true; |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
if(ThreadLocalRandom.current().nextInt(2500) < 10 * dropRate){ |
|
|
|
if(!hasExtraRolled && ThreadLocalRandom.current().nextInt(2500) < 10 * dropRate){ |
|
|
|
MobLoot extraLoot = rollForRune(bse.genTable, mob); |
|
|
|
MobLoot extraLoot = rollForRune(bse.genTable, mob); |
|
|
|
if (extraLoot != null) |
|
|
|
if (extraLoot != null) { |
|
|
|
mob.getCharItemManager().addItemToInventory(extraLoot); |
|
|
|
mob.getCharItemManager().addItemToInventory(extraLoot); |
|
|
|
|
|
|
|
hasExtraRolled = true; |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
break; |
|
|
|
break; |
|
|
|
case "ITEM": |
|
|
|
case "ITEM": |
|
|
|