mirror of
https://github.com/correl/mage.git
synced 2024-12-25 03:00:15 +00:00
Implemented Goblin Gathering
This commit is contained in:
parent
45abeda752
commit
de9cb3be75
2 changed files with 79 additions and 0 deletions
78
Mage.Sets/src/mage/cards/g/GoblinGathering.java
Normal file
78
Mage.Sets/src/mage/cards/g/GoblinGathering.java
Normal file
|
@ -0,0 +1,78 @@
|
|||
package mage.cards.g;
|
||||
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.dynamicvalue.DynamicValue;
|
||||
import mage.abilities.effects.Effect;
|
||||
import mage.abilities.effects.common.CreateTokenEffect;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.filter.FilterCard;
|
||||
import mage.filter.predicate.mageobject.NamePredicate;
|
||||
import mage.game.Game;
|
||||
import mage.game.permanent.token.GoblinToken;
|
||||
import mage.players.Player;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
* @author TheElk801
|
||||
*/
|
||||
public final class GoblinGathering extends CardImpl {
|
||||
|
||||
public GoblinGathering(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{2}{R}");
|
||||
|
||||
// Create a number of 1/1 red Goblin creature tokens equal to two plus the number of cards named Goblin Gathering in your graveyard.
|
||||
this.getSpellAbility().addEffect(new CreateTokenEffect(
|
||||
new GoblinToken(), GoblinGatheringDynamicValue.instance
|
||||
));
|
||||
}
|
||||
|
||||
private GoblinGathering(final GoblinGathering card) {
|
||||
super(card);
|
||||
}
|
||||
|
||||
@Override
|
||||
public GoblinGathering copy() {
|
||||
return new GoblinGathering(this);
|
||||
}
|
||||
}
|
||||
|
||||
enum GoblinGatheringDynamicValue implements DynamicValue {
|
||||
|
||||
instance;
|
||||
private static final FilterCard filter = new FilterCard();
|
||||
|
||||
static {
|
||||
filter.add(new NamePredicate("Goblin Gathering"));
|
||||
}
|
||||
|
||||
@Override
|
||||
public int calculate(Game game, Ability sourceAbility, Effect effect) {
|
||||
int amount = 0;
|
||||
Player player = game.getPlayer(sourceAbility.getControllerId());
|
||||
if (player != null) {
|
||||
amount += player.getGraveyard().count(
|
||||
filter, sourceAbility.getSourceId(),
|
||||
sourceAbility.getControllerId(), game
|
||||
);
|
||||
}
|
||||
return amount + 2;
|
||||
}
|
||||
|
||||
@Override
|
||||
public GoblinGatheringDynamicValue copy() {
|
||||
return instance;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "1";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getMessage() {
|
||||
return "two plus the number of cards named Goblin Gathering in your graveyard";
|
||||
}
|
||||
}
|
|
@ -128,6 +128,7 @@ public final class RavnicaAllegiance extends ExpansionSet {
|
|||
cards.add(new SetCardInfo("Ghor-Clan Wrecker", 103, Rarity.COMMON, mage.cards.g.GhorClanWrecker.class));
|
||||
cards.add(new SetCardInfo("Gift of Strength", 127, Rarity.COMMON, mage.cards.g.GiftOfStrength.class));
|
||||
cards.add(new SetCardInfo("Glass of the Guildpact", 233, Rarity.RARE, mage.cards.g.GlassOfTheGuildpact.class));
|
||||
cards.add(new SetCardInfo("Goblin Gathering", 104, Rarity.COMMON, mage.cards.g.GoblinGathering.class));
|
||||
cards.add(new SetCardInfo("Godless Shrine", 248, Rarity.RARE, mage.cards.g.GodlessShrine.class));
|
||||
cards.add(new SetCardInfo("Grasping Thrull", 177, Rarity.COMMON, mage.cards.g.GraspingThrull.class));
|
||||
cards.add(new SetCardInfo("Gravel-Hide Goblin", 105, Rarity.COMMON, mage.cards.g.GravelHideGoblin.class));
|
||||
|
|
Loading…
Reference in a new issue