diff --git a/forge-game/src/main/java/forge/game/ability/effects/CountersPutEffect.java b/forge-game/src/main/java/forge/game/ability/effects/CountersPutEffect.java index 2f48a5a20f6..9a1048d83fb 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/CountersPutEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/CountersPutEffect.java @@ -78,13 +78,15 @@ public class CountersPutEffect extends SpellAbilityEffect { final List targetCards = SpellAbilityEffect.getTargetCards(spellAbility); for(int i = 0; i < targetCards.size(); i++) { Card targetCard = targetCards.get(i); - stringBuilder.append(targetCard).append(" (").append(spellAbility.getTargetRestrictions().getDividedMap().get(targetCard)).append(" counter)"); + if (spellAbility.getTargetRestrictions().getDividedMap().get(targetCard) != null) { // fix null counter stack description + stringBuilder.append(targetCard).append(" (").append(spellAbility.getTargetRestrictions().getDividedMap().get(targetCard)).append(" counter)"); - if(i == targetCards.size() - 2) { - stringBuilder.append(" and "); - } - else if(i + 1 < targetCards.size()) { - stringBuilder.append(", "); + if(i == targetCards.size() - 2) { + stringBuilder.append(" and "); + } + else if(i + 1 < targetCards.size()) { + stringBuilder.append(", "); + } } } } else { @@ -103,9 +105,8 @@ public class CountersPutEffect extends SpellAbilityEffect { } } } - stringBuilder.append("."); - - return stringBuilder.toString(); + //stringBuilder.append("."); + return stringBuilder.toString().trim() + "."; } @Override diff --git a/forge-game/src/main/java/forge/game/ability/effects/DamageDealEffect.java b/forge-game/src/main/java/forge/game/ability/effects/DamageDealEffect.java index 9a80817d6e3..8e123ccab94 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/DamageDealEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/DamageDealEffect.java @@ -30,7 +30,12 @@ public class DamageDealEffect extends DamageBaseEffect { // when damageStackDescription is called, just build exactly what is happening final StringBuilder stringBuilder = new StringBuilder(); final String damage = spellAbility.getParam("NumDmg"); - final int dmg = AbilityUtils.calculateAmount(spellAbility.getHostCard(), damage, spellAbility); + int dmg; + try { // try-catch to fix Volcano Hellion Crash + dmg = AbilityUtils.calculateAmount(spellAbility.getHostCard(), damage, spellAbility); + } catch (NullPointerException e) { + dmg = 0; + } List targets = SpellAbilityEffect.getTargets(spellAbility); if (targets.isEmpty()) { @@ -63,25 +68,28 @@ public class DamageDealEffect extends DamageBaseEffect { // target cards for (int i = 0; i < targetCards.size(); i++) { Card targetCard = targetCards.get(i); - stringBuilder.append(targetCard).append(" (").append(spellAbility.getTargetRestrictions().getDividedMap().get(targetCard)).append(" damage)"); + if (spellAbility.getTargetRestrictions().getDividedMap().get(targetCard) != null) { //fix null damage stack description + stringBuilder.append(targetCard).append(" (").append(spellAbility.getTargetRestrictions().getDividedMap().get(targetCard)).append(" damage)"); - if (i == targetCount - 2) { - stringBuilder.append(" and "); - } else if (i + 1 < targetCount) { - stringBuilder.append(", "); + if (i == targetCount - 2) { + stringBuilder.append(" and "); + } else if (i + 1 < targetCount) { + stringBuilder.append(", "); + } } } // target players for (int i = 0; i < players.size(); i++) { - Player targetPlayer = players.get(i); - stringBuilder.append(targetPlayer).append(" (").append(spellAbility.getTargetRestrictions().getDividedMap().get(targetPlayer)).append(" damage)"); + if (spellAbility.getTargetRestrictions().getDividedMap().get(targetPlayer) != null) { //fix null damage stack description + stringBuilder.append(targetPlayer).append(" (").append(spellAbility.getTargetRestrictions().getDividedMap().get(targetPlayer)).append(" damage)"); - if (i == players.size() - 2) { - stringBuilder.append(" and "); - } else if (i + 1 < players.size()) { - stringBuilder.append(", "); + if (i == players.size() - 2) { + stringBuilder.append(" and "); + } else if (i + 1 < players.size()) { + stringBuilder.append(", "); + } } } @@ -104,8 +112,8 @@ public class DamageDealEffect extends DamageBaseEffect { } } - stringBuilder.append("."); - return stringBuilder.toString(); + //stringBuilder.append("."); + return stringBuilder.toString().trim() + "."; } /* (non-Javadoc)