mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-18 11:48:02 +00:00
initial Friends forever
This commit is contained in:
@@ -228,7 +228,8 @@ public final class CardRules implements ICardCharacteristics {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public boolean canBePartnerCommander() {
|
public boolean canBePartnerCommander() {
|
||||||
return canBeCommander() && (hasKeyword("Partner") || !this.partnerWith.isEmpty());
|
return canBeCommander() && (hasKeyword("Partner") || !this.partnerWith.isEmpty() ||
|
||||||
|
hasKeyword("Friends forever"));
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean canBeOathbreaker() {
|
public boolean canBeOathbreaker() {
|
||||||
|
|||||||
@@ -259,6 +259,9 @@ public enum DeckFormat {
|
|||||||
} else if (a.getName().equals(b.getRules().getPartnerWith())
|
} else if (a.getName().equals(b.getRules().getPartnerWith())
|
||||||
&& b.getName().equals(a.getRules().getPartnerWith())) {
|
&& b.getName().equals(a.getRules().getPartnerWith())) {
|
||||||
// paired partner commander
|
// paired partner commander
|
||||||
|
} else if (a.getRules().hasKeyword("Friends forever") &&
|
||||||
|
b.getRules().hasKeyword("Friends forever")) {
|
||||||
|
// Stranger Things Secret Lair gimmick partner commander
|
||||||
} else {
|
} else {
|
||||||
return "has an illegal commander partnership";
|
return "has an illegal commander partnership";
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2086,7 +2086,8 @@ public class Card extends GameEntity implements Comparable<Card>, IHasSVars {
|
|||||||
|| keyword.equals("Foretell") // for the ones without cost
|
|| keyword.equals("Foretell") // for the ones without cost
|
||||||
|| keyword.equals("Hideaway") || keyword.equals("Ascend") || keyword.equals("Totem armor")
|
|| keyword.equals("Hideaway") || keyword.equals("Ascend") || keyword.equals("Totem armor")
|
||||||
|| keyword.equals("Battle cry") || keyword.equals("Devoid") || keyword.equals("Riot")
|
|| keyword.equals("Battle cry") || keyword.equals("Devoid") || keyword.equals("Riot")
|
||||||
|| keyword.equals("Daybound") || keyword.equals("Nightbound")) {
|
|| keyword.equals("Daybound") || keyword.equals("Nightbound")
|
||||||
|
|| keyword.equals("Friends forever")) {
|
||||||
sbLong.append(keyword).append(" (").append(inst.getReminderText()).append(")");
|
sbLong.append(keyword).append(" (").append(inst.getReminderText()).append(")");
|
||||||
} else if (keyword.startsWith("Partner:")) {
|
} else if (keyword.startsWith("Partner:")) {
|
||||||
final String[] k = keyword.split(":");
|
final String[] k = keyword.split(":");
|
||||||
|
|||||||
@@ -85,6 +85,7 @@ public enum Keyword {
|
|||||||
FORETELL("Foretell", KeywordWithCost.class, false, "During your turn, you may pay {2} and exile this card from your hand face down. Cast it on a later turn for its foretell cost."),
|
FORETELL("Foretell", KeywordWithCost.class, false, "During your turn, you may pay {2} and exile this card from your hand face down. Cast it on a later turn for its foretell cost."),
|
||||||
FORTIFY("Fortify", KeywordWithCost.class, false, "%s: Attach to target land you control. Fortify only as a sorcery."),
|
FORTIFY("Fortify", KeywordWithCost.class, false, "%s: Attach to target land you control. Fortify only as a sorcery."),
|
||||||
FRENZY("Frenzy", KeywordWithAmount.class, false, "Whenever this creature attacks and isn't blocked, it gets +%d/+0 until end of turn."),
|
FRENZY("Frenzy", KeywordWithAmount.class, false, "Whenever this creature attacks and isn't blocked, it gets +%d/+0 until end of turn."),
|
||||||
|
FRIENDS_FOREVER("Friends forever", Partner.class, true, "You can have two commanders if both have friends forever."),
|
||||||
FUSE("Fuse", SimpleKeyword.class, true, "You may cast one or both halves of this card from your hand."),
|
FUSE("Fuse", SimpleKeyword.class, true, "You may cast one or both halves of this card from your hand."),
|
||||||
GRAFT("Graft", KeywordWithAmount.class, false, "This permanent enters the battlefield with {%d:+1/+1 counter} on it. Whenever another creature enters the battlefield, you may move a +1/+1 counter from this permanent onto it."),
|
GRAFT("Graft", KeywordWithAmount.class, false, "This permanent enters the battlefield with {%d:+1/+1 counter} on it. Whenever another creature enters the battlefield, you may move a +1/+1 counter from this permanent onto it."),
|
||||||
GRAVESTORM("Gravestorm", SimpleKeyword.class, false, "When you cast this spell, copy it for each permanent that was put into a graveyard from the battlefield this turn. If the spell has any targets, you may choose new targets for any of the copies."),
|
GRAVESTORM("Gravestorm", SimpleKeyword.class, false, "When you cast this spell, copy it for each permanent that was put into a graveyard from the battlefield this turn. If the spell has any targets, you may choose new targets for any of the copies."),
|
||||||
|
|||||||
@@ -411,7 +411,7 @@ public final class CardScriptParser {
|
|||||||
"CanBeEquippedBy", "Equipped", "Fortified", "HauntedBy",
|
"CanBeEquippedBy", "Equipped", "Fortified", "HauntedBy",
|
||||||
"notTributed", "madness", "Paired", "NotPaired", "PairedWith",
|
"notTributed", "madness", "Paired", "NotPaired", "PairedWith",
|
||||||
"Above", "DirectlyAbove", "TopGraveyardCreature",
|
"Above", "DirectlyAbove", "TopGraveyardCreature",
|
||||||
"BottomGraveyard", "TopLibrary", "Cloned", "DamagedBy", "Damaged",
|
"BottomGraveyard", "TopLibrary", "BottomLibrary", "Cloned", "DamagedBy", "Damaged",
|
||||||
"sharesPermanentTypeWith", "canProduceSameManaTypeWith", "SecondSpellCastThisTurn",
|
"sharesPermanentTypeWith", "canProduceSameManaTypeWith", "SecondSpellCastThisTurn",
|
||||||
"ThisTurnCast", "withFlashback", "tapped", "untapped", "faceDown",
|
"ThisTurnCast", "withFlashback", "tapped", "untapped", "faceDown",
|
||||||
"faceUp", "hasLevelUp", "DrawnThisTurn", "notDrawnThisTurn",
|
"faceUp", "hasLevelUp", "DrawnThisTurn", "notDrawnThisTurn",
|
||||||
|
|||||||
Reference in New Issue
Block a user