From bd03dce85b79acac4a6c0a85b2f7e8b2772cc4d8 Mon Sep 17 00:00:00 2001 From: magenoxx Date: Wed, 23 May 2012 17:49:45 +0400 Subject: [PATCH] Fixed EquipmentAttachedCount dynamic value. +1 test pass. --- .../mage/sets/mirrodin/LoxodonPunisher.java | 4 +++- .../src/mage/sets/mirrodin/MyrAdapter.java | 4 +++- .../equipped/GolemSkinGauntletsTest.java | 2 +- .../common/EquipmentAttachedCount.java | 24 +++++++++++-------- 4 files changed, 21 insertions(+), 13 deletions(-) diff --git a/Mage.Sets/src/mage/sets/mirrodin/LoxodonPunisher.java b/Mage.Sets/src/mage/sets/mirrodin/LoxodonPunisher.java index ced5145656c..5d0018f75dc 100644 --- a/Mage.Sets/src/mage/sets/mirrodin/LoxodonPunisher.java +++ b/Mage.Sets/src/mage/sets/mirrodin/LoxodonPunisher.java @@ -27,7 +27,6 @@ */ package mage.sets.mirrodin; -import java.util.UUID; import mage.Constants.CardType; import mage.Constants.Duration; import mage.Constants.Rarity; @@ -38,6 +37,8 @@ import mage.abilities.dynamicvalue.common.EquipmentAttachedCount; import mage.abilities.effects.common.continious.BoostSourceEffect; import mage.cards.CardImpl; +import java.util.UUID; + /** * * @author North @@ -54,6 +55,7 @@ public class LoxodonPunisher extends CardImpl { this.power = new MageInt(2); this.toughness = new MageInt(2); + // Loxodon Punisher gets +2/+2 for each Equipment attached to it EquipmentAttachedCount amount = new EquipmentAttachedCount(2); this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostSourceEffect(amount, amount, Duration.WhileOnBattlefield))); } diff --git a/Mage.Sets/src/mage/sets/mirrodin/MyrAdapter.java b/Mage.Sets/src/mage/sets/mirrodin/MyrAdapter.java index bceac09468b..16556321e1b 100644 --- a/Mage.Sets/src/mage/sets/mirrodin/MyrAdapter.java +++ b/Mage.Sets/src/mage/sets/mirrodin/MyrAdapter.java @@ -27,7 +27,6 @@ */ package mage.sets.mirrodin; -import java.util.UUID; import mage.Constants.CardType; import mage.Constants.Duration; import mage.Constants.Rarity; @@ -38,6 +37,8 @@ import mage.abilities.dynamicvalue.common.EquipmentAttachedCount; import mage.abilities.effects.common.continious.BoostSourceEffect; import mage.cards.CardImpl; +import java.util.UUID; + /** * * @author North @@ -52,6 +53,7 @@ public class MyrAdapter extends CardImpl { this.power = new MageInt(1); this.toughness = new MageInt(1); + // Myr Adapter gets +1/+1 for each Equipment attached to it. EquipmentAttachedCount amount = new EquipmentAttachedCount(); this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostSourceEffect(amount, amount, Duration.WhileOnBattlefield))); } diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/abilities/equipped/GolemSkinGauntletsTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/abilities/equipped/GolemSkinGauntletsTest.java index 3528564253c..ae8a6b09a4d 100644 --- a/Mage.Tests/src/test/java/org/mage/test/cards/abilities/equipped/GolemSkinGauntletsTest.java +++ b/Mage.Tests/src/test/java/org/mage/test/cards/abilities/equipped/GolemSkinGauntletsTest.java @@ -34,7 +34,7 @@ public class GolemSkinGauntletsTest extends CardTestPlayerBase { Permanent eliteVanguard = getPermanent("Elite Vanguard", playerA.getId()); Assert.assertTrue(eliteVanguard.getAttachments().size() == 2); Assert.assertEquals(4, eliteVanguard.getPower().getValue()); - Assert.assertEquals(1, eliteVanguard.getPower().getValue()); + Assert.assertEquals(1, eliteVanguard.getToughness().getValue()); } } diff --git a/Mage/src/mage/abilities/dynamicvalue/common/EquipmentAttachedCount.java b/Mage/src/mage/abilities/dynamicvalue/common/EquipmentAttachedCount.java index 0ccfb9dfddb..792f5b9615e 100644 --- a/Mage/src/mage/abilities/dynamicvalue/common/EquipmentAttachedCount.java +++ b/Mage/src/mage/abilities/dynamicvalue/common/EquipmentAttachedCount.java @@ -27,16 +27,17 @@ */ package mage.abilities.dynamicvalue.common; -import java.util.List; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.dynamicvalue.DynamicValue; import mage.game.Game; import mage.game.permanent.Permanent; +import java.util.List; +import java.util.UUID; + /** * - * @author North + * @author North, noxx */ public class EquipmentAttachedCount implements DynamicValue { @@ -57,13 +58,16 @@ public class EquipmentAttachedCount implements DynamicValue { @Override public int calculate(Game game, Ability source) { int count = 0; - Permanent p = game.getPermanent(source.getSourceId()); - if (p != null) { - List attachments = p.getAttachments(); - for (UUID attachmentId : attachments) { - Permanent attached = game.getPermanent(attachmentId); - if (attached != null && attached.getSubtype().contains("Equipment")) { - count++; + Permanent equipment = game.getPermanent(source.getSourceId()); + if (equipment != null) { + Permanent permanent = game.getPermanent(equipment.getAttachedTo()); + if (permanent != null) { + List attachments = permanent.getAttachments(); + for (UUID attachmentId : attachments) { + Permanent attached = game.getPermanent(attachmentId); + if (attached != null && attached.getSubtype().contains("Equipment")) { + count++; + } } }