mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-15 10:18:01 +00:00
CardState: fixed copyState and LKI
This commit is contained in:
@@ -455,18 +455,23 @@ public class CardState extends GameObject {
|
||||
|
||||
triggers.clear();
|
||||
for (Trigger tr : source.triggers) {
|
||||
if (tr.isIntrinsic()) {
|
||||
triggers.add(tr.copy(card, lki));
|
||||
}
|
||||
}
|
||||
|
||||
replacementEffects.clear();
|
||||
for (ReplacementEffect re : source.replacementEffects) {
|
||||
if (re.isIntrinsic()) {
|
||||
replacementEffects.add(re.copy(card, lki));
|
||||
}
|
||||
}
|
||||
|
||||
staticAbilities.clear();
|
||||
for (StaticAbility sa : source.staticAbilities) {
|
||||
StaticAbility saCopy = new StaticAbility(sa, this.card);
|
||||
staticAbilities.add(saCopy);
|
||||
if (sa.isIntrinsic()) {
|
||||
staticAbilities.add(new StaticAbility(sa, this.card));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -35,10 +35,12 @@ import forge.game.GameObject;
|
||||
import forge.game.ability.AbilityUtils;
|
||||
import forge.game.ability.ApiType;
|
||||
import forge.game.player.Player;
|
||||
import forge.game.replacement.ReplacementEffect;
|
||||
import forge.game.spellability.AbilityManaPart;
|
||||
import forge.game.spellability.AbilitySub;
|
||||
import forge.game.spellability.SpellAbility;
|
||||
import forge.game.spellability.TargetRestrictions;
|
||||
import forge.game.trigger.Trigger;
|
||||
import forge.game.zone.ZoneType;
|
||||
import forge.util.TextUtil;
|
||||
import forge.util.collect.FCollection;
|
||||
@@ -220,10 +222,23 @@ public final class CardUtil {
|
||||
|
||||
newCopy.setType(new CardType(in.getType()));
|
||||
newCopy.setToken(in.isToken());
|
||||
newCopy.setTriggers(in.getTriggers(), false);
|
||||
|
||||
// extra copy non Intrinsic traits
|
||||
for (SpellAbility sa : in.getSpellAbilities()) {
|
||||
if (!sa.isIntrinsic()) {
|
||||
newCopy.addSpellAbility(sa.copy(newCopy, true));
|
||||
}
|
||||
}
|
||||
for (Trigger tr : in.getTriggers()) {
|
||||
if (!tr.isIntrinsic()) {
|
||||
newCopy.addTrigger(tr.copy(newCopy, true));
|
||||
}
|
||||
}
|
||||
for (ReplacementEffect re : in.getReplacementEffects()) {
|
||||
if (!re.isIntrinsic()) {
|
||||
newCopy.addReplacementEffect(re.copy(newCopy, true));
|
||||
}
|
||||
}
|
||||
|
||||
// lock in the current P/T without bonus from counters
|
||||
newCopy.setBasePower(in.getCurrentPower() + in.getTempPowerBoost() + in.getSemiPermanentPowerBoost());
|
||||
|
||||
Reference in New Issue
Block a user