From 494fc39dba8683605259e54f02f71b26bc975987 Mon Sep 17 00:00:00 2001 From: PurpleCrowbar <26198472+PurpleCrowbar@users.noreply.github.com> Date: Fri, 24 Jun 2022 07:32:07 +0100 Subject: [PATCH] Added "available image set codes" functionality to emblems (#9150) * Added pulling image from list of available image set codes functionality to emblems * Provided available image set codes for Daretti, Scrap Savant emblem * Fixed typo in a comment --- Mage/src/main/java/mage/game/command/Emblem.java | 10 ++++++++++ .../game/command/emblems/DarettiScrapSavantEmblem.java | 3 +++ 2 files changed, 13 insertions(+) diff --git a/Mage/src/main/java/mage/game/command/Emblem.java b/Mage/src/main/java/mage/game/command/Emblem.java index 5baa39ea1ba..06cf459ca7c 100644 --- a/Mage/src/main/java/mage/game/command/Emblem.java +++ b/Mage/src/main/java/mage/game/command/Emblem.java @@ -19,6 +19,7 @@ import mage.constants.SuperType; import mage.game.Game; import mage.game.events.ZoneChangeEvent; import mage.util.GameLog; +import mage.util.RandomUtil; import mage.util.SubTypes; import java.util.ArrayList; @@ -45,6 +46,9 @@ public class Emblem implements CommandObject { private Abilities abilites = new AbilitiesImpl<>(); private String expansionSetCodeForImage = ""; + // list of set codes emblem images are available for + protected List availableImageSetCodes = new ArrayList<>(); + public Emblem() { this.id = UUID.randomUUID(); } @@ -59,6 +63,7 @@ public class Emblem implements CommandObject { this.copyFrom = (emblem.copyFrom != null ? emblem.copyFrom : null); this.abilites = emblem.abilites.copy(); this.expansionSetCodeForImage = emblem.expansionSetCodeForImage; + this.availableImageSetCodes = emblem.availableImageSetCodes; } @Override @@ -80,6 +85,11 @@ public class Emblem implements CommandObject { if (expansionSetCodeForImage.isEmpty()) { expansionSetCodeForImage = ((Card) sourceObject).getExpansionSetCode(); } + if (!availableImageSetCodes.isEmpty()) { + if (expansionSetCodeForImage.equals("") || !availableImageSetCodes.contains(expansionSetCodeForImage)) { + expansionSetCodeForImage = availableImageSetCodes.get(RandomUtil.nextInt(availableImageSetCodes.size())); + } + } } } diff --git a/Mage/src/main/java/mage/game/command/emblems/DarettiScrapSavantEmblem.java b/Mage/src/main/java/mage/game/command/emblems/DarettiScrapSavantEmblem.java index b8e1b161ea6..5a4a07d2b24 100644 --- a/Mage/src/main/java/mage/game/command/emblems/DarettiScrapSavantEmblem.java +++ b/Mage/src/main/java/mage/game/command/emblems/DarettiScrapSavantEmblem.java @@ -17,6 +17,8 @@ import mage.game.events.GameEvent; import mage.game.events.ZoneChangeEvent; import mage.target.targetpointer.FixedTarget; +import java.util.Arrays; + /** * * @author spjspj @@ -26,6 +28,7 @@ public final class DarettiScrapSavantEmblem extends Emblem { public DarettiScrapSavantEmblem() { setName("Emblem Daretti"); + availableImageSetCodes = Arrays.asList("C14", "C16", "CM2"); this.getAbilities().add(new DarettiScrapSavantTriggeredAbility()); }