mirror of
https://github.com/magefree/mage.git
synced 2025-12-25 21:12:04 -08:00
Implemented Kathril, Aspect Warper
This commit is contained in:
parent
3632eba3e8
commit
381de68563
14 changed files with 229 additions and 38 deletions
|
|
@ -1,17 +1,18 @@
|
|||
package mage.abilities.keyword;
|
||||
|
||||
import java.io.ObjectStreamException;
|
||||
import mage.abilities.MageSingleton;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.constants.Zone;
|
||||
|
||||
import java.io.ObjectStreamException;
|
||||
|
||||
/**
|
||||
* Hexproof (This creature or player can't be the target of spells or abilities
|
||||
* your opponents control.)
|
||||
*
|
||||
* @author loki
|
||||
*/
|
||||
public class HexproofAbility extends SimpleStaticAbility implements MageSingleton {
|
||||
public class HexproofAbility extends SimpleStaticAbility implements MageSingleton, HexproofInterface {
|
||||
|
||||
private static final HexproofAbility instance;
|
||||
|
||||
|
|
|
|||
|
|
@ -1,17 +1,18 @@
|
|||
package mage.abilities.keyword;
|
||||
|
||||
import java.io.ObjectStreamException;
|
||||
import mage.abilities.MageSingleton;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.constants.Zone;
|
||||
|
||||
import java.io.ObjectStreamException;
|
||||
|
||||
/**
|
||||
* Hexproof from black (This creature or player can't be the target of black
|
||||
* spells or abilities your opponents control.)
|
||||
*
|
||||
* @author igoudt
|
||||
*/
|
||||
public class HexproofFromBlackAbility extends SimpleStaticAbility implements MageSingleton {
|
||||
public class HexproofFromBlackAbility extends SimpleStaticAbility implements MageSingleton, HexproofInterface {
|
||||
|
||||
private static final HexproofFromBlackAbility instance;
|
||||
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ import java.io.ObjectStreamException;
|
|||
*
|
||||
* @author igoudt
|
||||
*/
|
||||
public class HexproofFromBlueAbility extends SimpleStaticAbility implements MageSingleton {
|
||||
public class HexproofFromBlueAbility extends SimpleStaticAbility implements MageSingleton, HexproofInterface {
|
||||
|
||||
private static final HexproofFromBlueAbility instance;
|
||||
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ import java.io.ObjectStreamException;
|
|||
*
|
||||
* @author TheElk801
|
||||
*/
|
||||
public class HexproofFromMonocoloredAbility extends SimpleStaticAbility implements MageSingleton {
|
||||
public class HexproofFromMonocoloredAbility extends SimpleStaticAbility implements MageSingleton, HexproofInterface {
|
||||
|
||||
private static final HexproofFromMonocoloredAbility instance;
|
||||
|
||||
|
|
|
|||
|
|
@ -1,17 +1,18 @@
|
|||
package mage.abilities.keyword;
|
||||
|
||||
import java.io.ObjectStreamException;
|
||||
import mage.abilities.MageSingleton;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.constants.Zone;
|
||||
|
||||
import java.io.ObjectStreamException;
|
||||
|
||||
/**
|
||||
* Hexproof from white (This creature or player can't be the target of white
|
||||
* spells or abilities your opponents control.)
|
||||
*
|
||||
* @author igoudt
|
||||
*/
|
||||
public class HexproofFromWhiteAbility extends SimpleStaticAbility implements MageSingleton {
|
||||
public class HexproofFromWhiteAbility extends SimpleStaticAbility implements MageSingleton, HexproofInterface {
|
||||
|
||||
private static final HexproofFromWhiteAbility instance;
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,9 @@
|
|||
package mage.abilities.keyword;
|
||||
|
||||
/**
|
||||
* an interface for hexproof abilities
|
||||
*
|
||||
* @author TheElk801
|
||||
*/
|
||||
public interface HexproofInterface {
|
||||
}
|
||||
|
|
@ -37,6 +37,7 @@ public enum CounterType {
|
|||
DEVOTION("devotion"),
|
||||
DIVINITY("divinity"),
|
||||
DOOM("doom"),
|
||||
DOUBLE_STRIKE("double strike"),
|
||||
DREAM("dream"),
|
||||
ECHO("echo"),
|
||||
EGG("egg"),
|
||||
|
|
@ -49,6 +50,7 @@ public enum CounterType {
|
|||
FATE("fate"),
|
||||
FEATHER("feather"),
|
||||
FILIBUSTER("filibuster"),
|
||||
FIRST_STRIKE("first strike"),
|
||||
FLOOD("flood"),
|
||||
FLYING("flying"),
|
||||
FUNK("funk"),
|
||||
|
|
@ -69,6 +71,7 @@ public enum CounterType {
|
|||
HOURGLASS("hourglass"),
|
||||
HUNGER("hunger"),
|
||||
ICE("ice"),
|
||||
INDESTRUCTIBLE("indestructible"),
|
||||
INFECTION("infection"),
|
||||
INTERVENTION("intervention"),
|
||||
ISOLATION("isolation"),
|
||||
|
|
@ -115,6 +118,7 @@ public enum CounterType {
|
|||
PRESSURE("pressure"),
|
||||
PREY("prey"),
|
||||
PUPA("pupa"),
|
||||
REACH("reach"),
|
||||
REPAIR("repair"),
|
||||
RUST("rust"),
|
||||
QUEST("quest"),
|
||||
|
|
@ -145,6 +149,7 @@ public enum CounterType {
|
|||
UNITY("unity"),
|
||||
VELOCITY("velocity"),
|
||||
VERSE("verse"),
|
||||
VIGILANCE("vigilance"),
|
||||
VITALITY("vitality"),
|
||||
VORTEX("vortex"),
|
||||
WAGE("wage"),
|
||||
|
|
@ -203,16 +208,26 @@ public enum CounterType {
|
|||
return new BoostCounter(-2, -2, amount);
|
||||
case DEATHTOUCH:
|
||||
return new AbilityCounter(DeathtouchAbility.getInstance());
|
||||
case DOUBLE_STRIKE:
|
||||
return new AbilityCounter(DoubleStrikeAbility.getInstance());
|
||||
case FIRST_STRIKE:
|
||||
return new AbilityCounter(FirstStrikeAbility.getInstance());
|
||||
case FLYING:
|
||||
return new AbilityCounter(FlyingAbility.getInstance());
|
||||
case HEXPROOF:
|
||||
return new AbilityCounter(HexproofAbility.getInstance());
|
||||
case INDESTRUCTIBLE:
|
||||
return new AbilityCounter(IndestructibleAbility.getInstance());
|
||||
case LIFELINK:
|
||||
return new AbilityCounter(LifelinkAbility.getInstance());
|
||||
case MENACE:
|
||||
return new AbilityCounter(new MenaceAbility());
|
||||
case REACH:
|
||||
return new AbilityCounter(ReachAbility.getInstance());
|
||||
case TRAMPLE:
|
||||
return new AbilityCounter(TrampleAbility.getInstance());
|
||||
case VIGILANCE:
|
||||
return new AbilityCounter(VigilanceAbility.getInstance());
|
||||
default:
|
||||
return new Counter(name, amount);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,7 +9,6 @@ import mage.filter.predicate.Predicate;
|
|||
import mage.game.Game;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author North
|
||||
*/
|
||||
public class AbilityPredicate implements Predicate<MageObject> {
|
||||
|
|
@ -23,12 +22,12 @@ public class AbilityPredicate implements Predicate<MageObject> {
|
|||
@Override
|
||||
public boolean apply(MageObject input, Game game) {
|
||||
Abilities<Ability> abilities;
|
||||
if (input instanceof Card){
|
||||
abilities = ((Card)input).getAbilities(game);
|
||||
if (input instanceof Card) {
|
||||
abilities = ((Card) input).getAbilities(game);
|
||||
} else {
|
||||
abilities = input.getAbilities();
|
||||
}
|
||||
return abilities.stream().anyMatch(ability -> ability.getClass().equals(abilityClass));
|
||||
return abilities.stream().anyMatch(abilityClass::isInstance);
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue