mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-18 03:38:01 +00:00
- Added "Landfall - Whenever a land enters the battlefield under your control, CARDNAME gets +2/+2 until end of turn." keyword.
- Added Talon Sliver + +2/+2 EOT landfall cards.
This commit is contained in:
@@ -1,3 +1,53 @@
|
|||||||
|
Windrider Eel
|
||||||
|
3 U
|
||||||
|
Creature Fish
|
||||||
|
no text
|
||||||
|
2/2
|
||||||
|
Flying
|
||||||
|
Landfall - Whenever a land enters the battlefield under your control, CARDNAME gets +2/+2 until end of turn.
|
||||||
|
|
||||||
|
Territorial Baloth
|
||||||
|
4 G
|
||||||
|
Creature Beast
|
||||||
|
no text
|
||||||
|
4/4
|
||||||
|
Landfall - Whenever a land enters the battlefield under your control, CARDNAME gets +2/+2 until end of turn.
|
||||||
|
|
||||||
|
Plated Geopede
|
||||||
|
1 R
|
||||||
|
Creature Insect
|
||||||
|
no text
|
||||||
|
1/1
|
||||||
|
First Strike
|
||||||
|
Landfall - Whenever a land enters the battlefield under your control, CARDNAME gets +2/+2 until end of turn.
|
||||||
|
|
||||||
|
Hedron Rover
|
||||||
|
4
|
||||||
|
Artifact Creature Construct
|
||||||
|
no text
|
||||||
|
2/2
|
||||||
|
Landfall - Whenever a land enters the battlefield under your control, CARDNAME gets +2/+2 until end of turn.
|
||||||
|
|
||||||
|
Hagra Crocodile
|
||||||
|
3 B
|
||||||
|
Creature Crocodile
|
||||||
|
no text
|
||||||
|
3/1
|
||||||
|
Landfall - Whenever a land enters the battlefield under your control, CARDNAME gets +2/+2 until end of turn.
|
||||||
|
|
||||||
|
Steppe Lynx
|
||||||
|
W
|
||||||
|
Creature Cat
|
||||||
|
no text
|
||||||
|
0/1
|
||||||
|
Landfall - Whenever a land enters the battlefield under your control, CARDNAME gets +2/+2 until end of turn.
|
||||||
|
|
||||||
|
Talon Sliver
|
||||||
|
1 W
|
||||||
|
Creature Sliver
|
||||||
|
All sliver creatures have first strike.
|
||||||
|
1/1
|
||||||
|
|
||||||
Stormscape Apprentice
|
Stormscape Apprentice
|
||||||
U
|
U
|
||||||
Creature Human Wizard
|
Creature Human Wizard
|
||||||
|
|||||||
@@ -3282,6 +3282,9 @@ public class GameActionUtil {
|
|||||||
//***ENCHANTMENTS END HERE***
|
//***ENCHANTMENTS END HERE***
|
||||||
|
|
||||||
public static void executeLandfallEffects(Card c) {
|
public static void executeLandfallEffects(Card c) {
|
||||||
|
if (c.getKeyword().contains("Landfall - Whenever a land enters the battlefield under your control, CARDNAME gets +2/+2 until end of turn."))
|
||||||
|
landfall_Generic_P2P2_UntilEOT(c);
|
||||||
|
|
||||||
if(c.getName().equals("Rampaging Baloths")) landfall_Rampaging_Baloths(c);
|
if(c.getName().equals("Rampaging Baloths")) landfall_Rampaging_Baloths(c);
|
||||||
else if(c.getName().equals("Emeria Angel")) landfall_Emeria_Angel(c);
|
else if(c.getName().equals("Emeria Angel")) landfall_Emeria_Angel(c);
|
||||||
else if(c.getName().equals("Ob Nixilis, the Fallen")) landfall_Ob_Nixilis(c);
|
else if(c.getName().equals("Ob Nixilis, the Fallen")) landfall_Ob_Nixilis(c);
|
||||||
@@ -3303,6 +3306,39 @@ public class GameActionUtil {
|
|||||||
else return true;
|
else return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static void landfall_Generic_P2P2_UntilEOT(Card c)
|
||||||
|
{
|
||||||
|
final Card crd = c;
|
||||||
|
Ability ability = new Ability(c, "0")
|
||||||
|
{
|
||||||
|
@Override
|
||||||
|
public void resolve()
|
||||||
|
{
|
||||||
|
final Command untilEOT = new Command() {
|
||||||
|
private static final long serialVersionUID = 8919719388859986796L;
|
||||||
|
|
||||||
|
public void execute() {
|
||||||
|
if(AllZone.GameAction.isCardInPlay(crd)) {
|
||||||
|
crd.addTempAttackBoost(-2);
|
||||||
|
crd.addTempDefenseBoost(-2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
crd.addTempAttackBoost(2);
|
||||||
|
crd.addTempDefenseBoost(2);
|
||||||
|
|
||||||
|
AllZone.EndOfTurn.addUntil(untilEOT);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
ability.setStackDescription(c + " - Landfall: gets +2/+2 until EOT.");
|
||||||
|
|
||||||
|
if(c.getController().equals(Constant.Player.Human)) {
|
||||||
|
if(showLandfallDialog(c)) AllZone.Stack.add(ability);
|
||||||
|
}
|
||||||
|
|
||||||
|
else if(c.getController().equals(Constant.Player.Computer)) AllZone.Stack.add(ability);
|
||||||
|
}
|
||||||
|
|
||||||
private static void landfall_Rampaging_Baloths(Card c) {
|
private static void landfall_Rampaging_Baloths(Card c) {
|
||||||
final Card crd = c;
|
final Card crd = c;
|
||||||
Ability ability = new Ability(c, "0") {
|
Ability ability = new Ability(c, "0") {
|
||||||
@@ -8362,6 +8398,41 @@ public class GameActionUtil {
|
|||||||
}// execute()
|
}// execute()
|
||||||
};
|
};
|
||||||
|
|
||||||
|
public static Command Talon_Sliver = new Command() {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = -7392607614574103064L;
|
||||||
|
CardList gloriousAnthemList = new CardList();
|
||||||
|
|
||||||
|
public void execute() {
|
||||||
|
String keyword = "First Strike";
|
||||||
|
|
||||||
|
CardList list = gloriousAnthemList;
|
||||||
|
Card c;
|
||||||
|
// reset all cards in list - aka "old" cards
|
||||||
|
for(int i = 0; i < list.size(); i++) {
|
||||||
|
c = list.get(i);
|
||||||
|
c.removeExtrinsicKeyword(keyword);
|
||||||
|
}
|
||||||
|
|
||||||
|
list.clear();
|
||||||
|
PlayerZone[] zone = getZone("Talon Sliver");
|
||||||
|
|
||||||
|
for(int outer = 0; outer < zone.length; outer++) {
|
||||||
|
CardList creature = new CardList();
|
||||||
|
creature.addAll(AllZone.Human_Play.getCards());
|
||||||
|
creature.addAll(AllZone.Computer_Play.getCards());
|
||||||
|
creature = creature.getType("Sliver");
|
||||||
|
|
||||||
|
for(int i = 0; i < creature.size(); i++) {
|
||||||
|
c = creature.get(i);
|
||||||
|
c.addExtrinsicKeyword(keyword);
|
||||||
|
|
||||||
|
gloriousAnthemList.add(c);
|
||||||
|
}// for inner
|
||||||
|
}// for outer
|
||||||
|
}// execute()
|
||||||
|
};
|
||||||
|
|
||||||
public static Command Crystalline_Sliver = new Command() {
|
public static Command Crystalline_Sliver = new Command() {
|
||||||
|
|
||||||
private static final long serialVersionUID = 6089293045852070662L;
|
private static final long serialVersionUID = 6089293045852070662L;
|
||||||
@@ -14539,6 +14610,7 @@ public class GameActionUtil {
|
|||||||
commands.put("Winged_Sliver", Winged_Sliver);
|
commands.put("Winged_Sliver", Winged_Sliver);
|
||||||
commands.put("Synchronous_Sliver", Synchronous_Sliver);
|
commands.put("Synchronous_Sliver", Synchronous_Sliver);
|
||||||
commands.put("Fury_Sliver", Fury_Sliver);
|
commands.put("Fury_Sliver", Fury_Sliver);
|
||||||
|
commands.put("Talon_Sliver", Talon_Sliver);
|
||||||
commands.put("Plated_Sliver", Plated_Sliver);
|
commands.put("Plated_Sliver", Plated_Sliver);
|
||||||
commands.put("Crystalline_Sliver", Crystalline_Sliver);
|
commands.put("Crystalline_Sliver", Crystalline_Sliver);
|
||||||
commands.put("Virulent_Sliver", Virulent_Sliver);
|
commands.put("Virulent_Sliver", Virulent_Sliver);
|
||||||
|
|||||||
@@ -67,7 +67,8 @@ public class PlayerZone_ComesIntoPlay extends DefaultPlayerZone {
|
|||||||
|
|
||||||
list = list.filter(new CardListFilter() {
|
list = list.filter(new CardListFilter() {
|
||||||
public boolean addCard(Card c) {
|
public boolean addCard(Card c) {
|
||||||
return c.getKeyword().contains("Landfall");
|
return c.getKeyword().contains("Landfall") ||
|
||||||
|
c.getKeyword().contains("Landfall - Whenever a land enters the battlefield under your control, CARDNAME gets +2/+2 until end of turn.");
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -156,6 +156,7 @@ public class StaticEffects
|
|||||||
cardToEffectsList.put("Winged Sliver", new String[] {"Winged_Sliver"});
|
cardToEffectsList.put("Winged Sliver", new String[] {"Winged_Sliver"});
|
||||||
cardToEffectsList.put("Synchronous Sliver", new String[] {"Synchronous_Sliver"});
|
cardToEffectsList.put("Synchronous Sliver", new String[] {"Synchronous_Sliver"});
|
||||||
cardToEffectsList.put("Fury Sliver", new String[] {"Fury_Sliver"});
|
cardToEffectsList.put("Fury Sliver", new String[] {"Fury_Sliver"});
|
||||||
|
cardToEffectsList.put("Talon Sliver", new String[] {"Talon_Sliver"});
|
||||||
cardToEffectsList.put("Plated Sliver", new String[] {"Plated_Sliver"});
|
cardToEffectsList.put("Plated Sliver", new String[] {"Plated_Sliver"});
|
||||||
cardToEffectsList.put("Virulent Sliver", new String[] {"Virulent_Sliver"});
|
cardToEffectsList.put("Virulent Sliver", new String[] {"Virulent_Sliver"});
|
||||||
cardToEffectsList.put("Sidewinder Sliver", new String[] {"Sidewinder_Sliver"});
|
cardToEffectsList.put("Sidewinder Sliver", new String[] {"Sidewinder_Sliver"});
|
||||||
|
|||||||
Reference in New Issue
Block a user