From 58d618e8d7aa48ad668344b1ae183c9683751296 Mon Sep 17 00:00:00 2001 From: LevelX2 Date: Thu, 31 May 2018 12:52:05 +0200 Subject: [PATCH] * Used some default code to get opponents for Game classes. --- .../src/mage/game/FreeForAll.java | 31 +++---------------- .../src/mage/game/MomirDuel.java | 18 ----------- .../src/mage/game/MomirGame.java | 25 ++------------- .../src/mage/game/TwoPlayerDuel.java | 22 +------------ Mage/src/main/java/mage/game/Game.java | 24 +++++++++++--- .../mage/game/GameCanadianHighlanderImpl.java | 18 +---------- .../java/mage/game/GameCommanderImpl.java | 18 ----------- .../java/mage/game/GameTinyLeadersImpl.java | 16 ---------- 8 files changed, 30 insertions(+), 142 deletions(-) diff --git a/Mage.Server.Plugins/Mage.Game.FreeForAll/src/mage/game/FreeForAll.java b/Mage.Server.Plugins/Mage.Game.FreeForAll/src/mage/game/FreeForAll.java index 9ec9ec45a50..d17b32d5443 100644 --- a/Mage.Server.Plugins/Mage.Game.FreeForAll/src/mage/game/FreeForAll.java +++ b/Mage.Server.Plugins/Mage.Game.FreeForAll/src/mage/game/FreeForAll.java @@ -1,16 +1,16 @@ /* * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. - * + * * Redistribution and use in source and binary forms, with or without modification, are * permitted provided that the following conditions are met: - * + * * 1. Redistributions of source code must retain the above copyright notice, this list of * conditions and the following disclaimer. - * + * * 2. Redistributions in binary form must reproduce the above copyright notice, this list * of conditions and the following disclaimer in the documentation and/or other materials * provided with the distribution. - * + * * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR @@ -20,21 +20,16 @@ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * + * * The views and conclusions contained in the software and documentation are those of the * authors and should not be interpreted as representing official policies, either expressed * or implied, of BetaSteward_at_googlemail.com. */ - package mage.game; -import java.util.HashSet; -import java.util.Set; -import java.util.UUID; import mage.constants.MultiplayerAttackOption; import mage.constants.RangeOfInfluence; import mage.game.match.MatchType; -import mage.players.Player; /** * @@ -67,22 +62,6 @@ public class FreeForAll extends GameImpl { this.numPlayers = numPlayers; } - @Override - public Set getOpponents(UUID playerId) { - Set opponents = new HashSet<>(); - for (UUID opponentId: this.getPlayer(playerId).getInRange()) { - if (!opponentId.equals(playerId)) { - opponents.add(opponentId); - } - } - return opponents; - } - - @Override - public boolean isOpponent(Player player, UUID playerToCheck) { - return !player.getId().equals(playerToCheck) && player.getInRange().contains(playerToCheck); - } - @Override public FreeForAll copy() { return new FreeForAll(this); diff --git a/Mage.Server.Plugins/Mage.Game.MomirDuel/src/mage/game/MomirDuel.java b/Mage.Server.Plugins/Mage.Game.MomirDuel/src/mage/game/MomirDuel.java index 37ed63aa184..a611690d047 100644 --- a/Mage.Server.Plugins/Mage.Game.MomirDuel/src/mage/game/MomirDuel.java +++ b/Mage.Server.Plugins/Mage.Game.MomirDuel/src/mage/game/MomirDuel.java @@ -27,8 +27,6 @@ */ package mage.game; -import java.util.HashSet; -import java.util.Set; import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -83,22 +81,6 @@ public class MomirDuel extends GameImpl { state.getTurnMods().add(new TurnMod(startingPlayerId, PhaseStep.DRAW)); } - @Override - public Set getOpponents(UUID playerId) { - Set opponents = new HashSet<>(); - for (UUID opponentId : this.getPlayer(playerId).getInRange()) { - if (!opponentId.equals(playerId)) { - opponents.add(opponentId); - } - } - return opponents; - } - - @Override - public boolean isOpponent(Player player, UUID playerToCheck) { - return !player.getId().equals(playerToCheck); - } - @Override public MomirDuel copy() { return new MomirDuel(this); diff --git a/Mage.Server.Plugins/Mage.Game.MomirGame/src/mage/game/MomirGame.java b/Mage.Server.Plugins/Mage.Game.MomirGame/src/mage/game/MomirGame.java index 42dd12b3271..7f7043e6745 100644 --- a/Mage.Server.Plugins/Mage.Game.MomirGame/src/mage/game/MomirGame.java +++ b/Mage.Server.Plugins/Mage.Game.MomirGame/src/mage/game/MomirGame.java @@ -27,8 +27,6 @@ */ package mage.game; -import java.util.HashSet; -import java.util.Set; import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -44,13 +42,12 @@ import mage.game.match.MatchType; import mage.game.turn.TurnMod; import mage.players.Player; - /** * * @author nigelzor */ public class MomirGame extends GameImpl { - + private int numPlayers; public MomirGame(MultiplayerAttackOption attackOption, RangeOfInfluence range, int freeMulligans, int startLife) { @@ -59,8 +56,8 @@ public class MomirGame extends GameImpl { public MomirGame(final MomirGame game) { super(game); - } - + } + @Override public MatchType getGameType() { return new MomirFreeForAllType(); @@ -86,22 +83,6 @@ public class MomirGame extends GameImpl { state.getTurnMods().add(new TurnMod(startingPlayerId, PhaseStep.DRAW)); } - @Override - public Set getOpponents(UUID playerId) { - Set opponents = new HashSet<>(); - for (UUID opponentId : this.getPlayer(playerId).getInRange()) { - if (!opponentId.equals(playerId)) { - opponents.add(opponentId); - } - } - return opponents; - } - - @Override - public boolean isOpponent(Player player, UUID playerToCheck) { - return !player.getId().equals(playerToCheck) && player.getInRange().contains(playerToCheck); - } - @Override public MomirGame copy() { return new MomirGame(this); diff --git a/Mage.Server.Plugins/Mage.Game.TwoPlayerDuel/src/mage/game/TwoPlayerDuel.java b/Mage.Server.Plugins/Mage.Game.TwoPlayerDuel/src/mage/game/TwoPlayerDuel.java index 23a4ac12e88..7803b9bff12 100644 --- a/Mage.Server.Plugins/Mage.Game.TwoPlayerDuel/src/mage/game/TwoPlayerDuel.java +++ b/Mage.Server.Plugins/Mage.Game.TwoPlayerDuel/src/mage/game/TwoPlayerDuel.java @@ -24,19 +24,15 @@ * The views and conclusions contained in the software and documentation are those of the * authors and should not be interpreted as representing official policies, either expressed * or implied, of BetaSteward_at_googlemail.com. -*/ - + */ package mage.game; -import java.util.HashSet; -import java.util.Set; import java.util.UUID; import mage.constants.MultiplayerAttackOption; import mage.constants.PhaseStep; import mage.constants.RangeOfInfluence; import mage.game.match.MatchType; import mage.game.turn.TurnMod; -import mage.players.Player; public class TwoPlayerDuel extends GameImpl { @@ -64,22 +60,6 @@ public class TwoPlayerDuel extends GameImpl { state.getTurnMods().add(new TurnMod(startingPlayerId, PhaseStep.DRAW)); } - @Override - public Set getOpponents(UUID playerId) { - Set opponents = new HashSet<>(); - for (UUID opponentId: this.getPlayer(playerId).getInRange()) { - if (!opponentId.equals(playerId)) { - opponents.add(opponentId); - } - } - return opponents; - } - - @Override - public boolean isOpponent(Player player, UUID playerToCheck) { - return !player.getId().equals(playerToCheck); - } - @Override public TwoPlayerDuel copy() { return new TwoPlayerDuel(this); diff --git a/Mage/src/main/java/mage/game/Game.java b/Mage/src/main/java/mage/game/Game.java index ac2a2e2af52..8a4cd7e477b 100644 --- a/Mage/src/main/java/mage/game/Game.java +++ b/Mage/src/main/java/mage/game/Game.java @@ -139,21 +139,37 @@ public interface Game extends MageItem, Serializable { PlayerList getPlayerList(); /** - * Returns a Set of opponents in range for the given playerId + * Returns a Set of opponents in range for the given playerId This return + * also a player, that has dies this turn. * * @param playerId * @return */ - Set getOpponents(UUID playerId); + default public Set getOpponents(UUID playerId) { + Set opponents = new HashSet<>(); + Player player = getPlayer(playerId); + for (UUID opponentId : player.getInRange()) { + if (!opponentId.equals(playerId)) { + opponents.add(opponentId); + } + } + return opponents; + } /** - * Checks if the given playerToCheckId is an opponent of player + * Checks if the given playerToCheckId is an opponent of player As long as + * no team formats are implemented, this method returns always true for each + * playerId not equal to the player it is checked for. Also if this player + * is out of range. This method can't handle that only players in range are + * processed because it can only return TRUE or FALSE. * * @param player * @param playerToCheckId * @return */ - boolean isOpponent(Player player, UUID playerToCheckId); + default public boolean isOpponent(Player player, UUID playerToCheckId) { + return !player.getId().equals(playerToCheckId); + } Turn getTurn(); diff --git a/Mage/src/main/java/mage/game/GameCanadianHighlanderImpl.java b/Mage/src/main/java/mage/game/GameCanadianHighlanderImpl.java index 40aecac9efb..6736b49758f 100644 --- a/Mage/src/main/java/mage/game/GameCanadianHighlanderImpl.java +++ b/Mage/src/main/java/mage/game/GameCanadianHighlanderImpl.java @@ -27,14 +27,13 @@ */ package mage.game; +import java.util.*; import mage.constants.MultiplayerAttackOption; import mage.constants.PhaseStep; import mage.constants.RangeOfInfluence; import mage.game.turn.TurnMod; import mage.players.Player; -import java.util.*; - public abstract class GameCanadianHighlanderImpl extends GameImpl { protected boolean startingPlayerSkipsDraw = true; @@ -160,19 +159,4 @@ public abstract class GameCanadianHighlanderImpl extends GameImpl { super.endMulligan(playerId); } - @Override - public Set getOpponents(UUID playerId) { - Set opponents = new HashSet<>(); - for (UUID opponentId : getState().getPlayersInRange(playerId, this)) { - if (!opponentId.equals(playerId)) { - opponents.add(opponentId); - } - } - return opponents; - } - - @Override - public boolean isOpponent(Player player, UUID playerToCheck) { - return !player.getId().equals(playerToCheck); - } } diff --git a/Mage/src/main/java/mage/game/GameCommanderImpl.java b/Mage/src/main/java/mage/game/GameCommanderImpl.java index b952ba3ca3f..cd370630ab5 100644 --- a/Mage/src/main/java/mage/game/GameCommanderImpl.java +++ b/Mage/src/main/java/mage/game/GameCommanderImpl.java @@ -27,9 +27,7 @@ */ package mage.game; -import java.util.HashSet; import java.util.Map; -import java.util.Set; import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; @@ -200,22 +198,6 @@ public abstract class GameCommanderImpl extends GameImpl { return super.checkStateBasedActions(); } - @Override - public Set getOpponents(UUID playerId) { - Set opponents = new HashSet<>(); - for (UUID opponentId : getState().getPlayersInRange(playerId, this)) { - if (!opponentId.equals(playerId)) { - opponents.add(opponentId); - } - } - return opponents; - } - - @Override - public boolean isOpponent(Player player, UUID playerToCheck) { - return !player.getId().equals(playerToCheck); - } - public void setAlsoHand(boolean alsoHand) { this.alsoHand = alsoHand; } diff --git a/Mage/src/main/java/mage/game/GameTinyLeadersImpl.java b/Mage/src/main/java/mage/game/GameTinyLeadersImpl.java index 95cc851ec8f..29cdb00d027 100644 --- a/Mage/src/main/java/mage/game/GameTinyLeadersImpl.java +++ b/Mage/src/main/java/mage/game/GameTinyLeadersImpl.java @@ -132,22 +132,6 @@ public abstract class GameTinyLeadersImpl extends GameImpl { return commander; } - @Override - public Set getOpponents(UUID playerId) { - Set opponents = new HashSet<>(); - for (UUID opponentId : getState().getPlayersInRange(playerId, this)) { - if (!opponentId.equals(playerId)) { - opponents.add(opponentId); - } - } - return opponents; - } - - @Override - public boolean isOpponent(Player player, UUID playerToCheck) { - return !player.getId().equals(playerToCheck); - } - public void setAlsoHand(boolean alsoHand) { this.alsoHand = alsoHand; }