From f86a8e1658e547499b59d8d3142798a1d0b4d24d Mon Sep 17 00:00:00 2001 From: marc barbier Date: Thu, 17 Dec 2020 10:36:04 +0100 Subject: [PATCH] ajout de la gestion de la mana --- src/game/Hand.java | 23 ++++++++++++++--------- src/game/Joueur.java | 18 ++++++++++++------ 2 files changed, 26 insertions(+), 15 deletions(-) diff --git a/src/game/Hand.java b/src/game/Hand.java index 8b28e87..fe91683 100644 --- a/src/game/Hand.java +++ b/src/game/Hand.java @@ -34,25 +34,30 @@ public class Hand { } /** - * retourne l'index de la carte + * retourne la carte si elle est contenu dans la main de la carte * @param c la classe de la carte cherché - * @return -1 si elle n'est pas trouver + * @return null si elle n'est pas trouver */ - public int contains(Class c) { - int index = 0; + public Card contains(Class c) { for(Card ca : hand) { if(ca.getClass().equals(c)) { - return index; + return ca; } - index++; } - return -1; + return null; } - public Card remove(int index) { - return hand.remove(index); + /** + * retire la carte + * @param c carte a retirer + * @return si la carte a été retirer + */ + public Boolean remove(Card c) + { + return hand.remove(c); + } public boolean isFull() { diff --git a/src/game/Joueur.java b/src/game/Joueur.java index 55348de..370adac 100644 --- a/src/game/Joueur.java +++ b/src/game/Joueur.java @@ -80,7 +80,7 @@ public class Joueur { while(phaseActive) { coms.getSocket().setSoTimeout(500); - String command = (String) coms.recieve(); + String command = coms.recieve(); coms.getSocket().setSoTimeout(Integer.MAX_VALUE); if(command != null && !command.equals("time out")) { @@ -124,14 +124,20 @@ public class Joueur { int zone = Integer.parseInt(coms.recieve()); - - int handIndex = hand.contains(cardClass); - if(handIndex == -1)coms.send(Command.NOK); + + + Card handCard = hand.contains(cardClass); + + //si la carte n'est pas trouve ou si elle coute trop cher + if(handCard == null || mana < handCard.getCost()){ + //on refuse le placement + coms.send(Command.NOK); + } else { if(board.isZoneAvaliable(zone)) { - Card card = hand.remove(handIndex); - board.setCard(zone, card); + hand.remove(handCard); + board.setCard(zone, handCard); adversaire.enemyPlay(cardId,zone); coms.send(Command.OK); }else {