diff --git a/Mage.Server/src/main/java/mage/server/util/SystemUtil.java b/Mage.Server/src/main/java/mage/server/util/SystemUtil.java index 41e8b9e6918..e398fc67bb7 100644 --- a/Mage.Server/src/main/java/mage/server/util/SystemUtil.java +++ b/Mage.Server/src/main/java/mage/server/util/SystemUtil.java @@ -442,6 +442,26 @@ public final class SystemUtil { perm.addCounters(CounterType.LOYALTY.createInstance(command.Amount), null, game); } } + continue; + } else if ("stack".equalsIgnoreCase(command.zone)) { + // simple cast (without targets or modes) + + // find card info + CardInfo cardInfo = CardRepository.instance.findCard(command.cardName); + if (cardInfo == null) { + logger.warn("Unknown card for stack command [" + command.cardName + "]: " + line); + continue; + } + + // put card to game + Card card = cardInfo.getCard(); + Set cardsToLoad = new HashSet<>(); + cardsToLoad.add(card); + game.loadCards(cardsToLoad, player.getId()); + + // move card from exile to stack + swapWithAnyCard(game, player, card, Zone.STACK); + continue; } @@ -516,6 +536,8 @@ public final class SystemUtil { game.getExile().getPermanentExile().remove(card); player.getLibrary().putOnTop(card, game); break; + case STACK: + card.cast(game, Zone.EXILED, card.getSpellAbility(), player.getId()); default: card.moveToZone(zone, null, game, false); }