1 package de.jos.game.objects;
2
3 public class ScoreCalculator {
4
5 private static final int DEFAULT_SCORE_MULTIPLICATION_FACTOR = 1;
6
7 public final int INIT_SCORE_BLUE = 50;
8 public final int INIT_SCORE_RED = 75;
9 public final int INIT_SCORE_YELLOW = 100;
10 public final int INIT_SCORE_PINK = 125;
11
12 public final int[] INIT_SCORE_ARRAY = { INIT_SCORE_BLUE, INIT_SCORE_RED, INIT_SCORE_YELLOW, INIT_SCORE_PINK };
13
14 public int nextScoreMultiplicationFactor = DEFAULT_SCORE_MULTIPLICATION_FACTOR;
15
16 public int getScore(Integer color, int numberBullets) {
17 int score = INIT_SCORE_ARRAY[color.intValue()];
18
19 switch(numberBullets) {
20 case 3:
21 break;
22 case 4:
23 score *= 2;
24 break;
25 case 5:
26 score *= 4;
27 break;
28 case 6:
29 score = getScore(color, 5) + getScore(color, 4) + getScore(color, 3);
30 break;
31 case 7:
32 score = getScore(color, 6) + getScore(color, 5);
33 break;
34 case 8:
35 score = getScore(color, 7) + getScore(color, 5) + getScore(color, 3);
36 break;
37 case 9:
38 score = getScore(color, 8) + getScore(color, 5) + getScore(color, 4);
39 break;
40 }
41
42 score *= nextScoreMultiplicationFactor;
43 setNextScoreMultiplicationFactor(DEFAULT_SCORE_MULTIPLICATION_FACTOR);
44 return score;
45 }
46
47 public int getNextScoreMultiplicationFactor() {
48 return nextScoreMultiplicationFactor;
49 }
50
51 public void setNextScoreMultiplicationFactor(int nextScoreMultiplicationFactor) {
52 this.nextScoreMultiplicationFactor = nextScoreMultiplicationFactor;
53 }
54
55 }