forked from External/mage
fixed some specific errors and text
This commit is contained in:
parent
5fe607e852
commit
1e7071e7ae
6 changed files with 47 additions and 46 deletions
|
|
@ -25,7 +25,6 @@
|
|||
* authors and should not be interpreted as representing official policies, either expressed
|
||||
* or implied, of BetaSteward_at_googlemail.com.
|
||||
*/
|
||||
|
||||
package mage.cards.a;
|
||||
|
||||
import java.io.ObjectStreamException;
|
||||
|
|
@ -37,7 +36,7 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Outcome;
|
||||
import mage.filter.common.FilterCreatureOrPlayer;
|
||||
import mage.filter.common.FilterCreaturePlayerOrPlaneswalker;
|
||||
import mage.filter.predicate.mageobject.AnotherTargetPredicate;
|
||||
import mage.game.Game;
|
||||
import mage.game.permanent.Permanent;
|
||||
|
|
@ -51,27 +50,27 @@ import mage.target.common.TargetAnyTarget;
|
|||
*/
|
||||
public class ArcTrail extends CardImpl {
|
||||
|
||||
public ArcTrail (UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{1}{R}");
|
||||
public ArcTrail(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{1}{R}");
|
||||
|
||||
// Arc Trail deals 2 damage to target creature or player and 1 damage to another target creature or player
|
||||
FilterCreatureOrPlayer filter1 = new FilterCreatureOrPlayer("creature or player to deal 2 damage");
|
||||
FilterCreaturePlayerOrPlaneswalker filter1 = new FilterCreaturePlayerOrPlaneswalker("creature, player or planeswalker to deal 2 damage");
|
||||
TargetAnyTarget target1 = new TargetAnyTarget(1, 1, filter1);
|
||||
target1.setTargetTag(1);
|
||||
this.getSpellAbility().addTarget(target1);
|
||||
|
||||
FilterCreatureOrPlayer filter2 = new FilterCreatureOrPlayer("another creature or player to deal 1 damage");
|
||||
|
||||
FilterCreaturePlayerOrPlaneswalker filter2 = new FilterCreaturePlayerOrPlaneswalker("another creature, player or planeswalker to deal 1 damage");
|
||||
AnotherTargetPredicate predicate = new AnotherTargetPredicate(2);
|
||||
filter2.getCreatureFilter().add(predicate);
|
||||
filter2.getPlayerFilter().add(predicate);
|
||||
TargetAnyTarget target2 = new TargetAnyTarget(1, 1, filter2);
|
||||
target2.setTargetTag(2);
|
||||
this.getSpellAbility().addTarget(target2);
|
||||
|
||||
|
||||
this.getSpellAbility().addEffect(ArcTrailEffect.getInstance());
|
||||
}
|
||||
|
||||
public ArcTrail (final ArcTrail card) {
|
||||
public ArcTrail(final ArcTrail card) {
|
||||
super(card);
|
||||
}
|
||||
|
||||
|
|
@ -84,7 +83,7 @@ public class ArcTrail extends CardImpl {
|
|||
|
||||
class ArcTrailEffect extends OneShotEffect {
|
||||
|
||||
private static final ArcTrailEffect instance = new ArcTrailEffect();
|
||||
private static final ArcTrailEffect instance = new ArcTrailEffect();
|
||||
|
||||
private Object readResolve() throws ObjectStreamException {
|
||||
return instance;
|
||||
|
|
@ -94,9 +93,9 @@ class ArcTrailEffect extends OneShotEffect {
|
|||
return instance;
|
||||
}
|
||||
|
||||
private ArcTrailEffect ( ) {
|
||||
private ArcTrailEffect() {
|
||||
super(Outcome.Damage);
|
||||
staticText = "{source} deals 2 damage to target creature or player and 1 damage to another target creature or player";
|
||||
staticText = "{source} deals 2 damage to any target and 1 damage to another target";
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -106,19 +105,19 @@ class ArcTrailEffect extends OneShotEffect {
|
|||
boolean twoDamageDone = false;
|
||||
int damage = 2;
|
||||
|
||||
for ( Target target : source.getTargets() ) {
|
||||
for (Target target : source.getTargets()) {
|
||||
Permanent permanent = game.getPermanent(target.getFirstTarget());
|
||||
|
||||
if ( twoDamageDone ) {
|
||||
if (twoDamageDone) {
|
||||
damage = 1;
|
||||
}
|
||||
|
||||
if (permanent != null) {
|
||||
applied |= (permanent.damage( damage, source.getSourceId(), game, false, true ) > 0);
|
||||
applied |= (permanent.damage(damage, source.getSourceId(), game, false, true) > 0);
|
||||
}
|
||||
Player player = game.getPlayer(target.getFirstTarget());
|
||||
if (player != null) {
|
||||
applied |= (player.damage( damage, source.getSourceId(), game, false, true ) > 0);
|
||||
applied |= (player.damage(damage, source.getSourceId(), game, false, true) > 0);
|
||||
}
|
||||
|
||||
twoDamageDone = true;
|
||||
|
|
|
|||
|
|
@ -44,8 +44,8 @@ import mage.constants.Duration;
|
|||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.FilterPermanent;
|
||||
import mage.filter.common.FilterCreatureOrPlayer;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.filter.common.FilterCreaturePlayerOrPlaneswalker;
|
||||
import mage.target.common.TargetAnyTarget;
|
||||
|
||||
/**
|
||||
|
|
@ -57,7 +57,7 @@ public class CauterySliver extends CardImpl {
|
|||
private static final FilterPermanent filter = new FilterPermanent(SubType.SLIVER, "All Slivers");
|
||||
|
||||
public CauterySliver(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{R}{W}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{R}{W}");
|
||||
this.subtype.add(SubType.SLIVER);
|
||||
this.power = new MageInt(2);
|
||||
this.toughness = new MageInt(2);
|
||||
|
|
@ -88,16 +88,17 @@ public class CauterySliver extends CardImpl {
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
class TargetSliverCreatureOrPlayer extends TargetAnyTarget {
|
||||
public TargetSliverCreatureOrPlayer(){
|
||||
|
||||
public TargetSliverCreatureOrPlayer() {
|
||||
super();
|
||||
filter = new FilterCreatureOrPlayerByType("Sliver", "Sliver creature or player");
|
||||
}
|
||||
}
|
||||
|
||||
class FilterCreatureOrPlayerByType extends FilterCreatureOrPlayer {
|
||||
public FilterCreatureOrPlayerByType (String type, String name) {
|
||||
class FilterCreatureOrPlayerByType extends FilterCreaturePlayerOrPlaneswalker {
|
||||
|
||||
public FilterCreatureOrPlayerByType(String type, String name) {
|
||||
super(name);
|
||||
creatureFilter = new FilterCreaturePermanent(type);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Outcome;
|
||||
import mage.filter.common.FilterCreatureOrPlayer;
|
||||
import mage.filter.common.FilterCreaturePlayerOrPlaneswalker;
|
||||
import mage.filter.predicate.mageobject.AnotherTargetPredicate;
|
||||
import mage.game.Game;
|
||||
import mage.game.permanent.Permanent;
|
||||
|
|
@ -49,31 +49,30 @@ import mage.target.common.TargetAnyTarget;
|
|||
public class ConeOfFlame extends CardImpl {
|
||||
|
||||
public ConeOfFlame(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{3}{R}{R}");
|
||||
|
||||
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{3}{R}{R}");
|
||||
|
||||
// Cone of Flame deals 1 damage to target creature or player, 2 damage to another target creature or player, and 3 damage to a third target creature or player.
|
||||
FilterCreatureOrPlayer filter1 = new FilterCreatureOrPlayer("creature or player to deal 1 damage");
|
||||
FilterCreaturePlayerOrPlaneswalker filter1 = new FilterCreaturePlayerOrPlaneswalker("creature, player or planeswalker to deal 1 damage");
|
||||
TargetAnyTarget target1 = new TargetAnyTarget(1, 1, filter1);
|
||||
target1.setTargetTag(1);
|
||||
this.getSpellAbility().addTarget(target1);
|
||||
|
||||
FilterCreatureOrPlayer filter2 = new FilterCreatureOrPlayer("another creature or player to deal 2 damage");
|
||||
|
||||
FilterCreaturePlayerOrPlaneswalker filter2 = new FilterCreaturePlayerOrPlaneswalker("another creature, player or planeswalker to deal 2 damage");
|
||||
AnotherTargetPredicate predicate2 = new AnotherTargetPredicate(2);
|
||||
filter2.getCreatureFilter().add(predicate2);
|
||||
filter2.getPlayerFilter().add(predicate2);
|
||||
TargetAnyTarget target2 = new TargetAnyTarget(1, 1, filter2);
|
||||
target2.setTargetTag(2);
|
||||
this.getSpellAbility().addTarget(target2);
|
||||
|
||||
FilterCreatureOrPlayer filter3 = new FilterCreatureOrPlayer("another creature or player to deal 3 damage");
|
||||
|
||||
FilterCreaturePlayerOrPlaneswalker filter3 = new FilterCreaturePlayerOrPlaneswalker("another creature, player or planeswalker to deal 3 damage");
|
||||
AnotherTargetPredicate predicate3 = new AnotherTargetPredicate(3);
|
||||
filter3.getCreatureFilter().add(predicate3);
|
||||
filter3.getPlayerFilter().add(predicate3);
|
||||
TargetAnyTarget target3 = new TargetAnyTarget(1, 1, filter3);
|
||||
target3.setTargetTag(3);
|
||||
this.getSpellAbility().addTarget(target3);
|
||||
|
||||
|
||||
this.getSpellAbility().addEffect(new ConeOfFlameEffect());
|
||||
}
|
||||
|
||||
|
|
@ -91,9 +90,11 @@ class ConeOfFlameEffect extends OneShotEffect {
|
|||
|
||||
public ConeOfFlameEffect() {
|
||||
super(Outcome.Damage);
|
||||
this.staticText = "{source} deals 1 damage to target creature or player, 2 damage to another target creature or player, and 3 damage to a third target creature or player";
|
||||
this.staticText = "{source} deals 1 damage to any target, "
|
||||
+ "2 damage to another target, "
|
||||
+ "and 3 damage to a third target";
|
||||
}
|
||||
|
||||
|
||||
public ConeOfFlameEffect(final ConeOfFlameEffect effect) {
|
||||
super(effect);
|
||||
}
|
||||
|
|
@ -102,7 +103,7 @@ class ConeOfFlameEffect extends OneShotEffect {
|
|||
public ConeOfFlameEffect copy() {
|
||||
return new ConeOfFlameEffect(this);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean apply(Game game, Ability source) {
|
||||
boolean applied = false;
|
||||
|
|
@ -120,5 +121,5 @@ class ConeOfFlameEffect extends OneShotEffect {
|
|||
}
|
||||
return applied;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -39,7 +39,7 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.common.FilterCreatureOrPlayer;
|
||||
import mage.filter.common.FilterCreaturePlayerOrPlaneswalker;
|
||||
import mage.filter.predicate.mageobject.SubtypePredicate;
|
||||
import mage.target.common.TargetAnyTarget;
|
||||
|
||||
|
|
@ -49,14 +49,14 @@ import mage.target.common.TargetAnyTarget;
|
|||
*/
|
||||
public class ImperialGunner extends CardImpl {
|
||||
|
||||
private static final FilterCreatureOrPlayer filter = new FilterCreatureOrPlayer("target player or Starship creature");
|
||||
private static final FilterCreaturePlayerOrPlaneswalker filter = new FilterCreaturePlayerOrPlaneswalker("target player, planeswalker or Starship creature");
|
||||
|
||||
static {
|
||||
filter.getCreatureFilter().add(new SubtypePredicate(SubType.STARSHIP));
|
||||
}
|
||||
|
||||
public ImperialGunner(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{R}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{R}");
|
||||
this.subtype.add(SubType.HUMAN);
|
||||
this.subtype.add(SubType.SOLDIER);
|
||||
this.power = new MageInt(1);
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@ import mage.abilities.effects.common.DrawCardSourceControllerEffect;
|
|||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.filter.common.FilterCreatureOrPlayer;
|
||||
import mage.filter.common.FilterCreaturePlayerOrPlaneswalker;
|
||||
import mage.filter.predicate.Predicate;
|
||||
import mage.game.Game;
|
||||
import mage.players.Player;
|
||||
|
|
@ -49,19 +49,20 @@ import mage.watchers.common.DamageDoneWatcher;
|
|||
*/
|
||||
public class NeedleDrop extends CardImpl {
|
||||
|
||||
private static final FilterCreatureOrPlayer FILTER = new FilterCreatureOrPlayer();
|
||||
private static final FilterCreaturePlayerOrPlaneswalker FILTER = new FilterCreaturePlayerOrPlaneswalker();
|
||||
|
||||
static {
|
||||
FILTER.getCreatureFilter().add(new DamagedThisTurnPredicate());
|
||||
FILTER.getPlaneswalkerFilter().add(new DamagedThisTurnPredicate());
|
||||
FILTER.getPlayerFilter().add(new DamagedThisTurnPredicate());
|
||||
}
|
||||
|
||||
public NeedleDrop(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{R}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{R}");
|
||||
|
||||
// Needle Drop deals 1 damage to target creature or player that was dealt damage this turn.
|
||||
Effect effect = new DamageTargetEffect(1);
|
||||
effect.setText("{this} deals 1 damage to target creature or player that was dealt damage this turn");
|
||||
effect.setText("{this} deals 1 damage to any target that was dealt damage this turn");
|
||||
this.getSpellAbility().addEffect(effect);
|
||||
this.getSpellAbility().addTarget(new TargetAnyTarget(1, 1, FILTER));
|
||||
|
||||
|
|
@ -73,7 +74,6 @@ public class NeedleDrop extends CardImpl {
|
|||
super(card);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public NeedleDrop copy() {
|
||||
return new NeedleDrop(this);
|
||||
|
|
|
|||
|
|
@ -47,7 +47,7 @@ import mage.filter.predicate.Predicates;
|
|||
import mage.filter.predicate.mageobject.CardTypePredicate;
|
||||
import mage.filter.predicate.mageobject.SubtypePredicate;
|
||||
import mage.game.permanent.token.TIEFighterToken;
|
||||
import mage.target.common.TargetAnyTarget;
|
||||
import mage.target.common.TargetCreatureOrPlayer;
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
|
||||
/**
|
||||
|
|
@ -65,7 +65,7 @@ public class StarDestroyer extends CardImpl {
|
|||
}
|
||||
|
||||
public StarDestroyer(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT,CardType.CREATURE},"{4}{U}{B}{R}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT, CardType.CREATURE}, "{4}{U}{B}{R}");
|
||||
this.subtype.add(SubType.STARSHIP);
|
||||
this.power = new MageInt(6);
|
||||
this.toughness = new MageInt(6);
|
||||
|
|
@ -83,7 +83,7 @@ public class StarDestroyer extends CardImpl {
|
|||
|
||||
// {2}{R}: Star Destroyer deals 2 damge to target non-Starship creature or player.
|
||||
ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(2), new ManaCostsImpl("{2}{R}"));
|
||||
ability.addTarget(new TargetAnyTarget(filter3));
|
||||
ability.addTarget(new TargetCreatureOrPlayer(filter3));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue