mirror of
https://github.com/correl/mage.git
synced 2024-12-26 03:00:11 +00:00
Implemented Lavabrink Venturer
This commit is contained in:
parent
87b316aa65
commit
199fc37c32
2 changed files with 98 additions and 0 deletions
97
Mage.Sets/src/mage/cards/l/LavabrinkVenturer.java
Normal file
97
Mage.Sets/src/mage/cards/l/LavabrinkVenturer.java
Normal file
|
@ -0,0 +1,97 @@
|
||||||
|
package mage.cards.l;
|
||||||
|
|
||||||
|
import mage.MageInt;
|
||||||
|
import mage.abilities.Ability;
|
||||||
|
import mage.abilities.common.AsEntersBattlefieldAbility;
|
||||||
|
import mage.abilities.common.SimpleStaticAbility;
|
||||||
|
import mage.abilities.effects.common.ChooseModeEffect;
|
||||||
|
import mage.abilities.effects.common.continuous.GainAbilitySourceEffect;
|
||||||
|
import mage.abilities.keyword.ProtectionAbility;
|
||||||
|
import mage.cards.CardImpl;
|
||||||
|
import mage.cards.CardSetInfo;
|
||||||
|
import mage.constants.CardType;
|
||||||
|
import mage.constants.DependencyType;
|
||||||
|
import mage.constants.SubType;
|
||||||
|
import mage.filter.FilterObject;
|
||||||
|
import mage.filter.predicate.mageobject.ConvertedManaCostParityPredicate;
|
||||||
|
import mage.game.Game;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author TheElk801
|
||||||
|
*/
|
||||||
|
public final class LavabrinkVenturer extends CardImpl {
|
||||||
|
|
||||||
|
public LavabrinkVenturer(UUID ownerId, CardSetInfo setInfo) {
|
||||||
|
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{W}");
|
||||||
|
|
||||||
|
this.subtype.add(SubType.HUMAN);
|
||||||
|
this.subtype.add(SubType.SOLDIER);
|
||||||
|
this.power = new MageInt(3);
|
||||||
|
this.toughness = new MageInt(3);
|
||||||
|
|
||||||
|
// As Lavabrink Venturer enters the battlefield, choose odd or even.
|
||||||
|
this.addAbility(new AsEntersBattlefieldAbility(
|
||||||
|
new ChooseModeEffect("Odd or even?", "Odd", "Even")
|
||||||
|
));
|
||||||
|
|
||||||
|
// Lavabrink Venturer has protection from each converted mana cost of the chosen value.
|
||||||
|
this.addAbility(new SimpleStaticAbility(new LavabrinkVenturerEffect()));
|
||||||
|
}
|
||||||
|
|
||||||
|
private LavabrinkVenturer(final LavabrinkVenturer card) {
|
||||||
|
super(card);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public LavabrinkVenturer copy() {
|
||||||
|
return new LavabrinkVenturer(this);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class LavabrinkVenturerEffect extends GainAbilitySourceEffect {
|
||||||
|
|
||||||
|
private static final FilterObject oddFilter = new FilterObject("odd converted mana costs");
|
||||||
|
private static final FilterObject evenFilter = new FilterObject("even converted mana costs");
|
||||||
|
|
||||||
|
static {
|
||||||
|
oddFilter.add(ConvertedManaCostParityPredicate.ODD);
|
||||||
|
evenFilter.add(ConvertedManaCostParityPredicate.EVEN);
|
||||||
|
}
|
||||||
|
|
||||||
|
LavabrinkVenturerEffect() {
|
||||||
|
super((Ability) null);
|
||||||
|
this.addDependedToType(DependencyType.AddingAbility);
|
||||||
|
staticText = "{this} has protection from each converted mana cost of the chosen value.";
|
||||||
|
}
|
||||||
|
|
||||||
|
private LavabrinkVenturerEffect(final LavabrinkVenturerEffect effect) {
|
||||||
|
super(effect);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean apply(Game game, Ability source) {
|
||||||
|
String choosenMode = (String) game.getState().getValue(source.getSourceId() + "_modeChoice");
|
||||||
|
if (choosenMode == null) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
Ability ability;
|
||||||
|
switch (choosenMode) {
|
||||||
|
case "Odd":
|
||||||
|
this.ability = new ProtectionAbility(oddFilter);
|
||||||
|
break;
|
||||||
|
case "Even":
|
||||||
|
this.ability = new ProtectionAbility(evenFilter);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return super.apply(game, source);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public LavabrinkVenturerEffect copy() {
|
||||||
|
return new LavabrinkVenturerEffect(this);
|
||||||
|
}
|
||||||
|
}
|
|
@ -189,6 +189,7 @@ public final class IkoriaLairOfBehemoths extends ExpansionSet {
|
||||||
cards.add(new SetCardInfo("Kogla, the Titan Ape", 162, Rarity.RARE, mage.cards.k.KoglaTheTitanApe.class));
|
cards.add(new SetCardInfo("Kogla, the Titan Ape", 162, Rarity.RARE, mage.cards.k.KoglaTheTitanApe.class));
|
||||||
cards.add(new SetCardInfo("Labyrinth Raptor", 193, Rarity.RARE, mage.cards.l.LabyrinthRaptor.class));
|
cards.add(new SetCardInfo("Labyrinth Raptor", 193, Rarity.RARE, mage.cards.l.LabyrinthRaptor.class));
|
||||||
cards.add(new SetCardInfo("Lava Serpent", 124, Rarity.COMMON, mage.cards.l.LavaSerpent.class));
|
cards.add(new SetCardInfo("Lava Serpent", 124, Rarity.COMMON, mage.cards.l.LavaSerpent.class));
|
||||||
|
cards.add(new SetCardInfo("Lavabrink Venturer", 19, Rarity.RARE, mage.cards.l.LavabrinkVenturer.class));
|
||||||
cards.add(new SetCardInfo("Lead the Stampede", 163, Rarity.UNCOMMON, mage.cards.l.LeadTheStampede.class));
|
cards.add(new SetCardInfo("Lead the Stampede", 163, Rarity.UNCOMMON, mage.cards.l.LeadTheStampede.class));
|
||||||
cards.add(new SetCardInfo("Light of Hope", 20, Rarity.COMMON, mage.cards.l.LightOfHope.class));
|
cards.add(new SetCardInfo("Light of Hope", 20, Rarity.COMMON, mage.cards.l.LightOfHope.class));
|
||||||
cards.add(new SetCardInfo("Lore Drakkis", 194, Rarity.UNCOMMON, mage.cards.l.LoreDrakkis.class));
|
cards.add(new SetCardInfo("Lore Drakkis", 194, Rarity.UNCOMMON, mage.cards.l.LoreDrakkis.class));
|
||||||
|
|
Loading…
Reference in a new issue