From d7c1b8b9c9768ddd59c908bc85dba2f4981a17ec Mon Sep 17 00:00:00 2001 From: ninthworld Date: Tue, 17 Jul 2018 13:01:19 -0700 Subject: [PATCH] fix card bugs for Star Wars set --- .../card/dl/sources/GrabbagImageSource.java | 3 +- .../plugins/card/utils/CardImageUtils.java | 1 + ...s.java => DarthTyranusCountOfSerenno.java} | 10 +++--- Mage.Sets/src/mage/cards/g/GeneralHux.java | 10 ++++-- .../src/mage/cards/h/HanSoloScrumrat.java | 31 ++++++------------- .../src/mage/cards/s/SupremeLeaderSnoke.java | 2 +- Mage.Sets/src/mage/sets/StarWars.java | 2 +- 7 files changed, 27 insertions(+), 32 deletions(-) rename Mage.Sets/src/mage/cards/d/{DarthTyranus.java => DarthTyranusCountOfSerenno.java} (93%) diff --git a/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/GrabbagImageSource.java b/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/GrabbagImageSource.java index 982e8fef18c..8d3e12236c2 100644 --- a/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/GrabbagImageSource.java +++ b/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/GrabbagImageSource.java @@ -360,7 +360,7 @@ public enum GrabbagImageSource implements CardImageSource { singleLinks.put("SWS/Astromech Droid", "v0TpHMh.jpg"); singleLinks.put("SWS/Buried Ruin", "QkmIWYg.png"); singleLinks.put("SWS/Flame Trooper", "RkY7KFJ.jpg"); - singleLinks.put("SWS/Force Statis", "FavLrcY.jpg"); + singleLinks.put("SWS/Force Stasis", "FavLrcY.jpg"); singleLinks.put("SWS/Salvage Trader", "qGwk7Bn.jpg"); singleLinks.put("SWS/Outer Rim Gang", "kEjKQGy.png"); singleLinks.put("SWS/Rathtar", "CYhHRqF.png"); @@ -431,6 +431,7 @@ public enum GrabbagImageSource implements CardImageSource { singleLinks.put("SWS/Aurra Sing", "BLWbVJC.png"); singleLinks.put("SWS/Yoda", "zH0sYxg.png"); singleLinks.put("SWS/Emblem Luke Skywalker", "kHELZDJ.jpg"); + // Tokens singleLinks.put("SWS/Ewok", "N2MvJyr.png"); singleLinks.put("SWS/B-Wing", "oH62AUD.png"); diff --git a/Mage.Client/src/main/java/org/mage/plugins/card/utils/CardImageUtils.java b/Mage.Client/src/main/java/org/mage/plugins/card/utils/CardImageUtils.java index fb7c42aa090..138eeb8dc52 100644 --- a/Mage.Client/src/main/java/org/mage/plugins/card/utils/CardImageUtils.java +++ b/Mage.Client/src/main/java/org/mage/plugins/card/utils/CardImageUtils.java @@ -218,6 +218,7 @@ public final class CardImageUtils { if (cardName.isEmpty()) { cardName = prepareCardNameForFile(card.getName()); } + cardName = cardName.replaceAll("[\\\\/:*?\"<>|]", ""); String finalFileName = ""; if (card.getUsesVariousArt()) { diff --git a/Mage.Sets/src/mage/cards/d/DarthTyranus.java b/Mage.Sets/src/mage/cards/d/DarthTyranusCountOfSerenno.java similarity index 93% rename from Mage.Sets/src/mage/cards/d/DarthTyranus.java rename to Mage.Sets/src/mage/cards/d/DarthTyranusCountOfSerenno.java index fea86e5c631..124c90a7b0b 100644 --- a/Mage.Sets/src/mage/cards/d/DarthTyranus.java +++ b/Mage.Sets/src/mage/cards/d/DarthTyranusCountOfSerenno.java @@ -31,9 +31,9 @@ import mage.target.common.TargetCreaturePermanent; * * @author Styxo */ -public final class DarthTyranus extends CardImpl { +public final class DarthTyranusCountOfSerenno extends CardImpl { - public DarthTyranus(UUID ownerId, CardSetInfo setInfo) { + public DarthTyranusCountOfSerenno(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.PLANESWALKER},"{1}{W}{U}{B}"); this.subtype.add(SubType.DOOKU); @@ -55,13 +55,13 @@ public final class DarthTyranus extends CardImpl { this.addAbility(ability); } - public DarthTyranus(final DarthTyranus card) { + public DarthTyranusCountOfSerenno(final DarthTyranusCountOfSerenno card) { super(card); } @Override - public DarthTyranus copy() { - return new DarthTyranus(this); + public DarthTyranusCountOfSerenno copy() { + return new DarthTyranusCountOfSerenno(this); } } diff --git a/Mage.Sets/src/mage/cards/g/GeneralHux.java b/Mage.Sets/src/mage/cards/g/GeneralHux.java index ba726cf67a3..653a5381f2a 100644 --- a/Mage.Sets/src/mage/cards/g/GeneralHux.java +++ b/Mage.Sets/src/mage/cards/g/GeneralHux.java @@ -8,6 +8,7 @@ import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.Effect; import mage.abilities.effects.common.continuous.BoostSourceEffect; +import mage.abilities.effects.common.continuous.GainAbilitySourceEffect; import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; import mage.constants.*; import mage.cards.CardImpl; @@ -41,9 +42,12 @@ public final class GeneralHux extends CardImpl { this.toughness = new MageInt(3); // Whenever General Hux or another nontoken creature enters the battlefield under your control, until end of turn, target creature gains "{B}: This creature gets +1/+1 until end of turn." - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(1, 1, Duration.EndOfTurn), new ManaCostsImpl("{B}")); - Effect effect = new GainAbilityTargetEffect(ability, Duration.EndOfTurn); - effect.setText("until end of turn, target creature gains \"{B}: This creature gets +1/+1 until end of turn.\""); + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, + new BoostSourceEffect(1, 1, Duration.EndOfTurn) + .setText("This creature gets +1/+1 until end of turn"), + new ManaCostsImpl("{B}")); + Effect effect = new GainAbilitySourceEffect(ability, Duration.EndOfTurn); + effect.setText("until end of turn, target creature gains"); this.addAbility(new EntersBattlefieldControlledTriggeredAbility(Zone.BATTLEFIELD, effect, filter, false)); } diff --git a/Mage.Sets/src/mage/cards/h/HanSoloScrumrat.java b/Mage.Sets/src/mage/cards/h/HanSoloScrumrat.java index eda1cb0950a..9508f8e3189 100644 --- a/Mage.Sets/src/mage/cards/h/HanSoloScrumrat.java +++ b/Mage.Sets/src/mage/cards/h/HanSoloScrumrat.java @@ -2,10 +2,7 @@ package mage.cards.h; import java.util.UUID; import mage.MageInt; -import mage.abilities.Ability; -import mage.abilities.DelayedTriggeredAbilities; -import mage.abilities.DelayedTriggeredAbility; -import mage.abilities.TriggeredAbility; +import mage.abilities.*; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.condition.common.MyTurnCondition; import mage.abilities.costs.mana.ManaCostsImpl; @@ -68,10 +65,10 @@ public final class HanSoloScrumrat extends CardImpl { } } -class HanSoloScrumratTriggeredAbility extends DelayedTriggeredAbility { +class HanSoloScrumratTriggeredAbility extends TriggeredAbilityImpl { public HanSoloScrumratTriggeredAbility() { - super(new AddCountersTargetEffect(CounterType.P1P1.createInstance()), Duration.EndOfTurn, false); + super(Zone.BATTLEFIELD, new AddCountersTargetEffect(CounterType.P1P1.createInstance()), false); } public HanSoloScrumratTriggeredAbility(final HanSoloScrumratTriggeredAbility ability) { @@ -85,25 +82,17 @@ class HanSoloScrumratTriggeredAbility extends DelayedTriggeredAbility { @Override public boolean checkEventType(GameEvent event, Game game) { - switch(event.getType()) { - case DAMAGED_CREATURE: - case DAMAGED_PLAYER: - case DAMAGED_PLANESWALKER: - return true; - } - return false; + return event.getType() == GameEvent.EventType.DAMAGED_CREATURE + || event.getType() == GameEvent.EventType.DAMAGED_PLAYER + || event.getType() == GameEvent.EventType.DAMAGED_PLANESWALKER; } @Override public boolean checkTrigger(GameEvent event, Game game) { - Permanent target = game.getPermanent(this.getFirstTarget()); - if (target != null && event.getSourceId().equals(target.getId()) && MyTurnCondition.instance.apply(game, this)) { - for (Effect effect : this.getEffects()) { - effect.setValue("damage", event.getAmount()); - } - return true; - } - return false; + Permanent source = game.getPermanent(this.getSourceId()); + return source != null + && game.isActivePlayer(source.getControllerId()) + && event.getSourceId().equals(this.getSourceId()); } @Override diff --git a/Mage.Sets/src/mage/cards/s/SupremeLeaderSnoke.java b/Mage.Sets/src/mage/cards/s/SupremeLeaderSnoke.java index 2dae9ebe816..b434075e19d 100644 --- a/Mage.Sets/src/mage/cards/s/SupremeLeaderSnoke.java +++ b/Mage.Sets/src/mage/cards/s/SupremeLeaderSnoke.java @@ -66,7 +66,7 @@ public final class SupremeLeaderSnoke extends CardImpl { ability3.addEffect(new GainAbilityTargetEffect(HasteAbility.getInstance(), Duration.WhileOnBattlefield).setText("It gains haste")); ability3.addEffect(new GainAbilityTargetEffect(new AtTheBeginOfNextEndStepDelayedTriggeredAbility(new SacrificeSourceEffect()), Duration.WhileOnBattlefield) .setText("Sacrifice that creature at the beginning of the next end step")); - ability3Id = ability2.getOriginalId(); + ability3Id = ability3.getOriginalId(); ability3.addTarget(new TargetCreaturePermanent()); this.addAbility(ability3); } diff --git a/Mage.Sets/src/mage/sets/StarWars.java b/Mage.Sets/src/mage/sets/StarWars.java index bab95291aeb..64a7d9de17f 100644 --- a/Mage.Sets/src/mage/sets/StarWars.java +++ b/Mage.Sets/src/mage/sets/StarWars.java @@ -87,7 +87,7 @@ public final class StarWars extends ExpansionSet { cards.add(new SetCardInfo("Dark Trooper", 231, Rarity.UNCOMMON, mage.cards.d.DarkTrooper.class)); cards.add(new SetCardInfo("Darth Maul", 178, Rarity.RARE, mage.cards.d.DarthMaul.class)); cards.add(new SetCardInfo("Darth Sidious, Sith Lord", 179, Rarity.MYTHIC, mage.cards.d.DarthSidiousSithLord.class)); - cards.add(new SetCardInfo("Darth Tyranus", 180, Rarity.MYTHIC, mage.cards.d.DarthTyranus.class)); + cards.add(new SetCardInfo("Darth Tyranus, Count of Serenno", 180, Rarity.MYTHIC, mage.cards.d.DarthTyranusCountOfSerenno.class)); cards.add(new SetCardInfo("Darth Vader", 140, Rarity.MYTHIC, mage.cards.d.DarthVader.class)); cards.add(new SetCardInfo("Death Trooper", 71, Rarity.UNCOMMON, mage.cards.d.DeathTrooper.class)); cards.add(new SetCardInfo("Delay Tactic", 504, Rarity.COMMON, mage.cards.d.DelayTactic.class));