Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 11 additions & 24 deletions Mage.Sets/src/mage/cards/h/HalcyonGlaze.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,7 @@
package mage.cards.h;

import java.util.UUID;
import mage.MageInt;
import mage.abilities.common.SpellCastControllerTriggeredAbility;
import mage.abilities.effects.Effect;
import mage.abilities.effects.common.continuous.BecomesCreatureSourceEffect;
import mage.abilities.keyword.FlyingAbility;
import mage.cards.CardImpl;
Expand All @@ -13,7 +11,7 @@
import mage.constants.SubType;
import mage.constants.Duration;
import mage.filter.StaticFilters;
import mage.game.permanent.token.TokenImpl;
import mage.game.permanent.token.custom.CreatureToken;

/**
*
Expand All @@ -25,8 +23,16 @@ public HalcyonGlaze(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{1}{U}{U}");

// Whenever you cast a creature spell, Halcyon Glaze becomes a 4/4 Illusion creature with flying in addition to its other types until end of turn.
Effect effect = new BecomesCreatureSourceEffect(new HalcyonGlazeToken(), CardType.ENCHANTMENT, Duration.EndOfTurn);
this.addAbility(new SpellCastControllerTriggeredAbility(effect, StaticFilters.FILTER_SPELL_A_CREATURE, false));
this.addAbility(new SpellCastControllerTriggeredAbility(
new BecomesCreatureSourceEffect(
new CreatureToken(4, 4, "4/4 Illusion creature with flying", SubType.ILLUSION)
.withAbility(FlyingAbility.getInstance()),
CardType.ENCHANTMENT,
Duration.EndOfTurn
),
StaticFilters.FILTER_SPELL_A_CREATURE,
false
));
}

private HalcyonGlaze(final HalcyonGlaze card) {
Expand All @@ -38,22 +44,3 @@ public HalcyonGlaze copy() {
return new HalcyonGlaze(this);
}
}

class HalcyonGlazeToken extends TokenImpl {

HalcyonGlazeToken() {
super("", "4/4 Illusion creature with flying");
cardType.add(CardType.CREATURE);
subtype.add(SubType.ILLUSION);
power = new MageInt(4);
toughness = new MageInt(4);
this.addAbility(FlyingAbility.getInstance());
}
private HalcyonGlazeToken(final HalcyonGlazeToken token) {
super(token);
}

public HalcyonGlazeToken copy() {
return new HalcyonGlazeToken(this);
}
}
39 changes: 11 additions & 28 deletions Mage.Sets/src/mage/cards/h/HissingQuagmire.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,9 @@
package mage.cards.h;

import java.util.UUID;
import mage.MageInt;
import mage.abilities.common.EntersBattlefieldTappedAbility;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.effects.Effect;
import mage.abilities.effects.common.continuous.BecomesCreatureSourceEffect;
import mage.abilities.keyword.DeathtouchAbility;
import mage.abilities.mana.BlackManaAbility;
Expand All @@ -16,8 +14,7 @@
import mage.constants.CardType;
import mage.constants.SubType;
import mage.constants.Duration;
import mage.constants.Zone;
import mage.game.permanent.token.TokenImpl;
import mage.game.permanent.token.custom.CreatureToken;

/**
*
Expand All @@ -36,9 +33,16 @@ public HissingQuagmire(UUID ownerId, CardSetInfo setInfo) {
this.addAbility(new GreenManaAbility());

// {1}{B}{G}: Hissing Quagmire becomes a 2/2 black and green Elemental creature with deathtouch until end of turn. It's still a land.
Effect effect = new BecomesCreatureSourceEffect(new HissingQuagmireToken(), CardType.LAND, Duration.EndOfTurn);
effect.setText("{this} becomes a 2/2 black and green Elemental creature with deathtouch until end of turn. It's still a land");
this.addAbility(new SimpleActivatedAbility(effect, new ManaCostsImpl<>("{1}{B}{G}")));
this.addAbility(new SimpleActivatedAbility(
new BecomesCreatureSourceEffect(
new CreatureToken(
2, 2, "2/2 black and green Elemental creature with deathtouch", SubType.ELEMENTAL
).withColor("BG").withAbility(DeathtouchAbility.getInstance()),
CardType.LAND,
Duration.EndOfTurn
).setText("{this} becomes a 2/2 black and green Elemental creature with deathtouch until end of turn. It's still a land"),
new ManaCostsImpl<>("{1}{B}{G}")
));
}

private HissingQuagmire(final HissingQuagmire card) {
Expand All @@ -50,24 +54,3 @@ public HissingQuagmire copy() {
return new HissingQuagmire(this);
}
}

class HissingQuagmireToken extends TokenImpl {

public HissingQuagmireToken() {
super("", "2/2 black and green Elemental creature with deathtouch");
cardType.add(CardType.CREATURE);
subtype.add(SubType.ELEMENTAL);
color.setBlack(true);
color.setGreen(true);
power = new MageInt(2);
toughness = new MageInt(2);
addAbility(DeathtouchAbility.getInstance());
}
private HissingQuagmireToken(final HissingQuagmireToken token) {
super(token);
}

public HissingQuagmireToken copy() {
return new HissingQuagmireToken(this);
}
}
32 changes: 8 additions & 24 deletions Mage.Sets/src/mage/cards/h/HuntingWilds.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
package mage.cards.h;

import java.util.UUID;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.condition.common.KickedCondition;
import mage.abilities.decorator.ConditionalOneShotEffect;
Expand All @@ -23,7 +22,7 @@
import mage.constants.SubType;
import mage.filter.common.FilterLandCard;
import mage.game.Game;
import mage.game.permanent.token.TokenImpl;
import mage.game.permanent.token.custom.CreatureToken;
import mage.target.common.TargetCardInLibrary;
import mage.target.targetpointer.FixedTargets;

Expand Down Expand Up @@ -87,7 +86,13 @@ public boolean apply(Game game, Ability source) {
untapEffect.setTargetPointer(blueprintTarget.copy());
untapEffect.apply(game, source);

BecomesCreatureTargetEffect becomesCreatureEffect = new BecomesCreatureTargetEffect(new HuntingWildsToken(), false, true, Duration.Custom);
BecomesCreatureTargetEffect becomesCreatureEffect = new BecomesCreatureTargetEffect(
new CreatureToken(3, 3, "3/3 green creature with haste")
.withColor("G").withAbility(HasteAbility.getInstance()),
false,
true,
Duration.Custom
);
becomesCreatureEffect.setTargetPointer(blueprintTarget.copy());
game.addEffect(becomesCreatureEffect, source);
}
Expand All @@ -97,24 +102,3 @@ public boolean apply(Game game, Ability source) {
return false;
}
}

class HuntingWildsToken extends TokenImpl {

public HuntingWildsToken() {
super("", "3/3 green creature with haste");
this.cardType.add(CardType.CREATURE);

this.color.setGreen(true);
this.power = new MageInt(3);
this.toughness = new MageInt(3);

this.addAbility(HasteAbility.getInstance());
}
private HuntingWildsToken(final HuntingWildsToken token) {
super(token);
}

public HuntingWildsToken copy() {
return new HuntingWildsToken(this);
}
}
33 changes: 8 additions & 25 deletions Mage.Sets/src/mage/cards/h/Hydroform.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,14 @@
package mage.cards.h;

import java.util.UUID;
import mage.MageInt;
import mage.abilities.effects.common.continuous.BecomesCreatureTargetEffect;
import mage.abilities.keyword.FlyingAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Duration;
import mage.constants.SubType;
import mage.game.permanent.token.TokenImpl;
import mage.game.permanent.token.custom.CreatureToken;
import mage.target.common.TargetLandPermanent;

/**
Expand All @@ -22,9 +21,14 @@ public final class Hydroform extends CardImpl {
public Hydroform(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{G}{U}");


// Target land becomes a 3/3 Elemental creature with flying until end of turn. It's still a land.
this.getSpellAbility().addEffect(new BecomesCreatureTargetEffect(new HydroformToken(), false, true, Duration.EndOfTurn));
this.getSpellAbility().addEffect(new BecomesCreatureTargetEffect(
new CreatureToken(3, 3, "3/3 Elemental creature with flying", SubType.ELEMENTAL)
.withAbility(FlyingAbility.getInstance()),
false,
true,
Duration.EndOfTurn
));
this.getSpellAbility().addTarget(new TargetLandPermanent());
}

Expand All @@ -37,24 +41,3 @@ public Hydroform copy() {
return new Hydroform(this);
}
}

class HydroformToken extends TokenImpl {

public HydroformToken() {
super("", "3/3 Elemental creature with flying");
this.cardType.add(CardType.CREATURE);
this.subtype.add(SubType.ELEMENTAL);

this.power = new MageInt(3);
this.toughness = new MageInt(3);

this.addAbility(FlyingAbility.getInstance());
}
private HydroformToken(final HydroformToken token) {
super(token);
}

public HydroformToken copy() {
return new HydroformToken(this);
}
}