mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-20 20:58:03 +00:00
- 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:
1
.gitattributes
vendored
1
.gitattributes
vendored
@@ -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
|
||||
|
||||
15
src/forge/Ability_Static.java
Normal file
15
src/forge/Ability_Static.java
Normal 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());
|
||||
}
|
||||
}
|
||||
@@ -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 = "";
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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());
|
||||
|
||||
@@ -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()
|
||||
{
|
||||
|
||||
@@ -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()) {
|
||||
|
||||
Reference in New Issue
Block a user