mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-20 12:48:00 +00:00
More draft matters
This commit is contained in:
@@ -9,7 +9,10 @@ import forge.card.ColorSet;
|
||||
import forge.card.MagicColor;
|
||||
import forge.card.mana.ManaCost;
|
||||
import forge.card.mana.ManaCostShard;
|
||||
import forge.game.*;
|
||||
import forge.game.CardTraitBase;
|
||||
import forge.game.EvenOdd;
|
||||
import forge.game.Game;
|
||||
import forge.game.GameEntity;
|
||||
import forge.game.ability.AbilityKey;
|
||||
import forge.game.ability.AbilityUtils;
|
||||
import forge.game.card.CardPredicates.Presets;
|
||||
@@ -2094,6 +2097,16 @@ public class CardProperty {
|
||||
}
|
||||
}
|
||||
return false;
|
||||
} else if (property.equals("NotedColor")) {
|
||||
String colors = sourceController.getDraftNotes().get(spellAbility.getHostCard().getName());
|
||||
if (colors == null) {
|
||||
return false;
|
||||
}
|
||||
return (colors.contains("white") && card.getColor().hasWhite()) ||
|
||||
(colors.contains("blue") && card.getColor().hasBlue()) ||
|
||||
(colors.contains("black") && card.getColor().hasBlack()) ||
|
||||
(colors.contains("red") && card.getColor().hasRed()) ||
|
||||
(colors.contains("green") && card.getColor().hasGreen());
|
||||
} else if (property.startsWith("Triggered")) {
|
||||
if (spellAbility instanceof SpellAbility) {
|
||||
final String key = property.substring(9);
|
||||
|
||||
@@ -17,13 +17,7 @@
|
||||
*/
|
||||
package forge.game.spellability;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
import com.google.common.collect.Lists;
|
||||
|
||||
import forge.card.ColorSet;
|
||||
import forge.card.MagicColor;
|
||||
import forge.card.mana.ManaAtom;
|
||||
@@ -48,9 +42,13 @@ import forge.game.replacement.ReplacementType;
|
||||
import forge.game.trigger.Trigger;
|
||||
import forge.game.trigger.TriggerHandler;
|
||||
import forge.game.trigger.TriggerType;
|
||||
import forge.game.zone.ZoneType;
|
||||
import forge.game.zone.Zone;
|
||||
import forge.game.zone.ZoneType;
|
||||
import forge.util.TextUtil;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
@@ -524,6 +522,9 @@ public class AbilityManaPart implements java.io.Serializable {
|
||||
return getComboColors(sa);
|
||||
}
|
||||
String produced = this.getOrigProduced();
|
||||
if (produced.contains("NotedColor")) {
|
||||
produced = produced.replace("NotedColor", sa.getActivatingPlayer().getDraftNotes().get(""));
|
||||
}
|
||||
if (produced.contains("Chosen")) {
|
||||
produced = produced.replace("Chosen", this.getChosenColor(sa));
|
||||
}
|
||||
@@ -663,6 +664,23 @@ public class AbilityManaPart implements java.io.Serializable {
|
||||
if (origProduced.contains("Chosen")) {
|
||||
origProduced = origProduced.replace("Chosen", getChosenColor(sa));
|
||||
}
|
||||
if (origProduced.contains("NotedColors")) {
|
||||
String colors = sa.getActivatingPlayer().getDraftNotes().get(sa.getHostCard().getName());
|
||||
if (colors == null) {
|
||||
return "";
|
||||
}
|
||||
// Colors here is an comma separated color list, potentially with duplicates
|
||||
// We need to remove duplicates and convert to single letters
|
||||
StringBuilder sb = new StringBuilder();
|
||||
for (String color : colors.split(",")) {
|
||||
String shortColor = MagicColor.toShortString(color);
|
||||
if (sb.indexOf(shortColor) == -1) {
|
||||
sb.append(shortColor).append(" ");
|
||||
}
|
||||
}
|
||||
origProduced = origProduced.replace("NotedColors", sb.toString().trim());
|
||||
}
|
||||
|
||||
if (!origProduced.contains("ColorIdentity")) {
|
||||
return TextUtil.fastReplace(origProduced, "Combo ", "");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user