Compare commits

...

3 Commits

Author SHA1 Message Date
Hans Mackowiak
695d1396ea Update CardState.java 2025-11-07 10:55:09 +01:00
Hans Mackowiak
0431ddaee9 Update Trigger.java 2025-11-07 10:47:43 +01:00
Hans Mackowiak
9063717642 Update CardState.java 2025-11-07 10:08:59 +01:00
2 changed files with 14 additions and 3 deletions

View File

@@ -764,7 +764,7 @@ public class CardState implements GameObject, IHasSVars, ITranslatable {
continue;
}
if (tr.isIntrinsic()) {
triggers.add(tr.copy(card, lki));
triggers.add(tr.copy(card, lki, false, this));
}
}
ReplacementEffect runRE = null;
@@ -961,6 +961,10 @@ public class CardState implements GameObject, IHasSVars, ITranslatable {
return abilityForTrigger.computeIfAbsent(svar, s -> AbilityFactory.getAbility(getCard(), s, this));
}
public boolean hasAbilityForTrigger(String svar) {
return abilityForTrigger.containsKey(svar);
}
@Override
public String getTranslationKey() {
String displayName = flavorName == null ? name : flavorName;

View File

@@ -544,15 +544,22 @@ public abstract class Trigger extends TriggerReplacementBase {
}
public final Trigger copy(Card newHost, boolean lki) {
return copy(newHost, lki, false);
return copy(newHost, lki, false, null);
}
public final Trigger copy(Card newHost, boolean lki, boolean keepTextChanges) {
return copy(newHost, lki, keepTextChanges, null);
}
public final Trigger copy(Card newHost, boolean lki, boolean keepTextChanges, CardState newState) {
final Trigger copy = (Trigger) clone();
copyHelper(copy, newHost, lki || keepTextChanges);
if (getOverridingAbility() != null) {
copy.setOverridingAbility(getOverridingAbility().copy(newHost, lki));
if (isIntrinsic() && hasParam("Execute") && newState != null && newState.hasAbilityForTrigger(getParam("Execute"))) {
copy.setOverridingAbility(newState.getAbilityForTrigger(getParam("Execute")));
} else {
copy.setOverridingAbility(getOverridingAbility().copy(newHost, lki));
}
}
if (!lki) {