diff --git a/Mage.Sets/src/mage/cards/b/BloodForTheBloodGod.java b/Mage.Sets/src/mage/cards/b/BloodForTheBloodGod.java new file mode 100644 index 0000000000..90b42748f6 --- /dev/null +++ b/Mage.Sets/src/mage/cards/b/BloodForTheBloodGod.java @@ -0,0 +1,49 @@ +package mage.cards.b; + +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.dynamicvalue.common.CreaturesDiedThisTurnCount; +import mage.abilities.effects.common.DamagePlayersEffect; +import mage.abilities.effects.common.DrawCardSourceControllerEffect; +import mage.abilities.effects.common.ExileSpellEffect; +import mage.abilities.effects.common.cost.SpellCostReductionSourceEffect; +import mage.abilities.effects.common.discard.DiscardHandControllerEffect; +import mage.abilities.hint.common.CreaturesDiedThisTurnHint; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.TargetController; +import mage.constants.Zone; +import mage.watchers.common.CreaturesDiedWatcher; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class BloodForTheBloodGod extends CardImpl { + + public BloodForTheBloodGod(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{8}{B}{B}{R}"); + + // This spell costs {1} less to cast for each creature that died this turn. + this.addAbility(new SimpleStaticAbility( + Zone.ALL, new SpellCostReductionSourceEffect(CreaturesDiedThisTurnCount.instance) + .setText("this spell costs {1} less to cast for each creature that died this turn") + ).addHint(CreaturesDiedThisTurnHint.instance).setRuleAtTheTop(true), new CreaturesDiedWatcher()); + + // Discard your hand, then draw eight cards. Blood for the Blood God! deals 8 damage to each opponent. Exile Blood for the Blood God!. + this.getSpellAbility().addEffect(new DiscardHandControllerEffect()); + this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(8).concatBy(", then")); + this.getSpellAbility().addEffect(new DamagePlayersEffect(8, TargetController.OPPONENT)); + this.getSpellAbility().addEffect(new ExileSpellEffect()); + } + + private BloodForTheBloodGod(final BloodForTheBloodGod card) { + super(card); + } + + @Override + public BloodForTheBloodGod copy() { + return new BloodForTheBloodGod(this); + } +} diff --git a/Mage.Sets/src/mage/sets/Warhammer40000.java b/Mage.Sets/src/mage/sets/Warhammer40000.java index c783459e15..c997363ac9 100644 --- a/Mage.Sets/src/mage/sets/Warhammer40000.java +++ b/Mage.Sets/src/mage/sets/Warhammer40000.java @@ -19,6 +19,7 @@ public final class Warhammer40000 extends ExpansionSet { super("Warhammer 40,000", "40K", ExpansionSet.buildDate(2022, 4, 29), SetType.SUPPLEMENTAL); this.hasBasicLands = false; + cards.add(new SetCardInfo("Blood for the Blood God!", 108, Rarity.COMMON, mage.cards.b.BloodForTheBloodGod.class)); cards.add(new SetCardInfo("Fabricate", 181, Rarity.RARE, mage.cards.f.Fabricate.class)); } } diff --git a/Utils/gen-card.pl b/Utils/gen-card.pl index 3aca628e2b..dd59e54bae 100755 --- a/Utils/gen-card.pl +++ b/Utils/gen-card.pl @@ -20,7 +20,7 @@ my %keywords; sub toCamelCase { my $string = $_[0]; $string =~ s/\b([\w']+)\b/ucfirst($1)/ge; - $string =~ s/[-,\s\':.]//g; + $string =~ s/[-,\s\':.!]//g; $string; }