From ae165e5197c7f7c0a5ea268a641bb24bd1c85eb4 Mon Sep 17 00:00:00 2001 From: Oleg Agafonov Date: Wed, 1 Jul 2020 14:09:43 +0400 Subject: [PATCH] Fixed that it possible to make damage to lose/leaved players --- Mage/src/main/java/mage/players/PlayerImpl.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/Mage/src/main/java/mage/players/PlayerImpl.java b/Mage/src/main/java/mage/players/PlayerImpl.java index 29be0c4b63a..1904484d2f9 100644 --- a/Mage/src/main/java/mage/players/PlayerImpl.java +++ b/Mage/src/main/java/mage/players/PlayerImpl.java @@ -489,7 +489,7 @@ public abstract class PlayerImpl implements Player, Serializable { for (int i = 0; i < range.getRange(); i++) { Player player = players.getNext(game, false); if (player != null) { - while (player.hasLeft()) { + while (player.hasLeft()) { // can freeze? player = players.getNext(game, false); } inRange.add(player.getId()); @@ -499,7 +499,7 @@ public abstract class PlayerImpl implements Player, Serializable { for (int i = 0; i < range.getRange(); i++) { Player player = players.getPrevious(game); if (player != null) { - while (player.hasLeft()) { + while (player.hasLeft()) { // can freeze? player = players.getPrevious(game); } inRange.add(player.getId()); @@ -2039,6 +2039,10 @@ public abstract class PlayerImpl implements Player, Serializable { @SuppressWarnings({"null", "ConstantConditions"}) private int doDamage(int damage, UUID sourceId, Game game, boolean combatDamage, boolean preventable, List< UUID> appliedEffects) { + if (!this.isInGame()) { + return 0; + } + if (damage > 0) { if (canDamage(game.getObject(sourceId), game)) { GameEvent event = new DamagePlayerEvent(playerId, @@ -2970,6 +2974,7 @@ public abstract class PlayerImpl implements Player, Serializable { return false; } if (availableMana != null) { + sourceObject.adjustCosts(copy, game); game.getContinuousEffects().costModification(copy, game); } boolean canBeCastRegularly = true;