CloneEffect: setOriginalHost for SpellAbilities and ReplacementEffects

This commit is contained in:
Hanmac
2016-08-10 05:38:39 +00:00
parent 5a033d066f
commit 0181b9c859

View File

@@ -12,6 +12,7 @@ import forge.game.card.CardFactory;
import forge.game.card.CardFactoryUtil;
import forge.game.card.CardUtil;
import forge.game.event.GameEventCardStatsChanged;
import forge.game.replacement.ReplacementEffect;
import forge.game.spellability.SpellAbility;
import forge.game.spellability.TargetRestrictions;
import forge.game.staticability.StaticAbility;
@@ -137,6 +138,20 @@ public class CloneEffect extends SpellAbilityEffect {
// add extra abilities as granted by the copy effect
addExtraCharacteristics(tgtCard, sa, origSVars);
// set the host card for copied replacement effects
// needed for copied xPaid ETB effects (for the copy, xPaid = 0)
for (final ReplacementEffect rep : tgtCard.getReplacementEffects()) {
final SpellAbility newSa = rep.getOverridingAbility();
if (newSa != null) {
newSa.setOriginalHost(cardToCopy);
}
}
// set the host card for copied spellabilities
for (final SpellAbility newSa : tgtCard.getSpellAbilities()) {
newSa.setHostCard(cardToCopy);
}
// restore name if it should be unchanged
if (keepName) {
tgtCard.setName(originalName);