From a1f1ed44c06be7aa536a11b036444db0d3b51680 Mon Sep 17 00:00:00 2001 From: BetaSteward Date: Fri, 4 Nov 2011 22:57:50 -0400 Subject: [PATCH] adjustment to GameState.getValue --- .../src/mage/player/ai/ComputerPlayer6.java | 4 ++-- .../src/mage/player/ai/ComputerPlayer2.java | 4 ++-- Mage.Server/plugins/mage-player-ai-ma.jar | Bin 43684 -> 43700 bytes Mage.Server/plugins/mage-player-aiminimax.jar | Bin 39761 -> 39779 bytes Mage/src/mage/game/GameState.java | 10 +++++++--- 5 files changed, 11 insertions(+), 7 deletions(-) diff --git a/Mage.Server.Plugins/Mage.Player.AI.MA/src/mage/player/ai/ComputerPlayer6.java b/Mage.Server.Plugins/Mage.Player.AI.MA/src/mage/player/ai/ComputerPlayer6.java index ec0217fede2..7b1a38e9e12 100644 --- a/Mage.Server.Plugins/Mage.Player.AI.MA/src/mage/player/ai/ComputerPlayer6.java +++ b/Mage.Server.Plugins/Mage.Player.AI.MA/src/mage/player/ai/ComputerPlayer6.java @@ -233,7 +233,7 @@ public class ComputerPlayer6 extends ComputerPlayer implements root = root.children.get(0); } logger.info("simlating -- game value:" + game.getState().getValue() + " test value:" + test.gameValue); - if (root.playerId.equals(playerId) && root.abilities != null && game.getState().getValue() == test.gameValue) { + if (root.playerId.equals(playerId) && root.abilities != null && game.getState().getValue().hashCode() == test.gameValue) { /* // Try to fix horizon effect @@ -442,7 +442,7 @@ public class ComputerPlayer6 extends ComputerPlayer implements logger.info("interrupted"); return GameStateEvaluator2.evaluate(playerId, game); } - node.setGameValue(game.getState().getValue()); + node.setGameValue(game.getState().getValue().hashCode()); SimulatedPlayer2 currentPlayer = (SimulatedPlayer2) game.getPlayer(game.getPlayerList().get()); //logger.info("simulating -- player " + currentPlayer.getName()); SimulationNode2 bestNode = null; 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 4a6205e574f..bf1beceb819 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 @@ -211,7 +211,7 @@ public class ComputerPlayer2 extends ComputerPlayer implements root = root.children.get(0); } logger.debug("simlating -- game value:" + game.getState().getValue() + " test value:" + test.gameValue); - if (root.playerId.equals(playerId) && root.abilities != null && game.getState().getValue() == test.gameValue) { + if (root.playerId.equals(playerId) && root.abilities != null && game.getState().getValue().hashCode() == test.gameValue) { logger.debug("simulating -- continuing previous action chain"); actions = new LinkedList(root.abilities); combat = root.combat; @@ -412,7 +412,7 @@ public class ComputerPlayer2 extends ComputerPlayer implements logger.debug(indent(node.depth) + "interrupted"); return GameStateEvaluator.evaluate(playerId, game); } - node.setGameValue(game.getState().getValue()); + node.setGameValue(game.getState().getValue().hashCode()); SimulatedPlayer currentPlayer = (SimulatedPlayer) game.getPlayer(game.getPlayerList().get()); boolean isSimulatedPlayer = currentPlayer.getId().equals(playerId); logger.debug(indent(node.depth) + "simulating priority -- player " + currentPlayer.getName()); diff --git a/Mage.Server/plugins/mage-player-ai-ma.jar b/Mage.Server/plugins/mage-player-ai-ma.jar index 14bdfcf795c33ad3533dbc6af190e4a63add5355..3f26d5d1b8f030660ea6df727645ceb4e819e9fd 100644 GIT binary patch delta 14013 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 diff --git a/Mage.Server/plugins/mage-player-aiminimax.jar b/Mage.Server/plugins/mage-player-aiminimax.jar index 056a4123475cca97ff36323afb66ba0c5ef5f17f..bceeb93d65a47c53adf9165f09bd10bfdc0bd1b3 100644 GIT binary patch delta 13168 zcmZ9z1CU-%^esBJZQHhOXKdTnm$CVcZCe@Jw)KsZjFnL)FTecnz3;x)Rj1ZEd++YE z`*a`Fu3AeS5XT)5$ZCp^PzYfEwet?k6l5yMv%kQV_77&r{=qfve*nY-XZR0WrNNIN z{t*T!!2ggs7zap{zb;Yt%_Zf1Rxq%B8{nNgHt;qb6~JQQXy)NjF9d6vCcS<$7ua)< z!72s;jsquUR}G_vE{P6TEDvOmc9Z9sQfMLc!HkW)x-?SNYRXIBh35$u8x2JcxG5;` zKi6A$xLlt7vma>1n~UuF=g&dc0War4F0adeuK*_~;(#<52`tjC^3AoG?opzH?nt(o zCGj?d2B6T%A%!a$RFs=;_Q97*DtmWq+la@K2wG;3H-pMdJe93RjT@C4XP;)3iBs>! zJ1#vteqql5AAcS5RX-b}HiyWZ4l*yvI>7{vVZmfi3n!f~a|J7%|3C_!T^(aG${S2* z#h)W8%wjzIZr+c2FC8PxboeXgLw7Ps`opi86aW)VP2z@u>dC>&`V_6%iSZa?Wu79d z#a5$`1b5dH`>ypal>qm^R(WsHg*qOqZ?t+RIIO0gRCWH#?t`CZft+W$)xf}@i{Mu@ zOp>iHIuI;1;L4%h0eoR_N(QnB>u;x=Vh& zI%d?}nal2cJCa>81zS5-`1^?Uh@`>!1h7mq(3xq6$9jF-@g8&pen;lBKWia+f^P8A zw?>(RZ=Fjjg0mxB5@AMqmO=dCJ4#D}o#gi2t>8e#NT@iDHpmqcap~!ZzR*`+XoRt8 zhP42D!Efy02>SE3M7DPn$Z{W@>2((?+dEy~*d_K`HTXMbV;ryNU4?A#7~<~^SwL@T zoR9F4a6{h>Iw{+r$?F}tsK|Zv06RKqz~5`#(J#E;kldjrz06X6en&417{wLJW)(hS zOnS)?1&nb1#?9NmRZu|J<=B6Osa^pXJW#oKDZ z^K0`MJ)nyt{d^$l{rVT2ew}uSEFe`aA^jp{n6g~few69^y&`XY=4v(Y@pfbem6Y}8 zfShpo0V{HL@r=sH^(?cIuiZ6BgC^ZF!^GPPY0oqJD$2#mr|^ZOTsAnJ`R_h2M&GweY2jcpL? z5h$B7Jz4t7ZkTDA`*wehE;7q4O8OHUXjRQ3>wikeza0g6f>*HOW=K5qg-6w0h&h32 zh1!5luOU2VHYcxYMqY%70zk{@Q|X#nP2wknIHfNmm|#%xU;!h!a5BL(?g`nN`d8x2g24lx)Wr2Msu+ZU8pJ_qG@Yc` z$vkP4`Mo8Sx-|7N6Y145z3zF6KtAKrV=6<5g_b?DT||$TvOE4q3xH$_?JGMq2K?Bx zeb}8ZUE*Owg0@bSIb4X{lCGD0lZdW5CPVRfsS0y;g-C+b;*ZiL{c!OW732oE3@)B< z2StXGl-O}yCM-KTdK2s#TgT|}vv709VQliyU#rkM%5ZDEt7L~*tpb$#QzLF}&dPi( zL_>td6)mlbk3vGhVZNjdDWGr;i-37KM8e&S=|HyAxH_jv!sDkk@4z z3R6;AIjuqw52g&Z5m}~2@r-M9IK_T#$OygO0LRf(n{l`%4B%Ca(OO@o)CV`&)G1I& zG0nMRzC`zQVe?$oh}?iOrVt8B^R&q&~phxQzBo!t{PKTo-EKJOxuEm&yQ{_#*cSf6>shyw&>eW<>1uA zt14hc9xo+VRsa zNg|hhsr~LH|2vXQzC&+V*-YwUD^s7g))J%v^E^u_%cVSRlAs=AwLRjhG7!#6iCPh(5_cbYT0(Mn;VA7QoKC33|X&ZYq#tin@Re=3oT7q$6EA^;6R(K;MiVrvcZB~sD#Li6e zu!6mLM?HG;ZRpu&TR5U{4;dW*0anxY^8@_9N)=NE^=NpS(75!Qn#KQ z&t%@3+9@+8;Zpew18#`|l`!;{=XAen&6?=(DVepU z4Ge=qyteq99c5AY^~jh?;$=;npfk10Lpd1+orOi|KgfQw9-n#R&lTlZpclyy2S6q7 zce=CNyX8MV)+9%Zc6#%*v&}HWFW%}hHL{}7a~i=cn}a0dNbrVh&9)Xn2It!}Dg~nl zG1UFjYS?}Rt(mM?)ik%=$qIBCYcfur-g3gVGnvP)H>l9#W6C) zR(&iwn)-5nWPUxqRT)Hwd~sT-P=Gq0P^gGT5iH8jSWv@Ib zXpvb1-XQByb56J*XNB*%ozl7~+_O45V$z#-b7sh~XU%~$9<#!NCt_N!G#1_-rh2V$_L~~fT|$?*c_gk_UE638 zCH|sbtHB-q3QH2OI<%b3PANz>%PWij8e@i{(OvE-7%I=>nl7|AXkW+G6nWZU(2bN+ zbn6DGDvglSO#?PQWFX!Ii7qz{ebie>(@`tnvDD7oSl%5z1qDd8Y^GPK#G!zn4UAt1I=&C+`E=ZSu5 zwAL2Efm|2D&uDb69!&$g2J*&C-rHjt$p+w0WItfY?At+Zy&EUQdOn8^; zyht@+?mZfpjZl1&gnCpc*vrU3sE(pQ&6gzi;HclQfVUAb&|u>^-Dc zo4~x1UywDVjWZ@lhJcVZ1U>C=`I9q!L6*o~*hbD_gciK>Z2I5HVvsBAdcYWLi zWZBh6p5?UTuCcBm?6hBBqTI6`q17a!c~W#I15Se?dkdj0(*p;U@KR+MsY|hAw%ZNg z@JgnH>3B7fBuDhiuyM~@+@{KRTiLbjC!{UxMsTID@md6&y<3Frj#$qP*nF6gG(6|`Uqrk?u?-+L&#m} zOS|byxgmlbjto`a{N%6e?SSFf1By=gD(j=mMSDxQNYmH&Mn39jf$Y2iT;CU~;%>Sxt{c?VfXcTNW+1Po{4SYmq z6(0yIi%bh7-h@HHn-+LrH41i^1kBtZAsulTeNH4F%#eD%mXZTfMO%Y^O9<#&yC5_t zQbbin0n$W(MoJk?yD;-05BTBaf$0O!uASt76XTY3*!is(FinQz_F}a@@?TTAQ}701 z=-WK2$ReYj`Am|-uBXdcOL!Lhs$8_~QJ5!qM=nfQ12fu^kR4&4CrJb?dsiFU#dL-x zMHL*G=97l0JuvqfVcQa;rCz<FGflnA^5$~`?QzYwy_KDu{Q}I2Y@4VQ zfYefX&IFpU^w;$!hHW_|7cNQp88l8a$bm1 zeT8p6RQOaf^R$=2M$GP-@^r6b=;LS$tRLj@BL>Uq^e_LKbx^-s?=n4cSNy|u6cEl9 z@JqFvT}z!XJ|Zt|E?huJI4vKTEe5Ial_t{S4#uMnUi{NK^hr_Cg+q#A=`>|J`^%J6 zWhy75J?hCVD{|5fSa!6APP9x5aR1pvz|_Zy4$rPFqc1sJ@_I2Asb06hCJLH<*XF4i z=6g1ScuHhZ#CN#*(Zxtx$sHs-eSmm{XoLH>JIjx4Hc3GR!5rj4S4lw`LNnV5jW3LA zG6dUnPHn{rW(Gj6IiBpMV&cjK?l!mSQ&Ktup0+!zNjs};C`rbRM43q{#(F8SZ0!ti z$=oVr?lyU$56fVsr3!-WyKOGX+=lOwJYndwmQbzR6iqFD60Q)0VexWpLx7fzX^h$R zGgmA}UNt4zdGU=if^8uu2V5n%SU(5*Ln*qKE(j23HDh5Dr zDU8{_KRr%1TOHXD>>|~aQi1LgpMvmiq=cF|X0qEb)Xeh!Tr%h|F7J~wlL*4h0aDSZn^+*E~AuP5pk%+{Bf2?x93fh>JQ_&uLZI zUdHKbQm5K&)H=G^-5zb1d7$6OQf;w}u^L(HD?Xf3Q{~i%ku#Y0g~MR}wWs>FAXyKk zn)7#?!IXThgyKzU9n-4m9u@wdgM#Gp6$BGL5ne2ptOk|7w-bOe-(k+?9kYB`i!yyr z(tJnJ26_kN1-pqlT>d&p0+Qmd8z2FkNQeE^rRz>8&0I7gJ5p5H5d&))22(=lZCx7PyCDKXmN zIZZg`65|GihiyPg=AFTYQ}3Nrm#T4;b%x(fP0=mwxDOWtqw*6QFXxf`hJ?U24hXZb zA2!l;Ju$t}h452(M+Rfdc} z{@$7D`8w!*aaCmlU0c^?!`}iq;|3R18|YWr&#ofDbwPHvMLuUWZ zet_bAqX%t6hs`zFyxQO$K5<@Ds<7~wGoi7`Y$V8B*#dk952PU{%yd6IwNPgFvDDg4 z^{%a8(ghgIT&ub<@NXCqyTILvD^uach4fz0wVCfp6R+?;KC|V9-970 z%M6dMz7zQ3MJkcaZ}bGGlhd)Vk7P?qy$yR+trv>D6m=;a^9kFhUUZ$+yz~VhI?3hv zGCPxp!^-tp^x=GHos znV2i+W4Lv9+B%i?B%l_X)~1-=ozEdATwlgmy<5A7r+7ZgT-ffpe(BzS97G3acNpOp z1>?7fMn1Rf&ktz7Uk`>QkQMjgKIgO=FSBfDrqicm_){o1CyGXGsc%7!5g#i_6$n7@ z@lp7RnJJG{;#=XRNj2|-xt&x3~Zpgfc&EL*(;6rM0VNlTQunxxd9h*0Z~OvHI$|E>59QK(*o&EkVnjW84jm%l0l z9n&_9F4?zGx?5*xy(Y-Eh`%3&cI;iP)#{5agng+co#f-1EricdBHq6E(7EJhYysga z7!%0_h}$Jj1ZTJq(wZVfElHQE5OK7~Vl`CCLoPlPb2juN-;7Wl%fl_-#J8P3`M~oC z-SKkK!&fq`?+`h$T9}=SIfE`*=Pou_Sk7Vde~^Di7z{387Wrh>FGc{2vwMm#bvSd$ z9T+Wf9Km_lcIOtoz|;G*o;$>N!3`hO=WNz}mo=2Tu>_VppgV1sMRGiCay(gc9>sDV z(RAg3#?TgK+)AMh(7e3VpYx)A~)0_rqg}|!a>`gydbiHu@6Su$bRL;Z(?_C2mZIWrd=O= zb?}~_Ii{!RRNP>==!~ot)g};%hwgmP4POyDNq!u{q~>{zEX_ z2^&XinV$WI+Ho^F1;10>1ai;j@y@rO3`E3iL*t`3i2ygL-P^W2Us$pnGv02(!8s9P zeTKy-0vAK)*gEm=*TqR0F24q*HiR<0scG#ZJszOXscGy&NG4Bu*_Gz%e|yxkQQ?LU zqzl2!jAGABniT*{*AdUPgS6%aB1yO&;aEr=G8Ey}$VsygH}Q@z2lJEReZ*Ba#X>ir zAP*PRAOIm2AQC)OLOXmOaq3;g5qTEvCi><${7O2)~DMRWP| zG(J$RZZ&!tnciW?rE_e;4v|lH6qR4N7s{-G>G1)Gv-TmFXwDJT(Aq{FgO1>WW=!hk zb+KC_HiUp#t7G%^vy{Fj>S8iGyYt+zZelZA2vJohaBNIPUhI~OEhU0> z6;vR`Jos2iG6uHye(-#&K3N_KxjR z6oD}t5O7zOrrSGTbQK0Kuy1=A;dItgKk~HRQV*bzFR}`|@eA%b%0Y?AnrfLp+=tTkb(=>1k81N-W3rxKy5WXH8D8Uvk}u@haBdUPek5VcpPoabP+wG$ zkY4~0;R{%QMAD()%cx$&{w>bFRB+~(ivZb(epREtuT>Y4F5LM&$;dCqanffD(NAp% zC$j8P{uquSRzkJ0`D%JKX4Q;EdO*_aiiKjFDhawZNPk4F)-JySMefN<=BLN0E@BvJ zdL+L_SI)fYJR@gDu&J}{P_U3xcjRBzJsSW?y$;@Ul#84zV$9pLZUo2z>nf+nZbujG z6P_xCB$k|TXY-D43r4#DPy0V_I|3BvZDpU=73-9U>0Eb(v_0P9HVx2*%xJU&GgxPp zvddygM6z1$JmpdLWwNBOHLB*P3#ILlFY!v>Mde9Fqk?atU$0n;iTWuPKDqrK|0Dw- z-wKEpQBV2+;U0&ye5AoNzaAM4Wyz;-HkEUF3)`N3%mIu-%GdW+SX77@!4e5vno+_R z;xWelZ%u@6>|bFL$B~3kdeo${s;R1CaYSKo4-4ro?=YZuZh2CvQM12q+WV2J=JcPqT|a-Dufe?umwSljf|;Gq!{`E2L0_ z(V3$QhR|+=MCG4fL*;4@jz#6WoImQ{%pZ;?apijshq%1*E!{Ug4DuCK9+Ctc_%7Ee zNGCF2r!@KxYEVO-h!hNt_e+s4{UUSjc)TFWVToYujGyGsPrr!Iccsy6vnKZ6%51cY zY*lFg+JX3-+#`}J1a#8rN3orAMX@84-|Lb?pLhqy4ati#g}@jWwY6+qpgr|~-Cge` zJxa~-wW?Mj!(G%t_3BK{T~7n}BSILHEaBdw-+v{!ZE-flx~02+*%?FJq)eU8Doxg8 zdSV3q${i-X*UjxxXpN(y2Ce+$s^E&+M^kpUtroYR#2Yc5RkJtGEZ2TpzB&iygIFohaxTC^aFQ zetj8|vB!WMfJFMO%#AqV2X!F7;Ne?@;2})nrpqqO&kCogr(>QG<&yztoI&wUw;}7! za(rhaF_XllZilX7i(Pr+d(}39To8}o?)Pi&(EJ@t^*M=HKe!73)_i;wQ%_G=8Y%bC zRXIVxn4p~#qWtKM{vz`AK8mt(vigrBRDfM%fUmBO4=!>oEpiXLmG1B4$hA2$#96Z& ztM={%qE7ghx$$=(0cn}lWHHfqrcTHPs#<@@h!(>?*%G?`rAa?>FxpxtMIaMHS#)JW zdBELWDYBF0)k1*)`q%=9bUy4KcfLP75Ki@04vF$qBzVK1PN7n_yIdjXY3{NmOW09) z4g)vC5f2-EDFQzkL}Vp46NJVeR&@>$wMA@#1C}^KEC%-!kWv)zOqRdG1$U)mskah%21e`{QyYj@ zBCk4lRC5Ez0edJSC*P%Nb4T0L!jd$c1cjPV5_eHhc}C72$B)P-beo=#)RNS5UpUu3 zd?aMV9731@jzm!vH~sBFzd#K%hNdvQ3T&&S_v0qLB!q9d$Gj}GGsoC z`YW&^cD+u~T+Gc?KvT;#B>$$0SLIilRMH5Z zxqJ}_52+ogS_eW)O8zdWjyjYFi`|}|ZXB-0PibEfV~Ok!s~0%q#0Aio7aHnX(j%`U zJj0&=DOH>07b4-V$t!(op$&TB<3MWqZ^$C)Okt|jjENeKMHFEsrAn2103 zkR~@_ODA7^821sa>anQ1F+x@odL14j6J0tm)_Ja$9XIZnRR>6ftIkDkLB>^NAAc)? z6(rsBw9I8nQtNccMBWz!x@A~Rbo7Mwkv4IF*wlNtc6&h(KZ;8Z$d9&AF6lS4u~TTk z5Fa=9@d1y6Ag&_MQ=_sB% zn!t(JZy(?TIq5l;gBuWy9Ni&A;(atzM=mEAV;s=n0JFhLv2Q~^e-^R*Mss1C>X)Jb z90(M?yMU6}3Y%+%3xcOCItFvGW?z|u2dtz$gKg@*DI(`O$WkZZvtfkw1EWFvPJ$xG zL8xZnA?KD3c`a715?TfMDfN5cdo7%i4&bF)tVnp;%jrY%JL#~h+s>2olU;~1);95W zD}`wv7&Bn6emiHW^@rsf?^8}Unr+g6V*6FYW(plu!`vPE0h5Ig4Yajhn0ocO^jn<~6tSY>{QEG9x88i| z5R(pfD!Oq#L(IOs(x`-okO-_k$A!h|?u@wmVUTW=XP`c;(fz2_+hD`5sHVt(avGgO z>lR~!$ziTzZ3G1$b40zSsHxB^H2jz7$#Gd}77-elqvH}dpIGu2sI3CpG21|Wr9m4h z>T8U(m(Z#aTxsEcDuP?9W*8In%){CvfCNhNOSDQ zS_Q#jEcXTcX$^#PNAZ~+7&Z~(H=BW49pU6c?aAMbeGSow8Pe+Z8}19>)g`abU8Sm{ zd;L1h{>``rwW2z_1M19YxH`<~~taK%J+LMDgjUsC~!)IiH?O zbN*AXP?&pz>Za6V(Qu{Vg;d0V#}G9ycYA*YbzoUG3_#WH8kLOz5PtX43WOn5QNNOY zfp@Ftq*nJP5E_yXqoo2|(N%MGa;6v$+p*mj(&%~qQOcq#2{R25=zW1*QHV9r>O~gW zk>dIT{La8D+QP3L5|gupZm6O8*1P&;wCffZVwU75U6Y!y96NW;GNZfZa@i_B+BNyp zmg3M)k(}{hys!aHxLpKJI}}=ka9}u$VuXQm288b0(-7duj|v6gSLQ6FXYIY1?T98i z!Mchrg*GtSh{YHh3vMm54sW>kEUt4jsCERld@?ZZQWvBw3i^enBpo6!r_OXS%Tz=+ z+m777D|Pn72!uBV!pD?-MxT`RXSH}IAiqlQj#!5N5>rA8UM7e1k43tm6&TW8!mo&B zaSfdem!^orOGXBWFG;eS@ucu&WSLgfK;vNgo-z>8Xz?jkkvaX=W-kuK*aFl#?I3(4 zwrOZmTgT5>D=h>iXOCv7-ic;7UebF1d^FA(%|ZgQ?;JYBFWC|$h{a~}I9!V=l(ag{<&K--rreRcI(hgL$r^R9n28ku@E6NT2S(8Dg z;kUnK<~)Rd`6Ym-G5PQ(ac&ThntF0G=lT(4{j%i7Y%lA<*#22You_1C-NOg*7K?#L z6*;KJj%5vqG2{AED$f=vsK1msdMNu5V|^KdpQz2`cGe$0JH~2%t$3^Rp*$B9Q;yvM z;u^TB@XHZudY*Y6*0K)u^X!fCZN~kTZC(tJUiG5UI7k`cZt)g_Yo{zwF@raYxy-S5QY{V5`?o z-syOD$a~QF=&Zncb0?g=$BvZyN=I37Ze)u1R*<`$N7K?Yl#FFJQX(Y2MNCZtm;rTE z(rpj|bxD(-BUCfx#Oqf*HKBZ4x_44ZBgq|P&TFNnNxSygvbUO@(_K{&<%GadP0tt; z+MorvsStB+5^t%l4#1E@t@))zhU~5RHOIfYqG-#q0rHte3moL1rEeQiemon7c0Og` zDd)FiP*y#cWs$U%iT12Wz?u0YY6-}`+#bcD;+KImJu zm&af$e$q+GYbA}?3MjcRtNZq|mX+S0Nd>pWXRI`@DLph$q5;M2XDq+rQ#Qz6v$h8S zUn(C+)DM2H7bsN0Oe#xtmolbnHe#XKk<)C@qQg-PA#m57)@d-Q-ZJt#g~mcC&xwA# zcZ53b-8k;O|LcZXOCb;mn!i912N=^l$2T2531_K`#&6g%d4a_Skv}Q=mgDBB`Ex?K z9u+n)*G76;L-NH^Ti96k|^79|lMcfp zCycFX?IGGrOR(6I#syOnD*H7t)uJGAp3CF!dfRvMA7+y5MW+TJ^Yxe{@U zTc`Le6Q*=tDZuoxXN~P?*BOPma#|`AS`~qdJ}+XtroG7{=h3VgC7DJeG==(9X)Z7^ zRF0we_B!hRvbbB1dp@FxRlHmyCr{2)i7%oKUI;%5vlvtRJ~t@KSn&x6JruALHvMWp zv-pwb#%V42iKMBOYZ45dL^mtKYzumrQ3csWEHIjcCt>BuIv2Hr+`Rm_pF2Vs2Rbz6 zVx^2OuN)f{sIhfD>_XAVG&GOq0TjU4_mYDN-A4kxm~l%n{IO7J+34f+{|m zHChxkBkDHq+K#jzig8kD;-OY4h`iG)+>|qWrkTY2B@xq^R5JZutS0qI8zlLr2 zTj;%b&@i=+&4w3nZdw8y*)o79pV)GtUsrb5{Wb%t+g9DO_Gq!}CIV`f>EC?a@klMc z{yI}+$nIcOT}yVzpa4N)e=t}@b*8Ff-alh0;+Kte_JB?3&PP9M z63{AYR`sNKOLY=$n=SVxPoK8d)-@O^c%~QWpZiZ^Tv}(%fh)NoelZeYjxJK5xKh;zUFmVz3t3=b+it+>u#%1{-vL6h<{w+)Yo&u$9Nddef&OpWUebQbxu3F2{y`XR~aLCY3Q&ePTTisaxAAd}H9tAx{? zHGtFD12>|K>N#=sxx?fOAa?OjRxKFW&?-2M4dQhUCw|wHJv@UKzJc|CEEIfrC$QEZ zEOnab3M?{%YLjSHs`uxF`ZAV(HSK)>(=Ahz>zQjqVTl3kr-uFG;u?1|DgPT*Anu0T z;6n_M_$hlq8BF2#o{jf{7>_ZKI`opTytvmSc3I5jNU9ZmK#ykYrGgV%EcU1&J6}qd zaeQpbs=98rNiasERW4XhDCV$gjL+$f{HN6WN9@}7k|co;*Aa!35n8Hb<6$>Wnl@HYfJ->i_FLeii>y518N?iAe^MqeU%kzF>;BQCR!2aan zY3Pb>8kR_J4FlKItg;Z*?mR}t@agPP(-cLjJ8K<)8{X+j$qZj_+P%BS1;*PjrYAPn zaZEL@imF1l+Yb)(nt8}i)_mAc69LpW6YmN>tEM1t)tSUt&TJ#{06~^OI2hm}vp<}= zv-wUGLdwFfH<=$_grzF=8indftq*uX9Z?!#=AwWkE^0$YCFr{aZKrbK(`A>h~BCJOGj|?03Lj5BlW(r9E$h?#8 z|40+)UAzB>oVj~q|8p5dTR{IKBMG?>kbgxFK(l0qf0&re`5(59CJ#Ws|0SZsn6C!z zz<8iMpc!G94GnBjI2piqv6~EqsBvMI`aQVoB{OAkpAcC%^-we762|8Vgki7k%6xnSpUpunS>A?!vD)m zO7>shrnPyKNGLF{csMXH!vDk~|EraSj2r$9BnIYX{=4zO+P{4x%z(*e^r-*u9R96a zY8D~*GLR^X_uqiv__M$faI2(#$FCOjZ(_Wzg^vk4(468@RKW)uEf S{_Vg8WX~ml(N6o%^Zx)?5d0ee delta 13206 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 { playerList.add(player.getId()); } - public int getValue() { + public String getValue() { StringBuilder sb = new StringBuilder(1024); sb.append(turnNum).append(turn.getPhaseType()).append(turn.getStepType()).append(activePlayerId).append(priorityPlayerId); for (Player player: players.values()) { - sb.append("player").append(player.getLife()).append(player.getHand()).append(player.getLibrary().getCardList()); + sb.append("player").append(player.getLife()).append("hand").append(player.getHand()).append("library").append(player.getLibrary().size()).append("graveyard").append(player.getGraveyard()); } for (UUID permanentId: battlefield.getAllPermanentIds()) { @@ -173,8 +173,12 @@ public class GameState implements Serializable, Copyable { for (StackObject spell: stack) { sb.append("spell").append(spell.getId()); } + + for (ExileZone zone: exile.getExileZones()) { + sb.append("exile").append(zone.getName()).append(zone); + } - return sb.toString().hashCode(); + return sb.toString(); } public Players getPlayers() {