mirror of
https://github.com/correl/mage.git
synced 2024-11-14 19:19:32 +00:00
- Fixed #6189
This commit is contained in:
parent
12aec087b2
commit
0716b83928
1 changed files with 22 additions and 11 deletions
|
@ -90,7 +90,10 @@ class RashmiEternitiesCrafterTriggeredAbility extends SpellCastControllerTrigger
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getRule() {
|
public String getRule() {
|
||||||
return "Whenever you cast your first spell each turn, reveal the top card of your library. If it's a nonland card with converted mana cost less than that spell's, you may cast it without paying its mana cost. If you don't cast the revealed card, put it into your hand.";
|
return "Whenever you cast your first spell each turn, reveal the top card "
|
||||||
|
+ "of your library. If it's a nonland card with converted mana "
|
||||||
|
+ "cost less than that spell's, you may cast it without paying "
|
||||||
|
+ "its mana cost. If you don't cast the revealed card, put it into your hand.";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -98,7 +101,10 @@ class RashmiEternitiesCrafterEffect extends OneShotEffect {
|
||||||
|
|
||||||
RashmiEternitiesCrafterEffect() {
|
RashmiEternitiesCrafterEffect() {
|
||||||
super(Outcome.PlayForFree);
|
super(Outcome.PlayForFree);
|
||||||
this.staticText = "reveal the top card of your library. If it's a nonland card with converted mana cost less than that spell's, you may cast it without paying its mana cost. If you don't cast the revealed card, put it into your hand";
|
this.staticText = "reveal the top card of your library. If it's a nonland"
|
||||||
|
+ " card with converted mana cost less than that spell's, you may "
|
||||||
|
+ "cast it without paying its mana cost. If you don't cast the "
|
||||||
|
+ "revealed card, put it into your hand";
|
||||||
}
|
}
|
||||||
|
|
||||||
RashmiEternitiesCrafterEffect(final RashmiEternitiesCrafterEffect effect) {
|
RashmiEternitiesCrafterEffect(final RashmiEternitiesCrafterEffect effect) {
|
||||||
|
@ -112,26 +118,31 @@ class RashmiEternitiesCrafterEffect extends OneShotEffect {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean apply(Game game, Ability source) {
|
public boolean apply(Game game, Ability source) {
|
||||||
|
Boolean cardWasCast = false;
|
||||||
Player controller = game.getPlayer(source.getControllerId());
|
Player controller = game.getPlayer(source.getControllerId());
|
||||||
if (controller != null) {
|
if (controller != null) {
|
||||||
Card card = controller.getLibrary().getFromTop(game);
|
Card card = controller.getLibrary().getFromTop(game);
|
||||||
if (card != null) {
|
if (card != null) {
|
||||||
controller.revealCards("Rashmi, Eternities Crafter", new CardsImpl(card), game);
|
controller.revealCards("Rashmi, Eternities Crafter", new CardsImpl(card), game);
|
||||||
|
if (card.isLand()) {
|
||||||
|
controller.moveCards(card, Zone.HAND, source, game);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
Object cmcObject = this.getValue("RashmiEternitiesCrafterCMC");
|
Object cmcObject = this.getValue("RashmiEternitiesCrafterCMC");
|
||||||
if (cmcObject == null
|
if (cmcObject != null
|
||||||
|| card.isLand()
|
&& card.getConvertedManaCost() < (int) cmcObject
|
||||||
|| card.getConvertedManaCost() >= (int) cmcObject
|
&& controller.chooseUse(Outcome.PlayForFree, "Cast " + card.getName()
|
||||||
|| !controller.chooseUse(Outcome.PlayForFree, "Cast " + card.getName() + " without paying its mana cost?", source, game)) {
|
+ " without paying its mana cost?", source, game)) {
|
||||||
game.getState().setValue("PlayFromNotOwnHandZone" + card.getId(), Boolean.TRUE);
|
game.getState().setValue("PlayFromNotOwnHandZone" + card.getId(), Boolean.TRUE);
|
||||||
Boolean cardWasCast = controller.cast(controller.chooseAbilityForCast(card, game, true),
|
cardWasCast = controller.cast(controller.chooseAbilityForCast(card, game, true),
|
||||||
game, true, new MageObjectReference(source.getSourceObject(game), game));
|
game, true, new MageObjectReference(source.getSourceObject(game), game));
|
||||||
game.getState().setValue("PlayFromNotOwnHandZone" + card.getId(), null);
|
game.getState().setValue("PlayFromNotOwnHandZone" + card.getId(), null);
|
||||||
if (!cardWasCast) {
|
|
||||||
controller.moveCards(card, Zone.HAND, source, game);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
if (!cardWasCast) {
|
||||||
|
controller.moveCards(card, Zone.HAND, source, game);
|
||||||
|
}
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue