diff --git a/forge-game/src/main/java/forge/game/card/Card.java b/forge-game/src/main/java/forge/game/card/Card.java index c6f4d8e5521..655854b7367 100644 --- a/forge-game/src/main/java/forge/game/card/Card.java +++ b/forge-game/src/main/java/forge/game/card/Card.java @@ -5933,9 +5933,8 @@ public class Card extends GameEntity implements Comparable { source.addDealtDamageToThisTurn(this, damageIn); if (isCombat) { game.getCombat().addDealtDamageTo(source, this); - } - - if (source.hasKeyword("Lifelink")) { + } else if (source.hasKeyword("Lifelink")) { + // LifeLink not for Combat Damage at this place source.getController().gainLife(damageIn, source); } diff --git a/forge-game/src/main/java/forge/game/combat/Combat.java b/forge-game/src/main/java/forge/game/combat/Combat.java index 62fee21fe5d..3d3d1a87c21 100644 --- a/forge-game/src/main/java/forge/game/combat/Combat.java +++ b/forge-game/src/main/java/forge/game/combat/Combat.java @@ -762,6 +762,10 @@ public class Combat { for (final Card damageSource : dealtDamageTo.keySet()) { final HashMap runParams = new HashMap(); int dealtDamage = damageDealtThisCombat.containsKey(damageSource) ? damageDealtThisCombat.get(damageSource) : 0; + // LifeLink for Combat Damage at this place + if (dealtDamage > 0 && damageSource.hasKeyword("Lifelink")) { + damageSource.getController().gainLife(dealtDamage, damageSource); + } runParams.put("DamageSource", damageSource); runParams.put("DamageTargets", dealtDamageTo.get(damageSource)); runParams.put("DamageAmount", dealtDamage); diff --git a/forge-game/src/main/java/forge/game/player/Player.java b/forge-game/src/main/java/forge/game/player/Player.java index 8152910d96e..51c21734940 100644 --- a/forge-game/src/main/java/forge/game/player/Player.java +++ b/forge-game/src/main/java/forge/game/player/Player.java @@ -524,15 +524,15 @@ public class Player extends GameEntity implements Comparable { } assignedDamage.put(source, amount); - if (source.hasKeyword("Lifelink")) { - source.getController().gainLife(amount, source); - } source.getDamageHistory().registerDamage(this); if (isCombat) { for (final String type : source.getType()) { source.getController().addProwlType(type); } + } else if (source.hasKeyword("Lifelink")) { + // LifeLink not for Combat Damage at this place + source.getController().gainLife(amount, source); } // Run triggers