diff --git a/bin/Serveur.class b/bin/Serveur.class index 03aaa4c..dc5862b 100644 Binary files a/bin/Serveur.class and b/bin/Serveur.class differ diff --git a/bin/game/Joueur.class b/bin/game/Joueur.class index 486b2ba..cf14f54 100644 Binary files a/bin/game/Joueur.class and b/bin/game/Joueur.class differ diff --git a/bin/game/cards/MoyenAge/Moyen_Age_Ferré.class b/bin/game/cards/MoyenAge/Moyen_Age_Ferré.class index f53cf81..d04e87b 100644 Binary files a/bin/game/cards/MoyenAge/Moyen_Age_Ferré.class and b/bin/game/cards/MoyenAge/Moyen_Age_Ferré.class differ diff --git a/bin/game/cards/SpecialCard/HasteCard.class b/bin/game/cards/SpecialCard/HasteCard.class new file mode 100644 index 0000000..100b3cc Binary files /dev/null and b/bin/game/cards/SpecialCard/HasteCard.class differ diff --git a/bin/game/cards/SpecialCard/ICanDoge.class b/bin/game/cards/SpecialCard/ICanDoge.class new file mode 100644 index 0000000..357cdec Binary files /dev/null and b/bin/game/cards/SpecialCard/ICanDoge.class differ diff --git a/bin/game/cards/SpecialCard/IToxic.class b/bin/game/cards/SpecialCard/IToxic.class new file mode 100644 index 0000000..d8f389c Binary files /dev/null and b/bin/game/cards/SpecialCard/IToxic.class differ diff --git a/src/Serveur.java b/src/Serveur.java index 8e956c1..964a355 100644 --- a/src/Serveur.java +++ b/src/Serveur.java @@ -10,6 +10,7 @@ import game.PlayerTesteur; public class Serveur { + @SuppressWarnings("resource") public static void main(String[] args) { final String host = "localhost"; final int port = 10430; diff --git a/src/game/Joueur.java b/src/game/Joueur.java index e4c997e..50e795d 100644 --- a/src/game/Joueur.java +++ b/src/game/Joueur.java @@ -5,6 +5,8 @@ import java.util.Iterator; import game.cards.Card; import game.cards.CardRegistery; +import game.cards.SpecialCard.ICanDoge; +import game.cards.SpecialCard.IToxic; import game.deck.Deck; import game.deck.DeckRegistery; @@ -329,7 +331,7 @@ public class Joueur { attackingCard.hasAttacked(); } else { if (!attackingCard.hasAlreadyAttacked()) { - handleAttackAgainstCard(attackingCard, carteCible, adversaire); + handleAttackAgainstCard(carteAttaquante, carteCible, adversaire); attackingCard.hasAttacked(); } } @@ -362,8 +364,10 @@ public class Joueur { } - private void handleAttackAgainstCard(Card attackingCard, String carteCible, Joueur adversaire) throws IOException { + private void handleAttackAgainstCard(String carteAttaquante, String carteCible, Joueur adversaire) throws IOException { Card attackedCard = adversaire.getBoard().getCardInZone(Integer.parseInt(carteCible)); + Card attackingCard = board.getCardInZone(Integer.parseInt(carteAttaquante)); + if (attackedCard == null) { throw new RuntimeException( @@ -371,7 +375,7 @@ public class Joueur { } boolean isDestroyed = attackedCard.takeDamage(attackingCard.getAttack()); - if (isDestroyed) { + if (isDestroyed || attackingCard instanceof IToxic) { // on suprime la carte du terrain board.setCard(Integer.parseInt(carteCible), null); @@ -394,6 +398,39 @@ public class Joueur { this.getComs().send(Command.SET_ADV_CARD_HP); this.getComs().send(carteCible); this.getComs().send(attackedCard.getHealth()); + + + //cette partie est le fightback C.A.D quand tu attaque une carte si elle survit elle te frape a son tour + if(attackedCard.getAttack() > 0 && !(attackingCard instanceof ICanDoge)) + { + isDestroyed = attackingCard.takeDamage(attackedCard.getAttack()); + if(isDestroyed) + { + // on suprime la carte du terrain + adversaire.board.setCard(Integer.parseInt(carteAttaquante), null); + + // demande a l'adversaire de retirer la carte de son terrain + adversaire.getComs().send(Command.DESTROY_ADV_CARD); + adversaire.getComs().send(carteAttaquante); + + // retire la carte au terrain adverse + this.getComs().send(Command.DESTROY_CARD); + this.getComs().send(carteAttaquante); + + // appelle les effet de quand la carte est détruite + // NOTE : non implémenter dans les cartes individuelles par manque de temps + attackedCard.onCardDestroyed(); + }else { + adversaire.getComs().send(Command.SET_CARD_HP); + adversaire.getComs().send(carteAttaquante); + adversaire.getComs().send(attackingCard.getHealth()); + + this.getComs().send(Command.SET_ADV_CARD_HP); + this.getComs().send(carteAttaquante); + this.getComs().send(attackingCard.getHealth()); + } + + } } } diff --git a/src/game/cards/MoyenAge/Moyen_Age_Ferré.java b/src/game/cards/MoyenAge/Moyen_Age_Ferré.java index d1a4430..8e38718 100644 --- a/src/game/cards/MoyenAge/Moyen_Age_Ferré.java +++ b/src/game/cards/MoyenAge/Moyen_Age_Ferré.java @@ -1,8 +1,8 @@ package game.cards.MoyenAge; -import game.cards.Card; +import game.cards.SpecialCard.HasteCard; -public class Moyen_Age_Ferré extends Card{ +public class Moyen_Age_Ferré extends HasteCard{ /** * retourne un entier coresspondant a l'attaque de la carte diff --git a/src/game/cards/SpecialCard/HasteCard.java b/src/game/cards/SpecialCard/HasteCard.java new file mode 100644 index 0000000..d0873e5 --- /dev/null +++ b/src/game/cards/SpecialCard/HasteCard.java @@ -0,0 +1,12 @@ +package game.cards.SpecialCard; + +import game.cards.Card; + +public abstract class HasteCard extends Card{ + public HasteCard() + { + super(); + resetAttack(); + } + +} diff --git a/src/game/cards/SpecialCard/ICanDoge.java b/src/game/cards/SpecialCard/ICanDoge.java new file mode 100644 index 0000000..ec75440 --- /dev/null +++ b/src/game/cards/SpecialCard/ICanDoge.java @@ -0,0 +1,5 @@ +package game.cards.SpecialCard; + +public interface ICanDoge { + +} diff --git a/src/game/cards/SpecialCard/IToxic.java b/src/game/cards/SpecialCard/IToxic.java new file mode 100644 index 0000000..7baa0cd --- /dev/null +++ b/src/game/cards/SpecialCard/IToxic.java @@ -0,0 +1,5 @@ +package game.cards.SpecialCard; + +public interface IToxic { + +}