mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-19 12:18:00 +00:00
- Added Nekrataal and Bone Shredder
This commit is contained in:
@@ -38,6 +38,8 @@ snow_covered_mountain.jpg http://www.wizards.com/global/images/magic/gene
|
||||
snow_covered_mountain1.jpg http://www.wizards.com/global/images/magic/general/snow_covered_mountain.jpg
|
||||
snow_covered_mountain2.jpg http://www.magickartenmarkt.de/img/cards/Ice_Age/snow_covered_mountain.jpg
|
||||
snow_covered_mountain3.jpg http://www.magickartenmarkt.de/img/cards/Ice_Age/snow_covered_mountain.jpg
|
||||
nekrataal.jpg http://www.wizards.com/global/images/magic/general/nekrataal.jpg
|
||||
bone_shredder.jpg http://www.wizards.com/global/images/magic/general/bone_shredder.jpg
|
||||
oath_of_ghouls.jpg http://www.wizards.com/global/images/magic/general/oath_of_ghouls.jpg
|
||||
darba.jpg http://www.wizards.com/global/images/magic/general/darba.jpg
|
||||
molting_harpy.jpg http://www.wizards.com/global/images/magic/general/molting_harpy.jpg
|
||||
|
||||
@@ -1,3 +1,18 @@
|
||||
Bone Shredder
|
||||
2 B
|
||||
Creature Minion
|
||||
When CARDNAME enters the battlfield, destroy target nonartifact, nonblack creature.
|
||||
1/1
|
||||
Flying
|
||||
Echo:2 B
|
||||
|
||||
Nekrataal
|
||||
2 B B
|
||||
Creature Human Assassin
|
||||
When CARDNAME enters the battlfield, destroy target nonartifact, nonblack creature. It can't be regenerated.
|
||||
2/1
|
||||
First Strike
|
||||
|
||||
Squirrel Mob
|
||||
1 G G
|
||||
Creature Squirrel
|
||||
|
||||
@@ -92,6 +92,7 @@ Boggart Ram-Gang
|
||||
Boil
|
||||
Boiling Seas
|
||||
Bonded Fetch
|
||||
Bone Shredder
|
||||
Boreal Shelf
|
||||
Boros Guildmage
|
||||
Boros Swiftblade
|
||||
@@ -535,6 +536,7 @@ Nature's Ruin
|
||||
Naya Battlemage
|
||||
Needle Storm
|
||||
Needlebug
|
||||
Nekrataal
|
||||
Nettletooth Djinn
|
||||
Night's Whisper
|
||||
Nightshade Schemers
|
||||
|
||||
@@ -3211,6 +3211,107 @@ public class CardFactory_Creatures {
|
||||
});
|
||||
}//*************** END ************ END **************************
|
||||
|
||||
//*************** START *********** START **************************
|
||||
else if(cardName.equals("Nekrataal") || cardName.equals("Bone Shredder")) {
|
||||
// add creatures that destroy nonblack nonartifact without any additional weirdness like evoke
|
||||
final String name = cardName;
|
||||
final CommandReturn getCreature = new CommandReturn() {
|
||||
//get target card, may be null
|
||||
public Object execute() {
|
||||
CardList nonblack = CardFactoryUtil.AI_getHumanCreature(card, true);
|
||||
nonblack = nonblack.filter(new CardListFilter() {
|
||||
public boolean addCard(Card c) {
|
||||
return (!c.isArtifact() && !CardUtil.getColors(c).contains(Constant.Color.Black));
|
||||
}
|
||||
});
|
||||
|
||||
CardList list = new CardList(nonblack.toArray());
|
||||
if (list.isEmpty()) // todo: if human doesn't have a valid creature must kill own valid target
|
||||
return null;
|
||||
|
||||
// Sorts: Highest Attacking Flyer at the top.
|
||||
CardListUtil.sortAttack(list);
|
||||
CardListUtil.sortFlying(list);
|
||||
|
||||
Card target = list.get(0);
|
||||
// if "Best creature has 2+ Attack and flying target that.
|
||||
if(2 <= target.getNetAttack() && target.getKeyword().contains("Flying"))
|
||||
return target;
|
||||
|
||||
if(MyRandom.percentTrue(50))
|
||||
CardListUtil.sortAttack(list);
|
||||
|
||||
return target;
|
||||
}//execute()
|
||||
};//CommandReturn
|
||||
|
||||
final SpellAbility ability = new Ability(card, "0") {
|
||||
@Override
|
||||
public void resolve() {
|
||||
Card c = getTargetCard();
|
||||
|
||||
if(AllZone.GameAction.isCardInPlay(c) && CardFactoryUtil.canTarget(card, c)
|
||||
&& !CardUtil.getColors(c).contains(Constant.Color.Black) && !c.isArtifact()) {
|
||||
if (name.equals("Nekrataal"))
|
||||
AllZone.GameAction.destroyNoRegeneration(c);
|
||||
else if (name.equals("Bone Shredder"))
|
||||
AllZone.GameAction.destroy(c);
|
||||
}
|
||||
}//resolve()
|
||||
};//SpellAbility
|
||||
Command intoPlay = new Command() {
|
||||
private static final long serialVersionUID = 8480493532270093002L;
|
||||
|
||||
public void execute() {
|
||||
Input target = new Input() {
|
||||
private static final long serialVersionUID = 913605099043649992L;
|
||||
|
||||
@Override
|
||||
public void showMessage() {
|
||||
AllZone.Display.showMessage("Select target nonartifact, nonblack creature to destroy");
|
||||
ButtonUtil.disableAll();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void selectCard(Card card, PlayerZone zone) {
|
||||
if(!CardFactoryUtil.canTarget(ability, card)) {
|
||||
AllZone.Display.showMessage("Cannot target this card (Shroud? Protection?).");
|
||||
} else if(card.isCreature() && zone.is(Constant.Zone.Play) && !card.isArtifact()
|
||||
&& !CardUtil.getColors(card).contains(Constant.Color.Black)) {
|
||||
ability.setTargetCard(card);
|
||||
AllZone.Stack.add(ability);
|
||||
stop();
|
||||
}
|
||||
}
|
||||
};//Input target
|
||||
|
||||
|
||||
if(card.getController().equals(Constant.Player.Human)) {
|
||||
//get all creatures
|
||||
CardList creatures = AllZoneUtil.getTypeInPlay("Creature");
|
||||
|
||||
creatures = creatures.filter(new CardListFilter() {
|
||||
public boolean addCard(Card c) {
|
||||
return (!c.isArtifact() && !CardUtil.getColors(c).contains(Constant.Color.Black));
|
||||
}
|
||||
});
|
||||
|
||||
if(creatures.size() != 0) AllZone.InputControl.setInput(target);
|
||||
|
||||
}
|
||||
else{ //computer
|
||||
Object o = getCreature.execute();
|
||||
if(o != null)//should never happen, but just in case
|
||||
{
|
||||
ability.setTargetCard((Card) o);
|
||||
AllZone.Stack.add(ability);
|
||||
}
|
||||
}//else
|
||||
}//execute()
|
||||
};
|
||||
card.addComesIntoPlayCommand(intoPlay);
|
||||
}//*************** END ************ END **************************
|
||||
|
||||
|
||||
//*************** START *********** START **************************
|
||||
else if(cardName.equals("Briarhorn")) {
|
||||
|
||||
Reference in New Issue
Block a user