From e460b9af20915d800551dcfac71034093f9321d6 Mon Sep 17 00:00:00 2001 From: BetaSteward Date: Wed, 29 Dec 2010 15:00:18 -0500 Subject: [PATCH] fixed some match problems --- .../main/java/mage/client/game/GamePane.java | 3 +++ .../src/mage/player/ai/ComputerPlayer.java | 6 +++--- .../src/mage/player/ai/ComputerPlayer2.java | 4 ++-- .../src/mage/player/ai/ComputerPlayer3.java | 4 ++-- .../src/mage/player/human/HumanPlayer.java | 8 +++---- Mage.Server/plugins/mage-player-ai.jar | Bin 29003 -> 28977 bytes Mage.Server/plugins/mage-player-aiminimax.jar | Bin 36469 -> 36413 bytes Mage.Server/plugins/mage-player-human.jar | Bin 11286 -> 11295 bytes .../java/mage/server/game/PlayerFactory.java | 6 +++--- .../mage/server/game/TableController.java | 20 ++++++------------ Mage/src/mage/game/Game.java | 3 ++- Mage/src/mage/game/GameImpl.java | 7 +++--- Mage/src/mage/game/Table.java | 4 ++-- Mage/src/mage/game/match/MatchImpl.java | 2 +- Mage/src/mage/players/Library.java | 3 ++- Mage/src/mage/players/Player.java | 3 ++- Mage/src/mage/players/PlayerImpl.java | 13 ++++++++---- 17 files changed, 46 insertions(+), 40 deletions(-) diff --git a/Mage.Client/src/main/java/mage/client/game/GamePane.java b/Mage.Client/src/main/java/mage/client/game/GamePane.java index 909ef4d92e..f6045f3aa0 100644 --- a/Mage.Client/src/main/java/mage/client/game/GamePane.java +++ b/Mage.Client/src/main/java/mage/client/game/GamePane.java @@ -79,14 +79,17 @@ public class GamePane extends MagePane { public void showGame(UUID gameId, UUID playerId) { gamePanel.showGame(gameId, playerId); + this.toFront(); } public void watchGame(UUID gameId) { gamePanel.watchGame(gameId); + this.toFront(); } public void replayGame() { gamePanel.replayGame(); + this.toFront(); } /** This method is called from within the constructor to diff --git a/Mage.Server.Plugins/Mage.Player.AI/src/mage/player/ai/ComputerPlayer.java b/Mage.Server.Plugins/Mage.Player.AI/src/mage/player/ai/ComputerPlayer.java index 8ade76a07b..fb432c9fe1 100644 --- a/Mage.Server.Plugins/Mage.Player.AI/src/mage/player/ai/ComputerPlayer.java +++ b/Mage.Server.Plugins/Mage.Player.AI/src/mage/player/ai/ComputerPlayer.java @@ -117,8 +117,8 @@ public class ComputerPlayer> extends PlayerImpl i private transient List playableInstant = new ArrayList(); private transient List playableAbilities = new ArrayList(); - public ComputerPlayer(String name, Deck deck, RangeOfInfluence range) { - super(name, deck, range); + public ComputerPlayer(String name, RangeOfInfluence range) { + super(name, range); human = false; } @@ -768,7 +768,7 @@ public class ComputerPlayer> extends PlayerImpl i } @Override - public void sideboard(Table table) { + public void sideboard(Table table, Deck deck) { //TODO: improve this table.fireSubmitDeckEvent(playerId, deck); } diff --git a/Mage.Server.Plugins/Mage.Player.AIMinimax/src/mage/player/ai/ComputerPlayer2.java b/Mage.Server.Plugins/Mage.Player.AIMinimax/src/mage/player/ai/ComputerPlayer2.java index 058a1f708e..a3c3008bb0 100644 --- a/Mage.Server.Plugins/Mage.Player.AIMinimax/src/mage/player/ai/ComputerPlayer2.java +++ b/Mage.Server.Plugins/Mage.Player.AIMinimax/src/mage/player/ai/ComputerPlayer2.java @@ -99,8 +99,8 @@ public class ComputerPlayer2 extends ComputerPlayer implements protected int currentScore; protected SimulationNode root; - public ComputerPlayer2(String name, Deck deck, RangeOfInfluence range) { - super(name, deck, range); + public ComputerPlayer2(String name, RangeOfInfluence range) { + super(name, range); maxDepth = Config.maxDepth; maxNodes = Config.maxNodes; } diff --git a/Mage.Server.Plugins/Mage.Player.AIMinimax/src/mage/player/ai/ComputerPlayer3.java b/Mage.Server.Plugins/Mage.Player.AIMinimax/src/mage/player/ai/ComputerPlayer3.java index 23191d1c8e..b3f4134527 100644 --- a/Mage.Server.Plugins/Mage.Player.AIMinimax/src/mage/player/ai/ComputerPlayer3.java +++ b/Mage.Server.Plugins/Mage.Player.AIMinimax/src/mage/player/ai/ComputerPlayer3.java @@ -83,8 +83,8 @@ public class ComputerPlayer3 extends ComputerPlayer2 implements Player { } - public ComputerPlayer3(String name, Deck deck, RangeOfInfluence range) { - super(name, deck, range); + public ComputerPlayer3(String name, RangeOfInfluence range) { + super(name, range); maxDepth = Config.maxDepth; maxNodes = Config.maxNodes; } diff --git a/Mage.Server.Plugins/Mage.Player.Human/src/mage/player/human/HumanPlayer.java b/Mage.Server.Plugins/Mage.Player.Human/src/mage/player/human/HumanPlayer.java index 70e2fadfb0..68a04966eb 100644 --- a/Mage.Server.Plugins/Mage.Player.Human/src/mage/player/human/HumanPlayer.java +++ b/Mage.Server.Plugins/Mage.Player.Human/src/mage/player/human/HumanPlayer.java @@ -81,8 +81,8 @@ public class HumanPlayer extends PlayerImpl { } protected transient TargetCreaturePermanent targetCombat = new TargetCreaturePermanent(filter); - public HumanPlayer(String name, Deck deck, RangeOfInfluence range) { - super(name, deck, range); + public HumanPlayer(String name, RangeOfInfluence range) { + super(name, range); human = true; } @@ -473,8 +473,8 @@ public class HumanPlayer extends PlayerImpl { } @Override - public void sideboard(Table table) { - table.fireSideboardEvent(playerId); + public void sideboard(Table table, Deck deck) { + table.fireSideboardEvent(playerId, deck); } protected void specialAction(Game game) { diff --git a/Mage.Server/plugins/mage-player-ai.jar b/Mage.Server/plugins/mage-player-ai.jar index ad99bdf71760f009018ac44dc9dbe5a173697d17..f3f37a9fbca17989687bf2c3f74a15264ebd59c6 100644 GIT binary patch delta 15367 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 PCnG!KKziEzcjf;AdcbL& diff --git a/Mage.Server/plugins/mage-player-aiminimax.jar b/Mage.Server/plugins/mage-player-aiminimax.jar index 9117b83ecc52fa6822c146de10d9bab836d5ec24..d5d7a694cb2857b9f8eb5fed0708af58c552079b 100644 GIT binary patch delta 18848 zcmV)QK(xR0oC3X^0u4}00|W{H00000tZto=4I~Y#Zk;_t7CTR60001dkv?c8@3IG5A0069Rosr8R1FUYHk?to0tZto?7y&8+ ztZtpNMFHXh1FUYHvnm9|0u8KgojpJLS{(ob0057Z4>KgQAO{lz4XkdRJ+=W!cYY`U z07jEQ3N3#Ld{ou-|2g+g=FLoA0t5mKYgmMkg&-hmSR_EeD4PUC5S1YrU?e0lldxHr zx@+C73luk8;zC_ef)N+2N~^Y3t!rDYR_$V~*4EZ4NPgdQ-2k~nbzaApRZv=m-AOFVUH$#-+RNj)u+d+PZ-<8t4 zQhHBH?@7PkO6hm<_I`={GmKPviOhE@^L1A!XH@tsk}e7_)ix9IfOoc zk;h-9_h*^>H~u`xgZb}L`Xa<%@;^fS75`I6{w0HaEv0|U<3CdUMjrpQ_*-fDE|Yrk zz7T)!=kKL@Kpt%&8l%WkEN_KLl$M7tpfWD7YHmRFmacuI(l?;OGIc+p=^s)9 z)Ig~Y3aG(ClNV4!Wa^>PI7}YHW$GgWYD9lPjSSIpl^;^0AT?EBsX`f}D5Q$jXiJq? zYK-(eGLz0wV?(q|jmuQy)lpKNAf=--)iJUQe^bXwTWLs5RFkChWSM44KpiLVsR30c zG}AI^mzo|>GlaHWT4u^)R!AMMDx`FR@P4ADW?O1bh&HLYA=;?si7e-5s*}_LXoP>N z4621{k$gDWQi}uX6e%vT)KW{G8dA&DY4SK-9%ls9av3!eP%8qeN)}QbR8h53Hf2>n ztq!PIK%E&-Yea}O0ku|`tqrKUfT|bjvt%U=Qi{u?F`$~{y)K~E3*`n&Z49VQA=;*< z%j4{T`awXQBgJ!}CF(pZSM+5Uvh=)5f=2#Q-C?OaL-eXNZVSRGAm zG5QC8pq{hT&qDOQdR_$ff^>g*QRKTfpnfid!({AVNb^hbcv-rHn5I-j?b+Lh^1%y$6+0zg52r zso$&jErmV(0~0aX6}7d|hUqntcsv?s^4HX@S`}?z>Noq$$ht^LQ)7RurbOCewW~^I zn{N}DeD!s8HB2K?XsYUJtC|`bqP2}BWDdElRyp2AdtLT@$UI9g8=jbFebDsy5Qt)DUGFla^@G?6r|q(UQoD zSWT=k7LAvbnbO9IQ_z3iYK%0jiZ)_~?(I68v4?hOnv_ysw5Vc+GeXtsI;;aD3{Ov9 z6M=9l8yg@a)4^X=w{}IOktysjwkonVTH>^oOgAqO*{--MtLkKBzJ|Iw^cd{)sIQ4^ zj5d@+VkMQawM{hqGjWtfO)JIs+0?Ztpx3Z#kWleumw6+T4OvvxdlQZUY zh`BLR+ZZ3-vDd^=Cxe0M7@w&d#2TI3w01?bVPRxN4O(($*HuMoPL4Fhr0zEQ8dt|4 zki3rUVtMsVjnRhrre&PYB?5nq6;*ZArJ}mMz8GbYoi(a}g2M(=R%K(PYR#NTy%7w8yQTh!MOW3; zgNLE{qYf>gKz&23uEFr!Ge1RPX5r!N%qkoq$wV)Hf+GWmVyx5RV7Lj zElU`ej>p!5S1fF9bVH-loOZgUvbE88Bd`MoUJF%&t(JdHW18AY{2esY`Mfe#gTH^0+^ssBL+K(A`YePl#x>Q_h5dquPnuWqgp zIntC(3$6h7(`5=^E)ZbJmC;B;)#~z6b9Y$0k z>JB)#s}6r2>7awp2(4|1#_MXWMQU`#MG>R`*nTs9Vh%HUZ&QhNOdn0v#X~!LHh|c$X z#{9!G%%s8`+ED!w*Fj{pGp{u6-kmC1?NEp}6Z>;iDHN%x@jOsLr_kAD%m#|J6!Ika z(I9_@m@m)-x|5qadA!7%QG9Y;JZh;wLyzY*H6qYPlm03hQ`}GP`rVjbGTpp82}v9w zu!-yKt-8dpeY+afy)|QxdjFv5y zur8VmFTVJiSiPnG0=N%+4;L4Y*1++VxvWC|p}P9|x>}4aaWfA&0^%7^zQtniNCq zl|L%Qx497kfjxbPinaAM;x8su)fhkve2_2Oe)7RNm~<#WHDzKK?1d_gqQm21$9r|? zHd+|B`DiZ1w{$s%eEX%%qqqRLDM^1&*3b~y=zK5c(Ke6a(U$tF%_DfE&H3^;T772o zcqxtLaW>Caf3wx+>hFMww)#SSX{&$mOVGgdmTs%B)IZ@2p-Jrx2%69lPs2D4E*e?F z3|sw+D{b{PpMY3xtADHi*ynxj( z;t4hnq6Orz70|F zdD6+n`)2IYJV>4`8xNEVMtmY!_uDf&2DPt|3%o+jcQ zkRrsm;ZbBM$;vQU_H=)Z#K>M**O2EZt+dV1<+h$Fd)zanvy18TY(5J*uV;xV9j_}a zeS)n|l*(*jX^!aM;6q?WAg_a)_V6P`o#)D9p3TGg2ushm^+|extt)w?r5D_J ze=(AR!-CiFNvZ0T*C+@+4-~dOMK1wLKTPNiw{&peZRw@9S}uQkbgG7&P7|HXj3o(e zeY*PcV9K3ml$&Wpdy077+Q!w!QB+rh(4?Kc)6v|u=R2svGodF1?<+otE=Py zex4~Ov?PxAfJ zeDl0ey*|s*SX|FEG2hm4nYd9NO|k{I@tu}lXY2LSvO#}$v-w_bmgennl2YogKmN+^P@FVGhvgmfU7(GXcLp8={mV#|i8 zgX-qM%Nw9+>x=Zo2^;T%&>5>=2NLJIi(&_L_&6=PDpu=IIK78;!D$(p5s_vi6==sLw!Ty>wUI-G*TH4R4MZ=OqNT5~^>zAs5#9~9{;|H%);E8ls&Ce}*m|?xV(Xvit?icCE={oY zt@<`w-)_R#!BPoZ-=Rm?`cA#g)_2JScS}_30T*Ys+PEayYg^x=ueSBQLeeac`}F;` zen3BH>+O20t$!+`JS3w$tglZUz)iIY}E>D{(|NN%16;llp#q_~V!9CKBtR)9Zjz(R;CB^gbMP(Dmd1cdg@z!h>FjDh694lyca-~ow| z(o8!sVcKa~vg#TTEahk$(yEZlu}C~FCk3%ha#2zrjjk~_W;Hc(BI>3{-f8Xl{7!#| zJRP#Aw1+L3vG}5RH13}I59y#4LT2`&T+$F{w*yh995q)dX^&%4rocKv0I*TG*e2Pt z;hhc{D$;GDZ)L1D+CfL$+aCEGNPr2*${0~@enr|dgP$20Vrj2To($V7lh^EYJz3H`(VmKfO%jx@E@_~# zE|IUdKQQrb#YDYb$J2?UiOwyKWA2V~>Ee9Fz2WTB#V5xWrhEI5)6N+ru3iPsxf&1@ za`#>{7*Cc5YalXO@EwPT_5x7{H)*f^vV;!un`U zjrl&YUDWOP6}nhoSMOXE!N40EM8%BrYA+M_3Q**bhync))22IE&8)7gjZR-(7dLxt zJdZhml99XB*Tv&8bDip5PM3AI$wS#_3PGj0o5^a|fcTeADk--$iNMr}dojT3>clE1 zcHu4#<6K%?LVZ&l>B)$6VIzN?>4!Y|x?7y0e~IuvvU3FK;?PfQX|Ay)8y=!&qo+I} zZ#Y!?rZ*wc!d~gxv7N>_CaxxWV6d_dC&eML5hp8VnsUg?>qFd&4b4w~uQWYUQzI8o zhG_WV{2T)^iJBJU@ltkRK~rt5H&nN^kqrxxJ+G;ZVko&+7}({h!J>cK7?x;NmQSBI zcSfaLh#r)5q6EDY4ndPvHT+c(pf-e2U;a`Ff+Df z%ZkOz*VYSuu;Wg!aHD^V4}s|9t?#~IBCUr4g=U!=1 zL+`59(W*5js+QGOFLaJT#I8anM7ck{@tY%6*ILsef_6vu$#wy~@r0=gww+xk@z0c^ zD;pExz5T_V=_KA;f}@FdZu4P)r;{DWmBMV=jjtP47$i3E1o zA@ADE?_$KO8qjOS6La>>PdlYyKkl&~?nLEqZ+tuK&|U1zSVP=gvPn+tj9++oUfNZ; z9`VjTG$6NahrLW#RgW3v(`T10C_kfY;li@%Czda$lwYzP1lJGmIvXEuo^Ga)QtsDj zjx#D3md`(9{(^sU`AOX242X%BpgX?&++jV(zR|smY$Y zLsb8NVs+HPIDsc?h(a-{4wLbv649%xQ!ZZ9-Gg>=Y&MoP&%L0H%Y|oWCOe`k0Uop5 z8(Zm~GG({w_9tlO_dEYv7>6y$aaC$Y#~pBgG}%3&a?^ii&vU?>%F8wn{nOj*_Rf!nP(L0-OuHyVTjWxe z2ra|;2)uoAZEfE9?t2s$5OX2Qii=P$=Fwig1obf~^&?Rq%i~PH@oxX4c!G=%nxnZC z&xxpANgDqUO(-ZV+C^Njo79qBq<4}J#S9evJIQ}a76S!4D7ceCcxCP+`%yF3Bs>R^ zh36{r(;3u*meT-=&`4TMqbWv5(V09MU-O)qcnTj!WJ*)H46B#YG@ee%a5lr?jBf+A z58w6{6z-y|Lo-(RIE92Wyt8*wHeTKKQnpmPwNUq+)D0zH3-y>&)Ji!_n<eaA!ki@du@=aw+nlDHcHHMP%a>=4U;R2 z=i*ic_pMs{4=M~UnKA+@j(Kw7Q`xx9!{gxE$qW+I~is3gO&NFP=4v{-G z^8&7P2lx}161L7RC~Tntg^=CARvM&e2MsQ4r97q<8qz{TM?V0XQ>8EdGVyn;`!|2} zAb*SHub_p7HPfI1qXWaYh`zMY5%L((3_Zfv+P`bN%d@A$ctR51}S47o#M~7pwRNG4R_7&xC%aBnA!^! zPw*CUm@UAXa~If$VAF6I8TQjIxD_w@_T(qvwA-K_#%` zF-wX-5fZ9hbmUGNyMxB%jBlZ%@NEKY{OA@s1|P>hPRF)VDbsBPR+^|_b7RoU z_z9FNRQExgz;!6q|!o_Fr8KO1Wc(F%J7uu z!ur9TEydbJ9v6G^xHv@~8N`44(8VXeuW`Lu6GSR<_(HhZOMhv2L=X$j+ST>`d3P_HEbr#}jxdW#joQ>|_r--g8i|pFw}!o~MQM0@en`y%iIthQvweNNs7nsJXf^e{Cps!k}p+OTuVZXOmN92ZbGq%y>+|Y!K zaL`P-@aHtTFdRgog%&l_P*C{prv9MtB`NGAMcc|kqYMC4VQa4mX~%{wC&;ACl$Wye zi?Pwdi@VLa8QW7no+2N8$&bF|hHXMfCwdFM<84^TI|$#;_>14uN!X?( z^Z^{>hg3r!Awd0+&ZCd%Li&U*rBCT<`1CE|{a-P^!XL zHl=Egii)7L5`BNQDXl`uXG*J4%Ag*c$uR^Ilu&giH4sU4jL}y+nU7^5yHU%?mP$yrMA&_+tqfvg=)k;rIMo2 zYoXCkP_4MQIuye}cYs!^S9qKyLYU!bdvn`KkBa3spd9vr%{Yd_tI;g0NhsG98$W^P zdZ}($oQxnV5K)PPl+7WyjZ8o*n~vrzn!?$1Ja>Ns0O(E^au2$ObLeL7N%wFs+QGT> zBKL+H>q8%KU+%?W?!*018pL@#7yv(yOLzz$gH+&n9%hu`B5dG=be)MfLAnNUCXS5{ z(am%YHzKTL!jk6kI%u#>XVYc_{{j@nT%t4<;O1|6J#T=f520_MQcX|^`S1P`mQ&$b zPKAH57iCJ~QZ?2#5o)#(DkW-m1nD*m95CSUbhdbt#b;am1B=gr?n$VB^jni>oXh9A zQLhiC75gaLO&gc&rcFx(%b&fAelTYTodXj&S5eUpI`85gbbbr{aB(yBn=3nVA$Ft) zZs{Vl1m-rAZ|TPae#kkzGOt_5wPqcq)?-21XeW)X;A@>p|MDZ zjzN7QkEKa?AIIZqDpHNf29En-aM^r5{}6LvB$O^dX{sq*Xo7Z`XLe=AyCChOVKjNq(iJYPxA;mC(p8DLq-SH7#G8FBajAdQ z{{&r%JmLwutc5NYVO-$^=Ye5-DcU~pHtORBp1UYZ4D&}Oml4V@MEz$e-g9b zm~)de+s&R^3FO?;Oc^OCpvTA2aHMXNcpA+>g1mss>2zT7^LQ3K!U>3kC(^e_-=KeU+>PhL zlPu=pd(vklMzAJBX(ZSQN9H+?`}l9uXv5o{Y}u^d6-{ftc8f}mN0sv zbcy#B`sw+MuRWjfwHIx__M+|AUbOw%jkbPvK$@R#p=IvKb4(hWwV#H=k@U%((gq}9 zIj#j3!z}(q649$IzNQUxb^3p%oo^Oj8_4U^XUcxqFtRLI)^&WnV_CkXuugg+Vp4@gNnm_uQBevqG+VZZwv}2b+kThqD7O7>ZyOny(JCr#p?gY$DY{aW(&=6k zixPU5(`>5H4`%@RBG5Aw4mlB&mrKbxoG8sKaw4c5wq@S?3|HaIR=R&*zK@cK_<%+q zQ&2qVu9XBFrAU``piegVMQW=s#64$95W^>3rax!Du^;jGd?VK^%Rey8J8#@#dt zpEBBgg7MV2#+)e`W6gg~5@h^nYTKhbDIin22z`eEM64>gyqC11nr4 z(Vp8>9Q~MByFUq){i!(m@lGJy1VXXvS7{t9p&q(_7VNqKcr#7|5rqqQ9iqv4*z*R8 zAjX~vm0rhZ)9w5NdWO%Ty?ieH34!$Qh(gR4a1LL{1NmY;k}rSZ$$Tj+`Z8GZ<$N|@ zfq#Akt-q3QL{!<#SMxo5J#Xh5_!0gwKaSR?`6hmeZ|2wG0p172r@WOv=UZW)xA8Z8 zhhn}{1$mpY`5x7c?^V6HSqX9P zW7FB-d8WZBHdcQy7xT{qI=K(tK#)jC>@eX$P;xy8N(-G_8YS^1+LTs09t5RT#)C*n ze2JgR)R9=#jqpej)dTCAfY^Da3Sf1kDd^0)$UmTF-0GzVL!m>n`Bq4) z8;$eQgBc!9nURtdoAjU?STFg`9I@WUce;H48zcGgjue=K%u-#<2n6s8I)h*K;Mo)!z}pZ8GbkUyW@3kic(f7Qabz z`7K(^ZzD*)2gmR`BLN4*_cy@a4+)Gn637sqJqax5`}lq%f#nGH4;Tq7=LgO4os>it zzJz})dhe$mki{5R7Ps+sR~G+p)nQqREL?Ti<4R&$QW8mJDD;$}k5L9h!spV-;q^3f z_z-gV2%7Lmtngz1olj^we@Z9tpQw`m3~l&~mcmsfG+`2jjT|xn{l|Kmu*{RgGEWZ6 zJUJ}uqzSV6(eCPh$`3iKxBdz_11$L7))Rkxu;ZV}X6O2#4Uz;uUx)?0P-x=o4un%_ zYM~e1BWdiWb0jT?iu3VTg+Fmc_v7y={K@x^K_V%mNn%;jh zO}!IMZ=>lQ)1(tk?=FD>yeDn+rCIJCdbfpsyP5hVDRhFuo9=fQ==Y}S$plC5qv?Yb zj{bo9hlb?l1j$Ee`eO>o$Ebf|NE#DOpQ7ncrYYhyxqI^GLW4WD&M3)ME4`=5 z-2Vcg1NCg7zb5AV3Z8!OLY8li+a+#f!IO+xR)ms?xwGn?4W-# z7ww{dwbIv$3U|=IivTA7(@Nhc+M+fHrgX3)z{!6dgE5JVF_?cy$r#MHrBTYf(YLB>Ou6L^{C(h~GQMCEGYi0S3?d8^w=nyvi{$7flokW_WaVMta0tV)7BMX<7C;qBTz%Qi z97{@&efRP_M}nNuPJ--Dksze(jK-F8xa0|svpwPU5#b3{7x0H|GRet)5vgmIrNc&WX4gflKQ(2q?_?V}<^LUlRGgMEWrE+<( z>dmWEA3jrsd6VkLSE&Ac72xHqY7n4j9zUdp@E$dkKTyN?3pJb%sFA9N%2#=6lp3cB z)C^Uq>Qs?huZq>RYP5gap-R-7YK;238mE;SuY0MZ^igVpE>lPAIqDc)sV3?bYLaeJ zll3KPir%iK>fNeL|5;7bU#jW89%_bfoGSOtP{;e0s0v?=I>C39I?=aT&Gy}+=J*~` zmA+QB$oHZ;+4l>z#P^Ci)%U7e=6g$>X5!F(3adA<^A95qWvPE>sK~@2TkW7@0FNJ~ zOtqCxav-l-Pj4GQ98lNN)4T&cg1Q$SYk+e|)zJt17>^@MEun8r55I35_T+KUW%~vq z^_R9RpByd8$hO``6{amye~EpTkwd;3cf3sfXTWY5FQ{Lqcbr3Vy`A=(c`bbt=Q?vx zrf(1L1gOlAXqSJ8ohTW|XiB@#Lz$AmbWPg#8-9XMaWTZRG<-kQXFv6}xOE?$l#?@b zXiiSgA@bTsr|qYu2(WE5&Bf81oa1z$=vK5_{A8jDSo(V!V)1SizokM%Xw+QQw9I}kMQ{FI>B^98zNGtJa?(Ie~z9qu*kG-qu9Vys%=#1RtLJ5jNf}sF^L3A zQjuUmIHM>@Oa~ITlYJnap3QB)x=3?#+YOI;neqqOWEIJuuh===`_=gJ;kL7Yr6sJwI#Cp+7akdoS926s9v>-Ai-3 zjo#-vci&0f3p;lB9mTqr@qGTdYgZ+p7D${?(8B#X{v70#l%IoSIFp#pzxcm&e(C?x z`Q`t|&al~6_?K?yG3EA2Ii@ws=P7VJL zP)h>@3IG5A2mq{ZowEfqDFY6yZk;__S-A=78~_00L6boWBa?872YRfxwD* z-?yuH-|McQ_pvGgwt`{#D(x`~3dxI{{#nc*+hh<0u;* zjz`!)p$D}_b89pYjDJz^NIQKT#gC)8yEGNcaI6hp#bdZN&W_`8f*s3oB9lzwzR7l| z#0n;!VuztPl?SHrqmm!f`EjfrXW(&6QpKM$?U0Yv3LekzS=?R2k6J6vw&NU}tKd94 z48S_3oo^$W6H@U+oXU@r6g-)G7VuK1aLdV4omQ-8W({_1M1PGRP5fxK;zFizv7C#n zxR`0&3bxqcD6F%hhu>a)`1o-uFX*>n0D~+?s}+}6aj6wgv*I!yUv9R=koWx{61x zR`41-oItxK6@OpLtgf@;^>~AVtL$)!u8bQMTy2L2rnw&1FwISNycus%@Kzh%hPT^c zA+F`_JNR=Qf8NQTck$%A?YJKA;nuzUxQ|Kh=f?&ndB6_m;Df375I&rW8?lW^Hd%2q zPuikj$PQ=VRF`%=rzT`lc2C&hNLZ z__h^yGs}1E_%6Q3rg@)RA1L^t9qz(91wXRGdVYUwhkN<`i5>3Ob@-_jKVuDk&W|q? z{D&Pj;(wP4{?iVd*g^iK;8%7C@udH;!#1qrg}%1qH~1|p=sUL6bqaoOhn-CGgB^D9 z`$s!Gu3PLUJN``GfxqCt*-wAv$8YT1zuRyR?zQ1Q{DVLD^W%UbKoO`2fdB|@1Oo%(XO#_|gOEJQ+eq^>X1F|BRclMV=C5_uyQwF8 zhJUxg>7L{CyZGDaOb#w|(QXTL);_m$8Hw(6(IPFrRuZ>b_8d;~CwrVNl1qYE2q}J+ z1fkzSB}5odc(Ap27Z!b(mTmC*mLc>n9C~mOtvnC+17nbUS?(b- zevGVB6LdB#KF;Yg^x_~@HMF{&L9N=a(SJ(y&R}^%&_x?VND8=G$S)!k-as&p#O`ct zG(RRJ?6}6&!ZT^Oii}m(h2KI`~0(o>rK-c}z%pD0Nhq&iA;txV-{hJ;3~N%J&neqKcJ zXiKZ4k!-ZBu=*UG@!;v2rjQ$VI&)QeR{A$SE5DGhCBfo>K zeoqP0>46)NGjcm5AjVD7cfT-p94U?>J4JwmlJR1#afT}pRK?L^G=J}}R25~I9k(^| z*Z;4*sbZ`+MiJvwTqwq?VuC1F#Y8qus*7XY-|8a_QN<*-+hj4G(oB?~!-p66HD?25 zivq%m0?PJ5O%)Yl3WZC2eK4`r<(6=c+d{<$wJBE;pN54*=GQ!=m#JbJKPpu* zT^y^58StYbj#EXIn188?YH@r7m<&!bnUxk0+!k;?(_1prl~V32VC;}wXAx2qGji^<`Y_b;?Q<{rS2&$MP=Bi>Ii%=&9sbao3K@lga;w0AB$zlQH39&9{G85+! zadOpDrRVkV7pbaY@vs7qx4_lXqBXimUnHwXYjOou6qux90e?~$og$nn=A#v1P%JCb zB$u3tx~dlqQc;kt!Ao zcNjAwOh^aiJnEQpLsM5=wolxD<<391LF(^2X@O2sTq?mx*49kQtX!RdKmksfsH& zD0*~~$rHlG=Wms3hBJ3Sg)hZ1s<={IrHZRLaPqn;EPqsSjhLc}YsGb{xLzzF>L~U) zPhN!!!U4RG8yKipNk`>P=livQ*S&;^4NoF3a!UMiX{7QS8NpVw-oF$VP+siVvf+Y3 zH|!d5lPYfJiMNQp2m?FPYk0R21>Y)eQ^oCKC26^11sSCX3AL7Yd>R?_8?u_kOV0nxB0NxsE9UIY$8vBAK=GCm5^`- zzwU`6y0{7W=GL5^R-eA(FX5kx*sO>xstAd#D*PSZQsHfSh;3quBHC54L;Ot7az8lDzARYv4#lJQ=oB=SOAAN3qp09gPx>OmrSkJgrcE zOn;ET)8uNVy0XQ2+GPC%$W1P_0tY{lkCG+0)$MJr;XKdhY`s{ejF;8q^3xGnKXyw9 zmuK&|qZQ8|FtBE+E7-7*&e#Kaxq*?bOY7=}6esX0u~`e&k{P3F?}%x6pe(HV*lwy_ zXeKkNUFPF6R}|yCFsBZdEel6)haxFne}ALP!{=|R#YwtkpEE#O%c7I+KR5J4AOTe|9Hk3q^RCUnGRoZFBZ9|85 z9rMGn7qKZ1Nc&YRak^V|Ke1|hTa!)@CwT%>KEXA#`l;>+UqECwP!&kWIkR}@BY#!G zyu{lUJEbEnC{LA?I1*-5cH}?Fey^9Pdvn>cuBeznM&wSW*44u0TA#u$ zZeFC%hYPLP>jJ|l>9IXz9x@ECU)kZY&}Qaa$_UZgp5%4AH7S^W_0?ch5F7@2;Aa%KFeDLS zJGr7@AF7f*WOKUR)qJ_lcRUg%FI*M9 z!lZ=`KiG9=Wk*-DS(7U!%_yH$v7o%RwtUjD6|-vi>b(oZHm|X&%}d|vL%V2=zi;a5 z;x*OOy1X+C3psJdOhZO10e_iMoj3~PbCn#>k)+uq>zSC-bUO0$j{3$%o6J_aP- zn#KD9=ahhERB}BNq%v>Sl;$u|2YJ>|b9|oF>8*jqE~9`Q*!gL0pnMv+II7(%!PX0E zYAdQ2RL`O~9X#Vu7?Nalg@;C&kk=0K&6=@sS!0wleY;vmQs?OVsei1R8tuJoa)U+V zUnJ_#t|X!C?AOTk8xB!$_7YD2RCH415sSs)8+mf-c$bedRd!_Gk$_;F3ZH>{$GBDe zRkuo%la0$}E~sLXOO3`PX)zt7QtpihrlJfku8mPF#^!927Byfk!QF*)Al zj4a+=-Z;sEuiVpE8$R^2GJHPwvWliAN?asQ@6KXzW=$>sY7sGJUSX%UWPwr|=*;Ek z8nv-eW>jN`jfYfQk~5~##K=z)47`!A^v0MQh)BAa9OZevI)8Chxf3JhajDxQp_-Bd zv0!I*BNQK6whcRuQJwQIS&1hEt7aZ%4*|#-i6r(LClM`t-c2r?FMk#=vr`}{uf&QK zF!M@WKj~PO;o+hnBNG1dS8&>ZoTf*GUI*!}9WJ;>bYAdv{Bt=Qfq^a%E-NCb-N?Io zf=G?|vQ^J0uYX%Gqr7S|IbnQB5JhPkFfuyd%O`?l<26mP$c<;gqh)%^)Ct2WGmeBc zt`bp|H#o)kJvBX+4*G!tF9X6WkOXV^rwahE^M!+azb)UnG`<_&qv!kdwSXv-xVNZy z*jB)zHV|7NiC)QDAY~&B2>5`W*^o@nxnO~LkOp=t#YLOJ-VUh(+CVLChctu` zq=z75#D9H6^S+!5kV=0?8-Ek%&qIH$^tUeRkLh>wUr`7$*TZeZEDM3zhah`3^rBWy z2)eBSD=(bOkM8T?G@bfX{k14&(wfdDP132y>aWpVuhhesl&(`N{9+R%Nu4c$e0nyM z2^K;IxX8?II1yUNKfLtM2g~48I12)BAyHlmOMhV{^;`|h;W{`2?u0YpK^olz=fDm) zA0CAZ;BmMZo`y@{Ik*hofy>DmR+8zigzw=R_!+K+U*QJW3#+5dz0WlFKKLK_n)LmR zbiDMvFwfFQv4sDU$Q8d0TM_nseZ7y{26;t0Air)H zjejKZ=vL^n1^Tu@L3Y0o^rx`_bz5Oz2nNw$-_0<%9fly>3P%(f-%0IIC}0=l(=4JM zTBrAu(-m)l9D{1u78o8;=O}VKfSbVzw@|Fy3ccVqQt<6C64sLQtb@sLdJ6n-}; zay=>RJ~N(r!6NvM6u?SZVJc-slu}Xv_kYrqWd5D=FVVw@|E?Y$AU!-tdU%NT_Au#T zBk7@y^stHau$lC*h4c_2J#3{-ZU0a7@B{p)>mm7JTFOp9urq0lg?3$1YTX8ht%ly) zU}OkJ@m>$-z0&R-G~(Ehe=GE8qb+WRly#8iu(rc!B)4=h<(O#7G0J+8NgR(fw0|;& zD0aY6q_Ly3OG8j*4uxQB2#(>Y#l!NG8*`I$Q$jF~rsHcgr47c1V8Uu>h?-tb({qz) zUiL(8rEqH!weqF(#C(ulRP3;Zd*+T&qO4gR#eZua+fX?q z8`6?>9hfdx*Y3eUo9cpjYa0-Ogg z5+=VwQ1dD!tk=*6uVZ(31N*^SI1t{&5%3<4g%7YCKEz7+2y5YE)Zi2Jz-PDwKF2fR zOS}jEh1=mPd<4G6m*E?H4S&AF58!+J7=FR;;orgvzlj{!Bf7(0(I57SN$`iD`d8Fr zvhZMv*nt)q#N;C|izNSv5MQBeVYKjQv$fo8ZHK{nOQe{6wUkMIp_YwSGx|ie$&X?@ z3<}ixH)Rx*t>3815wi6=(Iv^&9%?1a)?RAS3StLknLofH>M6_V{C{jz_%O6sCA2Jr zoc-(!3heKZJ8my5E)YHT!2~SomXki@06~mRfddMSqy8V!0UV%(WBWn&k39hC9ZsOs z2Fd*UyN+JsMOxiTrN--6sz}`Gm55u6=^Kh8&OiSy*rk8&fD_0APYl6H^nEfN9Q1-9 z1PfN}}tYKO%Firc`g z_vp`U(9#YbLDl9H6fSz743S(*2)x_CS4xp{Pp)MRtm7R=10Ad$ z?0EGGef3u6u%sQ9BE{5cNI_F+N;BJ7uop`sOQ>aGeaaDs@_!6u#`Hu*_%TrtzMO+s z;V?EMoa4E8SjXYaq^CzBT2@+^3Q4Gf4bvb4)1e1uKmle!31-81%z;_hjVzQ49*W&_ zu?MWip0F7m@CxR^o0t#pU>}Oj0dN2ZVhxxZH}}y zxR_VwKk1?5xmP8@;jWz`xzgOv=Cg* z8((P1*4&NcV-{6HzZa&-_w~NAy?cGtJG4pN-N(y?A z|FNfLv8q+6+XHvgRAyoBj}n6PgVLg*&q`9Mx1frr!cz75hIwqYR0h!+TUyp@eP>}s zRtK40@B!<})*wy5+=$Tg_NpZwu!*JdhgOw$I9&o}DnhCX=5&QpdHs-@JHaEFQM>50 z_nBY+lY_%kb&eE_R^wMjn|}h+s4k_Dz0#X78^LIT53b5ASn>I5nWf zs9MCRO|3;rWnSRDdMtk#Jw}RBT{8ig7AP2zJ*|q&2&d{8E=i{iI!{>nT$ezOxvfaz zac=@}I~ebh2BCf!Ud9mx`!iP8>#vzEAixi`c^S`ADN#G52{RokQD~jXf5*G|+p;A) zLRxqNdq^G-SFpxp`LQjxBM(`&BWWjv8eMD>qs0?PUqS<4u^r5KgiQPERp^;&p0|OD z!DsBs{FzFd4O~I(nNe!SY5vOrEf5o2cld_xy9^Uy>NjE}f7@2F%#yPGs9eZ0*C0w( zBA#l8XtVpE`F4-hq{O}*7M=!yqM=k5=gd(%YHWVn-E3%cfYL~S9Mx-so?Pfrko*|Y zm?KwsX!yL3fA~mQ{8<|+Mw!}do8$tY^GM^07+$u6%xAS@skKmfz9`YP6Ztr5LvQlq z<04kTSvM)R|I<~P->d7P;oF8LjQyKq;l6+VMcbm_Q;N>xwNC4dFmg;Q(*5Ll{Ma%1 zevFzSv}MaEDH0Z@$*8qxmGhXhPl@JkKZvO#({!0T1>dP>(~rG!TsnQ~a;?Ctk2@O` zpr3id%!7S4;zA@3e8Y{&6k*4$jZ11OCt_#gIu>GY#g`1yO5ULQLrDh~5}yiS?m1LD z8K}ILoszmQ9YYVyAo=lQv-p}0OkKqvRGCGWUmvwJTbE*)$g0d1Czo!B!N!I);U$Tu zwCm;wh8h!U}_)xCi zp3NLR&mtvm6#q#u=V(XJpUzBWST#zPJ_3DM%;vT)EsZCIX?SUUx=GhPotRdD$Znm@~T`A z)T=#QtL(BI&KTLz@I0ZRPCZ)f0rE&=ow~|OT}F$a_CtlOS&i%y?_U_x%H!h>ZEX~< zEh~I|Qc`vI8?u*qrK)eSuA;@OY*8D)BX(Qw^Cf70IkLRugRnNA%_MvC$&cOt62dSQ*T{GGr-Z!q}IV=T&2-csnJsT z?hOchB4MQnqM2E5fR)qX<#MG!XNY3A2p2ai4$IW&1k`KIPcXC$uboa!bHuFUg2!&i z<1}<~n)vKUi%P1+pFa>jr1-J`G*juWGiKiX|ye;#O~`<2GNaS^B6bOMcI%cjL~jP))R>H*osM8htQ^Oh0J@ z1Jpi(iq4n3fn$R{^vlV_i5hy<7Y7i0%$d$8L)p8piq8`y&6%DkL)0j%<~25BW|y9c zZ8W^^;KD6M%&z=!gT&#BiZSBSu$PQjLnEJd=PFoY+A=y=u|>V}DY$l@)~wIz2^l^h zQdytsteCO*l_nrTlzY7XVm%^esciijZx##o_cS%taUYDMFVp12Tho z1`=hScmHtmNifg$*p?Vs;09EuTH_oeumhOAwtH;s9IS62W7_S(3`|ZR-N7B=aug6J z?-562-Z`9khfEf8CRm7(5eR{(N4-Z$MC~tME(m-*yo!i^G(=j#@EbZ__(B?54G|r7 zjD93Svegt>x&sFdG93O-f#+(5C1+CADh%E&4d)-X*1x!gl{~?Bi0(W`?W+Ws)B_TOQ z`q>oTmqRW13IKv+1cyeGQD8 delta 18997 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 diff --git a/Mage.Server/plugins/mage-player-human.jar b/Mage.Server/plugins/mage-player-human.jar index 1cb91fb2ffb640263c6a19aeb4b83549e4240bdd..6050acc5de2c5d09cc9fcd13c2cb771521a1e0d1 100644 GIT binary patch delta 8314 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 delta 8410 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 U`ZN4B6ih{B#YU1~{AcHX0p=X=KL7v# diff --git a/Mage.Server/src/main/java/mage/server/game/PlayerFactory.java b/Mage.Server/src/main/java/mage/server/game/PlayerFactory.java index 4242ccec1a..4a2850c4b6 100644 --- a/Mage.Server/src/main/java/mage/server/game/PlayerFactory.java +++ b/Mage.Server/src/main/java/mage/server/game/PlayerFactory.java @@ -57,12 +57,12 @@ public class PlayerFactory { private PlayerFactory() {} - public Player createPlayer(String playerType, String name, Deck deck, RangeOfInfluence range) { + public Player createPlayer(String playerType, String name, RangeOfInfluence range) { Player player; Constructor con; try { - con = playerTypes.get(playerType).getConstructor(new Class[]{String.class, Deck.class, RangeOfInfluence.class}); - player = (Player)con.newInstance(new Object[] {name, deck, range}); + con = playerTypes.get(playerType).getConstructor(new Class[]{String.class, RangeOfInfluence.class}); + player = (Player)con.newInstance(new Object[] {name, range}); } catch (Exception ex) { logger.log(Level.SEVERE, null, ex); return null; diff --git a/Mage.Server/src/main/java/mage/server/game/TableController.java b/Mage.Server/src/main/java/mage/server/game/TableController.java index 579b59c2e6..25b9875e28 100644 --- a/Mage.Server/src/main/java/mage/server/game/TableController.java +++ b/Mage.Server/src/main/java/mage/server/game/TableController.java @@ -96,7 +96,7 @@ public class TableController { public void event(TableEvent event) { switch (event.getEventType()) { case SIDEBOARD: - sideboard(event.getPlayerId()); + sideboard(event.getPlayerId(), event.getDeck()); break; case SUBMIT_DECK: submitDeck(event.getPlayerId(), event.getDeck()); @@ -120,7 +120,7 @@ public class TableController { throw new GameException(name + " has an invalid deck for this format"); } - Player player = createPlayer(name, deck, seat.getPlayerType()); + Player player = createPlayer(name, seat.getPlayerType()); match.addPlayer(player, deck); table.joinTable(player, seat); logger.info("player joined " + player.getId()); @@ -178,8 +178,8 @@ public class TableController { return table.getValidator().validate(deck); } - private Player createPlayer(String name, Deck deck, String playerType) { - Player player = PlayerFactory.getInstance().createPlayer(playerType, name, deck, options.getRange()); + private Player createPlayer(String name, String playerType) { + Player player = PlayerFactory.getInstance().createPlayer(playerType, name, options.getRange()); logger.info("Player created " + player.getId()); return player; } @@ -214,17 +214,16 @@ public class TableController { table.sideboard(); for (MatchPlayer player: match.getPlayers()) { player.setSideboarding(); - player.getPlayer().sideboard(table); + player.getPlayer().sideboard(table, player.getDeck()); } while (!match.isDoneSideboarding()){} } - private void sideboard(UUID playerId) { + private void sideboard(UUID playerId, Deck deck) { SessionManager sessionManager = SessionManager.getInstance(); for (Entry entry: sessionPlayerMap.entrySet()) { if (entry.getValue().equals(playerId)) { - MatchPlayer player = match.getPlayer(entry.getValue()); - sessionManager.getSession(entry.getKey()).sideboard(player.getDeck(), table.getId()); + sessionManager.getSession(entry.getKey()).sideboard(deck, table.getId()); break; } } @@ -244,11 +243,6 @@ public class TableController { } catch (GameException ex) { logger.log(Level.SEVERE, null, ex); } - endMatch(); - } - - public void endMatch() { - match = null; } public void swapSeats(int seatNum1, int seatNum2) { diff --git a/Mage/src/mage/game/Game.java b/Mage/src/mage/game/Game.java index 71fadddf83..20bab07f05 100644 --- a/Mage/src/mage/game/Game.java +++ b/Mage/src/mage/game/Game.java @@ -48,6 +48,7 @@ import mage.abilities.TriggeredAbility; import mage.abilities.effects.ContinuousEffect; import mage.abilities.effects.ContinuousEffects; import mage.cards.Cards; +import mage.cards.decks.Deck; import mage.choices.Choice; import mage.game.combat.Combat; import mage.game.events.GameEvent; @@ -81,7 +82,7 @@ public interface Game extends MageItem, Serializable { public Card getCard(UUID cardId); public Zone getZone(UUID objectId); public void setZone(UUID objectId, Zone zone); - public void addPlayer(Player player) throws GameException; + public void addPlayer(Player player, Deck deck) throws GameException; public Player getPlayer(UUID playerId); public Players getPlayers(); public PlayerList getPlayerList(); diff --git a/Mage/src/mage/game/GameImpl.java b/Mage/src/mage/game/GameImpl.java index f34f000181..12e7ca05eb 100644 --- a/Mage/src/mage/game/GameImpl.java +++ b/Mage/src/mage/game/GameImpl.java @@ -59,6 +59,7 @@ import mage.abilities.effects.ContinuousEffects; import mage.abilities.keyword.LeylineAbility; import mage.cards.Card; import mage.cards.Cards; +import mage.cards.decks.Deck; import mage.choices.Choice; import mage.filter.Filter; import mage.filter.Filter.ComparisonScope; @@ -110,7 +111,6 @@ public abstract class GameImpl> implements Game, Serializa protected Map gameCards = new HashMap(); protected GameState state; protected UUID startingPlayerId; -// protected UUID choosingPlayerId; protected UUID winnerId; protected transient GameStates gameStates = new GameStates(); @@ -131,7 +131,6 @@ public abstract class GameImpl> implements Game, Serializa this.id = game.id; this.ready = game.ready; this.startingPlayerId = game.startingPlayerId; -// this.choosingPlayerId = game.choosingPlayerId; this.winnerId = game.winnerId; this.range = game.range; this.attackOption = game.attackOption; @@ -161,6 +160,7 @@ public abstract class GameImpl> implements Game, Serializa for (Card card: cards) { card.setOwnerId(ownerId); gameCards.put(card.getId(), card); + state.setZone(card.getId(), Zone.OUTSIDE); for (Watcher watcher: card.getWatchers()) { watcher.setControllerId(ownerId); state.getWatchers().add(watcher); @@ -174,7 +174,8 @@ public abstract class GameImpl> implements Game, Serializa } @Override - public void addPlayer(Player player) throws GameException { + public void addPlayer(Player player, Deck deck) throws GameException { + player.useDeck(deck, this); state.addPlayer(player); } diff --git a/Mage/src/mage/game/Table.java b/Mage/src/mage/game/Table.java index 0cfe414008..302060bece 100644 --- a/Mage/src/mage/game/Table.java +++ b/Mage/src/mage/game/Table.java @@ -147,8 +147,8 @@ public class Table implements Serializable { return this.name; } - public void fireSideboardEvent(UUID playerId) { - tableEventSource.fireTableEvent(EventType.SIDEBOARD, playerId, null); + public void fireSideboardEvent(UUID playerId, Deck deck) { + tableEventSource.fireTableEvent(EventType.SIDEBOARD, playerId, deck); } public void fireSubmitDeckEvent(UUID playerId, Deck deck) { diff --git a/Mage/src/mage/game/match/MatchImpl.java b/Mage/src/mage/game/match/MatchImpl.java index 2ce1488afb..3d780f0c39 100644 --- a/Mage/src/mage/game/match/MatchImpl.java +++ b/Mage/src/mage/game/match/MatchImpl.java @@ -103,9 +103,9 @@ public abstract class MatchImpl implements Match { protected void initGame(Game game) throws GameException { for (MatchPlayer matchPlayer: this.players) { - game.addPlayer(matchPlayer.getPlayer()); game.loadCards(matchPlayer.getDeck().getCards(), matchPlayer.getPlayer().getId()); game.loadCards(matchPlayer.getDeck().getSideboard(), matchPlayer.getPlayer().getId()); + game.addPlayer(matchPlayer.getPlayer(), matchPlayer.getDeck()); } } diff --git a/Mage/src/mage/players/Library.java b/Mage/src/mage/players/Library.java index d0c92ca2b8..09d653827a 100644 --- a/Mage/src/mage/players/Library.java +++ b/Mage/src/mage/players/Library.java @@ -94,7 +94,8 @@ public class Library implements Serializable { * @see Card */ public Card removeFromTop(Game game) { - Card card = game.getCard(library.pollFirst()); + UUID cardId = library.pollFirst(); + Card card = game.getCard(cardId); if (card == null) { emptyDraw = true; } diff --git a/Mage/src/mage/players/Player.java b/Mage/src/mage/players/Player.java index 16bc4ecdf3..1423bc9c54 100644 --- a/Mage/src/mage/players/Player.java +++ b/Mage/src/mage/players/Player.java @@ -90,6 +90,7 @@ public interface Player extends MageItem, Copyable { public Set getInRange(); public void init(Game game); + public void useDeck(Deck deck, Game game); public void reset(); public void shuffleLibrary(Game game); public int drawCards(int num, Game game); @@ -146,7 +147,7 @@ public interface Player extends MageItem, Copyable { public abstract void selectBlockers(Game game); public abstract void assignDamage(int damage, List targets, UUID sourceId, Game game); public abstract int getAmount(int min, int max, String message, Game game); - public abstract void sideboard(Table table); + public abstract void sideboard(Table table, Deck deck); public void declareAttacker(UUID attackerId, UUID defenderId, Game game); public void declareBlocker(UUID blockerId, UUID attackerId, Game game); diff --git a/Mage/src/mage/players/PlayerImpl.java b/Mage/src/mage/players/PlayerImpl.java index bd381ef8bf..91d268ce61 100644 --- a/Mage/src/mage/players/PlayerImpl.java +++ b/Mage/src/mage/players/PlayerImpl.java @@ -98,16 +98,16 @@ public abstract class PlayerImpl> implements Player, Ser protected boolean left; protected RangeOfInfluence range; protected Set inRange = new HashSet(); - protected Deck deck; +// protected Deck deck; @Override public abstract T copy(); - public PlayerImpl(String name, Deck deck, RangeOfInfluence range) { + public PlayerImpl(String name, RangeOfInfluence range) { this(UUID.randomUUID()); this.name = name; this.range = range; - this.deck = deck; +// this.deck = deck; hand = new CardsImpl(Zone.HAND); graveyard = new CardsImpl(Zone.GRAVEYARD); abilities = new AbilitiesImpl(); @@ -146,10 +146,15 @@ public abstract class PlayerImpl> implements Player, Ser } } + @Override + public void useDeck(Deck deck, Game game) { + library.clear(); + library.addAll(deck.getCards(), game); + } + @Override public void init(Game game) { this.abort = false; - library.addAll(deck.getCards(), game); this.hand.clear(); this.graveyard.clear(); this.abilities.clear();