Browse Source

better random rolls

lakebane-jobs
FatBoy-DOTC 16 hours ago
parent
commit
47f1aa8a89
  1. 32
      src/engine/objects/ItemFactory.java

32
src/engine/objects/ItemFactory.java

@ -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;
} }

Loading…
Cancel
Save