mirror of
https://github.com/magefree/mage.git
synced 2026-01-26 21:29:17 -08:00
[LTC] Implement Crown of Gondor (#10722)
This commit is contained in:
parent
d61e454e77
commit
61a6657127
6 changed files with 84 additions and 4 deletions
79
Mage.Sets/src/mage/cards/c/CrownOfGondor.java
Normal file
79
Mage.Sets/src/mage/cards/c/CrownOfGondor.java
Normal file
|
|
@ -0,0 +1,79 @@
|
|||
package mage.cards.c;
|
||||
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.EntersBattlefieldControlledTriggeredAbility;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.condition.common.MonarchIsNotSetCondition;
|
||||
import mage.abilities.condition.common.MonarchIsSourceControllerCondition;
|
||||
import mage.abilities.costs.CostAdjuster;
|
||||
import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility;
|
||||
import mage.abilities.dynamicvalue.DynamicValue;
|
||||
import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount;
|
||||
import mage.abilities.effects.common.BecomesMonarchSourceEffect;
|
||||
import mage.abilities.effects.common.continuous.BoostEquippedEffect;
|
||||
import mage.abilities.keyword.EquipAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.SuperType;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.game.Game;
|
||||
import mage.util.CardUtil;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
* @author Susucr
|
||||
*/
|
||||
public final class CrownOfGondor extends CardImpl {
|
||||
|
||||
private final static DynamicValue xValue = new PermanentsOnBattlefieldCount(StaticFilters.FILTER_CONTROLLED_CREATURE);
|
||||
|
||||
public CrownOfGondor(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{3}");
|
||||
|
||||
this.supertype.add(SuperType.LEGENDARY);
|
||||
this.subtype.add(SubType.EQUIPMENT);
|
||||
|
||||
// Equipped creature gets +1/+1 for each creature you control.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEquippedEffect(xValue, xValue)));
|
||||
|
||||
// When a legendary creature enters the battlefield under your control, if there is no monarch, you become the monarch.
|
||||
this.addAbility(new ConditionalInterveningIfTriggeredAbility(
|
||||
new EntersBattlefieldControlledTriggeredAbility(
|
||||
new BecomesMonarchSourceEffect(),
|
||||
StaticFilters.FILTER_CREATURE_LEGENDARY
|
||||
),
|
||||
MonarchIsNotSetCondition.instance,
|
||||
"When a legendary creature enters the battlefield under your control, if there is no monarch, you become the monarch."
|
||||
));
|
||||
|
||||
// Equip {4}. This ability costs {3} less to activate if you're the monarch.
|
||||
EquipAbility equip = new EquipAbility(4, false);
|
||||
equip.setCostReduceText("This ability costs {3} less to activate if you're the monarch");
|
||||
equip.setCostAdjuster(CrownOfGondorAdjuster.instance);
|
||||
this.addAbility(equip);
|
||||
}
|
||||
|
||||
private CrownOfGondor(final CrownOfGondor card) {
|
||||
super(card);
|
||||
}
|
||||
|
||||
@Override
|
||||
public CrownOfGondor copy() {
|
||||
return new CrownOfGondor(this);
|
||||
}
|
||||
}
|
||||
|
||||
enum CrownOfGondorAdjuster implements CostAdjuster {
|
||||
instance;
|
||||
|
||||
@Override
|
||||
public void adjustCosts(Ability ability, Game game) {
|
||||
if (MonarchIsSourceControllerCondition.instance.apply(game, ability)) {
|
||||
CardUtil.reduceCost(ability, 3);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -61,6 +61,7 @@ public final class TalesOfMiddleEarthCommander extends ExpansionSet {
|
|||
cards.add(new SetCardInfo("Consider", 187, Rarity.COMMON, mage.cards.c.Consider.class));
|
||||
cards.add(new SetCardInfo("Corsairs of Umbar", 19, Rarity.RARE, mage.cards.c.CorsairsOfUmbar.class));
|
||||
cards.add(new SetCardInfo("Court of Ire", 213, Rarity.RARE, mage.cards.c.CourtOfIre.class));
|
||||
cards.add(new SetCardInfo("Crown of Gondor", 75, Rarity.RARE, mage.cards.c.CrownOfGondor.class));
|
||||
cards.add(new SetCardInfo("Crumbling Necropolis", 302, Rarity.UNCOMMON, mage.cards.c.CrumblingNecropolis.class));
|
||||
cards.add(new SetCardInfo("Crypt Incursion", 198, Rarity.COMMON, mage.cards.c.CryptIncursion.class));
|
||||
cards.add(new SetCardInfo("Cultivate", 236, Rarity.COMMON, mage.cards.c.Cultivate.class));
|
||||
|
|
|
|||
|
|
@ -45,7 +45,7 @@ public class EntersBattlefieldControlledTriggeredAbility extends EntersBattlefie
|
|||
super(zone, effect, filter, optional, setTargetPointer, rule, true);
|
||||
}
|
||||
|
||||
public EntersBattlefieldControlledTriggeredAbility(final EntersBattlefieldControlledTriggeredAbility ability) {
|
||||
protected EntersBattlefieldControlledTriggeredAbility(final EntersBattlefieldControlledTriggeredAbility ability) {
|
||||
super(ability);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -45,7 +45,7 @@ public class ConditionalInterveningIfTriggeredAbility extends TriggeredAbilityIm
|
|||
this.abilityText = text;
|
||||
}
|
||||
|
||||
public ConditionalInterveningIfTriggeredAbility(final ConditionalInterveningIfTriggeredAbility triggered) {
|
||||
protected ConditionalInterveningIfTriggeredAbility(final ConditionalInterveningIfTriggeredAbility triggered) {
|
||||
super(triggered);
|
||||
this.ability = triggered.ability.copy();
|
||||
this.condition = triggered.condition;
|
||||
|
|
|
|||
|
|
@ -45,7 +45,7 @@ public class EquipAbility extends ActivatedAbilityImpl {
|
|||
this.showAbilityHint = showAbilityHint;
|
||||
}
|
||||
|
||||
public EquipAbility(final EquipAbility ability) {
|
||||
protected EquipAbility(final EquipAbility ability) {
|
||||
super(ability);
|
||||
this.costReduceText = ability.costReduceText;
|
||||
this.showAbilityHint = ability.showAbilityHint;
|
||||
|
|
|
|||
|
|
@ -438,7 +438,7 @@ class SuspendBeginningOfUpkeepInterveningIfTriggeredAbility extends ConditionalI
|
|||
|
||||
}
|
||||
|
||||
public SuspendBeginningOfUpkeepInterveningIfTriggeredAbility(final SuspendBeginningOfUpkeepInterveningIfTriggeredAbility effect) {
|
||||
private SuspendBeginningOfUpkeepInterveningIfTriggeredAbility(final SuspendBeginningOfUpkeepInterveningIfTriggeredAbility effect) {
|
||||
super(effect);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue