forked from External/mage
implement [MH3] Volatile Stormdrake ; provide source Ability to canBeTargetedBy and HexproofBaseAbility::checkObject
This commit is contained in:
parent
8ec4ffd9de
commit
2d625f0364
49 changed files with 399 additions and 171 deletions
|
|
@ -1,6 +1,7 @@
|
|||
package mage.abilities.keyword;
|
||||
|
||||
import mage.MageObject;
|
||||
import mage.abilities.Ability;
|
||||
import mage.game.Game;
|
||||
|
||||
import java.io.ObjectStreamException;
|
||||
|
|
@ -32,7 +33,7 @@ public class HexproofAbility extends HexproofBaseAbility {
|
|||
}
|
||||
|
||||
@Override
|
||||
public boolean checkObject(MageObject source, Game game) {
|
||||
public boolean checkObject(MageObject sourceObject, Ability source, Game game) {
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ package mage.abilities.keyword;
|
|||
|
||||
import mage.MageObject;
|
||||
import mage.ObjectColor;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.MageSingleton;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.icon.CardIcon;
|
||||
|
|
@ -9,10 +10,12 @@ import mage.abilities.icon.CardIconImpl;
|
|||
import mage.abilities.icon.CardIconType;
|
||||
import mage.constants.Zone;
|
||||
import mage.game.Game;
|
||||
import mage.game.permanent.Permanent;
|
||||
import mage.util.CardUtil;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.Collections;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
/**
|
||||
* an abstract base class for hexproof abilities
|
||||
|
|
@ -21,11 +24,11 @@ import java.util.*;
|
|||
*/
|
||||
public abstract class HexproofBaseAbility extends SimpleStaticAbility implements MageSingleton {
|
||||
|
||||
HexproofBaseAbility() {
|
||||
protected HexproofBaseAbility() {
|
||||
super(Zone.BATTLEFIELD, null);
|
||||
}
|
||||
|
||||
public abstract boolean checkObject(MageObject source, Game game);
|
||||
public abstract boolean checkObject(MageObject sourceObject, Ability source, Game game);
|
||||
|
||||
public static Set<HexproofBaseAbility> getFromColor(ObjectColor color) {
|
||||
Set<HexproofBaseAbility> abilities = new HashSet<>();
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
package mage.abilities.keyword;
|
||||
|
||||
import mage.MageObject;
|
||||
import mage.abilities.Ability;
|
||||
import mage.game.Game;
|
||||
|
||||
import java.io.ObjectStreamException;
|
||||
|
|
@ -31,8 +32,8 @@ public class HexproofFromArtifactsCreaturesAndEnchantments extends HexproofBaseA
|
|||
}
|
||||
|
||||
@Override
|
||||
public boolean checkObject(MageObject source, Game game) {
|
||||
return source.isArtifact(game) || source.isCreature(game) || source.isEnchantment(game);
|
||||
public boolean checkObject(MageObject sourceObject, Ability source, Game game) {
|
||||
return sourceObject.isArtifact(game) || sourceObject.isCreature(game) || sourceObject.isEnchantment(game);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
package mage.abilities.keyword;
|
||||
|
||||
import mage.MageObject;
|
||||
import mage.abilities.Ability;
|
||||
import mage.game.Game;
|
||||
|
||||
import java.io.ObjectStreamException;
|
||||
|
|
@ -32,8 +33,8 @@ public class HexproofFromBlackAbility extends HexproofBaseAbility {
|
|||
}
|
||||
|
||||
@Override
|
||||
public boolean checkObject(MageObject source, Game game) {
|
||||
return source.getColor(game).isBlack();
|
||||
public boolean checkObject(MageObject sourceObject, Ability source, Game game) {
|
||||
return sourceObject.getColor(game).isBlack();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
package mage.abilities.keyword;
|
||||
|
||||
import mage.MageObject;
|
||||
import mage.abilities.Ability;
|
||||
import mage.game.Game;
|
||||
|
||||
import java.io.ObjectStreamException;
|
||||
|
|
@ -32,8 +33,8 @@ public class HexproofFromBlueAbility extends HexproofBaseAbility {
|
|||
}
|
||||
|
||||
@Override
|
||||
public boolean checkObject(MageObject source, Game game) {
|
||||
return source.getColor(game).isBlue();
|
||||
public boolean checkObject(MageObject sourceObject, Ability source, Game game) {
|
||||
return sourceObject.getColor(game).isBlue();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
package mage.abilities.keyword;
|
||||
|
||||
import mage.MageObject;
|
||||
import mage.abilities.Ability;
|
||||
import mage.game.Game;
|
||||
|
||||
import java.io.ObjectStreamException;
|
||||
|
|
@ -31,8 +32,8 @@ public class HexproofFromEachColorAbility extends HexproofBaseAbility {
|
|||
}
|
||||
|
||||
@Override
|
||||
public boolean checkObject(MageObject source, Game game) {
|
||||
return !source.getColor(game).isColorless();
|
||||
public boolean checkObject(MageObject sourceObject, Ability source, Game game) {
|
||||
return !sourceObject.getColor(game).isColorless();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
package mage.abilities.keyword;
|
||||
|
||||
import mage.MageObject;
|
||||
import mage.abilities.Ability;
|
||||
import mage.game.Game;
|
||||
|
||||
import java.io.ObjectStreamException;
|
||||
|
|
@ -32,8 +33,8 @@ public class HexproofFromGreenAbility extends HexproofBaseAbility {
|
|||
}
|
||||
|
||||
@Override
|
||||
public boolean checkObject(MageObject source, Game game) {
|
||||
return source.getColor(game).isGreen();
|
||||
public boolean checkObject(MageObject sourceObject, Ability source, Game game) {
|
||||
return sourceObject.getColor(game).isGreen();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
package mage.abilities.keyword;
|
||||
|
||||
import mage.MageObject;
|
||||
import mage.abilities.Ability;
|
||||
import mage.game.Game;
|
||||
|
||||
import java.io.ObjectStreamException;
|
||||
|
|
@ -32,8 +33,8 @@ public class HexproofFromMonocoloredAbility extends HexproofBaseAbility {
|
|||
}
|
||||
|
||||
@Override
|
||||
public boolean checkObject(MageObject source, Game game) {
|
||||
return !source.getColor(game).isMulticolored() && !source.getColor(game).isColorless();
|
||||
public boolean checkObject(MageObject sourceObject, Ability source, Game game) {
|
||||
return !sourceObject.getColor(game).isMulticolored() && !sourceObject.getColor(game).isColorless();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -1,10 +1,11 @@
|
|||
package mage.abilities.keyword;
|
||||
|
||||
import java.io.ObjectStreamException;
|
||||
|
||||
import mage.MageObject;
|
||||
import mage.abilities.Ability;
|
||||
import mage.game.Game;
|
||||
|
||||
import java.io.ObjectStreamException;
|
||||
|
||||
public class HexproofFromMulticoloredAbility extends HexproofBaseAbility {
|
||||
|
||||
private static final HexproofFromMulticoloredAbility instance;
|
||||
|
|
@ -31,8 +32,8 @@ public class HexproofFromMulticoloredAbility extends HexproofBaseAbility {
|
|||
}
|
||||
|
||||
@Override
|
||||
public boolean checkObject(MageObject source, Game game) {
|
||||
return source.getColor().isMulticolored();
|
||||
public boolean checkObject(MageObject sourceObject, Ability source, Game game) {
|
||||
return sourceObject.getColor().isMulticolored();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
package mage.abilities.keyword;
|
||||
|
||||
import mage.MageObject;
|
||||
import mage.abilities.Ability;
|
||||
import mage.game.Game;
|
||||
|
||||
import java.io.ObjectStreamException;
|
||||
|
|
@ -31,8 +32,8 @@ public class HexproofFromPlaneswalkersAbility extends HexproofBaseAbility {
|
|||
}
|
||||
|
||||
@Override
|
||||
public boolean checkObject(MageObject source, Game game) {
|
||||
return source.isPlaneswalker(game);
|
||||
public boolean checkObject(MageObject sourceObject, Ability source, Game game) {
|
||||
return sourceObject.isPlaneswalker(game);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
package mage.abilities.keyword;
|
||||
|
||||
import mage.MageObject;
|
||||
import mage.abilities.Ability;
|
||||
import mage.game.Game;
|
||||
|
||||
import java.io.ObjectStreamException;
|
||||
|
|
@ -32,8 +33,8 @@ public class HexproofFromRedAbility extends HexproofBaseAbility {
|
|||
}
|
||||
|
||||
@Override
|
||||
public boolean checkObject(MageObject source, Game game) {
|
||||
return source.getColor(game).isRed();
|
||||
public boolean checkObject(MageObject sourceObject, Ability source, Game game) {
|
||||
return sourceObject.getColor(game).isRed();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
package mage.abilities.keyword;
|
||||
|
||||
import mage.MageObject;
|
||||
import mage.abilities.Ability;
|
||||
import mage.game.Game;
|
||||
|
||||
import java.io.ObjectStreamException;
|
||||
|
|
@ -32,8 +33,8 @@ public class HexproofFromWhiteAbility extends HexproofBaseAbility {
|
|||
}
|
||||
|
||||
@Override
|
||||
public boolean checkObject(MageObject source, Game game) {
|
||||
return source.getColor(game).isWhite();
|
||||
public boolean checkObject(MageObject sourceObject, Ability source, Game game) {
|
||||
return sourceObject.getColor(game).isWhite();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue