diff --git a/Mage.Client/src/main/java/mage/client/util/gui/GuiDisplayUtil.java b/Mage.Client/src/main/java/mage/client/util/gui/GuiDisplayUtil.java index eea8d87ac3..b73b9ee132 100644 --- a/Mage.Client/src/main/java/mage/client/util/gui/GuiDisplayUtil.java +++ b/Mage.Client/src/main/java/mage/client/util/gui/GuiDisplayUtil.java @@ -191,12 +191,8 @@ public final class GuiDisplayUtil { // counters if (card.getMageObjectType().canHaveCounters()) { java.util.List counters = new ArrayList<>(); - if (card instanceof PermanentView) { - if (card.getCounters() != null) { - counters = new ArrayList<>(card.getCounters()); - } - } else if (card.getCounters() != null) { - counters = new ArrayList<>(card.getCounters()); + if (card.getCounters() != null) { + counters.addAll(card.getCounters()); } if (!counters.isEmpty()) { StringBuilder sb = new StringBuilder(); @@ -406,9 +402,7 @@ public final class GuiDisplayUtil { } private static String replaceNamesInRule(String rule, String cardName) { - String res = rule.replaceAll("\\{this\\}", cardName.isEmpty() ? "this" : cardName); - res = res.replaceAll("\\{source\\}", cardName.isEmpty() ? "this" : cardName); - return res; + return rule.replaceAll("\\{this\\}", cardName.isEmpty() ? "this" : cardName); } private static String getResourcePath(String image) { diff --git a/Mage.Server/src/main/java/mage/server/MageServerImpl.java b/Mage.Server/src/main/java/mage/server/MageServerImpl.java index 9387231256..0a0ae8eff1 100644 --- a/Mage.Server/src/main/java/mage/server/MageServerImpl.java +++ b/Mage.Server/src/main/java/mage/server/MageServerImpl.java @@ -201,7 +201,7 @@ public class MageServerImpl implements MageServer { // check if user can create another table int notStartedTables = user.getNumberOfNotStartedTables(); if (notStartedTables > 1) { - user.showUserMessage("Create table", "You have already " + notStartedTables + " not started table" + (notStartedTables == 1 ? "" : "s") + ". You can't create another."); + user.showUserMessage("Create table", "You have already " + notStartedTables + " not started tables. You can't create another."); throw new MageException("No message"); } // check AI players max @@ -1102,7 +1102,7 @@ public class MageServerImpl implements MageServer { execute("removeTable", sessionId, () -> { SessionManager.instance.getSession(sessionId).ifPresent(session -> { UUID userId = session.getUserId(); - TableManager.instance.removeTable(userId, tableId); + TableManager.instance.removeTable(userId, tableId); // delete account }); }); } @@ -1327,7 +1327,7 @@ public class MageServerImpl implements MageServer { // check if user can create another table int notStartedTables = user.getNumberOfNotStartedTables(); if (notStartedTables > 1) { - user.showUserMessage("Create table", "You have already " + notStartedTables + " not started table" + (notStartedTables == 1 ? "" : "s") + ". You can't create another."); + user.showUserMessage("Create table", "You have already " + notStartedTables + " not started tables. You can't create another."); throw new MageException("No message"); } // check if the user itself satisfies the quitRatio requirement. diff --git a/Mage.Sets/src/mage/cards/t/TorrentialGearhulk.java b/Mage.Sets/src/mage/cards/t/TorrentialGearhulk.java index cab0783a4a..4f15357f42 100644 --- a/Mage.Sets/src/mage/cards/t/TorrentialGearhulk.java +++ b/Mage.Sets/src/mage/cards/t/TorrentialGearhulk.java @@ -1,6 +1,5 @@ package mage.cards.t; -import java.util.UUID; import mage.ApprovingObject; import mage.MageInt; import mage.abilities.Ability; @@ -12,11 +11,7 @@ import mage.abilities.keyword.FlashAbility; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.SubType; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.FilterCard; import mage.game.Game; import mage.game.events.GameEvent; @@ -24,10 +19,10 @@ import mage.game.events.ZoneChangeEvent; import mage.players.Player; import mage.target.common.TargetCardInYourGraveyard; import mage.target.targetpointer.FixedTarget; -import org.apache.log4j.Logger; + +import java.util.UUID; /** - * * @author fireshoes */ public final class TorrentialGearhulk extends CardImpl { @@ -85,23 +80,18 @@ class TorrentialGearhulkEffect extends OneShotEffect { @Override public boolean apply(Game game, Ability source) { Player controller = game.getPlayer(source.getControllerId()); - if (controller != null) { - Card card = game.getCard(this.getTargetPointer().getFirst(game, source)); - if (card != null) { - if (controller.chooseUse(outcome, "Cast " + card.getLogName() + '?', source, game)) { - game.getState().setValue("PlayFromNotOwnHandZone" + card.getId(), Boolean.TRUE); - Boolean cardWasCast = controller.cast(controller.chooseAbilityForCast(card, game, true), - game, true, new ApprovingObject(source, game)); - game.getState().setValue("PlayFromNotOwnHandZone" + card.getId(), null); - if (cardWasCast) { - ContinuousEffect effect = new TorrentialGearhulkReplacementEffect(card.getId()); - effect.setTargetPointer(new FixedTarget(card.getId(), game.getState().getZoneChangeCounter(card.getId()))); - game.addEffect(effect, source); - } + Card card = game.getCard(this.getTargetPointer().getFirst(game, source)); + if (controller != null && card != null) { + if (controller.chooseUse(outcome, "Cast " + card.getLogName() + '?', source, game)) { + game.getState().setValue("PlayFromNotOwnHandZone" + card.getId(), Boolean.TRUE); + boolean cardWasCast = controller.cast(controller.chooseAbilityForCast(card, game, true), + game, true, new ApprovingObject(source, game)); + game.getState().setValue("PlayFromNotOwnHandZone" + card.getId(), null); + if (cardWasCast) { + ContinuousEffect effect = new TorrentialGearhulkReplacementEffect(card.getId()); + effect.setTargetPointer(new FixedTarget(card.getId(), game.getState().getZoneChangeCounter(card.getId()))); + game.addEffect(effect, source); } - } else if (card != null) { - Logger.getLogger(TorrentialGearhulkEffect.class).error("Torrential Gearhulk - Instant card without spellAbility : " + card.getName()); - return false; } return true; } diff --git a/Mage/src/main/java/mage/abilities/effects/Effects.java b/Mage/src/main/java/mage/abilities/effects/Effects.java index fe11c2b90d..dce5556d72 100644 --- a/Mage/src/main/java/mage/abilities/effects/Effects.java +++ b/Mage/src/main/java/mage/abilities/effects/Effects.java @@ -1,13 +1,14 @@ package mage.abilities.effects; -import java.util.ArrayList; -import java.util.Arrays; import mage.abilities.Ability; import mage.abilities.Mode; import mage.constants.Outcome; import mage.target.targetpointer.TargetPointer; import mage.util.CardUtil; +import java.util.ArrayList; +import java.util.Arrays; + /** * @author BetaSteward_at_googlemail.com */ @@ -56,42 +57,41 @@ public class Effects extends ArrayList { nextRule = concatPrefix + " " + nextRule; } - if (nextRule != null) { - //check if nextRule is a new sentence or not. - if (nextRule.startsWith("and ") || nextRule.startsWith("with ") || nextRule.startsWith("then ")) { + + //check if nextRule is a new sentence or not. + if (nextRule.startsWith("and ") || nextRule.startsWith("with ") || nextRule.startsWith("then ")) { + endString = " "; + } else if (nextRule.startsWith(",") || nextRule.startsWith(" ")) { + endString = ""; + // nextRule determined to be a new sentence, now check ending of lastRule + } else if (lastRule != null && lastRule.length() > 3) { + //check if lastRule already has appropriate punctuation, if so, add a space. + if (lastRule.endsWith(".\"") + || lastRule.endsWith(".)") + || lastRule.endsWith(".)") + || lastRule.endsWith(".")) { endString = " "; - } else if (nextRule.startsWith(",") || nextRule.startsWith(" ")) { - endString = ""; - // nextRule determined to be a new sentence, now check ending of lastRule - } else if (lastRule != null && lastRule.length() > 3) { - //check if lastRule already has appropriate punctuation, if so, add a space. - if (lastRule.endsWith(".\"") - || lastRule.endsWith(".)") - || lastRule.endsWith(".)") - || lastRule.endsWith(".")) { - endString = " "; - // if lastRule does not have appropriate punctuation, add the default ". " - } else if (!lastRule.endsWith(".") && !lastRule.endsWith("
")) { - endString = ". "; - } - if (nextRule.length() > 3) { - nextRule = Character.toUpperCase(nextRule.charAt(0)) + nextRule.substring(1); - } + // if lastRule does not have appropriate punctuation, add the default ". " + } else if (!lastRule.endsWith(".") && !lastRule.endsWith("
")) { + endString = ". "; } - - String currentRule = endString + nextRule; - // fix dot in the combined effect like IfDoCost - if (sbText.length() > 0 && currentRule.length() > 0) { - boolean prevTextEndsWithDot = sbText.charAt(sbText.length() - 1) == '.'; - boolean currentTextStartsWithDot = currentRule.startsWith(",") || currentRule.startsWith("."); - if (prevTextEndsWithDot && currentTextStartsWithDot) { - sbText.delete(sbText.length() - 1, sbText.length()); - } + if (nextRule.length() > 3) { + nextRule = Character.toUpperCase(nextRule.charAt(0)) + nextRule.substring(1); } - - sbText.append(currentRule); } + String currentRule = endString + nextRule; + // fix dot in the combined effect like IfDoCost + if (sbText.length() > 0 && currentRule.length() > 0) { + boolean prevTextEndsWithDot = sbText.charAt(sbText.length() - 1) == '.'; + boolean currentTextStartsWithDot = currentRule.startsWith(",") || currentRule.startsWith("."); + if (prevTextEndsWithDot && currentTextStartsWithDot) { + sbText.delete(sbText.length() - 1, sbText.length()); + } + } + + sbText.append(currentRule); + lastRule = nextRule; } diff --git a/Mage/src/main/java/mage/abilities/effects/common/continuous/BoostSourceEffect.java b/Mage/src/main/java/mage/abilities/effects/common/continuous/BoostSourceEffect.java index 1cfa40263a..bf389e9343 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/continuous/BoostSourceEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/continuous/BoostSourceEffect.java @@ -1,5 +1,3 @@ - - package mage.abilities.effects.common.continuous; import mage.MageObjectReference; @@ -16,13 +14,12 @@ import mage.game.permanent.Permanent; import org.apache.log4j.Logger; /** - * * @author BetaSteward_at_googlemail.com */ public class BoostSourceEffect extends ContinuousEffectImpl implements SourceEffect { private DynamicValue power; private DynamicValue toughness; - private boolean lockedIn; + private final boolean lockedIn; public BoostSourceEffect(int power, int toughness, Duration duration) { this(StaticValue.get(power), StaticValue.get(toughness), duration, false); @@ -36,7 +33,7 @@ public class BoostSourceEffect extends ContinuousEffectImpl implements SourceEff * @param power * @param toughness * @param duration - * @param lockedIn if true, power and toughness will be calculated only once, when the ability resolves + * @param lockedIn if true, power and toughness will be calculated only once, when the ability resolves */ public BoostSourceEffect(DynamicValue power, DynamicValue toughness, Duration duration, boolean lockedIn) { super(duration, Layer.PTChangingEffects_7, SubLayer.ModifyPT_7c, Outcome.BoostCreature); @@ -94,18 +91,13 @@ public class BoostSourceEffect extends ContinuousEffectImpl implements SourceEff StringBuilder sb = new StringBuilder(); sb.append("{this} gets "); String p = power.toString(); - if(!p.startsWith("-")) { + if (!p.startsWith("-")) { sb.append('+'); } sb.append(p).append('/'); String t = toughness.toString(); - if(!t.startsWith("-")){ - if(t.startsWith("-")) { - sb.append('-'); - } - else { - sb.append('+'); - } + if (!t.startsWith("-")) { + sb.append('+'); } sb.append(t); if (duration != Duration.WhileOnBattlefield) { diff --git a/Mage/src/main/java/mage/abilities/effects/common/continuous/BoostTargetEffect.java b/Mage/src/main/java/mage/abilities/effects/common/continuous/BoostTargetEffect.java index 438fce895f..1dfa390013 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/continuous/BoostTargetEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/continuous/BoostTargetEffect.java @@ -1,4 +1,3 @@ - package mage.abilities.effects.common.continuous; import mage.abilities.Ability; @@ -25,7 +24,7 @@ public class BoostTargetEffect extends ContinuousEffectImpl { private DynamicValue power; private DynamicValue toughness; - private boolean lockedIn; + private final boolean lockedIn; public BoostTargetEffect(int power, int toughness) { this(power, toughness, Duration.EndOfTurn); @@ -104,7 +103,7 @@ public class BoostTargetEffect extends ContinuousEffectImpl { } sb.append(CardUtil.numberToText(target.getMaxNumberOfTargets())).append(" target ").append(target.getTargetName()).append(" get "); } else { - if (!target.getTargetName().toUpperCase(Locale.ENGLISH).startsWith("ANOTHER")) { + if (!target.getTargetName().toLowerCase(Locale.ENGLISH).startsWith("another")) { sb.append("target "); } sb.append(target.getTargetName()).append(" gets "); diff --git a/Mage/src/main/java/mage/abilities/effects/common/continuous/GainAbilityTargetEffect.java b/Mage/src/main/java/mage/abilities/effects/common/continuous/GainAbilityTargetEffect.java index adff4f92a4..51204ed885 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/continuous/GainAbilityTargetEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/continuous/GainAbilityTargetEffect.java @@ -19,7 +19,7 @@ public class GainAbilityTargetEffect extends ContinuousEffectImpl { protected Ability ability; // shall a card gain the ability (otherwise permanent) - private boolean onCard; + private final boolean onCard; // Duration until next phase step of player private PhaseStep durationPhaseStep = null; @@ -140,7 +140,7 @@ public class GainAbilityTargetEffect extends ContinuousEffectImpl { } sb.append(target.getMaxNumberOfTargets()).append(" target ").append(target.getTargetName()).append(" gain "); } else { - if (!target.getTargetName().toUpperCase(Locale.ENGLISH).startsWith("ANOTHER")) { + if (!target.getTargetName().toLowerCase(Locale.ENGLISH).startsWith("another")) { sb.append("target "); } sb.append(target.getTargetName()).append(" gains "); diff --git a/Mage/src/main/java/mage/abilities/effects/common/continuous/SetPowerToughnessAllEffect.java b/Mage/src/main/java/mage/abilities/effects/common/continuous/SetPowerToughnessAllEffect.java index ac2b5127a9..677bb5cd8a 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/continuous/SetPowerToughnessAllEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/continuous/SetPowerToughnessAllEffect.java @@ -1,9 +1,5 @@ - - package mage.abilities.effects.common.continuous; -import java.util.Iterator; -import java.util.Locale; import mage.MageObjectReference; import mage.abilities.Ability; import mage.abilities.Mode; @@ -19,16 +15,18 @@ import mage.filter.common.FilterCreaturePermanent; import mage.game.Game; import mage.game.permanent.Permanent; +import java.util.Iterator; +import java.util.Locale; + /** - * * @author LevelX2 */ public class SetPowerToughnessAllEffect extends ContinuousEffectImpl { - private FilterPermanent filter; + private final FilterPermanent filter; private DynamicValue power; private DynamicValue toughness; - private boolean lockedInPT; + private final boolean lockedInPT; public SetPowerToughnessAllEffect(int power, int toughness, Duration duration) { this(StaticValue.get(power), StaticValue.get(toughness), duration, new FilterCreaturePermanent("Creatures"), true); @@ -63,7 +61,7 @@ public class SetPowerToughnessAllEffect extends ContinuousEffectImpl { public void init(Ability source, Game game) { super.init(source, game); if (affectedObjectsSet) { - for (Permanent perm: game.getBattlefield().getActivePermanents(filter, source.getControllerId(), source.getSourceId(), game)) { + for (Permanent perm : game.getBattlefield().getActivePermanents(filter, source.getControllerId(), source.getSourceId(), game)) { affectedObjectList.add(new MageObjectReference(perm, game)); } } @@ -78,7 +76,7 @@ public class SetPowerToughnessAllEffect extends ContinuousEffectImpl { int newPower = power.calculate(game, source, this); int newToughness = toughness.calculate(game, source, this); if (affectedObjectsSet) { - for (Iterator it = affectedObjectList.iterator(); it.hasNext();) { + for (Iterator it = affectedObjectList.iterator(); it.hasNext(); ) { Permanent permanent = it.next().getPermanent(game); if (permanent != null) { permanent.getPower().setValue(newPower); @@ -88,7 +86,7 @@ public class SetPowerToughnessAllEffect extends ContinuousEffectImpl { } } } else { - for (Permanent permanent: game.getBattlefield().getActivePermanents(filter, source.getControllerId(), source.getSourceId(), game)) { + for (Permanent permanent : game.getBattlefield().getActivePermanents(filter, source.getControllerId(), source.getSourceId(), game)) { permanent.getPower().setValue(newPower); permanent.getToughness().setValue(newToughness); } @@ -104,7 +102,7 @@ public class SetPowerToughnessAllEffect extends ContinuousEffectImpl { StringBuilder sb = new StringBuilder(); sb.append(filter.getMessage()); - if (filter.getMessage().toLowerCase(Locale.ENGLISH).startsWith("Each ")) { + if (filter.getMessage().toLowerCase(Locale.ENGLISH).startsWith("each ")) { sb.append(" has base power and toughness "); } else { sb.append(" have base power and toughness ");