summaryrefslogtreecommitdiff
path: root/game-engine/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to 'game-engine/src/main/java')
-rw-r--r--game-engine/src/main/java/org/luxons/sevenwonders/game/moves/BuildWonderMove.java39
-rw-r--r--game-engine/src/main/java/org/luxons/sevenwonders/game/moves/CardFromHandMove.java23
-rw-r--r--game-engine/src/main/java/org/luxons/sevenwonders/game/moves/CopyGuildMove.java56
-rw-r--r--game-engine/src/main/java/org/luxons/sevenwonders/game/moves/DiscardMove.java27
-rw-r--r--game-engine/src/main/java/org/luxons/sevenwonders/game/moves/InvalidMoveException.java8
-rw-r--r--game-engine/src/main/java/org/luxons/sevenwonders/game/moves/Move.java49
-rw-r--r--game-engine/src/main/java/org/luxons/sevenwonders/game/moves/MoveType.java39
-rw-r--r--game-engine/src/main/java/org/luxons/sevenwonders/game/moves/PlayCardMove.java39
-rw-r--r--game-engine/src/main/java/org/luxons/sevenwonders/game/moves/PlayFreeCardMove.java40
9 files changed, 0 insertions, 320 deletions
diff --git a/game-engine/src/main/java/org/luxons/sevenwonders/game/moves/BuildWonderMove.java b/game-engine/src/main/java/org/luxons/sevenwonders/game/moves/BuildWonderMove.java
deleted file mode 100644
index f70d2626..00000000
--- a/game-engine/src/main/java/org/luxons/sevenwonders/game/moves/BuildWonderMove.java
+++ /dev/null
@@ -1,39 +0,0 @@
-package org.luxons.sevenwonders.game.moves;
-
-import java.util.List;
-
-import org.luxons.sevenwonders.game.Settings;
-import org.luxons.sevenwonders.game.api.PlayerMove;
-import org.luxons.sevenwonders.game.api.Table;
-import org.luxons.sevenwonders.game.boards.Board;
-import org.luxons.sevenwonders.game.cards.Card;
-
-public class BuildWonderMove extends CardFromHandMove {
-
- BuildWonderMove(int playerIndex, Card card, PlayerMove move) {
- super(playerIndex, card, move);
- }
-
- @Override
- public void validate(Table table, List<Card> playerHand) throws InvalidMoveException {
- super.validate(table, playerHand);
- Board board = table.getBoard(getPlayerIndex());
- if (!board.getWonder().isNextStageBuildable(table, getPlayerIndex(), getTransactions())) {
- throw new InvalidMoveException(
- String.format("Player %d cannot upgrade his wonder with the given resources", getPlayerIndex()));
- }
- }
-
- @Override
- public void place(Table table, List<Card> discardedCards, Settings settings) {
- Board board = table.getBoard(getPlayerIndex());
- board.getWonder().buildLevel(getCard().getBack());
- }
-
- @Override
- public void activate(Table table, List<Card> discardedCards, Settings settings) {
- int playerIndex = getPlayerIndex();
- Board board = table.getBoard(playerIndex);
- board.getWonder().activateLastBuiltStage(table, playerIndex, getTransactions());
- }
-}
diff --git a/game-engine/src/main/java/org/luxons/sevenwonders/game/moves/CardFromHandMove.java b/game-engine/src/main/java/org/luxons/sevenwonders/game/moves/CardFromHandMove.java
deleted file mode 100644
index 1794966d..00000000
--- a/game-engine/src/main/java/org/luxons/sevenwonders/game/moves/CardFromHandMove.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package org.luxons.sevenwonders.game.moves;
-
-import java.util.List;
-
-import org.luxons.sevenwonders.game.api.PlayerMove;
-import org.luxons.sevenwonders.game.api.Table;
-import org.luxons.sevenwonders.game.cards.Card;
-
-public abstract class CardFromHandMove extends Move {
-
- CardFromHandMove(int playerIndex, Card card, PlayerMove move) {
- super(playerIndex, card, move);
- }
-
- @Override
- public void validate(Table table, List<Card> playerHand) throws InvalidMoveException {
- if (!playerHand.contains(getCard())) {
- throw new InvalidMoveException(
- String.format("Player %d does not have the card '%s' in his hand", getPlayerIndex(),
- getCard().getName()));
- }
- }
-}
diff --git a/game-engine/src/main/java/org/luxons/sevenwonders/game/moves/CopyGuildMove.java b/game-engine/src/main/java/org/luxons/sevenwonders/game/moves/CopyGuildMove.java
deleted file mode 100644
index a93670c5..00000000
--- a/game-engine/src/main/java/org/luxons/sevenwonders/game/moves/CopyGuildMove.java
+++ /dev/null
@@ -1,56 +0,0 @@
-package org.luxons.sevenwonders.game.moves;
-
-import java.util.List;
-
-import org.luxons.sevenwonders.game.Settings;
-import org.luxons.sevenwonders.game.api.PlayerMove;
-import org.luxons.sevenwonders.game.api.Table;
-import org.luxons.sevenwonders.game.boards.Board;
-import org.luxons.sevenwonders.game.boards.RelativeBoardPosition;
-import org.luxons.sevenwonders.game.cards.Card;
-import org.luxons.sevenwonders.game.cards.Color;
-import org.luxons.sevenwonders.game.effects.SpecialAbility;
-
-public class CopyGuildMove extends Move {
-
- CopyGuildMove(int playerIndex, Card card, PlayerMove move) {
- super(playerIndex, card, move);
- }
-
- @Override
- public void validate(Table table, List<Card> playerHand) throws InvalidMoveException {
- Board board = table.getBoard(getPlayerIndex());
- if (!board.hasSpecial(SpecialAbility.COPY_GUILD)) {
- throw new InvalidMoveException(
- String.format("Player %d does not have the ability to copy guild cards", getPlayerIndex()));
- }
- if (getCard().getColor() != Color.PURPLE) {
- throw new InvalidMoveException(
- String.format("Player %d cannot copy card %s because it is not a guild card", getPlayerIndex(),
- getCard().getName()));
- }
- boolean leftNeighbourHasIt = neighbourHasTheCard(table, RelativeBoardPosition.LEFT);
- boolean rightNeighbourHasIt = neighbourHasTheCard(table, RelativeBoardPosition.RIGHT);
- if (!leftNeighbourHasIt && !rightNeighbourHasIt) {
- throw new InvalidMoveException(
- String.format("Player %d cannot copy card %s because none of his neighbour has it",
- getPlayerIndex(), getCard().getName()));
- }
- }
-
- private boolean neighbourHasTheCard(Table table, RelativeBoardPosition position) {
- Board neighbourBoard = table.getBoard(getPlayerIndex(), position);
- return neighbourBoard.getPlayedCards().contains(getCard());
- }
-
- @Override
- public void place(Table table, List<Card> discardedCards, Settings settings) {
- // nothing special to do here
- }
-
- @Override
- public void activate(Table table, List<Card> discardedCards, Settings settings) {
- Board board = table.getBoard(getPlayerIndex());
- board.setCopiedGuild(getCard());
- }
-}
diff --git a/game-engine/src/main/java/org/luxons/sevenwonders/game/moves/DiscardMove.java b/game-engine/src/main/java/org/luxons/sevenwonders/game/moves/DiscardMove.java
deleted file mode 100644
index 076a593c..00000000
--- a/game-engine/src/main/java/org/luxons/sevenwonders/game/moves/DiscardMove.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package org.luxons.sevenwonders.game.moves;
-
-import java.util.List;
-
-import org.luxons.sevenwonders.game.Settings;
-import org.luxons.sevenwonders.game.api.PlayerMove;
-import org.luxons.sevenwonders.game.api.Table;
-import org.luxons.sevenwonders.game.boards.Board;
-import org.luxons.sevenwonders.game.cards.Card;
-
-public class DiscardMove extends CardFromHandMove {
-
- DiscardMove(int playerIndex, Card card, PlayerMove move) {
- super(playerIndex, card, move);
- }
-
- @Override
- public void place(Table table, List<Card> discardedCards, Settings settings) {
- discardedCards.add(getCard());
- }
-
- @Override
- public void activate(Table table, List<Card> discardedCards, Settings settings) {
- Board board = table.getBoard(getPlayerIndex());
- board.addGold(settings.getDiscardedCardGold());
- }
-}
diff --git a/game-engine/src/main/java/org/luxons/sevenwonders/game/moves/InvalidMoveException.java b/game-engine/src/main/java/org/luxons/sevenwonders/game/moves/InvalidMoveException.java
deleted file mode 100644
index 58190274..00000000
--- a/game-engine/src/main/java/org/luxons/sevenwonders/game/moves/InvalidMoveException.java
+++ /dev/null
@@ -1,8 +0,0 @@
-package org.luxons.sevenwonders.game.moves;
-
-public class InvalidMoveException extends IllegalArgumentException {
-
- public InvalidMoveException(String message) {
- super(message);
- }
-}
diff --git a/game-engine/src/main/java/org/luxons/sevenwonders/game/moves/Move.java b/game-engine/src/main/java/org/luxons/sevenwonders/game/moves/Move.java
deleted file mode 100644
index cfb12e67..00000000
--- a/game-engine/src/main/java/org/luxons/sevenwonders/game/moves/Move.java
+++ /dev/null
@@ -1,49 +0,0 @@
-package org.luxons.sevenwonders.game.moves;
-
-import java.util.List;
-
-import org.luxons.sevenwonders.game.Settings;
-import org.luxons.sevenwonders.game.api.PlayerMove;
-import org.luxons.sevenwonders.game.api.Table;
-import org.luxons.sevenwonders.game.cards.Card;
-import org.luxons.sevenwonders.game.resources.ResourceTransactions;
-
-public abstract class Move {
-
- private int playerIndex;
-
- private Card card;
-
- private MoveType type;
-
- private ResourceTransactions transactions;
-
- Move(int playerIndex, Card card, PlayerMove move) {
- this.playerIndex = playerIndex;
- this.card = card;
- this.type = move.getType();
- this.transactions = new ResourceTransactions(move.getTransactions());
- }
-
- public int getPlayerIndex() {
- return playerIndex;
- }
-
- public Card getCard() {
- return card;
- }
-
- public MoveType getType() {
- return type;
- }
-
- public ResourceTransactions getTransactions() {
- return transactions;
- }
-
- public abstract void validate(Table table, List<Card> playerHand) throws InvalidMoveException;
-
- public abstract void place(Table table, List<Card> discardedCards, Settings settings);
-
- public abstract void activate(Table table, List<Card> discardedCards, Settings settings);
-}
diff --git a/game-engine/src/main/java/org/luxons/sevenwonders/game/moves/MoveType.java b/game-engine/src/main/java/org/luxons/sevenwonders/game/moves/MoveType.java
deleted file mode 100644
index bf64344d..00000000
--- a/game-engine/src/main/java/org/luxons/sevenwonders/game/moves/MoveType.java
+++ /dev/null
@@ -1,39 +0,0 @@
-package org.luxons.sevenwonders.game.moves;
-
-import org.luxons.sevenwonders.game.api.PlayerMove;
-import org.luxons.sevenwonders.game.cards.Card;
-
-public enum MoveType {
- PLAY {
- @Override
- public Move resolve(int playerIndex, Card card, PlayerMove move) {
- return new PlayCardMove(playerIndex, card, move);
- }
- },
- PLAY_FREE {
- @Override
- public Move resolve(int playerIndex, Card card, PlayerMove move) {
- return new PlayFreeCardMove(playerIndex, card, move);
- }
- },
- UPGRADE_WONDER {
- @Override
- public Move resolve(int playerIndex, Card card, PlayerMove move) {
- return new BuildWonderMove(playerIndex, card, move);
- }
- },
- DISCARD {
- @Override
- public Move resolve(int playerIndex, Card card, PlayerMove move) {
- return new DiscardMove(playerIndex, card, move);
- }
- },
- COPY_GUILD {
- @Override
- public Move resolve(int playerIndex, Card card, PlayerMove move) {
- return new CopyGuildMove(playerIndex, card, move);
- }
- };
-
- public abstract Move resolve(int playerIndex, Card card, PlayerMove move);
-}
diff --git a/game-engine/src/main/java/org/luxons/sevenwonders/game/moves/PlayCardMove.java b/game-engine/src/main/java/org/luxons/sevenwonders/game/moves/PlayCardMove.java
deleted file mode 100644
index 18d6ba90..00000000
--- a/game-engine/src/main/java/org/luxons/sevenwonders/game/moves/PlayCardMove.java
+++ /dev/null
@@ -1,39 +0,0 @@
-package org.luxons.sevenwonders.game.moves;
-
-import java.util.List;
-
-import org.luxons.sevenwonders.game.Settings;
-import org.luxons.sevenwonders.game.api.PlayerMove;
-import org.luxons.sevenwonders.game.api.Table;
-import org.luxons.sevenwonders.game.boards.Board;
-import org.luxons.sevenwonders.game.cards.Card;
-
-public class PlayCardMove extends CardFromHandMove {
-
- PlayCardMove(int playerIndex, Card card, PlayerMove move) {
- super(playerIndex, card, move);
- }
-
- @Override
- public void validate(Table table, List<Card> playerHand) throws InvalidMoveException {
- super.validate(table, playerHand);
- Board board = table.getBoard(getPlayerIndex());
- if (!getCard().isChainableOn(board) && !getCard().getRequirements()
- .areMetWithHelpBy(board, getTransactions())) {
- throw new InvalidMoveException(
- String.format("Player %d cannot play the card %s with the given resources", getPlayerIndex(),
- getCard().getName()));
- }
- }
-
- @Override
- public void place(Table table, List<Card> discardedCards, Settings settings) {
- Board board = table.getBoard(getPlayerIndex());
- board.addCard(getCard());
- }
-
- @Override
- public void activate(Table table, List<Card> discardedCards, Settings settings) {
- getCard().applyTo(table, getPlayerIndex(), getTransactions());
- }
-}
diff --git a/game-engine/src/main/java/org/luxons/sevenwonders/game/moves/PlayFreeCardMove.java b/game-engine/src/main/java/org/luxons/sevenwonders/game/moves/PlayFreeCardMove.java
deleted file mode 100644
index 4e8eefa5..00000000
--- a/game-engine/src/main/java/org/luxons/sevenwonders/game/moves/PlayFreeCardMove.java
+++ /dev/null
@@ -1,40 +0,0 @@
-package org.luxons.sevenwonders.game.moves;
-
-import java.util.List;
-
-import org.luxons.sevenwonders.game.Settings;
-import org.luxons.sevenwonders.game.api.PlayerMove;
-import org.luxons.sevenwonders.game.api.Table;
-import org.luxons.sevenwonders.game.boards.Board;
-import org.luxons.sevenwonders.game.cards.Card;
-
-public class PlayFreeCardMove extends CardFromHandMove {
-
- PlayFreeCardMove(int playerIndex, Card card, PlayerMove move) {
- super(playerIndex, card, move);
- }
-
- @Override
- public void validate(Table table, List<Card> playerHand) throws InvalidMoveException {
- super.validate(table, playerHand);
- Board board = table.getBoard(getPlayerIndex());
- if (!board.canPlayFreeCard(table.getCurrentAge())) {
- throw new InvalidMoveException(
- String.format("Player %d cannot play the card %s for free", getPlayerIndex(), getCard().getName()));
- }
- }
-
- @Override
- public void place(Table table, List<Card> discardedCards, Settings settings) {
- Board board = table.getBoard(getPlayerIndex());
- board.addCard(getCard());
- }
-
- @Override
- public void activate(Table table, List<Card> discardedCards, Settings settings) {
- // only apply effects, without paying the cost
- getCard().getEffects().forEach(e -> e.apply(table, getPlayerIndex()));
- Board board = table.getBoard(getPlayerIndex());
- board.consumeFreeCard(table.getCurrentAge());
- }
-}
bgstack15