mirror of
https://github.com/magefree/mage.git
synced 2025-12-27 05:52: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
|
|
@ -1,13 +1,14 @@
|
|||
package mage.abilities.effects;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.Mode;
|
||||
import mage.constants.Outcome;
|
||||
import mage.target.targetpointer.TargetPointer;
|
||||
import mage.util.CardUtil;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
* @author BetaSteward_at_googlemail.com
|
||||
*/
|
||||
|
|
@ -56,42 +57,41 @@ public class Effects extends ArrayList<Effect> {
|
|||
nextRule = concatPrefix + " " + nextRule;
|
||||
}
|
||||
|
||||
if (nextRule != null) {
|
||||
//check if nextRule is a new sentence or not.
|
||||
if (nextRule.startsWith("and ") || nextRule.startsWith("with ") || nextRule.startsWith("then ")) {
|
||||
|
||||
//check if nextRule is a new sentence or not.
|
||||
if (nextRule.startsWith("and ") || nextRule.startsWith("with ") || nextRule.startsWith("then ")) {
|
||||
endString = " ";
|
||||
} else if (nextRule.startsWith(",") || nextRule.startsWith(" ")) {
|
||||
endString = "";
|
||||
// nextRule determined to be a new sentence, now check ending of lastRule
|
||||
} else if (lastRule != null && lastRule.length() > 3) {
|
||||
//check if lastRule already has appropriate punctuation, if so, add a space.
|
||||
if (lastRule.endsWith(".\"")
|
||||
|| lastRule.endsWith(".)")
|
||||
|| lastRule.endsWith(".)</i>")
|
||||
|| lastRule.endsWith(".")) {
|
||||
endString = " ";
|
||||
} else if (nextRule.startsWith(",") || nextRule.startsWith(" ")) {
|
||||
endString = "";
|
||||
// nextRule determined to be a new sentence, now check ending of lastRule
|
||||
} else if (lastRule != null && lastRule.length() > 3) {
|
||||
//check if lastRule already has appropriate punctuation, if so, add a space.
|
||||
if (lastRule.endsWith(".\"")
|
||||
|| lastRule.endsWith(".)")
|
||||
|| lastRule.endsWith(".)</i>")
|
||||
|| lastRule.endsWith(".")) {
|
||||
endString = " ";
|
||||
// if lastRule does not have appropriate punctuation, add the default ". "
|
||||
} else if (!lastRule.endsWith(".") && !lastRule.endsWith("<br>")) {
|
||||
endString = ". ";
|
||||
}
|
||||
if (nextRule.length() > 3) {
|
||||
nextRule = Character.toUpperCase(nextRule.charAt(0)) + nextRule.substring(1);
|
||||
}
|
||||
// if lastRule does not have appropriate punctuation, add the default ". "
|
||||
} else if (!lastRule.endsWith(".") && !lastRule.endsWith("<br>")) {
|
||||
endString = ". ";
|
||||
}
|
||||
|
||||
String currentRule = endString + nextRule;
|
||||
// fix dot in the combined effect like IfDoCost
|
||||
if (sbText.length() > 0 && currentRule.length() > 0) {
|
||||
boolean prevTextEndsWithDot = sbText.charAt(sbText.length() - 1) == '.';
|
||||
boolean currentTextStartsWithDot = currentRule.startsWith(",") || currentRule.startsWith(".");
|
||||
if (prevTextEndsWithDot && currentTextStartsWithDot) {
|
||||
sbText.delete(sbText.length() - 1, sbText.length());
|
||||
}
|
||||
if (nextRule.length() > 3) {
|
||||
nextRule = Character.toUpperCase(nextRule.charAt(0)) + nextRule.substring(1);
|
||||
}
|
||||
|
||||
sbText.append(currentRule);
|
||||
}
|
||||
|
||||
String currentRule = endString + nextRule;
|
||||
// fix dot in the combined effect like IfDoCost
|
||||
if (sbText.length() > 0 && currentRule.length() > 0) {
|
||||
boolean prevTextEndsWithDot = sbText.charAt(sbText.length() - 1) == '.';
|
||||
boolean currentTextStartsWithDot = currentRule.startsWith(",") || currentRule.startsWith(".");
|
||||
if (prevTextEndsWithDot && currentTextStartsWithDot) {
|
||||
sbText.delete(sbText.length() - 1, sbText.length());
|
||||
}
|
||||
}
|
||||
|
||||
sbText.append(currentRule);
|
||||
|
||||
lastRule = nextRule;
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,3 @@
|
|||
|
||||
|
||||
package mage.abilities.effects.common.continuous;
|
||||
|
||||
import mage.MageObjectReference;
|
||||
|
|
@ -16,13 +14,12 @@ import mage.game.permanent.Permanent;
|
|||
import org.apache.log4j.Logger;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author BetaSteward_at_googlemail.com
|
||||
*/
|
||||
public class BoostSourceEffect extends ContinuousEffectImpl implements SourceEffect {
|
||||
private DynamicValue power;
|
||||
private DynamicValue toughness;
|
||||
private boolean lockedIn;
|
||||
private final boolean lockedIn;
|
||||
|
||||
public BoostSourceEffect(int power, int toughness, Duration duration) {
|
||||
this(StaticValue.get(power), StaticValue.get(toughness), duration, false);
|
||||
|
|
@ -36,7 +33,7 @@ public class BoostSourceEffect extends ContinuousEffectImpl implements SourceEff
|
|||
* @param power
|
||||
* @param toughness
|
||||
* @param duration
|
||||
* @param lockedIn if true, power and toughness will be calculated only once, when the ability resolves
|
||||
* @param lockedIn if true, power and toughness will be calculated only once, when the ability resolves
|
||||
*/
|
||||
public BoostSourceEffect(DynamicValue power, DynamicValue toughness, Duration duration, boolean lockedIn) {
|
||||
super(duration, Layer.PTChangingEffects_7, SubLayer.ModifyPT_7c, Outcome.BoostCreature);
|
||||
|
|
@ -94,18 +91,13 @@ public class BoostSourceEffect extends ContinuousEffectImpl implements SourceEff
|
|||
StringBuilder sb = new StringBuilder();
|
||||
sb.append("{this} gets ");
|
||||
String p = power.toString();
|
||||
if(!p.startsWith("-")) {
|
||||
if (!p.startsWith("-")) {
|
||||
sb.append('+');
|
||||
}
|
||||
sb.append(p).append('/');
|
||||
String t = toughness.toString();
|
||||
if(!t.startsWith("-")){
|
||||
if(t.startsWith("-")) {
|
||||
sb.append('-');
|
||||
}
|
||||
else {
|
||||
sb.append('+');
|
||||
}
|
||||
if (!t.startsWith("-")) {
|
||||
sb.append('+');
|
||||
}
|
||||
sb.append(t);
|
||||
if (duration != Duration.WhileOnBattlefield) {
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
package mage.abilities.effects.common.continuous;
|
||||
|
||||
import mage.abilities.Ability;
|
||||
|
|
@ -25,7 +24,7 @@ public class BoostTargetEffect extends ContinuousEffectImpl {
|
|||
|
||||
private DynamicValue power;
|
||||
private DynamicValue toughness;
|
||||
private boolean lockedIn;
|
||||
private final boolean lockedIn;
|
||||
|
||||
public BoostTargetEffect(int power, int toughness) {
|
||||
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 ");
|
||||
} else {
|
||||
if (!target.getTargetName().toUpperCase(Locale.ENGLISH).startsWith("ANOTHER")) {
|
||||
if (!target.getTargetName().toLowerCase(Locale.ENGLISH).startsWith("another")) {
|
||||
sb.append("target ");
|
||||
}
|
||||
sb.append(target.getTargetName()).append(" gets ");
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ public class GainAbilityTargetEffect extends ContinuousEffectImpl {
|
|||
|
||||
protected Ability ability;
|
||||
// shall a card gain the ability (otherwise permanent)
|
||||
private boolean onCard;
|
||||
private final boolean onCard;
|
||||
|
||||
// Duration until next phase step of player
|
||||
private PhaseStep durationPhaseStep = null;
|
||||
|
|
@ -140,7 +140,7 @@ public class GainAbilityTargetEffect extends ContinuousEffectImpl {
|
|||
}
|
||||
sb.append(target.getMaxNumberOfTargets()).append(" target ").append(target.getTargetName()).append(" gain ");
|
||||
} else {
|
||||
if (!target.getTargetName().toUpperCase(Locale.ENGLISH).startsWith("ANOTHER")) {
|
||||
if (!target.getTargetName().toLowerCase(Locale.ENGLISH).startsWith("another")) {
|
||||
sb.append("target ");
|
||||
}
|
||||
sb.append(target.getTargetName()).append(" gains ");
|
||||
|
|
|
|||
|
|
@ -1,9 +1,5 @@
|
|||
|
||||
|
||||
package mage.abilities.effects.common.continuous;
|
||||
|
||||
import java.util.Iterator;
|
||||
import java.util.Locale;
|
||||
import mage.MageObjectReference;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.Mode;
|
||||
|
|
@ -19,16 +15,18 @@ import mage.filter.common.FilterCreaturePermanent;
|
|||
import mage.game.Game;
|
||||
import mage.game.permanent.Permanent;
|
||||
|
||||
import java.util.Iterator;
|
||||
import java.util.Locale;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author LevelX2
|
||||
*/
|
||||
public class SetPowerToughnessAllEffect extends ContinuousEffectImpl {
|
||||
|
||||
private FilterPermanent filter;
|
||||
private final FilterPermanent filter;
|
||||
private DynamicValue power;
|
||||
private DynamicValue toughness;
|
||||
private boolean lockedInPT;
|
||||
private final boolean lockedInPT;
|
||||
|
||||
public SetPowerToughnessAllEffect(int power, int toughness, Duration duration) {
|
||||
this(StaticValue.get(power), StaticValue.get(toughness), duration, new FilterCreaturePermanent("Creatures"), true);
|
||||
|
|
@ -63,7 +61,7 @@ public class SetPowerToughnessAllEffect extends ContinuousEffectImpl {
|
|||
public void init(Ability source, Game game) {
|
||||
super.init(source, game);
|
||||
if (affectedObjectsSet) {
|
||||
for (Permanent perm: game.getBattlefield().getActivePermanents(filter, source.getControllerId(), source.getSourceId(), game)) {
|
||||
for (Permanent perm : game.getBattlefield().getActivePermanents(filter, source.getControllerId(), source.getSourceId(), game)) {
|
||||
affectedObjectList.add(new MageObjectReference(perm, game));
|
||||
}
|
||||
}
|
||||
|
|
@ -78,7 +76,7 @@ public class SetPowerToughnessAllEffect extends ContinuousEffectImpl {
|
|||
int newPower = power.calculate(game, source, this);
|
||||
int newToughness = toughness.calculate(game, source, this);
|
||||
if (affectedObjectsSet) {
|
||||
for (Iterator<MageObjectReference> it = affectedObjectList.iterator(); it.hasNext();) {
|
||||
for (Iterator<MageObjectReference> it = affectedObjectList.iterator(); it.hasNext(); ) {
|
||||
Permanent permanent = it.next().getPermanent(game);
|
||||
if (permanent != null) {
|
||||
permanent.getPower().setValue(newPower);
|
||||
|
|
@ -88,7 +86,7 @@ public class SetPowerToughnessAllEffect extends ContinuousEffectImpl {
|
|||
}
|
||||
}
|
||||
} else {
|
||||
for (Permanent permanent: game.getBattlefield().getActivePermanents(filter, source.getControllerId(), source.getSourceId(), game)) {
|
||||
for (Permanent permanent : game.getBattlefield().getActivePermanents(filter, source.getControllerId(), source.getSourceId(), game)) {
|
||||
permanent.getPower().setValue(newPower);
|
||||
permanent.getToughness().setValue(newToughness);
|
||||
}
|
||||
|
|
@ -104,7 +102,7 @@ public class SetPowerToughnessAllEffect extends ContinuousEffectImpl {
|
|||
|
||||
StringBuilder sb = new StringBuilder();
|
||||
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 ");
|
||||
} else {
|
||||
sb.append(" have base power and toughness ");
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue