mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-20 12:48:00 +00:00
Some generic fixes, also: - Added "Whenever *any text goes here* put into a graveyard from the battlefield,*any text goes here*" keyword. It doesn't do anything, but it notifies the program that the card triggers on whenever a card gets put into a graveyard from the battlefield.
- AEther Spellbomb should be fixed.
This commit is contained in:
@@ -1,3 +1,10 @@
|
|||||||
|
Sek'Kuar, Deathkeeper
|
||||||
|
2 B R G
|
||||||
|
Legendary Creature Orc Shaman
|
||||||
|
no text
|
||||||
|
4/3
|
||||||
|
Whenever another nontoken creature you control is put into a graveyard from the battlefield, put a 3/1 black and red Graveborn creature token with haste onto the battlefield.
|
||||||
|
|
||||||
Dingus Egg
|
Dingus Egg
|
||||||
4
|
4
|
||||||
Artifact
|
Artifact
|
||||||
|
|||||||
@@ -1,12 +1,12 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<java version="1.6.0_16" class="java.beans.XMLDecoder">
|
<java version="1.6.0_11" class="java.beans.XMLDecoder">
|
||||||
<object id="MultiSplitLayout$Split0" class="org.jdesktop.swingx.MultiSplitLayout$Split">
|
<object id="MultiSplitLayout$Split0" class="org.jdesktop.swingx.MultiSplitLayout$Split">
|
||||||
<void property="bounds">
|
<void property="bounds">
|
||||||
<object class="java.awt.Rectangle">
|
<object class="java.awt.Rectangle">
|
||||||
<int>0</int>
|
<int>0</int>
|
||||||
<int>0</int>
|
<int>0</int>
|
||||||
<int>1018</int>
|
<int>1440</int>
|
||||||
<int>693</int>
|
<int>827</int>
|
||||||
</object>
|
</object>
|
||||||
</void>
|
</void>
|
||||||
<void id="ArrayList0" property="children">
|
<void id="ArrayList0" property="children">
|
||||||
@@ -17,7 +17,7 @@
|
|||||||
<int>0</int>
|
<int>0</int>
|
||||||
<int>0</int>
|
<int>0</int>
|
||||||
<int>242</int>
|
<int>242</int>
|
||||||
<int>693</int>
|
<int>827</int>
|
||||||
</object>
|
</object>
|
||||||
</void>
|
</void>
|
||||||
<void id="ArrayList1" property="children">
|
<void id="ArrayList1" property="children">
|
||||||
@@ -28,7 +28,7 @@
|
|||||||
<int>0</int>
|
<int>0</int>
|
||||||
<int>0</int>
|
<int>0</int>
|
||||||
<int>242</int>
|
<int>242</int>
|
||||||
<int>118</int>
|
<int>145</int>
|
||||||
</object>
|
</object>
|
||||||
</void>
|
</void>
|
||||||
<void property="name">
|
<void property="name">
|
||||||
@@ -47,7 +47,7 @@
|
|||||||
<void property="bounds">
|
<void property="bounds">
|
||||||
<object class="java.awt.Rectangle">
|
<object class="java.awt.Rectangle">
|
||||||
<int>0</int>
|
<int>0</int>
|
||||||
<int>118</int>
|
<int>145</int>
|
||||||
<int>242</int>
|
<int>242</int>
|
||||||
<int>10</int>
|
<int>10</int>
|
||||||
</object>
|
</object>
|
||||||
@@ -62,9 +62,9 @@
|
|||||||
<void property="bounds">
|
<void property="bounds">
|
||||||
<object class="java.awt.Rectangle">
|
<object class="java.awt.Rectangle">
|
||||||
<int>0</int>
|
<int>0</int>
|
||||||
<int>128</int>
|
<int>155</int>
|
||||||
<int>242</int>
|
<int>242</int>
|
||||||
<int>144</int>
|
<int>171</int>
|
||||||
</object>
|
</object>
|
||||||
</void>
|
</void>
|
||||||
<void property="name">
|
<void property="name">
|
||||||
@@ -83,7 +83,7 @@
|
|||||||
<void property="bounds">
|
<void property="bounds">
|
||||||
<object class="java.awt.Rectangle">
|
<object class="java.awt.Rectangle">
|
||||||
<int>0</int>
|
<int>0</int>
|
||||||
<int>272</int>
|
<int>326</int>
|
||||||
<int>242</int>
|
<int>242</int>
|
||||||
<int>10</int>
|
<int>10</int>
|
||||||
</object>
|
</object>
|
||||||
@@ -98,9 +98,9 @@
|
|||||||
<void property="bounds">
|
<void property="bounds">
|
||||||
<object class="java.awt.Rectangle">
|
<object class="java.awt.Rectangle">
|
||||||
<int>0</int>
|
<int>0</int>
|
||||||
<int>282</int>
|
<int>336</int>
|
||||||
<int>242</int>
|
<int>242</int>
|
||||||
<int>88</int>
|
<int>115</int>
|
||||||
</object>
|
</object>
|
||||||
</void>
|
</void>
|
||||||
<void property="name">
|
<void property="name">
|
||||||
@@ -119,7 +119,7 @@
|
|||||||
<void property="bounds">
|
<void property="bounds">
|
||||||
<object class="java.awt.Rectangle">
|
<object class="java.awt.Rectangle">
|
||||||
<int>0</int>
|
<int>0</int>
|
||||||
<int>370</int>
|
<int>451</int>
|
||||||
<int>242</int>
|
<int>242</int>
|
||||||
<int>10</int>
|
<int>10</int>
|
||||||
</object>
|
</object>
|
||||||
@@ -134,9 +134,9 @@
|
|||||||
<void property="bounds">
|
<void property="bounds">
|
||||||
<object class="java.awt.Rectangle">
|
<object class="java.awt.Rectangle">
|
||||||
<int>0</int>
|
<int>0</int>
|
||||||
<int>380</int>
|
<int>461</int>
|
||||||
<int>242</int>
|
<int>242</int>
|
||||||
<int>80</int>
|
<int>107</int>
|
||||||
</object>
|
</object>
|
||||||
</void>
|
</void>
|
||||||
<void property="name">
|
<void property="name">
|
||||||
@@ -155,7 +155,7 @@
|
|||||||
<void property="bounds">
|
<void property="bounds">
|
||||||
<object class="java.awt.Rectangle">
|
<object class="java.awt.Rectangle">
|
||||||
<int>0</int>
|
<int>0</int>
|
||||||
<int>460</int>
|
<int>568</int>
|
||||||
<int>242</int>
|
<int>242</int>
|
||||||
<int>10</int>
|
<int>10</int>
|
||||||
</object>
|
</object>
|
||||||
@@ -170,9 +170,9 @@
|
|||||||
<void property="bounds">
|
<void property="bounds">
|
||||||
<object class="java.awt.Rectangle">
|
<object class="java.awt.Rectangle">
|
||||||
<int>0</int>
|
<int>0</int>
|
||||||
<int>470</int>
|
<int>578</int>
|
||||||
<int>242</int>
|
<int>242</int>
|
||||||
<int>223</int>
|
<int>249</int>
|
||||||
</object>
|
</object>
|
||||||
</void>
|
</void>
|
||||||
<void property="name">
|
<void property="name">
|
||||||
@@ -205,7 +205,7 @@
|
|||||||
<int>242</int>
|
<int>242</int>
|
||||||
<int>0</int>
|
<int>0</int>
|
||||||
<int>10</int>
|
<int>10</int>
|
||||||
<int>693</int>
|
<int>827</int>
|
||||||
</object>
|
</object>
|
||||||
</void>
|
</void>
|
||||||
<void property="parent">
|
<void property="parent">
|
||||||
@@ -219,8 +219,8 @@
|
|||||||
<object class="java.awt.Rectangle">
|
<object class="java.awt.Rectangle">
|
||||||
<int>252</int>
|
<int>252</int>
|
||||||
<int>0</int>
|
<int>0</int>
|
||||||
<int>484</int>
|
<int>906</int>
|
||||||
<int>693</int>
|
<int>827</int>
|
||||||
</object>
|
</object>
|
||||||
</void>
|
</void>
|
||||||
<void id="ArrayList2" property="children">
|
<void id="ArrayList2" property="children">
|
||||||
@@ -230,8 +230,8 @@
|
|||||||
<object class="java.awt.Rectangle">
|
<object class="java.awt.Rectangle">
|
||||||
<int>252</int>
|
<int>252</int>
|
||||||
<int>0</int>
|
<int>0</int>
|
||||||
<int>484</int>
|
<int>906</int>
|
||||||
<int>136</int>
|
<int>163</int>
|
||||||
</object>
|
</object>
|
||||||
</void>
|
</void>
|
||||||
<void property="name">
|
<void property="name">
|
||||||
@@ -250,8 +250,8 @@
|
|||||||
<void property="bounds">
|
<void property="bounds">
|
||||||
<object class="java.awt.Rectangle">
|
<object class="java.awt.Rectangle">
|
||||||
<int>252</int>
|
<int>252</int>
|
||||||
<int>136</int>
|
<int>163</int>
|
||||||
<int>484</int>
|
<int>906</int>
|
||||||
<int>10</int>
|
<int>10</int>
|
||||||
</object>
|
</object>
|
||||||
</void>
|
</void>
|
||||||
@@ -265,9 +265,9 @@
|
|||||||
<void property="bounds">
|
<void property="bounds">
|
||||||
<object class="java.awt.Rectangle">
|
<object class="java.awt.Rectangle">
|
||||||
<int>252</int>
|
<int>252</int>
|
||||||
<int>146</int>
|
<int>173</int>
|
||||||
<int>484</int>
|
<int>906</int>
|
||||||
<int>139</int>
|
<int>166</int>
|
||||||
</object>
|
</object>
|
||||||
</void>
|
</void>
|
||||||
<void property="name">
|
<void property="name">
|
||||||
@@ -286,8 +286,8 @@
|
|||||||
<void property="bounds">
|
<void property="bounds">
|
||||||
<object class="java.awt.Rectangle">
|
<object class="java.awt.Rectangle">
|
||||||
<int>252</int>
|
<int>252</int>
|
||||||
<int>285</int>
|
<int>339</int>
|
||||||
<int>484</int>
|
<int>906</int>
|
||||||
<int>10</int>
|
<int>10</int>
|
||||||
</object>
|
</object>
|
||||||
</void>
|
</void>
|
||||||
@@ -301,9 +301,9 @@
|
|||||||
<void property="bounds">
|
<void property="bounds">
|
||||||
<object class="java.awt.Rectangle">
|
<object class="java.awt.Rectangle">
|
||||||
<int>252</int>
|
<int>252</int>
|
||||||
<int>295</int>
|
<int>349</int>
|
||||||
<int>484</int>
|
<int>906</int>
|
||||||
<int>113</int>
|
<int>140</int>
|
||||||
</object>
|
</object>
|
||||||
</void>
|
</void>
|
||||||
<void property="name">
|
<void property="name">
|
||||||
@@ -322,8 +322,8 @@
|
|||||||
<void property="bounds">
|
<void property="bounds">
|
||||||
<object class="java.awt.Rectangle">
|
<object class="java.awt.Rectangle">
|
||||||
<int>252</int>
|
<int>252</int>
|
||||||
<int>408</int>
|
<int>489</int>
|
||||||
<int>484</int>
|
<int>906</int>
|
||||||
<int>10</int>
|
<int>10</int>
|
||||||
</object>
|
</object>
|
||||||
</void>
|
</void>
|
||||||
@@ -337,9 +337,9 @@
|
|||||||
<void property="bounds">
|
<void property="bounds">
|
||||||
<object class="java.awt.Rectangle">
|
<object class="java.awt.Rectangle">
|
||||||
<int>252</int>
|
<int>252</int>
|
||||||
<int>418</int>
|
<int>499</int>
|
||||||
<int>484</int>
|
<int>906</int>
|
||||||
<int>118</int>
|
<int>150</int>
|
||||||
</object>
|
</object>
|
||||||
</void>
|
</void>
|
||||||
<void property="name">
|
<void property="name">
|
||||||
@@ -358,8 +358,8 @@
|
|||||||
<void property="bounds">
|
<void property="bounds">
|
||||||
<object class="java.awt.Rectangle">
|
<object class="java.awt.Rectangle">
|
||||||
<int>252</int>
|
<int>252</int>
|
||||||
<int>536</int>
|
<int>649</int>
|
||||||
<int>484</int>
|
<int>906</int>
|
||||||
<int>10</int>
|
<int>10</int>
|
||||||
</object>
|
</object>
|
||||||
</void>
|
</void>
|
||||||
@@ -373,9 +373,9 @@
|
|||||||
<void property="bounds">
|
<void property="bounds">
|
||||||
<object class="java.awt.Rectangle">
|
<object class="java.awt.Rectangle">
|
||||||
<int>252</int>
|
<int>252</int>
|
||||||
<int>546</int>
|
<int>659</int>
|
||||||
<int>484</int>
|
<int>906</int>
|
||||||
<int>147</int>
|
<int>168</int>
|
||||||
</object>
|
</object>
|
||||||
</void>
|
</void>
|
||||||
<void property="name">
|
<void property="name">
|
||||||
@@ -408,10 +408,10 @@
|
|||||||
<object class="org.jdesktop.swingx.MultiSplitLayout$Divider">
|
<object class="org.jdesktop.swingx.MultiSplitLayout$Divider">
|
||||||
<void property="bounds">
|
<void property="bounds">
|
||||||
<object class="java.awt.Rectangle">
|
<object class="java.awt.Rectangle">
|
||||||
<int>736</int>
|
<int>1158</int>
|
||||||
<int>0</int>
|
<int>0</int>
|
||||||
<int>10</int>
|
<int>10</int>
|
||||||
<int>693</int>
|
<int>827</int>
|
||||||
</object>
|
</object>
|
||||||
</void>
|
</void>
|
||||||
<void property="parent">
|
<void property="parent">
|
||||||
@@ -423,10 +423,10 @@
|
|||||||
<object id="MultiSplitLayout$Split3" class="org.jdesktop.swingx.MultiSplitLayout$Split">
|
<object id="MultiSplitLayout$Split3" class="org.jdesktop.swingx.MultiSplitLayout$Split">
|
||||||
<void property="bounds">
|
<void property="bounds">
|
||||||
<object class="java.awt.Rectangle">
|
<object class="java.awt.Rectangle">
|
||||||
<int>746</int>
|
<int>1168</int>
|
||||||
<int>0</int>
|
<int>0</int>
|
||||||
<int>272</int>
|
<int>272</int>
|
||||||
<int>693</int>
|
<int>827</int>
|
||||||
</object>
|
</object>
|
||||||
</void>
|
</void>
|
||||||
<void id="ArrayList3" property="children">
|
<void id="ArrayList3" property="children">
|
||||||
@@ -434,10 +434,10 @@
|
|||||||
<object class="org.jdesktop.swingx.MultiSplitLayout$Leaf">
|
<object class="org.jdesktop.swingx.MultiSplitLayout$Leaf">
|
||||||
<void property="bounds">
|
<void property="bounds">
|
||||||
<object class="java.awt.Rectangle">
|
<object class="java.awt.Rectangle">
|
||||||
<int>746</int>
|
<int>1168</int>
|
||||||
<int>0</int>
|
<int>0</int>
|
||||||
<int>272</int>
|
<int>272</int>
|
||||||
<int>357</int>
|
<int>424</int>
|
||||||
</object>
|
</object>
|
||||||
</void>
|
</void>
|
||||||
<void property="name">
|
<void property="name">
|
||||||
@@ -455,8 +455,8 @@
|
|||||||
<object class="org.jdesktop.swingx.MultiSplitLayout$Divider">
|
<object class="org.jdesktop.swingx.MultiSplitLayout$Divider">
|
||||||
<void property="bounds">
|
<void property="bounds">
|
||||||
<object class="java.awt.Rectangle">
|
<object class="java.awt.Rectangle">
|
||||||
<int>746</int>
|
<int>1168</int>
|
||||||
<int>357</int>
|
<int>424</int>
|
||||||
<int>272</int>
|
<int>272</int>
|
||||||
<int>10</int>
|
<int>10</int>
|
||||||
</object>
|
</object>
|
||||||
@@ -470,10 +470,10 @@
|
|||||||
<object class="org.jdesktop.swingx.MultiSplitLayout$Leaf">
|
<object class="org.jdesktop.swingx.MultiSplitLayout$Leaf">
|
||||||
<void property="bounds">
|
<void property="bounds">
|
||||||
<object class="java.awt.Rectangle">
|
<object class="java.awt.Rectangle">
|
||||||
<int>746</int>
|
<int>1168</int>
|
||||||
<int>367</int>
|
<int>434</int>
|
||||||
<int>272</int>
|
<int>272</int>
|
||||||
<int>326</int>
|
<int>393</int>
|
||||||
</object>
|
</object>
|
||||||
</void>
|
</void>
|
||||||
<void property="name">
|
<void property="name">
|
||||||
|
|||||||
@@ -8828,7 +8828,7 @@ public class CardFactory implements NewConstants {
|
|||||||
}//*************** END ************ END **************************
|
}//*************** END ************ END **************************
|
||||||
|
|
||||||
//*************** START *********** START **************************
|
//*************** START *********** START **************************
|
||||||
if (cardName.equals("Soulscour") )
|
else if (cardName.equals("Soulscour") )
|
||||||
{
|
{
|
||||||
SpellAbility spell = new Spell(card)
|
SpellAbility spell = new Spell(card)
|
||||||
{
|
{
|
||||||
@@ -8919,7 +8919,7 @@ public class CardFactory implements NewConstants {
|
|||||||
|
|
||||||
|
|
||||||
//*************** START *********** START **************************
|
//*************** START *********** START **************************
|
||||||
if (cardName.equals("Wrath of God") || cardName.equals("Damnation"))
|
else if (cardName.equals("Wrath of God") || cardName.equals("Damnation"))
|
||||||
{
|
{
|
||||||
SpellAbility spell = new Spell(card)
|
SpellAbility spell = new Spell(card)
|
||||||
{
|
{
|
||||||
@@ -8934,8 +8934,9 @@ 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 (c.isCreature())
|
if (c.isCreature()) {
|
||||||
AllZone.GameAction.destroyNoRegeneration(c);
|
AllZone.GameAction.destroyNoRegeneration(c);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}// resolve()
|
}// resolve()
|
||||||
|
|
||||||
@@ -8957,7 +8958,7 @@ public class CardFactory implements NewConstants {
|
|||||||
}// *************** END ************ END **************************
|
}// *************** END ************ END **************************
|
||||||
|
|
||||||
//*************** START *********** START **************************
|
//*************** START *********** START **************************
|
||||||
if (cardName.equals("Day of Judgment"))
|
else if (cardName.equals("Day of Judgment"))
|
||||||
{
|
{
|
||||||
SpellAbility spell = new Spell(card)
|
SpellAbility spell = new Spell(card)
|
||||||
{
|
{
|
||||||
@@ -8998,7 +8999,7 @@ public class CardFactory implements NewConstants {
|
|||||||
|
|
||||||
|
|
||||||
//*************** START *********** START **************************
|
//*************** START *********** START **************************
|
||||||
if (cardName.equals("Planar Cleansing") )
|
else if (cardName.equals("Planar Cleansing") )
|
||||||
{
|
{
|
||||||
SpellAbility spell = new Spell(card)
|
SpellAbility spell = new Spell(card)
|
||||||
{
|
{
|
||||||
@@ -9037,7 +9038,7 @@ public class CardFactory implements NewConstants {
|
|||||||
}// *************** END ************ END **************************
|
}// *************** END ************ END **************************
|
||||||
|
|
||||||
//*************** START *********** START **************************
|
//*************** START *********** START **************************
|
||||||
if (cardName.equals("Tranquility") || cardName.equals("Tempest of Light") || cardName.equals("Cleanfall"))
|
else if (cardName.equals("Tranquility") || cardName.equals("Tempest of Light") || cardName.equals("Cleanfall"))
|
||||||
{
|
{
|
||||||
SpellAbility spell = new Spell(card)
|
SpellAbility spell = new Spell(card)
|
||||||
{
|
{
|
||||||
@@ -9058,7 +9059,7 @@ public class CardFactory implements NewConstants {
|
|||||||
AllZone.GameAction.destroy(c);
|
AllZone.GameAction.destroy(c);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}// resolve()
|
}// resolve()
|
||||||
|
|
||||||
public boolean canPlayAI()
|
public boolean canPlayAI()
|
||||||
@@ -9083,7 +9084,7 @@ public class CardFactory implements NewConstants {
|
|||||||
}// *************** END ************ END **************************
|
}// *************** END ************ END **************************
|
||||||
|
|
||||||
//*************** START *********** START **************************
|
//*************** START *********** START **************************
|
||||||
if (cardName.equals("Hush"))
|
else if (cardName.equals("Hush"))
|
||||||
{
|
{
|
||||||
SpellAbility spell = new Spell(card)
|
SpellAbility spell = new Spell(card)
|
||||||
{
|
{
|
||||||
@@ -10241,7 +10242,7 @@ public class CardFactory implements NewConstants {
|
|||||||
card.addSpellAbility(spell);
|
card.addSpellAbility(spell);
|
||||||
}//*************** END ************ END **************************
|
}//*************** END ************ END **************************
|
||||||
|
|
||||||
if (cardName.equals("Lockjaw Snapper"))
|
else if (cardName.equals("Lockjaw Snapper"))
|
||||||
{
|
{
|
||||||
|
|
||||||
final Ability ability = new Ability(card, "0")
|
final Ability ability = new Ability(card, "0")
|
||||||
@@ -10661,7 +10662,7 @@ public class CardFactory implements NewConstants {
|
|||||||
}//*************** END ************ END **************************
|
}//*************** END ************ END **************************
|
||||||
|
|
||||||
//*************** START *********** START **************************
|
//*************** START *********** START **************************
|
||||||
if (cardName.equals("Think Twice"))
|
else if (cardName.equals("Think Twice"))
|
||||||
{
|
{
|
||||||
SpellAbility spell = new Spell(card)
|
SpellAbility spell = new Spell(card)
|
||||||
{
|
{
|
||||||
@@ -13695,6 +13696,12 @@ public class CardFactory implements NewConstants {
|
|||||||
public boolean canPlayAI()
|
public boolean canPlayAI()
|
||||||
{
|
{
|
||||||
CardList humanPlay = new CardList(AllZone.Human_Play.getCards());
|
CardList humanPlay = new CardList(AllZone.Human_Play.getCards());
|
||||||
|
humanPlay = humanPlay.filter(new CardListFilter()
|
||||||
|
{
|
||||||
|
public boolean addCard(Card c) {
|
||||||
|
return c.isCreature() && CardFactoryUtil.canTarget(card, c);
|
||||||
|
}
|
||||||
|
});
|
||||||
if (humanPlay.size() > 0)
|
if (humanPlay.size() > 0)
|
||||||
setTargetCard(CardFactoryUtil.AI_getBestCreature(humanPlay));
|
setTargetCard(CardFactoryUtil.AI_getBestCreature(humanPlay));
|
||||||
return ((AllZone.Computer_Hand.size() > 2)&&(getTargetCard() != null)) ;
|
return ((AllZone.Computer_Hand.size() > 2)&&(getTargetCard() != null)) ;
|
||||||
|
|||||||
@@ -5506,7 +5506,7 @@ class CardFactory_Auras {
|
|||||||
if (card.isEnchanting())
|
if (card.isEnchanting())
|
||||||
{
|
{
|
||||||
Card crd = card.getEnchanting().get(0);
|
Card crd = card.getEnchanting().get(0);
|
||||||
crd.addExtrinsicKeyword("This card doesn't untap during its controller's untap step.");
|
crd.addExtrinsicKeyword("This card doesn't untap during your untap step.");
|
||||||
}
|
}
|
||||||
}//execute()
|
}//execute()
|
||||||
};//Command
|
};//Command
|
||||||
@@ -5521,7 +5521,7 @@ class CardFactory_Auras {
|
|||||||
if (card.isEnchanting())
|
if (card.isEnchanting())
|
||||||
{
|
{
|
||||||
Card crd = card.getEnchanting().get(0);
|
Card crd = card.getEnchanting().get(0);
|
||||||
crd.removeExtrinsicKeyword("This card doesn't untap during its controller's untap step.");
|
crd.removeExtrinsicKeyword("This card doesn't untap during your untap step.");
|
||||||
}
|
}
|
||||||
|
|
||||||
}//execute()
|
}//execute()
|
||||||
|
|||||||
@@ -15511,7 +15511,7 @@ public class CardFactory_Creatures {
|
|||||||
}//*************** END ************ END **************************
|
}//*************** END ************ END **************************
|
||||||
|
|
||||||
//*************** START *********** START **************************
|
//*************** START *********** START **************************
|
||||||
if(cardName.equals("Stern Judge"))
|
else if(cardName.equals("Stern Judge"))
|
||||||
{
|
{
|
||||||
final Ability_Tap ability = new Ability_Tap(card)
|
final Ability_Tap ability = new Ability_Tap(card)
|
||||||
{
|
{
|
||||||
@@ -15547,7 +15547,7 @@ public class CardFactory_Creatures {
|
|||||||
|
|
||||||
|
|
||||||
//*************** START *********** START **************************
|
//*************** START *********** START **************************
|
||||||
if(cardName.equals("Cackling Imp") || cardName.equals("Blightspeaker"))
|
else if(cardName.equals("Cackling Imp") || cardName.equals("Blightspeaker"))
|
||||||
{
|
{
|
||||||
final Ability_Tap ability = new Ability_Tap(card)
|
final Ability_Tap ability = new Ability_Tap(card)
|
||||||
{
|
{
|
||||||
@@ -15575,7 +15575,7 @@ public class CardFactory_Creatures {
|
|||||||
|
|
||||||
|
|
||||||
//*************** START *********** START **************************
|
//*************** START *********** START **************************
|
||||||
if(cardName.equals("Thought Courier"))
|
else if(cardName.equals("Thought Courier"))
|
||||||
{
|
{
|
||||||
final Ability_Tap ability = new Ability_Tap(card)
|
final Ability_Tap ability = new Ability_Tap(card)
|
||||||
{
|
{
|
||||||
@@ -15592,6 +15592,56 @@ public class CardFactory_Creatures {
|
|||||||
ability.setStackDescription("Thought Courier - draw a card, then discard a card.");
|
ability.setStackDescription("Thought Courier - draw a card, then discard a card.");
|
||||||
ability.setBeforePayMana(new Input_NoCost_TapAbility(ability));
|
ability.setBeforePayMana(new Input_NoCost_TapAbility(ability));
|
||||||
}//*************** END ************ END **************************
|
}//*************** END ************ END **************************
|
||||||
|
|
||||||
|
//*************** START *********** START **************************
|
||||||
|
else if(cardName.equals("Elvish Hunter"))
|
||||||
|
{
|
||||||
|
final SpellAbility ability = new Ability_Tap(card, "1 G")
|
||||||
|
{
|
||||||
|
private static final long serialVersionUID = -560200335562416099L;
|
||||||
|
public boolean canPlayAI()
|
||||||
|
{
|
||||||
|
if(CardFactoryUtil.AI_doesCreatureAttack(card))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
return (getCreature().size() != 0);
|
||||||
|
}
|
||||||
|
public void chooseTargetAI()
|
||||||
|
{
|
||||||
|
card.tap();
|
||||||
|
Card target = CardFactoryUtil.AI_getBestCreature(getCreature());
|
||||||
|
setTargetCard(target);
|
||||||
|
}
|
||||||
|
CardList getCreature()
|
||||||
|
{
|
||||||
|
CardList list = new CardList(AllZone.Human_Play.getCards());
|
||||||
|
list = list.filter(new CardListFilter()
|
||||||
|
{
|
||||||
|
public boolean addCard(Card c)
|
||||||
|
{
|
||||||
|
return c.isCreature() && (! c.getKeyword().contains("This card doesn't untap during your next untap step.")) &&
|
||||||
|
CardFactoryUtil.canTarget(card, c) && c.isTapped();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
list.remove(card);
|
||||||
|
return list;
|
||||||
|
}//getCreature()
|
||||||
|
public void resolve()
|
||||||
|
{
|
||||||
|
if(AllZone.GameAction.isCardInPlay(getTargetCard()) && CardFactoryUtil.canTarget(card, getTargetCard()) )
|
||||||
|
{
|
||||||
|
final Card[] creature = new Card[1];
|
||||||
|
creature[0] = getTargetCard();
|
||||||
|
creature[0].addExtrinsicKeyword("This card doesn't untap during your next untap step.");
|
||||||
|
}//if (card is in play)
|
||||||
|
}//resolve()
|
||||||
|
};//SpellAbility
|
||||||
|
card.addSpellAbility(ability);
|
||||||
|
ability.setDescription("1 G, tap: Target creature doesn't untap during its controller's next untap step.");
|
||||||
|
|
||||||
|
ability.setBeforePayMana(CardFactoryUtil.input_targetCreature(ability));
|
||||||
|
}//*************** END ************ END **************************
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Cards with Cycling abilities
|
// Cards with Cycling abilities
|
||||||
|
|||||||
@@ -524,7 +524,7 @@ private Card getCurrentCard(int ID)
|
|||||||
ArrayList<String> keywords = c.getKeyword();
|
ArrayList<String> keywords = c.getKeyword();
|
||||||
for (String kw : keywords)
|
for (String kw : keywords)
|
||||||
{
|
{
|
||||||
if (kw.startsWith("Whenever") && kw.contains(" put into a graveyard from the battlefield,"))
|
if (kw.startsWith("Whenever ") && kw.contains(" put into a graveyard from the battlefield,"))
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
|||||||
@@ -947,11 +947,8 @@ public class GameActionUtil
|
|||||||
{
|
{
|
||||||
crd.removeExtrinsicKeyword("Lifelink");
|
crd.removeExtrinsicKeyword("Lifelink");
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean isRafiqInPlay(String player)
|
public static boolean isRafiqInPlay(String player)
|
||||||
@@ -1111,7 +1108,6 @@ public class GameActionUtil
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//***CREATURES START HERE***
|
//***CREATURES START HERE***
|
||||||
|
|
||||||
public static void executeDestroyCreatureCardEffects(Card c, Card destroyed)
|
public static void executeDestroyCreatureCardEffects(Card c, Card destroyed)
|
||||||
@@ -1129,8 +1125,11 @@ public class GameActionUtil
|
|||||||
destroyCreature_Fecundity(c, destroyed);
|
destroyCreature_Fecundity(c, destroyed);
|
||||||
else if (c.getName().equals("Moonlit Wake"))
|
else if (c.getName().equals("Moonlit Wake"))
|
||||||
destroyCreature_Moonlit_Wake(c, destroyed);
|
destroyCreature_Moonlit_Wake(c, destroyed);
|
||||||
else if (c.getName().equals("Proper Burial"))
|
else if (c.getName().equals("Proper Burial") && destroyed.getController().equals(c.getController()))
|
||||||
destroyCreature_Proper_Burial(c, destroyed);
|
destroyCreature_Proper_Burial(c, destroyed);
|
||||||
|
else if (c.getName().equals("Sek'Kuar, Deathkeeper") && !destroyed.isToken() && destroyed.getController().equals(c.getController()) &&
|
||||||
|
!destroyed.getName().equals(c.getName()))
|
||||||
|
destroyCreature_SekKuar(c, destroyed);
|
||||||
//}
|
//}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1248,6 +1247,41 @@ public class GameActionUtil
|
|||||||
AllZone.Stack.add(ability);
|
AllZone.Stack.add(ability);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static void destroyCreature_SekKuar(Card c, Card destroyed)
|
||||||
|
{
|
||||||
|
final Card crd = c;
|
||||||
|
|
||||||
|
Ability ability = new Ability(c, "0")
|
||||||
|
{
|
||||||
|
public void resolve()
|
||||||
|
{
|
||||||
|
Card c = new Card();
|
||||||
|
|
||||||
|
c.setOwner(crd.getController());
|
||||||
|
c.setController(crd.getController());
|
||||||
|
|
||||||
|
c.setName("Graveborn");
|
||||||
|
c.setImageName("BR 3 1 Graveborn");
|
||||||
|
c.setManaCost("B R");
|
||||||
|
c.setToken(true);
|
||||||
|
|
||||||
|
c.addType("Creature");
|
||||||
|
c.addType("Graveborn");
|
||||||
|
|
||||||
|
c.addIntrinsicKeyword("Haste");
|
||||||
|
|
||||||
|
c.setBaseAttack(3);
|
||||||
|
c.setBaseDefense(1);
|
||||||
|
|
||||||
|
|
||||||
|
PlayerZone play = AllZone.getZone(Constant.Zone.Play,crd.getController());
|
||||||
|
play.add(c);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
ability.setStackDescription("Sek'Kuar, Deathkeeper - put a 3/1 black and red Graveborn creature token with haste onto the battlefield.");
|
||||||
|
AllZone.Stack.add(ability);
|
||||||
|
}
|
||||||
|
|
||||||
//***CREATURES END HERE***
|
//***CREATURES END HERE***
|
||||||
|
|
||||||
//***LANDS START HERE***
|
//***LANDS START HERE***
|
||||||
|
|||||||
Reference in New Issue
Block a user