public boolean reroll(List<Integer> indices, List<Die> dice)
			throws FlippedSkullException {
		if (rerollCount > 1 || indices == null || indices.isEmpty())// rerollCount
																	// will be 0
																	// 1st
			// time and 1 2nd
			return false;

		if (rerollContainsSkulls(indices, dice))
			throw new FlippedSkullException();

		rerollCount++;

		Die die;
		for (int i = 0; i < indices.size(); i++) {
			die = dice.get(indices.get(i));
			// subtract original value
			updateValueFromFace(die.getTopFace(), die.isCountedAsFood(), false);
			// reroll that particular die
			die.roll();
			updateValueFromFace(die.getTopFace(), die.isCountedAsFood(), true);
		}
		return true;
	}