Some Urza edits

This commit is contained in:
L_J 2018-12-24 14:52:55 +01:00 committed by GitHub
parent f855c6b2c7
commit ffd8891f54
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -16,7 +16,6 @@ import mage.abilities.dynamicvalue.common.PermanentsTargetOpponentControlsCount;
import mage.abilities.effects.ContinuousEffect; import mage.abilities.effects.ContinuousEffect;
import mage.abilities.effects.Effect; import mage.abilities.effects.Effect;
import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.BrainstormEffect;
import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.CreateTokenEffect;
import mage.abilities.effects.common.DamageAllControlledTargetEffect; import mage.abilities.effects.common.DamageAllControlledTargetEffect;
import mage.abilities.effects.common.DamageAllEffect; import mage.abilities.effects.common.DamageAllEffect;
@ -50,6 +49,7 @@ import mage.abilities.effects.common.turn.ControlTargetPlayerNextTurnEffect;
import mage.abilities.keyword.FirstStrikeAbility; import mage.abilities.keyword.FirstStrikeAbility;
import mage.abilities.keyword.LifelinkAbility; import mage.abilities.keyword.LifelinkAbility;
import mage.abilities.keyword.VigilanceAbility; import mage.abilities.keyword.VigilanceAbility;
import mage.cards.Card;
import mage.cards.CardImpl; import mage.cards.CardImpl;
import mage.cards.CardSetInfo; import mage.cards.CardSetInfo;
import mage.choices.Choice; import mage.choices.Choice;
@ -76,7 +76,6 @@ import mage.game.command.emblems.ElspethKnightErrantEmblem;
import mage.game.command.emblems.GideonAllyOfZendikarEmblem; import mage.game.command.emblems.GideonAllyOfZendikarEmblem;
import mage.game.command.emblems.KioraMasterOfTheDepthsEmblem; import mage.game.command.emblems.KioraMasterOfTheDepthsEmblem;
import mage.game.command.emblems.VenserTheSojournerEmblem; import mage.game.command.emblems.VenserTheSojournerEmblem;
import mage.game.permanent.Permanent;
import mage.game.permanent.token.*; import mage.game.permanent.token.*;
import mage.players.Player; import mage.players.Player;
import mage.target.Target; import mage.target.Target;
@ -84,6 +83,7 @@ import mage.target.TargetPermanent;
import mage.target.TargetPlayer; import mage.target.TargetPlayer;
import mage.target.common.TargetAnyTarget; import mage.target.common.TargetAnyTarget;
import mage.target.common.TargetCardInGraveyard; import mage.target.common.TargetCardInGraveyard;
import mage.target.common.TargetCardInHand;
import mage.target.common.TargetCardInLibrary; import mage.target.common.TargetCardInLibrary;
import mage.target.common.TargetCreaturePermanent; import mage.target.common.TargetCreaturePermanent;
import mage.target.common.TargetCreaturePermanentAmount; import mage.target.common.TargetCreaturePermanentAmount;
@ -92,6 +92,10 @@ import mage.target.common.TargetOpponent;
import mage.target.common.TargetPlayerOrPlaneswalker; import mage.target.common.TargetPlayerOrPlaneswalker;
import mage.util.RandomUtil; import mage.util.RandomUtil;
/**
*
* @author L_J
*/
public final class UrzaAcademyHeadmaster extends CardImpl { public final class UrzaAcademyHeadmaster extends CardImpl {
public UrzaAcademyHeadmaster(UUID ownerId, CardSetInfo setInfo) { public UrzaAcademyHeadmaster(UUID ownerId, CardSetInfo setInfo) {
@ -172,6 +176,7 @@ class UrzaAcademyHeadmasterRandomEffect extends OneShotEffect {
Target target = null; Target target = null;
StringBuilder sb = new StringBuilder("[URZA] "); StringBuilder sb = new StringBuilder("[URZA] ");
while (true) {
switch (selection) { switch (selection) {
// ABILITY +1 // ABILITY +1
case 1: case 1:
@ -465,10 +470,16 @@ class UrzaAcademyHeadmasterRandomEffect extends OneShotEffect {
game.informPlayers(sb.toString()); game.informPlayers(sb.toString());
if (target != null) { if (target != null) {
if (target.canChoose(source.getSourceId(), controller.getId(), game)) { if (target.canChoose(source.getSourceId(), controller.getId(), game) && controller.canRespond()) {
while (!target.isChosen() && target.canChoose(controller.getId(), game) && controller.canRespond()) {
controller.chooseTarget(outcome, target, source, game); controller.chooseTarget(outcome, target, source, game);
} } else {
// 1/19/2018 (...) If the ability that comes up requires a target and there are no legal targets available, click again until thats not true.
game.informPlayers("[URZA] Target can't be chosen, picking next ability...");
result = RandomUtil.nextInt(20) + 1;
effects.clear();
target = null;
sb = new StringBuilder("[URZA] ");
continue;
} }
source.addTarget(target); source.addTarget(target);
} }
@ -482,6 +493,8 @@ class UrzaAcademyHeadmasterRandomEffect extends OneShotEffect {
} }
return true; return true;
} }
break;
}
} }
return false; return false;
} }
@ -555,10 +568,11 @@ class UrzaAcademyHeadmasterManaEffect extends OneShotEffect {
} }
} }
class UrzaAcademyHeadmasterBrainstormEffect extends BrainstormEffect { class UrzaAcademyHeadmasterBrainstormEffect extends OneShotEffect {
public UrzaAcademyHeadmasterBrainstormEffect() { public UrzaAcademyHeadmasterBrainstormEffect() {
super(); super(Outcome.DrawCard);
staticText = "draw three cards, then put a card from your hand on top of your library";
} }
public UrzaAcademyHeadmasterBrainstormEffect(final UrzaAcademyHeadmasterBrainstormEffect effect) { public UrzaAcademyHeadmasterBrainstormEffect(final UrzaAcademyHeadmasterBrainstormEffect effect) {
@ -580,4 +594,16 @@ class UrzaAcademyHeadmasterBrainstormEffect extends BrainstormEffect {
} }
return false; return false;
} }
private boolean putOnLibrary(Player player, Ability source, Game game) {
TargetCardInHand target = new TargetCardInHand();
if (target.canChoose(source.getSourceId(), player.getId(), game)) {
player.chooseTarget(Outcome.ReturnToHand, target, source, game);
Card card = player.getHand().get(target.getFirstTarget(), game);
if (card != null) {
return player.moveCardToLibraryWithInfo(card, source.getSourceId(), game, Zone.HAND, true, false);
}
}
return false;
}
} }