Code cleanup

This commit is contained in:
Oleg Agafonov 2020-01-08 05:18:21 +04:00
parent ca4a4528fb
commit 85e65c8f44
10 changed files with 42 additions and 78 deletions

View file

@ -1,10 +1,5 @@
package mage.server;
import java.util.*;
import java.util.Map.Entry;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.TimeUnit;
import mage.cards.decks.Deck;
import mage.constants.ManaType;
import mage.constants.TableState;
@ -29,6 +24,11 @@ import mage.server.util.SystemUtil;
import mage.view.TableClientMessage;
import org.apache.log4j.Logger;
import java.util.*;
import java.util.Map.Entry;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.TimeUnit;
/**
* @author BetaSteward_at_googlemail.com
*/
@ -180,7 +180,7 @@ public class User {
public void lostConnection() {
// Because watched games don't get restored after reconnection call stop watching
for (Iterator<UUID> iterator = watchedGames.iterator(); iterator.hasNext();) {
for (Iterator<UUID> iterator = watchedGames.iterator(); iterator.hasNext(); ) {
UUID gameId = iterator.next();
GameManager.instance.stopWatching(gameId, userId);
iterator.remove();
@ -215,10 +215,10 @@ public class User {
int minutes = (int) SystemUtil.getDateDiff(connectionTime, new Date(), TimeUnit.SECONDS) / 60;
int hours = 0;
if (minutes > 59) {
hours = (int) minutes / 60;
hours = minutes / 60;
minutes = minutes - (hours * 60);
}
return Integer.toString(hours) + ":" + (minutes > 9 ? Integer.toString(minutes) : '0' + Integer.toString(minutes));
return hours + ":" + (minutes > 9 ? Integer.toString(minutes) : '0' + Integer.toString(minutes));
}
public void fireCallback(final ClientCallback call) {
@ -329,10 +329,11 @@ public class User {
private void reconnect() {
logger.trace(userName + " started reconnect");
//lastActivity = new Date(); // ??? comment to test can't reconnect to game on disconnect
for (Entry<UUID, Table> entry : tables.entrySet()) {
ccJoinedTable(entry.getValue().getRoomId(), entry.getValue().getId(), entry.getValue().isTournament());
}
for (Iterator<Entry<UUID, UUID>> iterator = userTournaments.entrySet().iterator(); iterator.hasNext();) {
for (Iterator<Entry<UUID, UUID>> iterator = userTournaments.entrySet().iterator(); iterator.hasNext(); ) {
Entry<UUID, UUID> next = iterator.next();
Optional<TournamentController> tournamentController = TournamentManager.instance.getTournamentController(next.getValue());
if (tournamentController.isPresent()) {
@ -442,7 +443,7 @@ public class User {
}
gameSessions.clear();
logger.trace("REMOVE " + userName + " watched Games " + watchedGames.size());
for (Iterator<UUID> it = watchedGames.iterator(); it.hasNext();) { // Iterator to prevent ConcurrentModificationException
for (Iterator<UUID> it = watchedGames.iterator(); it.hasNext(); ) { // Iterator to prevent ConcurrentModificationException
UUID gameId = it.next();
GameManager.instance.stopWatching(gameId, userId);
}
@ -658,13 +659,13 @@ public class User {
builder.append(proto.getMatches());
List<String> quit = new ArrayList<>();
if (proto.getMatchesIdleTimeout() > 0) {
quit.add("I:" + Integer.toString(proto.getMatchesIdleTimeout()));
quit.add("I:" + proto.getMatchesIdleTimeout());
}
if (proto.getMatchesTimerTimeout() > 0) {
quit.add("T:" + Integer.toString(proto.getMatchesTimerTimeout()));
quit.add("T:" + proto.getMatchesTimerTimeout());
}
if (proto.getMatchesQuit() > 0) {
quit.add("Q:" + Integer.toString(proto.getMatchesQuit()));
quit.add("Q:" + proto.getMatchesQuit());
}
if (!quit.isEmpty()) {
builder.append(" (");
@ -690,13 +691,13 @@ public class User {
builder.append(proto.getTourneys());
List<String> quit = new ArrayList<>();
if (proto.getTourneysQuitDuringDrafting() > 0) {
quit.add("D:" + Integer.toString(proto.getTourneysQuitDuringDrafting()));
quit.add("D:" + proto.getTourneysQuitDuringDrafting());
}
if (proto.getTourneysQuitDuringConstruction() > 0) {
quit.add("C:" + Integer.toString(proto.getTourneysQuitDuringConstruction()));
quit.add("C:" + proto.getTourneysQuitDuringConstruction());
}
if (proto.getTourneysQuitDuringRound() > 0) {
quit.add("R:" + Integer.toString(proto.getTourneysQuitDuringRound()));
quit.add("R:" + proto.getTourneysQuitDuringRound());
}
if (!quit.isEmpty()) {
builder.append(" (");

View file

@ -1,23 +1,16 @@
package mage.cards.a;
import java.util.UUID;
import mage.abilities.Ability;
import mage.abilities.dynamicvalue.common.StaticValue;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.LookLibraryAndPickControllerEffect;
import mage.cards.*;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Outcome;
import mage.constants.Zone;
import mage.filter.FilterCard;
import mage.filter.StaticFilters;
import mage.game.Game;
import mage.players.Player;
import mage.target.TargetCard;
import java.util.UUID;
/**
*
* @author Quercitron
*/
public final class AncestralMemories extends CardImpl {
@ -39,40 +32,3 @@ public final class AncestralMemories extends CardImpl {
return new AncestralMemories(this);
}
}
class AncestralMemoriesEffect extends OneShotEffect {
public AncestralMemoriesEffect() {
super(Outcome.DrawCard);
this.staticText = "Look at the top seven cards of your library. Put two of them into your hand and the rest into your graveyard";
}
public AncestralMemoriesEffect(final AncestralMemoriesEffect effect) {
super(effect);
}
@Override
public AncestralMemoriesEffect copy() {
return new AncestralMemoriesEffect(this);
}
@Override
public boolean apply(Game game, Ability source) {
Player controller = game.getPlayer(source.getControllerId());
if (controller != null) {
Cards cards = new CardsImpl(controller.getLibrary().getTopCards(game, 7));
if (!cards.isEmpty()) {
controller.lookAtCards(source, null, cards, game);
TargetCard target = new TargetCard(Math.min(2, cards.size()), Zone.LIBRARY, new FilterCard("two cards to put in your hand"));
if (controller.choose(Outcome.DrawCard, cards, target, game)) {
Cards toHand = new CardsImpl(target.getTargets());
controller.moveCards(cards, Zone.HAND, source, game);
cards.removeAll(toHand);
}
controller.moveCards(cards, Zone.GRAVEYARD, source, game);
}
return true;
}
return false;
}
}

View file

@ -1,7 +1,5 @@
package mage.cards.t;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.common.EntersBattlefieldTappedAbility;
import mage.abilities.common.SimpleActivatedAbility;
@ -12,22 +10,28 @@ import mage.abilities.mana.GreenManaAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.SubType;
import mage.constants.Duration;
import mage.constants.SubType;
import mage.constants.Zone;
import mage.game.permanent.token.TokenImpl;
import mage.game.permanent.token.Token;
import java.util.UUID;
/**
*
* @author Loki
*/
public final class TreetopVillage extends CardImpl {
public TreetopVillage(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.LAND},"");
super(ownerId, setInfo, new CardType[]{CardType.LAND}, "");
// Treetop Village enters the battlefield tapped.
this.addAbility(new EntersBattlefieldTappedAbility());
// {T}: Add {G}.
this.addAbility(new GreenManaAbility());
// {1}{G}: Treetop Village becomes a 3/3 green Ape creature with trample until end of turn. Its still a land. (It can deal excess combat damage to the player or planeswalker its attacking.)
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(new ApeToken(), "land", Duration.EndOfTurn), new ManaCostsImpl("{1}{G}")));
}
@ -51,6 +55,7 @@ class ApeToken extends TokenImpl {
toughness = new MageInt(3);
this.addAbility(TrampleAbility.getInstance());
}
public ApeToken(final ApeToken token) {
super(token);
}

View file

@ -250,7 +250,7 @@ public class VerifyCardDataTest {
cardsList.forEach((cardName, amount) -> {
if (amount != 2) {
String error = "Error: found non duplicated rare card - "
String error = "Error: found non duplicated rare card -"
+ " set (" + set.getCode() + " - " + set.getName() + ")"
+ " card (" + cardName + ")";
doubleErrors.add(error);

View file

@ -398,7 +398,7 @@ public abstract class ContinuousEffectImpl extends EffectImpl implements Continu
}
}
public boolean isCanLookAtNextTopLibraryCard(Game game) {
public boolean canLookAtNextTopLibraryCard(Game game) {
// If the top card of your library changes while youre casting a spell, playing a land, or activating an ability,
// you cant look at the new top card until you finish doing so. This means that if you cast the top card of
// your library, you cant look at the next one until youre done paying for that spell. (2019-05-03)

View file

@ -20,7 +20,6 @@ public class ChooseACardNameEffect extends OneShotEffect {
public static final String INFO_KEY = "NAMED_CARD";
public enum TypeOfName {
ALL,
NOT_BASIC_LAND_NAME,
NONBASIC_LAND_NAME,

View file

@ -39,7 +39,7 @@ public class LookAtTopCardOfLibraryAnyTimeEffect extends ContinuousEffectImpl {
if (obj == null) {
return false;
}
if (!isCanLookAtNextTopLibraryCard(game)) {
if (!canLookAtNextTopLibraryCard(game)) {
return false;
}
controller.lookAtCards("Top card of " + obj.getIdName() + " controller's library", topCard, game);

View file

@ -44,11 +44,11 @@ public class PlayWithTheTopCardRevealedEffect extends ContinuousEffectImpl {
if (allPlayers) {
for (UUID playerId : game.getState().getPlayersInRange(controller.getId(), game)) {
Player player = game.getPlayer(playerId);
if (player != null && isCanLookAtNextTopLibraryCard(game)) {
if (player != null && canLookAtNextTopLibraryCard(game)) {
player.setTopCardRevealed(true);
}
}
} else if (isCanLookAtNextTopLibraryCard(game)) {
} else if (canLookAtNextTopLibraryCard(game)) {
controller.setTopCardRevealed(true);
}
return true;

View file

@ -456,6 +456,8 @@ public interface Player extends MageItem, Copyable<Player> {
/**
* Adds the cards to the reveal window and adds the source object's id name
* to the title bar of the revealed cards window
* <p>
* Warning, if you use it from continuous effect, then check with extra call isCanLookAtNextTopLibraryCard
*
* @param source
* @param name
@ -472,6 +474,8 @@ public interface Player extends MageItem, Copyable<Player> {
/**
* Adds the cards to the look window and adds the source object's id name to
* the title bar of the lookedAt window
* <p>
* Warning, if you use it from continuous effect, then check with extra call isCanLookAtNextTopLibraryCard
*
* @param source
* @param name

View file

@ -14,7 +14,6 @@ import mage.watchers.Watcher;
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
import java.util.UUID;
/**