Many changes to split cards handling (showing arrows and log text for fused spells., handling protection and other things correctly).

This commit is contained in:
LevelX2 2013-05-11 20:11:58 +02:00
parent 22bdb209ab
commit 101194acf7
11 changed files with 165 additions and 98 deletions

View file

@ -56,8 +56,6 @@ import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
import mage.Constants;
import static mage.Constants.SpellAbilityType.SPLIT_LEFT;
import static mage.Constants.SpellAbilityType.SPLIT_RIGHT;
import mage.cards.SplitCard;
/**
@ -139,7 +137,7 @@ public class Spell<T extends Spell<T>> implements StackObject, Card {
result = false;
boolean legalParts = false;
for(SpellAbility spellAbility: this.spellAbilities) {
if (spellAbility.getTargets().stillLegal(ability, game)) {
if (spellAbility.getTargets().stillLegal(spellAbility, game)) {
legalParts = true;
updateOptionalCosts(index);
result |= spellAbility.resolve(game);
@ -270,6 +268,11 @@ public class Spell<T extends Spell<T>> implements StackObject, Card {
return card.getName();
}
@Override
public String getImageName() {
return card.getImageName();
}
@Override
public void setName(String name) {}
@ -301,6 +304,11 @@ public class Spell<T extends Spell<T>> implements StackObject, Card {
return card.getSupertype();
}
public List<SpellAbility> getSpellAbilities() {
return spellAbilities;
}
@Override
public Abilities<Ability> getAbilities() {
return card.getAbilities();
@ -361,26 +369,12 @@ public class Spell<T extends Spell<T>> implements StackObject, Card {
@Override
public List<String> getRules() {
switch (ability.getSpellAbilityType()) {
case SPLIT_LEFT:
return ((SplitCard)card).getLeftHalfCard().getRules();
case SPLIT_RIGHT:
return ((SplitCard)card).getRightHalfCard().getRules();
default:
return card.getRules();
}
return card.getRules();
}
@Override
public List<Watcher> getWatchers() {
switch (ability.getSpellAbilityType()) {
case SPLIT_LEFT:
return ((SplitCard)card).getLeftHalfCard().getWatchers();
case SPLIT_RIGHT:
return ((SplitCard)card).getLeftHalfCard().getWatchers();
default:
return card.getWatchers();
}
return card.getWatchers();
}
@Override