From 68fe6ec7e3e98d4900fcfa05d5a113203afa0247 Mon Sep 17 00:00:00 2001 From: tool4EvEr Date: Wed, 15 Dec 2021 22:14:56 +0100 Subject: [PATCH] Remove some redundancy --- forge-game/src/main/java/forge/game/Game.java | 2 -- .../src/main/java/forge/game/GameView.java | 1 - .../game/ability/effects/AnimateEffect.java | 8 ++------ .../game/ability/effects/ChooseCardEffect.java | 12 +++--------- .../ability/effects/DelayedTriggerEffect.java | 4 +--- .../forge/game/ability/effects/DigEffect.java | 8 ++------ .../game/ability/effects/DigUntilEffect.java | 8 ++------ .../game/ability/effects/DiscardEffect.java | 3 --- .../forge/game/ability/effects/DrawEffect.java | 4 +--- .../forge/game/ability/effects/FightEffect.java | 5 +---- .../ability/effects/ImmediateTriggerEffect.java | 4 +--- .../forge/game/ability/effects/MillEffect.java | 8 ++------ .../game/ability/effects/MustAttackEffect.java | 1 - .../forge/game/ability/effects/PumpEffect.java | 16 ++++------------ .../game/ability/effects/RevealHandEffect.java | 8 ++------ .../game/ability/effects/TokenEffectBase.java | 5 +---- .../game/ability/effects/TwoPilesEffect.java | 10 +++------- .../src/main/java/forge/game/player/Player.java | 8 +++----- .../trigger/TriggerSpellAbilityCastOrCopy.java | 2 +- .../screens/home/online/VSubmenuOnlineLobby.java | 9 +++++---- forge-gui/res/cardsfolder/t/tsabos_decree.txt | 4 ++-- forge-gui/res/cardsfolder/w/wing_puncture.txt | 2 +- 22 files changed, 37 insertions(+), 95 deletions(-) diff --git a/forge-game/src/main/java/forge/game/Game.java b/forge-game/src/main/java/forge/game/Game.java index 2498ef61fd0..ad60c55935d 100644 --- a/forge-game/src/main/java/forge/game/Game.java +++ b/forge-game/src/main/java/forge/game/Game.java @@ -955,7 +955,6 @@ public class Game { Multimap anteed = ArrayListMultimap.create(); if (matchRarity) { - boolean onePlayerHasTimeShifted = false; List validRarities = new ArrayList<>(Arrays.asList(CardRarity.values())); @@ -1018,7 +1017,6 @@ public class Game { } else { chooseRandomCardsForAnte(player, anteed); } - } } else { diff --git a/forge-game/src/main/java/forge/game/GameView.java b/forge-game/src/main/java/forge/game/GameView.java index c77f0303170..740f1979e63 100644 --- a/forge-game/src/main/java/forge/game/GameView.java +++ b/forge-game/src/main/java/forge/game/GameView.java @@ -43,7 +43,6 @@ public class GameView extends TrackableObject { set(TrackableProperty.GameLog, game.getGameLog()); set(TrackableProperty.NumPlayedGamesInMatch, game.getMatch().getOutcomes().size()); - } public Match getMatch() { diff --git a/forge-game/src/main/java/forge/game/ability/effects/AnimateEffect.java b/forge-game/src/main/java/forge/game/ability/effects/AnimateEffect.java index 8a09372f426..752e7bc11d2 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/AnimateEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/AnimateEffect.java @@ -176,16 +176,12 @@ public class AnimateEffect extends AnimateEffectBase { // give Remembered if (animateRemembered != null) { - for (final Object o : AbilityUtils.getDefinedObjects(source, animateRemembered, sa)) { - c.addRemembered(o); - } + c.addRemembered(AbilityUtils.getDefinedObjects(source, animateRemembered, sa)); } // give Imprinted if (animateImprinted != null) { - for (final Card imprintedCard : AbilityUtils.getDefinedCards(source, animateImprinted, sa)) { - c.addImprintedCard(imprintedCard); - } + c.addImprintedCards(AbilityUtils.getDefinedCards(source, animateImprinted, sa)); } game.fireEvent(new GameEventCardStatsChanged(c)); diff --git a/forge-game/src/main/java/forge/game/ability/effects/ChooseCardEffect.java b/forge-game/src/main/java/forge/game/ability/effects/ChooseCardEffect.java index 28f17782120..dd4397f1663 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/ChooseCardEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/ChooseCardEffect.java @@ -212,19 +212,13 @@ public class ChooseCardEffect extends SpellAbilityEffect { } host.setChosenCards(chosen); if (sa.hasParam("RememberChosen")) { - for (final Card rem : chosen) { - host.addRemembered(rem); - } + host.addRemembered(chosen); } if (sa.hasParam("ForgetChosen")) { - for (final Card rem : chosen) { - host.removeRemembered(rem); - } + host.removeRemembered(chosen); } if (sa.hasParam("ImprintChosen")) { - for (final Card imp : chosen) { - host.addImprintedCard(imp); - } + host.addImprintedCards(chosen); } } } diff --git a/forge-game/src/main/java/forge/game/ability/effects/DelayedTriggerEffect.java b/forge-game/src/main/java/forge/game/ability/effects/DelayedTriggerEffect.java index 9adec6a686e..6592c4d2283 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/DelayedTriggerEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/DelayedTriggerEffect.java @@ -56,9 +56,7 @@ public class DelayedTriggerEffect extends SpellAbilityEffect { if (sa.hasParam("RememberObjects")) { for (final String rem : sa.getParam("RememberObjects").split(",")) { - for (final Object o : AbilityUtils.getDefinedEntities(sa.getHostCard(), rem, sa)) { - delTrig.addRemembered(o); - } + delTrig.addRemembered(AbilityUtils.getDefinedEntities(sa.getHostCard(), rem, sa)); } } diff --git a/forge-game/src/main/java/forge/game/ability/effects/DigEffect.java b/forge-game/src/main/java/forge/game/ability/effects/DigEffect.java index 9e4d5a07cba..5b9dfcdc7a6 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/DigEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/DigEffect.java @@ -177,14 +177,10 @@ public class DigEffect extends SpellAbilityEffect { } if (sa.hasParam("RememberRevealed") && !sa.hasParam("RevealValid") && hasRevealed) { - for (final Card one : top) { - host.addRemembered(one); - } + host.addRemembered(top); } if (sa.hasParam("ImprintRevealed") && hasRevealed) { - for (final Card one : top) { - host.addImprintedCard(one); - } + host.addImprintedCards(top); } if (sa.hasParam("Choser")) { final FCollectionView choosers = AbilityUtils.getDefinedPlayers(host, sa.getParam("Choser"), sa); diff --git a/forge-game/src/main/java/forge/game/ability/effects/DigUntilEffect.java b/forge-game/src/main/java/forge/game/ability/effects/DigUntilEffect.java index 8f9fa865198..f2c1ca2a6bb 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/DigUntilEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/DigUntilEffect.java @@ -204,14 +204,10 @@ public class DigUntilEffect extends SpellAbilityEffect { } if (sa.hasParam("RememberRevealed")) { - for (final Card c : revealed) { - host.addRemembered(c); - } + host.addRemembered(revealed); } if (sa.hasParam("ImprintRevealed")) { - for (final Card c : revealed) { - host.addImprintedCard(c); - } + host.addImprintedCards(revealed); } if (sa.hasParam("RevealRandomOrder")) { Collections.shuffle(revealed, MyRandom.getRandom()); diff --git a/forge-game/src/main/java/forge/game/ability/effects/DiscardEffect.java b/forge-game/src/main/java/forge/game/ability/effects/DiscardEffect.java index 0b6a092e907..bb9068ab8da 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/DiscardEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/DiscardEffect.java @@ -127,9 +127,6 @@ public class DiscardEffect extends SpellAbilityEffect { for (final Player p : discarders) { CardCollectionView toBeDiscarded = new CardCollection(); if ((mode.equals("RevealTgtChoose") && firstTarget != null) || !sa.usesTargeting() || p.canBeTargetedBy(sa)) { - if (sa.hasParam("RememberDiscarder") && p.canDiscardBy(sa, true)) { - source.addRemembered(p); - } final int numCardsInHand = p.getCardsIn(ZoneType.Hand).size(); if (mode.equals("Defined")) { if (!p.canDiscardBy(sa, true)) { diff --git a/forge-game/src/main/java/forge/game/ability/effects/DrawEffect.java b/forge-game/src/main/java/forge/game/ability/effects/DrawEffect.java index 5cfda2e1ff4..051b433e367 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/DrawEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/DrawEffect.java @@ -79,9 +79,7 @@ public class DrawEffect extends SpellAbilityEffect { } } if (sa.hasParam("RememberDrawn")) { - for (final Card c : drawn) { - source.addRemembered(c); - } + source.addRemembered(drawn); } sa.setSVar("AFNotDrawnNum_" + p.getId(), "Number$" + drawn.size()); } diff --git a/forge-game/src/main/java/forge/game/ability/effects/FightEffect.java b/forge-game/src/main/java/forge/game/ability/effects/FightEffect.java index c50ba442a05..950fa85777a 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/FightEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/FightEffect.java @@ -53,10 +53,7 @@ public class FightEffect extends DamageBaseEffect { } if (sa.hasParam("RememberObjects")) { - final String remembered = sa.getParam("RememberObjects"); - for (final Object o : AbilityUtils.getDefinedObjects(host, remembered, sa)) { - host.addRemembered(o); - } + host.addRemembered(AbilityUtils.getDefinedObjects(host, sa.getParam("RememberObjects"), sa)); } Player controller = host.getController(); diff --git a/forge-game/src/main/java/forge/game/ability/effects/ImmediateTriggerEffect.java b/forge-game/src/main/java/forge/game/ability/effects/ImmediateTriggerEffect.java index d2410394a6a..568e49c9b6c 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/ImmediateTriggerEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/ImmediateTriggerEffect.java @@ -59,9 +59,7 @@ public class ImmediateTriggerEffect extends SpellAbilityEffect { if (sa.hasParam("RememberObjects")) { for (final String rem : sa.getParam("RememberObjects").split(",")) { - for (final Object o : AbilityUtils.getDefinedEntities(sa.getHostCard(), rem, sa)) { - immediateTrig.addRemembered(o); - } + immediateTrig.addRemembered(AbilityUtils.getDefinedEntities(sa.getHostCard(), rem, sa)); } } diff --git a/forge-game/src/main/java/forge/game/ability/effects/MillEffect.java b/forge-game/src/main/java/forge/game/ability/effects/MillEffect.java index d56de13f3fb..dc598e57368 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/MillEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/MillEffect.java @@ -68,14 +68,10 @@ public class MillEffect extends SpellAbilityEffect { } } if (sa.hasParam("RememberMilled")) { - for (final Card c : milled) { - source.addRemembered(c); - } + source.addRemembered(milled); } if (sa.hasParam("Imprint")) { - for (final Card c : milled) { - source.addImprintedCard(c); - } + source.addImprintedCards(milled); } } } diff --git a/forge-game/src/main/java/forge/game/ability/effects/MustAttackEffect.java b/forge-game/src/main/java/forge/game/ability/effects/MustAttackEffect.java index ff47db372c3..16eb26c3bd5 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/MustAttackEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/MustAttackEffect.java @@ -86,7 +86,6 @@ public class MustAttackEffect extends SpellAbilityEffect { } } } - } // mustAttackResolve() } diff --git a/forge-game/src/main/java/forge/game/ability/effects/PumpEffect.java b/forge-game/src/main/java/forge/game/ability/effects/PumpEffect.java index a706196bc7b..0fff8f47c1c 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/PumpEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/PumpEffect.java @@ -324,9 +324,7 @@ public class PumpEffect extends SpellAbilityEffect { } if (sa.hasParam("RememberObjects")) { - for (final Object o : AbilityUtils.getDefinedObjects(host, sa.getParam("RememberObjects"), sa)) { - host.addRemembered(o); - } + host.addRemembered(AbilityUtils.getDefinedObjects(host, sa.getParam("RememberObjects"), sa)); } if (sa.hasParam("NoteCardsFor")) { @@ -338,21 +336,15 @@ public class PumpEffect extends SpellAbilityEffect { } if (sa.hasParam("ForgetObjects")) { - for (final Object o : AbilityUtils.getDefinedObjects(host, sa.getParam("ForgetObjects"), sa)) { - host.removeRemembered(o); - } + host.removeRemembered(AbilityUtils.getDefinedObjects(host, sa.getParam("ForgetObjects"), sa)); } if (sa.hasParam("ImprintCards")) { - for (final Card c : AbilityUtils.getDefinedCards(host, sa.getParam("ImprintCards"), sa)) { - host.addImprintedCard(c); - } + host.addImprintedCards(AbilityUtils.getDefinedCards(host, sa.getParam("ImprintCards"), sa)); } if (sa.hasParam("ForgetImprinted")) { - for (final Card c : AbilityUtils.getDefinedCards(host, sa.getParam("ForgetImprinted"), sa)) { - host.removeImprintedCard(c); - } + host.removeImprintedCards(AbilityUtils.getDefinedCards(host, sa.getParam("ForgetImprinted"), sa)); } final ZoneType pumpZone = sa.hasParam("PumpZone") ? ZoneType.smartValueOf(sa.getParam("PumpZone")) diff --git a/forge-game/src/main/java/forge/game/ability/effects/RevealHandEffect.java b/forge-game/src/main/java/forge/game/ability/effects/RevealHandEffect.java index 608bf6b55c1..fdaac51d652 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/RevealHandEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/RevealHandEffect.java @@ -50,14 +50,10 @@ public class RevealHandEffect extends SpellAbilityEffect { } sa.getActivatingPlayer().getController().reveal(hand, ZoneType.Hand, p); if (sa.hasParam("RememberRevealed")) { - for (final Card c : hand) { - host.addRemembered(c); - } + host.addRemembered(hand); } if (sa.hasParam("ImprintRevealed")) { - for (final Card c : hand) { - host.addImprintedCard(c); - } + host.addImprintedCards(hand); } if (sa.hasParam("RememberRevealedPlayer")) { host.addRemembered(p); diff --git a/forge-game/src/main/java/forge/game/ability/effects/TokenEffectBase.java b/forge-game/src/main/java/forge/game/ability/effects/TokenEffectBase.java index 0dcbcc93c41..1d5c68f69ad 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/TokenEffectBase.java +++ b/forge-game/src/main/java/forge/game/ability/effects/TokenEffectBase.java @@ -203,10 +203,7 @@ public abstract class TokenEffectBase extends SpellAbilityEffect { moved.addRemembered(host); } if (sa.hasParam("TokenRemembered")) { - final String remembered = sa.getParam("TokenRemembered"); - for (final Object o : AbilityUtils.getDefinedObjects(host, remembered, sa)) { - moved.addRemembered(o); - } + moved.addRemembered(AbilityUtils.getDefinedObjects(host, sa.getParam("TokenRemembered"), sa)); } allTokens.add(moved); } diff --git a/forge-game/src/main/java/forge/game/ability/effects/TwoPilesEffect.java b/forge-game/src/main/java/forge/game/ability/effects/TwoPilesEffect.java index 869198b340b..48b8b9993b8 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/TwoPilesEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/TwoPilesEffect.java @@ -142,9 +142,7 @@ public class TwoPilesEffect extends SpellAbilityEffect { // take action on the chosen pile if (sa.hasParam("ChosenPile")) { - for (final Card z : chosenPile) { - card.addRemembered(z); - } + card.addRemembered(chosenPile); SpellAbility sub = sa.getAdditionalAbility("ChosenPile"); if (sub != null) { @@ -155,10 +153,8 @@ public class TwoPilesEffect extends SpellAbilityEffect { // take action on the unchosen pile if (sa.hasParam("UnchosenPile")) { card.clearRemembered(); - for (final Card z : unchosenPile) { - card.addRemembered(z); - } - + card.addRemembered(unchosenPile); + SpellAbility sub = sa.getAdditionalAbility("UnchosenPile"); if (sub != null) { AbilityUtils.resolve(sub); 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 7362e2dcd43..e51dccd6ab2 100644 --- a/forge-game/src/main/java/forge/game/player/Player.java +++ b/forge-game/src/main/java/forge/game/player/Player.java @@ -333,7 +333,6 @@ public class Player extends GameEntity implements Comparable { game.getTriggerHandler().runTrigger(TriggerType.SetInMotion, runParams, false); } - /** * returns all opponents. * Should keep player relations somewhere in the match structure @@ -533,8 +532,7 @@ public class Player extends GameEntity implements Comparable { game.getTriggerHandler().runTrigger(TriggerType.LifeGained, runParams, false); game.fireEvent(new GameEventPlayerLivesChanged(this, oldLife, life)); - } - else { + } else { System.out.println("Player - trying to gain negative or 0 life"); } return newLifeSet; @@ -616,7 +614,7 @@ public class Player extends GameEntity implements Comparable { if (lifePayment > 0 && life < lifePayment) { return false; } - return (lifePayment <= 0) || !StaticAbilityCantGainLosePayLife.anyCantPayLife(this, effect, cause); + return lifePayment <= 0 || !StaticAbilityCantGainLosePayLife.anyCantPayLife(this, effect, cause); } public final boolean payLife(final int lifePayment, final SpellAbility cause, final boolean effect) { @@ -2019,7 +2017,7 @@ public class Player extends GameEntity implements Comparable { } public final boolean cantLoseForZeroOrLessLife() { - return (hasKeyword("You don't lose the game for having 0 or less life.")); + return hasKeyword("You don't lose the game for having 0 or less life."); } public final boolean cantWin() { diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerSpellAbilityCastOrCopy.java b/forge-game/src/main/java/forge/game/trigger/TriggerSpellAbilityCastOrCopy.java index ab1e44571af..fb28ab0f843 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerSpellAbilityCastOrCopy.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerSpellAbilityCastOrCopy.java @@ -107,7 +107,7 @@ public class TriggerSpellAbilityCastOrCopy extends Trigger { } if (hasParam("ActivatorThisTurnCast")) { final String compare = getParam("ActivatorThisTurnCast"); - final String valid = hasParam("ValidCard") ? getParam("ValidCard") : "Card"; + final String valid = getParamOrDefault("ValidCard", "Card"); List thisTurnCast = CardUtil.getThisTurnCast(valid, getHostCard(), this); thisTurnCast = CardLists.filterControlledBy(thisTurnCast, si.getSpellAbility(true).getActivatingPlayer()); int left = thisTurnCast.size(); diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/online/VSubmenuOnlineLobby.java b/forge-gui-desktop/src/main/java/forge/screens/home/online/VSubmenuOnlineLobby.java index 3d36d3c8740..62ad0d7ee52 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/home/online/VSubmenuOnlineLobby.java +++ b/forge-gui-desktop/src/main/java/forge/screens/home/online/VSubmenuOnlineLobby.java @@ -51,10 +51,11 @@ public enum VSubmenuOnlineLobby implements IVSubmenu, IOnli } public void reset() { - onClosing(null); - this.client = null; - this.lobby = null; - populate(); + if (onClosing(null)) { + this.client = null; + this.lobby = null; + populate(); + } } public void setClient(final FGameClient client) { diff --git a/forge-gui/res/cardsfolder/t/tsabos_decree.txt b/forge-gui/res/cardsfolder/t/tsabos_decree.txt index 83e57e97459..439ca7d18dd 100644 --- a/forge-gui/res/cardsfolder/t/tsabos_decree.txt +++ b/forge-gui/res/cardsfolder/t/tsabos_decree.txt @@ -2,8 +2,8 @@ Name:Tsabo's Decree ManaCost:5 B Types:Instant A:SP$ ChooseType | Cost$ 5 B | Defined$ You | Type$ Creature | SubAbility$ TsabosDiscard | StackDescription$ None | SpellDescription$ Choose a creature type. Target player reveals their hand and discards all creature cards of that type. Then destroy all creatures of that type that player controls. They can't be regenerated. -SVar:TsabosDiscard:DB$ Discard | ValidTgts$ Player | ForgetOtherTargets$ True | RememberTargets$ True | RememberDiscarder$ True | Mode$ RevealDiscardAll | DiscardValid$ Creature.ChosenType | SubAbility$ TsabosDestroy -SVar:TsabosDestroy:DB$ DestroyAll | ValidCards$ Creature.ChosenType+RememberedPlayerCtrl | NoRegen$ True +SVar:TsabosDiscard:DB$ Discard | ValidTgts$ Player | Mode$ RevealDiscardAll | DiscardValid$ Creature.ChosenType | SubAbility$ TsabosDestroy +SVar:TsabosDestroy:DB$ DestroyAll | ValidCards$ Creature.ChosenType+TargetedPlayerCtrl | NoRegen$ True AI:RemoveDeck:All SVar:Picture:http://www.wizards.com/global/images/magic/general/tsabos_decree.jpg Oracle:Choose a creature type. Target player reveals their hand and discards all creature cards of that type. Then destroy all creatures of that type that player controls. They can't be regenerated. diff --git a/forge-gui/res/cardsfolder/w/wing_puncture.txt b/forge-gui/res/cardsfolder/w/wing_puncture.txt index 38db6e090c3..462cbc0a551 100644 --- a/forge-gui/res/cardsfolder/w/wing_puncture.txt +++ b/forge-gui/res/cardsfolder/w/wing_puncture.txt @@ -2,7 +2,7 @@ Name:Wing Puncture ManaCost:G Types:Instant A:SP$ Pump | Cost$ G | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Select target creature you control | SubAbility$ SoulsDamage | SpellDescription$ Target creature you control deals damage equal to its power to target creature with flying. -SVar:SoulsDamage:DB$ DealDamage | ValidTgts$ Creature.withFlying | AILogic$ PowerDmg | TgtPrompt$ Select target creature with flying | NumDmg$ X | DamageSource$ ParentTarget +SVar:SoulsDamage:DB$ DealDamage | ValidTgts$ Creature.withFlying | AILogic$ PowerDmg | TgtPrompt$ Select target creature with flying | NumDmg$ X | DamageSource$ ParentTarget SVar:X:ParentTargeted$CardPower SVar:Picture:http://www.wizards.com/global/images/magic/general/wing_puncture.jpg Oracle:Target creature you control deals damage equal to its power to target creature with flying.