|
|
|
@ -115,7 +115,6 @@ public enum LootManager {
@@ -115,7 +115,6 @@ public enum LootManager {
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Iterate all entries in this bootySet and process accordingly
|
|
|
|
|
boolean hasExtraRolled = false; |
|
|
|
|
for (BootySetEntry bse : entries) { |
|
|
|
|
switch (bse.bootyType) { |
|
|
|
|
case "GOLD": |
|
|
|
@ -124,18 +123,18 @@ public enum LootManager {
@@ -124,18 +123,18 @@ public enum LootManager {
|
|
|
|
|
case "LOOT": |
|
|
|
|
if (ThreadLocalRandom.current().nextInt(1, 100 + 1) < (bse.dropChance * dropRate)) |
|
|
|
|
GenerateLootDrop(mob, bse.genTable); //generate normal loot drop
|
|
|
|
|
if(!hasExtraRolled && ThreadLocalRandom.current().nextInt(1,5000) < 10 * dropRate){ |
|
|
|
|
if(!mob.hasExtraRolled && ThreadLocalRandom.current().nextInt(1,5000) < 10 * dropRate){ |
|
|
|
|
mob.hasExtraRolled = true; |
|
|
|
|
MobLoot extraLoot = rollForContract(bse.genTable, mob); |
|
|
|
|
if (extraLoot != null) { |
|
|
|
|
mob.getCharItemManager().addItemToInventory(extraLoot); |
|
|
|
|
hasExtraRolled = true; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
if(!hasExtraRolled && ThreadLocalRandom.current().nextInt(1,5000) < 10 * dropRate){ |
|
|
|
|
if(!mob.hasExtraRolled && ThreadLocalRandom.current().nextInt(1,5000) < 10 * dropRate){ |
|
|
|
|
mob.hasExtraRolled = true; |
|
|
|
|
MobLoot extraLoot = rollForRune(bse.genTable, mob); |
|
|
|
|
if (extraLoot != null) { |
|
|
|
|
mob.getCharItemManager().addItemToInventory(extraLoot); |
|
|
|
|
hasExtraRolled = true; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
@ -191,6 +190,7 @@ public enum LootManager {
@@ -191,6 +190,7 @@ public enum LootManager {
|
|
|
|
|
mob.getCharItemManager().addItemToInventory(specialDrop); |
|
|
|
|
mob.setResists(new Resists("Dropper")); |
|
|
|
|
} |
|
|
|
|
mob.hasExtraRolled = false; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public static MobLoot getGenTableItem(int genTableID, AbstractCharacter mob) { |
|
|
|
|