mirror of
https://github.com/magefree/mage.git
synced 2025-12-20 10:40:06 -08:00
Little fixes and code refactor
This commit is contained in:
parent
c67e937dfb
commit
ab8a4eb26a
8 changed files with 71 additions and 98 deletions
|
|
@ -191,12 +191,8 @@ public final class GuiDisplayUtil {
|
||||||
// counters
|
// counters
|
||||||
if (card.getMageObjectType().canHaveCounters()) {
|
if (card.getMageObjectType().canHaveCounters()) {
|
||||||
java.util.List<CounterView> counters = new ArrayList<>();
|
java.util.List<CounterView> counters = new ArrayList<>();
|
||||||
if (card instanceof PermanentView) {
|
|
||||||
if (card.getCounters() != null) {
|
if (card.getCounters() != null) {
|
||||||
counters = new ArrayList<>(card.getCounters());
|
counters.addAll(card.getCounters());
|
||||||
}
|
|
||||||
} else if (card.getCounters() != null) {
|
|
||||||
counters = new ArrayList<>(card.getCounters());
|
|
||||||
}
|
}
|
||||||
if (!counters.isEmpty()) {
|
if (!counters.isEmpty()) {
|
||||||
StringBuilder sb = new StringBuilder();
|
StringBuilder sb = new StringBuilder();
|
||||||
|
|
@ -406,9 +402,7 @@ public final class GuiDisplayUtil {
|
||||||
}
|
}
|
||||||
|
|
||||||
private static String replaceNamesInRule(String rule, String cardName) {
|
private static String replaceNamesInRule(String rule, String cardName) {
|
||||||
String res = rule.replaceAll("\\{this\\}", cardName.isEmpty() ? "this" : cardName);
|
return rule.replaceAll("\\{this\\}", cardName.isEmpty() ? "this" : cardName);
|
||||||
res = res.replaceAll("\\{source\\}", cardName.isEmpty() ? "this" : cardName);
|
|
||||||
return res;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static String getResourcePath(String image) {
|
private static String getResourcePath(String image) {
|
||||||
|
|
|
||||||
|
|
@ -201,7 +201,7 @@ public class MageServerImpl implements MageServer {
|
||||||
// check if user can create another table
|
// check if user can create another table
|
||||||
int notStartedTables = user.getNumberOfNotStartedTables();
|
int notStartedTables = user.getNumberOfNotStartedTables();
|
||||||
if (notStartedTables > 1) {
|
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");
|
throw new MageException("No message");
|
||||||
}
|
}
|
||||||
// check AI players max
|
// check AI players max
|
||||||
|
|
@ -1102,7 +1102,7 @@ public class MageServerImpl implements MageServer {
|
||||||
execute("removeTable", sessionId, () -> {
|
execute("removeTable", sessionId, () -> {
|
||||||
SessionManager.instance.getSession(sessionId).ifPresent(session -> {
|
SessionManager.instance.getSession(sessionId).ifPresent(session -> {
|
||||||
UUID userId = session.getUserId();
|
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
|
// check if user can create another table
|
||||||
int notStartedTables = user.getNumberOfNotStartedTables();
|
int notStartedTables = user.getNumberOfNotStartedTables();
|
||||||
if (notStartedTables > 1) {
|
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");
|
throw new MageException("No message");
|
||||||
}
|
}
|
||||||
// check if the user itself satisfies the quitRatio requirement.
|
// check if the user itself satisfies the quitRatio requirement.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
package mage.cards.t;
|
package mage.cards.t;
|
||||||
|
|
||||||
import java.util.UUID;
|
|
||||||
import mage.ApprovingObject;
|
import mage.ApprovingObject;
|
||||||
import mage.MageInt;
|
import mage.MageInt;
|
||||||
import mage.abilities.Ability;
|
import mage.abilities.Ability;
|
||||||
|
|
@ -12,11 +11,7 @@ import mage.abilities.keyword.FlashAbility;
|
||||||
import mage.cards.Card;
|
import mage.cards.Card;
|
||||||
import mage.cards.CardImpl;
|
import mage.cards.CardImpl;
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
import mage.constants.CardType;
|
import mage.constants.*;
|
||||||
import mage.constants.Duration;
|
|
||||||
import mage.constants.Outcome;
|
|
||||||
import mage.constants.SubType;
|
|
||||||
import mage.constants.Zone;
|
|
||||||
import mage.filter.FilterCard;
|
import mage.filter.FilterCard;
|
||||||
import mage.game.Game;
|
import mage.game.Game;
|
||||||
import mage.game.events.GameEvent;
|
import mage.game.events.GameEvent;
|
||||||
|
|
@ -24,10 +19,10 @@ import mage.game.events.ZoneChangeEvent;
|
||||||
import mage.players.Player;
|
import mage.players.Player;
|
||||||
import mage.target.common.TargetCardInYourGraveyard;
|
import mage.target.common.TargetCardInYourGraveyard;
|
||||||
import mage.target.targetpointer.FixedTarget;
|
import mage.target.targetpointer.FixedTarget;
|
||||||
import org.apache.log4j.Logger;
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
|
||||||
* @author fireshoes
|
* @author fireshoes
|
||||||
*/
|
*/
|
||||||
public final class TorrentialGearhulk extends CardImpl {
|
public final class TorrentialGearhulk extends CardImpl {
|
||||||
|
|
@ -85,12 +80,11 @@ class TorrentialGearhulkEffect extends OneShotEffect {
|
||||||
@Override
|
@Override
|
||||||
public boolean apply(Game game, Ability source) {
|
public boolean apply(Game game, Ability source) {
|
||||||
Player controller = game.getPlayer(source.getControllerId());
|
Player controller = game.getPlayer(source.getControllerId());
|
||||||
if (controller != null) {
|
|
||||||
Card card = game.getCard(this.getTargetPointer().getFirst(game, source));
|
Card card = game.getCard(this.getTargetPointer().getFirst(game, source));
|
||||||
if (card != null) {
|
if (controller != null && card != null) {
|
||||||
if (controller.chooseUse(outcome, "Cast " + card.getLogName() + '?', source, game)) {
|
if (controller.chooseUse(outcome, "Cast " + card.getLogName() + '?', source, game)) {
|
||||||
game.getState().setValue("PlayFromNotOwnHandZone" + card.getId(), Boolean.TRUE);
|
game.getState().setValue("PlayFromNotOwnHandZone" + card.getId(), Boolean.TRUE);
|
||||||
Boolean cardWasCast = controller.cast(controller.chooseAbilityForCast(card, game, true),
|
boolean cardWasCast = controller.cast(controller.chooseAbilityForCast(card, game, true),
|
||||||
game, true, new ApprovingObject(source, game));
|
game, true, new ApprovingObject(source, game));
|
||||||
game.getState().setValue("PlayFromNotOwnHandZone" + card.getId(), null);
|
game.getState().setValue("PlayFromNotOwnHandZone" + card.getId(), null);
|
||||||
if (cardWasCast) {
|
if (cardWasCast) {
|
||||||
|
|
@ -99,10 +93,6 @@ class TorrentialGearhulkEffect extends OneShotEffect {
|
||||||
game.addEffect(effect, source);
|
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;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,14 @@
|
||||||
package mage.abilities.effects;
|
package mage.abilities.effects;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Arrays;
|
|
||||||
import mage.abilities.Ability;
|
import mage.abilities.Ability;
|
||||||
import mage.abilities.Mode;
|
import mage.abilities.Mode;
|
||||||
import mage.constants.Outcome;
|
import mage.constants.Outcome;
|
||||||
import mage.target.targetpointer.TargetPointer;
|
import mage.target.targetpointer.TargetPointer;
|
||||||
import mage.util.CardUtil;
|
import mage.util.CardUtil;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author BetaSteward_at_googlemail.com
|
* @author BetaSteward_at_googlemail.com
|
||||||
*/
|
*/
|
||||||
|
|
@ -56,7 +57,7 @@ public class Effects extends ArrayList<Effect> {
|
||||||
nextRule = concatPrefix + " " + nextRule;
|
nextRule = concatPrefix + " " + nextRule;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (nextRule != null) {
|
|
||||||
//check if nextRule is a new sentence or not.
|
//check if nextRule is a new sentence or not.
|
||||||
if (nextRule.startsWith("and ") || nextRule.startsWith("with ") || nextRule.startsWith("then ")) {
|
if (nextRule.startsWith("and ") || nextRule.startsWith("with ") || nextRule.startsWith("then ")) {
|
||||||
endString = " ";
|
endString = " ";
|
||||||
|
|
@ -90,7 +91,6 @@ public class Effects extends ArrayList<Effect> {
|
||||||
}
|
}
|
||||||
|
|
||||||
sbText.append(currentRule);
|
sbText.append(currentRule);
|
||||||
}
|
|
||||||
|
|
||||||
lastRule = nextRule;
|
lastRule = nextRule;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,3 @@
|
||||||
|
|
||||||
|
|
||||||
package mage.abilities.effects.common.continuous;
|
package mage.abilities.effects.common.continuous;
|
||||||
|
|
||||||
import mage.MageObjectReference;
|
import mage.MageObjectReference;
|
||||||
|
|
@ -16,13 +14,12 @@ import mage.game.permanent.Permanent;
|
||||||
import org.apache.log4j.Logger;
|
import org.apache.log4j.Logger;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
|
||||||
* @author BetaSteward_at_googlemail.com
|
* @author BetaSteward_at_googlemail.com
|
||||||
*/
|
*/
|
||||||
public class BoostSourceEffect extends ContinuousEffectImpl implements SourceEffect {
|
public class BoostSourceEffect extends ContinuousEffectImpl implements SourceEffect {
|
||||||
private DynamicValue power;
|
private DynamicValue power;
|
||||||
private DynamicValue toughness;
|
private DynamicValue toughness;
|
||||||
private boolean lockedIn;
|
private final boolean lockedIn;
|
||||||
|
|
||||||
public BoostSourceEffect(int power, int toughness, Duration duration) {
|
public BoostSourceEffect(int power, int toughness, Duration duration) {
|
||||||
this(StaticValue.get(power), StaticValue.get(toughness), duration, false);
|
this(StaticValue.get(power), StaticValue.get(toughness), duration, false);
|
||||||
|
|
@ -100,13 +97,8 @@ public class BoostSourceEffect extends ContinuousEffectImpl implements SourceEff
|
||||||
sb.append(p).append('/');
|
sb.append(p).append('/');
|
||||||
String t = toughness.toString();
|
String t = toughness.toString();
|
||||||
if (!t.startsWith("-")) {
|
if (!t.startsWith("-")) {
|
||||||
if(t.startsWith("-")) {
|
|
||||||
sb.append('-');
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
sb.append('+');
|
sb.append('+');
|
||||||
}
|
}
|
||||||
}
|
|
||||||
sb.append(t);
|
sb.append(t);
|
||||||
if (duration != Duration.WhileOnBattlefield) {
|
if (duration != Duration.WhileOnBattlefield) {
|
||||||
sb.append(' ').append(duration.toString());
|
sb.append(' ').append(duration.toString());
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,3 @@
|
||||||
|
|
||||||
package mage.abilities.effects.common.continuous;
|
package mage.abilities.effects.common.continuous;
|
||||||
|
|
||||||
import mage.abilities.Ability;
|
import mage.abilities.Ability;
|
||||||
|
|
@ -25,7 +24,7 @@ public class BoostTargetEffect extends ContinuousEffectImpl {
|
||||||
|
|
||||||
private DynamicValue power;
|
private DynamicValue power;
|
||||||
private DynamicValue toughness;
|
private DynamicValue toughness;
|
||||||
private boolean lockedIn;
|
private final boolean lockedIn;
|
||||||
|
|
||||||
public BoostTargetEffect(int power, int toughness) {
|
public BoostTargetEffect(int power, int toughness) {
|
||||||
this(power, toughness, Duration.EndOfTurn);
|
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 ");
|
sb.append(CardUtil.numberToText(target.getMaxNumberOfTargets())).append(" target ").append(target.getTargetName()).append(" get ");
|
||||||
} else {
|
} else {
|
||||||
if (!target.getTargetName().toUpperCase(Locale.ENGLISH).startsWith("ANOTHER")) {
|
if (!target.getTargetName().toLowerCase(Locale.ENGLISH).startsWith("another")) {
|
||||||
sb.append("target ");
|
sb.append("target ");
|
||||||
}
|
}
|
||||||
sb.append(target.getTargetName()).append(" gets ");
|
sb.append(target.getTargetName()).append(" gets ");
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@ public class GainAbilityTargetEffect extends ContinuousEffectImpl {
|
||||||
|
|
||||||
protected Ability ability;
|
protected Ability ability;
|
||||||
// shall a card gain the ability (otherwise permanent)
|
// shall a card gain the ability (otherwise permanent)
|
||||||
private boolean onCard;
|
private final boolean onCard;
|
||||||
|
|
||||||
// Duration until next phase step of player
|
// Duration until next phase step of player
|
||||||
private PhaseStep durationPhaseStep = null;
|
private PhaseStep durationPhaseStep = null;
|
||||||
|
|
@ -140,7 +140,7 @@ public class GainAbilityTargetEffect extends ContinuousEffectImpl {
|
||||||
}
|
}
|
||||||
sb.append(target.getMaxNumberOfTargets()).append(" target ").append(target.getTargetName()).append(" gain ");
|
sb.append(target.getMaxNumberOfTargets()).append(" target ").append(target.getTargetName()).append(" gain ");
|
||||||
} else {
|
} else {
|
||||||
if (!target.getTargetName().toUpperCase(Locale.ENGLISH).startsWith("ANOTHER")) {
|
if (!target.getTargetName().toLowerCase(Locale.ENGLISH).startsWith("another")) {
|
||||||
sb.append("target ");
|
sb.append("target ");
|
||||||
}
|
}
|
||||||
sb.append(target.getTargetName()).append(" gains ");
|
sb.append(target.getTargetName()).append(" gains ");
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,5 @@
|
||||||
|
|
||||||
|
|
||||||
package mage.abilities.effects.common.continuous;
|
package mage.abilities.effects.common.continuous;
|
||||||
|
|
||||||
import java.util.Iterator;
|
|
||||||
import java.util.Locale;
|
|
||||||
import mage.MageObjectReference;
|
import mage.MageObjectReference;
|
||||||
import mage.abilities.Ability;
|
import mage.abilities.Ability;
|
||||||
import mage.abilities.Mode;
|
import mage.abilities.Mode;
|
||||||
|
|
@ -19,16 +15,18 @@ import mage.filter.common.FilterCreaturePermanent;
|
||||||
import mage.game.Game;
|
import mage.game.Game;
|
||||||
import mage.game.permanent.Permanent;
|
import mage.game.permanent.Permanent;
|
||||||
|
|
||||||
|
import java.util.Iterator;
|
||||||
|
import java.util.Locale;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
|
||||||
* @author LevelX2
|
* @author LevelX2
|
||||||
*/
|
*/
|
||||||
public class SetPowerToughnessAllEffect extends ContinuousEffectImpl {
|
public class SetPowerToughnessAllEffect extends ContinuousEffectImpl {
|
||||||
|
|
||||||
private FilterPermanent filter;
|
private final FilterPermanent filter;
|
||||||
private DynamicValue power;
|
private DynamicValue power;
|
||||||
private DynamicValue toughness;
|
private DynamicValue toughness;
|
||||||
private boolean lockedInPT;
|
private final boolean lockedInPT;
|
||||||
|
|
||||||
public SetPowerToughnessAllEffect(int power, int toughness, Duration duration) {
|
public SetPowerToughnessAllEffect(int power, int toughness, Duration duration) {
|
||||||
this(StaticValue.get(power), StaticValue.get(toughness), duration, new FilterCreaturePermanent("Creatures"), true);
|
this(StaticValue.get(power), StaticValue.get(toughness), duration, new FilterCreaturePermanent("Creatures"), true);
|
||||||
|
|
@ -104,7 +102,7 @@ public class SetPowerToughnessAllEffect extends ContinuousEffectImpl {
|
||||||
|
|
||||||
StringBuilder sb = new StringBuilder();
|
StringBuilder sb = new StringBuilder();
|
||||||
sb.append(filter.getMessage());
|
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 ");
|
sb.append(" has base power and toughness ");
|
||||||
} else {
|
} else {
|
||||||
sb.append(" have base power and toughness ");
|
sb.append(" have base power and toughness ");
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue