A few fixes.

This commit is contained in:
marcins78@gmail.com
2011-09-20 12:22:25 +00:00
parent 152c414200
commit 28b4c3e272
3 changed files with 26 additions and 13 deletions

View File

@@ -9,7 +9,6 @@ import com.gempukku.lotro.filters.Filters;
import com.gempukku.lotro.game.PhysicalCard;
import com.gempukku.lotro.game.state.GameState;
import com.gempukku.lotro.game.state.LotroGame;
import com.gempukku.lotro.game.state.Skirmish;
import com.gempukku.lotro.logic.modifiers.Modifier;
import com.gempukku.lotro.logic.modifiers.ModifiersQuerying;
@@ -38,14 +37,14 @@ public class Card1_011 extends AbstractCompanion {
@Override
public Modifier getAlwaysOnEffect(final PhysicalCard self) {
return new StrengthModifier(self,
new Filter() {
@Override
public boolean accepts(GameState gameState, ModifiersQuerying modifiersQuerying, PhysicalCard physicalCard) {
Skirmish activeSkirmish = gameState.getSkirmish();
return (activeSkirmish != null
&& activeSkirmish.getFellowshipCharacter().equals(self)
&& Filters.filter(activeSkirmish.getShadowCharacters(), gameState, modifiersQuerying, Filters.race(Race.ORC)).size() > 0);
}
}, 2);
Filters.and(
Filters.sameCard(self),
Filters.inSkirmish(),
new Filter() {
@Override
public boolean accepts(GameState gameState, ModifiersQuerying modifiersQuerying, PhysicalCard physicalCard) {
return Filters.canSpot(gameState, modifiersQuerying, Filters.race(Race.ORC), Filters.inSkirmish());
}
}), 2);
}
}

View File

@@ -51,11 +51,11 @@ public class Card1_183 extends AbstractPermanent {
@Override
public List<? extends Action> getOptionalAfterActions(String playerId, LotroGame game, EffectResult effectResult, final PhysicalCard self) {
if (PlayConditions.winsSkirmish(game.getGameState(), game.getModifiersQuerying(), effectResult, Filters.and(Filters.culture(Culture.MORIA), Filters.race(Race.ORC)))) {
List<PhysicalCard> shadowCharacters = game.getGameState().getSkirmish().getShadowCharacters();
if (PlayConditions.winsSkirmish(game.getGameState(), game.getModifiersQuerying(), effectResult, Filters.and(Filters.culture(Culture.MORIA), Filters.race(Race.ORC)))
&& Filters.canSpot(game.getGameState(), game.getModifiersQuerying(), Filters.culture(Culture.MORIA), Filters.race(Race.ORC), Filters.inSkirmish())) {
final DefaultCostToEffectAction action = new DefaultCostToEffectAction(self, null, "Stack winning MORIA Orc on this condition");
action.addEffect(
new ChooseActiveCardEffect(playerId, "Choose a MORIA Orc", Filters.culture(Culture.MORIA), Filters.race(Race.ORC), Filters.in(shadowCharacters)) {
new ChooseActiveCardEffect(playerId, "Choose a MORIA Orc", Filters.culture(Culture.MORIA), Filters.race(Race.ORC), Filters.inSkirmish()) {
@Override
protected void cardSelected(PhysicalCard moriaOrc) {
action.addEffect(new StackCardFromPlayEffect(moriaOrc, self));

View File

@@ -63,6 +63,20 @@ public class Filters {
return visitor.getCounter();
}
public static Filter inSkirmish() {
return new Filter() {
@Override
public boolean accepts(GameState gameState, ModifiersQuerying modifiersQuerying, PhysicalCard physicalCard) {
Skirmish skirmish = gameState.getSkirmish();
if (skirmish != null) {
return (skirmish.getFellowshipCharacter() == physicalCard)
|| skirmish.getShadowCharacters().contains(physicalCard);
}
return false;
}
};
}
public static Filter notAssigned() {
return new Filter() {
@Override