mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-16 18:58:00 +00:00
TokenEffect: make the Kalitas + Anointed Possession working
This commit is contained in:
@@ -186,6 +186,13 @@ public class TokenEffect extends SpellAbilityEffect {
|
||||
final SpellAbility root = sa.getRootAbility();
|
||||
readParameters(sa);
|
||||
|
||||
// Cause of the Token Effect, in general it should be this
|
||||
// but if its a Replacement Effect, it might be something else or null
|
||||
SpellAbility cause = sa;
|
||||
if (root.isReplacementAbility() && root.hasReplacingObject("Cause")) {
|
||||
cause = (SpellAbility)root.getReplacingObject("Cause");
|
||||
}
|
||||
|
||||
String cost = "";
|
||||
|
||||
// Construct original colors
|
||||
@@ -266,7 +273,7 @@ public class TokenEffect extends SpellAbilityEffect {
|
||||
final String imageName = imageNames.get(MyRandom.getRandom().nextInt(imageNames.size()));
|
||||
final CardFactory.TokenInfo tokenInfo = new CardFactory.TokenInfo(substitutedName, imageName,
|
||||
cost, substitutedTypes, this.tokenKeywords, finalPower, finalToughness);
|
||||
final List<Card> tokens = CardFactory.makeToken(tokenInfo, controller);
|
||||
final List<Card> tokens = CardFactory.makeToken(tokenInfo, controller, cause != null);
|
||||
|
||||
// Grant rule changes
|
||||
if (this.tokenHiddenKeywords != null) {
|
||||
|
||||
@@ -797,10 +797,6 @@ public class CardFactory {
|
||||
}
|
||||
}
|
||||
|
||||
public static List<Card> makeToken(final TokenInfo tokenInfo, final Player controller) {
|
||||
return makeToken(tokenInfo, controller, true);
|
||||
}
|
||||
|
||||
public static List<Card> makeToken(final TokenInfo tokenInfo, final Player controller, final boolean applyMultiplier) {
|
||||
final List<Card> list = Lists.newArrayList();
|
||||
final Game game = controller.getGame();
|
||||
|
||||
@@ -1300,8 +1300,7 @@ public class GameSimulatorTest extends SimulationTestCase {
|
||||
assertNotNull(fatalPushSA);
|
||||
fatalPushSA.setTargetCard(goblin);
|
||||
|
||||
// Electrify: should only generate 1 token (FIXME: Forge currently generates 2 tokens!)
|
||||
// (check http://magicjudge.tumblr.com/post/160491073029/weird-card-interaction-alert-kalitas-anointed )
|
||||
// Electrify: should only generate 1 token
|
||||
Card electrify = addCardToZone("Electrify", p, ZoneType.Hand);
|
||||
SpellAbility electrifySA = electrify.getFirstSpellAbility();
|
||||
assertNotNull(electrifySA);
|
||||
@@ -1314,9 +1313,6 @@ public class GameSimulatorTest extends SimulationTestCase {
|
||||
|
||||
score = sim.simulateSpellAbility(electrifySA).value;
|
||||
assertTrue(score > 0);
|
||||
// TODO: this will currently fail because Forge does not implement this interaction correctly,
|
||||
// generating two tokens instead of one after Electrify.
|
||||
// Please fix and then enable the assertion line below to ensure it stays properly implemented.
|
||||
//assertTrue(countCardsWithName(sim.getSimulatedGameState(), "Zombie") == 3);
|
||||
assertTrue(countCardsWithName(sim.getSimulatedGameState(), "Zombie") == 3);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user