Checking for losing also when Ring-bearer is returned to hand or discarded from play.
This commit is contained in:
@@ -10,6 +10,7 @@ import com.gempukku.lotro.logic.GameUtils;
|
||||
import com.gempukku.lotro.logic.timing.AbstractEffect;
|
||||
import com.gempukku.lotro.logic.timing.Effect;
|
||||
import com.gempukku.lotro.logic.timing.results.DiscardCardsFromPlayResult;
|
||||
import com.gempukku.lotro.logic.timing.results.ReturnCardsToHandResult;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.HashSet;
|
||||
@@ -80,7 +81,8 @@ public class ReturnCardsToHandEffect extends AbstractEffect {
|
||||
|
||||
for (PhysicalCard discardedCard : discardedFromPlay)
|
||||
game.getActionsEnvironment().emitEffectResult(new DiscardCardsFromPlayResult(discardedCard));
|
||||
|
||||
for (PhysicalCard cardReturned : cardsToReturnToHand)
|
||||
game.getActionsEnvironment().emitEffectResult(new ReturnCardsToHandResult(cardReturned));
|
||||
|
||||
return new FullEffectResult(true, true);
|
||||
}
|
||||
|
||||
@@ -12,6 +12,7 @@ public abstract class EffectResult {
|
||||
// Translated to new format
|
||||
ANY_NUMBER_KILLED, FOR_EACH_KILLED, FOR_EACH_HEALED,
|
||||
FOR_EACH_WOUNDED, FOR_EACH_EXERTED, FOR_EACH_DISCARDED_FROM_PLAY,
|
||||
FOR_EACH_RETURNED_TO_HAND,
|
||||
|
||||
FOR_EACH_DISCARDED_FROM_HAND,
|
||||
|
||||
|
||||
@@ -13,7 +13,9 @@ import com.gempukku.lotro.logic.decisions.CardActionSelectionDecision;
|
||||
import com.gempukku.lotro.logic.decisions.DecisionResultInvalidException;
|
||||
import com.gempukku.lotro.logic.timing.processes.GameProcess;
|
||||
import com.gempukku.lotro.logic.timing.processes.pregame.BiddingGameProcess;
|
||||
import com.gempukku.lotro.logic.timing.results.DiscardCardsFromPlayResult;
|
||||
import com.gempukku.lotro.logic.timing.results.KilledResult;
|
||||
import com.gempukku.lotro.logic.timing.results.ReturnCardsToHandResult;
|
||||
import com.gempukku.lotro.logic.timing.rules.CharacterDeathRule;
|
||||
import com.gempukku.lotro.logic.timing.rules.InitiativeChangeRule;
|
||||
|
||||
@@ -163,6 +165,16 @@ public class TurnProcedure {
|
||||
if (Filters.filter(killResult.getKilledCards(), _game.getGameState(), _game.getModifiersQuerying(), Filters.ringBearer).size() > 0)
|
||||
return true;
|
||||
}
|
||||
if (effectResult.getType() == EffectResult.Type.FOR_EACH_RETURNED_TO_HAND) {
|
||||
ReturnCardsToHandResult returnResult = (ReturnCardsToHandResult) effectResult;
|
||||
if (returnResult.getReturnedCard() == _game.getGameState().getRingBearer(_game.getGameState().getCurrentPlayerId()))
|
||||
return true;
|
||||
}
|
||||
if (effectResult.getType() == EffectResult.Type.FOR_EACH_DISCARDED_FROM_PLAY) {
|
||||
DiscardCardsFromPlayResult discardResult = (DiscardCardsFromPlayResult) effectResult;
|
||||
if (discardResult.getDiscardedCard() == _game.getGameState().getRingBearer(_game.getGameState().getCurrentPlayerId()))
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
package com.gempukku.lotro.logic.timing.results;
|
||||
|
||||
import com.gempukku.lotro.game.PhysicalCard;
|
||||
import com.gempukku.lotro.logic.timing.EffectResult;
|
||||
|
||||
public class ReturnCardsToHandResult extends EffectResult {
|
||||
private PhysicalCard _card;
|
||||
|
||||
public ReturnCardsToHandResult(PhysicalCard card) {
|
||||
super(Type.FOR_EACH_RETURNED_TO_HAND);
|
||||
_card = card;
|
||||
}
|
||||
|
||||
public PhysicalCard getReturnedCard() {
|
||||
return _card;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user