* Archfiend of Depravity - Outcome tweaked for AI behaviour.

This commit is contained in:
LevelX2 2015-12-25 11:45:55 +01:00
parent 0c2abc69de
commit e7e290e787
2 changed files with 22 additions and 2 deletions

View file

@ -61,7 +61,7 @@ public class ArchfiendOfDepravity extends CardImpl {
// Flying
this.addAbility(FlyingAbility.getInstance());
// At the beginning of each opponent's end step, that player chooses up to two creatures he or she controls, then sacrifices the rest.
this.addAbility(new BeginningOfEndStepTriggeredAbility(new ArchfiendOfDepravityEffect(), TargetController.OPPONENT, false));
}
@ -79,7 +79,7 @@ public class ArchfiendOfDepravity extends CardImpl {
class ArchfiendOfDepravityEffect extends OneShotEffect {
public ArchfiendOfDepravityEffect() {
super(Outcome.Detriment);
super(Outcome.Benefit); // AI should select two creatures if possible so it has to be a benefit
this.staticText = "that player chooses up to two creatures he or she controls, then sacrifices the rest";
}

View file

@ -222,6 +222,26 @@ public class TargetsAreChosenTest extends CardTestPlayerBaseAI {
}
/**
* When I have Archfiend of Depravity on the field, the AI always sacks
* creatures until it has ONE left, when the card states that you can keep
* TWO at the end of each turn. This makes it un-fun playing the Archfiend
* as it makes it a lot easier to win.
*/
@Test
public void testArchfiendOfDepravity() {
// Flying
// At the beginning of each opponent's end step, that player chooses up to two creatures he or she controls, then sacrifices the rest.
addCard(Zone.BATTLEFIELD, playerB, "Archfiend of Depravity");
addCard(Zone.BATTLEFIELD, playerA, "Silvercoat Lion", 3);
setStopAt(2, PhaseStep.UNTAP);
execute();
assertGraveyardCount(playerA, "Silvercoat Lion", 1);
assertPowerToughness(playerA, "Silvercoat Lion", 2, 2, Filter.ComparisonScope.All);
}
/**
* Target selection from EntersTheBattlefield is not varied in the AI
* calculation, so value is only calculated for the one selected target set.