- "Dunlending Warrior" now can assign itself to an ally.

This commit is contained in:
marcins78@gmail.com
2012-01-16 21:12:57 +00:00
parent 4cc2944257
commit 2714eafea8
5 changed files with 53 additions and 3 deletions

View File

@@ -40,7 +40,7 @@ public class ChooseAndAssignCharacterToMinionEffect extends ChooseActiveCardEffe
protected void cardSelected(LotroGame game, PhysicalCard card) {
SubAction subAction = new SubAction(_action);
subAction.appendEffect(
new AssignmentEffect(_playerId, card, _minion));
new AssignmentEffect(_playerId, card, _minion, _skipAllyLocationCheck));
game.getActionsEnvironment().addActionToStack(subAction);
}
}

View File

@@ -94,7 +94,7 @@ public class ChooseAndDoAssignmentEffect extends AbstractSubActionEffect {
private void assignmentSelected(LotroGame game, PhysicalCard fpCharacter, PhysicalCard minion) {
SubAction subAction = new SubAction(_action);
subAction.appendEffect(
new AssignmentEffect(_playerId, fpCharacter, minion));
new AssignmentEffect(_playerId, fpCharacter, minion, _allowAllyToSkirmish));
processSubAction(game, subAction);
}
}

View File

@@ -14,13 +14,19 @@ import java.util.Collections;
public class AssignmentEffect extends AbstractEffect {
private String _playerId;
private boolean _ignoreSingleMinionRestriction;
private boolean _skipAllyLocationCheck;
private PhysicalCard _fpChar;
private PhysicalCard _minion;
public AssignmentEffect(String playerId, PhysicalCard fpChar, PhysicalCard minion) {
this(playerId, fpChar, minion, false);
}
public AssignmentEffect(String playerId, PhysicalCard fpChar, PhysicalCard minion, boolean skipAllyLocationCheck) {
_playerId = playerId;
_fpChar = fpChar;
_minion = minion;
_skipAllyLocationCheck = skipAllyLocationCheck;
}
public void setIgnoreSingleMinionRestriction(boolean ignoreSingleMinionRestriction) {
@@ -40,7 +46,7 @@ public class AssignmentEffect extends AbstractEffect {
@Override
public boolean isPlayableInFull(LotroGame game) {
Side side = _playerId.equals(game.getGameState().getCurrentPlayerId()) ? Side.FREE_PEOPLE : Side.SHADOW;
return Filters.assignableToSkirmishAgainst(side, _fpChar, _ignoreSingleMinionRestriction, false).accepts(game.getGameState(), game.getModifiersQuerying(), _minion);
return Filters.assignableToSkirmishAgainst(side, _fpChar, _ignoreSingleMinionRestriction, _skipAllyLocationCheck).accepts(game.getGameState(), game.getModifiersQuerying(), _minion);
}
@Override

View File

@@ -395,4 +395,47 @@ public class AssignmentAtTest extends AbstractAtTest {
// Expected
}
}
@Test
public void dunlendingWarriorAssignsToAlly() throws DecisionResultInvalidException {
initializeSimplestGame();
skipMulligans();
PhysicalCardImpl elrond = new PhysicalCardImpl(101, "1_40", P1, _library.getLotroCardBlueprint("1_40"));
PhysicalCardImpl dunlendingWarrior = new PhysicalCardImpl(102, "4_18", P2, _library.getLotroCardBlueprint("4_18"));
_game.getGameState().addCardToZone(_game, elrond, Zone.SUPPORT);
// End fellowship phase
playerDecided(P1, "");
_game.getGameState().addCardToZone(_game, dunlendingWarrior, Zone.SHADOW_CHARACTERS);
// End shadow phase
playerDecided(P2, "");
// End maneuvers phase
playerDecided(P1, "");
playerDecided(P2, "");
// End arhcery phase
playerDecided(P1, "");
playerDecided(P2, "");
// End assignment phase
playerDecided(P1, "");
AwaitingDecision assignmentActions = _userFeedback.getAwaitingDecision(P2);
assertEquals(AwaitingDecisionType.CARD_ACTION_CHOICE, assignmentActions.getDecisionType());
validateContents(toCardIdArray(dunlendingWarrior), (String[]) assignmentActions.getDecisionParameters().get("cardId"));
playerDecided(P2, "0");
final List<Assignment> assignmentsAfterFreePlayer = _game.getGameState().getAssignments();
assertEquals(1, assignmentsAfterFreePlayer.size());
assertEquals(elrond, assignmentsAfterFreePlayer.get(0).getFellowshipCharacter());
assertEquals(1, assignmentsAfterFreePlayer.get(0).getShadowCharacters().size());
assertTrue(assignmentsAfterFreePlayer.get(0).getShadowCharacters().contains(dunlendingWarrior));
}
}

View File

@@ -9,6 +9,7 @@ for cancelling bonus modifiers.
- "Orc Strategist" has a proper name now.
- Added "Expanded Middle-earth" (set 14) set.
- "Sword of Rohan" now properly gives the damage +1 bonus.
- "Dunlending Warrior" now can assign itself to an ally.
<b>15 Jan. 2012</b>
- "Hobbit Farmer" and other allies copying site text should now be able to activate the site phase actions.