From a60fe86fbb6572b17107d65e61b08541db6dc03c Mon Sep 17 00:00:00 2001 From: magenoxx Date: Wed, 10 Aug 2011 12:28:57 +0400 Subject: [PATCH] Fixed filter for "Target ANOTHER permanent" not working. Now sourceId is passed to match method. Updated sever plugins (game freezes otherwise). --- Mage.Server/plugins/mage-player-ai-ma.jar | Bin 43035 -> 43035 bytes Mage.Server/plugins/mage-player-ai.jar | Bin 51923 -> 51920 bytes Mage.Server/plugins/mage-player-aiminimax.jar | Bin 40167 -> 40167 bytes Mage.Server/plugins/mage-player-human.jar | Bin 13203 -> 13201 bytes .../common/CantTargetControlledEffect.java | 2 +- .../common/PreventAllDamageToEffect.java | 4 ++-- .../common/counter/AddCountersAllEffect.java | 2 +- Mage/src/mage/filter/FilterInPlay.java | 4 +++- Mage/src/mage/filter/FilterObject.java | 13 +++++++++++++ Mage/src/mage/filter/FilterPermanent.java | 10 +++++++++- Mage/src/mage/filter/FilterPlayer.java | 3 ++- .../filter/common/FilterCreatureOrPlayer.java | 8 +++++--- .../common/FilterPermanentOrPlayer.java | 7 ++++--- .../FilterPermanentOrPlayerWithCounter.java | 8 +++++--- Mage/src/mage/game/permanent/Battlefield.java | 12 ++++++------ Mage/src/mage/target/TargetImpl.java | 3 +++ Mage/src/mage/target/TargetPermanent.java | 4 ++-- .../target/common/TargetCreatureOrPlayer.java | 12 ++++++------ .../common/TargetCreatureOrPlayerAmount.java | 10 +++++----- .../common/TargetPermanentOrPlayer.java | 10 +++++----- 20 files changed, 72 insertions(+), 40 deletions(-) diff --git a/Mage.Server/plugins/mage-player-ai-ma.jar b/Mage.Server/plugins/mage-player-ai-ma.jar index 1e83097c7fc7e2acddc040102f97687988f88389..494b6c25f79c305a718e5ab69bdef962e8b9bc5a 100644 GIT binary patch delta 608 zcmbPzfob*yCf)#VW)?065UBRzn8>TbTm_^|W`U`T3SjDsIx|pivK*rpnD%DW1<{+U z8J{xo0ae?x^@a(zGchn|u};1?Q*^SvJ>TYuEVGzEdN=E_J2QhBC0yBtd_ZmX`lfL& zUjkK!!Bq24mRZcPS<>b+6WCaO`@M2t#`)N{EMUg|q=)Qa#^Nj!F0f&@N?x&m8OJM& zA@imWH92Dr!~;|37=w*FJ!c*h2gpeuSTjW@7tVL9 zKgiW=z{7B%TJgWYhdYzFm_=5pKKrEd&U1n@mZbhZcRIpkC%-!5;i&84_OEAt zpqrt-y4| zLR&CBW1$yV{^`O%Fm1UALiaB62g~0F@o*R%it delta 608 zcmbPzfob*yCf)#VW)?065XfJ}G?7<@IS)vg%wh)dE-HYjFX|v_vK*rpnD%DW1<{+U z8J{xo0U7peyvBK@_YeZb~XEm~m|8e6ZByj5!bwOr2v4mN-3U9uo)11Nvvxj!!O}?^eH&>#%|V z!-c;G>Mc&JSrIICLP5lfZQ+DJ2e$6?T5z@Ks>8p1m5*QN&52y`sjHt^`RyFh67OUl z-GyIY+2V!&YhwYuDo?UUzKL#eE)vQ zh8G4eB}D!(26!_vi7>-M-+r>$0%K74PtI9j4|3t;bqfr@^uq<_U|M>i6_}1#XbYxi zEc61?PZtJ)Y0E_rx_6O3n13J2H(m_kw=Q-Ei=ST{45n3=M1kq1B@lhrmO#{LEDZpQ nS3~J@OCjP4%OL8c7fMg=UnUP$vvHX-nEt+O3nDN#FV6q~4aV%1 diff --git a/Mage.Server/plugins/mage-player-ai.jar b/Mage.Server/plugins/mage-player-ai.jar index 25e0686986165e236fc1b406f49ccdfffc9788fe..f181f2319c337b0af50ca71526726d83af473f8c 100644 GIT binary patch delta 15478 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 delta 518 zcmaF9lj-?RCf)#VW)?065Xf7_G?7<@ITuKo%mPyv6~NRNb!MR4WI0AH5WU%(@evc4 zVZgEx!g#{w$P5rwr!q%ZtjKi;U&kS0;EryKf5AbdyOq*LX7?6OX-|dOAjpY@T$4ES>|Pb#&Yww zI&Ter&3NQxA5b6Q&B!Fe3=KRcU*n8foY!U zo?tp+dLWoy1ED9)@CS2)WI5T%zrZzqTX(nKUjRiEI+XL h!&w1f`usHM$^Ns!!9Tfhwli34`|Lf4V5^>!0|2T+$({fJ diff --git a/Mage.Server/plugins/mage-player-human.jar b/Mage.Server/plugins/mage-player-human.jar index 6c73a6b704df2fa8bb0ef04a3dccc0d7d41ed3d9..f01cf42b7f193c1a7860cca167e4cfea6de7045a 100644 GIT binary patch delta 327 zcmbQ7J~5p)z?+$civa|#Cvr{XRbjpcq)cWpgLoGez|U5f!IDvZXovhuW3np{vM`rS|7s+~G7Ukg;;ptt& zRw@q-)=k7~ii-a!+SMC(* z_Aeq(3_rZtV6!F0aS79_vu7$>sr)dz(e09hGw AVE_OC delta 349 zcmbQ3J~^E?z?+$civa|T=dw=ZRbe&)QYN#QLA;9!VCsuHh?*?Ns0*Su`!RYlff=)y zpQ?fxO`6ldB9o1l?6VEUDz6_{2xat716Mq7}4sAZhU JwqGA)6##xwW_ADo diff --git a/Mage/src/mage/abilities/effects/common/CantTargetControlledEffect.java b/Mage/src/mage/abilities/effects/common/CantTargetControlledEffect.java index 08235191ce..eed89572f8 100644 --- a/Mage/src/mage/abilities/effects/common/CantTargetControlledEffect.java +++ b/Mage/src/mage/abilities/effects/common/CantTargetControlledEffect.java @@ -89,7 +89,7 @@ public class CantTargetControlledEffect extends ReplacementEffectImpl { UUID controllerId = source.getControllerId(); List permanents = game.getBattlefield().getAllActivePermanents(); for (Permanent permanent : permanents) { - if (filter.match(permanent, controllerId, game)) { + if (filter.match(permanent, source.getSourceId(), controllerId, game)) { permanent.addCounters(counter.copy()); applied = true; } diff --git a/Mage/src/mage/filter/FilterInPlay.java b/Mage/src/mage/filter/FilterInPlay.java index 5e9a2bfc12..f74b577e31 100644 --- a/Mage/src/mage/filter/FilterInPlay.java +++ b/Mage/src/mage/filter/FilterInPlay.java @@ -29,6 +29,8 @@ package mage.filter; import java.util.UUID; + +import mage.abilities.Ability; import mage.game.Game; /** @@ -37,7 +39,7 @@ import mage.game.Game; */ public interface FilterInPlay extends Filter { - public boolean match(E o, UUID playerId, Game game); + public boolean match(E o, UUID sourceId, UUID playerId, Game game); @Override public FilterInPlay copy(); diff --git a/Mage/src/mage/filter/FilterObject.java b/Mage/src/mage/filter/FilterObject.java index 8275f5244b..9653e9ea81 100644 --- a/Mage/src/mage/filter/FilterObject.java +++ b/Mage/src/mage/filter/FilterObject.java @@ -73,6 +73,11 @@ public class FilterObject> ex protected UUID id; protected boolean notId; + /** + * Indicates that filter shouldn't match the source. + */ + protected boolean another; + @Override public FilterObject copy() { return new FilterObject(this); @@ -125,6 +130,7 @@ public class FilterObject> ex this.toughnessComparison = filter.toughnessComparison; this.id = filter.id; this.notId = filter.notId; + this.another = filter.another; } @Override @@ -323,4 +329,11 @@ public class FilterObject> ex this.notId = notId; } + public boolean isAnother() { + return another; + } + + public void setAnother(boolean another) { + this.another = another; + } } diff --git a/Mage/src/mage/filter/FilterPermanent.java b/Mage/src/mage/filter/FilterPermanent.java index 042b8c9b46..af7106e1b2 100644 --- a/Mage/src/mage/filter/FilterPermanent.java +++ b/Mage/src/mage/filter/FilterPermanent.java @@ -32,6 +32,7 @@ import java.util.ArrayList; import java.util.List; import java.util.UUID; import mage.Constants.TargetController; +import mage.abilities.Ability; import mage.game.Game; import mage.game.permanent.Permanent; @@ -109,7 +110,7 @@ public class FilterPermanent> extends FilterObject< return !notFilter; } - public boolean match(Permanent permanent, UUID playerId, Game game) { + public boolean match(Permanent permanent, UUID sourceId, UUID playerId, Game game) { if (!this.match(permanent)) return notFilter; @@ -130,6 +131,13 @@ public class FilterPermanent> extends FilterObject< } } + if (another) { + // filter out itself + if (permanent.getId().equals(sourceId)) { + return notFilter; + } + } + return !notFilter; } diff --git a/Mage/src/mage/filter/FilterPlayer.java b/Mage/src/mage/filter/FilterPlayer.java index e8a7bac99b..7df285d135 100644 --- a/Mage/src/mage/filter/FilterPlayer.java +++ b/Mage/src/mage/filter/FilterPlayer.java @@ -32,6 +32,7 @@ import java.util.ArrayList; import java.util.List; import java.util.UUID; import mage.Constants.TargetController; +import mage.abilities.Ability; import mage.game.Game; import mage.players.Player; @@ -67,7 +68,7 @@ public class FilterPlayer extends FilterImpl implements Fi return !notFilter; } - public boolean match(Player player, UUID playerId, Game game) { + public boolean match(Player player, UUID sourceId, UUID playerId, Game game) { if (!this.match(player)) return notFilter; diff --git a/Mage/src/mage/filter/common/FilterCreatureOrPlayer.java b/Mage/src/mage/filter/common/FilterCreatureOrPlayer.java index ae20f89747..a477139bba 100644 --- a/Mage/src/mage/filter/common/FilterCreatureOrPlayer.java +++ b/Mage/src/mage/filter/common/FilterCreatureOrPlayer.java @@ -29,6 +29,8 @@ package mage.filter.common; import java.util.UUID; + +import mage.abilities.Ability; import mage.filter.Filter; import mage.filter.FilterImpl; import mage.filter.FilterInPlay; @@ -82,12 +84,12 @@ public class FilterCreatureOrPlayer extends FilterImpl range = game.getPlayer(sourcePlayerId).getInRange(); for (Permanent permanent: field.values()) { - if (range.contains(permanent.getControllerId()) && filter.match(permanent, sourcePlayerId, game)) { + if (range.contains(permanent.getControllerId()) && filter.match(permanent, null, sourcePlayerId, game)) { count++; } } @@ -193,7 +193,7 @@ public class Battlefield implements Serializable { int count = 0; if (game.getRangeOfInfluence() == RangeOfInfluence.ALL) { for (Permanent permanent: field.values()) { - if (filter.match(permanent, sourcePlayerId, game)) { + if (filter.match(permanent, null, sourcePlayerId, game)) { count++; if (num == count) return true; @@ -203,7 +203,7 @@ public class Battlefield implements Serializable { else { Set range = game.getPlayer(sourcePlayerId).getInRange(); for (Permanent permanent: field.values()) { - if (range.contains(permanent.getControllerId()) && filter.match(permanent, sourcePlayerId, game)) { + if (range.contains(permanent.getControllerId()) && filter.match(permanent, null, sourcePlayerId, game)) { count++; if (num == count) return true; @@ -352,14 +352,14 @@ public class Battlefield implements Serializable { List active = new ArrayList(); if (game.getRangeOfInfluence() == RangeOfInfluence.ALL) { for (Permanent perm: field.values()) { - if (perm.isPhasedIn() && filter.match(perm, sourcePlayerId, game)) + if (perm.isPhasedIn() && filter.match(perm, null, sourcePlayerId, game)) active.add(perm); } } else { Set range = game.getPlayer(sourcePlayerId).getInRange(); for (Permanent perm: field.values()) { - if (perm.isPhasedIn() && range.contains(perm.getControllerId()) && filter.match(perm, sourcePlayerId, game)) + if (perm.isPhasedIn() && range.contains(perm.getControllerId()) && filter.match(perm, null, sourcePlayerId, game)) active.add(perm); } } diff --git a/Mage/src/mage/target/TargetImpl.java b/Mage/src/mage/target/TargetImpl.java index 9596498a99..f73ce9fe06 100644 --- a/Mage/src/mage/target/TargetImpl.java +++ b/Mage/src/mage/target/TargetImpl.java @@ -102,6 +102,9 @@ public abstract class TargetImpl> implements Target { } return sb.toString(); } + if (targetName.startsWith("another")) { + return "Select " + targetName; + } return "Select a " + targetName; } diff --git a/Mage/src/mage/target/TargetPermanent.java b/Mage/src/mage/target/TargetPermanent.java index a5b2ec24ae..8714747818 100644 --- a/Mage/src/mage/target/TargetPermanent.java +++ b/Mage/src/mage/target/TargetPermanent.java @@ -82,9 +82,9 @@ public class TargetPermanent> extends TargetObject< if (permanent != null) { if (source != null) //TODO: check for replacement effects - return permanent.canBeTargetedBy(game.getObject(source.getSourceId())) && filter.match(permanent, controllerId, game); + return permanent.canBeTargetedBy(game.getObject(source.getSourceId())) && filter.match(permanent, source.getSourceId(), controllerId, game); else - return filter.match(permanent, controllerId, game); + return filter.match(permanent, null, controllerId, game); } return false; } diff --git a/Mage/src/mage/target/common/TargetCreatureOrPlayer.java b/Mage/src/mage/target/common/TargetCreatureOrPlayer.java index 033bd88d5c..d04bcf4f57 100644 --- a/Mage/src/mage/target/common/TargetCreatureOrPlayer.java +++ b/Mage/src/mage/target/common/TargetCreatureOrPlayer.java @@ -99,9 +99,9 @@ public class TargetCreatureOrPlayer extends TargetImpl { if (permanent != null) { if (source != null) //TODO: check for replacement effects - return permanent.canBeTargetedBy(game.getObject(source.getSourceId())) && filter.match(permanent, controllerId, game); + return permanent.canBeTargetedBy(game.getObject(source.getSourceId())) && filter.match(permanent, source.getSourceId(), controllerId, game); else - return filter.match(permanent, controllerId, game); + return filter.match(permanent, source.getSourceId(), controllerId, game); } Player player = game.getPlayer(id); if (player != null) @@ -134,7 +134,7 @@ public class TargetCreatureOrPlayer extends TargetImpl { } } for (Permanent permanent: game.getBattlefield().getActivePermanents(FilterCreaturePermanent.getDefault(), sourceControllerId, game)) { - if (permanent.canBeTargetedBy(targetSource) && filter.match(permanent, sourceControllerId, game)) { + if (permanent.canBeTargetedBy(targetSource) && filter.match(permanent, sourceId, sourceControllerId, game)) { count++; if (count >= this.minNumberOfTargets) return true; @@ -163,7 +163,7 @@ public class TargetCreatureOrPlayer extends TargetImpl { } } for (Permanent permanent: game.getBattlefield().getActivePermanents(FilterCreaturePermanent.getDefault(), sourceControllerId, game)) { - if (filter.match(permanent, sourceControllerId, game)) { + if (filter.match(permanent, null, sourceControllerId, game)) { count++; if (count >= this.minNumberOfTargets) return true; @@ -183,7 +183,7 @@ public class TargetCreatureOrPlayer extends TargetImpl { } } for (Permanent permanent: game.getBattlefield().getActivePermanents(FilterCreaturePermanent.getDefault(), sourceControllerId, game)) { - if (permanent.canBeTargetedBy(targetSource) && filter.match(permanent, sourceControllerId, game)) { + if (permanent.canBeTargetedBy(targetSource) && filter.match(permanent, sourceId, sourceControllerId, game)) { possibleTargets.add(permanent.getId()); } } @@ -200,7 +200,7 @@ public class TargetCreatureOrPlayer extends TargetImpl { } } for (Permanent permanent: game.getBattlefield().getActivePermanents(FilterCreaturePermanent.getDefault(), sourceControllerId, game)) { - if (filter.match(permanent, sourceControllerId, game)) { + if (filter.match(permanent, null, sourceControllerId, game)) { possibleTargets.add(permanent.getId()); } } diff --git a/Mage/src/mage/target/common/TargetCreatureOrPlayerAmount.java b/Mage/src/mage/target/common/TargetCreatureOrPlayerAmount.java index af932aecbc..18ce9c6404 100644 --- a/Mage/src/mage/target/common/TargetCreatureOrPlayerAmount.java +++ b/Mage/src/mage/target/common/TargetCreatureOrPlayerAmount.java @@ -85,7 +85,7 @@ public class TargetCreatureOrPlayerAmount extends TargetAmount= this.minNumberOfTargets) return true; @@ -132,7 +132,7 @@ public class TargetCreatureOrPlayerAmount extends TargetAmount= this.minNumberOfTargets) return true; @@ -152,7 +152,7 @@ public class TargetCreatureOrPlayerAmount extends TargetAmount MageObject targetSource = game.getObject(source.getSourceId()); if (permanent != null) { if (source != null) - return permanent.canBeTargetedBy(targetSource) && filter.match(permanent, source.getControllerId(), game); + return permanent.canBeTargetedBy(targetSource) && filter.match(permanent, source.getSourceId(), source.getControllerId(), game); else return filter.match(permanent); } @@ -144,7 +144,7 @@ public class TargetPermanentOrPlayer extends TargetImpl } } for (Permanent permanent: game.getBattlefield().getActivePermanents(FilterCreaturePermanent.getDefault(), sourceControllerId, game)) { - if (permanent.canBeTargetedBy(targetSource) && filter.match(permanent, sourceControllerId, game)) { + if (permanent.canBeTargetedBy(targetSource) && filter.match(permanent, sourceId, sourceControllerId, game)) { count++; if (count >= this.minNumberOfTargets) return true; @@ -173,7 +173,7 @@ public class TargetPermanentOrPlayer extends TargetImpl } } for (Permanent permanent: game.getBattlefield().getActivePermanents(filterPermanent, sourceControllerId, game)) { - if (filter.match(permanent, sourceControllerId, game)) { + if (filter.match(permanent, null, sourceControllerId, game)) { count++; if (count >= this.minNumberOfTargets) return true; @@ -193,7 +193,7 @@ public class TargetPermanentOrPlayer extends TargetImpl } } for (Permanent permanent: game.getBattlefield().getActivePermanents(FilterCreaturePermanent.getDefault(), sourceControllerId, game)) { - if (permanent.canBeTargetedBy(targetSource) && filter.match(permanent, sourceControllerId, game)) { + if (permanent.canBeTargetedBy(targetSource) && filter.match(permanent, sourceId, sourceControllerId, game)) { possibleTargets.add(permanent.getId()); } } @@ -210,7 +210,7 @@ public class TargetPermanentOrPlayer extends TargetImpl } } for (Permanent permanent: game.getBattlefield().getActivePermanents(FilterCreaturePermanent.getDefault(), sourceControllerId, game)) { - if (filter.match(permanent, sourceControllerId, game)) { + if (filter.match(permanent, null, sourceControllerId, game)) { possibleTargets.add(permanent.getId()); } }