From 55cbfc53dfca5f0cb786e805aed55bc05fb11601 Mon Sep 17 00:00:00 2001 From: BetaSteward Date: Mon, 17 May 2010 03:19:26 +0000 Subject: [PATCH] changes to support multiplayer --- ...{TwoPlayerGame.java => TwoPlayerDuel.java} | 26 ++++++----- .../src/mage/game/TwoPlayerDuelType.java | 46 +++++++++++++++++++ 2 files changed, 61 insertions(+), 11 deletions(-) rename Mage.Game.TwoPlayerDuel/src/mage/game/{TwoPlayerGame.java => TwoPlayerDuel.java} (75%) create mode 100644 Mage.Game.TwoPlayerDuel/src/mage/game/TwoPlayerDuelType.java diff --git a/Mage.Game.TwoPlayerDuel/src/mage/game/TwoPlayerGame.java b/Mage.Game.TwoPlayerDuel/src/mage/game/TwoPlayerDuel.java similarity index 75% rename from Mage.Game.TwoPlayerDuel/src/mage/game/TwoPlayerGame.java rename to Mage.Game.TwoPlayerDuel/src/mage/game/TwoPlayerDuel.java index 23fb11e62b5..45dca75d551 100644 --- a/Mage.Game.TwoPlayerDuel/src/mage/game/TwoPlayerGame.java +++ b/Mage.Game.TwoPlayerDuel/src/mage/game/TwoPlayerDuel.java @@ -29,19 +29,22 @@ package mage.game; import java.util.ArrayList; +import java.util.HashSet; import java.util.List; +import java.util.Set; import java.util.UUID; -import mage.players.Player; +import mage.Constants.MultiplayerAttackOption; +import mage.Constants.RangeOfInfluence; -public class TwoPlayerGame extends GameImpl { +public class TwoPlayerDuel extends GameImpl { - public TwoPlayerGame() { - super(); + public TwoPlayerDuel(MultiplayerAttackOption attackOption, RangeOfInfluence range) { + super(MultiplayerAttackOption.LEFT, RangeOfInfluence.ALL); } @Override - public String getGameType() { - return "Two Player Duel"; + public GameType getGameType() { + return new TwoPlayerDuelType(); } @Override @@ -70,12 +73,13 @@ public class TwoPlayerGame extends GameImpl { } @Override - public List getOpponents(UUID playerId) { - List opponents = new ArrayList(); - for (Player player: this.getPlayers().values()) { - if (!player.getId().equals(playerId)) - opponents.add(player.getId()); + 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; } + } diff --git a/Mage.Game.TwoPlayerDuel/src/mage/game/TwoPlayerDuelType.java b/Mage.Game.TwoPlayerDuel/src/mage/game/TwoPlayerDuelType.java new file mode 100644 index 00000000000..c25aaa8dc2c --- /dev/null +++ b/Mage.Game.TwoPlayerDuel/src/mage/game/TwoPlayerDuelType.java @@ -0,0 +1,46 @@ +/* + * 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 + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * 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; + +/** + * + * @author BetaSteward_at_googlemail.com + */ +public class TwoPlayerDuelType extends GameType { + + public TwoPlayerDuelType() { + this.name = "Two Player Duel"; + this.maxPlayers = 2; + this.minPlayers = 2; + this.numTeams = 0; + this.useAttackOption = false; + this.useRange = false; + } + +}