- "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:
marcins78
2013-01-04 15:18:00 +00:00
parent 95106a7e3d
commit a513eef00d
26 changed files with 101 additions and 48 deletions

View File

@@ -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;

View File

@@ -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(

View File

@@ -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(

View File

@@ -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(

View File

@@ -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);

View File

@@ -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>();

View File

@@ -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>();

View File

@@ -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));

View File

@@ -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>();

View File

@@ -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));

View File

@@ -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));

View File

@@ -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;

View File

@@ -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(

View File

@@ -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));

View File

@@ -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(

View File

@@ -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));

View File

@@ -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);

View File

@@ -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)));

View File

@@ -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;
}

View File

@@ -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);

View File

@@ -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);
}

View File

@@ -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
}

View File

@@ -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;

View File

@@ -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;
}
}

View File

@@ -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)) {

View File

@@ -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.