diff --git a/app/src/main/java/com/iutlaval/myapplication/Game/Board.java b/app/src/main/java/com/iutlaval/myapplication/Game/Board.java index 9a7782e..e39f304 100644 --- a/app/src/main/java/com/iutlaval/myapplication/Game/Board.java +++ b/app/src/main/java/com/iutlaval/myapplication/Game/Board.java @@ -20,7 +20,14 @@ public class Board { return playerCardsOnBoard; } - public Card[] getAdvCardsOnBoard() { - return advCardsOnBoard; + public void setCard(int index, Card c) + { + playerCardsOnBoard[index]=c; } + + public void setEnemyCard(int index, Card c) + { + advCardsOnBoard[index]=c; + } + } diff --git a/app/src/main/java/com/iutlaval/myapplication/Game/Cards/CardRegistery.java b/app/src/main/java/com/iutlaval/myapplication/Game/Cards/CardRegistery.java index 051f43f..6434f98 100644 --- a/app/src/main/java/com/iutlaval/myapplication/Game/Cards/CardRegistery.java +++ b/app/src/main/java/com/iutlaval/myapplication/Game/Cards/CardRegistery.java @@ -95,7 +95,7 @@ import java.util.ArrayList; import java.util.List; public class CardRegistery { - public static List registry; + public static List> registry; public CardRegistery() { @@ -209,7 +209,9 @@ public class CardRegistery { return a != -1 ? a : 0; } - public static Class get(int index) { + + public static Class get(int index) { + if(registry.size() <= index || index < 0) return null; return registry.get(index); } diff --git a/app/src/main/java/com/iutlaval/myapplication/Game/Command.java b/app/src/main/java/com/iutlaval/myapplication/Game/Command.java index 0dab0c0..54b6f17 100644 --- a/app/src/main/java/com/iutlaval/myapplication/Game/Command.java +++ b/app/src/main/java/com/iutlaval/myapplication/Game/Command.java @@ -7,6 +7,7 @@ public final class Command { public static final String DRAW = "draw"; public static final String GET_DECK = "getDeck"; public static final String PUT_CARD = "putCard"; + public static final String PUT_ENEMY_CARD = "enemycard"; public static final String SHUFFLE_DECK = "shuffleDeck"; public static final String SELECT_CARD = "selectCard"; public static final String ATTACK = "attack"; diff --git a/app/src/main/java/com/iutlaval/myapplication/Game/GameLogicThread.java b/app/src/main/java/com/iutlaval/myapplication/Game/GameLogicThread.java index d4e07d8..6a5f5d8 100644 --- a/app/src/main/java/com/iutlaval/myapplication/Game/GameLogicThread.java +++ b/app/src/main/java/com/iutlaval/myapplication/Game/GameLogicThread.java @@ -23,6 +23,7 @@ import java.io.IOException; import java.io.InterruptedIOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; +import java.lang.reflect.Constructor; import java.net.Socket; public class GameLogicThread extends Thread{ @@ -167,6 +168,22 @@ public class GameLogicThread extends Thread{ clientOut.writeObject("pong"); break; + case Command.PUT_ENEMY_CARD: + int cardId = (int)clientIn.readObject(); + int zone = (int)clientIn.readObject(); + + //on instancie la carte recu + Class c = CardRegistery.get(cardId); + Constructor con = c.getConstructor(String.class, Context.class); + Card cardPlayed = (Card) con.newInstance("enemy"+zone,gameActivity); + + //ajout de la carte au rendu + cardPlayed.getDrawableCard().setCoordinates(((DrawableCard.getCardWith()+1)*zone+DrawableCard.getCardWith()),10F); + renderer.addToDraw(cardPlayed.getDrawableCard()); + + //ajout la card au terain + board.setEnemyCard(zone,cardPlayed); + break; default: Log.e("UNKOWN COMMAND",serveurCmd); } @@ -214,9 +231,11 @@ public class GameLogicThread extends Thread{ throw new UnrecognizedCard(); } clientOut.writeObject(cardId); + clientOut.writeObject(zone); if(clientIn.readObject().equals(Command.OK)) { + board.setCard(zone,card.getCard()); return true; }else{ return false;