diff --git a/forge-game/src/main/java/forge/game/GameAction.java b/forge-game/src/main/java/forge/game/GameAction.java index 9357c62fff4..4d5ce89fe08 100644 --- a/forge-game/src/main/java/forge/game/GameAction.java +++ b/forge-game/src/main/java/forge/game/GameAction.java @@ -1628,7 +1628,7 @@ public class GameAction { private boolean stateBasedAction_Saga(Card c, CardCollection sacrificeList) { boolean checkAgain = false; - if (!c.isSaga()) { + if (!c.isSaga() || !c.hasChapter()) { return false; } // needs to be effect, because otherwise it might be a cost? diff --git a/forge-game/src/main/java/forge/game/card/Card.java b/forge-game/src/main/java/forge/game/card/Card.java index 32e412ce1a8..98b7aa66093 100644 --- a/forge-game/src/main/java/forge/game/card/Card.java +++ b/forge-game/src/main/java/forge/game/card/Card.java @@ -7968,6 +7968,10 @@ public class Card extends GameEntity implements Comparable, IHasSVars, ITr this.savedLastKnownZone = zone; } + public final boolean hasChapter() { + return getCurrentState().hasChapter(); + } + public final int getFinalChapterNr() { return getCurrentState().getFinalChapterNr(); } diff --git a/forge-game/src/main/java/forge/game/card/CardState.java b/forge-game/src/main/java/forge/game/card/CardState.java index 017190111f2..383835a6e2f 100644 --- a/forge-game/src/main/java/forge/game/card/CardState.java +++ b/forge-game/src/main/java/forge/game/card/CardState.java @@ -807,6 +807,10 @@ public class CardState extends GameObject implements IHasSVars, ITranslatable { } } + public final boolean hasChapter() { + return getTriggers().anyMatch(Trigger::isChapter); + } + public final int getFinalChapterNr() { int n = 0; for (final Trigger t : getTriggers()) { diff --git a/forge-game/src/main/java/forge/game/phase/PhaseHandler.java b/forge-game/src/main/java/forge/game/phase/PhaseHandler.java index c02825936c2..3513eb77976 100644 --- a/forge-game/src/main/java/forge/game/phase/PhaseHandler.java +++ b/forge-game/src/main/java/forge/game/phase/PhaseHandler.java @@ -277,7 +277,7 @@ public class PhaseHandler implements java.io.Serializable { GameEntityCounterTable table = new GameEntityCounterTable(); // all Sagas get a Lore counter at the beginning of pre combat for (Card c : playerTurn.getCardsIn(ZoneType.Battlefield)) { - if (c.isSaga()) { + if (c.isSaga() && c.hasChapter()) { c.addCounter(CounterEnumType.LORE, 1, playerTurn, table); } }