|  |  | @ -705,9 +705,11 @@ public class ItemFactory { | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |         int rollPrefix = ThreadLocalRandom.current().nextInt(1, 100 + 1); |  |  |  |         int rollPrefix = ThreadLocalRandom.current().nextInt(1, 100 + 1); | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |         if (rollPrefix < 80) { |  |  |  |         if (rollPrefix < vendor.getLevel() + 30) { | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |             int randomPrefix = TableRoll(vendor.getLevel()); |  |  |  |             int randomPrefix = TableRoll(vendor.getLevel()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             if(vendor.contract.getName().contains("Heavy") || vendor.contract.getName().contains("Medium") || vendor.contract.getName().contains("Leather")) | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 randomPrefix += vendor.level * 0.5f; | 
			
		
	
		
		
			
				
					
					|  |  |  |             prefixEntry = ModTableEntry.rollTable(prefixTypeTable.modTableID, randomPrefix); |  |  |  |             prefixEntry = ModTableEntry.rollTable(prefixTypeTable.modTableID, randomPrefix); | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |             if (prefixEntry != null) |  |  |  |             if (prefixEntry != null) | 
			
		
	
	
		
		
			
				
					|  |  | @ -720,9 +722,11 @@ public class ItemFactory { | 
			
		
	
		
		
			
				
					
					|  |  |  |         // Always have at least one mod on a magic rolled item.
 |  |  |  |         // Always have at least one mod on a magic rolled item.
 | 
			
		
	
		
		
			
				
					
					|  |  |  |         // Suffix will be our backup plan.
 |  |  |  |         // Suffix will be our backup plan.
 | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |         if (rollSuffix < 80 || prefixEntry == null) { |  |  |  |         if (rollSuffix < vendor.getLevel() + 30) { | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |             int randomSuffix = TableRoll(vendor.getLevel()); |  |  |  |             int randomSuffix = TableRoll(vendor.getLevel()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             if(vendor.contract.getName().contains("Heavy") || vendor.contract.getName().contains("Medium") || vendor.contract.getName().contains("Leather")) | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 randomSuffix += vendor.level * 0.25f; | 
			
		
	
		
		
			
				
					
					|  |  |  |             suffixEntry = ModTableEntry.rollTable(suffixTypeTable.modTableID, randomSuffix); |  |  |  |             suffixEntry = ModTableEntry.rollTable(suffixTypeTable.modTableID, randomSuffix); | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |             if (suffixEntry != null) |  |  |  |             if (suffixEntry != null) | 
			
		
	
	
		
		
			
				
					|  |  | @ -776,31 +780,31 @@ public class ItemFactory { | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     public static int TableRoll(int vendorLevel) { |  |  |  |     public static int TableRoll(int vendorLevel) { | 
			
		
	
		
		
			
				
					
					|  |  |  |         // Calculate min and max based on mobLevel
 |  |  |  |         // Calculate min and max based on mobLevel
 | 
			
		
	
		
		
			
				
					
					|  |  |  |         int min = 60; |  |  |  |         int min = 100; | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |         int max = 120; |  |  |  |         int max = 160; | 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					|  |  |  |         switch(vendorLevel){ |  |  |  |         switch(vendorLevel){ | 
			
		
	
		
		
			
				
					
					|  |  |  |             case 20: |  |  |  |             case 20: | 
			
		
	
		
		
			
				
					
					|  |  |  |                 min = 70; |  |  |  |                 min = 120; | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |                 max = 140; |  |  |  |                 max = 180; | 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					|  |  |  |                 break; |  |  |  |                 break; | 
			
		
	
		
		
			
				
					
					|  |  |  |             case 30: |  |  |  |             case 30: | 
			
		
	
		
		
			
				
					
					|  |  |  |                 min = 80; |  |  |  |                 min = 140; | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |                 max = 160; |  |  |  |                 max = 200; | 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					|  |  |  |                 break; |  |  |  |                 break; | 
			
		
	
		
		
			
				
					
					|  |  |  |             case 40: |  |  |  |             case 40: | 
			
		
	
		
		
			
				
					
					|  |  |  |                 min = 90; |  |  |  |                 min = 160; | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |                 max = 180; |  |  |  |                 max = 220; | 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					|  |  |  |                 break; |  |  |  |                 break; | 
			
		
	
		
		
			
				
					
					|  |  |  |             case 50: |  |  |  |             case 50: | 
			
		
	
		
		
			
				
					
					|  |  |  |                 min = 100; |  |  |  |                 min = 180; | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |                 max = 200; |  |  |  |                 max = 240; | 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					|  |  |  |                 break; |  |  |  |                 break; | 
			
		
	
		
		
			
				
					
					|  |  |  |             case 60: |  |  |  |             case 60: | 
			
		
	
		
		
			
				
					
					|  |  |  |                 min = 175; |  |  |  |                 min = 200; | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |                 max = 260; |  |  |  |                 max = 260; | 
			
		
	
		
		
			
				
					
					|  |  |  |                 break; |  |  |  |                 break; | 
			
		
	
		
		
			
				
					
					|  |  |  |             case 70: |  |  |  |             case 70: | 
			
		
	
		
		
			
				
					
					|  |  |  |                 min = 220; |  |  |  |                 min = 240; | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |                 max = 320; |  |  |  |                 max = 320; | 
			
		
	
		
		
			
				
					
					|  |  |  |                 break; |  |  |  |                 break; | 
			
		
	
		
		
			
				
					
					|  |  |  |         } |  |  |  |         } | 
			
		
	
	
		
		
			
				
					|  |  | 
 |