From 7749eb6d2489e7b15e21ea328b52f23e4a434fe5 Mon Sep 17 00:00:00 2001 From: marc barbier Date: Wed, 6 Jan 2021 20:02:25 +0100 Subject: [PATCH 1/2] ajout 10 effet de carte --- bin/game/Board.class | Bin 1052 -> 1531 bytes bin/game/Joueur.class | Bin 8852 -> 9748 bytes bin/game/Match.class | Bin 2722 -> 2754 bytes bin/game/cards/Card.class | Bin 1588 -> 1839 bytes .../MoyenAge/Moyen_Age_Charlemagne.class | Bin 558 -> 579 bytes bin/game/cards/SpecialCard/IAntiPlayer.class | Bin 0 -> 126 bytes bin/game/cards/SpecialCard/IInvisible.class | Bin 0 -> 124 bytes bin/game/cards/SpecialCard/ILifeSteal.class | Bin 0 -> 124 bytes .../cards/SpecialCard/IPlayerFocused.class | Bin 0 -> 132 bytes bin/game/cards/SpecialCard/IShortRange.class | Bin 0 -> 126 bytes bin/game/cards/SpecialCard/LonerCard.class | Bin 0 -> 564 bytes .../cards/SpecialCard/RegeneratingCard.class | Bin 0 -> 440 bytes bin/game/cards/SpecialCard/SelfHarmCard.class | Bin 0 -> 448 bytes bin/game/cards/SpecialCard/SteroidsCard.class | Bin 0 -> 436 bytes .../cards/SpecialCard/VigilanceCard.class | Bin 0 -> 640 bytes src/game/Board.java | 28 ++++++ src/game/Joueur.java | 82 ++++++++++++++---- src/game/Match.java | 2 +- src/game/cards/Card.java | 11 ++- .../cards/MoyenAge/Moyen_Age_Charlemagne.java | 4 +- src/game/cards/SpecialCard/IAntiPlayer.java | 5 ++ src/game/cards/SpecialCard/IInvisible.java | 5 ++ src/game/cards/SpecialCard/ILifeSteal.java | 5 ++ .../cards/SpecialCard/IPlayerFocused.java | 5 ++ src/game/cards/SpecialCard/IShortRange.java | 5 ++ src/game/cards/SpecialCard/LonerCard.java | 15 ++++ .../cards/SpecialCard/RegeneratingCard.java | 11 +++ src/game/cards/SpecialCard/SelfHarmCard.java | 9 ++ src/game/cards/SpecialCard/SteroidsCard.java | 12 +++ src/game/cards/SpecialCard/VigilanceCard.java | 19 ++++ 30 files changed, 196 insertions(+), 22 deletions(-) create mode 100644 bin/game/cards/SpecialCard/IAntiPlayer.class create mode 100644 bin/game/cards/SpecialCard/IInvisible.class create mode 100644 bin/game/cards/SpecialCard/ILifeSteal.class create mode 100644 bin/game/cards/SpecialCard/IPlayerFocused.class create mode 100644 bin/game/cards/SpecialCard/IShortRange.class create mode 100644 bin/game/cards/SpecialCard/LonerCard.class create mode 100644 bin/game/cards/SpecialCard/RegeneratingCard.class create mode 100644 bin/game/cards/SpecialCard/SelfHarmCard.class create mode 100644 bin/game/cards/SpecialCard/SteroidsCard.class create mode 100644 bin/game/cards/SpecialCard/VigilanceCard.class create mode 100644 src/game/cards/SpecialCard/IAntiPlayer.java create mode 100644 src/game/cards/SpecialCard/IInvisible.java create mode 100644 src/game/cards/SpecialCard/ILifeSteal.java create mode 100644 src/game/cards/SpecialCard/IPlayerFocused.java create mode 100644 src/game/cards/SpecialCard/IShortRange.java create mode 100644 src/game/cards/SpecialCard/LonerCard.java create mode 100644 src/game/cards/SpecialCard/RegeneratingCard.java create mode 100644 src/game/cards/SpecialCard/SelfHarmCard.java create mode 100644 src/game/cards/SpecialCard/SteroidsCard.java create mode 100644 src/game/cards/SpecialCard/VigilanceCard.java diff --git a/bin/game/Board.class b/bin/game/Board.class index d863c10eb8cf4f4db58f64909ff36a87f58805ba..197b80041c0fdbe0aaadeb6482a87d4824b8fb4f 100644 GIT binary patch delta 517 zcmYL^zb`{k9L3Ll_x;dn#jl5=h=J-4)#6qB4i*U-L4vJ#8iQ8oWa-lXKqLl>g{6xy z89Exw{t1hJK%&ljT9*60_uO;Ny`S5LuSW0N_e%vp3R92XRb|(cwF~?CoSi-vXb-Jr zGpBa^Fmrx%5ntvyGqNh+bI#lOowJop!8V{%VQ48&b?fBP7LXyw=Fc5Ck#x?zx!P1> z!gwkwH=;NO0T17NhXR9hRL+H;(X=H|6gx~V2NVv&1jz2%Z3N~$nbQ@g8v zC}k!jnz{D5>0!2n(1i$sh@l^G4DuXB0xk4}p*k<16>Xf(E>WaWFcd`(Iyt-GMK3kU z9k2*lrQ0wd4EO{DM-r&Q_oq2}UDf{7x|7}Gn5ZFMvtMUxNY4HuY89)f%J~Ph2DD&u zJ^Bj0Bt%JypsC(fKYRY^y4|3~f)qM1jc&~HlPL^g!6h5uhgn=BQ>af8N6>4yI1U(K UIyf!RiBo6sqfw#H;w`&>0Lc$Yu>b%7 delta 36 scmey(J%@wq)W2Q(7#JAL84Ndac`{92%cRZ7y7?y43`SN41||jr0OsooGynhq diff --git a/bin/game/Joueur.class b/bin/game/Joueur.class index cf14f54e39309be260921123a732dc85729c6bae..8fb6182201a92ee43946e7c66ee54bea953b7c45 100644 GIT binary patch delta 4097 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 bODZ^lA@Y^FnT-2CZzh@SUXK!3lJx%vzZq-C delta 3499 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 diff --git a/bin/game/Match.class b/bin/game/Match.class index 3366620521b0a295b4733da6480e699688b40ee0..85c08f276eae24e00cd07433500b7ae138f81bd9 100644 GIT binary patch delta 253 zcmZ1^dPtP()W2Q(7#JAL8D?+fl3{fdVr1aX&kHFn$_p+@EGpq*kYVWOVVJ<+#mK;w zo0ypwkdauNY6udZ#KSNdB+Q+ZSW=Rc3YGwgPvv2lwmF2go`v%a0}}%?(Com;cQ`HT zw=r~U>uh7_0}&H}*n1`eyY@DQDI0+*m>H~qq#gq|kj!8ZXUJhtW5{RFW+-CNXDDGX zW+(%?uY$pvp_0LYp^Cwkp@t!Vp%%zzU{HYAz+l5*3*-UqVwldr#=r4*OV4d8}#lx)vl$ikx=57k)W2Q(7#JAL8D?zcl3~^JVr1aTP0Y*-$Ve!n7{xO=1xj1 zDalC%OMt{D@i0u@oWokr!g+*&iGdkthVSGroEC~Y+ZejFfkYn=d(UKG*WSi3aU)Qc znZXK3YB6w44&;*7uVk=csA6zrsA2G7sAaGQ$|yk00E*iJc|g+`rZBKEFfxcUm@!P9 SJfBN~TLH+M29#l9m<|9kHz(Tw diff --git a/bin/game/cards/Card.class b/bin/game/cards/Card.class index 03b4562e47f5c3b7b1a4d5f22e802c82f2cdc3c9..44104cedba775f02c4b1c124a87706e9181b83f7 100644 GIT binary patch delta 696 zcmah`+e#Z@5dLNlF>cln!3f5vpgFm<+FB1)6Jz7n)>A1|#6U&2H7L{=2zsrTdOdv) zYtbkQ-g)CI_zLw21nKNXG!&sM|1dw_eutU=*gOmx*Z1d_0ERJpWMn9jnp<~@g}z+L zDX)!nFB0@`Zc8w00k+Ae7kog`1`9z0Dtb-y;T8X;E?++e>hOkds7)Qj5Z_UU-@;oH zBN*jQ#ga?fL<-%!plrspje@gD&{ET`na?SfcDA;~t?2wHeAzCSw$=+}zEsi_;yWeV z7=VU)`AjsT0WApfteU1K-j^EXD>a$xg0N+vK{<*XI`W#RRG&aVFWRIwS3$I+LvHdL zVu(v6BzRftq<-Gh!j$y-A-7+W#DcogS>d`$;R{&#Q}kFBygb9}3Wh5f`z3&aC%aM4 z&a4uub{ZjrCeL&nS-#cm@fr9rClk#hginazb4|$jW5_rrydmBRSBDy^_ls-}lU&kc zw7@_0OzV;W`5H^#1DRm+A3eGIRq*9!@%NZ|m~T?v(_LM_${!=rx_W}h(-I92T7iMp knv8+Ri~)S`G7>&MBWR0a*i{VwtN2|M*Z!k8?d^8vFDi&!cK`qY delta 443 zcmYL^$4UcH6o&sZC1o6AA+ce>IvUGZVox!NihZGAT@5-6kr*_If(w0#vvcJes31`k zT#GN@!e{Um#G7&9=I1;2-2a1f7kJdQkDr$}0F#)1&|<`=lnnP0>W{4p%gkCi$J{FB zGdU-9p2;5Bc?|{v8f5hA7{DNZQRlje5if=b4UTnUn}=5Zs9>f=ZrV< zfkx!PCya_gkE9nJ)tjL zLiia&B}7V?x)%!x%_2SSrzx}u*8d7AC{S(nUk28oVwBL2_pbwE)Z@2 delta 23 ecmX@ivW{hf9S?tcVs5H_a$-?RvHr&RCyW4J%?Mop diff --git a/bin/game/cards/SpecialCard/IAntiPlayer.class b/bin/game/cards/SpecialCard/IAntiPlayer.class new file mode 100644 index 0000000000000000000000000000000000000000..165c1a7f379b0b46e84a7d61f5f985840a1eeb73 GIT binary patch literal 126 zcmX^0Z`VEs1_pBmc6J6PMh2zy#N1T<9A_X$-_tR#Br_lgsK_Dx!EKxrvF)v-;KPf9UxrC8{D>%QjC^^+FGba@&kEB5lq?V15fsuh3XcGu9 LGOz+kCI&VDSYjZl literal 0 HcmV?d00001 diff --git a/bin/game/cards/SpecialCard/IInvisible.class b/bin/game/cards/SpecialCard/IInvisible.class new file mode 100644 index 0000000000000000000000000000000000000000..7f846c7ccaf141f1a4eb75e87e89fc3647c660d8 GIT binary patch literal 124 zcmX^0Z`VEs1_pBmc6J6PMh3<7#N1T<9A_X$-_tX%EVDQ>DJPYk zfrXJlAS&1d literal 0 HcmV?d00001 diff --git a/bin/game/cards/SpecialCard/ILifeSteal.class b/bin/game/cards/SpecialCard/ILifeSteal.class new file mode 100644 index 0000000000000000000000000000000000000000..6c998a331b72dfe642e297b28dac64ef4abbf2de GIT binary patch literal 124 zcmX^0Z`VEs1_pBmc6J6PMh3<7#N1T<9A_X$-_s{EEj73#H8F>s zfrXJlAS9A_X$-!mX5u`;#DEkC)m zI5mZxfrXJlAS9A_X$-!nKPzo;ZAF)uxp zoq>gsK_Dx!EKxrP$k+Ez%1TWxVPxP6&Mz%WPIb%7Nd?LyY0v|yWn*MuWMBr`1Oki< KtU!{9feip#fFQ8| literal 0 HcmV?d00001 diff --git a/bin/game/cards/SpecialCard/LonerCard.class b/bin/game/cards/SpecialCard/LonerCard.class new file mode 100644 index 0000000000000000000000000000000000000000..b18537b24d29922238a20136fabe11f6f4268287 GIT binary patch literal 564 zcmZut%TB^T6g@-Bs}`%E_*Qg1gp@JQeF5p{(>7wT=)Tg zl<`a4JS76i6zY-5MtBl)b{I0}P-invU*t>p~t*;s`mknZUotXu9VP;g`EJ>SUjVj0T~ zUm{Ok`+D8gzYCr{$yaF}v!B7k11WmE5i!fCK`Us}wHb0B$+tz+-x^nl_Pl_$z=+at zh?@LBu@r5oKE;~(j$AD>MY&d=VOL8T&{9R1#5{5oEASO5pk>Q*>Oz(x*vA2d4-=*+ K&^@A?Lgg2oqHLW2 literal 0 HcmV?d00001 diff --git a/bin/game/cards/SpecialCard/RegeneratingCard.class b/bin/game/cards/SpecialCard/RegeneratingCard.class new file mode 100644 index 0000000000000000000000000000000000000000..1322db6503fea242c94e8704ea0805c07510485a GIT binary patch literal 440 zcmaKozfQw25XL_zY16u)g+gIwqUk_J1}c_HNJtR_sj|DNl^UfEaueQ*1tbO@fQLey zLnR^xWa<9d_q*@>`Stz*;0k9x9EOWrY-N-Qv))C?lgyMT7L-H}GM8E!Q7N6CgawN&3H7Kw{tr@S_mV z0YN9ka?j`Y-rd>nAFpo!&T-_yVmP@MxeOAa(<+D_Wuip3AQD6}ySo-TH^hVU$6zgW zsnW^}GPrY9sQQw@o=jr~XHlk-!$!|X2QI@fRE4~4@|Dy}vC1UFI4l#9#X>8?zb~D7 ztty7o@E_?e82V+gY;+OTLf0G&yFNx3ll@wXjLPI@8k-dRJ_aTQkIF_T@=BQiqwS}j zJ&28Pj!DC&PXa7DQE)>yVKH28L@t9w=(Gx=SD7f0ElC7XEp@5V$_N(@!>Du7 z6dC#pRjB%o!Jf`y24`8OlEa4QqlZ3CgsPB_O}>_TCDxf_n1p2_vRG(k^seaCPpV?L z3Oft_b8^ctD2r92i>Ma5=3qGTF~)?!&&7+3YF!o^smaasVHO)VCq9P84Ufu3C-Pny zBjfJ#uAjwLI2XjS>0S6ot<;KW&q=we^1~h-emeBZyd(QV@jdrc%(A({yM@)3hY1;M@2B-3W@{ z!Uyo7#G5q6RB(|Y_s+TBJ!d|@-ah~wVl$5%!}frWMBU+jKd5&m!jarC&Lp4Wp}U3pti<+VL*XtA&){43?&O1bV9YI zCoZR>p75`D&lL={_SoTWm-{lRlcpLDWx%l0&TRhI<1s;oJZQSU;QhzBFF_{B%nfbs zL_RP0Bte^zH1-~8OkV^d{K;Z;##7%BXEHXn@DTfV{DG@m6h)yoWb{!UI#v3ojC2;M zY9JTi8TK0tTX}``Ox+yHbe7{ujV5%`YN$}pnyaydDpiyN%L(Z;AzAhdEbR%JI#Xt( zQDT-J&lNKaD`Bj}8fK7SHMMm_W07Ukz9yP_yWq>9O+X0-k$*jzsi(CRbC7t_|0J6e Rs+6ggA?PV#o%lIyd;@NSYbpQ$ literal 0 HcmV?d00001 diff --git a/src/game/Board.java b/src/game/Board.java index 8af1ae8..ac7c7e0 100644 --- a/src/game/Board.java +++ b/src/game/Board.java @@ -35,4 +35,32 @@ public class Board { return Arrays.stream(board).iterator(); } + public int getZoneOf(Card cardToUpDate) { + int index = 0; + for(Card c : board) + { + //si c'est la meme instance + if(c == cardToUpDate) + { + return index; + } + index++; + } + return -1; + } + + public int getBoardSize() + { + int nbCardOnBoard = 0; + for(Card c : board) + { + //si c'est la meme instance + if(c != null) + { + nbCardOnBoard++; + } + } + return nbCardOnBoard; + } + } diff --git a/src/game/Joueur.java b/src/game/Joueur.java index 50e795d..e898677 100644 --- a/src/game/Joueur.java +++ b/src/game/Joueur.java @@ -5,7 +5,12 @@ import java.util.Iterator; import game.cards.Card; import game.cards.CardRegistery; +import game.cards.SpecialCard.IAntiPlayer; import game.cards.SpecialCard.ICanDoge; +import game.cards.SpecialCard.IInvisible; +import game.cards.SpecialCard.ILifeSteal; +import game.cards.SpecialCard.IPlayerFocused; +import game.cards.SpecialCard.IShortRange; import game.cards.SpecialCard.IToxic; import game.deck.Deck; import game.deck.DeckRegistery; @@ -192,6 +197,7 @@ public class Joueur { coms.send(Command.SETMANA); mana -= handCard.getCost(); coms.send(mana); + handCard.onCardPlaced(board); } else { System.out.println("the zone is not avaliable"); coms.send(Command.NOK); @@ -317,7 +323,10 @@ public class Joueur { String carteCible = coms.recieve(); if (!isInt(carteAttaquante) || !isInt(carteCible)) throw new RuntimeException("non number zone recived in attack phase"); + Card attackingCard = board.getCardInZone(Integer.parseInt(carteAttaquante)); + Card attackedCard = adversaire.getBoard().getCardInZone(Integer.parseInt(carteCible)); + if (attackingCard == null) { throw new RuntimeException("invalid attack"); @@ -330,7 +339,7 @@ public class Joueur { } attackingCard.hasAttacked(); } else { - if (!attackingCard.hasAlreadyAttacked()) { + if (!attackingCard.hasAlreadyAttacked() && !(attackedCard instanceof IInvisible) && !(attackingCard instanceof IPlayerFocused)) { handleAttackAgainstCard(carteAttaquante, carteCible, adversaire); attackingCard.hasAttacked(); } @@ -347,7 +356,18 @@ public class Joueur { } private boolean handleAttackAgainstPlayer(Card attackingCard, Joueur adversaire) throws IOException { - boolean result = adversaire.takeDamage(attackingCard.getAttack()); + int damage = attackingCard.getAttack(); + if(attackingCard instanceof IAntiPlayer) + { + damage *= 2; + } + + if(attackingCard instanceof IShortRange) + { + damage = 0; + } + + boolean result = adversaire.takeDamage(damage); if(!result) { adversaire.updateHp(this); @@ -375,6 +395,13 @@ public class Joueur { } boolean isDestroyed = attackedCard.takeDamage(attackingCard.getAttack()); + if(attackingCard instanceof ILifeSteal) + { + attackingCard.heal(attackingCard.getAttack()); + + updateCardHp(attackingCard, this); + } + if (isDestroyed || attackingCard instanceof IToxic) { // on suprime la carte du terrain board.setCard(Integer.parseInt(carteCible), null); @@ -391,14 +418,7 @@ public class Joueur { // 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(carteCible); - adversaire.getComs().send(attackedCard.getHealth()); - - this.getComs().send(Command.SET_ADV_CARD_HP); - this.getComs().send(carteCible); - this.getComs().send(attackedCard.getHealth()); - + adversaire.updateCardHp(attackedCard, this); //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)) @@ -419,21 +439,34 @@ public class Joueur { // appelle les effet de quand la carte est détruite // NOTE : non implémenter dans les cartes individuelles par manque de temps - attackedCard.onCardDestroyed(); + attackingCard.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()); + adversaire.updateCardHp(attackingCard, this); } } } } + + /** + * met a jorus les hp d'une carte tout ce passe du poin de vue du joueur + * @param cardToUpDate + * @param adversaire + * @throws IOException + */ + private void updateCardHp(Card cardToUpDate,Joueur adversaire) throws IOException + { + int zone = board.getZoneOf(cardToUpDate); + if(zone == -1)return; + adversaire.getComs().send(Command.SET_ADV_CARD_HP); + adversaire.getComs().send(zone+""); + adversaire.getComs().send(cardToUpDate.getHealth()); + + this.getComs().send(Command.SET_CARD_HP); + this.getComs().send(zone+""); + this.getComs().send(cardToUpDate.getHealth()); + } private Board getBoard() { return board; @@ -451,4 +484,17 @@ public class Joueur { return pV == 0; } + + public void onTurnStart() { + Iterator it = board.getIterator(); + while(it.hasNext()) + { + Card c = it.next(); + if(c != null) + { + c.onTurnStart(); + } + } + + } } diff --git a/src/game/Match.java b/src/game/Match.java index 69a48e7..7d810d4 100644 --- a/src/game/Match.java +++ b/src/game/Match.java @@ -117,7 +117,7 @@ public class Match extends Thread { //et on dit au joueur oposé que ce n'est pas le tien enemy.debutTourEnemie(); - + joueur.onTurnStart(); joueur.mainPhase1(enemy); //Joue autant de carte qu'il veut/peut joueur.battlePhase(enemy);//lance des attaques à son adversaire qui peut répliquer //cette phases ne serira surment pas car nous manquon de temps pour implrementer les fonctionnalité specifique de certaine cartes diff --git a/src/game/cards/Card.java b/src/game/cards/Card.java index 3600e90..17a11ab 100644 --- a/src/game/cards/Card.java +++ b/src/game/cards/Card.java @@ -1,5 +1,7 @@ package game.cards; +import game.Board; + public abstract class Card{ private int attack; @@ -41,7 +43,7 @@ public abstract class Card{ /** * evenement déclanché au placement de la carte */ - public void onCardPlaced(){}; + public void onCardPlaced(Board board){}; /** * évenement déclenché a la mort de la carte */ @@ -89,5 +91,12 @@ public abstract class Card{ public void resetAttack() { hasAttacked=false; } + public void heal(int amount) { + health += amount; + } + public void makeStronger(int amount) + { + attack += amount; + } } diff --git a/src/game/cards/MoyenAge/Moyen_Age_Charlemagne.java b/src/game/cards/MoyenAge/Moyen_Age_Charlemagne.java index 2e18b5a..c4186cd 100644 --- a/src/game/cards/MoyenAge/Moyen_Age_Charlemagne.java +++ b/src/game/cards/MoyenAge/Moyen_Age_Charlemagne.java @@ -1,8 +1,8 @@ package game.cards.MoyenAge; -import game.cards.Card; +import game.cards.SpecialCard.VigilanceCard; -public class Moyen_Age_Charlemagne extends Card{ +public class Moyen_Age_Charlemagne extends VigilanceCard{ /** * retourne un entier coresspondant a l'attaque de la carte * diff --git a/src/game/cards/SpecialCard/IAntiPlayer.java b/src/game/cards/SpecialCard/IAntiPlayer.java new file mode 100644 index 0000000..08b14fa --- /dev/null +++ b/src/game/cards/SpecialCard/IAntiPlayer.java @@ -0,0 +1,5 @@ +package game.cards.SpecialCard; + +public interface IAntiPlayer { + +} diff --git a/src/game/cards/SpecialCard/IInvisible.java b/src/game/cards/SpecialCard/IInvisible.java new file mode 100644 index 0000000..dd2cea4 --- /dev/null +++ b/src/game/cards/SpecialCard/IInvisible.java @@ -0,0 +1,5 @@ +package game.cards.SpecialCard; + +public interface IInvisible { + +} diff --git a/src/game/cards/SpecialCard/ILifeSteal.java b/src/game/cards/SpecialCard/ILifeSteal.java new file mode 100644 index 0000000..5757bb7 --- /dev/null +++ b/src/game/cards/SpecialCard/ILifeSteal.java @@ -0,0 +1,5 @@ +package game.cards.SpecialCard; + +public interface ILifeSteal { + +} diff --git a/src/game/cards/SpecialCard/IPlayerFocused.java b/src/game/cards/SpecialCard/IPlayerFocused.java new file mode 100644 index 0000000..9148610 --- /dev/null +++ b/src/game/cards/SpecialCard/IPlayerFocused.java @@ -0,0 +1,5 @@ +package game.cards.SpecialCard; + +public interface IPlayerFocused { + +} diff --git a/src/game/cards/SpecialCard/IShortRange.java b/src/game/cards/SpecialCard/IShortRange.java new file mode 100644 index 0000000..8006b98 --- /dev/null +++ b/src/game/cards/SpecialCard/IShortRange.java @@ -0,0 +1,5 @@ +package game.cards.SpecialCard; + +public interface IShortRange { + +} diff --git a/src/game/cards/SpecialCard/LonerCard.java b/src/game/cards/SpecialCard/LonerCard.java new file mode 100644 index 0000000..b859c49 --- /dev/null +++ b/src/game/cards/SpecialCard/LonerCard.java @@ -0,0 +1,15 @@ +package game.cards.SpecialCard; + +import game.Board; +import game.cards.Card; + +public abstract class LonerCard extends Card{ + @Override + public void onCardPlaced(Board board) { + if(board.getBoardSize() == 1) + { + makeStronger(3); + } + super.onCardPlaced(board); + } +} diff --git a/src/game/cards/SpecialCard/RegeneratingCard.java b/src/game/cards/SpecialCard/RegeneratingCard.java new file mode 100644 index 0000000..af1f18b --- /dev/null +++ b/src/game/cards/SpecialCard/RegeneratingCard.java @@ -0,0 +1,11 @@ +package game.cards.SpecialCard; + +import game.cards.Card; + +public abstract class RegeneratingCard extends Card{ + @Override + public void onTurnStart() { + heal(1); + super.onTurnStart(); + } +} diff --git a/src/game/cards/SpecialCard/SelfHarmCard.java b/src/game/cards/SpecialCard/SelfHarmCard.java new file mode 100644 index 0000000..0a4fea6 --- /dev/null +++ b/src/game/cards/SpecialCard/SelfHarmCard.java @@ -0,0 +1,9 @@ +package game.cards.SpecialCard; + +public abstract class SelfHarmCard extends SteroidsCard{ + @Override + public void onTurnStart() { + heal(-1); + super.onTurnStart(); + } +} diff --git a/src/game/cards/SpecialCard/SteroidsCard.java b/src/game/cards/SpecialCard/SteroidsCard.java new file mode 100644 index 0000000..419358e --- /dev/null +++ b/src/game/cards/SpecialCard/SteroidsCard.java @@ -0,0 +1,12 @@ +package game.cards.SpecialCard; + +import game.cards.Card; + +public abstract class SteroidsCard extends Card{ + + @Override + public void onTurnStart() { + makeStronger(1); + super.onTurnStart(); + } +} diff --git a/src/game/cards/SpecialCard/VigilanceCard.java b/src/game/cards/SpecialCard/VigilanceCard.java new file mode 100644 index 0000000..8558c80 --- /dev/null +++ b/src/game/cards/SpecialCard/VigilanceCard.java @@ -0,0 +1,19 @@ +package game.cards.SpecialCard; + +import game.cards.Card; + +public abstract class VigilanceCard extends Card{ + int nbAttack = 0; + + public boolean hasAlreadyAttacked() { + return nbAttack==2; + } + + public void hasAttacked() { + nbAttack++; + } + + public void resetAttack() { + nbAttack=0; + } +} From bd6e6911dae6bbe2aebca86e5ff6771b5b5e3e9d Mon Sep 17 00:00:00 2001 From: marc barbier Date: Wed, 6 Jan 2021 20:15:36 +0100 Subject: [PATCH 2/2] ajout commande --- bin/game/Command.class | Bin 1236 -> 1337 bytes bin/game/Joueur.class | Bin 9748 -> 10089 bytes bin/game/Match.class | Bin 2754 -> 2755 bytes src/game/Command.java | 2 ++ src/game/Joueur.java | 23 ++++++++++++++++++++++- src/game/Match.java | 2 +- 6 files changed, 25 insertions(+), 2 deletions(-) diff --git a/bin/game/Command.class b/bin/game/Command.class index 5dd74be83f04f0d6d249f893dfdd910619577aa7..72f25dfe1a9e15360dcb69bbb30f6e1de77f890b 100644 GIT binary patch delta 235 zcmcb@xs!|Q)W2Q(7#JAL84@;f)iEXW1iOaBJ39us#5;y~b1(!lGH?~AmLw+@r6iVQ zGcpK(q#a$tkd%ZlGVlVGB&L+XRk7J*=4F=HF)}b~XofK|usG+Zq;fGZGeq(*gffIp zUdEKdD7BfJxsfqLlEI&Wje(JY9q0rmh5!ahh9D$b$;1#309Laq0{{R3 delta 114 zcmdnVb%m4b)W2Q(7#JAL8KO3F)iF&z%Ot@T%){W%5HR^QQwpQR<^bkKMh`{?CXf&V xBSRoitv--u1k$Wp+Zlp30vSvUAwZH1EXctS3S{#@6flG_gadhu3=v>ekpQN{5b&6*&IVKZTo0kdRTOW8Y`pMW_8vhESzT8HD7#M;kf8n%X)S0Zq<)m-JP|4uPP{rWJP{R<& tP|IKqlvjYLVz6Pb1@eIE8KyI^F)%WSGgwca%O%CF3S`d&iZe0H0s!f+5dHuF delta 96 zcmX>sdPsDG8Y`pFW_8vhESzT;m>8HD7#IR4f8n&4tjp!3Z_QB2;J{GD;L1?L5WrB& rU=5U2fT&@xVXy`AfT|g$Gq5o*GKe!+O`gXk#jOHl&jgAyG0Xx0x#JL# diff --git a/src/game/Command.java b/src/game/Command.java index b62f96c..c66f19e 100644 --- a/src/game/Command.java +++ b/src/game/Command.java @@ -30,6 +30,8 @@ public final class Command { public static final String SET_HP = "sethp"; public static final String SET_CARD_HP = "setcardhp"; public static final String SET_ADV_CARD_HP = "setadvcardhp"; + public static final String SET_CARD_ATK = "setcardatk"; + public static final String SET_ADV_CARD_ATK = "setadvcardatk"; } diff --git a/src/game/Joueur.java b/src/game/Joueur.java index e898677..5bc35f7 100644 --- a/src/game/Joueur.java +++ b/src/game/Joueur.java @@ -467,6 +467,25 @@ public class Joueur { this.getComs().send(zone+""); this.getComs().send(cardToUpDate.getHealth()); } + + /** + * met a jorus les hp d'une carte tout ce passe du poin de vue du joueur + * @param cardToUpDate + * @param adversaire + * @throws IOException + */ + private void updateCardAtk(Card cardToUpDate,Joueur adversaire) throws IOException + { + int zone = board.getZoneOf(cardToUpDate); + if(zone == -1)return; + adversaire.getComs().send(Command.SET_ADV_CARD_ATK); + adversaire.getComs().send(zone+""); + adversaire.getComs().send(cardToUpDate.getAttack()); + + this.getComs().send(Command.SET_CARD_ATK); + this.getComs().send(zone+""); + this.getComs().send(cardToUpDate.getAttack()); + } private Board getBoard() { return board; @@ -485,7 +504,7 @@ public class Joueur { } - public void onTurnStart() { + public void onTurnStart(Joueur adversaire) throws IOException { Iterator it = board.getIterator(); while(it.hasNext()) { @@ -493,6 +512,8 @@ public class Joueur { if(c != null) { c.onTurnStart(); + updateCardHp(c, adversaire); + updateCardAtk(c, adversaire); } } diff --git a/src/game/Match.java b/src/game/Match.java index 7d810d4..2f43ed9 100644 --- a/src/game/Match.java +++ b/src/game/Match.java @@ -117,7 +117,7 @@ public class Match extends Thread { //et on dit au joueur oposé que ce n'est pas le tien enemy.debutTourEnemie(); - joueur.onTurnStart(); + joueur.onTurnStart(enemy); joueur.mainPhase1(enemy); //Joue autant de carte qu'il veut/peut joueur.battlePhase(enemy);//lance des attaques à son adversaire qui peut répliquer //cette phases ne serira surment pas car nous manquon de temps pour implrementer les fonctionnalité specifique de certaine cartes