diff --git a/Mage.Sets/src/mage/cards/n/Nettlecyst.java b/Mage.Sets/src/mage/cards/n/Nettlecyst.java
new file mode 100644
index 00000000000..ea283a0a5fd
--- /dev/null
+++ b/Mage.Sets/src/mage/cards/n/Nettlecyst.java
@@ -0,0 +1,61 @@
+package mage.cards.n;
+
+import mage.abilities.common.SimpleStaticAbility;
+import mage.abilities.dynamicvalue.DynamicValue;
+import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount;
+import mage.abilities.effects.common.continuous.BoostEquippedEffect;
+import mage.abilities.hint.Hint;
+import mage.abilities.hint.ValueHint;
+import mage.abilities.keyword.EquipAbility;
+import mage.abilities.keyword.LivingWeaponAbility;
+import mage.cards.CardImpl;
+import mage.cards.CardSetInfo;
+import mage.constants.CardType;
+import mage.constants.SubType;
+import mage.constants.TargetController;
+import mage.filter.FilterPermanent;
+import mage.filter.common.FilterArtifactOrEnchantmentPermanent;
+
+import java.util.UUID;
+
+/**
+ * @author TheElk801
+ */
+public final class Nettlecyst extends CardImpl {
+
+ private static final FilterPermanent filter = new FilterArtifactOrEnchantmentPermanent();
+
+ static {
+ filter.add(TargetController.YOU.getControllerPredicate());
+ }
+
+ private static final DynamicValue xValue = new PermanentsOnBattlefieldCount(filter);
+ private static final Hint hint = new ValueHint("Artifacts and enchantments you control", xValue);
+
+ public Nettlecyst(UUID ownerId, CardSetInfo setInfo) {
+ super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{3}");
+
+ this.subtype.add(SubType.EQUIPMENT);
+
+ // Living weapon
+ this.addAbility(new LivingWeaponAbility());
+
+ // Equipped creature gets +1/+1 for each artifact and/or enchantment you control.
+ this.addAbility(new SimpleStaticAbility(
+ new BoostEquippedEffect(xValue, xValue)
+ .setText("equipped creature gets +1/+1 for each artifact and/or enchantment you control")
+ ).addHint(hint));
+
+ // Equip {2}
+ this.addAbility(new EquipAbility(2));
+ }
+
+ private Nettlecyst(final Nettlecyst card) {
+ super(card);
+ }
+
+ @Override
+ public Nettlecyst copy() {
+ return new Nettlecyst(this);
+ }
+}
diff --git a/Mage.Sets/src/mage/sets/ModernHorizons2.java b/Mage.Sets/src/mage/sets/ModernHorizons2.java
index f81b5ee539a..4f30c769108 100644
--- a/Mage.Sets/src/mage/sets/ModernHorizons2.java
+++ b/Mage.Sets/src/mage/sets/ModernHorizons2.java
@@ -109,6 +109,7 @@ public final class ModernHorizons2 extends ExpansionSet {
cards.add(new SetCardInfo("Mountain", 487, Rarity.LAND, mage.cards.basiclands.Mountain.class, NON_FULL_USE_VARIOUS));
cards.add(new SetCardInfo("Mystic Redaction", 53, Rarity.UNCOMMON, mage.cards.m.MysticRedaction.class));
cards.add(new SetCardInfo("Necromancer's Familiar", 94, Rarity.UNCOMMON, mage.cards.n.NecromancersFamiliar.class));
+ cards.add(new SetCardInfo("Nettlecyst", 231, Rarity.RARE, mage.cards.n.Nettlecyst.class));
cards.add(new SetCardInfo("Nevinyrral's Disk", 298, Rarity.RARE, mage.cards.n.NevinyrralsDisk.class));
cards.add(new SetCardInfo("Obsidian Charmaw", 137, Rarity.RARE, mage.cards.o.ObsidianCharmaw.class));
cards.add(new SetCardInfo("Orchard Strider", 169, Rarity.COMMON, mage.cards.o.OrchardStrider.class));
diff --git a/Mage/src/main/java/mage/abilities/keyword/LivingWeaponAbility.java b/Mage/src/main/java/mage/abilities/keyword/LivingWeaponAbility.java
index 3ec2ea5bcde..624458a0c84 100644
--- a/Mage/src/main/java/mage/abilities/keyword/LivingWeaponAbility.java
+++ b/Mage/src/main/java/mage/abilities/keyword/LivingWeaponAbility.java
@@ -1,17 +1,13 @@
package mage.abilities.keyword;
-import mage.abilities.Ability;
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
-import mage.abilities.effects.common.CreateTokenEffect;
-import mage.game.Game;
-import mage.game.permanent.Permanent;
+import mage.abilities.effects.common.CreateTokenAttachSourceEffect;
import mage.game.permanent.token.GermToken;
-import mage.players.Player;
public class LivingWeaponAbility extends EntersBattlefieldTriggeredAbility {
public LivingWeaponAbility() {
- super(new LivingWeaponEffect());
+ super(new CreateTokenAttachSourceEffect(new GermToken()));
}
public LivingWeaponAbility(final LivingWeaponAbility ability) {
@@ -20,7 +16,8 @@ public class LivingWeaponAbility extends EntersBattlefieldTriggeredAbility {
@Override
public String getRule() {
- return "Living weapon (When this Equipment enters the battlefield, create a 0/0 black Germ creature token, then attach this to it.)";
+ return "Living weapon (When this Equipment enters the battlefield, " +
+ "create a 0/0 black Phyrexian Germ creature token, then attach this to it.)";
}
@Override
@@ -28,34 +25,3 @@ public class LivingWeaponAbility extends EntersBattlefieldTriggeredAbility {
return new LivingWeaponAbility(this);
}
}
-
-class LivingWeaponEffect extends CreateTokenEffect {
-
- LivingWeaponEffect() {
- super(new GermToken());
- }
-
- LivingWeaponEffect(final LivingWeaponEffect effect) {
- super(effect);
- }
-
- @Override
- public boolean apply(Game game, Ability source) {
- Player controller = game.getPlayer(source.getControllerId());
- if (controller != null) {
- if (super.apply(game, source)) {
- Permanent p = game.getPermanent(this.getLastAddedTokenId());
- if (p != null) {
- p.addAttachment(source.getSourceId(), source, game);
- return true;
- }
- }
- }
- return false;
- }
-
- @Override
- public LivingWeaponEffect copy() {
- return new LivingWeaponEffect(this);
- }
-}
diff --git a/Mage/src/main/java/mage/game/permanent/token/GermToken.java b/Mage/src/main/java/mage/game/permanent/token/GermToken.java
index 7b8ed218af0..c8a15fa9eb4 100644
--- a/Mage/src/main/java/mage/game/permanent/token/GermToken.java
+++ b/Mage/src/main/java/mage/game/permanent/token/GermToken.java
@@ -1,12 +1,12 @@
-
package mage.game.permanent.token;
+import mage.MageInt;
+import mage.constants.CardType;
+import mage.constants.SubType;
+
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
-import mage.MageInt;
-import mage.constants.CardType;
-import mage.constants.SubType;
/**
* @author spjspj
@@ -28,11 +28,12 @@ public final class GermToken extends TokenImpl {
}
public GermToken(String setCode, int tokenType) {
- super("Germ", "0/0 black Germ creature token");
+ super("Germ", "0/0 black Phyrexian Germ creature token");
availableImageSetCodes = tokenImageSets;
setOriginalExpansionSetCode(setCode);
cardType.add(CardType.CREATURE);
color.setBlack(true);
+ subtype.add(SubType.PHYREXIAN);
subtype.add(SubType.GERM);
power = new MageInt(0);
toughness = new MageInt(0);