Browse Source

fate peddler work

master
FatBoy-DOTC 1 year ago
parent
commit
8747890e5e
  1. 29
      src/engine/gameManager/LootManager.java

29
src/engine/gameManager/LootManager.java

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

Loading…
Cancel
Save