|  |  |  | @ -142,6 +142,18 @@ public enum LootManager {@@ -142,6 +142,18 @@ public enum LootManager { | 
			
		
	
		
			
				
					|  |  |  |  |                         mob.getCharItemManager().addItemToInventory(toAddGlass); | 
			
		
	
		
			
				
					|  |  |  |  |                 } | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |             //Special Case Contract Drop
 | 
			
		
	
		
			
				
					|  |  |  |  |             if (ThreadLocalRandom.current().nextInt(1, 100000) >= ((400 + levelBonusForRoll) * NORMAL_DROP_RATE)) | 
			
		
	
		
			
				
					|  |  |  |  |                 SpecialCaseContractDrop(mob,entries); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |             //Special Case Rune Drop
 | 
			
		
	
		
			
				
					|  |  |  |  |             if (ThreadLocalRandom.current().nextInt(1, 100000) >= ((400 + levelBonusForRoll) * NORMAL_DROP_RATE)) | 
			
		
	
		
			
				
					|  |  |  |  |                 SpecialCaseRuneDrop(mob,entries); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |             //Special Case Resource Drop
 | 
			
		
	
		
			
				
					|  |  |  |  |             if (ThreadLocalRandom.current().nextInt(1, 100000) >= ((100 + levelBonusForRoll) * NORMAL_DROP_RATE)) | 
			
		
	
		
			
				
					|  |  |  |  |                 SpecialCaseResourceDrop(mob,entries); | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         // Iterate all entries in this bootySet and process accordingly
 | 
			
		
	
	
		
			
				
					|  |  |  | @ -180,6 +192,97 @@ public enum LootManager {@@ -180,6 +192,97 @@ public enum LootManager { | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     public static void SpecialCaseContractDrop(Mob mob,ArrayList<BootySetEntry> entries){ | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         int lootTableID = 0; | 
			
		
	
		
			
				
					|  |  |  |  |         for(BootySetEntry entry : entries){ | 
			
		
	
		
			
				
					|  |  |  |  |             if(entry.bootyType.equals("LOOT")){ | 
			
		
	
		
			
				
					|  |  |  |  |                 lootTableID = entry.genTable; | 
			
		
	
		
			
				
					|  |  |  |  |                 break; | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         if(lootTableID == 0) | 
			
		
	
		
			
				
					|  |  |  |  |             return; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         int ContractTableID = 0; | 
			
		
	
		
			
				
					|  |  |  |  |         for(GenTableEntry entry : _genTables.get(lootTableID)){ | 
			
		
	
		
			
				
					|  |  |  |  |             if(ItemBase.getItemBase(_itemTables.get(entry.itemTableID).get(0).cacheID).getType().equals(Enum.ItemType.CONTRACT)){ | 
			
		
	
		
			
				
					|  |  |  |  |                 ContractTableID = entry.itemTableID; | 
			
		
	
		
			
				
					|  |  |  |  |                 break; | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         if(ContractTableID == 0) | 
			
		
	
		
			
				
					|  |  |  |  |             return; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         ItemBase ib = ItemBase.getItemBase(rollRandomItem(ContractTableID)); | 
			
		
	
		
			
				
					|  |  |  |  |         if(ib != null){ | 
			
		
	
		
			
				
					|  |  |  |  |             MobLoot toAdd = new MobLoot(mob,ib,false); | 
			
		
	
		
			
				
					|  |  |  |  |             mob.getCharItemManager().addItemToInventory(toAdd); | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     public static void SpecialCaseRuneDrop(Mob mob,ArrayList<BootySetEntry> 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)){ | 
			
		
	
		
			
				
					|  |  |  |  |             if(ItemBase.getItemBase(_itemTables.get(entry.itemTableID).get(0).cacheID).getType().equals(Enum.ItemType.RUNE)){ | 
			
		
	
		
			
				
					|  |  |  |  |                 RuneTableID = entry.itemTableID; | 
			
		
	
		
			
				
					|  |  |  |  |                 break; | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         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<BootySetEntry> entries){ | 
			
		
	
		
			
				
					|  |  |  |  |         int lootTableID = 0; | 
			
		
	
		
			
				
					|  |  |  |  |         for(BootySetEntry entry : entries){ | 
			
		
	
		
			
				
					|  |  |  |  |             if(entry.bootyType.equals("LOOT")){ | 
			
		
	
		
			
				
					|  |  |  |  |                 lootTableID = entry.genTable; | 
			
		
	
		
			
				
					|  |  |  |  |                 break; | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         if(lootTableID == 0) | 
			
		
	
		
			
				
					|  |  |  |  |             return; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         int ResourceTableID = 0; | 
			
		
	
		
			
				
					|  |  |  |  |         for(GenTableEntry entry : _genTables.get(lootTableID)){ | 
			
		
	
		
			
				
					|  |  |  |  |             if(ItemBase.getItemBase(_itemTables.get(entry.itemTableID).get(0).cacheID).getType().equals(Enum.ItemType.RESOURCE)){ | 
			
		
	
		
			
				
					|  |  |  |  |                 ResourceTableID = entry.itemTableID; | 
			
		
	
		
			
				
					|  |  |  |  |                 break; | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         if(ResourceTableID == 0) | 
			
		
	
		
			
				
					|  |  |  |  |             return; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         ItemBase ib = ItemBase.getItemBase(rollRandomItem(ResourceTableID)); | 
			
		
	
		
			
				
					|  |  |  |  |         if(ib != null){ | 
			
		
	
		
			
				
					|  |  |  |  |             MobLoot toAdd = new MobLoot(mob,ib,false); | 
			
		
	
		
			
				
					|  |  |  |  |             mob.getCharItemManager().addItemToInventory(toAdd); | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     public static MobLoot getGenTableItem(int genTableID, AbstractCharacter mob, Boolean inHotzone) { | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         if (mob == null || _genTables.containsKey(genTableID) == false) | 
			
		
	
	
		
			
				
					|  |  |  | @ -372,6 +475,13 @@ public enum LootManager {@@ -372,6 +475,13 @@ public enum LootManager { | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         MobLoot toAdd = getGenTableItem(tableID, mob, inHotzone); | 
			
		
	
		
			
				
					|  |  |  |  |         if(toAdd != null){ | 
			
		
	
		
			
				
					|  |  |  |  |             ItemBase ib = toAdd.getItemBase(); | 
			
		
	
		
			
				
					|  |  |  |  |             switch(ib.getType()){ | 
			
		
	
		
			
				
					|  |  |  |  |                 case CONTRACT: | 
			
		
	
		
			
				
					|  |  |  |  |                 case RUNE: | 
			
		
	
		
			
				
					|  |  |  |  |                 case RESOURCE: | 
			
		
	
		
			
				
					|  |  |  |  |                     return; | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  |             toAdd.setIsID(true); | 
			
		
	
		
			
				
					|  |  |  |  |             mob.getCharItemManager().addItemToInventory(toAdd); | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
	
		
			
				
					|  |  |  | 
 |