- "Assigned to skirmish" will now trigger only when the character became assigned (was not before an action, but is now).
This commit is contained in:
@@ -119,8 +119,8 @@ public class TriggerConditions {
|
||||
}
|
||||
|
||||
public static boolean assignedAgainst(LotroGame game, EffectResult effectResult, Side side, Filterable againstFilter, Filterable... assignedFilters) {
|
||||
if (effectResult.getType() == EffectResult.Type.CHARACTER_ASSIGNED) {
|
||||
AssignmentResult assignmentResult = (AssignmentResult) effectResult;
|
||||
if (effectResult.getType() == EffectResult.Type.ASSIGNED_AGAINST) {
|
||||
AssignAgainstResult assignmentResult = (AssignAgainstResult) effectResult;
|
||||
if (side != null) {
|
||||
if (assignmentResult.getPlayerId().equals(game.getGameState().getCurrentPlayerId())) {
|
||||
if (side == Side.SHADOW)
|
||||
@@ -137,6 +137,24 @@ public class TriggerConditions {
|
||||
return false;
|
||||
}
|
||||
|
||||
public static boolean assignedToSkirmish(LotroGame game, EffectResult effectResult, Side side, Filterable... filters) {
|
||||
if (effectResult.getType() == EffectResult.Type.ASSIGNED_TO_SKIRMISH) {
|
||||
AssignedToSkirmishResult assignResult = (AssignedToSkirmishResult) effectResult;
|
||||
if (side != null) {
|
||||
if (assignResult.getPlayerId().equals(game.getGameState().getCurrentPlayerId())) {
|
||||
if (side == Side.SHADOW)
|
||||
return false;
|
||||
} else {
|
||||
if (side == Side.FREE_PEOPLE)
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return Filters.and(filters).accepts(game.getGameState(), game.getModifiersQuerying(), ((AssignedToSkirmishResult) effectResult).getAssignedCard());
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public static boolean forEachCardDrawnOrPutIntoHandByOpponent(LotroGame game, EffectResult effectResult, String playerId) {
|
||||
if (effectResult.getType() == EffectResult.Type.DRAW_CARD_OR_PUT_INTO_HAND) {
|
||||
DrawCardOrPutIntoHandResult drawResult = (DrawCardOrPutIntoHandResult) effectResult;
|
||||
|
||||
@@ -56,7 +56,7 @@ public class Card1_244 extends AbstractAttachable {
|
||||
|
||||
@Override
|
||||
public List<RequiredTriggerAction> getRequiredAfterTriggers(LotroGame game, EffectResult effectResult, PhysicalCard self) {
|
||||
if (TriggerConditions.assignedAgainst(game, effectResult, null, Filters.any, Filters.hasAttached(self))) {
|
||||
if (TriggerConditions.assignedToSkirmish(game, effectResult, null, Filters.hasAttached(self))) {
|
||||
RequiredTriggerAction action = new RequiredTriggerAction(self);
|
||||
List<Effect> possibleEffects = new LinkedList<Effect>();
|
||||
possibleEffects.add(
|
||||
|
||||
@@ -8,7 +8,6 @@ import com.gempukku.lotro.cards.effects.ChoiceEffect;
|
||||
import com.gempukku.lotro.common.Culture;
|
||||
import com.gempukku.lotro.common.Phase;
|
||||
import com.gempukku.lotro.common.Side;
|
||||
import com.gempukku.lotro.filters.Filters;
|
||||
import com.gempukku.lotro.game.PhysicalCard;
|
||||
import com.gempukku.lotro.game.state.LotroGame;
|
||||
import com.gempukku.lotro.logic.actions.RequiredTriggerAction;
|
||||
@@ -39,7 +38,7 @@ public class Card10_021 extends AbstractMinion {
|
||||
|
||||
@Override
|
||||
public List<RequiredTriggerAction> getRequiredAfterTriggers(LotroGame game, EffectResult effectResult, PhysicalCard self) {
|
||||
if (TriggerConditions.assignedAgainst(game, effectResult, Side.FREE_PEOPLE, Filters.any, self)) {
|
||||
if (TriggerConditions.assignedToSkirmish(game, effectResult, Side.FREE_PEOPLE, self)) {
|
||||
RequiredTriggerAction action = new RequiredTriggerAction(self);
|
||||
List<Effect> possibleEffects = new LinkedList<Effect>();
|
||||
possibleEffects.add(
|
||||
|
||||
@@ -34,7 +34,7 @@ public class Card11_086 extends AbstractMinion {
|
||||
|
||||
@Override
|
||||
public List<RequiredTriggerAction> getRequiredAfterTriggers(LotroGame game, EffectResult effectResult, PhysicalCard self) {
|
||||
if (TriggerConditions.assignedAgainst(game, effectResult, Side.FREE_PEOPLE, Filters.any, self)) {
|
||||
if (TriggerConditions.assignedToSkirmish(game, effectResult, Side.FREE_PEOPLE, self)) {
|
||||
RequiredTriggerAction action = new RequiredTriggerAction(self);
|
||||
int twilight = Filters.countActive(game.getGameState(), game.getModifiersQuerying(), Side.FREE_PEOPLE, Filters.character, Filters.maxResistance(5));
|
||||
action.appendEffect(
|
||||
|
||||
@@ -13,7 +13,7 @@ import com.gempukku.lotro.game.PhysicalCard;
|
||||
import com.gempukku.lotro.game.state.LotroGame;
|
||||
import com.gempukku.lotro.logic.actions.OptionalTriggerAction;
|
||||
import com.gempukku.lotro.logic.timing.EffectResult;
|
||||
import com.gempukku.lotro.logic.timing.results.AssignmentResult;
|
||||
import com.gempukku.lotro.logic.timing.results.AssignAgainstResult;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
@@ -40,7 +40,7 @@ public class Card11_200 extends AbstractMinion {
|
||||
public List<OptionalTriggerAction> getOptionalAfterTriggers(String playerId, LotroGame game, EffectResult effectResult, PhysicalCard self) {
|
||||
if (TriggerConditions.assignedAgainst(game, effectResult, null, Filters.and(Filters.character, Filters.maxResistance(3)), self)
|
||||
&& PlayConditions.canSelfExert(self, game)) {
|
||||
AssignmentResult assignmentResult = (AssignmentResult) effectResult;
|
||||
AssignAgainstResult assignmentResult = (AssignAgainstResult) effectResult;
|
||||
final Set<PhysicalCard> assignedAgainst = assignmentResult.getAgainst();
|
||||
|
||||
OptionalTriggerAction action = new OptionalTriggerAction(self);
|
||||
|
||||
@@ -9,7 +9,6 @@ import com.gempukku.lotro.cards.effects.SelfDiscardEffect;
|
||||
import com.gempukku.lotro.common.Culture;
|
||||
import com.gempukku.lotro.common.Keyword;
|
||||
import com.gempukku.lotro.common.Race;
|
||||
import com.gempukku.lotro.filters.Filters;
|
||||
import com.gempukku.lotro.game.PhysicalCard;
|
||||
import com.gempukku.lotro.game.state.LotroGame;
|
||||
import com.gempukku.lotro.logic.actions.RequiredTriggerAction;
|
||||
@@ -39,7 +38,7 @@ public class Card12_078 extends AbstractMinion {
|
||||
|
||||
@Override
|
||||
public List<RequiredTriggerAction> getRequiredAfterTriggers(LotroGame game, EffectResult effectResult, PhysicalCard self) {
|
||||
if (TriggerConditions.assignedAgainst(game, effectResult, null, Filters.any, self)
|
||||
if (TriggerConditions.assignedToSkirmish(game, effectResult, null, self)
|
||||
&& !PlayConditions.location(game, Keyword.PLAINS)) {
|
||||
RequiredTriggerAction action = new RequiredTriggerAction(self);
|
||||
List<Effect> possibleEffects = new LinkedList<Effect>();
|
||||
|
||||
@@ -9,7 +9,6 @@ import com.gempukku.lotro.cards.effects.SelfDiscardEffect;
|
||||
import com.gempukku.lotro.common.Culture;
|
||||
import com.gempukku.lotro.common.Keyword;
|
||||
import com.gempukku.lotro.common.Race;
|
||||
import com.gempukku.lotro.filters.Filters;
|
||||
import com.gempukku.lotro.game.PhysicalCard;
|
||||
import com.gempukku.lotro.game.state.LotroGame;
|
||||
import com.gempukku.lotro.logic.actions.RequiredTriggerAction;
|
||||
@@ -39,7 +38,7 @@ public class Card12_092 extends AbstractMinion {
|
||||
|
||||
@Override
|
||||
public List<RequiredTriggerAction> getRequiredAfterTriggers(LotroGame game, EffectResult effectResult, PhysicalCard self) {
|
||||
if (TriggerConditions.assignedAgainst(game, effectResult, null, Filters.any, self)
|
||||
if (TriggerConditions.assignedToSkirmish(game, effectResult, null, self)
|
||||
&& !PlayConditions.location(game, Keyword.UNDERGROUND)) {
|
||||
RequiredTriggerAction action = new RequiredTriggerAction(self);
|
||||
List<Effect> possibleEffects = new LinkedList<Effect>();
|
||||
|
||||
@@ -41,7 +41,7 @@ public class Card12_129 extends AbstractCompanion {
|
||||
|
||||
@Override
|
||||
public List<RequiredTriggerAction> getRequiredAfterTriggers(LotroGame game, EffectResult effectResult, PhysicalCard self) {
|
||||
if (TriggerConditions.assignedAgainst(game, effectResult, Side.FREE_PEOPLE, Filters.any, self)) {
|
||||
if (TriggerConditions.assignedToSkirmish(game, effectResult, Side.FREE_PEOPLE, self)) {
|
||||
RequiredTriggerAction action = new RequiredTriggerAction(self);
|
||||
action.appendEffect(
|
||||
new AddBurdenEffect(self.getOwner(), self, 2));
|
||||
|
||||
@@ -9,7 +9,6 @@ import com.gempukku.lotro.cards.effects.SelfDiscardEffect;
|
||||
import com.gempukku.lotro.common.Culture;
|
||||
import com.gempukku.lotro.common.Keyword;
|
||||
import com.gempukku.lotro.common.Race;
|
||||
import com.gempukku.lotro.filters.Filters;
|
||||
import com.gempukku.lotro.game.PhysicalCard;
|
||||
import com.gempukku.lotro.game.state.LotroGame;
|
||||
import com.gempukku.lotro.logic.actions.RequiredTriggerAction;
|
||||
@@ -40,7 +39,7 @@ public class Card12_149 extends AbstractMinion {
|
||||
|
||||
@Override
|
||||
public List<RequiredTriggerAction> getRequiredAfterTriggers(LotroGame game, EffectResult effectResult, PhysicalCard self) {
|
||||
if (TriggerConditions.assignedAgainst(game, effectResult, null, Filters.any, self)
|
||||
if (TriggerConditions.assignedToSkirmish(game, effectResult, null, self)
|
||||
&& !PlayConditions.location(game, Keyword.BATTLEGROUND)) {
|
||||
RequiredTriggerAction action = new RequiredTriggerAction(self);
|
||||
List<Effect> possibleEffects = new LinkedList<Effect>();
|
||||
|
||||
@@ -11,7 +11,7 @@ import com.gempukku.lotro.game.state.LotroGame;
|
||||
import com.gempukku.lotro.logic.actions.OptionalTriggerAction;
|
||||
import com.gempukku.lotro.logic.effects.WoundCharactersEffect;
|
||||
import com.gempukku.lotro.logic.timing.EffectResult;
|
||||
import com.gempukku.lotro.logic.timing.results.AssignmentResult;
|
||||
import com.gempukku.lotro.logic.timing.results.AssignAgainstResult;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
@@ -39,7 +39,7 @@ public class Card16_002 extends AbstractMinion {
|
||||
if (TriggerConditions.assignedAgainst(game, effectResult, Side.FREE_PEOPLE, CardType.COMPANION, self)
|
||||
&& PlayConditions.canSpot(game, Filters.not(self), Culture.WRAITH, Race.WRAITH)
|
||||
&& game.getGameState().getTwilightPool() >= 2) {
|
||||
AssignmentResult assignmentResult = (AssignmentResult) effectResult;
|
||||
AssignAgainstResult assignmentResult = (AssignAgainstResult) effectResult;
|
||||
OptionalTriggerAction action = new OptionalTriggerAction(self);
|
||||
action.appendCost(
|
||||
new RemoveTwilightEffect(2));
|
||||
|
||||
@@ -16,7 +16,7 @@ import com.gempukku.lotro.logic.actions.RequiredTriggerAction;
|
||||
import com.gempukku.lotro.logic.effects.AddTwilightEffect;
|
||||
import com.gempukku.lotro.logic.timing.Effect;
|
||||
import com.gempukku.lotro.logic.timing.EffectResult;
|
||||
import com.gempukku.lotro.logic.timing.results.AssignmentResult;
|
||||
import com.gempukku.lotro.logic.timing.results.AssignAgainstResult;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.LinkedList;
|
||||
@@ -53,7 +53,7 @@ public class Card17_067 extends AbstractPermanent {
|
||||
@Override
|
||||
public List<RequiredTriggerAction> getRequiredAfterTriggers(LotroGame game, EffectResult effectResult, PhysicalCard self) {
|
||||
if (TriggerConditions.assignedAgainst(game, effectResult, Side.FREE_PEOPLE, CardType.COMPANION, Culture.ORC, Race.ORC, Filters.mounted)) {
|
||||
AssignmentResult assignResult = (AssignmentResult) effectResult;
|
||||
AssignAgainstResult assignResult = (AssignAgainstResult) effectResult;
|
||||
PhysicalCard companion = assignResult.getAgainst().iterator().next();
|
||||
RequiredTriggerAction action = new RequiredTriggerAction(self);
|
||||
action.setText("Assigned " + GameUtils.getCardLink(assignResult.getAssignedCard()) + " to " + GameUtils.getCardLink(companion));
|
||||
|
||||
@@ -17,7 +17,7 @@ import com.gempukku.lotro.logic.modifiers.Condition;
|
||||
import com.gempukku.lotro.logic.modifiers.Modifier;
|
||||
import com.gempukku.lotro.logic.modifiers.ModifiersQuerying;
|
||||
import com.gempukku.lotro.logic.timing.EffectResult;
|
||||
import com.gempukku.lotro.logic.timing.results.AssignmentResult;
|
||||
import com.gempukku.lotro.logic.timing.results.AssignAgainstResult;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
@@ -70,7 +70,7 @@ public class Card19_039 extends AbstractMinion {
|
||||
data = new HashSet<Integer>();
|
||||
self.setWhileInZoneData(data);
|
||||
}
|
||||
for (PhysicalCard physicalCard : ((AssignmentResult) effectResult).getAgainst())
|
||||
for (PhysicalCard physicalCard : ((AssignAgainstResult) effectResult).getAgainst())
|
||||
data.add(physicalCard.getCardId());
|
||||
}
|
||||
return null;
|
||||
|
||||
@@ -33,7 +33,7 @@ public class Card4_170 extends AbstractPermanent {
|
||||
|
||||
@Override
|
||||
public List<OptionalTriggerAction> getOptionalAfterTriggers(String playerId, LotroGame game, EffectResult effectResult, PhysicalCard self) {
|
||||
if (TriggerConditions.assignedAgainst(game, effectResult, Side.FREE_PEOPLE, Filters.any, CardType.ALLY)
|
||||
if (TriggerConditions.assignedToSkirmish(game, effectResult, Side.FREE_PEOPLE, CardType.ALLY)
|
||||
&& PlayConditions.canPlayFromDiscard(playerId, game, -2, Culture.ISENGARD, CardType.MINION)) {
|
||||
OptionalTriggerAction action = new OptionalTriggerAction(self);
|
||||
action.appendEffect(
|
||||
|
||||
@@ -45,7 +45,7 @@ public class Card4_172 extends AbstractAttachable {
|
||||
|
||||
@Override
|
||||
public List<RequiredTriggerAction> getRequiredAfterTriggers(LotroGame game, EffectResult effectResult, PhysicalCard self) {
|
||||
if (TriggerConditions.assignedAgainst(game, effectResult, Side.FREE_PEOPLE, Filters.any, Filters.hasAttached(self))) {
|
||||
if (TriggerConditions.assignedToSkirmish(game, effectResult, Side.FREE_PEOPLE, Filters.hasAttached(self))) {
|
||||
RequiredTriggerAction action = new RequiredTriggerAction(self);
|
||||
action.appendEffect(
|
||||
new ExertCharactersEffect(action, self, CardType.ALLY));
|
||||
|
||||
@@ -13,7 +13,7 @@ import com.gempukku.lotro.game.state.LotroGame;
|
||||
import com.gempukku.lotro.logic.GameUtils;
|
||||
import com.gempukku.lotro.logic.actions.RequiredTriggerAction;
|
||||
import com.gempukku.lotro.logic.timing.EffectResult;
|
||||
import com.gempukku.lotro.logic.timing.results.AssignmentResult;
|
||||
import com.gempukku.lotro.logic.timing.results.AssignAgainstResult;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
@@ -38,7 +38,7 @@ public class Card4_178 extends AbstractMinion {
|
||||
@Override
|
||||
public List<RequiredTriggerAction> getRequiredAfterTriggers(LotroGame game, EffectResult effectResult, PhysicalCard self) {
|
||||
if (TriggerConditions.assignedAgainst(game, effectResult, Side.FREE_PEOPLE, Filters.and(Culture.ISENGARD, Race.MAN), Filters.or(CardType.COMPANION, CardType.ALLY))) {
|
||||
AssignmentResult assignmentResult = (AssignmentResult) effectResult;
|
||||
AssignAgainstResult assignmentResult = (AssignAgainstResult) effectResult;
|
||||
RequiredTriggerAction action = new RequiredTriggerAction(self);
|
||||
action.setText("Exert " + GameUtils.getCardLink(assignmentResult.getAssignedCard()));
|
||||
action.appendEffect(
|
||||
|
||||
@@ -31,7 +31,7 @@ public class Card4_336 extends AbstractSite {
|
||||
|
||||
@Override
|
||||
public List<RequiredTriggerAction> getRequiredAfterTriggers(LotroGame game, EffectResult effectResult, PhysicalCard self) {
|
||||
if (TriggerConditions.assignedAgainst(game, effectResult, Side.FREE_PEOPLE, Filters.any, Filters.or(CardType.COMPANION, CardType.ALLY))) {
|
||||
if (TriggerConditions.assignedToSkirmish(game, effectResult, Side.FREE_PEOPLE, Filters.or(CardType.COMPANION, CardType.ALLY))) {
|
||||
RequiredTriggerAction action = new RequiredTriggerAction(self);
|
||||
action.appendEffect(
|
||||
new AddTwilightEffect(self, 1));
|
||||
|
||||
@@ -13,7 +13,7 @@ import com.gempukku.lotro.game.state.LotroGame;
|
||||
import com.gempukku.lotro.logic.actions.OptionalTriggerAction;
|
||||
import com.gempukku.lotro.logic.effects.ChooseAndWoundCharactersEffect;
|
||||
import com.gempukku.lotro.logic.timing.EffectResult;
|
||||
import com.gempukku.lotro.logic.timing.results.AssignmentResult;
|
||||
import com.gempukku.lotro.logic.timing.results.AssignAgainstResult;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
@@ -42,7 +42,7 @@ public class Card7_134 extends AbstractMinion {
|
||||
if (TriggerConditions.assignedAgainst(game, effectResult, Side.FREE_PEOPLE, Filters.any, self)
|
||||
&& PlayConditions.hasInitiative(game, Side.SHADOW)) {
|
||||
OptionalTriggerAction action = new OptionalTriggerAction(self);
|
||||
AssignmentResult assignment = (AssignmentResult) effectResult;
|
||||
AssignAgainstResult assignment = (AssignAgainstResult) effectResult;
|
||||
action.appendEffect(
|
||||
new ChooseAndWoundCharactersEffect(action, playerId, 1, 1, Filters.assignedAgainst(self)));
|
||||
return Collections.singletonList(action);
|
||||
|
||||
@@ -70,7 +70,7 @@ public class Card8_028 extends AbstractPermanent {
|
||||
|
||||
@Override
|
||||
public List<RequiredTriggerAction> getRequiredAfterTriggers(LotroGame game, EffectResult effectResult, PhysicalCard self) {
|
||||
if (TriggerConditions.assignedAgainst(game, effectResult, null, Filters.any, Filters.hasAttached(self))) {
|
||||
if (TriggerConditions.assignedToSkirmish(game, effectResult, null, Filters.hasAttached(self))) {
|
||||
RequiredTriggerAction action = new RequiredTriggerAction(self);
|
||||
action.appendEffect(
|
||||
new ExertCharactersEffect(action, self, Filters.hasAttached(self)));
|
||||
|
||||
@@ -13,7 +13,7 @@ import com.gempukku.lotro.logic.timing.ActionStack;
|
||||
import com.gempukku.lotro.logic.timing.Effect;
|
||||
import com.gempukku.lotro.logic.timing.EffectResult;
|
||||
import com.gempukku.lotro.logic.timing.processes.GatherPlayableActionsFromDiscardVisitor;
|
||||
import com.gempukku.lotro.logic.timing.results.AssignmentResult;
|
||||
import com.gempukku.lotro.logic.timing.results.AssignedToSkirmishResult;
|
||||
import com.gempukku.lotro.logic.timing.results.CharacterLostSkirmishResult;
|
||||
import com.gempukku.lotro.logic.timing.results.CharacterWonSkirmishResult;
|
||||
import com.gempukku.lotro.logic.timing.results.PlayCardResult;
|
||||
@@ -81,9 +81,9 @@ public class DefaultActionsEnvironment implements ActionsEnvironment {
|
||||
new AbstractActionProxy() {
|
||||
@Override
|
||||
public List<? extends RequiredTriggerAction> getRequiredAfterTriggers(LotroGame game, EffectResult effectResult) {
|
||||
if (effectResult.getType() == EffectResult.Type.CHARACTER_ASSIGNED) {
|
||||
AssignmentResult assignmentResult = (AssignmentResult) effectResult;
|
||||
_assignedInTurn.add(assignmentResult.getAssignedCard());
|
||||
if (effectResult.getType() == EffectResult.Type.ASSIGNED_TO_SKIRMISH) {
|
||||
AssignedToSkirmishResult assignResult = (AssignedToSkirmishResult) effectResult;
|
||||
_assignedInTurn.add(assignResult.getAssignedCard());
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -7,7 +7,8 @@ import com.gempukku.lotro.game.state.LotroGame;
|
||||
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.AssignmentResult;
|
||||
import com.gempukku.lotro.logic.timing.results.AssignAgainstResult;
|
||||
import com.gempukku.lotro.logic.timing.results.AssignedToSkirmishResult;
|
||||
|
||||
import java.util.Collections;
|
||||
|
||||
@@ -52,11 +53,16 @@ public class AssignmentEffect extends AbstractEffect {
|
||||
@Override
|
||||
protected FullEffectResult playEffectReturningResult(LotroGame game) {
|
||||
if (isPlayableInFull(game)) {
|
||||
if (Filters.notAssignedToSkirmish.accepts(game.getGameState(), game.getModifiersQuerying(), _fpChar))
|
||||
game.getActionsEnvironment().emitEffectResult(new AssignedToSkirmishResult(_fpChar, _playerId));
|
||||
if (Filters.notAssignedToSkirmish.accepts(game.getGameState(), game.getModifiersQuerying(), _minion))
|
||||
game.getActionsEnvironment().emitEffectResult(new AssignedToSkirmishResult(_minion, _playerId));
|
||||
|
||||
game.getGameState().sendMessage(_playerId + " assigns " + GameUtils.getCardLink(_minion) + " to skirmish " + GameUtils.getCardLink(_fpChar));
|
||||
game.getGameState().assignToSkirmishes(_fpChar, Collections.singleton(_minion));
|
||||
|
||||
game.getActionsEnvironment().emitEffectResult(new AssignmentResult(_playerId, _fpChar, _minion));
|
||||
game.getActionsEnvironment().emitEffectResult(new AssignmentResult(_playerId, _minion, _fpChar));
|
||||
game.getActionsEnvironment().emitEffectResult(new AssignAgainstResult(_playerId, _fpChar, _minion));
|
||||
game.getActionsEnvironment().emitEffectResult(new AssignAgainstResult(_playerId, _minion, _fpChar));
|
||||
|
||||
assignmentMadeCallback(_fpChar, _minion);
|
||||
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
package com.gempukku.lotro.logic.effects;
|
||||
|
||||
import com.gempukku.lotro.filters.Filters;
|
||||
import com.gempukku.lotro.game.PhysicalCard;
|
||||
import com.gempukku.lotro.game.state.LotroGame;
|
||||
import com.gempukku.lotro.logic.timing.AbstractEffect;
|
||||
import com.gempukku.lotro.logic.timing.Effect;
|
||||
import com.gempukku.lotro.logic.timing.results.AssignmentResult;
|
||||
import com.gempukku.lotro.logic.timing.results.AssignAgainstResult;
|
||||
import com.gempukku.lotro.logic.timing.results.AssignedToSkirmishResult;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
@@ -50,11 +52,18 @@ public class AssignmentPhaseEffect extends AbstractEffect {
|
||||
for (Map.Entry<PhysicalCard, Set<PhysicalCard>> physicalCardListEntry : _assignments.entrySet()) {
|
||||
PhysicalCard fpChar = physicalCardListEntry.getKey();
|
||||
Set<PhysicalCard> minions = physicalCardListEntry.getValue();
|
||||
|
||||
if (Filters.notAssignedToSkirmish.accepts(game.getGameState(), game.getModifiersQuerying(), fpChar))
|
||||
game.getActionsEnvironment().emitEffectResult(new AssignedToSkirmishResult(fpChar, _playerId));
|
||||
for (PhysicalCard notAssignedMinion : Filters.filter(minions, game.getGameState(), game.getModifiersQuerying(), Filters.notAssignedToSkirmish))
|
||||
game.getActionsEnvironment().emitEffectResult(new AssignedToSkirmishResult(notAssignedMinion, _playerId));
|
||||
|
||||
game.getGameState().assignToSkirmishes(fpChar, minions);
|
||||
|
||||
game.getActionsEnvironment().emitEffectResult(new AssignmentResult(_playerId, fpChar, minions));
|
||||
|
||||
game.getActionsEnvironment().emitEffectResult(new AssignAgainstResult(_playerId, fpChar, minions));
|
||||
for (PhysicalCard minion : minions)
|
||||
game.getActionsEnvironment().emitEffectResult(new AssignmentResult(_playerId, minion, fpChar));
|
||||
game.getActionsEnvironment().emitEffectResult(new AssignAgainstResult(_playerId, minion, fpChar));
|
||||
}
|
||||
return new FullEffectResult(true);
|
||||
}
|
||||
|
||||
@@ -50,7 +50,7 @@ public abstract class EffectResult {
|
||||
|
||||
CHARACTER_WON_SKIRMISH, CHARACTER_LOST_SKIRMISH,
|
||||
|
||||
CHARACTER_ASSIGNED, CARD_TRANSFERRED,
|
||||
ASSIGNED_AGAINST, ASSIGNED_TO_SKIRMISH, CARD_TRANSFERRED,
|
||||
|
||||
REPLACE_SITE, TAKE_CONTROL_OF_SITE
|
||||
}
|
||||
|
||||
@@ -6,20 +6,20 @@ import com.gempukku.lotro.logic.timing.EffectResult;
|
||||
import java.util.Collections;
|
||||
import java.util.Set;
|
||||
|
||||
public class AssignmentResult extends EffectResult {
|
||||
public class AssignAgainstResult extends EffectResult {
|
||||
private String _playerId;
|
||||
private PhysicalCard _assignedCard;
|
||||
private Set<PhysicalCard> _against;
|
||||
|
||||
public AssignmentResult(String playerId, PhysicalCard assignedCard, PhysicalCard against) {
|
||||
super(EffectResult.Type.CHARACTER_ASSIGNED);
|
||||
public AssignAgainstResult(String playerId, PhysicalCard assignedCard, PhysicalCard against) {
|
||||
super(Type.ASSIGNED_AGAINST);
|
||||
_playerId = playerId;
|
||||
_assignedCard = assignedCard;
|
||||
_against = Collections.singleton(against);
|
||||
}
|
||||
|
||||
public AssignmentResult(String playerId, PhysicalCard assignedCard, Set<PhysicalCard> against) {
|
||||
super(EffectResult.Type.CHARACTER_ASSIGNED);
|
||||
public AssignAgainstResult(String playerId, PhysicalCard assignedCard, Set<PhysicalCard> against) {
|
||||
super(Type.ASSIGNED_AGAINST);
|
||||
_playerId = playerId;
|
||||
_assignedCard = assignedCard;
|
||||
_against = against;
|
||||
@@ -0,0 +1,23 @@
|
||||
package com.gempukku.lotro.logic.timing.results;
|
||||
|
||||
import com.gempukku.lotro.game.PhysicalCard;
|
||||
import com.gempukku.lotro.logic.timing.EffectResult;
|
||||
|
||||
public class AssignedToSkirmishResult extends EffectResult {
|
||||
private PhysicalCard _assigned;
|
||||
private String _playerId;
|
||||
|
||||
public AssignedToSkirmishResult(PhysicalCard assigned, String playerId) {
|
||||
super(Type.ASSIGNED_TO_SKIRMISH);
|
||||
_assigned = assigned;
|
||||
_playerId = playerId;
|
||||
}
|
||||
|
||||
public PhysicalCard getAssignedCard() {
|
||||
return _assigned;
|
||||
}
|
||||
|
||||
public String getPlayerId() {
|
||||
return _playerId;
|
||||
}
|
||||
}
|
||||
@@ -11,7 +11,7 @@ import com.gempukku.lotro.logic.GameUtils;
|
||||
import com.gempukku.lotro.logic.actions.OptionalTriggerAction;
|
||||
import com.gempukku.lotro.logic.effects.AddTwilightEffect;
|
||||
import com.gempukku.lotro.logic.timing.EffectResult;
|
||||
import com.gempukku.lotro.logic.timing.results.AssignmentResult;
|
||||
import com.gempukku.lotro.logic.timing.results.AssignAgainstResult;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
@@ -28,8 +28,8 @@ public class AmbushRule {
|
||||
new AbstractActionProxy() {
|
||||
@Override
|
||||
public List<? extends OptionalTriggerAction> getOptionalAfterTriggers(String playerId, LotroGame game, EffectResult effectResult) {
|
||||
if (effectResult.getType() == EffectResult.Type.CHARACTER_ASSIGNED) {
|
||||
AssignmentResult assignmentResult = (AssignmentResult) effectResult;
|
||||
if (effectResult.getType() == EffectResult.Type.ASSIGNED_AGAINST) {
|
||||
AssignAgainstResult assignmentResult = (AssignAgainstResult) effectResult;
|
||||
if (assignmentResult.getPlayerId().equals(game.getGameState().getCurrentPlayerId())) {
|
||||
PhysicalCard assignedCard = assignmentResult.getAssignedCard();
|
||||
if (Filters.and(CardType.MINION, Keyword.AMBUSH, Filters.owner(playerId)).accepts(game.getGameState(), game.getModifiersQuerying(), assignedCard)) {
|
||||
|
||||
@@ -9,6 +9,7 @@ response.setDateHeader ("Expires", -1);
|
||||
- If FP player uses Muster, shadow player is now also able to use it.
|
||||
- "Gnawing, Biting, Hacking, Burning" and similar cards should now allow to stack multiple minions if they are discarded
|
||||
at the same time.
|
||||
- "Assigned to skirmish" will now trigger only when the character became assigned (was not before an action, but is now).
|
||||
|
||||
<b>03 Jan. 2013</b>
|
||||
- "Legolas, Elven Comrade" now should automatically allow to choose a minion skirmishing an unbound companion.
|
||||
|
||||
Reference in New Issue
Block a user