mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-19 12:18:00 +00:00
- Added Merseine.
This commit is contained in:
1
.gitattributes
vendored
1
.gitattributes
vendored
@@ -8842,6 +8842,7 @@ forge-gui/res/cardsfolder/m/merrow_levitator.txt svneol=native#text/plain
|
||||
forge-gui/res/cardsfolder/m/merrow_reejerey.txt svneol=native#text/plain
|
||||
forge-gui/res/cardsfolder/m/merrow_wavebreakers.txt svneol=native#text/plain
|
||||
forge-gui/res/cardsfolder/m/merrow_witsniper.txt svneol=native#text/plain
|
||||
forge-gui/res/cardsfolder/m/merseine.txt -text
|
||||
forge-gui/res/cardsfolder/m/mesa_enchantress.txt svneol=native#text/plain
|
||||
forge-gui/res/cardsfolder/m/mesa_falcon.txt svneol=native#text/plain
|
||||
forge-gui/res/cardsfolder/m/mesa_pegasus.txt -text
|
||||
|
||||
@@ -30,6 +30,7 @@ public class CostPartMana extends CostPart {
|
||||
private final ManaCost cost;
|
||||
private boolean xCantBe0 = false;
|
||||
private boolean isExiledCreatureCost = false;
|
||||
private boolean isEnchantedCreatureCost = false;
|
||||
private final String restriction;
|
||||
|
||||
public boolean shouldPayLast() {
|
||||
@@ -48,7 +49,8 @@ public class CostPartMana extends CostPart {
|
||||
this.cost = cost;
|
||||
this.xCantBe0 = "XCantBe0".equals(restriction);
|
||||
this.isExiledCreatureCost = "Exiled".equalsIgnoreCase(restriction);
|
||||
this.restriction = xCantBe0 || isExiledCreatureCost ? null : restriction;
|
||||
this.isEnchantedCreatureCost = "EnchantedCost".equalsIgnoreCase(restriction);
|
||||
this.restriction = xCantBe0 || isExiledCreatureCost || isEnchantedCreatureCost? null : restriction;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -87,6 +89,11 @@ public class CostPartMana extends CostPart {
|
||||
public boolean isExiledCreatureCost() {
|
||||
return isExiledCreatureCost;
|
||||
}
|
||||
|
||||
public boolean isEnchantedCreatureCost() {
|
||||
return isEnchantedCreatureCost;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isReusable() { return true; }
|
||||
|
||||
@@ -119,6 +126,8 @@ public class CostPartMana extends CostPart {
|
||||
if (isExiledCreatureCost() && sa.getPaidList(CostExile.HashLKIListKey)!= null && !sa.getPaidList(CostExile.HashLKIListKey).isEmpty()) {
|
||||
// back from the brink
|
||||
return sa.getPaidList(CostExile.HashLKIListKey).get(0).getManaCost();
|
||||
} if (isEnchantedCreatureCost() && sa.getHostCard().getEnchantingCard() != null) {
|
||||
return sa.getHostCard().getEnchantingCard().getManaCost();
|
||||
} else {
|
||||
return getManaToPay();
|
||||
}
|
||||
|
||||
@@ -121,6 +121,10 @@ public class SpellAbilityRestriction extends SpellAbilityVariables {
|
||||
this.setOpponentOnly(true);
|
||||
}
|
||||
|
||||
if (params.containsKey("EnchantedControllerActivator")) {
|
||||
this.setEnchantedControllerOnly(true);
|
||||
}
|
||||
|
||||
if (params.containsKey("OwnerOnly")) {
|
||||
this.setOwnerOnly(true);
|
||||
}
|
||||
@@ -277,13 +281,18 @@ public class SpellAbilityRestriction extends SpellAbilityVariables {
|
||||
return activator.equals(c.getOwner());
|
||||
}
|
||||
|
||||
if (activator.equals(c.getController()) && !this.isOpponentOnly()) {
|
||||
if (activator.equals(c.getController()) && !this.isOpponentOnly() && !isEnchantedControllerOnly()) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (activator.isOpponentOf(c.getController()) && this.isOpponentOnly()) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (c.getEnchantingCard() != null && activator.equals(c.getEnchantingCard().getController()) && this.isEnchantedControllerOnly()) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (sa.isSpell() && activator.isOpponentOf(c.getController()) && c.hasKeyword("May be played by your opponent")) {
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -59,6 +59,7 @@ public class SpellAbilityVariables {
|
||||
this.instantSpeed = sav.isInstantSpeed();
|
||||
this.anyPlayer = sav.isAnyPlayer();
|
||||
this.opponentOnly = sav.isOpponentOnly();
|
||||
this.enchantedControllerOnly = sav.isEnchantedControllerOnly();
|
||||
this.ownerOnly = sav.isOwnerOnly();
|
||||
this.opponentTurn = sav.isOpponentTurn();
|
||||
this.playerTurn = sav.isPlayerTurn();
|
||||
@@ -110,6 +111,9 @@ public class SpellAbilityVariables {
|
||||
/** The b opponent only. */
|
||||
private boolean opponentOnly = false;
|
||||
|
||||
/** The b opponent only. */
|
||||
private boolean enchantedControllerOnly = false;
|
||||
|
||||
/** The b owner only. */
|
||||
private boolean ownerOnly = false;
|
||||
|
||||
@@ -964,6 +968,19 @@ public class SpellAbilityVariables {
|
||||
this.opponentOnly = opponentOnly;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the opponentOnly
|
||||
*/
|
||||
public boolean isEnchantedControllerOnly() {
|
||||
return enchantedControllerOnly;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param opponentOnly the opponentOnly to set
|
||||
*/
|
||||
public void setEnchantedControllerOnly(boolean enchantedControllerOnly) {
|
||||
this.enchantedControllerOnly = enchantedControllerOnly;
|
||||
}
|
||||
/**
|
||||
* @return the ownerOnly
|
||||
*/
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
Name:Back from the Brink
|
||||
ManaCost:4 U U
|
||||
Types:Enchantment
|
||||
A:AB$ CopyPermanent | Cost$ ExileFromGrave<1/Creature> Mana<20\Exiled> | CostDesc$ Exile a creature card from your graveyard and pay its mana cost | Defined$ Exiled | SorcerySpeed$ True | SpellDescription$ Put a token onto the battlefield that's a copy of that card. Activate this ability only any time you could cast a sorcery.
|
||||
A:AB$ CopyPermanent | Cost$ ExileFromGrave<1/Creature> Mana<20\Exiled> | CostDesc$ Exile a creature card from your graveyard and pay its mana cost: | Defined$ Exiled | SorcerySpeed$ True | SpellDescription$ Put a token onto the battlefield that's a copy of that card. Activate this ability only any time you could cast a sorcery.
|
||||
SVar:NonStackingEffect:True
|
||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/back_from_the_brink.jpg
|
||||
Oracle:Exile a creature card from your graveyard and pay its mana cost: Put a token onto the battlefield that's a copy of that card. Activate this ability only any time you could cast a sorcery.
|
||||
|
||||
11
forge-gui/res/cardsfolder/m/merseine.txt
Normal file
11
forge-gui/res/cardsfolder/m/merseine.txt
Normal file
@@ -0,0 +1,11 @@
|
||||
Name:Merseine
|
||||
ManaCost:2 U U
|
||||
Types:Enchantment Aura
|
||||
K:Enchant creature
|
||||
A:SP$ Attach | Cost$ 2 U U | ValidTgts$ Creature | AILogic$ KeepTapped
|
||||
K:etbCounter:NET:3
|
||||
S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddHiddenKeyword$ CARDNAME doesn't untap during your untap step. | CheckSVar$ X | Description$ Enchanted creature doesn't untap during its controller's untap step if Merseine has a net counter on it.
|
||||
A:AB$ RemoveCounter | EnchantedControllerActivator$ True | Cost$ Mana<1\EnchantedCost> | | CostDesc$ Pay enchanted creature's mana cost: | CounterType$ NET | CounterNum$ 1 | SpellDescription$ Remove a net counter from CARDNAME. Any player may activate this ability, but only if he or she controls the enchanted creature.
|
||||
SVar:X:Count$CardCounters.NET
|
||||
Oracle:Enchant creature\nMerseine enters the battlefield with three net counters on it.\nEnchanted creature doesn't untap during its controller's untap step if Merseine has a net counter on it.\nPay enchanted creature's mana cost: Remove a net counter from Merseine. Any player may activate this ability, but only if he or she controls the enchanted creature.
|
||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/Merseine.jpg
|
||||
Reference in New Issue
Block a user