Fix Egon exiling single card

This commit is contained in:
tool4EvEr
2021-08-10 19:28:38 +02:00
parent b049c8c09b
commit 41ce9920ae
3 changed files with 13 additions and 12 deletions

View File

@@ -753,10 +753,10 @@ public abstract class SpellAbilityEffect {
} else if ("UntilUntaps".equals(duration)) {
host.addUntapCommand(until);
} else if ("UntilUnattached".equals(duration)) {
sa.getHostCard().addUnattachCommand(until);
host.addUnattachCommand(until);
} else if ("UntilFacedown".equals(duration)) {
sa.getHostCard().addFacedownCommand(until);
}else {
host.addFacedownCommand(until);
} else {
game.getEndOfTurn().addUntil(until);
}
}

View File

@@ -3,12 +3,9 @@ ManaCost:2 B
Types:Legendary Creature God
PT:6/6
K:Deathtouch
T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigExile | TriggerDescription$ At the beginning of your upkeep, exile two cards from your graveyard. If you can't, sacrifice NICKNAME and draw a card.
SVar:TrigExile:DB$ ChangeZone | Origin$ Graveyard | Destination$ Exile | ChangeType$ Card.YouOwn | ChangeNum$ 2 | RememberChanged$ True | Hidden$ True | Mandatory$ True | SubAbility$ DBSacSelf
SVar:DBSacSelf:DB$ Sacrifice | Defined$ Self | ConditionCheckSVar$ X | ConditionSVarCompare$ LT2 | SubAbility$ DBDraw
SVar:DBDraw:DB$ Draw | NumCards$ 1 | ConditionCheckSVar$ X | ConditionSVarCompare$ LT2 | SubAbility$ DBCleanup
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
SVar:X:Remembered$Amount
T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ DBSacSelf | TriggerDescription$ At the beginning of your upkeep, exile two cards from your graveyard. If you can't, sacrifice NICKNAME and draw a card.
SVar:DBSacSelf:DB$ Sacrifice | Defined$ Self | UnlessCost$ Mandatory ExileFromGrave<2/Card> | UnlessPayer$ You | UnlessResolveSubs$ WhenNotPaid | SubAbility$ DBDraw
SVar:DBDraw:DB$ Draw | NumCards$ 1
AlternateMode:Modal
DeckHints:Ability$Discard & Ability$Graveyard
Oracle:Deathtouch\nAt the beginning of your upkeep, exile two cards from your graveyard. If you can't, sacrifice Egon and draw a card.

View File

@@ -410,8 +410,7 @@ public class HumanPlay {
}
costExile.payAsDecided(p, PaymentDecision.card(p.getCardsIn(ZoneType.Graveyard)), sourceAbility);
}
else {
} else {
from = costExile.getFrom();
CardCollection list = CardLists.getValidCards(p.getCardsIn(from), part.getType().split(";"), p, source, sourceAbility);
final int nNeeded = getAmountFromPart(costPart, source, sourceAbility);
@@ -429,7 +428,12 @@ public class HumanPlay {
CardCollection newList = new CardCollection();
GameEntityViewMap<Card, CardView> gameCacheList = GameEntityView.getMap(list);
for (int i = 0; i < nNeeded; i++) {
final CardView cv = SGuiChoose.oneOrNone(Localizer.getInstance().getMessage("lblExileFromZone", from.getTranslatedName()), gameCacheList.getTrackableKeys());
final CardView cv;
if (mandatory) {
cv = SGuiChoose.one(Localizer.getInstance().getMessage("lblExileFromZone", from.getTranslatedName()), gameCacheList.getTrackableKeys());
} else {
cv = SGuiChoose.oneOrNone(Localizer.getInstance().getMessage("lblExileFromZone", from.getTranslatedName()), gameCacheList.getTrackableKeys());
}
if (cv == null || !gameCacheList.containsKey(cv)) {
return false;
}