mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-19 04:08:01 +00:00
- Reactivated the spDestroyAll keyword and reverted the cards: Fracturing Gust & Multani's Decree & Righteous Fury.
This commit is contained in:
@@ -1,9 +1,9 @@
|
|||||||
Name:Fracturing Gust
|
Name:Fracturing Gust
|
||||||
ManaCost:2 GW GW GW
|
ManaCost:2 GW GW GW
|
||||||
Types:Instant
|
Types:Instant
|
||||||
Text:no text
|
Text:Destroy all artifacts and enchantments. You gain 2 life for each permanent destroyed this way.
|
||||||
A:SP$DestroyAll | Cost$ 2 GW GW GW | ValidCards$ Artifact,Enchantment | SubAbility$ GainLifeYou/X.Times.2 | SpellDescription$ Destroy all artifacts and enchantments. You gain 2 life for each permanent destroyed this way.
|
K:spDestroyAll:Artifact,Enchantment:Drawback$GainLifeYou/X.Times.2
|
||||||
SVar:Rarity:Rare
|
SVar:Rarity:Rare
|
||||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/fracturing_gust.jpg
|
SVar:Picture:http://www.wizards.com/global/images/magic/general/fracturing_gust.jpg
|
||||||
SetInfo:SHM|Rare|http://magiccards.info/scans/en/shm/227.jpg
|
SetInfo:SHM|Rare|http://magiccards.info/scans/en/shm/227.jpg
|
||||||
End
|
End
|
||||||
@@ -1,9 +1,9 @@
|
|||||||
Name:Multani's Decree
|
Name:Multani's Decree
|
||||||
ManaCost:3 G
|
ManaCost:3 G
|
||||||
Types:Sorcery
|
Types:Sorcery
|
||||||
Text:no text
|
Text:Destroy all enchantments. You gain 2 life for each enchantment destroyed this way.
|
||||||
A:SP$DestroyAll | Cost$ 3 G | ValidCards$ Enchantment | SubAbility$ GainLifeYou/X.Times.2 | SpellDescription$ Destroy all enchantments. You gain 2 life for each enchantment destroyed this way.
|
K:spDestroyAll:Enchantment:Drawback$GainLifeYou/X.Times.2
|
||||||
SVar:Rarity:Common
|
SVar:Rarity:Common
|
||||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/multanis_decree.jpg
|
SVar:Picture:http://www.wizards.com/global/images/magic/general/multanis_decree.jpg
|
||||||
SetInfo:UDS|Common|http://magiccards.info/scans/en/ud/114.jpg
|
SetInfo:UDS|Common|http://magiccards.info/scans/en/ud/114.jpg
|
||||||
End
|
End
|
||||||
@@ -1,11 +1,12 @@
|
|||||||
Name:Righteous Fury
|
Name:Righteous Fury
|
||||||
ManaCost:4 W W
|
ManaCost:4 W W
|
||||||
Types:Sorcery
|
Types:Sorcery
|
||||||
Text:no text
|
Text:Destroy all tapped creatures. You gain 2 life for each creature destroyed this way.
|
||||||
A:SP$DestroyAll | Cost$ 4 W W | ValidCards$ Creature.tapped | SubAbility$ GainLifeYou/X.Times.2 | SpellDescription$ Destroy all tapped creatures. You gain 2 life for each creature destroyed this way.
|
K:spDestroyAll:Creature.tapped:Drawback$GainLifeYou/X.Times.2
|
||||||
SVar:PlayMain1:TRUE
|
SVar:PlayMain1:TRUE
|
||||||
SVar:Rarity:Rare
|
SVar:Rarity:Rare
|
||||||
SVar:Picture:http://serv1.tcgimages.eu/img/cards/Portal_Second_Age/righteous_fury.jpg
|
SVar:Picture:http://serv1.tcgimages.eu/img/cards/Portal_Second_Age/righteous_fury.jpg
|
||||||
SetInfo:PO2|Rare|http://magiccards.info/scans/en/po2/141.jpg
|
SetInfo:P02|Rare|http://magiccards.info/scans/en/po2/141.jpg
|
||||||
SetInfo:S99|Rare|http://magiccards.info/scans/en/st/23.jpg
|
SetInfo:S99|Rare|http://magiccards.info/scans/en/st/23.jpg
|
||||||
|
SetInfo:POR|Rare|http://magiccards.info/scans/en/po2/141.jpg
|
||||||
End
|
End
|
||||||
@@ -2999,8 +2999,13 @@ public class CardFactory implements NewConstants {
|
|||||||
} // etbLoseLife
|
} // etbLoseLife
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* We have three cards which can not be converted to AF_SP$DestroyAll at this time:
|
||||||
|
* Fracturing Gust
|
||||||
|
* Multani's Decree
|
||||||
|
* Righteous Fury
|
||||||
|
*/
|
||||||
// Generic destroy all card
|
// Generic destroy all card
|
||||||
/* Cards converted to AF_DestroyAll
|
|
||||||
if(hasKeyword(card, "spDestroyAll") != -1) {
|
if(hasKeyword(card, "spDestroyAll") != -1) {
|
||||||
int n = hasKeyword(card, "spDestroyAll");
|
int n = hasKeyword(card, "spDestroyAll");
|
||||||
|
|
||||||
@@ -3018,23 +3023,23 @@ public class CardFactory implements NewConstants {
|
|||||||
|
|
||||||
if (k.length > 2)
|
if (k.length > 2)
|
||||||
{
|
{
|
||||||
if (k[2].equals("NoRegen"))
|
if (k[2].equals("NoRegen"))
|
||||||
NoRegen[0] = true;
|
NoRegen[0] = true;
|
||||||
|
|
||||||
else if (k[2].startsWith("Drawback$"))
|
else if (k[2].startsWith("Drawback$"))
|
||||||
Drawback[0] = k[2];
|
Drawback[0] = k[2];
|
||||||
|
|
||||||
if (k.length > 3)
|
if (k.length > 3)
|
||||||
{
|
{
|
||||||
if (k[3].startsWith("Drawback$"))
|
if (k[3].startsWith("Drawback$"))
|
||||||
Drawback[0] = k[3];
|
Drawback[0] = k[3];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!Drawback[0].equals("none"))
|
if (!Drawback[0].equals("none"))
|
||||||
{
|
{
|
||||||
String kk[] = Drawback[0].split("\\$");
|
String kk[] = Drawback[0].split("\\$");
|
||||||
Drawback[0] = kk[1];
|
Drawback[0] = kk[1];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
card.clearSpellAbility();
|
card.clearSpellAbility();
|
||||||
@@ -3044,8 +3049,11 @@ public class CardFactory implements NewConstants {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean canPlayAI() {
|
public boolean canPlayAI() {
|
||||||
CardList human = new CardList(AllZone.Human_Play.getCards());
|
// CardList human = new CardList(AllZone.Human_Play.getCards());
|
||||||
CardList computer = new CardList(AllZone.Computer_Play.getCards());
|
// CardList computer = new CardList(AllZone.Computer_Play.getCards());
|
||||||
|
|
||||||
|
CardList human = new CardList(AllZone.Human_Battlefield.getCards());
|
||||||
|
CardList computer = new CardList(AllZone.Computer_Battlefield.getCards());
|
||||||
|
|
||||||
human = human.getValidCards(Tgts,card.getController(),card);
|
human = human.getValidCards(Tgts,card.getController(),card);
|
||||||
human = human.getNotKeyword("Indestructible");
|
human = human.getNotKeyword("Indestructible");
|
||||||
@@ -3064,14 +3072,18 @@ public class CardFactory implements NewConstants {
|
|||||||
|
|
||||||
// the computer will play the spell if Y < X - 3
|
// the computer will play the spell if Y < X - 3
|
||||||
return AllZone.Phase.getPhase().equals(Constant.Phase.Main2) &&
|
return AllZone.Phase.getPhase().equals(Constant.Phase.Main2) &&
|
||||||
(computervalue < humanvalue - 3);
|
(computervalue < humanvalue - 3);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void resolve() {
|
public void resolve() {
|
||||||
CardList all = new CardList();
|
CardList all = new CardList();
|
||||||
all.addAll(AllZone.Human_Play.getCards());
|
// all.addAll(AllZone.Human_Play.getCards());
|
||||||
all.addAll(AllZone.Computer_Play.getCards());
|
// all.addAll(AllZone.Computer_Play.getCards());
|
||||||
|
|
||||||
|
all.addAll(AllZone.Human_Battlefield.getCards());
|
||||||
|
all.addAll(AllZone.Computer_Battlefield.getCards());
|
||||||
|
|
||||||
all = all.getValidCards(Tgts,card.getController(),card);
|
all = all.getValidCards(Tgts,card.getController(),card);
|
||||||
|
|
||||||
CardListUtil.sortByIndestructible(all);
|
CardListUtil.sortByIndestructible(all);
|
||||||
@@ -3080,33 +3092,37 @@ public class CardFactory implements NewConstants {
|
|||||||
for(int i = 0; i < all.size(); i++) {
|
for(int i = 0; i < all.size(); i++) {
|
||||||
Card c = all.get(i);
|
Card c = all.get(i);
|
||||||
if(NoRegen[0])
|
if(NoRegen[0])
|
||||||
AllZone.GameAction.destroyNoRegeneration(c);
|
AllZone.GameAction.destroyNoRegeneration(c);
|
||||||
else
|
else
|
||||||
AllZone.GameAction.destroy(c);
|
AllZone.GameAction.destroy(c);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!Drawback[0].equals("none"))
|
if (!Drawback[0].equals("none"))
|
||||||
{
|
{
|
||||||
// drawbacks for DestroyAll spells usually involve the
|
// drawbacks for DestroyAll spells usually involve the
|
||||||
// number of permanents that were actually destroyed
|
// number of permanents that were actually destroyed
|
||||||
int nDestroyed = 0;
|
int nDestroyed = 0;
|
||||||
CardList afterAll = new CardList();
|
CardList afterAll = new CardList();
|
||||||
afterAll.addAll(AllZone.Human_Play.getCards());
|
// afterAll.addAll(AllZone.Human_Play.getCards());
|
||||||
afterAll.addAll(AllZone.Computer_Play.getCards());
|
// afterAll.addAll(AllZone.Computer_Play.getCards());
|
||||||
afterAll = afterAll.getValidCards(Tgts,card.getController(),card);
|
|
||||||
|
afterAll.addAll(AllZone.Human_Battlefield.getCards());
|
||||||
ArrayList<Integer> slD = new ArrayList<Integer>();
|
afterAll.addAll(AllZone.Computer_Battlefield.getCards());
|
||||||
for (int i=0; i<afterAll.size(); i++)
|
|
||||||
slD.add(afterAll.get(i).getUniqueNumber());
|
afterAll = afterAll.getValidCards(Tgts,card.getController(),card);
|
||||||
|
|
||||||
for (int i=0; i<all.size(); i++)
|
ArrayList<Integer> slD = new ArrayList<Integer>();
|
||||||
{
|
for (int i=0; i<afterAll.size(); i++)
|
||||||
if (!slD.contains(all.get(i).getUniqueNumber()))
|
slD.add(afterAll.get(i).getUniqueNumber());
|
||||||
nDestroyed++;
|
|
||||||
}
|
for (int i=0; i<all.size(); i++)
|
||||||
Log.error("nDestroyed: " + nDestroyed);
|
{
|
||||||
CardFactoryUtil.doDrawBack(Drawback[0], nDestroyed, card.getController(), card.getController().getOpponent(), null, card, null, this);
|
if (!slD.contains(all.get(i).getUniqueNumber()))
|
||||||
|
nDestroyed++;
|
||||||
|
}
|
||||||
|
Log.error("nDestroyed: " + nDestroyed);
|
||||||
|
CardFactoryUtil.doDrawBack(Drawback[0], nDestroyed, card.getController(), card.getController().getOpponent(), null, card, null, this);
|
||||||
}
|
}
|
||||||
}// resolve()
|
}// resolve()
|
||||||
|
|
||||||
@@ -3118,7 +3134,6 @@ public class CardFactory implements NewConstants {
|
|||||||
card.addSpellAbility(spDstryAll);
|
card.addSpellAbility(spDstryAll);
|
||||||
|
|
||||||
}//spDestroyAll
|
}//spDestroyAll
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
// Generic bounce target card
|
// Generic bounce target card
|
||||||
|
|||||||
Reference in New Issue
Block a user