|
|
|
@ -122,20 +122,16 @@ public enum LootManager {
@@ -122,20 +122,16 @@ public enum LootManager {
|
|
|
|
|
case "LOOT": |
|
|
|
|
if (ThreadLocalRandom.current().nextInt(1, 100 + 1) < (bse.dropChance * dropRate)) |
|
|
|
|
GenerateLootDrop(mob, bse.genTable); //generate normal loot drop
|
|
|
|
|
if (mob.parentZone.getSafeZone() == 0 && hasExtraRolled == false && ThreadLocalRandom.current().nextInt(1, 5000) < 15 * dropRate) { |
|
|
|
|
int roll = ThreadLocalRandom.current().nextInt(1, 101); |
|
|
|
|
MobLoot extraLoot = null; |
|
|
|
|
if (roll <= 50) { |
|
|
|
|
extraLoot = rollForContract(bse.genTable, mob); |
|
|
|
|
} |
|
|
|
|
if (roll >= 51) { |
|
|
|
|
extraLoot = rollForRune(bse.genTable, mob); |
|
|
|
|
} |
|
|
|
|
if (extraLoot != null) { |
|
|
|
|
mob.getCharItemManager().addItemToInventory(extraLoot); |
|
|
|
|
} |
|
|
|
|
hasExtraRolled = true; |
|
|
|
|
} |
|
|
|
|
if(mob.contractCounter >= 250){ |
|
|
|
|
MobLoot extraLoot = rollForContract(bse.genTable, mob); |
|
|
|
|
if (extraLoot != null) |
|
|
|
|
mob.getCharItemManager().addItemToInventory(extraLoot); |
|
|
|
|
} |
|
|
|
|
if(mob.runeCounter >= 250){ |
|
|
|
|
MobLoot extraLoot = rollForRune(bse.genTable, mob); |
|
|
|
|
if (extraLoot != null) |
|
|
|
|
mob.getCharItemManager().addItemToInventory(extraLoot); |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
case "ITEM": |
|
|
|
|
GenerateInventoryDrop(mob, bse); |
|
|
|
@ -566,7 +562,7 @@ public enum LootManager {
@@ -566,7 +562,7 @@ public enum LootManager {
|
|
|
|
|
|
|
|
|
|
if (_itemTables.containsKey(itemTableId) == false) |
|
|
|
|
return null; |
|
|
|
|
ItemTableEntry tableRow = ItemTableEntry.rollTable(itemTableId, ThreadLocalRandom.current().nextInt(1,321)); |
|
|
|
|
ItemTableEntry tableRow = ItemTableEntry.rollTable(itemTableId, ThreadLocalRandom.current().nextInt(75,321)); |
|
|
|
|
if (tableRow == null) |
|
|
|
|
return null; |
|
|
|
|
|
|
|
|
@ -576,8 +572,10 @@ public enum LootManager {
@@ -576,8 +572,10 @@ public enum LootManager {
|
|
|
|
|
return null; |
|
|
|
|
|
|
|
|
|
MobLoot outItem = new MobLoot(mob, ItemBase.getItemBase(itemUUID), false); |
|
|
|
|
if(outItem != null) |
|
|
|
|
if(outItem != null) { |
|
|
|
|
mob.contractCounter = 0; |
|
|
|
|
return outItem; |
|
|
|
|
} |
|
|
|
|
return null; |
|
|
|
|
} |
|
|
|
|
public static MobLoot rollForRune(int table, Mob mob){ |
|
|
|
@ -593,7 +591,7 @@ public enum LootManager {
@@ -593,7 +591,7 @@ public enum LootManager {
|
|
|
|
|
|
|
|
|
|
if (_itemTables.containsKey(itemTableId) == false) |
|
|
|
|
return null; |
|
|
|
|
ItemTableEntry tableRow = ItemTableEntry.rollTable(itemTableId, ThreadLocalRandom.current().nextInt(1,321)); |
|
|
|
|
ItemTableEntry tableRow = ItemTableEntry.rollTable(itemTableId, ThreadLocalRandom.current().nextInt(75,321)); |
|
|
|
|
if (tableRow == null) |
|
|
|
|
return null; |
|
|
|
|
|
|
|
|
@ -603,12 +601,14 @@ public enum LootManager {
@@ -603,12 +601,14 @@ public enum LootManager {
|
|
|
|
|
return null; |
|
|
|
|
|
|
|
|
|
MobLoot outItem = new MobLoot(mob, ItemBase.getItemBase(itemUUID), false); |
|
|
|
|
if(outItem != null) |
|
|
|
|
if(outItem != null) { |
|
|
|
|
mob.runeCounter = 0; |
|
|
|
|
return outItem; |
|
|
|
|
} |
|
|
|
|
return null; |
|
|
|
|
} |
|
|
|
|
public static MobLoot rollForGlass( Mob mob){ |
|
|
|
|
ItemTableEntry tableRow = ItemTableEntry.rollTable(126, ThreadLocalRandom.current().nextInt(1,321)); |
|
|
|
|
ItemTableEntry tableRow = ItemTableEntry.rollTable(126, ThreadLocalRandom.current().nextInt(220,321)); |
|
|
|
|
if (tableRow == null) |
|
|
|
|
return null; |
|
|
|
|
|
|
|
|
|