- Initial submission of Static Abilities which resolve instead of get added to the Stack.

- Added Ability_Static.java
- Changed Morph, Totem Armor, Hatchling's etb, Multikicker's etb, Swans of Bryn Argoll, An-Zerrin Ruins to be a Static Ability.
- Fixed Morph interaction with Linvala
This commit is contained in:
jendave
2011-08-06 08:27:14 +00:00
parent 43c50cd9f2
commit ef4893e70c
7 changed files with 29 additions and 12 deletions

1
.gitattributes vendored
View File

@@ -4765,6 +4765,7 @@ src/forge/Ability_Cost.java -text svneol=native#text/plain
src/forge/Ability_Hand.java svneol=native#text/plain src/forge/Ability_Hand.java svneol=native#text/plain
src/forge/Ability_Mana.java -text svneol=native#text/plain src/forge/Ability_Mana.java -text svneol=native#text/plain
src/forge/Ability_Reflected_Mana.java svneol=native#text/plain src/forge/Ability_Reflected_Mana.java svneol=native#text/plain
src/forge/Ability_Static.java -text svneol=native#text/plain
src/forge/Ability_Tap.java svneol=native#text/plain src/forge/Ability_Tap.java svneol=native#text/plain
src/forge/Ability_Triggered.java svneol=native#text/plain src/forge/Ability_Triggered.java svneol=native#text/plain
src/forge/All.java svneol=native#text/plain src/forge/All.java svneol=native#text/plain

View File

@@ -0,0 +1,15 @@
package forge;
import com.esotericsoftware.minlog.Log;
abstract public class Ability_Static extends Ability {
public Ability_Static(Card sourceCard, String manaCost) {
super(sourceCard, manaCost);
}
public Ability_Static(Card sourceCard, String manaCost, String stackDescription) {
this(sourceCard, manaCost);
setStackDescription(stackDescription);
Log.debug("an ability is being played from" + sourceCard.getName());
}
}

View File

@@ -10532,7 +10532,7 @@ public class CardFactory implements NewConstants {
//*************** START *********** START ************************** //*************** START *********** START **************************
else if (cardName.equals("An-Zerrin Ruins")) { else if (cardName.equals("An-Zerrin Ruins")) {
final SpellAbility comesIntoPlayAbility = new Ability(card, "0") { final Ability_Static comesIntoPlayAbility = new Ability_Static(card, "0") {
@Override @Override
public void resolve() { public void resolve() {
String chosenType = ""; String chosenType = "";

View File

@@ -1141,13 +1141,13 @@ public class CardFactoryUtil {
return ability; return ability;
} }
public static Ability ability_Morph_Up(final Card sourceCard, String cost, String orgManaCost, int a, int d) { public static Ability_Static ability_Morph_Up(final Card sourceCard, String cost, String orgManaCost, int a, int d) {
//final String player = sourceCard.getController(); //final String player = sourceCard.getController();
//final String manaCost = cost; //final String manaCost = cost;
final int attack = a; final int attack = a;
final int defense = d; final int defense = d;
final String origManaCost = orgManaCost; final String origManaCost = orgManaCost;
final Ability morph_up = new Ability(sourceCard, cost) { final Ability_Static morph_up = new Ability_Static(sourceCard, cost) {
private static final long serialVersionUID = -7892773658629724785L; private static final long serialVersionUID = -7892773658629724785L;
@Override @Override
@@ -1167,9 +1167,10 @@ public class CardFactoryUtil {
@Override @Override
public boolean canPlay() { public boolean canPlay() {
CardList Silence = AllZoneUtil.getPlayerCardsInPlay(AllZone.GameAction.getOpponent(getSourceCard().getController())); // unMorphing a card is a Special Action, and not effected by Linvala
Silence = Silence.getName("Linvala, Keeper of Silence"); //CardList Silence = AllZoneUtil.getPlayerCardsInPlay(AllZone.GameAction.getOpponent(getSourceCard().getController()));
return sourceCard.isFaceDown() && AllZone.GameAction.isCardInPlay(sourceCard) && Silence.size() == 0; //Silence = Silence.getName("Linvala, Keeper of Silence");
return sourceCard.isFaceDown() && AllZone.GameAction.isCardInPlay(sourceCard); // && Silence.size() == 0;
} }
};//morph_up };//morph_up

View File

@@ -96,7 +96,7 @@ public class CardFactory_Creatures {
else if(cardName.equals("Belligerent Hatchling") || cardName.equals("Noxious Hatchling") else if(cardName.equals("Belligerent Hatchling") || cardName.equals("Noxious Hatchling")
|| cardName.equals("Shrewd Hatchling") || cardName.equals("Sturdy Hatchling") || cardName.equals("Shrewd Hatchling") || cardName.equals("Sturdy Hatchling")
|| cardName.equals("Voracious Hatchling")) { || cardName.equals("Voracious Hatchling")) {
final SpellAbility ability = new Ability(card, "0") { final SpellAbility ability = new Ability_Static(card, "0") {
@Override @Override
public void resolve() { public void resolve() {
card.addCounter(Counters.M1M1, 4); card.addCounter(Counters.M1M1, 4);
@@ -16726,7 +16726,7 @@ public class CardFactory_Creatures {
final Card newCard = new Card() { final Card newCard = new Card() {
@Override @Override
public void addDamage(final int n, final Card source) { public void addDamage(final int n, final Card source) {
final Ability ability = new Ability(card, "0") { final Ability_Static ability = new Ability_Static(card, "0") {
@Override @Override
public void resolve() { public void resolve() {
String player = source.getController(); String player = source.getController();
@@ -17346,7 +17346,7 @@ public class CardFactory_Creatures {
else if(cardName.equals("Gnarlid Pack") || cardName.equals("Apex Hawks") || cardName.equals("Enclave Elite") || else if(cardName.equals("Gnarlid Pack") || cardName.equals("Apex Hawks") || cardName.equals("Enclave Elite") ||
cardName.equals("Quag Vampires") || cardName.equals("Skitter of Lizards")) cardName.equals("Quag Vampires") || cardName.equals("Skitter of Lizards"))
{ {
final Ability ability = new Ability(card, "0") { final Ability_Static ability = new Ability_Static(card, "0") {
@Override @Override
public void resolve() { public void resolve() {
card.addCounter(Counters.P1P1, card.getMultiKickerMagnitude()); card.addCounter(Counters.P1P1, card.getMultiKickerMagnitude());

View File

@@ -886,7 +886,7 @@ public class GameAction {
} }
final Card card = c; final Card card = c;
Ability ability = new Ability(crd, "0") Ability_Static ability = new Ability_Static(crd, "0")
{ {
public void resolve() public void resolve()
{ {
@@ -2390,7 +2390,7 @@ public class GameAction {
} }
final Card card = c; final Card card = c;
Ability ability = new Ability(crd, "0") Ability_Static ability = new Ability_Static(crd, "0")
{ {
public void resolve() public void resolve()
{ {

View File

@@ -133,7 +133,7 @@ public class MagicStack extends MyObservable
} }
if(ActualEffectTriggered == false) { if(ActualEffectTriggered == false) {
// // WheneverKeyword Test: Added one } at end // // WheneverKeyword Test: Added one } at end
if(sp instanceof Ability_Triggered)//TODO make working triggered abilities! if(sp instanceof Ability_Triggered || sp instanceof Ability_Static)//TODO make working triggered abilities!
sp.resolve(); sp.resolve();
else { else {
if(sp.isKickerAbility()) { if(sp.isKickerAbility()) {