- 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_Mana.java -text 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_Triggered.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 **************************
else if (cardName.equals("An-Zerrin Ruins")) {
final SpellAbility comesIntoPlayAbility = new Ability(card, "0") {
final Ability_Static comesIntoPlayAbility = new Ability_Static(card, "0") {
@Override
public void resolve() {
String chosenType = "";

View File

@@ -1141,13 +1141,13 @@ public class CardFactoryUtil {
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 manaCost = cost;
final int attack = a;
final int defense = d;
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;
@Override
@@ -1167,9 +1167,10 @@ public class CardFactoryUtil {
@Override
public boolean canPlay() {
CardList Silence = AllZoneUtil.getPlayerCardsInPlay(AllZone.GameAction.getOpponent(getSourceCard().getController()));
Silence = Silence.getName("Linvala, Keeper of Silence");
return sourceCard.isFaceDown() && AllZone.GameAction.isCardInPlay(sourceCard) && Silence.size() == 0;
// unMorphing a card is a Special Action, and not effected by Linvala
//CardList Silence = AllZoneUtil.getPlayerCardsInPlay(AllZone.GameAction.getOpponent(getSourceCard().getController()));
//Silence = Silence.getName("Linvala, Keeper of Silence");
return sourceCard.isFaceDown() && AllZone.GameAction.isCardInPlay(sourceCard); // && Silence.size() == 0;
}
};//morph_up

View File

@@ -96,7 +96,7 @@ public class CardFactory_Creatures {
else if(cardName.equals("Belligerent Hatchling") || cardName.equals("Noxious Hatchling")
|| cardName.equals("Shrewd Hatchling") || cardName.equals("Sturdy Hatchling")
|| cardName.equals("Voracious Hatchling")) {
final SpellAbility ability = new Ability(card, "0") {
final SpellAbility ability = new Ability_Static(card, "0") {
@Override
public void resolve() {
card.addCounter(Counters.M1M1, 4);
@@ -16726,7 +16726,7 @@ public class CardFactory_Creatures {
final Card newCard = new Card() {
@Override
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
public void resolve() {
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") ||
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
public void resolve() {
card.addCounter(Counters.P1P1, card.getMultiKickerMagnitude());

View File

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

View File

@@ -133,7 +133,7 @@ public class MagicStack extends MyObservable
}
if(ActualEffectTriggered == false) {
// // 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();
else {
if(sp.isKickerAbility()) {