better random rolls
This commit is contained in:
@@ -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;
|
|
||||||
break;
|
|
||||||
case 30:
|
|
||||||
min = 80;
|
|
||||||
max = 160;
|
|
||||||
break;
|
|
||||||
case 40:
|
|
||||||
min = 90;
|
|
||||||
max = 180;
|
max = 180;
|
||||||
break;
|
break;
|
||||||
case 50:
|
case 30:
|
||||||
min = 100;
|
min = 140;
|
||||||
max = 200;
|
max = 200;
|
||||||
break;
|
break;
|
||||||
|
case 40:
|
||||||
|
min = 160;
|
||||||
|
max = 220;
|
||||||
|
break;
|
||||||
|
case 50:
|
||||||
|
min = 180;
|
||||||
|
max = 240;
|
||||||
|
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;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user