diff --git a/forge-game/src/main/java/forge/game/ability/AbilityUtils.java b/forge-game/src/main/java/forge/game/ability/AbilityUtils.java index e032ec7137a..256e0fe46ec 100644 --- a/forge-game/src/main/java/forge/game/ability/AbilityUtils.java +++ b/forge-game/src/main/java/forge/game/ability/AbilityUtils.java @@ -1551,7 +1551,8 @@ public class AbilityUtils { boolean alreadyPaid = false; for (Player payer : allPayers) { if (unlessCost.equals("LifeTotalHalfUp")) { - cost = new Cost("PayLife", true); + String halfup = Integer.toString(Math.max(0,(int) Math.ceil(payer.getLife() / 2.0))); + cost = new Cost("PayLife<" + halfup + ">", true); } alreadyPaid |= payer.getController().payCostToPreventEffect(cost, sa, alreadyPaid, allPayers); } diff --git a/forge-gui/src/main/java/forge/player/HumanPlay.java b/forge-gui/src/main/java/forge/player/HumanPlay.java index 2436caba15d..ba58489a1cf 100644 --- a/forge-gui/src/main/java/forge/player/HumanPlay.java +++ b/forge-gui/src/main/java/forge/player/HumanPlay.java @@ -265,15 +265,11 @@ public class HumanPlay { boolean mayRemovePart = true; if (part instanceof CostPayLife) { - if (!part.canPay(sourceAbility, p)) { + final int amount = getAmountFromPart(part, source, sourceAbility); + if (!p.canPayLife(amount)) { return false; } - int amount = getAmountFromPart(part, source, sourceAbility); - if (part.getAmount().contains("/Half")) { - amount = Math.max(amount, 0); - } - if (!p.getController().confirmPayment(part, Localizer.getInstance().getMessage("lblDoYouWantPayNLife", String.valueOf(amount)) + orString, sourceAbility)) { return false; }