- FIXME: A somewhat better hack to get the Aftermath cards to behave more or less as a correct card type from the graveyard (still requires a better, more universal solution; and notice that visually the card type is still broken - e.g. Destined // Lead is visualized as Instant in the graveyard, at least until an attempt is made at casting it, although it behaves as a Sorcery).

This commit is contained in:
Agetian
2017-04-22 12:20:40 +00:00
parent 307ec6d650
commit 40e0bc9782
2 changed files with 10 additions and 10 deletions

View File

@@ -177,6 +177,15 @@ public class GameAction {
c.getController().setRevolt(true); c.getController().setRevolt(true);
} }
// FIXME: A hack to get the Aftermath split cards to behave as correct type upon going to graveyard
if (c.isSplitCard() && c.hasKeyword("Aftermath")) {
if (zoneTo.is(ZoneType.Graveyard)) {
c.setType(CardType.parse(c.getState(CardStateName.RightSplit).getType().toString()));
} else if (!zoneTo.is(ZoneType.Stack)) {
c.setType(CardType.parse(c.getState(CardStateName.LeftSplit).getType().toString()));
}
}
// Don't copy Tokens, copy only cards leaving the battlefield // Don't copy Tokens, copy only cards leaving the battlefield
// and returning to hand (to recreate their spell ability information) // and returning to hand (to recreate their spell ability information)
if (suppress || (!fromBattlefield && !toHand)) { if (suppress || (!fromBattlefield && !toHand)) {

View File

@@ -3464,16 +3464,7 @@ public class CardFactoryUtil {
// only target RightSplit of it // only target RightSplit of it
final SpellAbility origSA = card.getState(CardStateName.RightSplit).getFirstAbility(); final SpellAbility origSA = card.getState(CardStateName.RightSplit).getFirstAbility();
origSA.getRestrictions().setZone(ZoneType.Graveyard); origSA.getRestrictions().setZone(ZoneType.Graveyard);
card.getState(CardStateName.RightSplit).setType(CardType.parse("Sorcery"));
// FIXME: Without properly setting casting speed here, Sorcery RightSplit can be cast at Instant speed
// despite the fact that the card type is correctly set to Sorcery.
if (card.getState(CardStateName.RightSplit).getType().isSorcery()) {
origSA.getRestrictions().setSorcerySpeed(true);
origSA.getRestrictions().setInstantSpeed(false);
} else if (card.getState(CardStateName.RightSplit).getType().isInstant()) {
origSA.getRestrictions().setSorcerySpeed(false);
origSA.getRestrictions().setInstantSpeed(true);
}
// Add the Exile Self Part // Add the Exile Self Part
String dbStr = "DB$ ChangeZone | Origin$ Stack | Destination$ Exile"; String dbStr = "DB$ ChangeZone | Origin$ Stack | Destination$ Exile";