summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/main/java/org/luxons/sevenwonders/game/effects/BoardElementType.java26
-rw-r--r--src/main/java/org/luxons/sevenwonders/game/effects/BonusPerBoardElement.java13
2 files changed, 26 insertions, 13 deletions
diff --git a/src/main/java/org/luxons/sevenwonders/game/effects/BoardElementType.java b/src/main/java/org/luxons/sevenwonders/game/effects/BoardElementType.java
index f2bc2f38..34cab4a4 100644
--- a/src/main/java/org/luxons/sevenwonders/game/effects/BoardElementType.java
+++ b/src/main/java/org/luxons/sevenwonders/game/effects/BoardElementType.java
@@ -1,5 +1,29 @@
package org.luxons.sevenwonders.game.effects;
+import java.util.List;
+
+import org.luxons.sevenwonders.game.boards.Board;
+import org.luxons.sevenwonders.game.cards.Color;
+
public enum BoardElementType {
- CARD, WONDER_LEVEL, DEFEAT_TOKEN
+ CARD {
+ @Override
+ int getElementCount(Board board, List<Color> colors) {
+ return board.getNbCardsOfColor(colors);
+ }
+ },
+ WONDER_LEVEL {
+ @Override
+ int getElementCount(Board board, List<Color> colors) {
+ return board.getWonderLevel();
+ }
+ },
+ DEFEAT_TOKEN {
+ @Override
+ int getElementCount(Board board, List<Color> colors) {
+ return board.getNbDefeatTokens();
+ }
+ };
+
+ abstract int getElementCount(Board board, List<Color> colors);
}
diff --git a/src/main/java/org/luxons/sevenwonders/game/effects/BonusPerBoardElement.java b/src/main/java/org/luxons/sevenwonders/game/effects/BonusPerBoardElement.java
index 2796b63a..37db3532 100644
--- a/src/main/java/org/luxons/sevenwonders/game/effects/BonusPerBoardElement.java
+++ b/src/main/java/org/luxons/sevenwonders/game/effects/BonusPerBoardElement.java
@@ -84,17 +84,6 @@ public class BonusPerBoardElement implements Effect {
}
private int computeNbOfMatchingElementsIn(Board board) {
- switch (type) {
- case CARD:
- return board.getNbCardsOfColor(colors);
- case WONDER_LEVEL:
- return board.getWonderLevel();
- case DEFEAT_TOKEN:
- return board.getNbDefeatTokens();
- }
- throw new UnsupportedBoardElementType();
- }
-
- private class UnsupportedBoardElementType extends RuntimeException {
+ return type.getElementCount(board, colors);
}
}
bgstack15