public static void updateProgressBar(JProgressBar bar, int[] milestones, int points) {
int sum1 = Arrays.stream(milestones).sum();
double sum2 = (double) sum1 / milestones.length;
int p1 = points;
double p2 = 0;
int i = 0;
for (; i < milestones.length; i++) {
if (p1 >= milestones[i]) {
p1 -= milestones[i];
p2 += sum2;
} else {
p2 += (double) p1 / milestones[i] * sum2;
break;
}
}
int val = (int) p2;
bar.setMinimum(0);
bar.setMaximum(sum1);
bar.setValue(val);
bar.setForeground(Color.getHSBColor((float) i / milestones.length, 0.5f, 1f));
}