From 4b2a9cd2034e09d69330606a316db6a27da098df Mon Sep 17 00:00:00 2001 From: magenoxx Date: Sat, 12 Feb 2011 11:46:20 +0300 Subject: [PATCH] PlayerImpl fix --- .../mage/player/ai/GameStateEvaluator2.java | 14 +++-- .../player/ai/ma/ArtificialScoringSystem.java | 2 +- .../src/mage/player/ai/ma/MagicAbility.java | 49 +++++++++--------- .../target/maven-archiver/pom.properties | 2 +- Mage.Tests/plugins/mage-player-ai-ma.jar | Bin 41494 -> 41438 bytes .../mage/test/serverside/PlayGameTest.java | 2 +- .../continious/BoostPowerXSourceEffect.java | 15 +++++- Mage/src/mage/players/PlayerImpl.java | 4 +- 8 files changed, 53 insertions(+), 35 deletions(-) diff --git a/Mage.Server.Plugins/Mage.Player.AI.MA/src/mage/player/ai/GameStateEvaluator2.java b/Mage.Server.Plugins/Mage.Player.AI.MA/src/mage/player/ai/GameStateEvaluator2.java index 70a66f20bb..210ac15ba9 100644 --- a/Mage.Server.Plugins/Mage.Player.AI.MA/src/mage/player/ai/GameStateEvaluator2.java +++ b/Mage.Server.Plugins/Mage.Player.AI.MA/src/mage/player/ai/GameStateEvaluator2.java @@ -61,11 +61,15 @@ public class GameStateEvaluator2 { } int permanentScore = 0; - for (Permanent permanent: game.getBattlefield().getAllActivePermanents(playerId)) { - permanentScore += evaluatePermanent(permanent, game); - } - for (Permanent permanent: game.getBattlefield().getAllActivePermanents(opponent.getId())) { - permanentScore -= evaluatePermanent(permanent, game); + try { + for (Permanent permanent: game.getBattlefield().getAllActivePermanents(playerId)) { + permanentScore += evaluatePermanent(permanent, game); + } + for (Permanent permanent: game.getBattlefield().getAllActivePermanents(opponent.getId())) { + permanentScore -= evaluatePermanent(permanent, game); + } + } catch (Throwable t) { + t.printStackTrace(); } //permanentScore *= PERMANENT_FACTOR; diff --git a/Mage.Server.Plugins/Mage.Player.AI.MA/src/mage/player/ai/ma/ArtificialScoringSystem.java b/Mage.Server.Plugins/Mage.Player.AI.MA/src/mage/player/ai/ma/ArtificialScoringSystem.java index a76b079e0c..b8b9c3cc45 100644 --- a/Mage.Server.Plugins/Mage.Player.AI.MA/src/mage/player/ai/ma/ArtificialScoringSystem.java +++ b/Mage.Server.Plugins/Mage.Player.AI.MA/src/mage/player/ai/ma/ArtificialScoringSystem.java @@ -26,7 +26,7 @@ public class ArtificialScoringSystem { private static final int LIFE_ABOVE_MULTIPLIER = 100; public static int getCardDefinitionScore(final Game game, final Card card) { - int value = 0; //TODO: add new rating system card value + int value = 3; //TODO: add new rating system card value if (card.getCardType().contains(Constants.CardType.LAND)) { int score = (int) ((value / 2.0f) * 50); //TODO: check this for "any color" lands diff --git a/Mage.Server.Plugins/Mage.Player.AI.MA/src/mage/player/ai/ma/MagicAbility.java b/Mage.Server.Plugins/Mage.Player.AI.MA/src/mage/player/ai/ma/MagicAbility.java index 47a55969ed..21084afa54 100644 --- a/Mage.Server.Plugins/Mage.Player.AI.MA/src/mage/player/ai/ma/MagicAbility.java +++ b/Mage.Server.Plugins/Mage.Player.AI.MA/src/mage/player/ai/ma/MagicAbility.java @@ -15,35 +15,36 @@ import java.util.zip.Inflater; public class MagicAbility { private static Map scores = new HashMap() {{ - scores.put(DeathtouchAbility.getInstance().getRule(), 60); - scores.put(DefenderAbility.getInstance().getRule(), -100); - scores.put(DoubleStrikeAbility.getInstance().getRule(), 100); - scores.put(DoubleStrikeAbility.getInstance().getRule(), 100); - scores.put(new ExaltedAbility().getRule(), 10); - scores.put(FirstStrikeAbility.getInstance().getRule(), 50); - scores.put(FlashAbility.getInstance().getRule(), 0); - scores.put(FlyingAbility.getInstance().getRule(), 50); - scores.put(new ForestwalkAbility().getRule(), 10); - scores.put(HasteAbility.getInstance().getRule(), 0); - scores.put(IndestructibleAbility.getInstance().getRule(), 150); - scores.put(InfectAbility.getInstance().getRule(), 60); - scores.put(IntimidateAbility.getInstance().getRule(), 50); - scores.put(new IslandwalkAbility().getRule(), 10); - scores.put(new MountainwalkAbility().getRule(), 10); - scores.put(new PlainswalkAbility().getRule(), 10); - scores.put(ReachAbility.getInstance().getRule(), 20); - scores.put(ShroudAbility.getInstance().getRule(), 60); - scores.put(new SwampwalkAbility().getRule(), 10); - scores.put(TrampleAbility.getInstance().getRule(), 30); - scores.put(UnblockableAbility.getInstance().getRule(), 100); - scores.put(VigilanceAbility.getInstance().getRule(), 20); - scores.put(WitherAbility.getInstance().getRule(), 30); + put(DeathtouchAbility.getInstance().getRule(), 60); + put(DefenderAbility.getInstance().getRule(), -100); + put(DoubleStrikeAbility.getInstance().getRule(), 100); + put(DoubleStrikeAbility.getInstance().getRule(), 100); + put(new ExaltedAbility().getRule(), 10); + put(FirstStrikeAbility.getInstance().getRule(), 50); + put(FlashAbility.getInstance().getRule(), 0); + put(FlyingAbility.getInstance().getRule(), 50); + put(new ForestwalkAbility().getRule(), 10); + put(HasteAbility.getInstance().getRule(), 0); + put(IndestructibleAbility.getInstance().getRule(), 150); + put(InfectAbility.getInstance().getRule(), 60); + put(IntimidateAbility.getInstance().getRule(), 50); + put(new IslandwalkAbility().getRule(), 10); + put(new MountainwalkAbility().getRule(), 10); + put(new PlainswalkAbility().getRule(), 10); + put(ReachAbility.getInstance().getRule(), 20); + put(ShroudAbility.getInstance().getRule(), 60); + put(new SwampwalkAbility().getRule(), 10); + put(TrampleAbility.getInstance().getRule(), 30); + put(UnblockableAbility.getInstance().getRule(), 100); + put(VigilanceAbility.getInstance().getRule(), 20); + put(WitherAbility.getInstance().getRule(), 30); }}; public static int getAbilityScore(Ability ability) { if (!scores.containsKey(ability.getRule())) { - System.err.println("Couldn't find ability score: " + ability.getRule()); + //System.err.println("Couldn't find ability score: " + ability.getRule()); //TODO: add handling protection from ..., levelup, kicker, etc. abilities + return 0; } return scores.get(ability.getRule()); } diff --git a/Mage.Server.Plugins/Mage.Tournament.BoosterDraft/target/maven-archiver/pom.properties b/Mage.Server.Plugins/Mage.Tournament.BoosterDraft/target/maven-archiver/pom.properties index de0c2725e7..2e014c18ee 100644 --- a/Mage.Server.Plugins/Mage.Tournament.BoosterDraft/target/maven-archiver/pom.properties +++ b/Mage.Server.Plugins/Mage.Tournament.BoosterDraft/target/maven-archiver/pom.properties @@ -1,5 +1,5 @@ #Generated by Maven -#Sun Feb 06 08:07:38 EST 2011 +#Sat Feb 12 11:24:53 MSK 2011 version=0.6 groupId=org.mage artifactId=Mage-Tournament-BoosterDraft diff --git a/Mage.Tests/plugins/mage-player-ai-ma.jar b/Mage.Tests/plugins/mage-player-ai-ma.jar index 0891171fea72cda55c7015bf5602659fb8336e27..a7d5b0a71df0a702bb11ba299467ce0bafc90880 100644 GIT binary patch delta 23956 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 delta 24156 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 N+ul%Od`$n9`+w|Q-w*%* diff --git a/Mage.Tests/src/test/java/org/mage/test/serverside/PlayGameTest.java b/Mage.Tests/src/test/java/org/mage/test/serverside/PlayGameTest.java index 1c1cc4b119..e8fed69414 100644 --- a/Mage.Tests/src/test/java/org/mage/test/serverside/PlayGameTest.java +++ b/Mage.Tests/src/test/java/org/mage/test/serverside/PlayGameTest.java @@ -32,7 +32,7 @@ public class PlayGameTest extends MageTestBase { game.loadCards(deck.getCards(), player.getId()); Player player2 = createPlayer("computer2", "Computer - mad"); - Deck deck2 = Deck.load(Sets.loadDeck("UW Control.dck")); + Deck deck2 = Deck.load(Sets.loadDeck("RB Aggro.dck")); if (deck2.getCards().size() < 40) { throw new IllegalArgumentException("Couldn't load deck, deck side=" + deck2.getCards().size()); } diff --git a/Mage/src/mage/abilities/effects/common/continious/BoostPowerXSourceEffect.java b/Mage/src/mage/abilities/effects/common/continious/BoostPowerXSourceEffect.java index 9f8221685f..377649ad21 100644 --- a/Mage/src/mage/abilities/effects/common/continious/BoostPowerXSourceEffect.java +++ b/Mage/src/mage/abilities/effects/common/continious/BoostPowerXSourceEffect.java @@ -33,10 +33,13 @@ import mage.Constants.Layer; import mage.Constants.Outcome; import mage.Constants.SubLayer; import mage.abilities.Ability; +import mage.abilities.costs.VariableCost; import mage.abilities.effects.ContinuousEffectImpl; import mage.game.Game; import mage.game.permanent.Permanent; +import java.util.List; + /** * * @author BetaSteward_at_googlemail.com @@ -50,6 +53,7 @@ public class BoostPowerXSourceEffect extends ContinuousEffectImpl varCost = source.getCosts().getVariableCosts(); + if (varCost.size() > 0) { + amount = varCost.get(0).getAmount(); + } else { + amount = 0; + return false; + } + } Permanent target = (Permanent) game.getPermanent(source.getSourceId()); if (target != null) { target.addPower(amount); diff --git a/Mage/src/mage/players/PlayerImpl.java b/Mage/src/mage/players/PlayerImpl.java index 517b27f68d..48d1152861 100644 --- a/Mage/src/mage/players/PlayerImpl.java +++ b/Mage/src/mage/players/PlayerImpl.java @@ -962,7 +962,9 @@ public abstract class PlayerImpl> implements Player, Ser for (UUID targetId: option.getTargets().getUnchosen().get(targetNum).possibleTargets(option.getSourceId(), playerId, game)) { Ability newOption = option.copy(); newOption.getTargets().get(targetNum).addTarget(targetId, option, game); - if (targetNum < option.getTargets().size() - 1) { + if (targetNum < option.getTargets().size() - 2) { + //addTargetOptions(options, newOption, targetNum + 1, game); + // ayrat: bug fix addTargetOptions(options, newOption, targetNum + 1, game); } else {