* Deals damage to player - fixed that some cards deals combat damage instead non-combat;

This commit is contained in:
Oleg Agafonov 2020-01-14 08:53:09 +04:00
parent 846200c093
commit 76387057b7
47 changed files with 217 additions and 292 deletions

View file

@ -1,13 +1,6 @@
package mage.player.ai;
import java.io.Serializable;
import java.util.*;
import mage.abilities.Ability;
import mage.abilities.ActivatedAbility;
import mage.abilities.Mode;
import mage.abilities.Modes;
import mage.abilities.TriggeredAbility;
import mage.abilities.*;
import mage.abilities.common.PassAbility;
import mage.abilities.costs.mana.GenericManaCost;
import mage.cards.Card;
@ -26,8 +19,10 @@ import mage.target.TargetCard;
import mage.util.RandomUtil;
import org.apache.log4j.Logger;
import java.io.Serializable;
import java.util.*;
/**
*
* plays randomly
*
* @author BetaSteward_at_googlemail.com
@ -428,7 +423,7 @@ public class SimulatedPlayerMCTS extends MCTSPlayer {
} else {
Player player = game.getPlayer(targetId);
if (player != null) {
player.damage(amount, sourceId, game, false, true);
player.damage(amount, sourceId, game);
remainingDamage -= amount;
}
}

View file

@ -1,8 +1,5 @@
package mage.cards.a;
import java.util.List;
import java.util.UUID;
import mage.abilities.Ability;
import mage.abilities.effects.OneShotEffect;
import mage.cards.CardImpl;
@ -14,14 +11,16 @@ import mage.game.Game;
import mage.game.permanent.Permanent;
import mage.players.Player;
import java.util.List;
import java.util.UUID;
/**
*
* @author Backfir3
*/
public final class AcidicSoil extends CardImpl {
public AcidicSoil(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{2}{R}");
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{2}{R}");
//Acidic Soil deals damage to each player equal to the number of lands they control.
@ -62,7 +61,7 @@ class AcidicSoilEffect extends OneShotEffect {
}
}
if (amount > 0) {
player.damage(amount, source.getSourceId(), game, false, true);
player.damage(amount, source.getSourceId(), game);
}
}
}

View file

@ -1,7 +1,5 @@
package mage.cards.a;
import java.util.UUID;
import mage.abilities.Ability;
import mage.abilities.Mode;
import mage.abilities.common.BeginningOfUpkeepTriggeredAbility;
@ -16,14 +14,15 @@ import mage.filter.common.FilterControlledArtifactPermanent;
import mage.game.Game;
import mage.players.Player;
import java.util.UUID;
/**
*
* @author fireshoes
*/
public final class AncientRunes extends CardImpl {
public AncientRunes(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{2}{R}");
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{2}{R}");
// At the beginning of each player's upkeep, Ancient Runes deals damage to that player equal to the number of artifacts they control.
this.addAbility(new BeginningOfUpkeepTriggeredAbility(Zone.BATTLEFIELD, new AncientRunesDamageTargetEffect(), TargetController.ANY, false, true));
@ -39,18 +38,16 @@ public final class AncientRunes extends CardImpl {
}
}
class AncientRunesDamageTargetEffect extends OneShotEffect{
public AncientRunesDamageTargetEffect()
{
class AncientRunesDamageTargetEffect extends OneShotEffect {
public AncientRunesDamageTargetEffect() {
super(Outcome.Damage);
}
public AncientRunesDamageTargetEffect(AncientRunesDamageTargetEffect copy)
{
public AncientRunesDamageTargetEffect(AncientRunesDamageTargetEffect copy) {
super(copy);
}
@Override
public String getText(Mode mode) {
return "{this} deals damage to that player equal to the number of artifacts they control";
@ -61,7 +58,7 @@ class AncientRunesDamageTargetEffect extends OneShotEffect{
Player player = game.getPlayer(targetPointer.getFirst(game, source));
if (player != null) {
int damage = game.getBattlefield().getAllActivePermanents(new FilterControlledArtifactPermanent("artifacts"), targetPointer.getFirst(game, source), game).size();
player.damage(damage, source.getSourceId(), game, false, true);
player.damage(damage, source.getSourceId(), game);
return true;
}
return false;

View file

@ -1,8 +1,5 @@
package mage.cards.a;
import java.io.ObjectStreamException;
import java.util.UUID;
import mage.abilities.Ability;
import mage.abilities.effects.Effect;
import mage.abilities.effects.OneShotEffect;
@ -18,8 +15,10 @@ import mage.players.Player;
import mage.target.Target;
import mage.target.common.TargetAnyTarget;
import java.io.ObjectStreamException;
import java.util.UUID;
/**
*
* @author maurer.it_at_gmail.com
*/
public final class ArcTrail extends CardImpl {
@ -91,7 +90,7 @@ class ArcTrailEffect extends OneShotEffect {
}
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) > 0);
}
twoDamageDone = true;

View file

@ -1,7 +1,5 @@
package mage.cards.a;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.OnEventTriggeredAbility;
@ -21,8 +19,9 @@ import mage.game.permanent.Permanent;
import mage.players.Player;
import mage.target.common.TargetControlledPermanent;
import java.util.UUID;
/**
*
* @author anonymous
*/
public final class ArchdemonOfGreed extends CardImpl {
@ -35,7 +34,7 @@ public final class ArchdemonOfGreed extends CardImpl {
}
public ArchdemonOfGreed(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"");
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "");
this.subtype.add(SubType.DEMON);
this.color.setBlack(true);
@ -93,10 +92,9 @@ public final class ArchdemonOfGreed extends CardImpl {
// sacrifice the chosen card
return humanSacrifice.sacrifice(source.getSourceId(), game);
}
}
else {
} else {
permanent.tap(game);
player.damage(9, source.getSourceId(), game, false, true);
player.damage(9, source.getSourceId(), game);
}
}
return true;

View file

@ -1,7 +1,5 @@
package mage.cards.b;
import java.util.UUID;
import mage.abilities.Ability;
import mage.abilities.TriggeredAbilityImpl;
import mage.abilities.common.AsEntersBattlefieldAbility;
@ -17,14 +15,15 @@ import mage.game.events.GameEvent;
import mage.game.events.GameEvent.EventType;
import mage.players.Player;
import java.util.UUID;
/**
*
* @author dustinconrad
*/
public final class BlackVise extends CardImpl {
public BlackVise(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{1}");
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{1}");
// As Black Vise enters the battlefield, choose an opponent.
this.addAbility(new AsEntersBattlefieldAbility(new ChooseOpponentEffect(Outcome.Detriment)));
@ -96,7 +95,7 @@ class BlackViseEffect extends OneShotEffect {
if (chosenPlayer != null) {
int damage = chosenPlayer.getHand().size() - 4;
if (damage > 0) {
chosenPlayer.damage(damage, source.getSourceId(), game, false, true);
chosenPlayer.damage(damage, source.getSourceId(), game);
}
return true;
}

View file

@ -1,7 +1,5 @@
package mage.cards.b;
import java.util.UUID;
import mage.abilities.Ability;
import mage.abilities.effects.OneShotEffect;
import mage.cards.Card;
@ -15,8 +13,9 @@ import mage.players.Player;
import mage.target.common.TargetAnyTarget;
import mage.target.common.TargetDiscard;
import java.util.UUID;
/**
*
* @author LevelX2
*/
public final class BlastOfGenius extends CardImpl {
@ -75,7 +74,7 @@ class BlastOfGeniusEffect extends OneShotEffect {
}
Player targetPlayer = game.getPlayer(this.getTargetPointer().getFirst(game, source));
if (targetPlayer != null) {
targetPlayer.damage(damage, source.getSourceId(), game, false, true);
targetPlayer.damage(damage, source.getSourceId(), game);
return true;
}
}

View file

@ -1,7 +1,5 @@
package mage.cards.b;
import java.util.UUID;
import mage.abilities.Ability;
import mage.abilities.effects.OneShotEffect;
import mage.cards.CardImpl;
@ -13,14 +11,15 @@ import mage.game.permanent.Permanent;
import mage.players.Player;
import mage.target.common.TargetCreaturePermanent;
import java.util.UUID;
/**
*
* @author cbt33
*/
public final class BlazingSalvo extends CardImpl {
public BlazingSalvo(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{R}");
super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{R}");
// Blazing Salvo deals 3 damage to target creature unless that creature's controller has Blazing Salvo deal 5 damage to them.
this.getSpellAbility().addTarget(new TargetCreaturePermanent());
@ -61,9 +60,9 @@ class BlazingSalvoEffect extends OneShotEffect {
if (player != null) {
String message = "Have Blazing Salvo do 5 damage to you?";
if (player.chooseUse(Outcome.Damage, message, source, game)) {
player.damage(5, source.getSourceId(), game, false, true);
player.damage(5, source.getSourceId(), game);
} else {
permanent.damage(3, source.getSourceId(), game, false, true);
permanent.damage(3, source.getSourceId(), game);
}
return true;
}

View file

@ -1,4 +1,3 @@
package mage.cards.b;
import mage.abilities.Ability;
@ -9,11 +8,14 @@ import mage.abilities.costs.CostImpl;
import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.costs.mana.GenericManaCost;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.combat.CantBeBlockedByCreaturesAttachedEffect;
import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect;
import mage.abilities.keyword.EquipAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.*;
import mage.filter.common.FilterCreaturePermanent;
import mage.filter.predicate.Predicates;
import mage.game.Game;
import mage.game.permanent.Permanent;
import mage.players.Player;
@ -21,22 +23,19 @@ import mage.target.common.TargetAnyTarget;
import java.util.List;
import java.util.UUID;
import mage.abilities.effects.common.combat.CantBeBlockedByCreaturesAttachedEffect;
import mage.filter.common.FilterCreaturePermanent;
import mage.filter.predicate.Predicates;
/**
*
* @author North
*/
public final class BlazingTorch extends CardImpl {
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("Vampires or Zombies");
static {
filter.add(Predicates.or(SubType.VAMPIRE.getPredicate(),
SubType.ZOMBIE.getPredicate()));
SubType.ZOMBIE.getPredicate()));
}
public BlazingTorch(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{1}");
this.subtype.add(SubType.EQUIPMENT);
@ -45,13 +44,13 @@ public final class BlazingTorch extends CardImpl {
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD,
new CantBeBlockedByCreaturesAttachedEffect(Duration.WhileOnBattlefield, filter, AttachmentType.EQUIPMENT)));
// Equipped creature has "{tap}, Sacrifice Blazing Torch: Blazing Torch deals 2 damage to any target.")
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BlazingTorchDamageEffect(), new TapSourceCost());
ability.addCost(new BlazingTorchCost());
ability.addTarget(new TargetAnyTarget());
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAttachedEffect(ability, AttachmentType.EQUIPMENT)));
// Equip {1}
this.addAbility(new EquipAbility(Outcome.BoostCreature, new GenericManaCost(1)));
}
@ -129,7 +128,7 @@ class BlazingTorchDamageEffect extends OneShotEffect {
}
Player player = game.getPlayer(targetPointer.getFirst(game, source));
if (player != null && sourceId != null) {
player.damage(2, sourceId, game, false, true);
player.damage(2, sourceId, game);
return true;
}
return false;

View file

@ -1,7 +1,5 @@
package mage.cards.b;
import java.util.UUID;
import mage.abilities.Ability;
import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.effects.OneShotEffect;
@ -15,11 +13,11 @@ import mage.filter.common.FilterCreaturePermanent;
import mage.game.Game;
import mage.game.permanent.Permanent;
import mage.players.Player;
import mage.target.TargetPlayer;
import mage.target.common.TargetPlayerOrPlaneswalker;
import java.util.UUID;
/**
*
* @author noxx
*/
public final class BonfireOfTheDamned extends CardImpl {
@ -64,9 +62,9 @@ class BonfireOfTheDamnedEffect extends OneShotEffect {
if (player != null) {
int damage = source.getManaCostsToPay().getX();
if (damage > 0) {
player.damage(damage, source.getSourceId(), game, false, true);
player.damage(damage, source.getSourceId(), game);
for (Permanent perm : game.getBattlefield().getAllActivePermanents(filter, player.getId(), game)) {
perm.damage(damage, source.getSourceId(), game, false, true);
perm.damage(damage, source.getSourceId(), game);
}
}
return true;

View file

@ -1,7 +1,5 @@
package mage.cards.b;
import java.util.UUID;
import mage.MageObject;
import mage.abilities.Ability;
import mage.abilities.effects.OneShotEffect;
@ -14,14 +12,15 @@ import mage.game.Game;
import mage.players.Player;
import mage.target.TargetPlayer;
import java.util.UUID;
/**
*
* @author tomd1990
*/
public final class BookBurning extends CardImpl {
public BookBurning(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{1}{R}");
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{1}{R}");
// Any player may have Book Burning deal 6 damage to them. If no one does, target player puts the top six cards of their library into their graveyard.
this.getSpellAbility().addEffect(new BookBurningMillEffect());
@ -63,7 +62,7 @@ class BookBurningMillEffect extends OneShotEffect {
Player player = game.getPlayer(playerId);
if (player != null && player.chooseUse(Outcome.Detriment, "Have " + sourceObject.getLogName() + " deal 6 damage to you?", source, game)) {
millCards = false;
player.damage(6, source.getSourceId(), game, false, true);
player.damage(6, source.getSourceId(), game);
game.informPlayers(player.getLogName() + " has " + sourceObject.getLogName() + " deal 6 damage to them");
}
}

View file

@ -1,7 +1,5 @@
package mage.cards.b;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.DealtDamageToSourceTriggeredAbility;
@ -18,8 +16,9 @@ import mage.game.permanent.Permanent;
import mage.players.Player;
import mage.target.common.TargetAnyTarget;
import java.util.UUID;
/**
*
* @author LevelX2
*/
public final class BorosReckoner extends CardImpl {
@ -73,7 +72,7 @@ class BorosReckonerDealDamageEffect extends OneShotEffect {
if (amount > 0) {
Player player = game.getPlayer(targetPointer.getFirst(game, source));
if (player != null) {
player.damage(amount, source.getSourceId(), game, false, true);
player.damage(amount, source.getSourceId(), game);
return true;
}
Permanent creature = game.getPermanent(targetPointer.getFirst(game, source));

View file

@ -1,22 +1,22 @@
package mage.cards.b;
import java.util.UUID;
import mage.abilities.Ability;
import mage.abilities.effects.OneShotEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Outcome;
import static mage.filter.StaticFilters.FILTER_PERMANENT_CREATURES;
import mage.game.Game;
import mage.game.permanent.Permanent;
import mage.game.stack.Spell;
import mage.game.stack.StackObject;
import mage.players.Player;
import java.util.UUID;
import static mage.filter.StaticFilters.FILTER_PERMANENT_CREATURES;
/**
*
* @author ilcartographer
*/
public final class BreakingPoint extends CardImpl {
@ -73,7 +73,7 @@ class BreakingPointDestroyEffect extends OneShotEffect {
Player player = game.getPlayer(playerId);
if (player != null && player.chooseUse(Outcome.Detriment, "Have " + spell.getLogName() + " deal 6 damage to you?", source, game)) {
destroyCreatures = false;
player.damage(6, source.getSourceId(), game, false, true);
player.damage(6, source.getSourceId(), game);
game.informPlayers(player.getLogName() + " has " + spell.getName() + " deal 6 to them");
}
}

View file

@ -1,8 +1,5 @@
package mage.cards.b;
import java.util.UUID;
import mage.abilities.Ability;
import mage.abilities.effects.OneShotEffect;
import mage.cards.CardImpl;
@ -15,6 +12,8 @@ import mage.game.stack.StackObject;
import mage.players.Player;
import mage.target.TargetPlayer;
import java.util.UUID;
/**
* @author dustinconrad
*/
@ -72,7 +71,7 @@ class BrowbeatDrawEffect extends OneShotEffect {
Player player = game.getPlayer(playerId);
if (player != null && player.chooseUse(Outcome.Detriment, "Have " + spell.getLogName() + " deal 5 damage to you?", source, game)) {
drawCards = false;
player.damage(5, source.getSourceId(), game, false, true);
player.damage(5, source.getSourceId(), game);
game.informPlayers(player.getLogName() + " has " + spell.getLogName() + " deal 5 to them");
}
}

View file

@ -1,4 +1,3 @@
package mage.cards.b;
import mage.abilities.Ability;
@ -93,7 +92,7 @@ class BuildersBaneEffect extends OneShotEffect {
for (Map.Entry<UUID, Integer> entry : destroyedArtifactPerPlayer.entrySet()) {
Player player = game.getPlayer(entry.getKey());
if (player != null) {
player.damage(entry.getValue(), source.getSourceId(), game, false, true);
player.damage(entry.getValue(), source.getSourceId(), game);
}
}

View file

@ -1,7 +1,5 @@
package mage.cards.b;
import java.util.UUID;
import mage.abilities.Ability;
import mage.abilities.costs.common.TapVariableTargetCost;
import mage.abilities.dynamicvalue.common.GetXValue;
@ -18,8 +16,9 @@ import mage.game.permanent.Permanent;
import mage.players.Player;
import mage.target.common.TargetAnyTarget;
import java.util.UUID;
/**
*
* @author North
*/
public final class BurnAtTheStake extends CardImpl {
@ -31,7 +30,7 @@ public final class BurnAtTheStake extends CardImpl {
}
public BurnAtTheStake(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{2}{R}{R}{R}");
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{2}{R}{R}{R}");
// As an additional cost to cast Burn at the Stake, tap any number of untapped creatures you control.
@ -79,7 +78,7 @@ class BurnAtTheStakeEffect extends OneShotEffect {
Player player = game.getPlayer(targetPointer.getFirst(game, source));
if (player != null) {
player.damage(amount, source.getSourceId(), game, false, true);
player.damage(amount, source.getSourceId(), game);
return true;
}

View file

@ -1,7 +1,5 @@
package mage.cards.b;
import java.util.UUID;
import mage.MageObjectReference;
import mage.abilities.Ability;
import mage.abilities.effects.ContinuousEffect;
@ -20,8 +18,9 @@ import mage.players.Player;
import mage.target.common.TargetAnyTarget;
import mage.target.targetpointer.FixedTarget;
import java.util.UUID;
/**
*
* @author fireshoes
*/
public final class BurnFromWithin extends CardImpl {
@ -80,7 +79,7 @@ class BurnFromWithinEffect extends OneShotEffect {
}
Player targetPlayer = game.getPlayer(this.getTargetPointer().getFirst(game, source));
if (targetPlayer != null) {
targetPlayer.damage(amount, source.getSourceId(), game, false, true);
targetPlayer.damage(amount, source.getSourceId(), game);
return true;
}
}

View file

@ -1,7 +1,5 @@
package mage.cards.c;
import java.util.UUID;
import mage.abilities.Ability;
import mage.abilities.common.SagaAbility;
import mage.abilities.effects.Effects;
@ -9,20 +7,17 @@ import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.CreateTokenEffect;
import mage.abilities.effects.common.DamagePlayersEffect;
import mage.abilities.effects.common.GainLifeEffect;
import mage.constants.SubType;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Outcome;
import mage.constants.SagaChapter;
import mage.constants.TargetController;
import mage.constants.*;
import mage.game.Game;
import mage.game.permanent.Permanent;
import mage.game.permanent.token.ChainersTormentNightmareToken;
import mage.players.Player;
import java.util.UUID;
/**
*
* @author TheElk801
*/
public final class ChainersTorment extends CardImpl {
@ -84,7 +79,7 @@ class ChainersTormentEffect extends OneShotEffect {
for (UUID tokenId : effect.getLastAddedTokenIds()) {
Permanent token = game.getPermanentOrLKIBattlefield(tokenId);
if (token != null) {
player.damage(xValue, tokenId, game, false, true);
player.damage(xValue, tokenId, game);
}
}
}

View file

@ -1,7 +1,5 @@
package mage.cards.c;
import java.util.UUID;
import mage.ObjectColor;
import mage.abilities.Ability;
import mage.abilities.effects.OneShotEffect;
@ -16,20 +14,21 @@ import mage.game.Game;
import mage.players.Player;
import mage.target.TargetPlayer;
import java.util.UUID;
/**
*
* @author jeffwadsworth
*/
public final class ChaoticBacklash extends CardImpl {
public ChaoticBacklash(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{4}{R}");
super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{4}{R}");
// Chaotic Backlash deals damage to target player equal to twice the number of white and/or blue permanents they control.
this.getSpellAbility().addEffect(new ChaoticBacklashEffect());
this.getSpellAbility().addTarget(new TargetPlayer());
}
public ChaoticBacklash(final ChaoticBacklash card) {
@ -43,9 +42,9 @@ public final class ChaoticBacklash extends CardImpl {
}
class ChaoticBacklashEffect extends OneShotEffect {
private static final FilterPermanent filter = new FilterPermanent("white and/or blue permanents they control");
static {
filter.add(Predicates.or(
new ColorPredicate(ObjectColor.WHITE),
@ -71,7 +70,7 @@ class ChaoticBacklashEffect extends OneShotEffect {
Player targetPlayer = game.getPlayer(source.getFirstTarget());
if (targetPlayer != null) {
int amount = 2 * game.getBattlefield().countAll(filter, targetPlayer.getId(), game);
targetPlayer.damage(amount, source.getSourceId(), game, false, true);
targetPlayer.damage(amount, source.getSourceId(), game);
return true;
}
return false;

View file

@ -1,7 +1,5 @@
package mage.cards.c;
import java.util.UUID;
import mage.abilities.Ability;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.DestroyTargetEffect;
@ -18,25 +16,26 @@ import mage.game.permanent.Permanent;
import mage.players.Player;
import mage.target.common.TargetLandPermanent;
import java.util.UUID;
/**
*
* @author fireshoes
*/
public final class ChokingSands extends CardImpl {
private static final FilterLandPermanent filter = new FilterLandPermanent("non-Swamp land");
static {
filter.add(Predicates.not(SubType.SWAMP.getPredicate()));
}
public ChokingSands(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{1}{B}{B}");
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{1}{B}{B}");
// Destroy target non-Swamp land.
this.getSpellAbility().addEffect(new DestroyTargetEffect());
this.getSpellAbility().addTarget(new TargetLandPermanent(filter));
// If that land was nonbasic, Choking Sands deals 2 damage to the land's controller.
this.getSpellAbility().addEffect(new ChokingSandsEffect());
}
@ -73,7 +72,7 @@ class ChokingSandsEffect extends OneShotEffect {
if (permanent != null && !permanent.isBasic()) {
Player player = game.getPlayer(permanent.getControllerId());
if (player != null) {
player.damage(2, source.getSourceId(), game, false, true);
player.damage(2, source.getSourceId(), game);
return true;
}
}

View file

@ -1,7 +1,5 @@
package mage.cards.c;
import java.util.Set;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
@ -12,16 +10,18 @@ import mage.cards.Card;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.SubType;
import mage.constants.Outcome;
import mage.constants.SubType;
import mage.constants.Zone;
import mage.game.Game;
import mage.game.permanent.Permanent;
import mage.players.Player;
import mage.target.common.TargetOpponent;
import java.util.Set;
import java.util.UUID;
/**
*
* @author spjspj
*/
public final class CombustibleGearhulk extends CardImpl {
@ -117,7 +117,7 @@ class CombustibleGearhulkMillAndDamageEffect extends OneShotEffect {
controller.moveCards(cardList, Zone.GRAVEYARD, source, game);
Player targetPlayer = game.getPlayer(targetPointer.getFirst(game, source));
if (targetPlayer != null) {
targetPlayer.damage(sumCMC, source.getSourceId(), game, false, true);
targetPlayer.damage(sumCMC, source.getSourceId(), game);
return true;
}
}

View file

@ -1,7 +1,5 @@
package mage.cards.c;
import java.util.UUID;
import mage.abilities.Ability;
import mage.abilities.effects.OneShotEffect;
import mage.cards.CardImpl;
@ -16,8 +14,9 @@ import mage.players.Player;
import mage.target.Target;
import mage.target.common.TargetAnyTarget;
import java.util.UUID;
/**
*
* @author Quercitron
*/
public final class ConeOfFlame extends CardImpl {
@ -89,7 +88,7 @@ class ConeOfFlameEffect extends OneShotEffect {
}
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) > 0);
}
damage++;
}

View file

@ -1,7 +1,5 @@
package mage.cards.c;
import java.util.UUID;
import mage.abilities.Ability;
import mage.abilities.common.BeginningOfUpkeepTriggeredAbility;
import mage.abilities.common.SimpleStaticAbility;
@ -11,26 +9,22 @@ import mage.abilities.effects.common.AttachEffect;
import mage.abilities.effects.common.DestroyTargetEffect;
import mage.abilities.effects.common.continuous.BoostEnchantedEffect;
import mage.abilities.effects.common.counter.AddCountersAttachedEffect;
import mage.constants.Outcome;
import mage.target.TargetPermanent;
import mage.abilities.keyword.EnchantAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Duration;
import mage.constants.SubType;
import mage.constants.TargetController;
import mage.constants.Zone;
import mage.constants.*;
import mage.counters.CounterType;
import mage.filter.common.FilterCreaturePermanent;
import mage.filter.predicate.Predicates;
import mage.game.Game;
import mage.game.permanent.Permanent;
import mage.players.Player;
import mage.target.TargetPermanent;
import mage.target.targetpointer.FixedTarget;
import java.util.UUID;
/**
*
* @author TheElk801
*/
public final class ConsumingFerocity extends CardImpl {
@ -95,7 +89,7 @@ class ConsumingFerocityEffect extends OneShotEffect {
if (creature.getCounters(game).getCount(CounterType.P1P0) > 2) {
Player player = game.getPlayer(creature.getControllerId());
if (player != null) {
player.damage(creature.getPower().getValue(), creature.getId(), game, false, true);
player.damage(creature.getPower().getValue(), creature.getId(), game);
}
effect = new DestroyTargetEffect(true);
effect.setTargetPointer(new FixedTarget(creature, game));

View file

@ -1,8 +1,5 @@
package mage.cards.c;
import java.util.UUID;
import mage.abilities.Ability;
import mage.abilities.effects.OneShotEffect;
import mage.cards.CardImpl;
@ -17,14 +14,15 @@ import mage.game.permanent.Permanent;
import mage.players.Player;
import mage.target.common.TargetAnyTarget;
import java.util.UUID;
/**
*
* @author BetaSteward_at_googlemail.com
*/
public final class Corrupt extends CardImpl {
public Corrupt(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{5}{B}");
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{5}{B}");
// Corrupt deals damage to any target equal to the number of Swamps you control. You gain life equal to the damage dealt this way.
this.getSpellAbility().addTarget(new TargetAnyTarget());
@ -68,13 +66,11 @@ class CorruptEffect extends OneShotEffect {
Permanent permanent = game.getPermanent(source.getFirstTarget());
if (permanent != null) {
damageDealt = permanent.damage(amount, source.getSourceId(), game, false, true);
}
else {
} else {
Player player = game.getPlayer(source.getFirstTarget());
if (player != null) {
damageDealt = player.damage(amount, source.getSourceId(), game, false, true);
}
else
damageDealt = player.damage(amount, source.getSourceId(), game);
} else
return false;
}
Player you = game.getPlayer(source.getControllerId());

View file

@ -78,7 +78,7 @@ class CursedScrollEffect extends OneShotEffect {
}
Player player = game.getPlayer(targetPointer.getFirst(game, source));
if (player != null) {
player.damage(2, source.getSourceId(), game, false, true);
player.damage(2, source.getSourceId(), game);
return true;
}
return false;

View file

@ -1,7 +1,5 @@
package mage.cards.f;
import java.util.UUID;
import mage.abilities.Ability;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.keyword.FlyingAbility;
@ -16,14 +14,15 @@ import mage.game.Game;
import mage.game.permanent.Permanent;
import mage.players.Player;
import java.util.UUID;
/**
*
* @author fireshoes
*/
public final class FaultLine extends CardImpl {
public FaultLine(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{X}{R}{R}");
super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{X}{R}{R}");
// Fault Line deals X damage to each creature without flying and each player.
this.getSpellAbility().addEffect(new FaultLineEffect());
@ -64,13 +63,13 @@ class FaultLineEffect extends OneShotEffect {
@Override
public boolean apply(Game game, Ability source) {
int amount = source.getManaCostsToPay().getX();
for (Permanent permanent: game.getBattlefield().getActivePermanents(filter, source.getControllerId(), game)) {
for (Permanent permanent : game.getBattlefield().getActivePermanents(filter, source.getControllerId(), game)) {
permanent.damage(amount, source.getSourceId(), game, false, true);
}
for (UUID playerId: game.getState().getPlayersInRange(source.getControllerId(), game)) {
for (UUID playerId : game.getState().getPlayersInRange(source.getControllerId(), game)) {
Player player = game.getPlayer(playerId);
if (player != null)
player.damage(amount, source.getSourceId(), game, false, true);
player.damage(amount, source.getSourceId(), game);
}
return true;
}

View file

@ -1,42 +1,30 @@
package mage.cards.f;
import java.util.UUID;
import mage.abilities.common.BeginningOfUpkeepTriggeredAbility;
import mage.abilities.dynamicvalue.DynamicValue;
import mage.abilities.effects.Effect;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.ChooseOpponentEffect;
import mage.abilities.effects.common.DamageTargetEffect;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.cards.Card;
import mage.constants.*;
import mage.counters.Counter;
import mage.counters.CounterType;
import mage.filter.common.FilterCreatureCard;
import mage.filter.predicate.mageobject.ConvertedManaCostPredicate;
import mage.game.Game;
import mage.game.permanent.Permanent;
import mage.players.Player;
import mage.target.common.TargetCardInHand;
import mage.target.common.TargetCreaturePermanent;
import mage.abilities.Ability;
import mage.abilities.common.BeginningOfUpkeepTriggeredAbility;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.AttachEffect;
import mage.target.TargetPermanent;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.abilities.keyword.EnchantAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.*;
import mage.counters.CounterType;
import mage.game.Game;
import mage.players.Player;
import mage.target.TargetPermanent;
import mage.target.common.TargetCreaturePermanent;
import java.util.UUID;
/**
*
* @author ciaccona007
*/
public final class FesteringWound extends CardImpl {
public FesteringWound(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{1}{B}");
this.subtype.add(SubType.AURA);
// Enchant creature
@ -61,6 +49,7 @@ public final class FesteringWound extends CardImpl {
return new FesteringWound(this);
}
}
class FesteringWoundEffect extends OneShotEffect {
public FesteringWoundEffect() {
@ -83,8 +72,8 @@ class FesteringWoundEffect extends OneShotEffect {
int amount = game.getPermanent(sourceId).getCounters(game).getCount(CounterType.INFECTION);
UUID id = this.getTargetPointer().getFirst(game, source);
Player player = game.getPlayer(id);
if(player != null) {
player.damage(amount, source.getSourceId(), game, false, true);
if (player != null) {
player.damage(amount, source.getSourceId(), game);
return true;
}
return false;

View file

@ -1,7 +1,5 @@
package mage.cards.f;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.DealtDamageToSourceTriggeredAbility;
@ -13,16 +11,13 @@ import mage.abilities.effects.common.DamageControllerEffect;
import mage.abilities.effects.common.continuous.BoostSourceEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.SubType;
import mage.constants.Duration;
import mage.constants.Outcome;
import mage.constants.Zone;
import mage.constants.*;
import mage.game.Game;
import mage.players.Player;
import java.util.UUID;
/**
*
* @author LevelX2
*/
public final class FiredrinkerSatyr extends CardImpl {
@ -77,7 +72,7 @@ class FiredrinkerSatyrDealDamageEffect extends OneShotEffect {
if (amount > 0) {
Player player = game.getPlayer(source.getControllerId());
if (player != null) {
player.damage(amount, source.getSourceId(), game, false, true);
player.damage(amount, source.getSourceId(), game);
return true;
}
}

View file

@ -1,6 +1,5 @@
package mage.cards.f;
import java.util.UUID;
import mage.abilities.Ability;
import mage.abilities.costs.common.DiscardXTargetCost;
import mage.abilities.dynamicvalue.common.GetXValue;
@ -17,8 +16,9 @@ import mage.target.Target;
import mage.target.common.TargetAnyTarget;
import mage.target.targetadjustment.TargetAdjuster;
import java.util.UUID;
/**
*
* @author jeffwadsworth
*/
public final class Firestorm extends CardImpl {
@ -80,7 +80,7 @@ class FirestormEffect extends OneShotEffect {
} else {
Player player = game.getPlayer(targetId);
if (player != null) {
player.damage(amount, source.getSourceId(), game, false, true);
player.damage(amount, source.getSourceId(), game);
}
}
}

View file

@ -1,7 +1,5 @@
package mage.cards.g;
import java.util.UUID;
import mage.abilities.Ability;
import mage.abilities.Mode;
import mage.abilities.effects.Effect;
@ -23,10 +21,10 @@ import mage.target.common.TargetAnyTarget;
import mage.target.common.TargetControlledCreaturePermanent;
import mage.target.common.TargetCreaturePermanent;
import java.util.UUID;
/**
*
* @author LoneFox
*
*/
public final class GrabTheReins extends CardImpl {
@ -104,7 +102,7 @@ class GrabTheReinsEffect extends OneShotEffect {
}
player = game.getPlayer(source.getFirstTarget());
if (player != null) {
player.damage(amount, source.getSourceId(), game, false, true);
player.damage(amount, source.getSourceId(), game);
return true;
}
} else {

View file

@ -1,7 +1,5 @@
package mage.cards.i;
import java.util.UUID;
import mage.abilities.Ability;
import mage.abilities.effects.OneShotEffect;
import mage.cards.CardImpl;
@ -13,14 +11,15 @@ import mage.game.Game;
import mage.game.permanent.Permanent;
import mage.players.Player;
import java.util.UUID;
/**
*
* @author LevelX2
*/
public final class InciteRebellion extends CardImpl {
public InciteRebellion(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{4}{R}{R}");
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{4}{R}{R}");
// For each player, Incite Rebellion deals damage to that player and each creature that player controls equal to the number of creatures they control.
@ -59,16 +58,16 @@ class InciteRebellionEffect extends OneShotEffect {
public boolean apply(Game game, Ability source) {
Player controller = game.getPlayer(source.getControllerId());
if (controller != null) {
for (UUID playerId: game.getState().getPlayersInRange(controller.getId(), game)) {
for (UUID playerId : game.getState().getPlayersInRange(controller.getId(), game)) {
Player player = game.getPlayer(playerId);
if (player != null) {
int count = game.getBattlefield().countAll(filter, playerId, game);
if (count > 0) {
player.damage(count, source.getSourceId(), game, false, true);
for (Permanent permanent: game.getBattlefield().getAllActivePermanents(filter, playerId, game)) {
permanent.damage(count, source.getSourceId(), game, false, true);
player.damage(count, source.getSourceId(), game);
for (Permanent permanent : game.getBattlefield().getAllActivePermanents(filter, playerId, game)) {
permanent.damage(count, source.getSourceId(), game);
}
}
}
}
}
return true;

View file

@ -1,7 +1,5 @@
package mage.cards.i;
import java.util.UUID;
import mage.MageObject;
import mage.ObjectColor;
import mage.abilities.Ability;
@ -17,8 +15,9 @@ import mage.game.Game;
import mage.players.Player;
import mage.target.TargetPlayer;
import java.util.UUID;
/**
*
* @author jeffwadsworth & L_J
*/
public final class Inquisition extends CardImpl {
@ -42,9 +41,10 @@ public final class Inquisition extends CardImpl {
}
class InquisitionEffect extends OneShotEffect {
private static final FilterCard filter = new FilterCard();
static{
static {
filter.add(new ColorPredicate(ObjectColor.WHITE));
}
@ -72,7 +72,7 @@ class InquisitionEffect extends OneShotEffect {
}
}
if (cardsFound > 0) {
targetPlayer.damage(cardsFound, source.getSourceId(), game, false, true);
targetPlayer.damage(cardsFound, source.getSourceId(), game);
}
return true;
}

View file

@ -1,7 +1,5 @@
package mage.cards.i;
import java.util.UUID;
import mage.abilities.Ability;
import mage.abilities.Mode;
import mage.abilities.common.BeginningOfUpkeepTriggeredAbility;
@ -14,8 +12,9 @@ import mage.constants.TargetController;
import mage.game.Game;
import mage.players.Player;
import java.util.UUID;
/**
*
* @author Plopman
*/
public final class IronMaiden extends CardImpl {
@ -55,7 +54,7 @@ class IronMaidenEffect extends OneShotEffect {
if (player != null) {
int amount = player.getHand().size() - 4;
if (amount > 0) {
player.damage(amount, source.getSourceId(), game, false, true);
player.damage(amount, source.getSourceId(), game);
return true;
}
}

View file

@ -1,14 +1,12 @@
package mage.cards.l;
import java.util.UUID;
import mage.abilities.Ability;
import mage.abilities.effects.OneShotEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.SubType;
import mage.constants.Outcome;
import mage.constants.SubType;
import mage.constants.TargetController;
import mage.filter.FilterPermanent;
import mage.game.Game;
@ -18,8 +16,9 @@ import mage.target.Target;
import mage.target.TargetPermanent;
import mage.target.common.TargetPlayerOrPlaneswalker;
import java.util.UUID;
/**
*
* @author L_J
*/
public final class Landslide extends CardImpl {
@ -79,7 +78,7 @@ class LandslideEffect extends OneShotEffect {
}
Player player = game.getPlayer(source.getFirstTarget());
if (player != null) {
player.damage(amount, source.getSourceId(), game, false, true);
player.damage(amount, source.getSourceId(), game);
}
}
return true;

View file

@ -1,7 +1,5 @@
package mage.cards.l;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.BeginningOfUpkeepTriggeredAbility;
@ -19,14 +17,15 @@ import mage.players.Player;
import mage.target.Target;
import mage.target.common.TargetControlledCreaturePermanent;
import java.util.UUID;
/**
*
* @author dustinconrad
*/
public final class LordOfThePit extends CardImpl {
public LordOfThePit(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{B}{B}{B}");
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{4}{B}{B}{B}");
this.subtype.add(SubType.DEMON);
this.power = new MageInt(7);
@ -89,7 +88,7 @@ class LordOfThePitEffect extends OneShotEffect {
return true;
}
} else {
player.damage(7, source.getSourceId(), game, false, true);
player.damage(7, source.getSourceId(), game);
return true;
}
return false;

View file

@ -80,6 +80,6 @@ class MalignantGrowthEffect extends OneShotEffect {
if (counters == 0) {
return true;
}
return player.damage(player.drawCards(counters, game), source.getSourceId(), game) > 0;
return player.damage(player.drawCards(counters, game), source.getSourceId(), game, false, true) > 0;
}
}

View file

@ -1,6 +1,5 @@
package mage.cards.m;
import java.util.UUID;
import mage.abilities.Ability;
import mage.abilities.effects.Effect;
import mage.abilities.effects.OneShotEffect;
@ -17,8 +16,9 @@ import mage.game.Game;
import mage.players.Player;
import mage.target.common.TargetOpponent;
import java.util.UUID;
/**
*
* @author jeffwadsworth
*/
public final class Misfortune extends CardImpl {
@ -79,7 +79,7 @@ class MisfortuneEffect extends OneShotEffect {
Effect putM1M1CounterOnEachOpponentCreature = new AddCountersAllEffect(
CounterType.M1M1.createInstance(), filterOpponentCreatures);
putM1M1CounterOnEachOpponentCreature.apply(game, source);
chosenOpponent.damage(4, source.getSourceId(), game);
chosenOpponent.damage(4, source.getSourceId(), game, false, true);
}
return true;
}

View file

@ -1,8 +1,5 @@
package mage.cards.m;
import java.util.Optional;
import java.util.UUID;
import mage.abilities.Ability;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.condition.common.KickedCondition;
@ -25,18 +22,20 @@ import mage.game.events.GameEvent;
import mage.game.permanent.Permanent;
import mage.players.Player;
import java.util.Optional;
import java.util.UUID;
/**
*
* @author LevelX2
*/
public final class MoltenDisaster extends CardImpl {
public MoltenDisaster(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{X}{R}{R}");
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{X}{R}{R}");
// If Molten Disaster was kicked, it has split second.
Ability ability = new SimpleStaticAbility(Zone.STACK, new MoltenDisasterSplitSecondEffect());
Ability ability = new SimpleStaticAbility(Zone.STACK, new MoltenDisasterSplitSecondEffect());
ability.setRuleAtTheTop(true);
this.addAbility(ability);
// Kicker {R}
@ -59,7 +58,7 @@ class MoltenDisasterSplitSecondEffect extends ContinuousRuleModifyingEffectImpl
MoltenDisasterSplitSecondEffect() {
super(Duration.WhileOnStack, Outcome.Detriment);
staticText ="if this spell was kicked, it has split second <i>(As long as this spell is on the stack, players can't cast spells or activate abilities that aren't mana abilities.)</i>";
staticText = "if this spell was kicked, it has split second <i>(As long as this spell is on the stack, players can't cast spells or activate abilities that aren't mana abilities.)</i>";
}
MoltenDisasterSplitSecondEffect(final MoltenDisasterSplitSecondEffect effect) {
@ -70,12 +69,12 @@ class MoltenDisasterSplitSecondEffect extends ContinuousRuleModifyingEffectImpl
public String getInfoMessage(Ability source, GameEvent event, Game game) {
return "You can't cast spells or activate abilities that aren't mana abilities (Split second).";
}
@Override
public boolean checksEventType(GameEvent event, Game game) {
return event.getType() == GameEvent.EventType.CAST_SPELL || event.getType() == GameEvent.EventType.ACTIVATE_ABILITY;
}
@Override
public boolean applies(GameEvent event, Ability source, Game game) {
if (event.getType() == GameEvent.EventType.CAST_SPELL) {
@ -86,9 +85,7 @@ class MoltenDisasterSplitSecondEffect extends ContinuousRuleModifyingEffectImpl
if (event.getType() == GameEvent.EventType.ACTIVATE_ABILITY) {
Optional<Ability> ability = game.getAbility(event.getTargetId(), event.getSourceId());
if (ability.isPresent() && !(ability.get() instanceof ActivatedManaAbilityImpl)) {
if (KickedCondition.instance.apply(game, source)) {
return true;
}
return KickedCondition.instance.apply(game, source);
}
}
return false;
@ -130,13 +127,13 @@ class MoltenDisasterEffect extends OneShotEffect {
@Override
public boolean apply(Game game, Ability source) {
int amount = source.getManaCostsToPay().getX();
for (Permanent permanent: game.getBattlefield().getActivePermanents(filter, source.getControllerId(), game)) {
for (Permanent permanent : game.getBattlefield().getActivePermanents(filter, source.getControllerId(), game)) {
permanent.damage(amount, source.getSourceId(), game, false, true);
}
for (UUID playerId: game.getState().getPlayersInRange(source.getControllerId(), game)) {
for (UUID playerId : game.getState().getPlayersInRange(source.getControllerId(), game)) {
Player player = game.getPlayer(playerId);
if (player != null) {
player.damage(amount, source.getSourceId(), game, false, true);
player.damage(amount, source.getSourceId(), game);
}
}
return true;

View file

@ -64,7 +64,7 @@ class RazorPendulumEffect extends OneShotEffect {
if (player == null) {
return false;
}
return player.damage(2, source.getSourceId(), game) > 0;
return player.damage(2, source.getSourceId(), game, false, true) > 0;
}
}

View file

@ -1,7 +1,5 @@
package mage.cards.s;
import java.util.UUID;
import mage.abilities.Ability;
import mage.abilities.effects.OneShotEffect;
import mage.cards.CardImpl;
@ -9,15 +7,14 @@ import mage.cards.CardSetInfo;
import mage.choices.ChoiceColor;
import mage.constants.CardType;
import mage.constants.Outcome;
import mage.filter.FilterPermanent;
import mage.filter.common.FilterCreaturePermanent;
import mage.filter.predicate.mageobject.ColorPredicate;
import mage.game.Game;
import mage.game.permanent.Permanent;
import mage.players.Player;
import java.util.UUID;
/**
*
* @author noahg
*/
public final class SearingRays extends CardImpl {
@ -61,14 +58,14 @@ class SearingRaysEffect extends OneShotEffect {
Player controller = game.getPlayer(source.getControllerId());
ChoiceColor choice = new ChoiceColor();
if (controller != null && controller.choose(outcome, choice, game) && choice.getColor() != null) {
FilterCreaturePermanent filter = new FilterCreaturePermanent(choice.getColor().getDescription()+" creatures");
FilterCreaturePermanent filter = new FilterCreaturePermanent(choice.getColor().getDescription() + " creatures");
filter.add(new ColorPredicate(choice.getColor()));
for (UUID playerId : game.getState().getPlayersInRange(controller.getId(), game)) {
int amount = game.getBattlefield().countAll(filter , playerId, game);
int amount = game.getBattlefield().countAll(filter, playerId, game);
if (amount > 0) {
Player player = game.getPlayer(playerId);
if (player != null) {
player.damage(amount, source.getSourceId(), game, false, true);
player.damage(amount, source.getSourceId(), game);
}
}
}

View file

@ -1,7 +1,5 @@
package mage.cards.s;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.DealtDamageToSourceTriggeredAbility;
@ -9,13 +7,14 @@ import mage.abilities.effects.OneShotEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.SubType;
import mage.constants.Outcome;
import mage.constants.SubType;
import mage.game.Game;
import mage.players.Player;
import java.util.UUID;
/**
*
* @author LevelX2
*/
public final class ShinkaGatekeeper extends CardImpl {
@ -64,7 +63,7 @@ class ShinkaGatekeeperDealDamageEffect extends OneShotEffect {
if (amount > 0) {
Player player = game.getPlayer(source.getControllerId());
if (player != null) {
player.damage(amount, source.getSourceId(), game, false, true);
player.damage(amount, source.getSourceId(), game);
return true;
}
}

View file

@ -151,7 +151,7 @@ class SoulBurnEffect extends OneShotEffect {
return false;
}
lifetogain = Math.min(player.getLife(), lifetogain);
player.damage(totalXAmount, source.getSourceId(), game);
player.damage(totalXAmount, source.getSourceId(), game, false, true);
}
Player controller = game.getPlayer(source.getControllerId());
if (controller == null) {

View file

@ -1,7 +1,5 @@
package mage.cards.s;
import java.util.UUID;
import mage.abilities.Ability;
import mage.abilities.common.SpellCastControllerTriggeredAbility;
import mage.abilities.effects.OneShotEffect;
@ -17,8 +15,9 @@ import mage.game.permanent.Permanent;
import mage.players.Player;
import mage.target.common.TargetAnyTarget;
import java.util.UUID;
/**
*
* @author North
*/
public final class SphinxBoneWand extends CardImpl {
@ -32,7 +31,7 @@ public final class SphinxBoneWand extends CardImpl {
}
public SphinxBoneWand(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{7}");
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{7}");
// Whenever you cast an instant or sorcery spell, you may put a charge counter on Sphinx-Bone Wand. If you do, Sphinx-Bone Wand deals damage equal to the number of charge counters on it to any target.
SpellCastControllerTriggeredAbility ability = new SpellCastControllerTriggeredAbility(new SphinxBoneWandEffect(), filter, true);
@ -79,7 +78,7 @@ class SphinxBoneWandEffect extends OneShotEffect {
}
Player player = game.getPlayer(source.getFirstTarget());
if (player != null) {
player.damage(amount, source.getSourceId(), game, false, true);
player.damage(amount, source.getSourceId(), game);
}
return true;

View file

@ -1,8 +1,5 @@
package mage.cards.t;
import java.util.List;
import java.util.UUID;
import mage.abilities.Ability;
import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.effects.OneShotEffect;
@ -16,8 +13,10 @@ import mage.game.Game;
import mage.game.permanent.Permanent;
import mage.players.Player;
import java.util.List;
import java.util.UUID;
/**
*
* @author Styxo
*/
public final class TreacherousTerrain extends CardImpl {
@ -66,7 +65,7 @@ class TreacherousTerrainEffect extends OneShotEffect {
}
}
if (amount > 0) {
player.damage(amount, source.getSourceId(), game, false, true);
player.damage(amount, source.getSourceId(), game);
}
}
}

View file

@ -1,7 +1,5 @@
package mage.cards.t;
import java.util.UUID;
import mage.abilities.Ability;
import mage.abilities.effects.OneShotEffect;
import mage.cards.CardImpl;
@ -14,14 +12,15 @@ import mage.game.Game;
import mage.game.permanent.Permanent;
import mage.players.Player;
import java.util.UUID;
/**
*
* @author L_J
*/
public final class Typhoon extends CardImpl {
public Typhoon(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{2}{G}");
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{2}{G}");
// Typhoon deals damage to each opponent equal to the number of Islands that player controls.
this.getSpellAbility().addEffect(new TyphoonEffect());
@ -38,9 +37,10 @@ public final class Typhoon extends CardImpl {
}
class TyphoonEffect extends OneShotEffect {
private static final FilterPermanent filter = new FilterPermanent();
static{
static {
filter.add(SubType.ISLAND.getPredicate());
}
@ -64,7 +64,7 @@ class TyphoonEffect extends OneShotEffect {
amount++;
}
if (amount > 0) {
player.damage(amount, source.getSourceId(), game, false, true);
player.damage(amount, source.getSourceId(), game);
}
}
}

View file

@ -1,7 +1,5 @@
package mage.cards.w;
import java.util.UUID;
import mage.abilities.Ability;
import mage.abilities.Mode;
import mage.abilities.common.BeginningOfUpkeepTriggeredAbility;
@ -14,8 +12,9 @@ import mage.constants.TargetController;
import mage.game.Game;
import mage.players.Player;
import java.util.UUID;
/**
*
* @author Plopman
*/
public final class WheelOfTorture extends CardImpl {
@ -54,7 +53,7 @@ class WheelOfTortureEffect extends OneShotEffect {
if (player != null) {
int amount = 3 - player.getHand().size();
if (amount > 0) {
player.damage(amount, source.getSourceId(), game, false, true);
player.damage(amount, source.getSourceId(), game);
return true;
}
}

View file

@ -2102,7 +2102,7 @@ public abstract class PlayerImpl implements Player, Serializable {
@Override
public int damage(int damage, UUID sourceId, Game game) {
return doDamage(damage, sourceId, game, true, false, null);
return doDamage(damage, sourceId, game, false, true, null);
}
@Override