rename MagicObject.isCreature to MagicObject.isCreaturePermanent to avoid confusion with IRenderableCard.isCreature, fixes #698

master
melvinzhang 2016-02-18 10:03:15 +08:00
parent 8150dc8d9b
commit 10ef3adf88
21 changed files with 30 additions and 27 deletions

View File

@ -4,7 +4,7 @@
public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent, final MagicDamage damage) {
final int amount = permanent.getCounters(MagicCounterType.Age);
final int preventAmount = Math.min(amount, damage.getAmount());
if (damage.getSource().isCreature() && damage.isCombat() && damage.getTarget().isFriend(permanent)) {
if (damage.getSource().isCreaturePermanent() && damage.isCombat() && damage.getTarget().isFriend(permanent)) {
// Replacement effect. Generates no event or action.
damage.prevent(amount);
game.logAppendMessage(permanent.getController(), "${permanent} prevents (${preventAmount}) damage dealt to (${damage.getTarget()}).");

View File

@ -3,7 +3,7 @@
@Override
public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent,final MagicDamage damage) {
return (permanent.isOpponent(damage.getTarget()) &&
damage.getSource().isCreature() &&
damage.getSource().isCreaturePermanent() &&
damage.isCombat()) ?
new MagicEvent(
permanent,

View File

@ -24,7 +24,7 @@
@Override
public void executeEvent(final MagicGame game, final MagicEvent event) {
event.processTarget(game, {
final int amount = (it.isCreature() && it.hasColor(MagicColor.Green)) ? 2 : 1;
final int amount = (it.isCreaturePermanent() && it.hasColor(MagicColor.Green)) ? 2 : 1;
game.doAction(new PreventDamageAction(it,amount));
});
}

View File

@ -4,7 +4,7 @@
public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent,final MagicDamage damage) {
if (damage.isCombat()) {
final MagicPermanent damageSource = (MagicPermanent)damage.getSource();
if (permanent == damage.getTarget() && damageSource.isEnchanted() && damageSource.isCreature()) {
if (permanent == damage.getTarget() && damageSource.isEnchanted() && damageSource.isCreaturePermanent()) {
damage.prevent();
}
}

View File

@ -3,7 +3,7 @@
@Override
public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent,final MagicDamage damage) {
final MagicSource source = damage.getSource();
if (permanent.isFriend(source) && source.isCreature()) {
if (permanent.isFriend(source) && source.isCreaturePermanent()) {
// Generates no event or action.
damage.setAmount(damage.getAmount() * 2);
}

View File

@ -2,7 +2,7 @@
new IfDamageWouldBeDealtTrigger(MagicTrigger.REPLACE_DAMAGE) {
@Override
public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent,final MagicDamage damage) {
if (damage.getTarget().isFriend(permanent) && damage.getTarget().isCreature()) {
if (damage.getTarget().isFriend(permanent) && damage.getTarget().isCreaturePermanent()) {
damage.setAmount(damage.getAmount()-1);
}
return MagicEvent.NONE;

View File

@ -3,7 +3,7 @@
@Override
public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent,final MagicDamage damage) {
final MagicSource source = damage.getSource()
return (source.isCreature() && source.isFriend(permanent) &&
return (source.isCreaturePermanent() && source.isFriend(permanent) &&
damage.isCombat() && damage.isTargetPlayer()) ?
new MagicEvent(
source,

View File

@ -2,7 +2,7 @@
new DamageIsDealtTrigger() {
@Override
public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent, final MagicDamage damage) {
return (damage.getSource().isCreature() && damage.getSource().isFriend(permanent) && damage.isCombat()) ?
return (damage.getSource().isCreaturePermanent() && damage.getSource().isFriend(permanent) && damage.isCombat()) ?
new MagicEvent(
permanent,
damage.getDealtAmount(),

View File

@ -6,7 +6,7 @@
return (damage.isCombat() &&
damage.isTargetPlayer() &&
permanent.isFriend(dmgSource) &&
dmgSource.isCreature() &&
dmgSource.isCreaturePermanent() &&
dmgSource.hasSubType(MagicSubType.Vampire)) ?
new MagicEvent(
permanent,

View File

@ -3,7 +3,7 @@
@Override
public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent,final MagicDamage damage) {
final MagicSource source = damage.getSource();
return (source.isCreature() && source.isFriend(permanent) &&
return (source.isCreaturePermanent() && source.isFriend(permanent) &&
damage.isCombat() && damage.isTargetPlayer()) ?
new MagicEvent(
permanent,

View File

@ -4,7 +4,7 @@
public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent,final MagicDamage damage) {
final int amount = damage.getDealtAmount();
final MagicSource source = damage.getSource();
return (!source.isCreature() && permanent.isFriend(source)) ?
return (!source.isCreaturePermanent() && permanent.isFriend(source)) ?
new MagicEvent(
permanent,
amount,

View File

@ -4,7 +4,7 @@
public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent,final MagicDamage damage) {
if (permanent.isController(damage.getTarget()) &&
damage.isCombat() &&
damage.getSource().isCreature() &&
damage.getSource().isCreaturePermanent() &&
permanent.isUntapped()
) {
// Prevention effect.

View File

@ -6,7 +6,7 @@
int amount = 0;
if (target != permanent &&
target.isCreature() &&
target.isCreaturePermanent() &&
permanent.isFriend(target)) {
amount = damage.prevent();
}

View File

@ -1,7 +1,7 @@
def T = new DamageIsDealtTrigger() {
@Override
public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent,final MagicDamage damage) {
return (damage.getSource().isCreature() &&
return (damage.getSource().isCreaturePermanent() &&
damage.isCombat() &&
damage.getTarget() == permanent) ?
new MagicEvent(

View File

@ -59,7 +59,7 @@ public class MagicDamage {
}
public boolean isTargetCreature() {
return target.isCreature();
return target.isCreaturePermanent();
}
public MagicPlayer getTargetPlayer() {

View File

@ -8,8 +8,8 @@ public interface MagicObject extends MagicCopyable {
boolean isInstantOrSorcerySpell();
boolean isPlayer();
boolean isPermanent();
boolean isCreature();
boolean isPlaneswalker();
boolean isCreaturePermanent();
boolean isPlaneswalkerPermanent();
boolean hasColor(final MagicColor color);
boolean hasAbility(final MagicAbility ability);
boolean hasType(final MagicType type);

View File

@ -17,12 +17,12 @@ public abstract class MagicObjectImpl implements MagicObject {
}
@Override
public boolean isCreature() {
public boolean isCreaturePermanent() {
return isPermanent() && hasType(MagicType.Creature);
}
@Override
public boolean isPlaneswalker() {
public boolean isPlaneswalkerPermanent() {
return isPermanent() && hasType(MagicType.Planeswalker);
}

View File

@ -64,8 +64,8 @@ public class DealDamageAction extends MagicAction {
/*
119.1. Objects can deal damage to creatures, planeswalkers, and players.
*/
if (!target.isCreature() &&
!target.isPlaneswalker() &&
if (!target.isCreaturePermanent() &&
!target.isPlaneswalkerPermanent() &&
!target.isPlayer()) {
return;
}
@ -78,12 +78,12 @@ public class DealDamageAction extends MagicAction {
final MagicSource source=damage.getSource();
if (target.isPlaneswalker()) {
if (target.isPlaneswalkerPermanent()) {
final MagicPermanent targetPermanent=(MagicPermanent)target;
game.doAction(new ChangeCountersAction(targetPermanent,MagicCounterType.Loyalty,-dealtAmount));
}
if (target.isCreature()) {
if (target.isCreaturePermanent()) {
final MagicPermanent targetPermanent=(MagicPermanent)target;
if (damage.hasNoRegeneration()) {
game.doAction(ChangeStateAction.Set(targetPermanent,MagicPermanentState.CannotBeRegenerated));

View File

@ -295,7 +295,7 @@ public abstract class MagicCondition implements MagicMatchedCostEvent {
public static MagicCondition NOT_CREATURE_CONDITION=new MagicCondition() {
public boolean accept(final MagicSource source) {
return !source.isCreature();
return !source.isCreaturePermanent();
}
};

View File

@ -611,7 +611,7 @@ public class MagicTargetFilterFactory {
public static final MagicTargetFilterImpl CREATURE_OR_PLAYER=new MagicTargetFilterImpl() {
public boolean accept(final MagicSource source,final MagicPlayer player,final MagicTarget target) {
return target.isPlayer() ||
target.isCreature();
target.isCreaturePermanent();
}
public boolean acceptType(final MagicTargetType targetType) {
return targetType==MagicTargetType.Permanent ||
@ -622,7 +622,7 @@ public class MagicTargetFilterFactory {
public static final MagicTargetFilterImpl SLIVER_CREATURE_OR_PLAYER=new MagicTargetFilterImpl() {
public boolean accept(final MagicSource source,final MagicPlayer player,final MagicTarget target) {
return target.isPlayer() ||
(target.isCreature() && target.hasSubType(MagicSubType.Sliver));
(target.isCreaturePermanent() && target.hasSubType(MagicSubType.Sliver));
}
public boolean acceptType(final MagicTargetType targetType) {
return targetType==MagicTargetType.Permanent ||

View File

@ -30,7 +30,6 @@ public interface IRenderableCard {
boolean isSplitCard();
boolean isDoubleFaced();
boolean hasAbility(MagicAbility ability);
boolean isPlaneswalker();
MagicCardDefinition getCardDefinition();
default MagicCardDefinition getTransformedDefinition() {
@ -55,6 +54,10 @@ public interface IRenderableCard {
return Collections.disjoint(list, MagicIcon.COLOR_MANA) && !Collections.disjoint(list, MagicIcon.HYBRID_COLOR_MANA);
}
default boolean isPlaneswalker() {
return hasType(MagicType.Planeswalker);
}
default boolean isLand() {
return hasType(MagicType.Land);
}