diff --git a/Mage/src/main/java/mage/abilities/common/BeginningOfEndStepTriggeredAbility.java b/Mage/src/main/java/mage/abilities/common/BeginningOfEndStepTriggeredAbility.java
index 3ece2bd954..7d5fadecda 100644
--- a/Mage/src/main/java/mage/abilities/common/BeginningOfEndStepTriggeredAbility.java
+++ b/Mage/src/main/java/mage/abilities/common/BeginningOfEndStepTriggeredAbility.java
@@ -103,6 +103,9 @@ public class BeginningOfEndStepTriggeredAbility extends TriggeredAbilityImpl {
@Override
public String getRule() {
StringBuilder sb = new StringBuilder(getEffects().getText(modes.getMode()));
+
+ System.out.printf("Beg.OfEndStep getRule called:: ", sb);
+
if (this.optional) {
if (sb.substring(0, 6).toLowerCase(Locale.ENGLISH).equals("target")) {
sb.insert(0, "you may have ");
@@ -114,6 +117,10 @@ public class BeginningOfEndStepTriggeredAbility extends TriggeredAbilityImpl {
if (abilityWord != null) {
abilityWordRule = "" + abilityWord.toString() + " &mdash ";
}
+
+ System.out.printf("Beg.OfEndStep getRule called:: ", sb);
+
+
switch (targetController) {
case YOU:
return sb.insert(0, generateConditionString()).insert(0, abilityWordRule + "At the beginning of your end step, ").toString();
@@ -122,6 +129,8 @@ public class BeginningOfEndStepTriggeredAbility extends TriggeredAbilityImpl {
case OPPONENT:
return sb.insert(0, generateConditionString()).insert(0, abilityWordRule + "At the beginning of each opponent's end step, ").toString();
case ANY:
+ //System.out.print("Beg.EndStep - Final Out::");
+ //m.System.out.println(sb.insert(0, generateConditionString()).insert(0, abilityWordRule + "At the beginning of each end step, ").toString());
return sb.insert(0, generateConditionString()).insert(0, abilityWordRule + "At the beginning of each end step, ").toString();
case EACH_PLAYER:
return sb.insert(0, generateConditionString()).insert(0, abilityWordRule + "At the beginning of each player's end step, ").toString();
@@ -132,10 +141,19 @@ public class BeginningOfEndStepTriggeredAbility extends TriggeredAbilityImpl {
}
private String generateConditionString() {
+ System.out.println("GenCondString called");
if (interveningIfClauseCondition != null) {
if (interveningIfClauseCondition.toString().startsWith("if")) {
+ //System.out.println("GenCondString called 2");
+ //System.out.println(interveningIfClauseCondition.toString());
+
+ if (interveningIfClauseCondition.toString().endsWith(".")){
+ return interveningIfClauseCondition.toString() + " ";
+ }
+
return interveningIfClauseCondition.toString() + ", ";
} else {
+ //System.out.println("GenCondString called 3");
return "if {this} is " + interveningIfClauseCondition.toString() + ", ";
}
}
diff --git a/Mage/src/main/java/mage/abilities/common/BeginningOfUpkeepTriggeredAbility.java b/Mage/src/main/java/mage/abilities/common/BeginningOfUpkeepTriggeredAbility.java
index 7969e308b5..d0c6cb7b39 100644
--- a/Mage/src/main/java/mage/abilities/common/BeginningOfUpkeepTriggeredAbility.java
+++ b/Mage/src/main/java/mage/abilities/common/BeginningOfUpkeepTriggeredAbility.java
@@ -133,15 +133,15 @@ public class BeginningOfUpkeepTriggeredAbility extends TriggeredAbilityImpl {
sb.insert(0, "you may ");
}
}
- return sb.insert(0, generateZoneString()).insert(0, "At the beginning of your upkeep, ").toString();
+ return sb.insert(0, generateZoneString()).insert(0, "at the beginning of your upkeep, ").toString(); //removed captialization
case OPPONENT:
- return sb.insert(0, generateZoneString()).insert(0, "At the beginning of each opponent's upkeep, ").toString();
+ return sb.insert(0, generateZoneString()).insert(0, "at the beginning of each opponent's upkeep, ").toString(); //removed captialization
case ANY:
- return sb.insert(0, generateZoneString()).insert(0, "At the beginning of each upkeep, ").toString();
+ return sb.insert(0, generateZoneString()).insert(0, "at the beginning of each upkeep, ").toString(); //removed captialization
case ACTIVE:
- return sb.insert(0, generateZoneString()).insert(0, "At the beginning of each player's upkeep, ").toString();
+ return sb.insert(0, generateZoneString()).insert(0, "at the beginning of each player's upkeep, ").toString(); //removed captialization
case CONTROLLER_ATTACHED_TO:
- return sb.insert(0, generateZoneString()).insert(0, "At the beginning of the upkeep of enchanted creature's controller, ").toString();
+ return sb.insert(0, generateZoneString()).insert(0, "at the beginning of the upkeep of enchanted creature's controller, ").toString(); //removed captialization
}
return "";
}
diff --git a/Mage/src/main/java/mage/abilities/common/delayed/AtTheBeginOfNextEndStepDelayedTriggeredAbility.java b/Mage/src/main/java/mage/abilities/common/delayed/AtTheBeginOfNextEndStepDelayedTriggeredAbility.java
index 0fff4ee32a..2d6309f416 100644
--- a/Mage/src/main/java/mage/abilities/common/delayed/AtTheBeginOfNextEndStepDelayedTriggeredAbility.java
+++ b/Mage/src/main/java/mage/abilities/common/delayed/AtTheBeginOfNextEndStepDelayedTriggeredAbility.java
@@ -90,16 +90,16 @@ public class AtTheBeginOfNextEndStepDelayedTriggeredAbility extends DelayedTrigg
StringBuilder sb = new StringBuilder();
switch (targetController) {
case YOU:
- sb.append("At the beginning of your next end step, ");
+ sb.append("at the beginning of your next end step, "); //remove capitalization
break;
case OPPONENT:
- sb.append("At the beginning of an opponent's next end step, ");
+ sb.append("at the beginning of an opponent's next end step, "); //remove capitalization
break;
case ANY:
- sb.append("At the beginning of the next end step, ");
+ sb.append("at the beginning of the next end step, "); //remove capitalization
break;
case CONTROLLER_ATTACHED_TO:
- sb.append("At the beginning of the next end step of enchanted creature's controller, ");
+ sb.append("at the beginning of the next end step of enchanted creature's controller, "); //remove capitalization
break;
}
sb.append(getEffects().getText(modes.getMode()));
diff --git a/Mage/src/main/java/mage/abilities/effects/Effects.java b/Mage/src/main/java/mage/abilities/effects/Effects.java
index 38c798b30f..0f904ab4bb 100644
--- a/Mage/src/main/java/mage/abilities/effects/Effects.java
+++ b/Mage/src/main/java/mage/abilities/effects/Effects.java
@@ -37,6 +37,7 @@ public class Effects extends ArrayList {
}
public String getText(Mode mode) {
+ System.out.println(" -- getText method called -- ");
StringBuilder sbText = new StringBuilder();
String lastRule = null;
int effectNum = 0;
@@ -44,6 +45,12 @@ public class Effects extends ArrayList {
String endString = "";
String nextRule = effect.getText(mode);
+ System.out.printf("Effect Num: %d\n", effectNum);
+ System.out.print("nextRule from Effects - getText:: ");
+ System.out.println(nextRule);
+ System.out.print("lastRule from Effects - getText:: ");
+ System.out.println(lastRule);
+
// ignore empty rules
if (nextRule == null || nextRule.isEmpty()) {
continue;
@@ -52,20 +59,37 @@ public class Effects extends ArrayList {
// concat effects (default: each effect with a new sentence)
String concatPrefix = effect.getConcatPrefix();
+ System.out.print("concatPrefix:");
+ System.out.println(concatPrefix);
+
if (effectNum > 1 && !concatPrefix.isEmpty() && !concatPrefix.equals(".")) {
nextRule = concatPrefix + " " + nextRule;
+ System.out.println("Catch 1!!");
}
if (nextRule != null) {
if (nextRule.startsWith("and ") || nextRule.startsWith("with ") || nextRule.startsWith("then ")) {
endString = " ";
+ System.out.println("Catch 2!!");
} else if (nextRule.startsWith(",") || nextRule.startsWith(" ")) {
endString = "";
+ System.out.println("Catch 3!!");
} else if (lastRule != null && lastRule.length() > 3) {
- if (!lastRule.endsWith(".") && !lastRule.endsWith("
")) {
+ System.out.println("Catch 4!!");
+ //check if lastRule already has appropriate punctuation, if so, add a space
+ if (lastRule.endsWith(".\"") ||
+ lastRule.endsWith(".)") ||
+ lastRule.endsWith(".)") ||
+ lastRule.endsWith(".")){
+ endString = " ";
+ System.out.println("Catch 9!!");
+ // if lastRule does not have appropriate punctuation, add the default ". "
+ } else if (!lastRule.endsWith(".") && !lastRule.endsWith("
")) {
endString = ". ";
+ System.out.println("Catch 5!!");
}
if (nextRule.length() > 3) {
+ System.out.println("Catch 6!!");
nextRule = Character.toUpperCase(nextRule.charAt(0)) + nextRule.substring(1);
}
}
@@ -73,18 +97,35 @@ public class Effects extends ArrayList {
String currentRule = endString + nextRule;
// fix dot in the combined effect like IfDoCost
if (sbText.length() > 0 && currentRule.length() > 0) {
+ System.out.println("Catch 7!!");
boolean prevTextEndsWithDot = sbText.charAt(sbText.length() - 1) == '.';
boolean currentTextStartsWithDot = currentRule.startsWith(",") || currentRule.startsWith(".");
if (prevTextEndsWithDot && currentTextStartsWithDot) {
+ System.out.println("Catch 8!!");
sbText.delete(sbText.length() - 1, sbText.length());
}
+
+ /*
+ if (!prevTextEndsWithDot){
+ System.out.println("Catch 10!!");
+ currentRule = currentRule + ".";
+ }
+ */
}
+
+
sbText.append(currentRule);
}
lastRule = nextRule;
+
+
+
+
+
}
+ //add punctuation to last line
if (lastRule != null && lastRule.length() > 3
&& !lastRule.endsWith(".")
&& !lastRule.endsWith("\"")
@@ -94,7 +135,13 @@ public class Effects extends ArrayList {
sbText.append('.');
}
+
+ System.out.print("sbText from Effects - getText ::");
+ System.out.println(sbText);
+
return sbText.toString();
+
+
}
public boolean hasOutcome(Ability source, Outcome outcome) {
diff --git a/Mage/src/main/java/mage/abilities/effects/common/RevealCardsFromLibraryUntilEffect.java b/Mage/src/main/java/mage/abilities/effects/common/RevealCardsFromLibraryUntilEffect.java
index b719eaca60..aee850c3e9 100644
--- a/Mage/src/main/java/mage/abilities/effects/common/RevealCardsFromLibraryUntilEffect.java
+++ b/Mage/src/main/java/mage/abilities/effects/common/RevealCardsFromLibraryUntilEffect.java
@@ -135,7 +135,7 @@ public class RevealCardsFromLibraryUntilEffect extends OneShotEffect {
sb.append("a random");
}
- sb.append(" order.");
+ sb.append(" order"); //removed punctuation
}
break;
}
diff --git a/Mage/src/main/java/mage/abilities/effects/common/counter/DistributeCountersEffect.java b/Mage/src/main/java/mage/abilities/effects/common/counter/DistributeCountersEffect.java
index 39315588d4..e4e1edd426 100644
--- a/Mage/src/main/java/mage/abilities/effects/common/counter/DistributeCountersEffect.java
+++ b/Mage/src/main/java/mage/abilities/effects/common/counter/DistributeCountersEffect.java
@@ -76,10 +76,12 @@ public class DistributeCountersEffect extends OneShotEffect {
}
String name = counterType.getName();
- String text = "distribute " + CardUtil.numberToText(amount) + ' ' + name + " counters among " + targetDescription + '.';
+ //String text = "distribute " + CardUtil.numberToText(amount) + ' ' + name + " counters among " + targetDescription + '.';
+ //removed punctuation
+ String text = "distribute " + CardUtil.numberToText(amount) + ' ' + name + " counters among " + targetDescription;
if (removeAtEndOfTurn) {
text += " For each " + name + " counter you put on a creature this way, remove a "
- + name + " counter from that creature at the beginning of the next cleanup step.";
+ + name + " counter from that creature at the beginning of the next cleanup step."; //should this period be removed?
}
return text;
}
@@ -94,7 +96,7 @@ class RemoveCountersAtEndOfTurn extends OneShotEffect {
this.counterType = counterType;
String name = counterType.getName();
staticText = "For each " + name + " counter you put on a creature this way, remove a "
- + name + " counter from that creature at the beginning of the next cleanup step.";
+ + name + " counter from that creature at the beginning of the next cleanup step."; //should this period be removed?
}
public RemoveCountersAtEndOfTurn(final RemoveCountersAtEndOfTurn effect) {