Fixing movement process.
This commit is contained in:
@@ -275,7 +275,7 @@ public class TriggerConditions {
|
|||||||
|
|
||||||
public static boolean movesFrom(LotroGame game, EffectResult effectResult, Filterable... filters) {
|
public static boolean movesFrom(LotroGame game, EffectResult effectResult, Filterable... filters) {
|
||||||
if (effectResult.getType() == EffectResult.Type.WHEN_MOVE_FROM
|
if (effectResult.getType() == EffectResult.Type.WHEN_MOVE_FROM
|
||||||
&& Filters.and(filters).accepts(game.getGameState(), game.getModifiersQuerying(), game.getGameState().getCurrentSite())) {
|
&& Filters.and(filters).accepts(game.getGameState(), game.getModifiersQuerying(), ((WhenMoveFromResult) effectResult).getSite())) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package com.gempukku.lotro.cards.set1.elven;
|
|||||||
|
|
||||||
import com.gempukku.lotro.cards.AbstractPermanent;
|
import com.gempukku.lotro.cards.AbstractPermanent;
|
||||||
import com.gempukku.lotro.cards.PlayConditions;
|
import com.gempukku.lotro.cards.PlayConditions;
|
||||||
|
import com.gempukku.lotro.cards.TriggerConditions;
|
||||||
import com.gempukku.lotro.cards.actions.PlayPermanentAction;
|
import com.gempukku.lotro.cards.actions.PlayPermanentAction;
|
||||||
import com.gempukku.lotro.cards.effects.AddUntilEndOfTurnModifierEffect;
|
import com.gempukku.lotro.cards.effects.AddUntilEndOfTurnModifierEffect;
|
||||||
import com.gempukku.lotro.cards.effects.choose.ChooseAndExertCharactersEffect;
|
import com.gempukku.lotro.cards.effects.choose.ChooseAndExertCharactersEffect;
|
||||||
@@ -45,7 +46,7 @@ public class Card1_046 extends AbstractPermanent {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<RequiredTriggerAction> getRequiredAfterTriggers(LotroGame game, EffectResult effectResult, PhysicalCard self) {
|
public List<RequiredTriggerAction> getRequiredAfterTriggers(LotroGame game, EffectResult effectResult, PhysicalCard self) {
|
||||||
if (effectResult.getType() == EffectResult.Type.WHEN_MOVE_FROM
|
if (TriggerConditions.movesFrom(game, effectResult, Keyword.RIVER)
|
||||||
&& game.getGameState().getCurrentPhase() == Phase.FELLOWSHIP) {
|
&& game.getGameState().getCurrentPhase() == Phase.FELLOWSHIP) {
|
||||||
RequiredTriggerAction action = new RequiredTriggerAction(self);
|
RequiredTriggerAction action = new RequiredTriggerAction(self);
|
||||||
action.appendEffect(new AddUntilEndOfTurnModifierEffect(new MoveLimitModifier(self, 1)));
|
action.appendEffect(new AddUntilEndOfTurnModifierEffect(new MoveLimitModifier(self, 1)));
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package com.gempukku.lotro.cards.set1.isengard;
|
|||||||
|
|
||||||
import com.gempukku.lotro.cards.AbstractAttachable;
|
import com.gempukku.lotro.cards.AbstractAttachable;
|
||||||
import com.gempukku.lotro.cards.PlayConditions;
|
import com.gempukku.lotro.cards.PlayConditions;
|
||||||
|
import com.gempukku.lotro.cards.TriggerConditions;
|
||||||
import com.gempukku.lotro.cards.actions.AttachPermanentAction;
|
import com.gempukku.lotro.cards.actions.AttachPermanentAction;
|
||||||
import com.gempukku.lotro.cards.effects.ExertCharactersEffect;
|
import com.gempukku.lotro.cards.effects.ExertCharactersEffect;
|
||||||
import com.gempukku.lotro.cards.effects.SelfDiscardEffect;
|
import com.gempukku.lotro.cards.effects.SelfDiscardEffect;
|
||||||
@@ -54,9 +55,7 @@ public class Card1_134 extends AbstractAttachable {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<RequiredTriggerAction> getRequiredAfterTriggers(LotroGame game, EffectResult effectResult, PhysicalCard self) {
|
public List<RequiredTriggerAction> getRequiredAfterTriggers(LotroGame game, EffectResult effectResult, PhysicalCard self) {
|
||||||
if (effectResult.getType() == EffectResult.Type.WHEN_MOVE_FROM
|
if (TriggerConditions.movesFrom(game, effectResult, Filters.hasAttached(self))) {
|
||||||
&& game.getGameState().getCurrentSite() == self.getAttachedTo()) {
|
|
||||||
|
|
||||||
RequiredTriggerAction action = new RequiredTriggerAction(self);
|
RequiredTriggerAction action = new RequiredTriggerAction(self);
|
||||||
action.appendEffect(new ExertCharactersEffect(self, Filters.and(CardType.COMPANION, Race.HOBBIT)));
|
action.appendEffect(new ExertCharactersEffect(self, Filters.and(CardType.COMPANION, Race.HOBBIT)));
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package com.gempukku.lotro.cards.set1.site;
|
package com.gempukku.lotro.cards.set1.site;
|
||||||
|
|
||||||
import com.gempukku.lotro.cards.AbstractSite;
|
import com.gempukku.lotro.cards.AbstractSite;
|
||||||
|
import com.gempukku.lotro.cards.TriggerConditions;
|
||||||
import com.gempukku.lotro.cards.effects.RemoveTwilightEffect;
|
import com.gempukku.lotro.cards.effects.RemoveTwilightEffect;
|
||||||
import com.gempukku.lotro.common.Block;
|
import com.gempukku.lotro.common.Block;
|
||||||
import com.gempukku.lotro.game.PhysicalCard;
|
import com.gempukku.lotro.game.PhysicalCard;
|
||||||
@@ -26,8 +27,7 @@ public class Card1_337 extends AbstractSite {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<RequiredTriggerAction> getRequiredAfterTriggers(LotroGame game, EffectResult effectResult, PhysicalCard self) {
|
public List<RequiredTriggerAction> getRequiredAfterTriggers(LotroGame game, EffectResult effectResult, PhysicalCard self) {
|
||||||
if (effectResult.getType() == EffectResult.Type.WHEN_MOVE_FROM
|
if (TriggerConditions.movesFrom(game, effectResult, self)) {
|
||||||
&& game.getGameState().getCurrentSite() == self) {
|
|
||||||
RequiredTriggerAction action = new RequiredTriggerAction(self);
|
RequiredTriggerAction action = new RequiredTriggerAction(self);
|
||||||
action.appendEffect(new RemoveTwilightEffect(2));
|
action.appendEffect(new RemoveTwilightEffect(2));
|
||||||
return Collections.singletonList(action);
|
return Collections.singletonList(action);
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package com.gempukku.lotro.cards.set2.dwarven;
|
package com.gempukku.lotro.cards.set2.dwarven;
|
||||||
|
|
||||||
import com.gempukku.lotro.cards.AbstractPermanent;
|
import com.gempukku.lotro.cards.AbstractPermanent;
|
||||||
|
import com.gempukku.lotro.cards.TriggerConditions;
|
||||||
import com.gempukku.lotro.common.*;
|
import com.gempukku.lotro.common.*;
|
||||||
import com.gempukku.lotro.filters.Filters;
|
import com.gempukku.lotro.filters.Filters;
|
||||||
import com.gempukku.lotro.game.PhysicalCard;
|
import com.gempukku.lotro.game.PhysicalCard;
|
||||||
@@ -30,8 +31,7 @@ public class Card2_014 extends AbstractPermanent {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<OptionalTriggerAction> getOptionalAfterTriggers(String playerId, LotroGame game, EffectResult effectResult, PhysicalCard self) {
|
public List<OptionalTriggerAction> getOptionalAfterTriggers(String playerId, LotroGame game, EffectResult effectResult, PhysicalCard self) {
|
||||||
if (effectResult.getType() == EffectResult.Type.WHEN_MOVE_FROM
|
if (TriggerConditions.movesFrom(game, effectResult, Keyword.UNDERGROUND)) {
|
||||||
&& game.getModifiersQuerying().hasKeyword(game.getGameState(), game.getGameState().getCurrentSite(), Keyword.UNDERGROUND)) {
|
|
||||||
Collection<PhysicalCard> dwarfCompanions = Filters.filterActive(game.getGameState(), game.getModifiersQuerying(), Race.DWARF, CardType.COMPANION);
|
Collection<PhysicalCard> dwarfCompanions = Filters.filterActive(game.getGameState(), game.getModifiersQuerying(), Race.DWARF, CardType.COMPANION);
|
||||||
if (dwarfCompanions.size() > 0) {
|
if (dwarfCompanions.size() > 0) {
|
||||||
OptionalTriggerAction action = new OptionalTriggerAction(self);
|
OptionalTriggerAction action = new OptionalTriggerAction(self);
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package com.gempukku.lotro.cards.set4.raider;
|
|||||||
|
|
||||||
import com.gempukku.lotro.cards.AbstractPermanent;
|
import com.gempukku.lotro.cards.AbstractPermanent;
|
||||||
import com.gempukku.lotro.cards.PlayConditions;
|
import com.gempukku.lotro.cards.PlayConditions;
|
||||||
|
import com.gempukku.lotro.cards.TriggerConditions;
|
||||||
import com.gempukku.lotro.cards.effects.ExertCharactersEffect;
|
import com.gempukku.lotro.cards.effects.ExertCharactersEffect;
|
||||||
import com.gempukku.lotro.cards.effects.SelfDiscardEffect;
|
import com.gempukku.lotro.cards.effects.SelfDiscardEffect;
|
||||||
import com.gempukku.lotro.cards.effects.choose.ChooseAndExertCharactersEffect;
|
import com.gempukku.lotro.cards.effects.choose.ChooseAndExertCharactersEffect;
|
||||||
@@ -33,8 +34,7 @@ public class Card4_231 extends AbstractPermanent {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<RequiredTriggerAction> getRequiredAfterTriggers(LotroGame game, EffectResult effectResult, PhysicalCard self) {
|
public List<RequiredTriggerAction> getRequiredAfterTriggers(LotroGame game, EffectResult effectResult, PhysicalCard self) {
|
||||||
if (effectResult.getType() == EffectResult.Type.WHEN_MOVE_FROM
|
if (TriggerConditions.movesFrom(game, effectResult, Filters.siteBlock(Block.TWO_TOWERS), Filters.siteNumber(2))) {
|
||||||
&& game.getGameState().getCurrentSiteNumber() == 2 && game.getGameState().getCurrentSiteBlock() == Block.TWO_TOWERS) {
|
|
||||||
RequiredTriggerAction action = new RequiredTriggerAction(self);
|
RequiredTriggerAction action = new RequiredTriggerAction(self);
|
||||||
action.appendEffect(
|
action.appendEffect(
|
||||||
new ExertCharactersEffect(self, Filters.and(CardType.COMPANION, Keyword.RING_BOUND)));
|
new ExertCharactersEffect(self, Filters.and(CardType.COMPANION, Keyword.RING_BOUND)));
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package com.gempukku.lotro.cards.set4.shire;
|
|||||||
|
|
||||||
import com.gempukku.lotro.cards.AbstractPermanent;
|
import com.gempukku.lotro.cards.AbstractPermanent;
|
||||||
import com.gempukku.lotro.cards.PlayConditions;
|
import com.gempukku.lotro.cards.PlayConditions;
|
||||||
|
import com.gempukku.lotro.cards.TriggerConditions;
|
||||||
import com.gempukku.lotro.cards.effects.RemoveBurdenEffect;
|
import com.gempukku.lotro.cards.effects.RemoveBurdenEffect;
|
||||||
import com.gempukku.lotro.cards.effects.SelfDiscardEffect;
|
import com.gempukku.lotro.cards.effects.SelfDiscardEffect;
|
||||||
import com.gempukku.lotro.common.*;
|
import com.gempukku.lotro.common.*;
|
||||||
@@ -36,8 +37,7 @@ public class Card4_299 extends AbstractPermanent {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<RequiredTriggerAction> getRequiredAfterTriggers(LotroGame game, EffectResult effectResult, final PhysicalCard self) {
|
public List<RequiredTriggerAction> getRequiredAfterTriggers(LotroGame game, EffectResult effectResult, final PhysicalCard self) {
|
||||||
if (effectResult.getType() == EffectResult.Type.WHEN_MOVE_FROM
|
if (TriggerConditions.movesFrom(game, effectResult, Filters.siteBlock(Block.TWO_TOWERS), Filters.siteNumber(1))) {
|
||||||
&& game.getGameState().getCurrentSiteNumber() == 1 && game.getGameState().getCurrentSiteBlock() == Block.TWO_TOWERS) {
|
|
||||||
final RequiredTriggerAction action = new RequiredTriggerAction(self);
|
final RequiredTriggerAction action = new RequiredTriggerAction(self);
|
||||||
action.appendEffect(
|
action.appendEffect(
|
||||||
new PlayoutDecisionEffect(self.getOwner(),
|
new PlayoutDecisionEffect(self.getOwner(),
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package com.gempukku.lotro.cards.set4.site;
|
package com.gempukku.lotro.cards.set4.site;
|
||||||
|
|
||||||
import com.gempukku.lotro.cards.AbstractSite;
|
import com.gempukku.lotro.cards.AbstractSite;
|
||||||
|
import com.gempukku.lotro.cards.TriggerConditions;
|
||||||
import com.gempukku.lotro.common.Block;
|
import com.gempukku.lotro.common.Block;
|
||||||
import com.gempukku.lotro.game.PhysicalCard;
|
import com.gempukku.lotro.game.PhysicalCard;
|
||||||
import com.gempukku.lotro.game.state.LotroGame;
|
import com.gempukku.lotro.game.state.LotroGame;
|
||||||
@@ -24,8 +25,7 @@ public class Card4_323 extends AbstractSite {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<RequiredTriggerAction> getRequiredAfterTriggers(LotroGame game, EffectResult effectResult, PhysicalCard self) {
|
public List<RequiredTriggerAction> getRequiredAfterTriggers(LotroGame game, EffectResult effectResult, PhysicalCard self) {
|
||||||
if (effectResult.getType() == EffectResult.Type.WHEN_MOVE_FROM
|
if (TriggerConditions.movesFrom(game, effectResult, self)) {
|
||||||
&& game.getGameState().getCurrentSite() == self) {
|
|
||||||
RequiredTriggerAction action = new RequiredTriggerAction(self);
|
RequiredTriggerAction action = new RequiredTriggerAction(self);
|
||||||
action.appendEffect(
|
action.appendEffect(
|
||||||
new AddTwilightEffect(self, 2));
|
new AddTwilightEffect(self, 2));
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package com.gempukku.lotro.cards.set4.site;
|
package com.gempukku.lotro.cards.set4.site;
|
||||||
|
|
||||||
import com.gempukku.lotro.cards.AbstractSite;
|
import com.gempukku.lotro.cards.AbstractSite;
|
||||||
|
import com.gempukku.lotro.cards.TriggerConditions;
|
||||||
import com.gempukku.lotro.cards.effects.ExertCharactersEffect;
|
import com.gempukku.lotro.cards.effects.ExertCharactersEffect;
|
||||||
import com.gempukku.lotro.common.Block;
|
import com.gempukku.lotro.common.Block;
|
||||||
import com.gempukku.lotro.common.CardType;
|
import com.gempukku.lotro.common.CardType;
|
||||||
@@ -26,8 +27,7 @@ public class Card4_329 extends AbstractSite {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<RequiredTriggerAction> getRequiredAfterTriggers(LotroGame game, EffectResult effectResult, PhysicalCard self) {
|
public List<RequiredTriggerAction> getRequiredAfterTriggers(LotroGame game, EffectResult effectResult, PhysicalCard self) {
|
||||||
if (effectResult.getType() == EffectResult.Type.WHEN_MOVE_FROM
|
if (TriggerConditions.movesFrom(game, effectResult, self)) {
|
||||||
&& game.getGameState().getCurrentSite() == self) {
|
|
||||||
RequiredTriggerAction action = new RequiredTriggerAction(self);
|
RequiredTriggerAction action = new RequiredTriggerAction(self);
|
||||||
action.appendEffect(
|
action.appendEffect(
|
||||||
new ExertCharactersEffect(self, CardType.COMPANION, Keyword.RING_BOUND));
|
new ExertCharactersEffect(self, CardType.COMPANION, Keyword.RING_BOUND));
|
||||||
|
|||||||
@@ -26,6 +26,7 @@ public class MovementGameProcess implements GameProcess {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void process(LotroGame game) {
|
public void process(LotroGame game) {
|
||||||
|
PhysicalCard currentSite = game.getGameState().getCurrentSite();
|
||||||
final SystemQueueAction action = new SystemQueueAction();
|
final SystemQueueAction action = new SystemQueueAction();
|
||||||
action.appendEffect(
|
action.appendEffect(
|
||||||
new UnrespondableEffect() {
|
new UnrespondableEffect() {
|
||||||
@@ -55,7 +56,15 @@ public class MovementGameProcess implements GameProcess {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
action.appendEffect(
|
action.appendEffect(
|
||||||
new TriggeringResultEffect(new WhenMoveFromResult(), "Fellowship moved from"));
|
new UnrespondableEffect() {
|
||||||
|
@Override
|
||||||
|
protected void doPlayEffect(LotroGame game) {
|
||||||
|
GameState gameState = game.getGameState();
|
||||||
|
gameState.movePlayerToNextSite(game);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
action.appendEffect(
|
||||||
|
new TriggeringResultEffect(new WhenMoveFromResult(currentSite), "Fellowship moved from"));
|
||||||
action.appendEffect(
|
action.appendEffect(
|
||||||
new TriggeringResultEffect(new WhenMovesResult(), "Fellowship moves"));
|
new TriggeringResultEffect(new WhenMovesResult(), "Fellowship moves"));
|
||||||
action.appendEffect(
|
action.appendEffect(
|
||||||
@@ -65,7 +74,6 @@ public class MovementGameProcess implements GameProcess {
|
|||||||
@Override
|
@Override
|
||||||
protected void doPlayEffect(LotroGame game) {
|
protected void doPlayEffect(LotroGame game) {
|
||||||
GameState gameState = game.getGameState();
|
GameState gameState = game.getGameState();
|
||||||
gameState.movePlayerToNextSite(game);
|
|
||||||
|
|
||||||
int siteTwilightCost = game.getModifiersQuerying().getTwilightCost(gameState, gameState.getCurrentSite(), false);
|
int siteTwilightCost = game.getModifiersQuerying().getTwilightCost(gameState, gameState.getCurrentSite(), false);
|
||||||
if (!game.getFormat().isOrderedSites()) {
|
if (!game.getFormat().isOrderedSites()) {
|
||||||
|
|||||||
@@ -1,9 +1,17 @@
|
|||||||
package com.gempukku.lotro.logic.timing.results;
|
package com.gempukku.lotro.logic.timing.results;
|
||||||
|
|
||||||
|
import com.gempukku.lotro.game.PhysicalCard;
|
||||||
import com.gempukku.lotro.logic.timing.EffectResult;
|
import com.gempukku.lotro.logic.timing.EffectResult;
|
||||||
|
|
||||||
public class WhenMoveFromResult extends EffectResult {
|
public class WhenMoveFromResult extends EffectResult {
|
||||||
public WhenMoveFromResult() {
|
private PhysicalCard _site;
|
||||||
|
|
||||||
|
public WhenMoveFromResult(PhysicalCard site) {
|
||||||
super(EffectResult.Type.WHEN_MOVE_FROM);
|
super(EffectResult.Type.WHEN_MOVE_FROM);
|
||||||
|
_site = site;
|
||||||
|
}
|
||||||
|
|
||||||
|
public PhysicalCard getSite() {
|
||||||
|
return _site;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user