From 3a048cb828af0a5d5f3d016982555c86f792b6ad Mon Sep 17 00:00:00 2001 From: LevelX2 Date: Tue, 17 Sep 2013 15:55:21 +0200 Subject: [PATCH] Renamed some combat effects for name consistency. --- .../sets/alarareborn/GiantAmbushBeetle.java | 4 +- .../mage/sets/avacynrestored/Gloomwidow.java | 2 +- .../mage/sets/avacynrestored/Howlgeist.java | 2 +- .../sets/avacynrestored/ScrapskinDrake.java | 2 +- .../sets/avacynrestored/WanderingWolf.java | 2 +- .../mage/sets/championsofkamigawa/Lure.java | 4 +- .../championsofkamigawa/MatsuTribeDecoy.java | 4 +- .../sets/championsofkamigawa/VineKami.java | 2 +- .../mage/sets/darkascension/DeadlyAllure.java | 4 +- .../sets/darkascension/HinterlandScourge.java | 4 +- .../sets/darkascension/PyreheartWolf.java | 2 +- .../sets/darkascension/StormboundGeist.java | 2 +- .../mage/sets/dragonsmaze/ArmedDangerous.java | 4 +- .../mage/sets/dragonsmaze/GruulWarChant.java | 2 +- .../mage/sets/eventide/GiftOfTheDeity.java | 11 +- .../sets/fallenempires/GoblinWarDrums1.java | 2 +- .../sets/gatecrash/GuardianOfTheGateless.java | 2 +- .../src/mage/sets/gatecrash/MadcapSkills.java | 2 +- .../mage/sets/gatecrash/RipscalePredator.java | 2 +- .../mage/sets/guildpact/BatteringWurm.java | 2 +- .../src/mage/sets/guildpact/GruulNodorog.java | 2 +- .../mage/sets/guildpact/SkarrganPitSkulk.java | 2 +- .../src/mage/sets/iceage/ImposingVisage.java | 2 +- .../src/mage/sets/iceage/WindSpirit.java | 2 +- .../sets/innistrad/TerrorOfKruinPass.java | 2 +- .../mage/sets/lorwyn/CaterwaulingBoggart.java | 2 +- .../src/mage/sets/magic2010/PalaceGuard.java | 2 +- .../mage/sets/magic2010/PrizedUnicorn.java | 4 +- .../mage/sets/magic2012/SkywinderDrake.java | 2 +- .../sets/magic2012/StormbloodBerserker.java | 2 +- .../src/mage/sets/magic2014/Enlarge.java | 4 +- .../mercadianmasques/TwoHeadedDragon.java | 4 +- .../mage/sets/mirage/SearingSpearAskari.java | 2 +- .../src/mage/sets/mirrodin/Bloodscent.java | 4 +- .../sets/mirrodinbesieged/SpireSerpent.java | 2 +- .../src/mage/sets/odyssey/Demoralize.java | 2 +- .../mage/sets/planechase2012/IndrikUmbra.java | 4 +- .../src/mage/sets/prophecy/AvatarOfHope.java | 2 +- .../sets/returntoravnica/GolgariDecoy.java | 4 +- .../sets/riseoftheeldrazi/AuraGnarlid.java | 2 +- .../riseoftheeldrazi/IrresistiblePrey.java | 8 +- .../riseoftheeldrazi/PathrazerOfUlamog.java | 2 +- .../sets/scarsofmirrodin/TangleAngler.java | 4 +- .../mage/sets/shadowmoor/HordeOfBoggarts.java | 2 +- .../sets/shardsofalara/KederektCreeper.java | 2 +- .../src/mage/sets/tenth/CloudElemental.java | 2 +- .../src/mage/sets/tenth/CloudSprite.java | 2 +- .../src/mage/sets/tenth/ViashinoRunner.java | 2 +- .../mage/sets/theros/CoastlineChimera.java | 2 +- .../src/mage/sets/theros/ColossusOfAkros.java | 2 +- .../src/mage/sets/theros/DaxosOfMeletis.java | 2 +- .../mage/sets/theros/HundredHandedOne.java | 2 +- .../mage/sets/theros/LoathsomeCatoblepas.java | 88 ++++++++++++++ .../mage/sets/theros/PurphorossEmissary.java | 2 +- .../src/mage/sets/theros/ReturnedPhalanx.java | 2 +- .../src/mage/sets/theros/SpearpointOread.java | 2 +- .../mage/sets/theros/ThassaGodOfTheSea.java | 2 +- .../mage/sets/theros/UnderworldCerberus.java | 2 +- Mage.Sets/src/mage/sets/theros/Vaporkin.java | 2 +- .../mage/sets/timespiral/TwoHeadedSliver.java | 2 +- .../src/mage/sets/worldwake/SummitApes.java | 2 +- .../sets/zendikar/TurntimberBasilisk.java | 4 +- .../src/mage/sets/zendikar/WelkinTern.java | 2 +- .../effects/RequirementBlockEffect.java | 66 ----------- .../abilities/effects/RequirementEffect.java | 8 +- ...ackAsThoughtItDidntHaveDefenderEffect.java | 2 +- .../CanBlockAdditionalCreatureEffect.java | 2 +- .../CanBlockOnlyFlyingEffect.java | 2 +- .../CantBeBlockedByCreaturesSourceEffect.java | 2 +- ...BlockedByCreaturesWithLessPowerEffect.java | 2 +- .../CantBeBlockedByOneAllEffect.java | 2 +- .../CantBeBlockedByOneAttachedEffect.java | 2 +- .../CantBeBlockedByOneEffect.java | 2 +- .../CantBeBlockedTargetEffect.java | 2 +- ... => MustBeBlockedByAllAttachedEffect.java} | 12 +- ...va => MustBeBlockedByAllSourceEffect.java} | 12 +- ...MustBeBlockedByAtLeastOneSourceEffect.java | 107 ++++++++++++++++++ ...ustBeBlockedByAtLeastOneTargetEffect.java} | 16 +-- ...=> MustBeBlockedByTargetSourceEffect.java} | 12 +- Mage/src/mage/game/combat/Combat.java | 5 +- 80 files changed, 324 insertions(+), 187 deletions(-) create mode 100644 Mage.Sets/src/mage/sets/theros/LoathsomeCatoblepas.java delete mode 100644 Mage/src/mage/abilities/effects/RequirementBlockEffect.java rename Mage/src/mage/abilities/effects/common/{continious => combat}/CanAttackAsThoughtItDidntHaveDefenderEffect.java (95%) rename Mage/src/mage/abilities/effects/common/{continious => combat}/CanBlockAdditionalCreatureEffect.java (96%) rename Mage/src/mage/abilities/effects/common/{continious => combat}/CanBlockOnlyFlyingEffect.java (98%) rename Mage/src/mage/abilities/effects/common/{continious => combat}/CantBeBlockedByCreaturesSourceEffect.java (96%) rename Mage/src/mage/abilities/effects/common/{continious => combat}/CantBeBlockedByCreaturesWithLessPowerEffect.java (96%) rename Mage/src/mage/abilities/effects/common/{continious => combat}/CantBeBlockedByOneAllEffect.java (96%) rename Mage/src/mage/abilities/effects/common/{continious => combat}/CantBeBlockedByOneAttachedEffect.java (96%) rename Mage/src/mage/abilities/effects/common/{continious => combat}/CantBeBlockedByOneEffect.java (98%) rename Mage/src/mage/abilities/effects/common/{continious => combat}/CantBeBlockedTargetEffect.java (96%) rename Mage/src/mage/abilities/effects/common/combat/{MustBlockAttachedEffect.java => MustBeBlockedByAllAttachedEffect.java} (83%) rename Mage/src/mage/abilities/effects/common/combat/{MustBlockSourceEffect.java => MustBeBlockedByAllSourceEffect.java} (86%) create mode 100644 Mage/src/mage/abilities/effects/common/combat/MustBeBlockedByAtLeastOneSourceEffect.java rename Mage/src/mage/abilities/effects/common/combat/{MustBeBlockedTargetEffect.java => MustBeBlockedByAtLeastOneTargetEffect.java} (85%) rename Mage/src/mage/abilities/effects/common/combat/{MustBlockSourceTargetEffect.java => MustBeBlockedByTargetSourceEffect.java} (86%) diff --git a/Mage.Sets/src/mage/sets/alarareborn/GiantAmbushBeetle.java b/Mage.Sets/src/mage/sets/alarareborn/GiantAmbushBeetle.java index d46b6dce4fc..994f28689b9 100644 --- a/Mage.Sets/src/mage/sets/alarareborn/GiantAmbushBeetle.java +++ b/Mage.Sets/src/mage/sets/alarareborn/GiantAmbushBeetle.java @@ -31,7 +31,7 @@ import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; -import mage.abilities.effects.common.combat.MustBlockSourceTargetEffect; +import mage.abilities.effects.common.combat.MustBeBlockedByTargetSourceEffect; import mage.abilities.keyword.HasteAbility; import mage.cards.CardImpl; import mage.constants.CardType; @@ -60,7 +60,7 @@ public class GiantAmbushBeetle extends CardImpl { this.addAbility(HasteAbility.getInstance()); // When Giant Ambush Beetle enters the battlefield, you may have target creature block it this turn if able. - Ability ability = new EntersBattlefieldTriggeredAbility(new MustBlockSourceTargetEffect(Duration.EndOfTurn), true); + Ability ability = new EntersBattlefieldTriggeredAbility(new MustBeBlockedByTargetSourceEffect(Duration.EndOfTurn), true); ability.addTarget(new TargetCreaturePermanent()); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/sets/avacynrestored/Gloomwidow.java b/Mage.Sets/src/mage/sets/avacynrestored/Gloomwidow.java index 797c28eccb7..6fc8e73e48a 100644 --- a/Mage.Sets/src/mage/sets/avacynrestored/Gloomwidow.java +++ b/Mage.Sets/src/mage/sets/avacynrestored/Gloomwidow.java @@ -33,7 +33,7 @@ import mage.constants.Rarity; import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; -import mage.abilities.effects.common.continious.CanBlockOnlyFlyingEffect; +import mage.abilities.effects.common.combat.CanBlockOnlyFlyingEffect; import mage.abilities.keyword.ReachAbility; import mage.cards.CardImpl; diff --git a/Mage.Sets/src/mage/sets/avacynrestored/Howlgeist.java b/Mage.Sets/src/mage/sets/avacynrestored/Howlgeist.java index 15b1862fb9f..a554505847a 100644 --- a/Mage.Sets/src/mage/sets/avacynrestored/Howlgeist.java +++ b/Mage.Sets/src/mage/sets/avacynrestored/Howlgeist.java @@ -33,7 +33,7 @@ import mage.constants.Rarity; import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; -import mage.abilities.effects.common.continious.CantBeBlockedByCreaturesWithLessPowerEffect; +import mage.abilities.effects.common.combat.CantBeBlockedByCreaturesWithLessPowerEffect; import mage.abilities.keyword.UndyingAbility; import mage.cards.CardImpl; diff --git a/Mage.Sets/src/mage/sets/avacynrestored/ScrapskinDrake.java b/Mage.Sets/src/mage/sets/avacynrestored/ScrapskinDrake.java index 3cd50d0ef95..f981e35596a 100644 --- a/Mage.Sets/src/mage/sets/avacynrestored/ScrapskinDrake.java +++ b/Mage.Sets/src/mage/sets/avacynrestored/ScrapskinDrake.java @@ -31,7 +31,7 @@ import mage.constants.CardType; import mage.constants.Rarity; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; -import mage.abilities.effects.common.continious.CanBlockOnlyFlyingEffect; +import mage.abilities.effects.common.combat.CanBlockOnlyFlyingEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.constants.Zone; diff --git a/Mage.Sets/src/mage/sets/avacynrestored/WanderingWolf.java b/Mage.Sets/src/mage/sets/avacynrestored/WanderingWolf.java index 7d30babc9fa..207fc9d9834 100644 --- a/Mage.Sets/src/mage/sets/avacynrestored/WanderingWolf.java +++ b/Mage.Sets/src/mage/sets/avacynrestored/WanderingWolf.java @@ -33,7 +33,7 @@ import mage.constants.Rarity; import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; -import mage.abilities.effects.common.continious.CantBeBlockedByCreaturesWithLessPowerEffect; +import mage.abilities.effects.common.combat.CantBeBlockedByCreaturesWithLessPowerEffect; import mage.cards.CardImpl; /** diff --git a/Mage.Sets/src/mage/sets/championsofkamigawa/Lure.java b/Mage.Sets/src/mage/sets/championsofkamigawa/Lure.java index 55f85fff46a..0005a0069b3 100644 --- a/Mage.Sets/src/mage/sets/championsofkamigawa/Lure.java +++ b/Mage.Sets/src/mage/sets/championsofkamigawa/Lure.java @@ -37,7 +37,7 @@ import mage.constants.Zone; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.AttachEffect; -import mage.abilities.effects.common.combat.MustBlockAttachedEffect; +import mage.abilities.effects.common.combat.MustBeBlockedByAllAttachedEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.target.TargetPermanent; @@ -63,7 +63,7 @@ public class Lure extends CardImpl { this.addAbility(ability); // All creatures able to block enchanted creature do so. - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new MustBlockAttachedEffect(AttachmentType.AURA))); + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new MustBeBlockedByAllAttachedEffect(AttachmentType.AURA))); } public Lure (final Lure card) { diff --git a/Mage.Sets/src/mage/sets/championsofkamigawa/MatsuTribeDecoy.java b/Mage.Sets/src/mage/sets/championsofkamigawa/MatsuTribeDecoy.java index 79aadb1c120..5ae4b995ef0 100644 --- a/Mage.Sets/src/mage/sets/championsofkamigawa/MatsuTribeDecoy.java +++ b/Mage.Sets/src/mage/sets/championsofkamigawa/MatsuTribeDecoy.java @@ -36,7 +36,7 @@ import mage.abilities.Ability; import mage.abilities.common.DealsCombatDamageToACreatureTriggeredAbility; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; -import mage.abilities.effects.common.combat.MustBlockSourceTargetEffect; +import mage.abilities.effects.common.combat.MustBeBlockedByTargetSourceEffect; import mage.abilities.effects.common.SkipNextUntapTargetEffect; import mage.abilities.effects.common.TapTargetEffect; import mage.cards.CardImpl; @@ -59,7 +59,7 @@ public class MatsuTribeDecoy extends CardImpl { this.toughness = new MageInt(3); // {2}{G}: Target creature blocks Matsu-Tribe Decoy this turn if able. - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new MustBlockSourceTargetEffect(), new ManaCostsImpl("{2}{G}")); + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new MustBeBlockedByTargetSourceEffect(), new ManaCostsImpl("{2}{G}")); ability.addTarget(new TargetCreaturePermanent()); this.addAbility(ability); // Whenever Kashi-Tribe Reaver deals combat damage to a creature, tap that creature and it doesn't untap during its controller's next untap step. diff --git a/Mage.Sets/src/mage/sets/championsofkamigawa/VineKami.java b/Mage.Sets/src/mage/sets/championsofkamigawa/VineKami.java index d2fc6293e18..5350fd9ad70 100644 --- a/Mage.Sets/src/mage/sets/championsofkamigawa/VineKami.java +++ b/Mage.Sets/src/mage/sets/championsofkamigawa/VineKami.java @@ -33,7 +33,7 @@ import mage.constants.Rarity; import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; -import mage.abilities.effects.common.continious.CantBeBlockedByOneEffect; +import mage.abilities.effects.common.combat.CantBeBlockedByOneEffect; import mage.abilities.keyword.SoulshiftAbility; import mage.cards.CardImpl; diff --git a/Mage.Sets/src/mage/sets/darkascension/DeadlyAllure.java b/Mage.Sets/src/mage/sets/darkascension/DeadlyAllure.java index 5b5da45cc37..b91609c9813 100644 --- a/Mage.Sets/src/mage/sets/darkascension/DeadlyAllure.java +++ b/Mage.Sets/src/mage/sets/darkascension/DeadlyAllure.java @@ -32,7 +32,7 @@ import java.util.UUID; import mage.constants.*; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.costs.mana.ManaCostsImpl; -import mage.abilities.effects.common.combat.MustBlockSourceEffect; +import mage.abilities.effects.common.combat.MustBeBlockedByAllSourceEffect; import mage.abilities.effects.common.continious.GainAbilityTargetEffect; import mage.abilities.keyword.DeathtouchAbility; import mage.abilities.keyword.FlashbackAbility; @@ -52,7 +52,7 @@ public class DeadlyAllure extends CardImpl { this.color.setBlack(true); // Target creature gains deathtouch until end of turn and must be blocked this turn if able. - this.getSpellAbility().addEffect(new GainAbilityTargetEffect(new SimpleStaticAbility(Zone.BATTLEFIELD, new MustBlockSourceEffect()), Duration.EndOfTurn)); + this.getSpellAbility().addEffect(new GainAbilityTargetEffect(new SimpleStaticAbility(Zone.BATTLEFIELD, new MustBeBlockedByAllSourceEffect()), Duration.EndOfTurn)); this.getSpellAbility().addEffect(new GainAbilityTargetEffect(DeathtouchAbility.getInstance(), Duration.EndOfTurn)); this.getSpellAbility().addTarget(new TargetCreaturePermanent()); diff --git a/Mage.Sets/src/mage/sets/darkascension/HinterlandScourge.java b/Mage.Sets/src/mage/sets/darkascension/HinterlandScourge.java index b97ab7d11a8..68b285b099d 100644 --- a/Mage.Sets/src/mage/sets/darkascension/HinterlandScourge.java +++ b/Mage.Sets/src/mage/sets/darkascension/HinterlandScourge.java @@ -37,7 +37,7 @@ import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.common.TwoOrMoreSpellsWereCastLastTurnCondition; import mage.abilities.decorator.ConditionalTriggeredAbility; -import mage.abilities.effects.common.combat.MustBlockSourceEffect; +import mage.abilities.effects.common.combat.MustBeBlockedByAllSourceEffect; import mage.abilities.effects.common.TransformSourceEffect; import mage.abilities.keyword.TransformAbility; import mage.cards.CardImpl; @@ -63,7 +63,7 @@ public class HinterlandScourge extends CardImpl { this.toughness = new MageInt(2); // Hinterland Scourge must be blocked if able. - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new MustBlockSourceEffect())); + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new MustBeBlockedByAllSourceEffect())); // At the beginning of each upkeep, if a player cast two or more spells last turn, transform Hinterland Scourge. TriggeredAbility ability = new BeginningOfUpkeepTriggeredAbility(new TransformSourceEffect(false), TargetController.ANY, false); diff --git a/Mage.Sets/src/mage/sets/darkascension/PyreheartWolf.java b/Mage.Sets/src/mage/sets/darkascension/PyreheartWolf.java index 89fb353f497..0c970953a35 100644 --- a/Mage.Sets/src/mage/sets/darkascension/PyreheartWolf.java +++ b/Mage.Sets/src/mage/sets/darkascension/PyreheartWolf.java @@ -35,7 +35,7 @@ import mage.abilities.Ability; import mage.abilities.common.AttacksTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.OneShotEffect; -import mage.abilities.effects.common.continious.CantBeBlockedByOneEffect; +import mage.abilities.effects.common.combat.CantBeBlockedByOneEffect; import mage.abilities.keyword.UndyingAbility; import mage.cards.CardImpl; import mage.filter.common.FilterCreaturePermanent; diff --git a/Mage.Sets/src/mage/sets/darkascension/StormboundGeist.java b/Mage.Sets/src/mage/sets/darkascension/StormboundGeist.java index 6f0dcaf33b8..54a474d24d1 100644 --- a/Mage.Sets/src/mage/sets/darkascension/StormboundGeist.java +++ b/Mage.Sets/src/mage/sets/darkascension/StormboundGeist.java @@ -33,7 +33,7 @@ import mage.constants.CardType; import mage.constants.Rarity; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; -import mage.abilities.effects.common.continious.CanBlockOnlyFlyingEffect; +import mage.abilities.effects.common.combat.CanBlockOnlyFlyingEffect; import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.UndyingAbility; import mage.cards.CardImpl; diff --git a/Mage.Sets/src/mage/sets/dragonsmaze/ArmedDangerous.java b/Mage.Sets/src/mage/sets/dragonsmaze/ArmedDangerous.java index 7c3f5f8aca3..553f30d12bd 100644 --- a/Mage.Sets/src/mage/sets/dragonsmaze/ArmedDangerous.java +++ b/Mage.Sets/src/mage/sets/dragonsmaze/ArmedDangerous.java @@ -35,7 +35,7 @@ import mage.constants.Rarity; import mage.constants.Zone; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.Effect; -import mage.abilities.effects.common.combat.MustBlockSourceEffect; +import mage.abilities.effects.common.combat.MustBeBlockedByAllSourceEffect; import mage.abilities.effects.common.continious.BoostTargetEffect; import mage.abilities.effects.common.continious.GainAbilityTargetEffect; import mage.abilities.keyword.DoubleStrikeAbility; @@ -68,7 +68,7 @@ public class ArmedDangerous extends SplitCard { // All creatures able to block target creature this turn do so. getRightHalfCard().getColor().setGreen(true); Effect effect = new GainAbilityTargetEffect( - new SimpleStaticAbility(Zone.BATTLEFIELD, new MustBlockSourceEffect(Duration.EndOfCombat)), Duration.EndOfTurn, + new SimpleStaticAbility(Zone.BATTLEFIELD, new MustBeBlockedByAllSourceEffect(Duration.EndOfCombat)), Duration.EndOfTurn, "All creatures able to block target creature this turn do so"); getRightHalfCard().getSpellAbility().addEffect(effect); getRightHalfCard().getSpellAbility().addTarget(new TargetCreaturePermanent(true)); diff --git a/Mage.Sets/src/mage/sets/dragonsmaze/GruulWarChant.java b/Mage.Sets/src/mage/sets/dragonsmaze/GruulWarChant.java index ca68859151b..f623f7bdc32 100644 --- a/Mage.Sets/src/mage/sets/dragonsmaze/GruulWarChant.java +++ b/Mage.Sets/src/mage/sets/dragonsmaze/GruulWarChant.java @@ -36,7 +36,7 @@ import mage.constants.Zone; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.continious.BoostAllEffect; -import mage.abilities.effects.common.continious.CantBeBlockedByOneAllEffect; +import mage.abilities.effects.common.combat.CantBeBlockedByOneAllEffect; import mage.cards.CardImpl; import mage.constants.TargetController; import mage.filter.common.FilterCreaturePermanent; diff --git a/Mage.Sets/src/mage/sets/eventide/GiftOfTheDeity.java b/Mage.Sets/src/mage/sets/eventide/GiftOfTheDeity.java index d3213ea19bb..ecf2925745a 100644 --- a/Mage.Sets/src/mage/sets/eventide/GiftOfTheDeity.java +++ b/Mage.Sets/src/mage/sets/eventide/GiftOfTheDeity.java @@ -36,7 +36,7 @@ import mage.abilities.decorator.ConditionalContinousEffect; import mage.abilities.decorator.ConditionalRequirementEffect; import mage.abilities.effects.Effect; import mage.abilities.effects.common.AttachEffect; -import mage.abilities.effects.common.combat.MustBlockAttachedEffect; +import mage.abilities.effects.common.combat.MustBeBlockedByAllAttachedEffect; import mage.abilities.effects.common.continious.BoostEnchantedEffect; import mage.abilities.effects.common.continious.GainAbilityAttachedEffect; import mage.abilities.keyword.DeathtouchAbility; @@ -76,11 +76,10 @@ public class GiftOfTheDeity extends CardImpl { blackAbility.addEffect(new ConditionalContinousEffect(new GainAbilityAttachedEffect(DeathtouchAbility.getInstance(), AttachmentType.AURA), new EnchantedCreatureColorCondition(ObjectColor.BLACK), "and has deathtouch")); this.addAbility(blackAbility); // As long as enchanted creature is green, it gets +1/+1 and all creatures able to block it do so. - SimpleStaticAbility greenAbility = new SimpleStaticAbility(Zone.BATTLEFIELD, - new ConditionalContinousEffect(new BoostEnchantedEffect(1, 1), - new EnchantedCreatureColorCondition(ObjectColor.GREEN), - "As long as enchanted creature is green, it gets +1/+1")); - Effect effect = new ConditionalRequirementEffect(new MustBlockAttachedEffect(AttachmentType.AURA), new EnchantedCreatureColorCondition(ObjectColor.GREEN)); + SimpleStaticAbility greenAbility; + greenAbility = new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinousEffect(new BoostEnchantedEffect(1, 1), new EnchantedCreatureColorCondition(ObjectColor.GREEN), + "As long as enchanted creature is green, it gets +1/+1")); + Effect effect = new ConditionalRequirementEffect(new MustBeBlockedByAllAttachedEffect(AttachmentType.AURA), new EnchantedCreatureColorCondition(ObjectColor.GREEN)); effect.setText("and all creatures able to block it do so"); greenAbility.addEffect(effect); this.addAbility(greenAbility); diff --git a/Mage.Sets/src/mage/sets/fallenempires/GoblinWarDrums1.java b/Mage.Sets/src/mage/sets/fallenempires/GoblinWarDrums1.java index 551bc446dbd..acc17480e95 100644 --- a/Mage.Sets/src/mage/sets/fallenempires/GoblinWarDrums1.java +++ b/Mage.Sets/src/mage/sets/fallenempires/GoblinWarDrums1.java @@ -33,7 +33,7 @@ import mage.constants.CardType; import mage.constants.Rarity; import mage.constants.Zone; import mage.abilities.common.SimpleStaticAbility; -import mage.abilities.effects.common.continious.CantBeBlockedByOneAllEffect; +import mage.abilities.effects.common.combat.CantBeBlockedByOneAllEffect; import mage.cards.CardImpl; import mage.constants.TargetController; import mage.filter.common.FilterCreaturePermanent; diff --git a/Mage.Sets/src/mage/sets/gatecrash/GuardianOfTheGateless.java b/Mage.Sets/src/mage/sets/gatecrash/GuardianOfTheGateless.java index 0e8508748f6..fc23bb55ff0 100644 --- a/Mage.Sets/src/mage/sets/gatecrash/GuardianOfTheGateless.java +++ b/Mage.Sets/src/mage/sets/gatecrash/GuardianOfTheGateless.java @@ -36,7 +36,7 @@ import mage.MageInt; import mage.abilities.common.BlocksTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.continious.BoostSourceEffect; -import mage.abilities.effects.common.continious.CanBlockAdditionalCreatureEffect; +import mage.abilities.effects.common.combat.CanBlockAdditionalCreatureEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; diff --git a/Mage.Sets/src/mage/sets/gatecrash/MadcapSkills.java b/Mage.Sets/src/mage/sets/gatecrash/MadcapSkills.java index e753af86ee4..50c0a4f052e 100644 --- a/Mage.Sets/src/mage/sets/gatecrash/MadcapSkills.java +++ b/Mage.Sets/src/mage/sets/gatecrash/MadcapSkills.java @@ -37,7 +37,7 @@ import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.AttachEffect; import mage.abilities.effects.common.continious.BoostEnchantedEffect; -import mage.abilities.effects.common.continious.CantBeBlockedByOneAttachedEffect; +import mage.abilities.effects.common.combat.CantBeBlockedByOneAttachedEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.constants.Outcome; diff --git a/Mage.Sets/src/mage/sets/gatecrash/RipscalePredator.java b/Mage.Sets/src/mage/sets/gatecrash/RipscalePredator.java index 368523633e7..2bdff0c890a 100644 --- a/Mage.Sets/src/mage/sets/gatecrash/RipscalePredator.java +++ b/Mage.Sets/src/mage/sets/gatecrash/RipscalePredator.java @@ -33,7 +33,7 @@ import mage.constants.CardType; import mage.constants.Rarity; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; -import mage.abilities.effects.common.continious.CantBeBlockedByOneEffect; +import mage.abilities.effects.common.combat.CantBeBlockedByOneEffect; import mage.cards.CardImpl; import mage.constants.Zone; diff --git a/Mage.Sets/src/mage/sets/guildpact/BatteringWurm.java b/Mage.Sets/src/mage/sets/guildpact/BatteringWurm.java index 8c718dad367..288656ac6d9 100644 --- a/Mage.Sets/src/mage/sets/guildpact/BatteringWurm.java +++ b/Mage.Sets/src/mage/sets/guildpact/BatteringWurm.java @@ -33,7 +33,7 @@ import mage.constants.Rarity; import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; -import mage.abilities.effects.common.continious.CantBeBlockedByCreaturesWithLessPowerEffect; +import mage.abilities.effects.common.combat.CantBeBlockedByCreaturesWithLessPowerEffect; import mage.abilities.keyword.BloodthirstAbility; import mage.cards.CardImpl; diff --git a/Mage.Sets/src/mage/sets/guildpact/GruulNodorog.java b/Mage.Sets/src/mage/sets/guildpact/GruulNodorog.java index b3c20ba1503..d247ef16d92 100644 --- a/Mage.Sets/src/mage/sets/guildpact/GruulNodorog.java +++ b/Mage.Sets/src/mage/sets/guildpact/GruulNodorog.java @@ -35,7 +35,7 @@ import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.OneShotEffect; -import mage.abilities.effects.common.continious.CantBeBlockedByOneEffect; +import mage.abilities.effects.common.combat.CantBeBlockedByOneEffect; import mage.cards.CardImpl; import mage.game.Game; diff --git a/Mage.Sets/src/mage/sets/guildpact/SkarrganPitSkulk.java b/Mage.Sets/src/mage/sets/guildpact/SkarrganPitSkulk.java index dd3e28507be..a95c01ae183 100644 --- a/Mage.Sets/src/mage/sets/guildpact/SkarrganPitSkulk.java +++ b/Mage.Sets/src/mage/sets/guildpact/SkarrganPitSkulk.java @@ -33,7 +33,7 @@ import mage.constants.Rarity; import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; -import mage.abilities.effects.common.continious.CantBeBlockedByCreaturesWithLessPowerEffect; +import mage.abilities.effects.common.combat.CantBeBlockedByCreaturesWithLessPowerEffect; import mage.abilities.keyword.BloodthirstAbility; import mage.cards.CardImpl; diff --git a/Mage.Sets/src/mage/sets/iceage/ImposingVisage.java b/Mage.Sets/src/mage/sets/iceage/ImposingVisage.java index 05bd3bb35e6..f4adee8407b 100644 --- a/Mage.Sets/src/mage/sets/iceage/ImposingVisage.java +++ b/Mage.Sets/src/mage/sets/iceage/ImposingVisage.java @@ -36,7 +36,7 @@ import mage.constants.Zone; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.AttachEffect; -import mage.abilities.effects.common.continious.CantBeBlockedByOneAttachedEffect; +import mage.abilities.effects.common.combat.CantBeBlockedByOneAttachedEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.target.TargetPermanent; diff --git a/Mage.Sets/src/mage/sets/iceage/WindSpirit.java b/Mage.Sets/src/mage/sets/iceage/WindSpirit.java index 7f756045484..d86860f55dc 100644 --- a/Mage.Sets/src/mage/sets/iceage/WindSpirit.java +++ b/Mage.Sets/src/mage/sets/iceage/WindSpirit.java @@ -33,7 +33,7 @@ import mage.constants.CardType; import mage.constants.Rarity; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; -import mage.abilities.effects.common.continious.CantBeBlockedByOneEffect; +import mage.abilities.effects.common.combat.CantBeBlockedByOneEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.constants.Zone; diff --git a/Mage.Sets/src/mage/sets/innistrad/TerrorOfKruinPass.java b/Mage.Sets/src/mage/sets/innistrad/TerrorOfKruinPass.java index 29b1d7364ab..a03bdec28f2 100644 --- a/Mage.Sets/src/mage/sets/innistrad/TerrorOfKruinPass.java +++ b/Mage.Sets/src/mage/sets/innistrad/TerrorOfKruinPass.java @@ -39,7 +39,7 @@ import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.common.TwoOrMoreSpellsWereCastLastTurnCondition; import mage.abilities.decorator.ConditionalTriggeredAbility; import mage.abilities.effects.common.TransformSourceEffect; -import mage.abilities.effects.common.continious.CantBeBlockedByOneAllEffect; +import mage.abilities.effects.common.combat.CantBeBlockedByOneAllEffect; import mage.abilities.keyword.DoubleStrikeAbility; import mage.abilities.keyword.TransformAbility; import mage.cards.CardImpl; diff --git a/Mage.Sets/src/mage/sets/lorwyn/CaterwaulingBoggart.java b/Mage.Sets/src/mage/sets/lorwyn/CaterwaulingBoggart.java index 65e2fc248e5..02e8706600d 100644 --- a/Mage.Sets/src/mage/sets/lorwyn/CaterwaulingBoggart.java +++ b/Mage.Sets/src/mage/sets/lorwyn/CaterwaulingBoggart.java @@ -34,7 +34,7 @@ import mage.constants.Duration; import mage.constants.Rarity; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; -import mage.abilities.effects.common.continious.CantBeBlockedByOneEffect; +import mage.abilities.effects.common.combat.CantBeBlockedByOneEffect; import mage.abilities.effects.common.continious.GainAbilityAllEffect; import mage.cards.CardImpl; import mage.constants.Zone; diff --git a/Mage.Sets/src/mage/sets/magic2010/PalaceGuard.java b/Mage.Sets/src/mage/sets/magic2010/PalaceGuard.java index ecdd8953a83..6d5e4436d02 100644 --- a/Mage.Sets/src/mage/sets/magic2010/PalaceGuard.java +++ b/Mage.Sets/src/mage/sets/magic2010/PalaceGuard.java @@ -34,7 +34,7 @@ import mage.constants.Rarity; import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; -import mage.abilities.effects.common.continious.CanBlockAdditionalCreatureEffect; +import mage.abilities.effects.common.combat.CanBlockAdditionalCreatureEffect; import mage.cards.CardImpl; /** diff --git a/Mage.Sets/src/mage/sets/magic2010/PrizedUnicorn.java b/Mage.Sets/src/mage/sets/magic2010/PrizedUnicorn.java index bbb768a2aa4..8ccb420a792 100644 --- a/Mage.Sets/src/mage/sets/magic2010/PrizedUnicorn.java +++ b/Mage.Sets/src/mage/sets/magic2010/PrizedUnicorn.java @@ -34,7 +34,7 @@ import mage.constants.Rarity; import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; -import mage.abilities.effects.common.combat.MustBlockSourceEffect; +import mage.abilities.effects.common.combat.MustBeBlockedByAllSourceEffect; import mage.cards.CardImpl; /** @@ -51,7 +51,7 @@ public class PrizedUnicorn extends CardImpl { this.power = new MageInt(2); this.toughness = new MageInt(2); - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new MustBlockSourceEffect())); + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new MustBeBlockedByAllSourceEffect())); } public PrizedUnicorn(final PrizedUnicorn card) { diff --git a/Mage.Sets/src/mage/sets/magic2012/SkywinderDrake.java b/Mage.Sets/src/mage/sets/magic2012/SkywinderDrake.java index b5c807268bd..cf5e931ef2f 100644 --- a/Mage.Sets/src/mage/sets/magic2012/SkywinderDrake.java +++ b/Mage.Sets/src/mage/sets/magic2012/SkywinderDrake.java @@ -33,7 +33,7 @@ import mage.constants.Rarity; import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; -import mage.abilities.effects.common.continious.CanBlockOnlyFlyingEffect; +import mage.abilities.effects.common.combat.CanBlockOnlyFlyingEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; diff --git a/Mage.Sets/src/mage/sets/magic2012/StormbloodBerserker.java b/Mage.Sets/src/mage/sets/magic2012/StormbloodBerserker.java index d5c644b962e..3482d0066b3 100644 --- a/Mage.Sets/src/mage/sets/magic2012/StormbloodBerserker.java +++ b/Mage.Sets/src/mage/sets/magic2012/StormbloodBerserker.java @@ -33,7 +33,7 @@ import mage.constants.Rarity; import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; -import mage.abilities.effects.common.continious.CantBeBlockedByOneEffect; +import mage.abilities.effects.common.combat.CantBeBlockedByOneEffect; import mage.abilities.keyword.BloodthirstAbility; import mage.cards.CardImpl; diff --git a/Mage.Sets/src/mage/sets/magic2014/Enlarge.java b/Mage.Sets/src/mage/sets/magic2014/Enlarge.java index 088fc66a7e7..7c8373c16f5 100644 --- a/Mage.Sets/src/mage/sets/magic2014/Enlarge.java +++ b/Mage.Sets/src/mage/sets/magic2014/Enlarge.java @@ -28,7 +28,7 @@ package mage.sets.magic2014; import java.util.UUID; -import mage.abilities.effects.common.combat.MustBeBlockedTargetEffect; +import mage.abilities.effects.common.combat.MustBeBlockedByAtLeastOneTargetEffect; import mage.abilities.effects.common.continious.BoostTargetEffect; import mage.abilities.effects.common.continious.GainAbilityTargetEffect; import mage.abilities.keyword.TrampleAbility; @@ -53,7 +53,7 @@ public class Enlarge extends CardImpl { // Target creature gets +7/+7 and gains trample until end of turn. It must be blocked this turn if able. this.getSpellAbility().addEffect(new BoostTargetEffect(7,7, Duration.EndOfTurn)); this.getSpellAbility().addEffect(new GainAbilityTargetEffect(TrampleAbility.getInstance(), Duration.EndOfTurn)); - this.getSpellAbility().addEffect(new MustBeBlockedTargetEffect(Duration.EndOfTurn)); + this.getSpellAbility().addEffect(new MustBeBlockedByAtLeastOneTargetEffect(Duration.EndOfTurn)); this.getSpellAbility().addTarget(new TargetCreaturePermanent(true)); } diff --git a/Mage.Sets/src/mage/sets/mercadianmasques/TwoHeadedDragon.java b/Mage.Sets/src/mage/sets/mercadianmasques/TwoHeadedDragon.java index ba56f3cf2f0..dcd94ddf370 100644 --- a/Mage.Sets/src/mage/sets/mercadianmasques/TwoHeadedDragon.java +++ b/Mage.Sets/src/mage/sets/mercadianmasques/TwoHeadedDragon.java @@ -37,8 +37,8 @@ import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.continious.BoostSourceEffect; -import mage.abilities.effects.common.continious.CanBlockAdditionalCreatureEffect; -import mage.abilities.effects.common.continious.CantBeBlockedByOneEffect; +import mage.abilities.effects.common.combat.CanBlockAdditionalCreatureEffect; +import mage.abilities.effects.common.combat.CantBeBlockedByOneEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; diff --git a/Mage.Sets/src/mage/sets/mirage/SearingSpearAskari.java b/Mage.Sets/src/mage/sets/mirage/SearingSpearAskari.java index 2ec5dbf08a2..04a1952d652 100644 --- a/Mage.Sets/src/mage/sets/mirage/SearingSpearAskari.java +++ b/Mage.Sets/src/mage/sets/mirage/SearingSpearAskari.java @@ -35,7 +35,7 @@ import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.costs.mana.ManaCostsImpl; -import mage.abilities.effects.common.continious.CantBeBlockedByOneEffect; +import mage.abilities.effects.common.combat.CantBeBlockedByOneEffect; import mage.abilities.effects.common.continious.GainAbilitySourceEffect; import mage.abilities.keyword.FlankingAbility; import mage.cards.CardImpl; diff --git a/Mage.Sets/src/mage/sets/mirrodin/Bloodscent.java b/Mage.Sets/src/mage/sets/mirrodin/Bloodscent.java index 80a986bc9fa..49a03d2353a 100644 --- a/Mage.Sets/src/mage/sets/mirrodin/Bloodscent.java +++ b/Mage.Sets/src/mage/sets/mirrodin/Bloodscent.java @@ -32,7 +32,7 @@ import java.util.UUID; import mage.constants.CardType; import mage.constants.Rarity; import mage.abilities.common.SimpleStaticAbility; -import mage.abilities.effects.common.combat.MustBlockSourceEffect; +import mage.abilities.effects.common.combat.MustBeBlockedByAllSourceEffect; import mage.abilities.effects.common.continious.GainAbilityTargetEffect; import mage.cards.CardImpl; import mage.constants.Duration; @@ -49,7 +49,7 @@ public class Bloodscent extends CardImpl { super(ownerId, 114, "Bloodscent", Rarity.UNCOMMON, new CardType[]{CardType.INSTANT}, "{3}{G}"); this.expansionSetCode = "MRD"; this.color.setGreen(true); - this.getSpellAbility().addEffect(new GainAbilityTargetEffect(new SimpleStaticAbility(Zone.BATTLEFIELD, new MustBlockSourceEffect()), Duration.EndOfTurn)); + this.getSpellAbility().addEffect(new GainAbilityTargetEffect(new SimpleStaticAbility(Zone.BATTLEFIELD, new MustBeBlockedByAllSourceEffect()), Duration.EndOfTurn)); this.getSpellAbility().addTarget(new TargetCreaturePermanent()); } diff --git a/Mage.Sets/src/mage/sets/mirrodinbesieged/SpireSerpent.java b/Mage.Sets/src/mage/sets/mirrodinbesieged/SpireSerpent.java index ee61090dc45..a21a6a8d0c1 100644 --- a/Mage.Sets/src/mage/sets/mirrodinbesieged/SpireSerpent.java +++ b/Mage.Sets/src/mage/sets/mirrodinbesieged/SpireSerpent.java @@ -41,7 +41,7 @@ import mage.abilities.decorator.ConditionalAsThoughEffect; import mage.abilities.decorator.ConditionalContinousEffect; import mage.abilities.effects.Effect; import mage.abilities.effects.common.continious.BoostSourceEffect; -import mage.abilities.effects.common.continious.CanAttackAsThoughtItDidntHaveDefenderEffect; +import mage.abilities.effects.common.combat.CanAttackAsThoughtItDidntHaveDefenderEffect; import mage.abilities.keyword.DefenderAbility; import mage.cards.CardImpl; diff --git a/Mage.Sets/src/mage/sets/odyssey/Demoralize.java b/Mage.Sets/src/mage/sets/odyssey/Demoralize.java index f462013721d..cbed71e01b7 100644 --- a/Mage.Sets/src/mage/sets/odyssey/Demoralize.java +++ b/Mage.Sets/src/mage/sets/odyssey/Demoralize.java @@ -35,7 +35,7 @@ import mage.abilities.condition.common.CardsInControllerGraveCondition; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.common.AddContinuousEffectToGame; import mage.abilities.effects.common.combat.CantBlockAllEffect; -import mage.abilities.effects.common.continious.CantBeBlockedByOneAllEffect; +import mage.abilities.effects.common.combat.CantBeBlockedByOneAllEffect; import mage.cards.CardImpl; import mage.constants.Duration; import mage.filter.common.FilterCreaturePermanent; diff --git a/Mage.Sets/src/mage/sets/planechase2012/IndrikUmbra.java b/Mage.Sets/src/mage/sets/planechase2012/IndrikUmbra.java index 120219b0503..89ea7611d2e 100644 --- a/Mage.Sets/src/mage/sets/planechase2012/IndrikUmbra.java +++ b/Mage.Sets/src/mage/sets/planechase2012/IndrikUmbra.java @@ -37,7 +37,7 @@ import mage.constants.Zone; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.AttachEffect; -import mage.abilities.effects.common.combat.MustBlockAttachedEffect; +import mage.abilities.effects.common.combat.MustBeBlockedByAllAttachedEffect; import mage.abilities.effects.common.continious.BoostEnchantedEffect; import mage.abilities.effects.common.continious.GainAbilityAttachedEffect; import mage.abilities.keyword.EnchantAbility; @@ -71,7 +71,7 @@ public class IndrikUmbra extends CardImpl { // Enchanted creature gets +4/+4 and has first strike, and all creatures able to block it do so. ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEnchantedEffect(4, 4, Duration.WhileOnBattlefield)); ability.addEffect(new GainAbilityAttachedEffect(FirstStrikeAbility.getInstance(), AttachmentType.AURA)); - ability.addEffect(new MustBlockAttachedEffect(AttachmentType.AURA)); + ability.addEffect(new MustBeBlockedByAllAttachedEffect(AttachmentType.AURA)); this.addAbility(ability); // Totem armor diff --git a/Mage.Sets/src/mage/sets/prophecy/AvatarOfHope.java b/Mage.Sets/src/mage/sets/prophecy/AvatarOfHope.java index 7c185e5e14b..7bf1defc499 100644 --- a/Mage.Sets/src/mage/sets/prophecy/AvatarOfHope.java +++ b/Mage.Sets/src/mage/sets/prophecy/AvatarOfHope.java @@ -37,7 +37,7 @@ import mage.abilities.SpellAbility; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.costs.AdjustingSourceCosts; import mage.abilities.effects.CostModificationEffectImpl; -import mage.abilities.effects.common.continious.CanBlockAdditionalCreatureEffect; +import mage.abilities.effects.common.combat.CanBlockAdditionalCreatureEffect; import mage.abilities.keyword.FlashbackAbility; import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.RetraceAbility; diff --git a/Mage.Sets/src/mage/sets/returntoravnica/GolgariDecoy.java b/Mage.Sets/src/mage/sets/returntoravnica/GolgariDecoy.java index 2dc2877762c..aaad3cbaa2e 100644 --- a/Mage.Sets/src/mage/sets/returntoravnica/GolgariDecoy.java +++ b/Mage.Sets/src/mage/sets/returntoravnica/GolgariDecoy.java @@ -34,7 +34,7 @@ import mage.constants.Rarity; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.costs.mana.ManaCostsImpl; -import mage.abilities.effects.common.combat.MustBlockSourceEffect; +import mage.abilities.effects.common.combat.MustBeBlockedByAllSourceEffect; import mage.abilities.keyword.ScavengeAbility; import mage.cards.CardImpl; import mage.constants.Zone; @@ -56,7 +56,7 @@ public class GolgariDecoy extends CardImpl { this.toughness = new MageInt(2); // All creatures able to block Golgari Decoy do so. - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new MustBlockSourceEffect())); + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new MustBeBlockedByAllSourceEffect())); // Scavenge {3}{G}{G} ({3}{G}{G}, Exile this card from your graveyard: Put a number of +1/+1 counters equal to this card's power on target creature. Scavenge only as a sorcery.) this.addAbility(new ScavengeAbility(new ManaCostsImpl("{3}{G}{G}"))); } diff --git a/Mage.Sets/src/mage/sets/riseoftheeldrazi/AuraGnarlid.java b/Mage.Sets/src/mage/sets/riseoftheeldrazi/AuraGnarlid.java index 8de5395191d..5e6021a7f41 100644 --- a/Mage.Sets/src/mage/sets/riseoftheeldrazi/AuraGnarlid.java +++ b/Mage.Sets/src/mage/sets/riseoftheeldrazi/AuraGnarlid.java @@ -36,7 +36,7 @@ import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; import mage.abilities.effects.common.continious.BoostSourceEffect; -import mage.abilities.effects.common.continious.CantBeBlockedByCreaturesWithLessPowerEffect; +import mage.abilities.effects.common.combat.CantBeBlockedByCreaturesWithLessPowerEffect; import mage.cards.CardImpl; import mage.filter.FilterPermanent; import mage.filter.predicate.mageobject.SubtypePredicate; diff --git a/Mage.Sets/src/mage/sets/riseoftheeldrazi/IrresistiblePrey.java b/Mage.Sets/src/mage/sets/riseoftheeldrazi/IrresistiblePrey.java index 5c6ace413e8..c3ac237a770 100644 --- a/Mage.Sets/src/mage/sets/riseoftheeldrazi/IrresistiblePrey.java +++ b/Mage.Sets/src/mage/sets/riseoftheeldrazi/IrresistiblePrey.java @@ -33,7 +33,8 @@ import mage.constants.CardType; import mage.constants.Rarity; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.DrawCardControllerEffect; -import mage.abilities.effects.common.combat.MustBlockSourceEffect; +import mage.abilities.effects.common.combat.MustBeBlockedByAllSourceEffect; +import mage.abilities.effects.common.combat.MustBeBlockedByAtLeastOneTargetEffect; import mage.abilities.effects.common.continious.GainAbilityTargetEffect; import mage.cards.CardImpl; import mage.constants.Duration; @@ -54,7 +55,10 @@ public class IrresistiblePrey extends CardImpl { // Target creature must be blocked this turn if able. // Draw a card. - this.getSpellAbility().addEffect(new GainAbilityTargetEffect(new SimpleStaticAbility(Zone.BATTLEFIELD, new MustBlockSourceEffect()), Duration.EndOfTurn)); + this.getSpellAbility().addEffect( + new GainAbilityTargetEffect( + new SimpleStaticAbility(Zone.BATTLEFIELD, new MustBeBlockedByAtLeastOneTargetEffect()), + Duration.EndOfTurn)); this.getSpellAbility().addTarget(new TargetCreaturePermanent()); this.getSpellAbility().addEffect(new DrawCardControllerEffect(1)); } diff --git a/Mage.Sets/src/mage/sets/riseoftheeldrazi/PathrazerOfUlamog.java b/Mage.Sets/src/mage/sets/riseoftheeldrazi/PathrazerOfUlamog.java index 3a90976d014..1bd90896dad 100644 --- a/Mage.Sets/src/mage/sets/riseoftheeldrazi/PathrazerOfUlamog.java +++ b/Mage.Sets/src/mage/sets/riseoftheeldrazi/PathrazerOfUlamog.java @@ -33,7 +33,7 @@ import mage.constants.Rarity; import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; -import mage.abilities.effects.common.continious.CantBeBlockedByOneEffect; +import mage.abilities.effects.common.combat.CantBeBlockedByOneEffect; import mage.abilities.keyword.AnnihilatorAbility; import mage.cards.CardImpl; diff --git a/Mage.Sets/src/mage/sets/scarsofmirrodin/TangleAngler.java b/Mage.Sets/src/mage/sets/scarsofmirrodin/TangleAngler.java index 977fa118266..0ce06db3081 100644 --- a/Mage.Sets/src/mage/sets/scarsofmirrodin/TangleAngler.java +++ b/Mage.Sets/src/mage/sets/scarsofmirrodin/TangleAngler.java @@ -35,7 +35,7 @@ import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; -import mage.abilities.effects.common.combat.MustBlockSourceTargetEffect; +import mage.abilities.effects.common.combat.MustBeBlockedByTargetSourceEffect; import mage.abilities.keyword.InfectAbility; import mage.cards.CardImpl; import mage.target.common.TargetCreaturePermanent; @@ -55,7 +55,7 @@ public class TangleAngler extends CardImpl { this.toughness = new MageInt(5); this.addAbility(InfectAbility.getInstance()); - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new MustBlockSourceTargetEffect(), new ManaCostsImpl("{G}")); + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new MustBeBlockedByTargetSourceEffect(), new ManaCostsImpl("{G}")); ability.addTarget(new TargetCreaturePermanent()); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/sets/shadowmoor/HordeOfBoggarts.java b/Mage.Sets/src/mage/sets/shadowmoor/HordeOfBoggarts.java index a4b4d69baa4..c8ea6aecbcf 100644 --- a/Mage.Sets/src/mage/sets/shadowmoor/HordeOfBoggarts.java +++ b/Mage.Sets/src/mage/sets/shadowmoor/HordeOfBoggarts.java @@ -36,7 +36,7 @@ import mage.MageInt; import mage.ObjectColor; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; -import mage.abilities.effects.common.continious.CantBeBlockedByOneEffect; +import mage.abilities.effects.common.combat.CantBeBlockedByOneEffect; import mage.abilities.effects.common.continious.SetPowerToughnessSourceEffect; import mage.cards.CardImpl; import mage.filter.common.FilterControlledPermanent; diff --git a/Mage.Sets/src/mage/sets/shardsofalara/KederektCreeper.java b/Mage.Sets/src/mage/sets/shardsofalara/KederektCreeper.java index 5d032896bd2..57e7e3e38bc 100644 --- a/Mage.Sets/src/mage/sets/shardsofalara/KederektCreeper.java +++ b/Mage.Sets/src/mage/sets/shardsofalara/KederektCreeper.java @@ -33,7 +33,7 @@ import mage.constants.Rarity; import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; -import mage.abilities.effects.common.continious.CantBeBlockedByOneEffect; +import mage.abilities.effects.common.combat.CantBeBlockedByOneEffect; import mage.abilities.keyword.DeathtouchAbility; import mage.cards.CardImpl; diff --git a/Mage.Sets/src/mage/sets/tenth/CloudElemental.java b/Mage.Sets/src/mage/sets/tenth/CloudElemental.java index a8073c5d269..26e88d2c07e 100644 --- a/Mage.Sets/src/mage/sets/tenth/CloudElemental.java +++ b/Mage.Sets/src/mage/sets/tenth/CloudElemental.java @@ -33,7 +33,7 @@ import mage.constants.Rarity; import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; -import mage.abilities.effects.common.continious.CanBlockOnlyFlyingEffect; +import mage.abilities.effects.common.combat.CanBlockOnlyFlyingEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; diff --git a/Mage.Sets/src/mage/sets/tenth/CloudSprite.java b/Mage.Sets/src/mage/sets/tenth/CloudSprite.java index acde3ab1246..93e0357fa3e 100644 --- a/Mage.Sets/src/mage/sets/tenth/CloudSprite.java +++ b/Mage.Sets/src/mage/sets/tenth/CloudSprite.java @@ -33,7 +33,7 @@ import mage.constants.CardType; import mage.constants.Rarity; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; -import mage.abilities.effects.common.continious.CanBlockOnlyFlyingEffect; +import mage.abilities.effects.common.combat.CanBlockOnlyFlyingEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.constants.Zone; diff --git a/Mage.Sets/src/mage/sets/tenth/ViashinoRunner.java b/Mage.Sets/src/mage/sets/tenth/ViashinoRunner.java index 25d47514910..30231d0f1c1 100644 --- a/Mage.Sets/src/mage/sets/tenth/ViashinoRunner.java +++ b/Mage.Sets/src/mage/sets/tenth/ViashinoRunner.java @@ -33,7 +33,7 @@ import mage.constants.Rarity; import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; -import mage.abilities.effects.common.continious.CantBeBlockedByOneEffect; +import mage.abilities.effects.common.combat.CantBeBlockedByOneEffect; import mage.cards.CardImpl; /** diff --git a/Mage.Sets/src/mage/sets/theros/CoastlineChimera.java b/Mage.Sets/src/mage/sets/theros/CoastlineChimera.java index d1cbc106309..39c4134f0a2 100644 --- a/Mage.Sets/src/mage/sets/theros/CoastlineChimera.java +++ b/Mage.Sets/src/mage/sets/theros/CoastlineChimera.java @@ -31,7 +31,7 @@ import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; -import mage.abilities.effects.common.continious.CanBlockAdditionalCreatureEffect; +import mage.abilities.effects.common.combat.CanBlockAdditionalCreatureEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.constants.CardType; diff --git a/Mage.Sets/src/mage/sets/theros/ColossusOfAkros.java b/Mage.Sets/src/mage/sets/theros/ColossusOfAkros.java index f274e6468e1..625435af7e6 100644 --- a/Mage.Sets/src/mage/sets/theros/ColossusOfAkros.java +++ b/Mage.Sets/src/mage/sets/theros/ColossusOfAkros.java @@ -35,7 +35,7 @@ import mage.abilities.condition.common.MonstrousCondition; import mage.abilities.decorator.ConditionalAsThoughEffect; import mage.abilities.decorator.ConditionalContinousEffect; import mage.abilities.effects.Effect; -import mage.abilities.effects.common.continious.CanAttackAsThoughtItDidntHaveDefenderEffect; +import mage.abilities.effects.common.combat.CanAttackAsThoughtItDidntHaveDefenderEffect; import mage.abilities.effects.common.continious.GainAbilitySourceEffect; import mage.abilities.keyword.DefenderAbility; import mage.abilities.keyword.IndestructibleAbility; diff --git a/Mage.Sets/src/mage/sets/theros/DaxosOfMeletis.java b/Mage.Sets/src/mage/sets/theros/DaxosOfMeletis.java index ae5cb359fe6..0a22cd3fa6b 100644 --- a/Mage.Sets/src/mage/sets/theros/DaxosOfMeletis.java +++ b/Mage.Sets/src/mage/sets/theros/DaxosOfMeletis.java @@ -34,7 +34,7 @@ import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.AsThoughEffectImpl; import mage.abilities.effects.OneShotEffect; -import mage.abilities.effects.common.continious.CantBeBlockedByCreaturesSourceEffect; +import mage.abilities.effects.common.combat.CantBeBlockedByCreaturesSourceEffect; import mage.cards.Card; import mage.cards.CardImpl; import mage.constants.AsThoughEffectType; diff --git a/Mage.Sets/src/mage/sets/theros/HundredHandedOne.java b/Mage.Sets/src/mage/sets/theros/HundredHandedOne.java index 4fc4910d8bb..e76abf506ff 100644 --- a/Mage.Sets/src/mage/sets/theros/HundredHandedOne.java +++ b/Mage.Sets/src/mage/sets/theros/HundredHandedOne.java @@ -33,7 +33,7 @@ import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.common.MonstrousCondition; import mage.abilities.decorator.ConditionalContinousEffect; -import mage.abilities.effects.common.continious.CanBlockAdditionalCreatureEffect; +import mage.abilities.effects.common.combat.CanBlockAdditionalCreatureEffect; import mage.abilities.effects.common.continious.GainAbilitySourceEffect; import mage.abilities.keyword.MonstrosityAbility; import mage.abilities.keyword.ReachAbility; diff --git a/Mage.Sets/src/mage/sets/theros/LoathsomeCatoblepas.java b/Mage.Sets/src/mage/sets/theros/LoathsomeCatoblepas.java new file mode 100644 index 00000000000..2129811e921 --- /dev/null +++ b/Mage.Sets/src/mage/sets/theros/LoathsomeCatoblepas.java @@ -0,0 +1,88 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.sets.theros; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.DiesTriggeredAbility; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.common.combat.MustBeBlockedByAtLeastOneSourceEffect; +import mage.abilities.effects.common.continious.BoostTargetEffect; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Rarity; +import mage.constants.TargetController; +import mage.constants.Zone; +import mage.filter.common.FilterCreaturePermanent; +import mage.filter.predicate.permanent.ControllerPredicate; +import mage.target.Target; +import mage.target.common.TargetCreaturePermanent; + +/** + * + * @author LevelX2 + */ +public class LoathsomeCatoblepas extends CardImpl { + + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent(); + static { + filter.add(new ControllerPredicate(TargetController.OPPONENT)); + } + + public LoathsomeCatoblepas(UUID ownerId) { + super(ownerId, 95, "Loathsome Catoblepas", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{5}{B}"); + this.expansionSetCode = "THS"; + this.subtype.add("Beast"); + + this.color.setBlack(true); + this.power = new MageInt(3); + this.toughness = new MageInt(3); + + // {2}{G}: Loathsome Catoblepas must be blocked this turn if able. + this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new MustBeBlockedByAtLeastOneSourceEffect(), new ManaCostsImpl("{2}{G}"))); + // When Loathsome Catoblepas dies, target creature an opponent controls gets -3/-3 until end of turn. + Ability ability = new DiesTriggeredAbility(new BoostTargetEffect(-3,-3, Duration.EndOfTurn), false); + Target target = new TargetCreaturePermanent(filter); + target.setRequired(true); + ability.addTarget(target); + this.addAbility(ability); + + } + + public LoathsomeCatoblepas(final LoathsomeCatoblepas card) { + super(card); + } + + @Override + public LoathsomeCatoblepas copy() { + return new LoathsomeCatoblepas(this); + } +} diff --git a/Mage.Sets/src/mage/sets/theros/PurphorossEmissary.java b/Mage.Sets/src/mage/sets/theros/PurphorossEmissary.java index b8c72667181..798db0a364a 100644 --- a/Mage.Sets/src/mage/sets/theros/PurphorossEmissary.java +++ b/Mage.Sets/src/mage/sets/theros/PurphorossEmissary.java @@ -33,7 +33,7 @@ import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.Effect; import mage.abilities.effects.common.continious.BoostEnchantedEffect; -import mage.abilities.effects.common.continious.CantBeBlockedByOneEffect; +import mage.abilities.effects.common.combat.CantBeBlockedByOneEffect; import mage.abilities.effects.common.continious.GainAbilityAttachedEffect; import mage.abilities.keyword.BestowAbility; import mage.cards.CardImpl; diff --git a/Mage.Sets/src/mage/sets/theros/ReturnedPhalanx.java b/Mage.Sets/src/mage/sets/theros/ReturnedPhalanx.java index 4ad0347d8d3..e39558a6279 100644 --- a/Mage.Sets/src/mage/sets/theros/ReturnedPhalanx.java +++ b/Mage.Sets/src/mage/sets/theros/ReturnedPhalanx.java @@ -31,7 +31,7 @@ import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; -import mage.abilities.effects.common.continious.CanAttackAsThoughtItDidntHaveDefenderEffect; +import mage.abilities.effects.common.combat.CanAttackAsThoughtItDidntHaveDefenderEffect; import mage.abilities.keyword.DefenderAbility; import mage.cards.CardImpl; import mage.constants.CardType; diff --git a/Mage.Sets/src/mage/sets/theros/SpearpointOread.java b/Mage.Sets/src/mage/sets/theros/SpearpointOread.java index e733477f192..4492abd556a 100644 --- a/Mage.Sets/src/mage/sets/theros/SpearpointOread.java +++ b/Mage.Sets/src/mage/sets/theros/SpearpointOread.java @@ -33,7 +33,7 @@ import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.Effect; import mage.abilities.effects.common.continious.BoostEnchantedEffect; -import mage.abilities.effects.common.continious.CantBeBlockedByOneEffect; +import mage.abilities.effects.common.combat.CantBeBlockedByOneEffect; import mage.abilities.effects.common.continious.GainAbilityAttachedEffect; import mage.abilities.keyword.BestowAbility; import mage.abilities.keyword.FirstStrikeAbility; diff --git a/Mage.Sets/src/mage/sets/theros/ThassaGodOfTheSea.java b/Mage.Sets/src/mage/sets/theros/ThassaGodOfTheSea.java index 802e369442e..434537189d6 100644 --- a/Mage.Sets/src/mage/sets/theros/ThassaGodOfTheSea.java +++ b/Mage.Sets/src/mage/sets/theros/ThassaGodOfTheSea.java @@ -38,7 +38,7 @@ import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.dynamicvalue.common.DevotionCount; import mage.abilities.effects.Effect; import mage.abilities.effects.common.ScryEffect; -import mage.abilities.effects.common.continious.CantBeBlockedTargetEffect; +import mage.abilities.effects.common.combat.CantBeBlockedTargetEffect; import mage.abilities.effects.common.continious.LoseCreatureTypeSourceEffect; import mage.abilities.keyword.IndestructibleAbility; import mage.cards.CardImpl; diff --git a/Mage.Sets/src/mage/sets/theros/UnderworldCerberus.java b/Mage.Sets/src/mage/sets/theros/UnderworldCerberus.java index 9bc15de5b19..cfa833b1ff2 100644 --- a/Mage.Sets/src/mage/sets/theros/UnderworldCerberus.java +++ b/Mage.Sets/src/mage/sets/theros/UnderworldCerberus.java @@ -35,7 +35,7 @@ import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.ReplacementEffectImpl; import mage.abilities.effects.common.ExileSourceEffect; import mage.abilities.effects.common.ReturnToHandFromGraveyardAllEffect; -import mage.abilities.effects.common.continious.CantBeBlockedByOneEffect; +import mage.abilities.effects.common.combat.CantBeBlockedByOneEffect; import mage.cards.Card; import mage.cards.CardImpl; import mage.constants.CardType; diff --git a/Mage.Sets/src/mage/sets/theros/Vaporkin.java b/Mage.Sets/src/mage/sets/theros/Vaporkin.java index 3a645314126..dde4497c0d4 100644 --- a/Mage.Sets/src/mage/sets/theros/Vaporkin.java +++ b/Mage.Sets/src/mage/sets/theros/Vaporkin.java @@ -30,7 +30,7 @@ package mage.sets.theros; import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; -import mage.abilities.effects.common.continious.CanBlockOnlyFlyingEffect; +import mage.abilities.effects.common.combat.CanBlockOnlyFlyingEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.constants.CardType; diff --git a/Mage.Sets/src/mage/sets/timespiral/TwoHeadedSliver.java b/Mage.Sets/src/mage/sets/timespiral/TwoHeadedSliver.java index 01cc2b2ce1e..e29a13d2cda 100644 --- a/Mage.Sets/src/mage/sets/timespiral/TwoHeadedSliver.java +++ b/Mage.Sets/src/mage/sets/timespiral/TwoHeadedSliver.java @@ -35,7 +35,7 @@ import mage.constants.Rarity; import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; -import mage.abilities.effects.common.continious.CantBeBlockedByOneEffect; +import mage.abilities.effects.common.combat.CantBeBlockedByOneEffect; import mage.abilities.effects.common.continious.GainAbilityAllEffect; import mage.cards.CardImpl; import mage.filter.common.FilterCreaturePermanent; diff --git a/Mage.Sets/src/mage/sets/worldwake/SummitApes.java b/Mage.Sets/src/mage/sets/worldwake/SummitApes.java index cec0959da2c..915636a79bd 100644 --- a/Mage.Sets/src/mage/sets/worldwake/SummitApes.java +++ b/Mage.Sets/src/mage/sets/worldwake/SummitApes.java @@ -35,7 +35,7 @@ import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.condition.common.ControlsPermanentCondition; import mage.abilities.decorator.ConditionalContinousEffect; -import mage.abilities.effects.common.continious.CantBeBlockedByOneEffect; +import mage.abilities.effects.common.combat.CantBeBlockedByOneEffect; import mage.cards.CardImpl; import mage.constants.Zone; import mage.filter.common.FilterLandPermanent; diff --git a/Mage.Sets/src/mage/sets/zendikar/TurntimberBasilisk.java b/Mage.Sets/src/mage/sets/zendikar/TurntimberBasilisk.java index d814cd60b62..bc16de2ec8d 100644 --- a/Mage.Sets/src/mage/sets/zendikar/TurntimberBasilisk.java +++ b/Mage.Sets/src/mage/sets/zendikar/TurntimberBasilisk.java @@ -32,7 +32,7 @@ import mage.constants.CardType; import mage.constants.Rarity; import mage.MageInt; import mage.abilities.common.LandfallAbility; -import mage.abilities.effects.common.combat.MustBlockSourceTargetEffect; +import mage.abilities.effects.common.combat.MustBeBlockedByTargetSourceEffect; import mage.abilities.keyword.DeathtouchAbility; import mage.cards.CardImpl; import mage.target.common.TargetCreaturePermanent; @@ -54,7 +54,7 @@ public class TurntimberBasilisk extends CardImpl { this.addAbility(DeathtouchAbility.getInstance()); // Landfall - Whenever a land enters the battlefield under your control, you may have target creature block Turntimber Basilisk this turn if able. - LandfallAbility ability = new LandfallAbility(new MustBlockSourceTargetEffect(), true); + LandfallAbility ability = new LandfallAbility(new MustBeBlockedByTargetSourceEffect(), true); ability.addTarget(new TargetCreaturePermanent()); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/sets/zendikar/WelkinTern.java b/Mage.Sets/src/mage/sets/zendikar/WelkinTern.java index 25e750252a6..1b6801d697a 100644 --- a/Mage.Sets/src/mage/sets/zendikar/WelkinTern.java +++ b/Mage.Sets/src/mage/sets/zendikar/WelkinTern.java @@ -34,7 +34,7 @@ import mage.constants.Rarity; import mage.constants.Zone; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; -import mage.abilities.effects.common.continious.CanBlockOnlyFlyingEffect; +import mage.abilities.effects.common.combat.CanBlockOnlyFlyingEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; diff --git a/Mage/src/mage/abilities/effects/RequirementBlockEffect.java b/Mage/src/mage/abilities/effects/RequirementBlockEffect.java deleted file mode 100644 index 8934caa5b29..00000000000 --- a/Mage/src/mage/abilities/effects/RequirementBlockEffect.java +++ /dev/null @@ -1,66 +0,0 @@ -/* - * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, are - * permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, this list of - * conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright notice, this list - * of conditions and the following disclaimer in the documentation and/or other materials - * provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND - * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON - * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * The views and conclusions contained in the software and documentation are those of the - * authors and should not be interpreted as representing official policies, either expressed - * or implied, of BetaSteward_at_googlemail.com. - */ - -package mage.abilities.effects; - -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.abilities.Ability; -import mage.game.Game; -import mage.game.events.GameEvent; -import mage.game.events.GameEvent.EventType; - -/** - * - * @author BetaSteward_at_googlemail.com - */ -public abstract class RequirementBlockEffect> extends ReplacementEffectImpl { - - public RequirementBlockEffect(Duration duration) { - super(duration, Outcome.Detriment); - } - - public RequirementBlockEffect(final RequirementBlockEffect effect) { - super(effect); - } - - @Override - public boolean replaceEvent(GameEvent event, Ability source, Game game) { - apply(game, source); - return false; - } - - @Override - public boolean applies(GameEvent event, Ability source, Game game) { - if (event.getType().equals(EventType.DECLARE_BLOCKERS_STEP_PRE)) - return true; - return false; - } - - -} diff --git a/Mage/src/mage/abilities/effects/RequirementEffect.java b/Mage/src/mage/abilities/effects/RequirementEffect.java index 36a9f9da72a..c7fd0f48b08 100644 --- a/Mage/src/mage/abilities/effects/RequirementEffect.java +++ b/Mage/src/mage/abilities/effects/RequirementEffect.java @@ -28,14 +28,14 @@ package mage.abilities.effects; +import java.util.UUID; +import mage.abilities.Ability; import mage.constants.Duration; import mage.constants.EffectType; import mage.constants.Outcome; -import mage.abilities.Ability; import mage.game.Game; import mage.game.permanent.Permanent; -import java.util.UUID; /** * @@ -75,4 +75,8 @@ public abstract class RequirementEffect> extends return null; } + public UUID mustBlockAttackerIfElseUnblocked(Ability source, Game game) { + return null; + } + } diff --git a/Mage/src/mage/abilities/effects/common/continious/CanAttackAsThoughtItDidntHaveDefenderEffect.java b/Mage/src/mage/abilities/effects/common/combat/CanAttackAsThoughtItDidntHaveDefenderEffect.java similarity index 95% rename from Mage/src/mage/abilities/effects/common/continious/CanAttackAsThoughtItDidntHaveDefenderEffect.java rename to Mage/src/mage/abilities/effects/common/combat/CanAttackAsThoughtItDidntHaveDefenderEffect.java index e8b27617186..b93cbed9d2d 100644 --- a/Mage/src/mage/abilities/effects/common/continious/CanAttackAsThoughtItDidntHaveDefenderEffect.java +++ b/Mage/src/mage/abilities/effects/common/combat/CanAttackAsThoughtItDidntHaveDefenderEffect.java @@ -25,7 +25,7 @@ * authors and should not be interpreted as representing official policies, either expressed * or implied, of BetaSteward_at_googlemail.com. */ -package mage.abilities.effects.common.continious; +package mage.abilities.effects.common.combat; import java.util.UUID; import mage.abilities.Ability; diff --git a/Mage/src/mage/abilities/effects/common/continious/CanBlockAdditionalCreatureEffect.java b/Mage/src/mage/abilities/effects/common/combat/CanBlockAdditionalCreatureEffect.java similarity index 96% rename from Mage/src/mage/abilities/effects/common/continious/CanBlockAdditionalCreatureEffect.java rename to Mage/src/mage/abilities/effects/common/combat/CanBlockAdditionalCreatureEffect.java index 966c2b74caf..d9b8c55c796 100644 --- a/Mage/src/mage/abilities/effects/common/continious/CanBlockAdditionalCreatureEffect.java +++ b/Mage/src/mage/abilities/effects/common/combat/CanBlockAdditionalCreatureEffect.java @@ -25,7 +25,7 @@ * authors and should not be interpreted as representing official policies, either expressed * or implied, of BetaSteward_at_googlemail.com. */ -package mage.abilities.effects.common.continious; +package mage.abilities.effects.common.combat; import mage.abilities.Ability; import mage.abilities.effects.ContinuousEffectImpl; diff --git a/Mage/src/mage/abilities/effects/common/continious/CanBlockOnlyFlyingEffect.java b/Mage/src/mage/abilities/effects/common/combat/CanBlockOnlyFlyingEffect.java similarity index 98% rename from Mage/src/mage/abilities/effects/common/continious/CanBlockOnlyFlyingEffect.java rename to Mage/src/mage/abilities/effects/common/combat/CanBlockOnlyFlyingEffect.java index 8e813ad5910..9639a900e25 100644 --- a/Mage/src/mage/abilities/effects/common/continious/CanBlockOnlyFlyingEffect.java +++ b/Mage/src/mage/abilities/effects/common/combat/CanBlockOnlyFlyingEffect.java @@ -25,7 +25,7 @@ * authors and should not be interpreted as representing official policies, either expressed * or implied, of BetaSteward_at_googlemail.com. */ -package mage.abilities.effects.common.continious; +package mage.abilities.effects.common.combat; import mage.constants.Duration; import mage.constants.Outcome; diff --git a/Mage/src/mage/abilities/effects/common/continious/CantBeBlockedByCreaturesSourceEffect.java b/Mage/src/mage/abilities/effects/common/combat/CantBeBlockedByCreaturesSourceEffect.java similarity index 96% rename from Mage/src/mage/abilities/effects/common/continious/CantBeBlockedByCreaturesSourceEffect.java rename to Mage/src/mage/abilities/effects/common/combat/CantBeBlockedByCreaturesSourceEffect.java index dcb9d97848c..542b3a67717 100644 --- a/Mage/src/mage/abilities/effects/common/continious/CantBeBlockedByCreaturesSourceEffect.java +++ b/Mage/src/mage/abilities/effects/common/combat/CantBeBlockedByCreaturesSourceEffect.java @@ -25,7 +25,7 @@ * authors and should not be interpreted as representing official policies, either expressed * or implied, of BetaSteward_at_googlemail.com. */ -package mage.abilities.effects.common.continious; +package mage.abilities.effects.common.combat; import mage.abilities.Ability; import mage.abilities.effects.RestrictionEffect; diff --git a/Mage/src/mage/abilities/effects/common/continious/CantBeBlockedByCreaturesWithLessPowerEffect.java b/Mage/src/mage/abilities/effects/common/combat/CantBeBlockedByCreaturesWithLessPowerEffect.java similarity index 96% rename from Mage/src/mage/abilities/effects/common/continious/CantBeBlockedByCreaturesWithLessPowerEffect.java rename to Mage/src/mage/abilities/effects/common/combat/CantBeBlockedByCreaturesWithLessPowerEffect.java index 26166c874fd..6d50b317075 100644 --- a/Mage/src/mage/abilities/effects/common/continious/CantBeBlockedByCreaturesWithLessPowerEffect.java +++ b/Mage/src/mage/abilities/effects/common/combat/CantBeBlockedByCreaturesWithLessPowerEffect.java @@ -25,7 +25,7 @@ * authors and should not be interpreted as representing official policies, either expressed * or implied, of BetaSteward_at_googlemail.com. */ -package mage.abilities.effects.common.continious; +package mage.abilities.effects.common.combat; import mage.constants.Duration; import mage.abilities.Ability; diff --git a/Mage/src/mage/abilities/effects/common/continious/CantBeBlockedByOneAllEffect.java b/Mage/src/mage/abilities/effects/common/combat/CantBeBlockedByOneAllEffect.java similarity index 96% rename from Mage/src/mage/abilities/effects/common/continious/CantBeBlockedByOneAllEffect.java rename to Mage/src/mage/abilities/effects/common/combat/CantBeBlockedByOneAllEffect.java index 56453dbaf2a..c633a2636a3 100644 --- a/Mage/src/mage/abilities/effects/common/continious/CantBeBlockedByOneAllEffect.java +++ b/Mage/src/mage/abilities/effects/common/combat/CantBeBlockedByOneAllEffect.java @@ -25,7 +25,7 @@ * authors and should not be interpreted as representing official policies, either expressed * or implied, of BetaSteward_at_googlemail.com. */ -package mage.abilities.effects.common.continious; +package mage.abilities.effects.common.combat; import mage.constants.Duration; import mage.constants.Layer; diff --git a/Mage/src/mage/abilities/effects/common/continious/CantBeBlockedByOneAttachedEffect.java b/Mage/src/mage/abilities/effects/common/combat/CantBeBlockedByOneAttachedEffect.java similarity index 96% rename from Mage/src/mage/abilities/effects/common/continious/CantBeBlockedByOneAttachedEffect.java rename to Mage/src/mage/abilities/effects/common/combat/CantBeBlockedByOneAttachedEffect.java index e77fcfdbc91..e05e8c36155 100644 --- a/Mage/src/mage/abilities/effects/common/continious/CantBeBlockedByOneAttachedEffect.java +++ b/Mage/src/mage/abilities/effects/common/combat/CantBeBlockedByOneAttachedEffect.java @@ -25,7 +25,7 @@ * authors and should not be interpreted as representing official policies, either expressed * or implied, of BetaSteward_at_googlemail.com. */ -package mage.abilities.effects.common.continious; +package mage.abilities.effects.common.combat; import mage.constants.AttachmentType; import mage.constants.Duration; diff --git a/Mage/src/mage/abilities/effects/common/continious/CantBeBlockedByOneEffect.java b/Mage/src/mage/abilities/effects/common/combat/CantBeBlockedByOneEffect.java similarity index 98% rename from Mage/src/mage/abilities/effects/common/continious/CantBeBlockedByOneEffect.java rename to Mage/src/mage/abilities/effects/common/combat/CantBeBlockedByOneEffect.java index 118ee6ad41c..015c7808fd1 100644 --- a/Mage/src/mage/abilities/effects/common/continious/CantBeBlockedByOneEffect.java +++ b/Mage/src/mage/abilities/effects/common/combat/CantBeBlockedByOneEffect.java @@ -25,7 +25,7 @@ * authors and should not be interpreted as representing official policies, either expressed * or implied, of BetaSteward_at_googlemail.com. */ -package mage.abilities.effects.common.continious; +package mage.abilities.effects.common.combat; import mage.constants.Duration; import mage.constants.Layer; diff --git a/Mage/src/mage/abilities/effects/common/continious/CantBeBlockedTargetEffect.java b/Mage/src/mage/abilities/effects/common/combat/CantBeBlockedTargetEffect.java similarity index 96% rename from Mage/src/mage/abilities/effects/common/continious/CantBeBlockedTargetEffect.java rename to Mage/src/mage/abilities/effects/common/combat/CantBeBlockedTargetEffect.java index 2c6b1bcf70c..d104412a630 100644 --- a/Mage/src/mage/abilities/effects/common/continious/CantBeBlockedTargetEffect.java +++ b/Mage/src/mage/abilities/effects/common/combat/CantBeBlockedTargetEffect.java @@ -25,7 +25,7 @@ * authors and should not be interpreted as representing official policies, either expressed * or implied, of BetaSteward_at_googlemail.com. */ -package mage.abilities.effects.common.continious; +package mage.abilities.effects.common.combat; import mage.abilities.Ability; import mage.abilities.Mode; diff --git a/Mage/src/mage/abilities/effects/common/combat/MustBlockAttachedEffect.java b/Mage/src/mage/abilities/effects/common/combat/MustBeBlockedByAllAttachedEffect.java similarity index 83% rename from Mage/src/mage/abilities/effects/common/combat/MustBlockAttachedEffect.java rename to Mage/src/mage/abilities/effects/common/combat/MustBeBlockedByAllAttachedEffect.java index 41341a5e754..c1ba763d6dc 100644 --- a/Mage/src/mage/abilities/effects/common/combat/MustBlockAttachedEffect.java +++ b/Mage/src/mage/abilities/effects/common/combat/MustBeBlockedByAllAttachedEffect.java @@ -40,21 +40,21 @@ import mage.game.permanent.Permanent; * * @author LevelX2 */ -public class MustBlockAttachedEffect extends RequirementEffect { +public class MustBeBlockedByAllAttachedEffect extends RequirementEffect { protected AttachmentType attachmentType; - public MustBlockAttachedEffect(AttachmentType attachmentType) { + public MustBeBlockedByAllAttachedEffect(AttachmentType attachmentType) { this(Duration.WhileOnBattlefield, attachmentType); } - public MustBlockAttachedEffect(Duration duration, AttachmentType attachmentType) { + public MustBeBlockedByAllAttachedEffect(Duration duration, AttachmentType attachmentType) { super(duration); this.attachmentType = attachmentType; staticText = "All creatures able to block " + (attachmentType.equals(AttachmentType.AURA) ? "enchanted":"equipped") + " creature do so"; } - public MustBlockAttachedEffect(final MustBlockAttachedEffect effect) { + public MustBeBlockedByAllAttachedEffect(final MustBeBlockedByAllAttachedEffect effect) { super(effect); } @@ -83,8 +83,8 @@ public class MustBlockAttachedEffect extends RequirementEffect { +public class MustBeBlockedByAllSourceEffect extends RequirementEffect { - public MustBlockSourceEffect() { + public MustBeBlockedByAllSourceEffect() { this(Duration.WhileOnBattlefield); } - public MustBlockSourceEffect(Duration duration) { + public MustBeBlockedByAllSourceEffect(Duration duration) { super(duration); staticText = "All creatures able to block {this} do so"; } - public MustBlockSourceEffect(final MustBlockSourceEffect effect) { + public MustBeBlockedByAllSourceEffect(final MustBeBlockedByAllSourceEffect effect) { super(effect); } @@ -75,8 +75,8 @@ public class MustBlockSourceEffect extends RequirementEffect { + + public MustBeBlockedByAtLeastOneSourceEffect() { + this(Duration.EndOfTurn); + } + + public MustBeBlockedByAtLeastOneSourceEffect(Duration duration) { + super(duration); + staticText = "{this} must be blocked this turn if able"; + } + + public MustBeBlockedByAtLeastOneSourceEffect(final MustBeBlockedByAtLeastOneSourceEffect effect) { + super(effect); + } + + @Override + public boolean applies(Permanent permanent, Ability source, Game game) { + return true; + } + + @Override + public boolean mustAttack(Game game) { + return false; + } + + @Override + public boolean mustBlock(Game game) { + return false; + } + + @Override + public UUID mustBlockAttackerIfElseUnblocked(Ability source, Game game) { + return source.getSourceId(); + } + + @Override + public MustBeBlockedByAtLeastOneSourceEffect copy() { + return new MustBeBlockedByAtLeastOneSourceEffect(this); + } + +} diff --git a/Mage/src/mage/abilities/effects/common/combat/MustBeBlockedTargetEffect.java b/Mage/src/mage/abilities/effects/common/combat/MustBeBlockedByAtLeastOneTargetEffect.java similarity index 85% rename from Mage/src/mage/abilities/effects/common/combat/MustBeBlockedTargetEffect.java rename to Mage/src/mage/abilities/effects/common/combat/MustBeBlockedByAtLeastOneTargetEffect.java index 355ad72e66a..4dbb0cda840 100644 --- a/Mage/src/mage/abilities/effects/common/combat/MustBeBlockedTargetEffect.java +++ b/Mage/src/mage/abilities/effects/common/combat/MustBeBlockedByAtLeastOneTargetEffect.java @@ -64,18 +64,18 @@ import mage.game.permanent.Permanent; * * @author LevelX2 */ -public class MustBeBlockedTargetEffect extends RequirementEffect { +public class MustBeBlockedByAtLeastOneTargetEffect extends RequirementEffect { - public MustBeBlockedTargetEffect() { + public MustBeBlockedByAtLeastOneTargetEffect() { this(Duration.EndOfTurn); } - public MustBeBlockedTargetEffect(Duration duration) { + public MustBeBlockedByAtLeastOneTargetEffect(Duration duration) { super(duration); staticText = "Target creature must be blocked this turn if able"; } - public MustBeBlockedTargetEffect(final MustBeBlockedTargetEffect effect) { + public MustBeBlockedByAtLeastOneTargetEffect(final MustBeBlockedByAtLeastOneTargetEffect effect) { super(effect); } @@ -91,17 +91,17 @@ public class MustBeBlockedTargetEffect extends RequirementEffect { +public class MustBeBlockedByTargetSourceEffect extends RequirementEffect { - public MustBlockSourceTargetEffect() { + public MustBeBlockedByTargetSourceEffect() { this(Duration.EndOfTurn); } - public MustBlockSourceTargetEffect(Duration duration) { + public MustBeBlockedByTargetSourceEffect(Duration duration) { super(duration); staticText = "Target creature blocks {this} this turn if able"; } - public MustBlockSourceTargetEffect(final MustBlockSourceTargetEffect effect) { + public MustBeBlockedByTargetSourceEffect(final MustBeBlockedByTargetSourceEffect effect) { super(effect); } @@ -79,8 +79,8 @@ public class MustBlockSourceTargetEffect extends RequirementEffect { if (creature.getBlocking() == 0 && game.getOpponents(attackerId).contains(creature.getControllerId())) { // get all requiremet effects that apply to the creature for (RequirementEffect effect : game.getContinuousEffects().getApplicableRequirementEffects(creature, game).keySet()) { - + // check the mustBlockAny if (effect.mustBlockAny(game)) { - // check that it can block an attacker + // check that it can block at least one of the attackers boolean mayBlock = false; for (UUID attackingCreatureId : getAttackers()) { if (creature.canBlock(attackingCreatureId, game)) { @@ -355,6 +355,7 @@ public class Combat implements Serializable, Copyable { break; } } + // is so inform human player or set block for AI player if (mayBlock) { if (controller.isHuman()) { game.informPlayer(controller, "Creature should block this turn: " + creature.getName());