Browse Source

Random Vorg From Droppers

birdbane
FatBoy-DOTC 8 months ago
parent
commit
b6f66a8d9f
  1. 26
      src/engine/gameManager/LootManager.java
  2. 20
      src/engine/objects/ItemBase.java

26
src/engine/gameManager/LootManager.java

@ -17,6 +17,7 @@ import engine.objects.*; @@ -17,6 +17,7 @@ import engine.objects.*;
import org.pmw.tinylog.Logger;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.concurrent.ThreadLocalRandom;
@ -34,6 +35,11 @@ public enum LootManager { @@ -34,6 +35,11 @@ public enum LootManager {
public static HashMap<Integer, ArrayList<ModTableEntry>> _modTables = new HashMap<>();
public static HashMap<Integer, ArrayList<ModTypeTableEntry>> _modTypeTables = new HashMap<>();
public static ArrayList<Integer> vorg_ha_uuids = new ArrayList<>(Arrays.asList(new Integer[]{27580, 27590, 188500, 188510, 188520, 188530, 188540, 188550, 189510}));
public static ArrayList<Integer> vorg_ma_uuids = new ArrayList<>(Arrays.asList(new Integer[]{27570,188900,188910,188920,188930,188940,188950,189500}));
public static ArrayList<Integer> vorg_la_uuids = new ArrayList<>(Arrays.asList(new Integer[]{27550,27560,189100,189110,189120,189130,189140,189150}));
public static ArrayList<Integer> vorg_cloth_uuids = new ArrayList<>(Arrays.asList(new Integer[]{27600,188700,188720,189550,189560}));
// Drop Rates
public static float NORMAL_DROP_RATE;
@ -357,8 +363,24 @@ public enum LootManager { @@ -357,8 +363,24 @@ public enum LootManager {
if (equipmentRoll > dropChance)
continue;
MobLoot ml = new MobLoot(mob, me.getItemBase(), false);
ItemBase genericIB = me.getItemBase();
//if(genericIB.isVorg()){
if(vorg_cloth_uuids.contains(genericIB.getUUID())){
//get random cloth piece
genericIB = ItemBase.getItemBase(vorg_cloth_uuids.get(ThreadLocalRandom.current().nextInt(0,vorg_cloth_uuids.size() - 1)));
} else if(vorg_ha_uuids.contains(genericIB.getUUID())){
//get random heavy armor piece
genericIB = ItemBase.getItemBase(vorg_ha_uuids.get(ThreadLocalRandom.current().nextInt(0,vorg_ha_uuids.size() - 1)));
} else if(vorg_ma_uuids.contains(genericIB.getUUID())){
//get random medium armor piece
genericIB = ItemBase.getItemBase(vorg_ma_uuids.get(ThreadLocalRandom.current().nextInt(0,vorg_ma_uuids.size() - 1)));
} else if(vorg_la_uuids.contains(genericIB.getUUID())){
//get random light armor piece
genericIB = ItemBase.getItemBase(vorg_la_uuids.get(ThreadLocalRandom.current().nextInt(0,vorg_la_uuids.size() - 1)));
}
mob.spawnTime = ThreadLocalRandom.current().nextInt(300,2700);
//}
MobLoot ml = new MobLoot(mob, genericIB, false);
if (ml != null && dropCount < 1) {
ml.setIsID(true);

20
src/engine/objects/ItemBase.java

@ -13,6 +13,7 @@ import engine.Enum.DamageType; @@ -13,6 +13,7 @@ import engine.Enum.DamageType;
import engine.Enum.GameObjectType;
import engine.Enum.ItemType;
import engine.gameManager.DbManager;
import engine.gameManager.LootManager;
import engine.server.MBServerStatics;
import org.pmw.tinylog.Logger;
@ -914,4 +915,23 @@ public class ItemBase { @@ -914,4 +915,23 @@ public class ItemBase {
public void setAutoID(boolean autoID) {
this.autoID = autoID;
}
public boolean isVorg(){
return LootManager.vorg_ha_uuids.contains(this.uuid) || LootManager.vorg_ma_uuids.contains(this.uuid) || LootManager.vorg_la_uuids.contains(this.uuid) || LootManager.vorg_cloth_uuids.contains(this.uuid);
}
public String[] getVorgStats() {
if(this.isLightArmor() || this.isMediumArmor() || this.isHeavyArmor() || this.isClothArmor()){
if(this.getValidSlot() == MBServerStatics.SLOT_FEET) {
return new String[]{"PRE-130", "PRE-232", "PRE-212", "PRE-222", "SUF-007","SUF-150"};
}else {
return new String[]{"PRE-130", "PRE-232", "PRE-212", "PRE-222", "SUF-007"};
}
} else if(this.isShield()){//shield
return new String[]{"SUF-265","PRE-123","PRE-232", "PRE-212", "PRE-222"};
} else{//weapon
return new String[]{"PRE-020","PRE-033",};
}
}
}

Loading…
Cancel
Save