forked from MagicBane/Server
fate peddler work
This commit is contained in:
@@ -377,9 +377,13 @@ public enum LootManager {
|
|||||||
mob.getCharItemManager().addItemToInventory(lootItem);
|
mob.getCharItemManager().addItemToInventory(lootItem);
|
||||||
}
|
}
|
||||||
public static void peddleFate(AbstractCharacter character, Item gift) {
|
public static void peddleFate(AbstractCharacter character, Item gift) {
|
||||||
//get table ID here, 3010 as a test
|
//get table ID for the itembase ID
|
||||||
int tableID = 3010;
|
int tableID = 0;
|
||||||
|
if(_bootySetMap.get(gift.getItemBaseID()) != null)
|
||||||
|
tableID = _bootySetMap.get(gift.getItemBaseID()).get(ThreadLocalRandom.current().nextInt(_bootySetMap.get(gift.getItemBaseID()).size())).genTable;
|
||||||
|
|
||||||
|
//use 3010 for testing
|
||||||
|
//tableID = 3040;
|
||||||
if(tableID == 0)
|
if(tableID == 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
@@ -396,7 +400,7 @@ public enum LootManager {
|
|||||||
int genRoll = ThreadLocalRandom.current().nextInt(1,100 + 1);
|
int genRoll = ThreadLocalRandom.current().nextInt(1,100 + 1);
|
||||||
GenTableEntry selectedRow = GenTableEntry.rollTable(tableID, genRoll);
|
GenTableEntry selectedRow = GenTableEntry.rollTable(tableID, genRoll);
|
||||||
if(selectedRow == null)
|
if(selectedRow == null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
//roll 220-320 for the item table selection
|
//roll 220-320 for the item table selection
|
||||||
int itemRoll = ThreadLocalRandom.current().nextInt(220,320 + 1);
|
int itemRoll = ThreadLocalRandom.current().nextInt(220,320 + 1);
|
||||||
@@ -409,31 +413,34 @@ public enum LootManager {
|
|||||||
if(winnings == null)
|
if(winnings == null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
//early exit if the inventory of the player will not old the item
|
||||||
|
if(itemMan.hasRoomInventory(winnings.getItemBase().getWeight()) == false){
|
||||||
|
ChatManager.chatSay(character,"You cannot hold your winnings!",false);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
//determine if the winning item needs a prefix
|
//determine if the winning item needs a prefix
|
||||||
if(selectedRow.pModTable != 0){
|
if(selectedRow.pModTable != 0){
|
||||||
int prefixRoll = ThreadLocalRandom.current().nextInt(220,320 + 1);
|
int prefixRoll = ThreadLocalRandom.current().nextInt(220,320 + 1);
|
||||||
ModTableEntry prefix = ModTableEntry.rollTable(selectedRow.pModTable, prefixRoll);
|
ModTableEntry prefix = ModTableEntry.rollTable(selectedRow.pModTable, prefixRoll);
|
||||||
if(prefix != null){
|
if(prefix != null)
|
||||||
winnings.addPermanentEnchantment(prefix.action, 0, prefix.level, true);
|
winnings.addPermanentEnchantment(prefix.action, 0, prefix.level, true);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//determine if the winning item needs a suffix
|
//determine if the winning item needs a suffix
|
||||||
if(selectedRow.sModTable != 0){
|
if(selectedRow.sModTable != 0){
|
||||||
int suffixRoll = ThreadLocalRandom.current().nextInt(220,320 + 1);
|
int suffixRoll = ThreadLocalRandom.current().nextInt(220,320 + 1);
|
||||||
ModTableEntry suffix = ModTableEntry.rollTable(selectedRow.sModTable, suffixRoll);
|
ModTableEntry suffix = ModTableEntry.rollTable(selectedRow.sModTable, suffixRoll);
|
||||||
if(suffix != null){
|
if(suffix != null)
|
||||||
winnings.addPermanentEnchantment(suffix.action, 0, suffix.level, true);
|
winnings.addPermanentEnchantment(suffix.action, 0, suffix.level, true);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
winnings.setIsID(true);
|
||||||
//remove gift from inventory
|
//remove gift from inventory
|
||||||
itemMan.junk(gift);
|
itemMan.consume(gift);
|
||||||
|
|
||||||
//add winnings to player inventory
|
//add winnings to player inventory
|
||||||
Item playerWinnings = winnings.promoteToItem((PlayerCharacter)character);
|
Item playerWinnings = winnings.promoteToItem((PlayerCharacter)character);
|
||||||
itemMan.addItemToInventory(playerWinnings);
|
itemMan.addItemToInventory(playerWinnings);
|
||||||
itemMan.updateInventory(playerWinnings,true);
|
itemMan.updateInventory();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user