mirror of
https://github.com/correl/mage.git
synced 2024-11-15 03:00:16 +00:00
[LTC] Implement Sam, Loyal Attendant
This commit is contained in:
parent
1fab54772f
commit
8a67df77b2
2 changed files with 90 additions and 0 deletions
89
Mage.Sets/src/mage/cards/s/SamLoyalAttendant.java
Normal file
89
Mage.Sets/src/mage/cards/s/SamLoyalAttendant.java
Normal file
|
@ -0,0 +1,89 @@
|
||||||
|
package mage.cards.s;
|
||||||
|
|
||||||
|
import mage.MageInt;
|
||||||
|
import mage.abilities.Ability;
|
||||||
|
import mage.abilities.ActivatedAbility;
|
||||||
|
import mage.abilities.common.BeginningOfCombatTriggeredAbility;
|
||||||
|
import mage.abilities.common.SimpleStaticAbility;
|
||||||
|
import mage.abilities.effects.common.CreateTokenEffect;
|
||||||
|
import mage.abilities.effects.common.cost.CostModificationEffectImpl;
|
||||||
|
import mage.abilities.keyword.PartnerWithAbility;
|
||||||
|
import mage.cards.CardImpl;
|
||||||
|
import mage.cards.CardSetInfo;
|
||||||
|
import mage.constants.*;
|
||||||
|
import mage.game.Game;
|
||||||
|
import mage.game.permanent.Permanent;
|
||||||
|
import mage.game.permanent.token.FoodToken;
|
||||||
|
import mage.util.CardUtil;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author TheElk801
|
||||||
|
*/
|
||||||
|
public final class SamLoyalAttendant extends CardImpl {
|
||||||
|
|
||||||
|
public SamLoyalAttendant(UUID ownerId, CardSetInfo setInfo) {
|
||||||
|
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{G}{W}");
|
||||||
|
|
||||||
|
this.addSuperType(SuperType.LEGENDARY);
|
||||||
|
this.subtype.add(SubType.HALFLING);
|
||||||
|
this.subtype.add(SubType.PEASANT);
|
||||||
|
this.power = new MageInt(2);
|
||||||
|
this.toughness = new MageInt(4);
|
||||||
|
|
||||||
|
// Partner with Frodo, Adventurous Hobbit
|
||||||
|
this.addAbility(new PartnerWithAbility("Frodo, Adventurous Hobbit"));
|
||||||
|
|
||||||
|
// At the beginning of combat on your turn, create a Food token.
|
||||||
|
this.addAbility(new BeginningOfCombatTriggeredAbility(
|
||||||
|
new CreateTokenEffect(new FoodToken()), TargetController.YOU, false
|
||||||
|
));
|
||||||
|
|
||||||
|
// Activated abilities of Foods you control cost {1} less to activate.
|
||||||
|
this.addAbility(new SimpleStaticAbility(new SamLoyalAttendantEffect()));
|
||||||
|
}
|
||||||
|
|
||||||
|
private SamLoyalAttendant(final SamLoyalAttendant card) {
|
||||||
|
super(card);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public SamLoyalAttendant copy() {
|
||||||
|
return new SamLoyalAttendant(this);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class SamLoyalAttendantEffect extends CostModificationEffectImpl {
|
||||||
|
|
||||||
|
SamLoyalAttendantEffect() {
|
||||||
|
super(Duration.WhileOnBattlefield, Outcome.Benefit, CostModificationType.REDUCE_COST);
|
||||||
|
staticText = "activated abilities of Foods you control cost {1} less to activate";
|
||||||
|
}
|
||||||
|
|
||||||
|
private SamLoyalAttendantEffect(SamLoyalAttendantEffect effect) {
|
||||||
|
super(effect);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public SamLoyalAttendantEffect copy() {
|
||||||
|
return new SamLoyalAttendantEffect(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean apply(Game game, Ability source, Ability abilityToModify) {
|
||||||
|
CardUtil.reduceCost(abilityToModify, 1);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean applies(Ability abilityToModify, Ability source, Game game) {
|
||||||
|
if (!(abilityToModify instanceof ActivatedAbility)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
Permanent permanent = abilityToModify.getSourcePermanentIfItStillExists(game);
|
||||||
|
return permanent != null
|
||||||
|
&& permanent.isControlledBy(source.getControllerId())
|
||||||
|
&& permanent.hasSubtype(SubType.FOOD, game);
|
||||||
|
}
|
||||||
|
}
|
|
@ -17,6 +17,7 @@ public final class TalesOfMiddleEarthCommander extends ExpansionSet {
|
||||||
this.hasBasicLands = false;
|
this.hasBasicLands = false;
|
||||||
|
|
||||||
cards.add(new SetCardInfo("Ensnaring Bridge", 350, Rarity.MYTHIC, mage.cards.e.EnsnaringBridge.class));
|
cards.add(new SetCardInfo("Ensnaring Bridge", 350, Rarity.MYTHIC, mage.cards.e.EnsnaringBridge.class));
|
||||||
|
cards.add(new SetCardInfo("Sam, Loyal Attendant", 7, Rarity.MYTHIC, mage.cards.s.SamLoyalAttendant.class));
|
||||||
cards.add(new SetCardInfo("Sol Ring", 284, Rarity.UNCOMMON, mage.cards.s.SolRing.class));
|
cards.add(new SetCardInfo("Sol Ring", 284, Rarity.UNCOMMON, mage.cards.s.SolRing.class));
|
||||||
cards.add(new SetCardInfo("The Great Henge", 348, Rarity.MYTHIC, mage.cards.t.TheGreatHenge.class));
|
cards.add(new SetCardInfo("The Great Henge", 348, Rarity.MYTHIC, mage.cards.t.TheGreatHenge.class));
|
||||||
cards.add(new SetCardInfo("Wasteland", 376, Rarity.MYTHIC, mage.cards.w.Wasteland.class));
|
cards.add(new SetCardInfo("Wasteland", 376, Rarity.MYTHIC, mage.cards.w.Wasteland.class));
|
||||||
|
|
Loading…
Reference in a new issue