@ -13,6 +13,7 @@ import engine.loot.*;
@@ -13,6 +13,7 @@ import engine.loot.*;
import engine.net.DispatchMessage ;
import engine.net.client.msg.chat.ChatSystemMsg ;
import engine.objects.* ;
import engine.server.MBServerStatics ;
import org.pmw.tinylog.Logger ;
import java.util.ArrayList ;
@ -148,7 +149,7 @@ public enum LootManager {
@@ -148,7 +149,7 @@ public enum LootManager {
MobLoot outItem ;
int genRoll = new Random ( ) . nextInt ( 99 ) + 1 ;
int genRoll = ThreadLocalRandom . current ( ) . nextInt ( 1 , 100 + 1 ) ;
GenTableEntry selectedRow = GenTableEntry . rollTable ( genTableID , genRoll ) ;
@ -161,11 +162,14 @@ public enum LootManager {
@@ -161,11 +162,14 @@ public enum LootManager {
return null ;
//gets the 1-320 roll for this mob
int itemTableRoll = TableRoll ( mob . level , inHotzone ) ;
int itemTableRoll = 0 ;
int objectType = mob . getObjectType ( ) . ordinal ( ) ;
if ( mob . getObjectType ( ) . ordinal ( ) = = 52 ) { //52 = player character
itemTableRoll = ThreadLocalRandom . current ( ) . nextInt ( 1 , 320 + 1 ) ;
} else {
itemTableRoll = TableRoll ( mob . level , inHotzone ) ;
}
ItemTableEntry tableRow = ItemTableEntry . rollTable ( itemTableId , itemTableRoll ) ;
if ( tableRow = = null )
return null ;
@ -215,8 +219,13 @@ public enum LootManager {
@@ -215,8 +219,13 @@ public enum LootManager {
if ( prefixTable = = null )
return inItem ;
ModTableEntry prefixMod = ModTableEntry . rollTable ( prefixTable . modTableID , TableRoll ( mob . level , inHotzone ) ) ;
int prefixTableRoll = 0 ;
if ( mob . getObjectType ( ) . ordinal ( ) = = 52 ) {
prefixTableRoll = ThreadLocalRandom . current ( ) . nextInt ( 1 , 320 + 1 ) ;
} else {
prefixTableRoll = TableRoll ( mob . level , inHotzone ) ;
}
ModTableEntry prefixMod = ModTableEntry . rollTable ( prefixTable . modTableID , prefixTableRoll ) ;
if ( prefixMod = = null )
return inItem ;
@ -242,8 +251,13 @@ public enum LootManager {
@@ -242,8 +251,13 @@ public enum LootManager {
if ( suffixTable = = null )
return inItem ;
ModTableEntry suffixMod = ModTableEntry . rollTable ( suffixTable . modTableID , TableRoll ( mob . level , inHotzone ) ) ;
int suffixTableRoll = 0 ;
if ( mob . getObjectType ( ) . ordinal ( ) = = 52 ) {
suffixTableRoll = ThreadLocalRandom . current ( ) . nextInt ( 1 , 320 + 1 ) ;
} else {
suffixTableRoll = TableRoll ( mob . level , inHotzone ) ;
}
ModTableEntry suffixMod = ModTableEntry . rollTable ( suffixTable . modTableID , suffixTableRoll ) ;
if ( suffixMod = = null )
return inItem ;
@ -361,17 +375,28 @@ public enum LootManager {
@@ -361,17 +375,28 @@ public enum LootManager {
if ( lootItem ! = null )
mob . getCharItemManager ( ) . addItemToInventory ( lootItem ) ;
}
public static void peddleFate ( AbstractCharacter character , int giftID ) {
int tableID = 0 ;
if ( LootManager . _bootySetMap . get ( giftID ) ! = null ) {
tableID = LootManager . _bootySetMap . get ( giftID ) . get ( ThreadLocalRandom . current ( ) . nextInt ( 1 , LootManager . _bootySetMap . get ( giftID ) . size ( ) - 1 ) ) . genTable ;
public static void peddleFate ( AbstractCharacter character , Item gift ) {
if ( character . getCharItemManager ( ) . inventoryContains ( gift ) ) {
character . getCharItemManager ( ) . getInventory ( ) . remove ( gift ) ;
} else {
character . getCharItemManager ( ) . updateInventory ( ) ;
return ;
}
int tableID = 3010 ;
//if(LootManager._bootySetMap.get(giftID) != null) {
// tableID = LootManager._bootySetMap.get(giftID).get(ThreadLocalRandom.current().nextInt(1, LootManager._bootySetMap.get(giftID).size() - 1)).genTable;
//} else{
// return;
//}
MobLoot gamblingResult = getGenTableItem ( tableID , character , false ) ;
Item winnings ;
if ( gamblingResult ! = null ) {
gamblingResult . promoteToItem ( ( PlayerCharacter ) character ) ;
winnings = gamblingResult . promoteToItem ( PlayerCharacter . getPlayerCharacter ( character . getObjectUUID ( ) ) ) ;
} else {
winnings = new MobLoot ( character , ItemBase . getItemBase ( 1580008 ) , 1 , false ) ; //item ID is coal set to amount of 1
}
character . getCharItemManager ( ) . updateInventory ( winnings , true ) ;
}
}