Implemented Optimistic getNetMana for Selvala, Explorer Returned (#8951)

Based on wording of Oracle ruling.
This commit is contained in:
Alex Vasile 2022-05-13 09:54:00 -06:00 committed by GitHub
parent 8c9012d192
commit d6db77724f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 67 additions and 24 deletions

View file

@ -34,22 +34,30 @@ public class ParleyCount implements DynamicValue, MageSingleton {
public int calculate(Game game, Ability sourceAbility, Effect effect) {
// Each player reveals the top card of their library. For each nonland card revealed this way
int parleyValue = 0;
MageObject sourceObject = game.getObject(sourceAbility.getSourceId());
if (sourceObject != null) {
for (UUID playerId : game.getState().getPlayersInRange(sourceAbility.getControllerId(), game)) {
Player player = game.getPlayer(playerId);
if (player != null) {
Card card = player.getLibrary().getFromTop(game);
if (card != null) {
if (!card.isLand(game)) {
parleyValue++;
}
player.revealCards(sourceObject.getIdName() + " (" + player.getName() + ')', new CardsImpl(card), game);
}
}
}
MageObject sourceObject = game.getObject(sourceAbility.getSourceId());
if (sourceObject == null) {
return parleyValue;
}
for (UUID playerId : game.getState().getPlayersInRange(sourceAbility.getControllerId(), game)) {
Player player = game.getPlayer(playerId);
if (player == null) {
continue;
}
Card card = player.getLibrary().getFromTop(game);
if (card == null) {
continue;
}
if (!card.isLand(game)) {
parleyValue++;
}
player.revealCards(sourceObject.getIdName() + " (" + player.getName() + ')', new CardsImpl(card), game);
}
return parleyValue;
}