@Override public boolean apply(Game game, Permanent permanent, Ability source, UUID copyToObjectId) { permanent.addCardType(cardType); return true; }
@Override public boolean apply(Layer layer, SubLayer sublayer, Ability source, Game game) { for (Permanent permanent : game.getBattlefield().getAllActivePermanents(source.getControllerId())) { if (permanent != null && permanent.hasSubtype(SubType.VEHICLE, game)) { if (sublayer == SubLayer.NA) { permanent.addCardType(CardType.ARTIFACT); permanent.addCardType(CardType.CREATURE);// TODO: Chcek if giving CREATURE Type is correct } } } return true; }
@Override public boolean apply(Game game, Ability source) { for (Permanent permanent : game.getBattlefield().getAllActivePermanents(filter, game)) { if (permanent != null && !permanent.getCardType().contains(addedCardType)) { permanent.addCardType(addedCardType); } } return true; }
@Override public boolean apply(Game game, Ability source) { for (Permanent perm : game.getBattlefield().getActivePermanents(source.getControllerId(), game)) { perm.addCardType(CardType.ARTIFACT); } return true; }
@Override public boolean apply(Game game, Ability source) { Permanent permanent = game.getPermanent(source.getSourceId()); if (permanent != null && affectedObjectList.contains(new MageObjectReference(permanent, game))) { for (CardType cardType : addedCardTypes) { if (!permanent.getCardType().contains(cardType)) { permanent.addCardType(cardType); } } return true; } else if (this.getDuration() == Duration.Custom) { this.discard(); } return false; }
@Override public boolean apply(Game game, Ability source) { Permanent equipment = game.getPermanent(source.getSourceId()); if (equipment != null && equipment.getAttachedTo() != null) { Permanent target = game.getPermanent(equipment.getAttachedTo()); if (target != null && !target.getCardType().contains(addedCardType)) { target.addCardType(addedCardType); } } return true; }
@Override public boolean apply(Layer layer, SubLayer sublayer, Ability source, Game game) { switch (layer) { case TypeChangingEffects_4: if (sublayer == SubLayer.NA) { affectedObjectList.clear(); for (Permanent permanent : game.getBattlefield().getAllActivePermanents(filter, game)) { if (permanent != null) { affectedObjectList.add(new MageObjectReference(permanent, game)); permanent.addCardType(CardType.CREATURE); } } } break; case PTChangingEffects_7: if (sublayer == SubLayer.SetPT_7b) { for (Iterator<MageObjectReference> it = affectedObjectList.iterator(); it.hasNext();) { Permanent permanent = it.next().getPermanent(game); if (permanent != null) { int manaCost = permanent.getConvertedManaCost(); permanent.getPower().setValue(manaCost); permanent.getToughness().setValue(manaCost); } } } } return true; }
@Override public boolean apply(Game game, Ability source) { boolean result = false; for (UUID targetId : targetPointer.getTargets(game, source)) { Permanent target = game.getPermanent(targetId); if (target != null) { for (CardType cardType : addedCardTypes) { if (!target.getCardType().contains(cardType)) { target.addCardType(cardType); } } result = true; } } if (!result) { if (this.getDuration() == Duration.Custom) { this.discard(); } } return result; }
@Override public boolean apply(Game game, Ability source) { Permanent aura = game.getPermanent(source.getSourceId()); if (aura != null && aura.getAttachedTo() != null) { Permanent enchanted = game.getPermanent(aura.getAttachedTo()); if (enchanted != null && enchanted.hasSubtype(SubType.VEHICLE, game)) { enchanted.addCardType(addedType); } } return true; }
@Override public boolean apply(Layer layer, SubLayer sublayer, Ability source, Game game) { Permanent permanent = game.getPermanent(source.getSourceId()); if (permanent != null) { switch (layer) { case TypeChangingEffects_4: permanent.getCardType().clear(); permanent.addCardType(CardType.LAND); permanent.getSubtype(game).clear(); break; } return true; } return false; }
@Override public boolean apply(Layer layer, SubLayer sublayer, Ability source, Game game) { Permanent artifact = game.getPermanent(this.getTargetPointer().getFirst(game, source)); if (artifact == null) { return false; } switch (layer) { case TypeChangingEffects_4: if (sublayer == SubLayer.NA) { if (!artifact.isArtifact()) { artifact.addCardType(CardType.ARTIFACT); } if (!artifact.isCreature()) { artifact.addCardType(CardType.CREATURE); } } break; case PTChangingEffects_7: if (sublayer == SubLayer.SetPT_7b) { int cmc = artifact.getConvertedManaCost(); artifact.getPower().setValue(cmc); artifact.getToughness().setValue(cmc); } } return true; }
@Override public boolean apply(Layer layer, SubLayer sublayer, Ability source, Game game) { Permanent artifact = game.getPermanent(this.getTargetPointer().getFirst(game, source)); if (artifact == null) { return false; } switch (layer) { case TypeChangingEffects_4: if (sublayer == SubLayer.NA) { if (!artifact.isArtifact()) { artifact.addCardType(CardType.ARTIFACT); } if (!artifact.isCreature()) { artifact.addCardType(CardType.CREATURE); } } break; case PTChangingEffects_7: if (sublayer == SubLayer.SetPT_7b) { int cmc = artifact.getConvertedManaCost(); artifact.getPower().setValue(cmc); artifact.getToughness().setValue(cmc); } } return true; }
static public void becomeCreature(Permanent permanent, Game game) { if (permanent != null) { MageObject basicObject = permanent.getBasicMageObject(game); if (basicObject != null) { basicObject.getSubtype(null).remove(SubType.AURA); if (!basicObject.isCreature()) { basicObject.addCardType(CardType.CREATURE); } } permanent.getSubtype(null).remove(SubType.AURA); if (!permanent.isCreature()) { permanent.addCardType(CardType.CREATURE); } } } }
@Override public boolean apply(Layer layer, SubLayer sublayer, Ability source, Game game) { Permanent artifact = game.getPermanent(this.getTargetPointer().getFirst(game, source)); if (artifact == null) { return false; } switch (layer) { case TypeChangingEffects_4: if (sublayer == SubLayer.NA) { if (!artifact.isCreature()) { artifact.addCardType(CardType.CREATURE); } } break; case PTChangingEffects_7: if (sublayer == SubLayer.SetPT_7b) { int cmc = artifact.getConvertedManaCost(); artifact.getPower().setValue(cmc); artifact.getToughness().setValue(cmc); } } return true; }
@Override public boolean apply(Layer layer, SubLayer sublayer, Ability source, Game game) { for (Permanent permanent : game.getBattlefield().getActivePermanents(filter, source.getControllerId(), source.getSourceId(), game)) { switch (layer) { case TypeChangingEffects_4: if (sublayer == SubLayer.NA) { if (!permanent.isCreature()) { permanent.addCardType(CardType.CREATURE); } } break; case PTChangingEffects_7: if (sublayer == SubLayer.SetPT_7b) { int manaCost = permanent.getConvertedManaCost(); permanent.getPower().setValue(manaCost); permanent.getToughness().setValue(manaCost); } } } return true; }
@Override public boolean apply(Layer layer, SubLayer sublayer, Ability source, Game game) { Permanent permanent = game.getPermanent(source.getSourceId()); if (permanent != null) { switch (layer) { case TypeChangingEffects_4: if (sublayer == SubLayer.NA) { permanent.addCardType(CardType.CREATURE); permanent.getSubtype(game).add(SubType.CONSTRUCT); } break; case PTChangingEffects_7: if (sublayer == SubLayer.SetPT_7b) { int xValue = source.getManaCostsToPay().getX(); permanent.getPower().setValue(xValue); permanent.getToughness().setValue(xValue); } } return true; } return false; }
@Override public boolean apply(Layer layer, SubLayer sublayer, Ability source, Game game) { for (UUID permanentId : this.getTargetPointer().getTargets(game, source)) { Permanent permanent = game.getPermanent(permanentId); if (permanent != null) { switch (layer) { case TypeChangingEffects_4: permanent.addCardType(CardType.CREATURE); if (!permanent.hasSubtype(SubType.ELEMENTAL, game)) { permanent.getSubtype(game).add(SubType.ELEMENTAL); } break; case PTChangingEffects_7: if (sublayer == SubLayer.SetPT_7b) { permanent.getToughness().setValue(6); permanent.getPower().setValue(6); } } } } return true; }
@Override public boolean apply(Layer layer, SubLayer sublayer, Ability source, Game game) { for (Permanent permanent : game.getBattlefield().getActivePermanents(filter, source.getControllerId(), source.getSourceId(), game)) { switch (layer) { case TypeChangingEffects_4: if (sublayer == SubLayer.NA) { if (!permanent.isCreature()) { permanent.addCardType(CardType.CREATURE); } } break; case PTChangingEffects_7: if (sublayer == SubLayer.SetPT_7b) { int manaCost = permanent.getConvertedManaCost(); permanent.getPower().setValue(manaCost); permanent.getToughness().setValue(manaCost); } } } return true; }
@Override public boolean apply(Layer layer, SubLayer sublayer, Ability source, Game game) { // Not sure, if this is layerwise handled absolutely correctly Permanent enchantment = game.getPermanent(source.getSourceId()); if (enchantment != null) { Permanent permanent = game.getPermanent(enchantment.getAttachedTo()); if (permanent != null && !permanent.isCreature()) { if (sublayer == SubLayer.NA) { permanent.addCardType(CardType.CREATURE); permanent.getPower().setValue(permanent.getConvertedManaCost()); permanent.getToughness().setValue(permanent.getConvertedManaCost()); } } return true; } return false; }
@Override public boolean apply(Layer layer, SubLayer sublayer, Ability source, Game game) { Permanent permanent = game.getPermanent(source.getSourceId()); if (permanent != null) { switch (layer) { case TypeChangingEffects_4: if (sublayer == SubLayer.NA) { permanent.addCardType(CardType.CREATURE); permanent.getSubtype(game).add(SubType.CONSTRUCT); } break; case PTChangingEffects_7: if (sublayer == SubLayer.SetPT_7b) { int xValue = source.getManaCostsToPay().getX(); if (xValue != 0) { permanent.getPower().setValue(xValue); permanent.getToughness().setValue(xValue); } } } return true; } return false; }