From df2271fe2c74a407bc86251d7008c16655ce69fa Mon Sep 17 00:00:00 2001 From: FatBoy-DOTC Date: Tue, 18 Feb 2025 17:46:26 -0600 Subject: [PATCH] universal rune drops --- src/engine/gameManager/LootManager.java | 72 ++++++++++++++----------- 1 file changed, 41 insertions(+), 31 deletions(-) diff --git a/src/engine/gameManager/LootManager.java b/src/engine/gameManager/LootManager.java index 8b3ff967..034a8fad 100644 --- a/src/engine/gameManager/LootManager.java +++ b/src/engine/gameManager/LootManager.java @@ -258,37 +258,47 @@ public enum LootManager { } public static void SpecialCaseRuneDrop(Mob mob,ArrayList entries){ - int lootTableID = 0; - for(BootySetEntry entry : entries){ - if(entry.bootyType.equals("LOOT")){ - lootTableID = entry.genTable; - break; - } - } - - if(lootTableID == 0) - return; - - int RuneTableID = 0; - for(GenTableEntry entry : _genTables.get(lootTableID)){ - try { - if (ItemBase.getItemBase(_itemTables.get(entry.itemTableID).get(0).cacheID).getType().equals(Enum.ItemType.RUNE)) { - RuneTableID = entry.itemTableID; - break; + // int lootTableID = 0; + // for(BootySetEntry entry : entries){ + // if(entry.bootyType.equals("LOOT")){ + // lootTableID = entry.genTable; + // break; + // } + // } +// + //if(lootTableID == 0) + // return; +// + //int RuneTableID = 0; + //for(GenTableEntry entry : _genTables.get(lootTableID)){ + // try { + // if (ItemBase.getItemBase(_itemTables.get(entry.itemTableID).get(0).cacheID).getType().equals(Enum.ItemType.RUNE)) { + // RuneTableID = entry.itemTableID; + // break; + /// } + // }catch(Exception e){ + + // } + //} + + //if(RuneTableID == 0) + // return; + + NPC RuneMerchant = NPC.getNPC(801321); + if(RuneMerchant != null) { + ArrayList runeItems = RuneMerchant.contract.getSellInventory(); + int roll = ThreadLocalRandom.current().nextInt(0, runeItems.size()); + MobEquipment me = runeItems.get(roll); + if (me != null) { + ItemBase ib = me.getItemBase(); + if (ib != null) { + MobLoot toAdd = new MobLoot(mob, ib, false); + mob.getCharItemManager().addItemToInventory(toAdd); } - }catch(Exception e){ - } } - if(RuneTableID == 0) - return; - ItemBase ib = ItemBase.getItemBase(rollRandomItem(RuneTableID)); - if(ib != null){ - MobLoot toAdd = new MobLoot(mob,ib,false); - mob.getCharItemManager().addItemToInventory(toAdd); - } } public static void SpecialCaseResourceDrop(Mob mob,ArrayList entries){ @@ -572,7 +582,7 @@ public enum LootManager { ItemBase itemBase = me.getItemBase(); if(isVorg) { mob.spawnTime = ThreadLocalRandom.current().nextInt(300, 2700); - dropChance = 10; + dropChance = 7.5f; itemBase = getRandomVorg(itemBase); } if (equipmentRoll > dropChance) @@ -708,7 +718,7 @@ public enum LootManager { public static ItemBase getRandomVorg(ItemBase itemBase){ int roll = 0; if(vorg_ha_uuids.contains(itemBase.getUUID())) { - roll = ThreadLocalRandom.current().nextInt(0, 10); + roll = ThreadLocalRandom.current().nextInt(0, 9); switch (roll) { case 1: return ItemBase.getItemBase(vorg_ha_uuids.get(0)); @@ -732,7 +742,7 @@ public enum LootManager { } if(vorg_ma_uuids.contains(itemBase.getUUID())) { - roll = ThreadLocalRandom.current().nextInt(0, 10); + roll = ThreadLocalRandom.current().nextInt(0, 8); switch (roll) { case 1: return ItemBase.getItemBase(vorg_ma_uuids.get(0)); @@ -754,7 +764,7 @@ public enum LootManager { } if(vorg_la_uuids.contains(itemBase.getUUID())) { - roll = ThreadLocalRandom.current().nextInt(0, 10); + roll = ThreadLocalRandom.current().nextInt(0, 8); switch (roll) { case 1: return ItemBase.getItemBase(vorg_la_uuids.get(0)); @@ -776,7 +786,7 @@ public enum LootManager { } if(vorg_cloth_uuids.contains(itemBase.getUUID())) { - roll = ThreadLocalRandom.current().nextInt(0, 10); + roll = ThreadLocalRandom.current().nextInt(0, 5); switch (roll) { case 1: return ItemBase.getItemBase(vorg_cloth_uuids.get(0));