Implemented Veil of Summer

This commit is contained in:
Evan Kranzler 2019-06-23 19:00:08 -04:00
parent 3811a6eb00
commit 61287046f4
4 changed files with 205 additions and 8 deletions

View file

@ -0,0 +1,44 @@
package mage.abilities.keyword;
import mage.abilities.MageSingleton;
import mage.abilities.common.SimpleStaticAbility;
import mage.constants.Zone;
import java.io.ObjectStreamException;
/**
* Hexproof from blue (This creature or player can't be the target of black
* spells or abilities your opponents control.)
*
* @author igoudt
*/
public class HexproofFromBlueAbility extends SimpleStaticAbility implements MageSingleton {
private static final HexproofFromBlueAbility instance;
static {
instance = new HexproofFromBlueAbility();
}
private Object readResolve() throws ObjectStreamException {
return instance;
}
public static HexproofFromBlueAbility getInstance() {
return instance;
}
private HexproofFromBlueAbility() {
super(Zone.BATTLEFIELD, null);
}
@Override
public HexproofFromBlueAbility copy() {
return instance;
}
@Override
public String getRule() {
return "hexproof from blue <i>(This creature can't be the target of blue spells or abilities your opponents control.)</i>";
}
}

View file

@ -1008,14 +1008,6 @@ public abstract class PermanentImpl extends CardImpl implements Permanent {
}
}
if (abilities.containsKey(HexproofFromBlackAbility.getInstance().getId())) {
if (game.getPlayer(this.getControllerId()).hasOpponent(sourceControllerId, game)
&& null == game.getContinuousEffects().asThough(this.getId(), AsThoughEffectType.HEXPROOF, null, sourceControllerId, game)
&& source.getColor(game).isBlack()) {
return false;
}
}
if (abilities.containsKey(HexproofFromWhiteAbility.getInstance().getId())) {
if (game.getPlayer(this.getControllerId()).hasOpponent(sourceControllerId, game)
&& null == game.getContinuousEffects().asThough(this.getId(), AsThoughEffectType.HEXPROOF, null, sourceControllerId, game)
@ -1024,6 +1016,22 @@ public abstract class PermanentImpl extends CardImpl implements Permanent {
}
}
if (abilities.containsKey(HexproofFromBlueAbility.getInstance().getId())) {
if (game.getPlayer(this.getControllerId()).hasOpponent(sourceControllerId, game)
&& null == game.getContinuousEffects().asThough(this.getId(), AsThoughEffectType.HEXPROOF, null, sourceControllerId, game)
&& source.getColor(game).isBlue()) {
return false;
}
}
if (abilities.containsKey(HexproofFromBlackAbility.getInstance().getId())) {
if (game.getPlayer(this.getControllerId()).hasOpponent(sourceControllerId, game)
&& null == game.getContinuousEffects().asThough(this.getId(), AsThoughEffectType.HEXPROOF, null, sourceControllerId, game)
&& source.getColor(game).isBlack()) {
return false;
}
}
if (abilities.containsKey(HexproofFromMonocoloredAbility.getInstance().getId())) {
if (game.getPlayer(this.getControllerId()).hasOpponent(sourceControllerId, game)
&& null == game.getContinuousEffects().asThough(this.getId(), AsThoughEffectType.HEXPROOF, null, sourceControllerId, game)