Created
May 19, 2015 02:04
-
-
Save bonetechnologies/eb3d16dfc8472c9560a7 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public void getForageForRoom(Room room, Player player) { | |
int countOfForagesFound = 0; | |
int totalForageXp = 0; | |
try { | |
for (Forage forage : room.getForages().values()) { | |
int foragingLevel = getLevel(gameManager.getPlayerManager().getPlayerMetadata(player.getPlayerId()).getStats().getForaging()); | |
if (forage.getMinLevel() > foragingLevel) { | |
// System.out.println("Foraging level not high enough."); | |
return; | |
} | |
if (forage.getCoolDownTicksLeft() > 0) { | |
//System.out.println("Forage is still cooling down. Ticks left: " + forage.getCoolDownTicksLeft()); | |
return; | |
} | |
forage.setCoolDownTicksLeft(forage.getCoolDownTicks()); | |
double foragePctOfSuccess = forage.getPctOfSuccess(); | |
int modifiedLevelForForage = getLevel(gameManager.getEquipmentManager().getPlayerStatsWithEquipment(player).getForaging()); | |
int pctSuccessBoostForLevel = getPctSuccessBoostForLevel(modifiedLevelForForage); | |
//System.out.println("you get a boost of " + pctSuccessBoostForLevel); | |
foragePctOfSuccess = foragePctOfSuccess + pctSuccessBoostForLevel; | |
//System.out.println("final pct of success for forage: " + foragePctOfSuccess); | |
if (getRandPercent(foragePctOfSuccess)) { | |
gameManager.getPlayerManager().updatePlayerForageExperience(player, forage.getForageExperience()); | |
int numberToHarvest = randInt(forage.getMinAmt(), forage.getMaxAmt()); | |
totalForageXp += forage.getForageExperience(); | |
for (int i = 0; i < numberToHarvest; i++) { | |
countOfForagesFound++; | |
Item item = forage.getItemType().create(); | |
gameManager.getEntityManager().saveItem(item); | |
gameManager.acquireItem(player, item.getItemId()); | |
} | |
gameManager.writeToRoom(room.getRoomId(), player.getPlayerName() + " foraged (" + numberToHarvest + ") " + forage.getItemType().getItemName() + "\r\n"); | |
} else { | |
gameManager.getChannelUtils().write(player.getPlayerId(), "Attempt to forage " + forage.getItemType().getItemName() + " failed.\r\n"); | |
//System.out.println("failed to obtain forage, random pctsuccess failed."); | |
} | |
} | |
} finally { | |
if (totalForageXp > 0) { | |
gameManager.getChannelUtils().write(player.getPlayerId(), "You gained " + Color.GREEN + "+" + totalForageXp + Color.RESET + " forage experience points." + "\r\n", true); | |
} | |
if (countOfForagesFound == 0) { | |
gameManager.getChannelUtils().write(player.getPlayerId(), "Nothing foraged." + "\r\n"); | |
return; | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment