/** * Calculate what resources this player will get on each die roll, optionally taking the robber * into account. * * @param numbers the numbers that the player is touching * @param robberHex Robber location from {@link SOCBoard#getRobberHex()}, or -1 to ignore the * robber */ public void recalculateResourcesForRoll(SOCPlayerNumbers numbers, final int robberHex) { // D.ebugPrintln("@@@@@@@@ recalculateResourcesForRoll"); // D.ebugPrintln("@@@@@@@@ numbers = "+numbers); // D.ebugPrintln("@@@@@@@@ robberHex = "+Integer.toHexString(robberHex)); recalc = true; for (int diceResult = 2; diceResult <= 12; diceResult++) { Vector<Integer> resources = (robberHex != -1) ? numbers.getResourcesForNumber(diceResult, robberHex) : numbers.getResourcesForNumber(diceResult); if (resources != null) { SOCResourceSet resourceSet = resourcesForRoll[diceResult]; if (resourceSet == null) { resourceSet = new SOCResourceSet(); resourcesForRoll[diceResult] = resourceSet; } else { resourceSet.clear(); } Enumeration<Integer> resourcesEnum = resources.elements(); while (resourcesEnum.hasMoreElements()) { Integer resourceInt = resourcesEnum.nextElement(); resourceSet.add(1, resourceInt.intValue()); } // D.ebugPrintln("### resources for "+diceResult+" = "+resourceSet); } } }