diff --git a/forge-adventure/src/main/java/forge/adventure/editor/QuestStageEdit.java b/forge-adventure/src/main/java/forge/adventure/editor/QuestStageEdit.java index 37323fc1318..3d7735fa0bb 100644 --- a/forge-adventure/src/main/java/forge/adventure/editor/QuestStageEdit.java +++ b/forge-adventure/src/main/java/forge/adventure/editor/QuestStageEdit.java @@ -169,7 +169,6 @@ public class QuestStageEdit extends FormPanel { switch(objectiveType.getSelectedItem().toString()){ case "Arena": arenaLabel.setVisible(true); - nyi.setVisible(true); poiPane.setVisible(true); anyPOI.setVisible(true); here.setVisible(true); diff --git a/forge-game/src/main/java/forge/game/ability/effects/ImmediateTriggerEffect.java b/forge-game/src/main/java/forge/game/ability/effects/ImmediateTriggerEffect.java index cf2c22ca2b7..9584388d40f 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/ImmediateTriggerEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/ImmediateTriggerEffect.java @@ -23,6 +23,8 @@ public class ImmediateTriggerEffect extends SpellAbilityEffect { protected String getStackDescription(SpellAbility sa) { if (sa.hasParam("TriggerDescription")) { return sa.getParam("TriggerDescription"); + } else if (sa.hasParam("SpellDescription")) { + return sa.getParam("SpellDescription"); } return ""; diff --git a/forge-game/src/main/java/forge/game/ability/effects/PlayEffect.java b/forge-game/src/main/java/forge/game/ability/effects/PlayEffect.java index 1f14afa6ecc..f5d1edc79aa 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/PlayEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/PlayEffect.java @@ -256,9 +256,10 @@ public class PlayEffect extends SpellAbilityEffect { if (sa.hasParam("ShowCardToActivator")) { game.getAction().revealTo(tgtCard, controller); } + String prompt = sa.hasParam("CastTransformed") ? "lblDoYouWantPlayCardTransformed" : "lblDoYouWantPlayCard"; if (singleOption && sa.getTargetCard() == null) sa.setPlayEffectCard(tgtCard);// show card to play rather than showing the source card - if (singleOption && !controller.getController().confirmAction(sa, null, Localizer.getInstance().getMessage("lblDoYouWantPlayCard", CardTranslation.getTranslatedName(tgtCard.getName())), null)) { + if (singleOption && !controller.getController().confirmAction(sa, null, Localizer.getInstance().getMessage(prompt, CardTranslation.getTranslatedName(tgtCard.getName())), null)) { if (wasFaceDown) { tgtCard.turnFaceDownNoUpdate(); tgtCard.updateStateForView(); diff --git a/forge-game/src/main/java/forge/game/card/CardDamageHistory.java b/forge-game/src/main/java/forge/game/card/CardDamageHistory.java index 43a0863287b..436811787ee 100644 --- a/forge-game/src/main/java/forge/game/card/CardDamageHistory.java +++ b/forge-game/src/main/java/forge/game/card/CardDamageHistory.java @@ -26,6 +26,7 @@ public class CardDamageHistory { private boolean creatureGotBlockedThisCombat = false; private List attackedThisTurn = Lists.newArrayList(); + private boolean attackedBattleThisTurn = false; private final List creatureAttackedLastTurnOf = Lists.newArrayList(); private final List NotAttackedSinceLastUpkeepOf = Lists.newArrayList(); @@ -59,6 +60,12 @@ public class CardDamageHistory { if (defender != null) { attackedThisTurn.add(defender); + if (defender instanceof Card) { + final Card def = (Card) defender; + if (def.isBattle()) { + attackedBattleThisTurn = true; + } + } } } /** @@ -84,6 +91,9 @@ public class CardDamageHistory { public final boolean hasAttackedThisTurn(GameEntity e) { return this.attackedThisTurn.contains(e); } + public final boolean hasAttackedBattleThisTurn() { + return this.attackedBattleThisTurn; + } /** *

* Setter for the field creatureAttackedLastTurn. @@ -272,6 +282,7 @@ public class CardDamageHistory { public void newTurn() { attackedThisTurn.clear(); + attackedBattleThisTurn = false; damagedThisCombat.clear(); damageDoneThisTurn.clear(); diff --git a/forge-game/src/main/java/forge/game/card/CardProperty.java b/forge-game/src/main/java/forge/game/card/CardProperty.java index aa6e5189171..d2761f7605a 100644 --- a/forge-game/src/main/java/forge/game/card/CardProperty.java +++ b/forge-game/src/main/java/forge/game/card/CardProperty.java @@ -218,6 +218,14 @@ public class CardProperty { || !sourceController.getOpponents().contains(card.getProtectingPlayer())) { return false; } + } else if (property.startsWith("ProtectedBy")) { + if (card.getProtectingPlayer() == null) { + return false; + } + final List lp = AbilityUtils.getDefinedPlayers(source, property.substring(12), spellAbility); + if (!lp.contains(card.getProtectingPlayer())) { + return false; + } } else if (property.startsWith("DefendingPlayer")) { Player p = property.endsWith("Ctrl") ? controller : card.getOwner(); if (!game.getPhaseHandler().inCombat()) { @@ -1242,6 +1250,10 @@ public class CardProperty { if (card.getDamageHistory().getCreatureAttacksThisTurn() == 0) { return false; } + } else if (property.startsWith("attackedBattleThisTurn")) { + if (!card.getDamageHistory().hasAttackedBattleThisTurn()) { + return false; + } } else if (property.startsWith("attackedYouThisTurn")) { if (!card.getDamageHistory().hasAttackedThisTurn(sourceController)) { return false; diff --git a/forge-game/src/main/java/forge/game/mana/Mana.java b/forge-game/src/main/java/forge/game/mana/Mana.java index 5f7b90d2d46..eed7ff0df17 100644 --- a/forge-game/src/main/java/forge/game/mana/Mana.java +++ b/forge-game/src/main/java/forge/game/mana/Mana.java @@ -61,6 +61,24 @@ public class Mana { return false; } + if (!sourceCard.equals(m2.sourceCard)) { + if (addsKeywords(null) != m2.addsKeywords(null)) { + return false; + } + if (addsCounters(null) != m2.addsCounters(null)) { + return false; + } + if (mp.isCannotCounterPaidWith() != mp2.isCannotCounterPaidWith()) { + return false; + } + if (mp.getTriggersWhenSpent() != mp2.getTriggersWhenSpent()) { + return false; + } + if (mp.isPersistentMana() != mp2.isPersistentMana()) { + return false; + } + } + return mp == mp2 || (mp.getManaRestrictions().equals(mp2.getManaRestrictions()) && mp.getExtraManaRestriction().equals(mp2.getExtraManaRestriction())); } diff --git a/forge-game/src/main/java/forge/game/spellability/AbilityManaPart.java b/forge-game/src/main/java/forge/game/spellability/AbilityManaPart.java index 1ee84e2bc8f..b1b9ff23bba 100644 --- a/forge-game/src/main/java/forge/game/spellability/AbilityManaPart.java +++ b/forge-game/src/main/java/forge/game/spellability/AbilityManaPart.java @@ -226,6 +226,10 @@ public class AbilityManaPart implements java.io.Serializable { return source.isValid(cannotCounterSpell, sourceCard.getController(), sourceCard, null); } + public boolean isCannotCounterPaidWith() { + return null != cannotCounterSpell; + } + public void addNoCounterEffect(SpellAbility saBeingPaid) { final Game game = sourceCard.getGame(); final Card eff = new Card(game.nextCardId(), game); diff --git a/forge-gui-mobile/src/forge/adventure/character/DialogActor.java b/forge-gui-mobile/src/forge/adventure/character/DialogActor.java index 1254b619f12..aeee3c78a16 100644 --- a/forge-gui-mobile/src/forge/adventure/character/DialogActor.java +++ b/forge-gui-mobile/src/forge/adventure/character/DialogActor.java @@ -44,17 +44,29 @@ public class DialogActor extends CharacterSprite { } }; dialog.addQuestAcceptedListener(listen); + + ChangeListener finished = new ChangeListener() { + @Override + public void changed(ChangeEvent changeEvent, Actor actor) { + removeFromMap(); + } + }; + dialog.addDialogCompleteListener(finished); } public void acceptQuest(){ Current.player().addQuest(questData); } + public void removeFromMap() { dialog = null; } + @Override public void onPlayerCollide() { - stage.resetPosition(); - stage.showDialog(); - dialog.activate(); + if (dialog != null) { + stage.resetPosition(); + stage.showDialog(); + dialog.activate(); + } } @Override diff --git a/forge-gui-mobile/src/forge/adventure/character/EnemySprite.java b/forge-gui-mobile/src/forge/adventure/character/EnemySprite.java index 4543839880e..89ccf262fb2 100644 --- a/forge-gui-mobile/src/forge/adventure/character/EnemySprite.java +++ b/forge-gui-mobile/src/forge/adventure/character/EnemySprite.java @@ -25,7 +25,6 @@ import forge.util.MyRandom; import java.util.LinkedList; import java.util.List; -import java.util.UUID; import java.util.stream.Collectors; /** @@ -55,7 +54,7 @@ public class EnemySprite extends CharacterSprite { public float threatRange = 0.0f; public float fleeRange = 0.0f; public boolean ignoreDungeonEffect = false; - public UUID questStageID; + public String questStageID; public EnemySprite(EnemyData enemyData) { this(0,enemyData); diff --git a/forge-gui-mobile/src/forge/adventure/data/AdventureQuestData.java b/forge-gui-mobile/src/forge/adventure/data/AdventureQuestData.java index 49d6eb18817..5689f0c3511 100644 --- a/forge-gui-mobile/src/forge/adventure/data/AdventureQuestData.java +++ b/forge-gui-mobile/src/forge/adventure/data/AdventureQuestData.java @@ -175,6 +175,8 @@ public class AdventureQuestData implements Serializable { public void initializeStage(AdventureQuestStage stage){ if (stage == null || stage.objective == null) return; + stage.initialize(); + switch (stage.objective){ case Clear: stage.setTargetPOI(poiTokens); @@ -311,7 +313,7 @@ public class AdventureQuestData implements Serializable { EnemyData toUse = generateTargetEnemyData(stage); toUse.lifetime = stage.count1; EnemySprite toReturn = new EnemySprite(toUse); - toReturn.questStageID = stage.questStageID; + toReturn.questStageID = stage.stageID.toString(); return toReturn; } return null; @@ -394,6 +396,34 @@ public class AdventureQuestData implements Serializable { } } + public void updateArenaComplete(boolean winner){ + for (AdventureQuestStage stage: stages) { + if(failed) + break; + stage.updateArenaComplete(winner); + failed = failed || stage.getStatus() == AdventureQuestController.QuestStatus.Failed; + } + if (!failed) + updateStatus(); + } + + public void updateStatus(){ + for (AdventureQuestStage stage: stages) { + switch (stage.getStatus()) { + case Complete: + continue; + case Failed: + failed = true; + break; + case None: + case Inactive: + case Active: + return; + } + } + completed = true; + } + public DialogData getPrologue() { if (!prologueDisplayed) { prologueDisplayed = true; diff --git a/forge-gui-mobile/src/forge/adventure/data/AdventureQuestStage.java b/forge-gui-mobile/src/forge/adventure/data/AdventureQuestStage.java index 7fc4896bb28..80ca2dfc075 100644 --- a/forge-gui-mobile/src/forge/adventure/data/AdventureQuestStage.java +++ b/forge-gui-mobile/src/forge/adventure/data/AdventureQuestStage.java @@ -11,6 +11,9 @@ import java.util.*; import java.util.stream.Collectors; public class AdventureQuestStage implements Serializable { + + private static final long serialVersionUID = 12042023L; + public int id; private AdventureQuestController.QuestStatus status = AdventureQuestController.QuestStatus.Inactive; public String name = ""; @@ -45,7 +48,13 @@ public class AdventureQuestStage implements Serializable { public String POIToken; //If defined, ignore tags input and use the target POI from a different stage's objective instead. private transient boolean inTargetLocation = false; - public UUID questStageID = UUID.randomUUID(); + public UUID stageID; + + public void initialize(){ + if (stageID == null){ + stageID = UUID.randomUUID(); + } + } public void checkPrerequisites() { //Todo - implement @@ -287,7 +296,20 @@ public class AdventureQuestStage implements Serializable { return status; } - public AdventureQuestStage(){} + public void updateArenaComplete(boolean winner){ + if (this.objective == AdventureQuestController.ObjectiveTypes.Arena) + { + if (inTargetLocation){ + if (winner){ + status = AdventureQuestController.QuestStatus.Complete; + } + } + } + } + + public AdventureQuestStage(){ + + } public AdventureQuestStage(AdventureQuestStage other){ this.status = other.status; this.prologueDisplayed = other.prologueDisplayed; @@ -320,6 +342,7 @@ public class AdventureQuestStage implements Serializable { this.POITags = other.POITags; this.targetEnemyData = other.targetEnemyData; this.deliveryItem = other.deliveryItem; - this.questStageID = other.questStageID; +// if (this.stageID == null) +// this.stageID = other.stageID; } } diff --git a/forge-gui-mobile/src/forge/adventure/player/AdventurePlayer.java b/forge-gui-mobile/src/forge/adventure/player/AdventurePlayer.java index a433d27a44f..4641780a4c1 100644 --- a/forge-gui-mobile/src/forge/adventure/player/AdventurePlayer.java +++ b/forge-gui-mobile/src/forge/adventure/player/AdventurePlayer.java @@ -27,7 +27,7 @@ import java.util.*; * Class that represents the player (not the player sprite) */ public class AdventurePlayer implements Serializable, SaveFileContent { - public static final int NUMBER_OF_DECKS=10; + public static final int NUMBER_OF_DECKS = 10; // Player profile data. private String name; private int heroRace; @@ -44,53 +44,57 @@ public class AdventurePlayer implements Serializable, SaveFileContent { // Game data. private float worldPosX; private float worldPosY; - private int gold = 0; - private int maxLife= 20; - private int life = 20; + private int gold = 0; + private int maxLife = 20; + private int life = 20; private int shards = 0; private EffectData blessing; //Blessing to apply for next battle. - private final PlayerStatistic statistic = new PlayerStatistic(); + private final PlayerStatistic statistic = new PlayerStatistic(); private final Map questFlags = new HashMap<>(); - private final Array inventoryItems=new Array<>(); - private final HashMap equippedItems=new HashMap<>(); - private List quests= new ArrayList<>(); + private final Array inventoryItems = new Array<>(); + private final HashMap equippedItems = new HashMap<>(); + private final List quests = new ArrayList<>(); // Fantasy/Chaos mode settings. - private boolean fantasyMode = false; + private boolean fantasyMode = false; private boolean announceFantasy = false; private boolean usingCustomDeck = false; private boolean announceCustom = false; // Signals final SignalList onLifeTotalChangeList = new SignalList(); - final SignalList onShardsChangeList = new SignalList(); - final SignalList onGoldChangeList = new SignalList(); - final SignalList onPlayerChangeList = new SignalList(); - final SignalList onEquipmentChange = new SignalList(); - final SignalList onBlessing = new SignalList(); + final SignalList onShardsChangeList = new SignalList(); + final SignalList onGoldChangeList = new SignalList(); + final SignalList onPlayerChangeList = new SignalList(); + final SignalList onEquipmentChange = new SignalList(); + final SignalList onBlessing = new SignalList(); - public AdventurePlayer() { clear(); } + public AdventurePlayer() { + clear(); + } - public PlayerStatistic getStatistic(){ return statistic; } + public PlayerStatistic getStatistic() { + return statistic; + } private void clearDecks() { - for(int i=0; i < NUMBER_OF_DECKS; i++) decks[i] = new Deck(Forge.getLocalizer().getMessage("lblEmptyDeck")); - deck = decks[0]; + for (int i = 0; i < NUMBER_OF_DECKS; i++) decks[i] = new Deck("Empty Deck"); + deck = decks[0]; selectedDeckIndex = 0; } private void clear() { //Ensure sensitive gameplay data is properly reset between games. //Reset all properties HERE. - fantasyMode = false; - announceFantasy = false; - usingCustomDeck = false; - blessing = null; - gold = 0; - maxLife = 20; - life = 20; - shards = 0; + fantasyMode = false; + announceFantasy = false; + usingCustomDeck = false; + blessing = null; + gold = 0; + maxLife = 20; + life = 20; + shards = 0; clearDecks(); inventoryItems.clear(); equippedItems.clear(); @@ -106,33 +110,33 @@ public class AdventurePlayer implements Serializable, SaveFileContent { return WorldSave.getCurrentSave().getPlayer(); } - private final CardPool cards=new CardPool(); - private final ItemPool newCards=new ItemPool<>(InventoryItem.class); + private final CardPool cards = new CardPool(); + private final ItemPool newCards = new ItemPool<>(InventoryItem.class); - public void create(String n, Deck startingDeck, boolean male, int race, int avatar, boolean isFantasy, boolean isUsingCustomDeck, DifficultyData difficultyData) { + public void create(String n, Deck startingDeck, boolean male, int race, int avatar, boolean isFantasy, boolean isUsingCustomDeck, DifficultyData difficultyData) { clear(); announceFantasy = fantasyMode = isFantasy; //Set Chaos mode first. announceCustom = usingCustomDeck = isUsingCustomDeck; - deck = startingDeck; + deck = startingDeck; decks[0] = deck; cards.addAllFlat(deck.getAllCardsInASinglePool().toFlatList()); - this.difficultyData.startingLife = difficultyData.startingLife; - this.difficultyData.staringMoney = difficultyData.staringMoney; + this.difficultyData.startingLife = difficultyData.startingLife; + this.difficultyData.staringMoney = difficultyData.staringMoney; this.difficultyData.startingDifficulty = difficultyData.startingDifficulty; - this.difficultyData.name = difficultyData.name; - this.difficultyData.spawnRank = difficultyData.spawnRank; - this.difficultyData.enemyLifeFactor = difficultyData.enemyLifeFactor; - this.difficultyData.sellFactor = difficultyData.sellFactor; - this.difficultyData.shardSellRatio = difficultyData.shardSellRatio; + this.difficultyData.name = difficultyData.name; + this.difficultyData.spawnRank = difficultyData.spawnRank; + this.difficultyData.enemyLifeFactor = difficultyData.enemyLifeFactor; + this.difficultyData.sellFactor = difficultyData.sellFactor; + this.difficultyData.shardSellRatio = difficultyData.shardSellRatio; - gold = difficultyData.staringMoney; - name = n; - heroRace = race; + gold = difficultyData.staringMoney; + name = n; + heroRace = race; avatarIndex = avatar; - isFemale = !male; + isFemale = !male; setColorIdentity(DeckProxy.getColorIdentity(deck)); @@ -146,12 +150,13 @@ public class AdventurePlayer implements Serializable, SaveFileContent { } public void setSelectedDeckSlot(int slot) { - if(slot>=0&&slot= 0 && slot < NUMBER_OF_DECKS) { selectedDeckIndex = slot; deck = decks[selectedDeckIndex]; setColorIdentity(DeckProxy.getColorIdentity(deck)); } } + public void updateDifficulty(DifficultyData diff) { maxLife = diff.startingLife; this.difficultyData.startingShards = diff.startingShards; @@ -167,28 +172,71 @@ public class AdventurePlayer implements Serializable, SaveFileContent { } //Getters - public int getSelectedDeckIndex() { return selectedDeckIndex; } - public Deck getSelectedDeck() { return deck; } - public Array getItems() { return inventoryItems; } - public Deck getDeck(int index) { return decks[index]; } - public CardPool getCards() { return cards; } - public String getName() { return name; } - public float getWorldPosX() { return worldPosX; } - public float getWorldPosY() { return worldPosY; } - public int getGold() { return gold; } - public int getLife() { return life; } - public int getMaxLife() { return maxLife; } - public int getShards() { return shards; } - public @Null EffectData getBlessing() { return blessing; } + public int getSelectedDeckIndex() { + return selectedDeckIndex; + } - public Collection getEquippedItems() { return equippedItems.values(); } - public ItemPool getNewCards() { return newCards; } + public Deck getSelectedDeck() { + return deck; + } - public ColorSet getColorIdentity(){ + public Array getItems() { + return inventoryItems; + } + + public Deck getDeck(int index) { + return decks[index]; + } + + public CardPool getCards() { + return cards; + } + + public String getName() { + return name; + } + + public float getWorldPosX() { + return worldPosX; + } + + public float getWorldPosY() { + return worldPosY; + } + + public int getGold() { + return gold; + } + + public int getLife() { + return life; + } + + public int getMaxLife() { + return maxLife; + } + + public int getShards() { + return shards; + } + + public @Null EffectData getBlessing() { + return blessing; + } + + public Collection getEquippedItems() { + return equippedItems.values(); + } + + public ItemPool getNewCards() { + return newCards; + } + + public ColorSet getColorIdentity() { return colorIdentity; } - public String getColorIdentityLong(){ + public String getColorIdentityLong() { return colorIdentity.toString(); } @@ -197,62 +245,61 @@ public class AdventurePlayer implements Serializable, SaveFileContent { public void setWorldPosX(float worldPosX) { this.worldPosX = worldPosX; } + public void setWorldPosY(float worldPosY) { this.worldPosY = worldPosY; } - public void setColorIdentity(String C){ - colorIdentity= ColorSet.fromNames(C.toCharArray()); + public void setColorIdentity(String C) { + colorIdentity = ColorSet.fromNames(C.toCharArray()); } - public void setColorIdentity(ColorSet set){ + public void setColorIdentity(ColorSet set) { this.colorIdentity = set; } - - @Override public void load(SaveFileData data) { clear(); //Reset player data. this.statistic.load(data.readSubData("statistic")); - this.difficultyData.startingLife=data.readInt("startingLife"); - this.difficultyData.staringMoney=data.readInt("staringMoney"); - this.difficultyData.startingDifficulty=data.readBool("startingDifficulty"); - this.difficultyData.name=data.readString("difficultyName"); - this.difficultyData.enemyLifeFactor=data.readFloat("enemyLifeFactor"); - this.difficultyData.sellFactor=data.readFloat("sellFactor"); - if(this.difficultyData.sellFactor==0) - this.difficultyData.sellFactor=0.2f; + this.difficultyData.startingLife = data.readInt("startingLife"); + this.difficultyData.staringMoney = data.readInt("staringMoney"); + this.difficultyData.startingDifficulty = data.readBool("startingDifficulty"); + this.difficultyData.name = data.readString("difficultyName"); + this.difficultyData.enemyLifeFactor = data.readFloat("enemyLifeFactor"); + this.difficultyData.sellFactor = data.readFloat("sellFactor"); + if (this.difficultyData.sellFactor == 0) + this.difficultyData.sellFactor = 0.2f; - this.difficultyData.shardSellRatio=data.readFloat("sellFactor"); - if(this.difficultyData.shardSellRatio==0) - this.difficultyData.shardSellRatio=0.8f; + this.difficultyData.shardSellRatio = data.readFloat("sellFactor"); + if (this.difficultyData.shardSellRatio == 0) + this.difficultyData.shardSellRatio = 0.8f; - name = data.readString("name"); - heroRace = data.readInt("heroRace"); + name = data.readString("name"); + heroRace = data.readInt("heroRace"); avatarIndex = data.readInt("avatarIndex"); - isFemale = data.readBool("isFemale"); - if(data.containsKey("colorIdentity")) + isFemale = data.readBool("isFemale"); + if (data.containsKey("colorIdentity")) setColorIdentity(data.readString("colorIdentity")); else colorIdentity = ColorSet.ALL_COLORS; - gold = data.readInt("gold"); - maxLife = data.readInt("maxLife"); - life = data.readInt("life"); - shards = data.containsKey("shards")?data.readInt("shards"):0; - worldPosX = data.readFloat("worldPosX"); - worldPosY = data.readFloat("worldPosY"); + gold = data.readInt("gold"); + maxLife = data.readInt("maxLife"); + life = data.readInt("life"); + shards = data.containsKey("shards") ? data.readInt("shards") : 0; + worldPosX = data.readFloat("worldPosX"); + worldPosY = data.readFloat("worldPosY"); - if(data.containsKey("blessing")) blessing = (EffectData)data.readObject("blessing"); + if (data.containsKey("blessing")) blessing = (EffectData) data.readObject("blessing"); - if(data.containsKey("inventory")) { - String[] inv=(String[])data.readObject("inventory"); + if (data.containsKey("inventory")) { + String[] inv = (String[]) data.readObject("inventory"); //Prevent items with wrong names from getting through. Hell breaks loose if it causes null pointers. //This only needs to be done on load. - for(String i : inv){ - if(ItemData.getItem(i) != null) inventoryItems.add(i); + for (String i : inv) { + if (ItemData.getItem(i) != null) inventoryItems.add(i); else { System.err.printf("Cannot find item name %s\n", i); //Allow official© permission for the player to get a refund. We will allow it this time. @@ -261,15 +308,15 @@ public class AdventurePlayer implements Serializable, SaveFileContent { } } } - if(data.containsKey("equippedSlots") && data.containsKey("equippedItems")) { - String[] slots=(String[])data.readObject("equippedSlots"); - String[] items=(String[])data.readObject("equippedItems"); + if (data.containsKey("equippedSlots") && data.containsKey("equippedItems")) { + String[] slots = (String[]) data.readObject("equippedSlots"); + String[] items = (String[]) data.readObject("equippedItems"); - assert(slots.length==items.length); + assert (slots.length == items.length); //Like above, prevent items with wrong names. If it triggered in inventory it'll trigger here as well. - for(int i=0;i slots=new ArrayList<>(); - ArrayList items=new ArrayList<>(); - for (Map.Entry entry : equippedItems.entrySet()) { + ArrayList slots = new ArrayList<>(); + ArrayList items = new ArrayList<>(); + for (Map.Entry entry : equippedItems.entrySet()) { slots.add(entry.getKey()); items.add(entry.getValue()); } - data.storeObject("equippedSlots",slots.toArray(new String[0])); - data.storeObject("equippedItems",items.toArray(new String[0])); + data.storeObject("equippedSlots", slots.toArray(new String[0])); + data.storeObject("equippedItems", items.toArray(new String[0])); data.storeObject("blessing", blessing); //Save quest flags. ArrayList questFlagsKey = new ArrayList<>(); - ArrayList questFlagsValue = new ArrayList<>(); - for(Map.Entry entry : questFlags.entrySet()){ + ArrayList questFlagsValue = new ArrayList<>(); + for (Map.Entry entry : questFlags.entrySet()) { questFlagsKey.add(entry.getKey()); questFlagsValue.add(entry.getValue()); } @@ -379,17 +426,17 @@ public class AdventurePlayer implements Serializable, SaveFileContent { data.storeObject("questFlagsValue", questFlagsValue.toArray(new Byte[0])); data.storeObject("quests", quests.toArray()); - data.storeObject("deckCards",deck.getMain().toCardList("\n").split("\n")); - if(deck.get(DeckSection.Sideboard)!=null) - data.storeObject("sideBoardCards",deck.get(DeckSection.Sideboard).toCardList("\n").split("\n")); - for(int i=0;i 0) result += data.effect.cardRewardBonus; + for (String name : equippedItems.values()) { + ItemData data = ItemData.getItem(name); + if (data != null && data.effect != null && data.effect.cardRewardBonus > 0) + result += data.effect.cardRewardBonus; } - if(blessing != null) { - if(blessing.cardRewardBonus > 0) result += blessing.cardRewardBonus; + if (blessing != null) { + if (blessing.cardRewardBonus > 0) result += blessing.cardRewardBonus; } return Math.min(result, 3); } @@ -607,50 +688,52 @@ public class AdventurePlayer implements Serializable, SaveFileContent { return difficultyData; } - public void renameDeck( String text) { - deck = (Deck)deck.copyTo(text); - decks[selectedDeckIndex]=deck; + public void renameDeck(String text) { + deck = (Deck) deck.copyTo(text); + decks[selectedDeckIndex] = deck; } public int cardSellPrice(PaperCard card) { - return (int)(CardUtil.getCardPrice(card)*difficultyData.sellFactor); + return (int) (CardUtil.getCardPrice(card) * difficultyData.sellFactor); } public void sellCard(PaperCard card, Integer result) { float price = CardUtil.getCardPrice(card) * result; price *= difficultyData.sellFactor; cards.remove(card, result); - addGold((int)price); + addGold((int) price); } public void removeItem(String name) { - if(name == null || name.equals("")) return; - inventoryItems.removeValue(name,false); - if(equippedItems.values().contains(name) && !inventoryItems.contains(name,false)) { + if (name == null || name.equals("")) return; + inventoryItems.removeValue(name, false); + if (equippedItems.values().contains(name) && !inventoryItems.contains(name, false)) { equippedItems.values().remove(name); } } public void equip(ItemData item) { - if(equippedItems.get(item.equipmentSlot) != null && equippedItems.get(item.equipmentSlot).equals(item.name)) { + if (equippedItems.get(item.equipmentSlot) != null && equippedItems.get(item.equipmentSlot).equals(item.name)) { equippedItems.remove(item.equipmentSlot); } else { - equippedItems.put(item.equipmentSlot,item.name); + equippedItems.put(item.equipmentSlot, item.name); } onEquipmentChange.emit(); } - public String itemInSlot(String key) { return equippedItems.get(key); } + public String itemInSlot(String key) { + return equippedItems.get(key); + } public float equipmentSpeed() { - float factor=1.0f; - for(String name:equippedItems.values()) { - ItemData data=ItemData.getItem(name); - if(data != null && data.effect.moveSpeed > 0.0) //Avoid negative speeds. It would be silly. - factor*=data.effect.moveSpeed; + float factor = 1.0f; + for (String name : equippedItems.values()) { + ItemData data = ItemData.getItem(name); + if (data != null && data.effect != null && data.effect.moveSpeed > 0.0) //Avoid negative speeds. It would be silly. + factor *= data.effect.moveSpeed; } - if(blessing != null) { //If a blessing gives speed, take it into account. - if(blessing.moveSpeed > 0.0) + if (blessing != null) { //If a blessing gives speed, take it into account. + if (blessing.moveSpeed > 0.0) factor *= blessing.moveSpeed; } return factor; @@ -658,19 +741,20 @@ public class AdventurePlayer implements Serializable, SaveFileContent { public float goldModifier(boolean sale) { float factor = 1.0f; - for(String name:equippedItems.values()) { - ItemData data=ItemData.getItem(name); - if(data != null && data.effect.goldModifier > 0.0) //Avoid negative modifiers. + for (String name : equippedItems.values()) { + ItemData data = ItemData.getItem(name); + if (data != null && data.effect != null && data.effect.goldModifier > 0.0) //Avoid negative modifiers. factor *= data.effect.goldModifier; } - if(blessing != null) { //If a blessing gives speed, take it into account. - if(blessing.goldModifier > 0.0) + if (blessing != null) { //If a blessing gives speed, take it into account. + if (blessing.goldModifier > 0.0) factor *= blessing.goldModifier; } - if(sale) return Math.max(1.0f + (1.0f - factor), 2.5f); + if (sale) return Math.max(1.0f + (1.0f - factor), 2.5f); return Math.max(factor, 0.25f); } - public float goldModifier(){ + + public float goldModifier() { return goldModifier(false); } @@ -679,8 +763,8 @@ public class AdventurePlayer implements Serializable, SaveFileContent { } public boolean addItem(String name) { - ItemData item=ItemData.getItem(name); - if(item==null) + ItemData item = ItemData.getItem(name); + if (item == null) return false; inventoryItems.add(name); return true; @@ -688,45 +772,48 @@ public class AdventurePlayer implements Serializable, SaveFileContent { // Quest functions. - public void setQuestFlag(String key, int value){ + public void setQuestFlag(String key, int value) { questFlags.put(key, (byte) value); } - public void advanceQuestFlag(String key){ - if(questFlags.get(key) != null){ + + public void advanceQuestFlag(String key) { + if (questFlags.get(key) != null) { questFlags.put(key, (byte) (questFlags.get(key) + 1)); } else { questFlags.put(key, (byte) 1); } } - public boolean checkQuestFlag(String key){ + + public boolean checkQuestFlag(String key) { return questFlags.get(key) != null; } - public int getQuestFlag(String key){ + + public int getQuestFlag(String key) { return (int) questFlags.getOrDefault(key, (byte) 0); } - public void resetQuestFlags(){ + + public void resetQuestFlags() { questFlags.clear(); } - public void addQuest(String questID){ + public void addQuest(String questID) { int id = Integer.parseInt(questID); addQuest(id); } - public void addQuest(int questID){ + public void addQuest(int questID) { AdventureQuestData toAdd = AdventureQuestController.instance().generateQuest(questID); - if (toAdd != null){ + if (toAdd != null) { addQuest(toAdd); } } - public void addQuest(AdventureQuestData q){ + public void addQuest(AdventureQuestData q) { //TODO: add a config flag for this boolean autoTrack = true; - for (AdventureQuestData existing : quests){ - if (autoTrack && existing.isTracked) - { + for (AdventureQuestData existing : quests) { + if (autoTrack && existing.isTracked) { autoTrack = false; break; } @@ -739,23 +826,21 @@ public class AdventurePlayer implements Serializable, SaveFileContent { return quests; } - public int getEnemyDeckNumber(String enemyName, int maxDecks){ - int deckNumber = 0; - if (statistic.getWinLossRecord().get(enemyName)!=null) - { - int playerWins = statistic.getWinLossRecord().get(enemyName).getKey(); - int enemyWins = statistic.getWinLossRecord().get(enemyName).getValue(); - if (playerWins > enemyWins){ - int deckNumberAfterAlgorithmOutput = (int)((playerWins-enemyWins) * (difficultyData.enemyLifeFactor / 3)); - if (deckNumberAfterAlgorithmOutput < maxDecks){ - deckNumber = deckNumberAfterAlgorithmOutput; - } - else { - deckNumber = maxDecks-1; + public int getEnemyDeckNumber(String enemyName, int maxDecks) { + int deckNumber = 0; + if (statistic.getWinLossRecord().get(enemyName) != null) { + int playerWins = statistic.getWinLossRecord().get(enemyName).getKey(); + int enemyWins = statistic.getWinLossRecord().get(enemyName).getValue(); + if (playerWins > enemyWins) { + int deckNumberAfterAlgorithmOutput = (int) ((playerWins - enemyWins) * (difficultyData.enemyLifeFactor / 3)); + if (deckNumberAfterAlgorithmOutput < maxDecks) { + deckNumber = deckNumberAfterAlgorithmOutput; + } else { + deckNumber = maxDecks - 1; + } } } - } - return deckNumber; + return deckNumber; } public void removeQuest(AdventureQuestData quest) { diff --git a/forge-gui-mobile/src/forge/adventure/scene/ArenaScene.java b/forge-gui-mobile/src/forge/adventure/scene/ArenaScene.java index 1f189e20886..30cdd14e5fd 100644 --- a/forge-gui-mobile/src/forge/adventure/scene/ArenaScene.java +++ b/forge-gui-mobile/src/forge/adventure/scene/ArenaScene.java @@ -17,6 +17,7 @@ import forge.adventure.data.EnemyData; import forge.adventure.data.WorldData; import forge.adventure.stage.GameHUD; import forge.adventure.stage.IAfterMatch; +import forge.adventure.stage.MapStage; import forge.adventure.stage.WorldStage; import forge.adventure.util.*; import forge.gui.FThreads; @@ -116,6 +117,8 @@ public class ArenaScene extends UIScene implements IAfterMatch { doneButton.layout(); startButton.setDisabled(true); arenaStarted = false; + AdventureQuestController.instance().updateArenaComplete(false); + AdventureQuestController.instance().showQuestDialogs(MapStage.getInstance()); } private void startDialog() { @@ -193,6 +196,8 @@ public class ArenaScene extends UIScene implements IAfterMatch { startButton.setDisabled(true); doneButton.setText("[%80]" + Forge.getLocalizer().getMessage("lblDone")); doneButton.layout(); + AdventureQuestController.instance().updateArenaComplete(true); + AdventureQuestController.instance().showQuestDialogs(MapStage.getInstance()); } if (!Forge.isLandscapeMode()) drawArena();//update diff --git a/forge-gui-mobile/src/forge/adventure/scene/InventoryScene.java b/forge-gui-mobile/src/forge/adventure/scene/InventoryScene.java index 3cf00da2618..f7e6c07c25d 100644 --- a/forge-gui-mobile/src/forge/adventure/scene/InventoryScene.java +++ b/forge-gui-mobile/src/forge/adventure/scene/InventoryScene.java @@ -39,11 +39,11 @@ public class InventoryScene extends UIScene { public InventoryScene() { super(Forge.isLandscapeMode() ? "ui/inventory.json" : "ui/inventory_portrait.json"); equipOverlay = Forge.getAssets().getTexture(Config.instance().getFile(Paths.ITEMS_EQUIP)); - ui.onButtonPress("return", () -> done()); + ui.onButtonPress("return", this::done); leave = ui.findActor("return"); - ui.onButtonPress("delete", () -> showConfirm()); - ui.onButtonPress("equip", () -> equip()); - ui.onButtonPress("use", () -> use()); + ui.onButtonPress("delete", this::showConfirm); + ui.onButtonPress("equip", this::equip); + ui.onButtonPress("use", this::use); equipButton = ui.findActor("equip"); useButton = ui.findActor("use"); useButton.setDisabled(true); @@ -299,7 +299,6 @@ public class InventoryScene extends UIScene { } public Button createInventorySlot() { - ImageButton button = new ImageButton(Controls.getSkin(), "item_frame"); - return button; + return new ImageButton(Controls.getSkin(), "item_frame"); } } diff --git a/forge-gui-mobile/src/forge/adventure/scene/MapViewScene.java b/forge-gui-mobile/src/forge/adventure/scene/MapViewScene.java index 712aacd2d67..3488ceb0450 100644 --- a/forge-gui-mobile/src/forge/adventure/scene/MapViewScene.java +++ b/forge-gui-mobile/src/forge/adventure/scene/MapViewScene.java @@ -1,6 +1,5 @@ package forge.adventure.scene; -import com.badlogic.gdx.Input; import com.badlogic.gdx.graphics.Texture; import com.badlogic.gdx.scenes.scene2d.Group; import com.badlogic.gdx.scenes.scene2d.ui.Image; @@ -32,7 +31,7 @@ public class MapViewScene extends UIScene { super(Forge.isLandscapeMode() ? "ui/map.json" : "ui/map_portrait.json"); - ui.onButtonPress("done", () -> done()); + ui.onButtonPress("done", this::done); scroll = ui.findActor("map"); Group table=new Group(); @@ -78,13 +77,4 @@ public class MapViewScene extends UIScene { super.enter(); } - - @Override - public boolean keyPressed(int keycode) { - if (keycode == Input.Keys.ESCAPE || keycode == Input.Keys.BACK || keycode == Input.Keys.BUTTON_B) { - done(); - } - return true; - } - } diff --git a/forge-gui-mobile/src/forge/adventure/stage/GameHUD.java b/forge-gui-mobile/src/forge/adventure/stage/GameHUD.java index 0f89fdb4477..b101ae727e0 100644 --- a/forge-gui-mobile/src/forge/adventure/stage/GameHUD.java +++ b/forge-gui-mobile/src/forge/adventure/stage/GameHUD.java @@ -22,12 +22,12 @@ import com.github.tommyettinger.textra.TextraButton; import com.github.tommyettinger.textra.TextraLabel; import com.github.tommyettinger.textra.TypingLabel; import forge.Forge; +import forge.adventure.data.ItemData; import forge.adventure.player.AdventurePlayer; import forge.adventure.scene.*; import forge.adventure.util.*; import forge.adventure.world.WorldSave; import forge.deck.Deck; -import forge.gui.FThreads; import forge.gui.GuiBase; import forge.localinstance.properties.ForgePreferences; import forge.model.FModel; @@ -51,16 +51,15 @@ public class GameHUD extends Stage { private final Touchpad touchpad; private final Console console; float TOUCHPAD_SCALE = 70f, referenceX; - boolean isHiding = false, isShowing = false; float opacity = 1f; private boolean debugMap, updatelife; private final Dialog dialog; private boolean dialogOnlyInput; private final Array dialogButtonMap = new Array<>(); + private final Array abilityButtonMap = new Array<>(); private final Array questKeys = new Array<>(); private String lifepointsTextColor = ""; - private TextraButton selectedKey; private final ScrollPane scrollPane; private GameHUD(GameStage gameStage) { @@ -80,7 +79,7 @@ public class GameHUD extends Stage { avatarborder = ui.findActor("avatarborder"); deckActor = ui.findActor("deck"); openMapActor = ui.findActor("openmap"); - ui.onButtonPress("openmap", () -> GameHUD.this.openMap()); + ui.onButtonPress("openmap", this::openMap); menuActor = ui.findActor("menu"); referenceX = menuActor.getX(); logbookActor = ui.findActor("logbook"); @@ -113,11 +112,11 @@ public class GameHUD extends Stage { ui.addActor(touchpad); avatar = ui.findActor("avatar"); - ui.onButtonPress("menu", () -> menu()); - ui.onButtonPress("inventory", () -> openInventory()); - ui.onButtonPress("logbook", () -> logbook()); - ui.onButtonPress("deck", () -> openDeck()); - ui.onButtonPress("exittoworldmap", () -> exitToWorldMap()); + ui.onButtonPress("menu", this::menu); + ui.onButtonPress("inventory", this::openInventory); + ui.onButtonPress("logbook", this::logbook); + ui.onButtonPress("deck", this::openDeck); + ui.onButtonPress("exittoworldmap", this::exitToWorldMap); lifePoints = ui.findActor("lifePoints"); shards = ui.findActor("shards"); money = ui.findActor("money"); @@ -131,6 +130,7 @@ public class GameHUD extends Stage { addActor(scrollPane); AdventurePlayer.current().onLifeChange(() -> lifePoints.setText("[%95][+Life]" + lifepointsTextColor + " " + AdventurePlayer.current().getLife() + "/" + AdventurePlayer.current().getMaxLife())); AdventurePlayer.current().onShardsChange(() -> shards.setText("[%95][+Shards] " + AdventurePlayer.current().getShards())); + AdventurePlayer.current().onEquipmentChanged(this::updateAbility); WorldSave.getCurrentSave().getPlayer().onGoldChange(() -> money.setText("[%95][+Gold] " + String.valueOf(AdventurePlayer.current().getGold()))); addActor(ui); @@ -144,7 +144,7 @@ public class GameHUD extends Stage { avatarborder.addListener(new ConsoleToggleListener()); gamehud.addListener(new ConsoleToggleListener()); } - WorldSave.getCurrentSave().onLoad(() -> GameHUD.this.enter()); + WorldSave.getCurrentSave().onLoad(this::enter); eventTouchDown = new InputEvent(); eventTouchDown.setPointer(-1); eventTouchDown.setType(InputEvent.Type.touchDown); @@ -158,6 +158,8 @@ public class GameHUD extends Stage { } private void logbook() { + if (console.isVisible()) + console.toggle(); Forge.switchScene(QuestLogScene.instance(Forge.getCurrentScene())); } @@ -230,7 +232,6 @@ public class GameHUD extends Stage { touchpad.setBounds(touch.x - TOUCHPAD_SCALE / 2, touch.y - TOUCHPAD_SCALE / 2, TOUCHPAD_SCALE, TOUCHPAD_SCALE); touchpad.setVisible(true); touchpad.setResetOnTouchUp(true); - hideButtons(); return super.touchDown(screenX, screenY, pointer, button); } } @@ -333,6 +334,41 @@ public class GameHUD extends Stage { } } + void updateAbility() { + for (TextraButton button : abilityButtonMap) { + button.remove(); + } + abilityButtonMap.clear(); + setAbilityButton(AdventurePlayer.current().getEquippedAbility1()); + setAbilityButton(AdventurePlayer.current().getEquippedAbility2()); + float x = Forge.isLandscapeMode() ? 426f : 216f; + float y = 10f; + float w = 45f; + float h = 35f; + for (TextraButton button : abilityButtonMap) { + button.getColor().a = opacity; + button.setSize(w, h); + button.setPosition(x, y); + y += h + 10f; + addActor(button); + } + } + + void setAbilityButton(ItemData data) { + if (data != null) { + TextraButton button = Controls.newTextButton("[%120][+" + data.iconName + "][+Shards]" + data.shardsNeeded, () -> { + boolean isInPoi = MapStage.getInstance().isInMap(); + if (!(isInPoi && data.usableInPoi || !isInPoi && data.usableOnWorldMap)) + return; + if (data.shardsNeeded > Current.player().getShards()) + return; + Current.player().addShards(-data.shardsNeeded); + ConsoleCommandInterpreter.getInstance().command(data.commandOnUse); + }); + abilityButtonMap.add(button); + } + } + private Pair audio = null; public void playAudio() { @@ -368,12 +404,12 @@ public class GameHUD extends Stage { public void act(float delta) { super.act(delta); if (fade < targetfade) { - fade += (delta/2); + fade += (delta / 2); if (fade > targetfade) fade = targetfade; fadeAudio(fade); } else if (fade > targetfade) { - fade -= (delta/2); + fade -= (delta / 2); if (fade < targetfade) fade = targetfade; fadeAudio(fade); @@ -436,15 +472,21 @@ public class GameHUD extends Stage { } private void openDeck() { + if (console.isVisible()) + console.toggle(); Forge.switchScene(DeckSelectScene.instance()); } private void openInventory() { + if (console.isVisible()) + console.toggle(); WorldSave.getCurrentSave().header.createPreview(); Forge.switchScene(InventoryScene.instance()); } private void exitToWorldMap() { + if (console.isVisible()) + console.toggle(); if (!GameScene.instance().isNotInWorldMap()) //prevent showing this dialog to WorldMap return; dialog.getButtonTable().clear(); @@ -471,6 +513,8 @@ public class GameHUD extends Stage { } private void menu() { + if (console.isVisible()) + console.toggle(); gameStage.openMenu(); } @@ -479,6 +523,11 @@ public class GameHUD extends Stage { actor.setVisible(visible); } + private void setDisabled(Actor actor, boolean enable) { + if (actor != null && actor instanceof Button) + ((Button) actor).setDisabled(enable); + } + private void setAlpha(Actor actor, boolean visible) { if (actor != null) { if (visible) @@ -498,7 +547,7 @@ public class GameHUD extends Stage { setVisibility(shards, visible); setVisibility(money, visible); setVisibility(blank, visible); - setVisibility(exitToWorldMapActor, GameScene.instance().isNotInWorldMap()); + setDisabled(exitToWorldMapActor, !GameScene.instance().isNotInWorldMap()); setAlpha(avatarborder, visible); setAlpha(avatar, visible); setAlpha(deckActor, visible); @@ -506,6 +555,9 @@ public class GameHUD extends Stage { setAlpha(logbookActor, visible); setAlpha(inventoryActor, visible); setAlpha(exitToWorldMapActor, visible); + for (TextraButton button : abilityButtonMap) { + setAlpha(button, visible); + } opacity = visible ? 1f : 0.4f; } @@ -528,11 +580,6 @@ public class GameHUD extends Stage { if (keycode == Input.Keys.BACK) { if (console.isVisible()) { console.toggle(); - } else { - if (menuActor.isVisible()) - hideButtons(); - else - showButtons(); } } if (console.isVisible()) @@ -571,38 +618,6 @@ public class GameHUD extends Stage { }, 0.10f); } - private void hideButtons() { - if (isShowing) - return; - if (isHiding) - return; - isHiding = true; - deckActor.addAction(Actions.sequence(Actions.fadeOut(0.10f), Actions.hide(), Actions.moveTo(deckActor.getX() + deckActor.getWidth(), deckActor.getY()))); - inventoryActor.addAction(Actions.sequence(Actions.fadeOut(0.15f), Actions.hide(), Actions.moveTo(inventoryActor.getX() + inventoryActor.getWidth(), inventoryActor.getY()))); - logbookActor.addAction(Actions.sequence(Actions.fadeOut(0.20f), Actions.hide(), Actions.moveTo(logbookActor.getX() + logbookActor.getWidth(), logbookActor.getY()))); - menuActor.addAction(Actions.sequence(Actions.fadeOut(0.25f), Actions.hide(), Actions.moveTo(menuActor.getX() + menuActor.getWidth(), menuActor.getY()))); - if (GameScene.instance().isNotInWorldMap()) - exitToWorldMapActor.addAction(Actions.sequence(Actions.fadeOut(0.2f), Actions.hide(), Actions.moveTo(exitToWorldMapActor.getX() + exitToWorldMapActor.getWidth(), exitToWorldMapActor.getY()))); - FThreads.delayInEDT(300, () -> isHiding = false); - } - - private void showButtons() { - if (console.isVisible()) - return; - if (isHiding) - return; - if (isShowing) - return; - isShowing = true; - menuActor.addAction(Actions.sequence(Actions.delay(0.1f), Actions.parallel(Actions.show(), Actions.alpha(opacity, 0.1f), Actions.moveTo(referenceX, menuActor.getY(), 0.25f)))); - logbookActor.addAction(Actions.sequence(Actions.delay(0.15f), Actions.parallel(Actions.show(), Actions.alpha(opacity, 0.1f), Actions.moveTo(referenceX, logbookActor.getY(), 0.25f)))); - inventoryActor.addAction(Actions.sequence(Actions.delay(0.2f), Actions.parallel(Actions.show(), Actions.alpha(opacity, 0.1f), Actions.moveTo(referenceX, inventoryActor.getY(), 0.25f)))); - deckActor.addAction(Actions.sequence(Actions.delay(0.25f), Actions.parallel(Actions.show(), Actions.alpha(opacity, 0.1f), Actions.moveTo(referenceX, deckActor.getY(), 0.25f)))); - if (GameScene.instance().isNotInWorldMap()) - exitToWorldMapActor.addAction(Actions.sequence(Actions.delay(0.25f), Actions.parallel(Actions.show(), Actions.alpha(opacity, 0.1f), Actions.moveTo(referenceX, exitToWorldMapActor.getY(), 0.25f)))); - FThreads.delayInEDT(300, () -> isShowing = false); - } - public void setDebug(boolean b) { debugMap = b; } @@ -626,13 +641,12 @@ public class GameHUD extends Stage { public boolean act(float v) { if (exitDungeon) { MapStage.getInstance().exitDungeon(); - exitToWorldMapActor.setVisible(false); + setDisabled(exitToWorldMapActor, true); } return true; } })); dialogOnlyInput = false; - selectedKey = null; } private void selectNextDialogButton() { @@ -677,18 +691,9 @@ public class GameHUD extends Stage { @Override public boolean longPress(Actor actor, float x, float y) { - hideButtons(); console.toggle(); return super.longPress(actor, x, y); } - - @Override - public void tap(InputEvent event, float x, float y, int count, int button) { - super.tap(event, x, y, count, button); - //show menu buttons if double tapping the avatar, for android devices without visible navigation buttons - if (count > 1) - showButtons(); - } } public void updateMusic() { diff --git a/forge-gui-mobile/src/forge/adventure/stage/WorldStage.java b/forge-gui-mobile/src/forge/adventure/stage/WorldStage.java index 44a66e301d1..92ea3d98181 100644 --- a/forge-gui-mobile/src/forge/adventure/stage/WorldStage.java +++ b/forge-gui-mobile/src/forge/adventure/stage/WorldStage.java @@ -361,7 +361,7 @@ public class WorldStage extends GameStage implements SaveFileContent { List names = (List) data.readObject("names"); List x = (List) data.readObject("x"); List y = (List) data.readObject("y"); - List questStageIDs = (List) data.readObject("questStageIDs"); + List questStageIDs = (List) data.readObject("questStageIDs"); for (int i = 0; i < timeouts.size(); i++) { EnemySprite sprite = new EnemySprite(WorldData.getEnemy(names.get(i))); sprite.setX(x.get(i)); @@ -393,7 +393,7 @@ public class WorldStage extends GameStage implements SaveFileContent { List names = new ArrayList<>(); List x = new ArrayList<>(); List y = new ArrayList<>(); - List questStageIDs = new ArrayList<>(); + List questStageIDs = new ArrayList<>(); for (Pair enemy : enemies) { timeouts.add(enemy.getKey()); names.add(enemy.getValue().getData().name); diff --git a/forge-gui-mobile/src/forge/adventure/util/AdventureQuestController.java b/forge-gui-mobile/src/forge/adventure/util/AdventureQuestController.java index 9784a5ca73f..6e2155eaf7e 100644 --- a/forge-gui-mobile/src/forge/adventure/util/AdventureQuestController.java +++ b/forge-gui-mobile/src/forge/adventure/util/AdventureQuestController.java @@ -17,7 +17,6 @@ import forge.util.Aggregates; import java.io.Serializable; import java.time.LocalDate; import java.util.*; -import java.util.List; public class AdventureQuestController implements Serializable { @@ -84,9 +83,9 @@ public class AdventureQuestController implements Serializable { questStage.epilogueDisplayed = true; dialogQueue.add(questStage.epilogue); } -// if (questStage.getStatus() != QuestStatus.Complete){ -// break; -// } + if (questStage.getStatus() != QuestStatus.Complete){ + break; + } } if (quest.failed){ @@ -263,6 +262,12 @@ public class AdventureQuestController implements Serializable { } } + public void updateArenaComplete(boolean winner){ + for(AdventureQuestData currentQuest: Current.player().getQuests()) { + currentQuest.updateArenaComplete(winner); + } + } + public AdventureQuestData generateQuest(int id){ AdventureQuestData generated = null; for (AdventureQuestData template: allQuests) { @@ -287,7 +292,7 @@ public class AdventureQuestController implements Serializable { public void rematchQuestSprite(EnemySprite sprite){ for (AdventureQuestData q : Current.player().getQuests()){ for (AdventureQuestStage s : q.stages){ - if (sprite.questStageID != null && sprite.questStageID.equals(s.questStageID)){ + if (sprite.questStageID != null && sprite.questStageID.equals(s.stageID.toString())){ s.setTargetSprite(sprite); } } diff --git a/forge-gui/res/adventure/Shandalar/decks/bat.dck b/forge-gui/res/adventure/Shandalar/decks/bat.dck new file mode 100644 index 00000000000..7cd23ae0b79 --- /dev/null +++ b/forge-gui/res/adventure/Shandalar/decks/bat.dck @@ -0,0 +1,27 @@ +[metadata] +Name=bat +[Avatar] + +[Main] +4 Basilica Screecher|GTC|1 +4 Blight Keeper|J22|1 +4 Blighted Bat|AKH|1 +4 Bloodhunter Bat|JMP|1 +4 Dirge Bat|IKO|1 +4 Duskhunter Bat|MM2|1 +4 Murder|M13|1 +4 Sinister Strength|PLS|1 +6 Swamp|J22|1 +8 Swamp|J22|2 +10 Swamp|J22|3 +4 Unholy Strength|30A|1 +[Sideboard] + +[Planes] + +[Schemes] + +[Conspiracy] + +[Dungeon] + diff --git a/forge-gui/res/adventure/Shandalar/decks/darkenchanter.dck b/forge-gui/res/adventure/Shandalar/decks/darkenchanter.dck new file mode 100644 index 00000000000..dcddd176447 --- /dev/null +++ b/forge-gui/res/adventure/Shandalar/decks/darkenchanter.dck @@ -0,0 +1,34 @@ +[metadata] +Name=darkenchanter +[Avatar] + +[Main] +4 Bayou|OLGC|1 +4 Cartouche of Ambition|AKR|1 +4 Doomwake Giant|C15|1 +4 Eidolon of Blossoms|JOU|1 +1 Forest|ELD|1 +2 Forest|ELD|3 +1 Forest|ELD|4 +4 Gnarled Scarhide|JOU|1 +4 Grim Guardian|JOU|1 +4 Necroblossom Snarl|STX|1 +4 Oubliette|2XM|1 +4 Overgrown Tomb|SLD|1 +1 Swamp|ELD|2 +2 Swamp|ELD|4 +4 Trial of Ambition|MB1|1 +4 Verdant Catacombs|SLU|1 +3 Verduran Enchantress|SLD|1 +4 Wild Growth|AFC|1 +2 Yavimaya Enchantress|TD0|1 +[Sideboard] + +[Planes] + +[Schemes] + +[Conspiracy] + +[Dungeon] + diff --git a/forge-gui/res/adventure/Shandalar/decks/drossgladiator.json b/forge-gui/res/adventure/Shandalar/decks/drossgladiator.json new file mode 100644 index 00000000000..33d7bd0df56 --- /dev/null +++ b/forge-gui/res/adventure/Shandalar/decks/drossgladiator.json @@ -0,0 +1,12 @@ +{ +"name":"Dross Gladiator", + "template": + { + "count":60, + "colors":["Black"], + "tribe":"Phyrexian", + "tribeCards":1.0, + "tribeSynergyCards":0.40, + "rares":0.25 + } +} diff --git a/forge-gui/res/adventure/Shandalar/decks/drossgrimnarch.json b/forge-gui/res/adventure/Shandalar/decks/drossgrimnarch.json new file mode 100644 index 00000000000..263b04092a3 --- /dev/null +++ b/forge-gui/res/adventure/Shandalar/decks/drossgrimnarch.json @@ -0,0 +1,12 @@ +{ +"name":"Dross Grimnarch", + "template": + { + "count":60, + "colors":["Black, Blue"], + "tribe":"Phyrexian", + "tribeCards":1.0, + "tribeSynergyCards":0.40, + "rares":0.4 + } +} diff --git a/forge-gui/res/adventure/Shandalar/decks/sandgolem.dck b/forge-gui/res/adventure/Shandalar/decks/sandgolem.dck new file mode 100644 index 00000000000..34f7ea579aa --- /dev/null +++ b/forge-gui/res/adventure/Shandalar/decks/sandgolem.dck @@ -0,0 +1,32 @@ +[metadata] +Name=sandgolem +[Avatar] + +[Main] +4 Char-Rumbler|TSR|1 +4 Choking Sands|VMA|1 +4 Mountain|KLD|1 +3 Mountain|KLD|2 +5 Mountain|KLD|3 +5 Plains|KLD|1 +5 Plains|KLD|2 +2 Plains|KLD|3 +3 Sand Golem|MIR|1 +4 Sand Strangler|AKR|1 +4 Sandblast|HOU|1 +1 Sandstone Oracle|IMA|1 +2 Sandstone Warrior|TPR|1 +2 Shock|DDN|1 +4 Tectonic Giant|AFC|1 +4 Thunder Spirit|PRM|1 +4 Viashino Sandstalker|VIS|1 +[Sideboard] + +[Planes] + +[Schemes] + +[Conspiracy] + +[Dungeon] + diff --git a/forge-gui/res/adventure/Shandalar/decks/sandwurm.dck b/forge-gui/res/adventure/Shandalar/decks/sandwurm.dck new file mode 100644 index 00000000000..735f526f7bd --- /dev/null +++ b/forge-gui/res/adventure/Shandalar/decks/sandwurm.dck @@ -0,0 +1,27 @@ +[metadata] +Name=sandwurm +[Avatar] + +[Main] +4 Beneath the Sands|MB1|1 +4 Dirtcowl Wurm|TMP|1 +7 Forest|IKO|1 +8 Forest|IKO|2 +9 Forest|IKO|3 +4 Greater Sandwurm|IKO|1 +4 Rampant Growth|NCC|1 +4 Roar of the Wurm|DDS|1 +4 Sandwurm Convergence|CLB|1 +4 Spined Wurm|S00|1 +4 Symbiotic Wurm|VMA|1 +4 Teething Wurmlet|BRO|1 +[Sideboard] + +[Planes] + +[Schemes] + +[Conspiracy] + +[Dungeon] + diff --git a/forge-gui/res/adventure/Shandalar/decks/swamptroll.dck b/forge-gui/res/adventure/Shandalar/decks/swamptroll.dck new file mode 100644 index 00000000000..32e557a3781 --- /dev/null +++ b/forge-gui/res/adventure/Shandalar/decks/swamptroll.dck @@ -0,0 +1,40 @@ +[metadata] +Name=swamptroll +[Avatar] + +[Main] +4 Charnel Troll|GRN|1 +4 Clackbridge Troll|ELD|1 +4 Eat to Extinction|THB|1 +2 Feasting Troll King|ELD|1 +1 Forest|ELD|1 +1 Forest|ELD|2 +3 Forest|ELD|4 +4 Gluttonous Troll|ELD|1 +2 Grismold, the Dreadsower|C19|1 +1 Gyome, Master Chef|C21|1 +4 Haunted Mire|DMU|1 +2 Hunted Troll|RAV|1 +3 Infernal Grasp|MID|1 +4 Jungle Hollow|KTK|1 +1 Nature's Claim|IMA|1 +2 Old-Growth Troll|KHM|1 +3 Swamp|ELD|1 +1 Swamp|ELD|2 +2 Swamp|ELD|3 +1 Swamp|ELD|4 +4 Tainted Wood|C15|1 +2 Taste of Death|ELD|1 +2 Thrun, Breaker of Silence|ONE|1 +1 Thrun, the Last Troll|MBS|1 +2 Varolz, the Scar-Striped|DGM|1 +[Sideboard] + +[Planes] + +[Schemes] + +[Conspiracy] + +[Dungeon] + diff --git a/forge-gui/res/adventure/Shandalar/decks/witch.dck b/forge-gui/res/adventure/Shandalar/decks/witch.dck new file mode 100644 index 00000000000..8747189507f --- /dev/null +++ b/forge-gui/res/adventure/Shandalar/decks/witch.dck @@ -0,0 +1,31 @@ +[metadata] +Name=witch +[Avatar] + +[Main] +2 Accursed Witch|SOI|1 +2 Cast Down|DOM|1 +4 Cuombajj Witches|CMR|1 +4 Curse of Leeches|MID|1 +4 Cursebound Witch|YMID|1 +1 Cut Down|DMU|1 +4 Kindly Stranger|SOI|1 +4 Sedgemoor Witch|STX|1 +20 Swamp|ELD|2 +1 Tempting Witch|JMP|1 +2 The Cauldron of Eternity|ELD|1 +2 The Hourglass Coven|HBG|1 +2 Veinwitch Coven|C21|1 +2 Witch of the Moors|JMP|1 +4 Witch's Cottage|ELD|1 +2 Witch's Vengeance|ELD|1 +[Sideboard] + +[Planes] + +[Schemes] + +[Conspiracy] + +[Dungeon] + diff --git a/forge-gui/res/adventure/Shandalar/maps/map/factory_2.tmx b/forge-gui/res/adventure/Shandalar/maps/map/factory_2.tmx index 82b1839f3c4..51b7f46c3ed 100644 --- a/forge-gui/res/adventure/Shandalar/maps/map/factory_2.tmx +++ b/forge-gui/res/adventure/Shandalar/maps/map/factory_2.tmx @@ -71,7 +71,6 @@ - diff --git a/forge-gui/res/adventure/Shandalar/maps/map/grolnok.tmx b/forge-gui/res/adventure/Shandalar/maps/map/grolnok.tmx index dfa008f4639..69158c0e86c 100644 --- a/forge-gui/res/adventure/Shandalar/maps/map/grolnok.tmx +++ b/forge-gui/res/adventure/Shandalar/maps/map/grolnok.tmx @@ -1,81 +1,72 @@ - + - + + - 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 - + - - - - { "startBattleWithCardInCommandZone": [ "Grolnok's Boss Effect"] -} - - - - - - - + + + - + - + - + - - + - + - + [ { @@ -100,8 +91,8 @@ - - + + [{ "type": "randomCard", @@ -117,46 +108,348 @@ - - - - - - - - - - - + + + + + + + + + + + - + - + - + - - - - - - + + + + + + - - - - - + + + + + + + + [ + { + "editions": [ "DMR" ], + "type": "card", + "count": 10, + "rarity": [ "Common" ] + }, + { + "editions": [ "DMR" ], + "type": "card", + "count": 3, + "rarity": [ "Uncommon" ] + }, + { + "editions": [ "DMR" ], + "type": "card", + "count": 1, + "rarity": [ "Rare", "Mythic Rare" ] + } +] + + + + + + + + + + + + + + [ + { + "editions": [ "DMR" ], + "type": "card", + "count": 10, + "rarity": [ "Common" ] + }, + { + "editions": [ "DMR" ], + "type": "card", + "count": 3, + "rarity": [ "Uncommon" ] + }, + { + "editions": [ "DMR" ], + "type": "card", + "count": 1, + "rarity": [ "Rare", "Mythic Rare" ] + } +] + + + + + + [ + { + "editions": [ "DMR" ], + "type": "card", + "count": 10, + "rarity": [ "Common" ] + }, + { + "editions": [ "DMR" ], + "type": "card", + "count": 3, + "rarity": [ "Uncommon" ] + }, + { + "editions": [ "DMR" ], + "type": "card", + "count": 1, + "rarity": [ "Rare", "Mythic Rare" ] + } +] + + + + + + + + + + + + + + + + + [{ + "type": "randomCard", + "count": 1, + "rarity": [ "rare", "mythic rare" ], + "colors": [ "colorID" ] +},{ + "type": "randomCard", + "count": 4, + "rarity": [ "uncommon" ], + "addMaxCount": 2 +}] + + + + + + { "startBattleWithCard": [ "Asceticism","Grismold, the Dreadsower"] +} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + [ + { + "editions": [ "DMR" ], + "type": "card", + "count": 10, + "rarity": [ "Common" ] + }, + { + "editions": [ "DMR" ], + "type": "card", + "count": 3, + "rarity": [ "Uncommon" ] + }, + { + "editions": [ "DMR" ], + "type": "card", + "count": 1, + "rarity": [ "Rare", "Mythic Rare" ] + } +] + + + + + + { "startBattleWithCard": [ "Enchantress's Presence"] +} + + [ + { + "type": "item", + "probability": 1, + "count": 1, + "itemName": "Rusty Old Key" + } +] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + [ + { + "editions": [ "DMR" ], + "type": "card", + "count": 10, + "rarity": [ "Common" ] + }, + { + "editions": [ "DMR" ], + "type": "card", + "count": 3, + "rarity": [ "Uncommon" ] + }, + { + "editions": [ "DMR" ], + "type": "card", + "count": 3, + "rarity": [ "Rare", "Mythic Rare" ] + } +] + + + + diff --git a/forge-gui/res/adventure/Shandalar/maps/map/grolnok_f1.tmx b/forge-gui/res/adventure/Shandalar/maps/map/grolnok_f1.tmx new file mode 100644 index 00000000000..351509c232d --- /dev/null +++ b/forge-gui/res/adventure/Shandalar/maps/map/grolnok_f1.tmx @@ -0,0 +1,156 @@ + + + + + + + + + + eJxjYEAAN04EJgeQqg/ZPhM+0jCyXmIxue6kBIzaS397QeljIOwdSuFMrv7B4F96AmrZ+4ECe4dSuqK2G0gBHxgGLpznkVH3UcNeUgHMLkrqeWrYC8PzOFHl0QGx4cooysDABMW46n1sZuOzFxdG9xc57SZCbZhpBNoy6PqJBejpDpd+XHLk+pdYe4nRTwogNZ9h8y817QXFm6YEgg2Tp4e92Nj42snk2kusemqUQfjSKDY+tco9XOUZsX0QagJq2gsAMiw9tA== + + + + + eJzF10sOgjAQBuBGF9U1j7jRHcdQ48ZbqAuPpRGNh3DrisTbeAN1AhOGUfuihUn+iND2K5WEKkSzBon/2FYR+UnXXijXtJ9P17SvTYVYQxu3bRsXt4/qw92MhJhJIe6a8NJd11Um7W2TeZm4pvZTlPHpor1V+KFc7vNQdyrr8y71y/0XdMHaOXoubiab/bp093E/rm4dfPmmc7Ot9Vjv4nXVPC+W+xtwIa+43h/RY8yVfedtho5untTHh6R8fvB9Qe8dzp+q9vCJ70fX+4VxzlVyhQvnwFul3y6Ohb+dqXublKEuBF1wMHi/aPt0qcPTpYtrDDmy52yZursw7iNqjk9DC58jarVxC4VL93a+3PlnnRYsqv9AfF1d3dB93wGw61A= + + + + + + + + eJzdlsFKw0AQhkdL2fbiRVtzU7AWvPcqHvQg+AxaxKM+hs/gRan0QawW8UEU9FrfQHcZhozTTTLdDlH84YMJu803u9mSDNYABr/ESgdgtSYandx77+vzjTQ04fPHid6i+5X1ofHetJEtB3DctGHb6b3vfv6TW44ZINN/4D3042ctpC5vcE5cPvfB10eR+aneokyZk3h0OGbhnRV4X/3YVQPgE5BLX7+xPsPvPpp6L++/zEtrJi+t1dIr0Xo5KftMyDMjvbHnSmtexBvOKP1PYgxbufe0ZF5govQumpf1+fMtqfKmJHhDRu2cOryxkF++r7h3vxt/P1uF3/egW/4NMjb0hlR981DumPcrYf9Hom+tV2a3h1ywHkJ90keqkup97iHSq02qN8Vl6d3L5uvrTTvvbcF53sl+1tr1L7tenuAkLL1y//oZIq+tvZb5K95vDh8hYA== + + + + + + [{ + "type": "randomCard", + "count": 1, + "rarity": [ "rare", "mythic rare" ], + "colors": [ "colorID" ] +},{ + "type": "randomCard", + "count": 4, + "rarity": [ "uncommon" ], + "addMaxCount": 2 +}] + + + + + + + [ + { + "editions": [ "HBG" ], + "type": "card", + "count": 10, + "rarity": [ "Common" ] + }, + { + "editions": [ "HBG" ], + "type": "card", + "count": 3, + "rarity": [ "Uncommon" ] + }, + { + "editions": [ "HBG" ], + "type": "card", + "count": 3, + "rarity": [ "Rare", "Mythic Rare" ] + } +] + + + + + + [{ + "text":"This door is locked", + "options":[ + { "name":"go away" }, + { + "name":"unlock with Grolnoks Key", + "condition":[{"item":"Grolnoks Key"}], + "text":"The gate is unlocked", + "options":[{"name":"continue", "action":[ {"deleteMapObject":-1},{"removeItem":"Grolnoks Key"}]} ] + } + ] +}] + + + + + + + + + + + [ + { + "editions": [ "AFR" ], + "type": "card", + "count": 10, + "rarity": [ "Common" ] + }, + { + "editions": [ "AFR" ], + "type": "card", + "count": 3, + "rarity": [ "Uncommon" ] + }, + { + "editions": [ "AFR" ], + "type": "card", + "count": 3, + "rarity": [ "Rare", "Mythic Rare" ] + } +] + + + + + + + + + + + + { "startBattleWithCardInCommandZone": [ "Grolnok's Boss Effect"] +} + + [ + { + "type": "item", + "probability": 1, + "count": 1, + "itemName": "Grolnoks Key" + } +] + + + + + + + [{ + "text":"This door is locked", + "options":[ + { "name":"go away" }, + { + "name":"unlock with Rusty Old Key", + "condition":[{"item":"Rusty Old Key"}], + "text":"The gate is unlocked", + "options":[{"name":"continue", "action":[ {"deleteMapObject":-1},{"removeItem":"Rusty Old Key"}]} ] + } + ] +}] + + + + diff --git a/forge-gui/res/adventure/Shandalar/maps/map/magetower_3.tmx b/forge-gui/res/adventure/Shandalar/maps/map/magetower_3.tmx index 78423628f8c..5965e793335 100644 --- a/forge-gui/res/adventure/Shandalar/maps/map/magetower_3.tmx +++ b/forge-gui/res/adventure/Shandalar/maps/map/magetower_3.tmx @@ -47,7 +47,7 @@ - + @@ -79,7 +79,7 @@ - + diff --git a/forge-gui/res/adventure/Shandalar/maps/map/main_story/forest_capital.tmx b/forge-gui/res/adventure/Shandalar/maps/map/main_story/forest_capital.tmx index 61e233104ff..a32b9db7a50 100644 --- a/forge-gui/res/adventure/Shandalar/maps/map/main_story/forest_capital.tmx +++ b/forge-gui/res/adventure/Shandalar/maps/map/main_story/forest_capital.tmx @@ -178,16 +178,6 @@ "rounds":3, "entryFee":100, "rewards": [[ - { - "type": "card", - "probability": 1, - "count":2, - "rarity": [ - "Mythic Rare" - ], - "colors": ["green"] - } - ],[ { "type": "gold", "probability": 1, @@ -199,6 +189,16 @@ "count": 1, "itemNames": ["Dungeon Map","Mad Staff","Gold Boots","Disrupting Scepter"] } + ],[ + { + "type": "card", + "probability": 1, + "count":2, + "rarity": [ + "Rare","Mythic Rare" + ], + "colors": ["green"] + } ] ] } diff --git a/forge-gui/res/adventure/Shandalar/maps/map/main_story/island_capital.tmx b/forge-gui/res/adventure/Shandalar/maps/map/main_story/island_capital.tmx index d2305cd13b4..a325b7b2756 100644 --- a/forge-gui/res/adventure/Shandalar/maps/map/main_story/island_capital.tmx +++ b/forge-gui/res/adventure/Shandalar/maps/map/main_story/island_capital.tmx @@ -154,16 +154,6 @@ "rounds":3, "entryFee":100, "rewards": [[ - { - "type": "card", - "probability": 1, - "count":2, - "rarity": [ - "Mythic Rare" - ], - "colors": ["blue"] - } - ],[ { "type": "gold", "probability": 1, @@ -175,6 +165,16 @@ "count": 1, "itemNames": ["Mithril Armor","Mithril Shield","Mithril Boots","Dagger"] } + ],[ + { + "type": "card", + "probability": 1, + "count":2, + "rarity": [ + "Rare","Mythic Rare" + ], + "colors": ["blue"] + } ] ] } diff --git a/forge-gui/res/adventure/Shandalar/maps/map/main_story/mountain_capital.tmx b/forge-gui/res/adventure/Shandalar/maps/map/main_story/mountain_capital.tmx index 8874d15a4a1..939f3fd222f 100644 --- a/forge-gui/res/adventure/Shandalar/maps/map/main_story/mountain_capital.tmx +++ b/forge-gui/res/adventure/Shandalar/maps/map/main_story/mountain_capital.tmx @@ -160,16 +160,6 @@ "rounds":3, "entryFee":100, "rewards": [[ - { - "type": "card", - "probability": 1, - "count":2, - "rarity": [ - "Mythic Rare" - ], - "colors": ["red"] - } - ],[ { "type": "gold", "probability": 1, @@ -181,6 +171,16 @@ "count": 1, "itemNames": ["Aladdin's Ring","Axt","Ring of Immortals","Jandor's Ring"] } + ],[ + { + "type": "card", + "probability": 1, + "count":2, + "rarity": [ + "Rare","Mythic Rare" + ], + "colors": ["red"] + } ] ] } diff --git a/forge-gui/res/adventure/Shandalar/maps/map/main_story/plains_capital.tmx b/forge-gui/res/adventure/Shandalar/maps/map/main_story/plains_capital.tmx index dcf6c657a33..09cc96033b8 100644 --- a/forge-gui/res/adventure/Shandalar/maps/map/main_story/plains_capital.tmx +++ b/forge-gui/res/adventure/Shandalar/maps/map/main_story/plains_capital.tmx @@ -153,16 +153,6 @@ "rounds":3, "entryFee":100, "rewards": [[ - { - "type": "card", - "probability": 1, - "count":2, - "rarity": [ - "Mythic Rare" - ], - "colors": ["white"] - } - ],[ { "type": "gold", "probability": 1, @@ -175,6 +165,17 @@ "count": 1, "itemNames": ["Gold Armor","Gold Shield","Gold Boots","Bronze Sword"] } + ], +[ + { + "type": "card", + "probability": 1, + "count":2, + "rarity": [ + "Rare","Mythic Rare" + ], + "colors": ["white"] + } ] ] } diff --git a/forge-gui/res/adventure/Shandalar/maps/map/main_story/swamp_capital.tmx b/forge-gui/res/adventure/Shandalar/maps/map/main_story/swamp_capital.tmx index 189e522e957..19ba32e670d 100644 --- a/forge-gui/res/adventure/Shandalar/maps/map/main_story/swamp_capital.tmx +++ b/forge-gui/res/adventure/Shandalar/maps/map/main_story/swamp_capital.tmx @@ -82,16 +82,6 @@ "rounds":3, "entryFee":100, "rewards": [[ - { - "type": "card", - "probability": 1, - "count":2, - "rarity": [ - "Mythic Rare" - ], - "colors": ["black"] - } - ],[ { "type": "gold", "probability": 1, @@ -103,6 +93,17 @@ "count": 1, "itemNames": ["Death Ring","Dark Armor","Dark Shield","Dark Boots"] } + ], + [ + { + "type": "card", + "probability": 1, + "count":2, + "rarity": [ + "Rare","Mythic Rare" + ], + "colors": ["black"] + } ] ] } diff --git a/forge-gui/res/adventure/Shandalar/maps/map/nest_blue_1.tmx b/forge-gui/res/adventure/Shandalar/maps/map/nest_blue_1.tmx index 7ed776794ed..1dad4f7bf1e 100644 --- a/forge-gui/res/adventure/Shandalar/maps/map/nest_blue_1.tmx +++ b/forge-gui/res/adventure/Shandalar/maps/map/nest_blue_1.tmx @@ -1,5 +1,5 @@ - + @@ -12,12 +12,12 @@ - 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 @@ -25,36 +25,121 @@ - eJxjYBgFo2AUjIJRMFJAOe9Au4A4UI7MRnJzKZBdPYT8AMPo4uggj4v27iEXgNwbqMXAEKSF6qdyJPmhAnKBfsjTQhVDj6PB6J8yaJrPJZBOhkLc4Evr2PL2YPQDCJQQWQ7B8g5I/RpO2rqJEtDCiEqjA1jeWQv0wzogVhGkn9toAbyB6fAg0A8bgX5ZP4jjhRCA+cMfSCcIDbRryAOgci0O6PZ4IH49iOvC4Qbuo+HhDv4wD7QLiAMLCbhzsPkDV7vEngW3nsHkB3x1uQcBvYPFH9jaVVewhH8p1K+DsS1SihQPZUjss+z0cwMAagwq4A== + eJxjYBgY0MKHiQfafmrj4eAHeviFFPtIdRM9/UIv82npl4FMv7Qym16AFnbSwsxyXtLsphYg1bxyZDaSm0uB7Goi/YBuNzX8Q4o55UgYXRwd5HGRZj+lfiHVH4FaDAxBWqh+KkeSJ9d+evoDBHKBfsjTQhVDjyNS/EMvf5RB03wugXRCTtzQO3/gS+vY8ja9/YBsHj5QQmQ5BMs7IPVrOImzl57+gKtlRKXRASzvrAX6YR0QqwhSx16i3EaD+twbmA4PAv2wEeiX9TjiZSj5wx9IJwjRx15q9x9A5Voc0O3xQPwaT/kwmPxBbl6ldfuUFH/cx6KeVLMHGyAlTgerHxYyI9hDwf3I7ZKz7Ai2PQtuPX+YccvRG6DX5QZAP+RxQNgeBPQOFn9ga1chxwUMlEL9SqgtMhCgFCkeypDY2PxBKwAAKZqgGA== - + - + + + - + + - + + + + + + + [ + { + "editions": [ "EXO" ], + "type": "card", + "count": 10, + "rarity": [ "Common" ] + }, + { + "editions": [ "EXO" ], + "type": "card", + "count": 3, + "rarity": [ "Uncommon" ] + }, + { + "editions": [ "EXO" ], + "type": "card", + "count": 3, + "rarity": [ "Rare", "Mythic Rare" ] + } +] + + + + + + [ + { + "editions": [ "STH" ], + "type": "card", + "count": 10, + "rarity": [ "Common" ] + }, + { + "editions": [ "STH" ], + "type": "card", + "count": 3, + "rarity": [ "Uncommon" ] + }, + { + "editions": [ "STH" ], + "type": "card", + "count": 3, + "rarity": [ "Rare", "Mythic Rare" ] + } +] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/forge-gui/res/adventure/Shandalar/maps/map/nest_white_1.tmx b/forge-gui/res/adventure/Shandalar/maps/map/nest_white_1.tmx index 1ccd934b2f0..5280a26ed2f 100644 --- a/forge-gui/res/adventure/Shandalar/maps/map/nest_white_1.tmx +++ b/forge-gui/res/adventure/Shandalar/maps/map/nest_white_1.tmx @@ -1,23 +1,18 @@ - + - - - - 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 @@ -25,33 +20,272 @@ - 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 - + - + - - - + + + + - + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + [ + { + "editions": [ "PCY" ], + "type": "card", + "count": 10, + "rarity": [ "Common" ] + }, + { + "editions": [ "PCY" ], + "type": "card", + "count": 3, + "rarity": [ "Uncommon" ] + }, + { + "editions": [ "PCY" ], + "type": "card", + "count": 3, + "rarity": [ "Rare", "Mythic Rare" ] + } +] + + + + + + + [ + { + "editions": [ "NEM" ], + "type": "card", + "count": 10, + "rarity": [ "Common" ] + }, + { + "editions": [ "NEM" ], + "type": "card", + "count": 3, + "rarity": [ "Uncommon" ] + }, + { + "editions": [ "NEM" ], + "type": "card", + "count": 3, + "rarity": [ "Rare", "Mythic Rare" ] + } +] + + + + + + [ + { + "editions": [ "TMP" ], + "type": "card", + "count": 10, + "rarity": [ "Common" ] + }, + { + "editions": [ "TMP" ], + "type": "card", + "count": 3, + "rarity": [ "Uncommon" ] + }, + { + "editions": [ "TMP" ], + "type": "card", + "count": 3, + "rarity": [ "Rare", "Mythic Rare" ] + } +] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/forge-gui/res/adventure/Shandalar/maps/map/phyrexian_black1.tmx b/forge-gui/res/adventure/Shandalar/maps/map/phyrexian_black1.tmx new file mode 100644 index 00000000000..94a51babcd4 --- /dev/null +++ b/forge-gui/res/adventure/Shandalar/maps/map/phyrexian_black1.tmx @@ -0,0 +1,123 @@ + + + + + + + + + + + eJzVlM0NgCAMRrkYT3YZo67nEuJc6ia6gHAgYG1JIWBik+8g1L7+Bd0opQWqYRJubfYOtL5g596XZM9t/L7kfHLYEzOfEbyvJC98ZmNQ96EG47N0Sp3gtZrvHmR9wTvGGVXfAW+OzWcjfGM15FqP8h0i+WOTssO+4v5iNp4DJ2kPuHnj/lJzSFFobt8pP66eC55xJLxUdsn3l/rH7WjNdy2MH9uL2uxSffwD+wZNG6DH + + + + + eJzr1mNgaBkg3D0E7N7BA6FBAJkeCH8PpN0DFd9N3APnXmqE96jdI89uctL5QNs9UGXLqN30t5taGACvMGLt + + + + + + + + eJxjYGBg6NYbGAwCU4H0FBx4Mo3t7oHS2EDXCLF7r97A2X2MjnaD0tN0GoU5chrGlmYJAUrsRg7PaVjcQS+7sZk5kHY3QXEfAXXk4GYk85FxI5K/sbnxvB7ldhOTx7DZfWMA7aZGmA8FuwmlC1raPRAYAAIpNm8= + + + + + + + + eJxjYBgFo2Dwgvl6DAztWPACPdrb3Q+0ow2IZyLhDiCeSEW7D+Lw3yws9oDcMwNN3SEK3HIKqHcCDozNbnQ1pymw+zJauOILX2zxcIUG8Y8tfLHFAy3AChzhsZIOdo+CUUAOAAA9nDWk + + + + + eJxjYBgFo2AUjIJRMApGwSggHgAACDwAAQ== + + + + + + + + + + + + + + + + + + + + + + [ + { + "editions": [ "ONE" ], + "type": "card", + "count": 10, + "rarity": [ "Common" ] + "colors": [ "black" ] + }, + { + "editions": [ "ONE" ], + "type": "card", + "count": 3, + "rarity": [ "Uncommon" ] + "colors": [ "black" ] + }, + { + "editions": [ "ONE" ], + "type": "card", + "count": 1, + "rarity": [ "Rare", "Mythic Rare" ] + "colors": [ "black" ] + } +] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/forge-gui/res/adventure/Shandalar/maps/map/phyrexian_g1.tmx b/forge-gui/res/adventure/Shandalar/maps/map/phyrexian_g1.tmx index b77e72f214f..86ca6abef7d 100644 --- a/forge-gui/res/adventure/Shandalar/maps/map/phyrexian_g1.tmx +++ b/forge-gui/res/adventure/Shandalar/maps/map/phyrexian_g1.tmx @@ -8,7 +8,7 @@ - eJztllsKxSAMRN1A3Uwfd6W3XVfbDRU/hBBMjDoVCg7ky9bD5IXODQX9p/7M2Tt3GWP1OKZVKObJvGzk3h87u0FMLuob5SvXM28wLT0Theop6iN43gvjIHmqYZb0bIqDYs6Z3LUy+ZzQmdDOWphSPUPNtLMWppRb7c436nkKeUQxpZppUVtPy+xZZGUuXo7UHdr3S4FPS96ixu77/u6L6rn7osbuq2f23H0oWZkpb1vmX/7ORbx3c95Rb87BbGc+/yCvUQ== + eJztlksOgzAMRLPpsrkMlJ60cC7gQlUWkSw3dhw8gCplJK8CeRr/lBC6kj7P65lDDGEzxivimFahmCvzMpF73+xsBzG5qG+Ur1rPnMG09EwWqqeoj+R5boyF5OkIs6VnSxwUc6jkzsvkc0JnQjvzMKV6ppppZx6mlFvtzjPquQp5RDGlmmlxtJ6W2bPIyhyjHKU7tO/HBp+WvGX13ff/uy/ryt2Xdcfumx+/0XefjemVlVnyNlX+5e9cxHu35h315uxMP/MLiOKyFQ== diff --git a/forge-gui/res/adventure/Shandalar/maps/map/tibalt.tmx b/forge-gui/res/adventure/Shandalar/maps/map/tibalt.tmx index e18e888600c..e777540ecbd 100644 --- a/forge-gui/res/adventure/Shandalar/maps/map/tibalt.tmx +++ b/forge-gui/res/adventure/Shandalar/maps/map/tibalt.tmx @@ -42,7 +42,7 @@ - + @@ -73,7 +73,7 @@ - + @@ -95,7 +95,7 @@ - + diff --git a/forge-gui/res/adventure/Shandalar/maps/tileset/DrossPitTiles.png b/forge-gui/res/adventure/Shandalar/maps/tileset/DrossPitTiles.png new file mode 100644 index 00000000000..7877735a83e Binary files /dev/null and b/forge-gui/res/adventure/Shandalar/maps/tileset/DrossPitTiles.png differ diff --git a/forge-gui/res/adventure/Shandalar/maps/tileset/DrossPitTiles.tsx b/forge-gui/res/adventure/Shandalar/maps/tileset/DrossPitTiles.tsx new file mode 100644 index 00000000000..d009791d2a1 --- /dev/null +++ b/forge-gui/res/adventure/Shandalar/maps/tileset/DrossPitTiles.tsx @@ -0,0 +1,4 @@ + + + + diff --git a/forge-gui/res/adventure/Shandalar/maps/tileset/FarmFood.png b/forge-gui/res/adventure/Shandalar/maps/tileset/FarmFood.png new file mode 100644 index 00000000000..1f34311f08b Binary files /dev/null and b/forge-gui/res/adventure/Shandalar/maps/tileset/FarmFood.png differ diff --git a/forge-gui/res/adventure/Shandalar/maps/tileset/FarmFood.tsx b/forge-gui/res/adventure/Shandalar/maps/tileset/FarmFood.tsx new file mode 100644 index 00000000000..5d031ae6f19 --- /dev/null +++ b/forge-gui/res/adventure/Shandalar/maps/tileset/FarmFood.tsx @@ -0,0 +1,4 @@ + + + + diff --git a/forge-gui/res/adventure/Shandalar/maps/tileset/Phyrexian_Buildings.atlas b/forge-gui/res/adventure/Shandalar/maps/tileset/Phyrexian_Buildings.atlas index 27ef09c738c..07f6f59acfa 100644 --- a/forge-gui/res/adventure/Shandalar/maps/tileset/Phyrexian_Buildings.atlas +++ b/forge-gui/res/adventure/Shandalar/maps/tileset/Phyrexian_Buildings.atlas @@ -12,3 +12,6 @@ GitLabSmall CopperhostForest xy: 64,0 size: 32, 32 +DrossOutpost + xy: 96,0 + size: 32, 32 \ No newline at end of file diff --git a/forge-gui/res/adventure/Shandalar/maps/tileset/Phyrexian_Buildings.png b/forge-gui/res/adventure/Shandalar/maps/tileset/Phyrexian_Buildings.png index e4088c599fa..5ab488e7eb0 100644 Binary files a/forge-gui/res/adventure/Shandalar/maps/tileset/Phyrexian_Buildings.png and b/forge-gui/res/adventure/Shandalar/maps/tileset/Phyrexian_Buildings.png differ diff --git a/forge-gui/res/adventure/Shandalar/maps/tileset/main.png b/forge-gui/res/adventure/Shandalar/maps/tileset/main.png index fa2349a1c16..fa352916459 100644 Binary files a/forge-gui/res/adventure/Shandalar/maps/tileset/main.png and b/forge-gui/res/adventure/Shandalar/maps/tileset/main.png differ diff --git a/forge-gui/res/adventure/Shandalar/sprites/dungeon/badger.atlas b/forge-gui/res/adventure/Shandalar/sprites/badger.atlas similarity index 100% rename from forge-gui/res/adventure/Shandalar/sprites/dungeon/badger.atlas rename to forge-gui/res/adventure/Shandalar/sprites/badger.atlas diff --git a/forge-gui/res/adventure/Shandalar/sprites/dungeon/badger.png b/forge-gui/res/adventure/Shandalar/sprites/badger.png similarity index 100% rename from forge-gui/res/adventure/Shandalar/sprites/dungeon/badger.png rename to forge-gui/res/adventure/Shandalar/sprites/badger.png diff --git a/forge-gui/res/adventure/Shandalar/sprites/dungeon/boar.atlas b/forge-gui/res/adventure/Shandalar/sprites/boar.atlas similarity index 76% rename from forge-gui/res/adventure/Shandalar/sprites/dungeon/boar.atlas rename to forge-gui/res/adventure/Shandalar/sprites/boar.atlas index 320d45a7216..906e6c25db6 100644 --- a/forge-gui/res/adventure/Shandalar/sprites/dungeon/boar.atlas +++ b/forge-gui/res/adventure/Shandalar/sprites/boar.atlas @@ -8,40 +8,40 @@ Avatar size: 16, 16 Idle xy: 00, 11 - size: 32, 20 + size: 32, 21 Idle xy: 32, 11 - size: 32, 20 + size: 32, 21 Idle xy: 64, 11 - size: 32, 20 + size: 32, 21 Idle xy: 96, 11 - size: 32, 20 + size: 32, 21 Walk xy: 0, 40 - size: 32, 20 + size: 32, 24 Walk xy: 32, 40 - size: 32, 22 + size: 32, 24 Walk xy: 64, 40 - size: 32, 22 + size: 32, 24 Walk xy: 96, 40 - size: 32, 22 + size: 32, 24 Walk xy: 128, 40 - size: 32, 22 + size: 32, 24 Walk xy: 160, 40 - size: 32, 22 + size: 32, 24 Walk xy: 192, 40 - size: 32, 22 + size: 32, 24 Walk xy: 224, 40 - size: 32, 22 + size: 32, 24 Attack xy: 0, 64 size: 32, 32 diff --git a/forge-gui/res/adventure/Shandalar/sprites/dungeon/boar.png b/forge-gui/res/adventure/Shandalar/sprites/boar.png similarity index 100% rename from forge-gui/res/adventure/Shandalar/sprites/dungeon/boar.png rename to forge-gui/res/adventure/Shandalar/sprites/boar.png diff --git a/forge-gui/res/adventure/Shandalar/sprites/boss/frogboss.atlas b/forge-gui/res/adventure/Shandalar/sprites/boss/frogboss.atlas new file mode 100644 index 00000000000..a135e122872 --- /dev/null +++ b/forge-gui/res/adventure/Shandalar/sprites/boss/frogboss.atlas @@ -0,0 +1,98 @@ +frogboss.png +size: 1152,512 +format: RGBA8888 +filter: Nearest,Nearest +repeat: none +Avatar + xy: 33, 273 + size: 39, 28 +Idle + xy: 18,14 + size: 65, 50 +Idle + xy: 114,14 + size: 65, 50 +Idle + xy: 210,14 + size: 65, 50 +Idle + xy: 306,14 + size: 65, 50 +Idle + xy: 402,14 + size: 65, 50 +Walk + xy: 18, 68 + size: 70, 60 +Walk + xy: 114, 68 + size: 70, 60 +Walk + xy: 210, 68 + size: 70, 60 +Walk + xy: 306, 68 + size: 70, 60 +Walk + xy: 402, 68 + size: 70, 60 +Walk + xy: 498, 68 + size: 70, 60 +Walk + xy: 594, 68 + size: 70, 60 +Walk + xy: 690, 68 + size: 70, 60 +Walk + xy: 786, 68 + size: 70, 60 +Walk + xy: 882, 68 + size: 70, 60 +Walk + xy: 978, 68 + size: 70, 60 +Walk + xy: 1074, 68 + size: 70, 60 +Attack + xy: 18, 200 + size: 78, 57 +Attack + xy: 114, 200 + size: 78, 57 +Attack + xy: 210, 200 + size: 78, 57 +Attack + xy: 306, 200 + size: 78, 57 +Death + xy: 18,462 + size: 70, 50 +Death + xy: 114,462 + size: 70, 50 +Death + xy: 210,462 + size: 70, 50 +Death + xy: 306,462 + size: 70, 50 +Death + xy: 402,462 + size: 70, 50 +Death + xy: 498,462 + size: 70, 50 +Death + xy: 594,462 + size: 70, 50 +Death + xy: 690,462 + size: 70, 50 +Death + xy: 786,462 + size: 70, 50 \ No newline at end of file diff --git a/forge-gui/res/adventure/Shandalar/sprites/boss/frogboss.png b/forge-gui/res/adventure/Shandalar/sprites/boss/frogboss.png new file mode 100644 index 00000000000..68e82448ee5 Binary files /dev/null and b/forge-gui/res/adventure/Shandalar/sprites/boss/frogboss.png differ diff --git a/forge-gui/res/adventure/Shandalar/sprites/dungeon/garruk.atlas b/forge-gui/res/adventure/Shandalar/sprites/boss/garruk.atlas similarity index 100% rename from forge-gui/res/adventure/Shandalar/sprites/dungeon/garruk.atlas rename to forge-gui/res/adventure/Shandalar/sprites/boss/garruk.atlas diff --git a/forge-gui/res/adventure/Shandalar/sprites/dungeon/garruk.png b/forge-gui/res/adventure/Shandalar/sprites/boss/garruk.png similarity index 100% rename from forge-gui/res/adventure/Shandalar/sprites/dungeon/garruk.png rename to forge-gui/res/adventure/Shandalar/sprites/boss/garruk.png diff --git a/forge-gui/res/adventure/Shandalar/sprites/dungeon/jace.atlas b/forge-gui/res/adventure/Shandalar/sprites/boss/jace.atlas similarity index 100% rename from forge-gui/res/adventure/Shandalar/sprites/dungeon/jace.atlas rename to forge-gui/res/adventure/Shandalar/sprites/boss/jace.atlas diff --git a/forge-gui/res/adventure/Shandalar/sprites/dungeon/jace.png b/forge-gui/res/adventure/Shandalar/sprites/boss/jace.png similarity index 100% rename from forge-gui/res/adventure/Shandalar/sprites/dungeon/jace.png rename to forge-gui/res/adventure/Shandalar/sprites/boss/jace.png diff --git a/forge-gui/res/adventure/Shandalar/sprites/dungeon/kiora.atlas b/forge-gui/res/adventure/Shandalar/sprites/boss/kiora.atlas similarity index 100% rename from forge-gui/res/adventure/Shandalar/sprites/dungeon/kiora.atlas rename to forge-gui/res/adventure/Shandalar/sprites/boss/kiora.atlas diff --git a/forge-gui/res/adventure/Shandalar/sprites/dungeon/kiora.png b/forge-gui/res/adventure/Shandalar/sprites/boss/kiora.png similarity index 100% rename from forge-gui/res/adventure/Shandalar/sprites/dungeon/kiora.png rename to forge-gui/res/adventure/Shandalar/sprites/boss/kiora.png diff --git a/forge-gui/res/adventure/Shandalar/sprites/dungeon/nahiri.atlas b/forge-gui/res/adventure/Shandalar/sprites/boss/nahiri.atlas similarity index 100% rename from forge-gui/res/adventure/Shandalar/sprites/dungeon/nahiri.atlas rename to forge-gui/res/adventure/Shandalar/sprites/boss/nahiri.atlas diff --git a/forge-gui/res/adventure/Shandalar/sprites/dungeon/nahiri.png b/forge-gui/res/adventure/Shandalar/sprites/boss/nahiri.png similarity index 100% rename from forge-gui/res/adventure/Shandalar/sprites/dungeon/nahiri.png rename to forge-gui/res/adventure/Shandalar/sprites/boss/nahiri.png diff --git a/forge-gui/res/adventure/Shandalar/sprites/boss/oozeboss.atlas b/forge-gui/res/adventure/Shandalar/sprites/boss/oozeboss.atlas new file mode 100644 index 00000000000..f09a6fcc67d --- /dev/null +++ b/forge-gui/res/adventure/Shandalar/sprites/boss/oozeboss.atlas @@ -0,0 +1,20 @@ +oozeboss.png +size: 64,16 +format: RGBA8888 +filter: Nearest,Nearest +repeat: none +Avatar + xy: 1,1 + size: 15, 14 +Idle + xy: 0, 0 + size: 16, 16 +Idle + xy: 16, 0 + size: 16, 16 +Idle + xy: 32, 0 + size: 16, 16 +Idle + xy: 48, 0 + size: 16, 16 \ No newline at end of file diff --git a/forge-gui/res/adventure/Shandalar/sprites/boss/oozeboss.png b/forge-gui/res/adventure/Shandalar/sprites/boss/oozeboss.png new file mode 100644 index 00000000000..28dd85985dd Binary files /dev/null and b/forge-gui/res/adventure/Shandalar/sprites/boss/oozeboss.png differ diff --git a/forge-gui/res/adventure/Shandalar/sprites/dungeon/slimefoot.atlas b/forge-gui/res/adventure/Shandalar/sprites/boss/slimefoot.atlas similarity index 100% rename from forge-gui/res/adventure/Shandalar/sprites/dungeon/slimefoot.atlas rename to forge-gui/res/adventure/Shandalar/sprites/boss/slimefoot.atlas diff --git a/forge-gui/res/adventure/Shandalar/sprites/dungeon/slimefoot.png b/forge-gui/res/adventure/Shandalar/sprites/boss/slimefoot.png similarity index 100% rename from forge-gui/res/adventure/Shandalar/sprites/dungeon/slimefoot.png rename to forge-gui/res/adventure/Shandalar/sprites/boss/slimefoot.png diff --git a/forge-gui/res/adventure/Shandalar/sprites/dungeon/slobad.atlas b/forge-gui/res/adventure/Shandalar/sprites/boss/slobad.atlas similarity index 74% rename from forge-gui/res/adventure/Shandalar/sprites/dungeon/slobad.atlas rename to forge-gui/res/adventure/Shandalar/sprites/boss/slobad.atlas index cd4bafd1736..b9042c733b7 100644 --- a/forge-gui/res/adventure/Shandalar/sprites/dungeon/slobad.atlas +++ b/forge-gui/res/adventure/Shandalar/sprites/boss/slobad.atlas @@ -42,30 +42,30 @@ Walk Walk xy: 1168, 140 size: 80, 50 -Attack - xy: 48, 230 - size: 80, 50 Attack - xy: 208, 230 - size: 80, 50 -Attack - xy: 368, 230 - size: 80, 50 + xy: 40, 208 + size: 130, 80 Attack - xy: 528, 230 - size: 80, 50 -Attack - xy: 688, 230 - size: 80, 50 + xy: 200, 208 + size: 130, 80 Attack - xy: 848, 230 - size: 80, 50 -Attack - xy: 1008, 230 - size: 80, 50 + xy: 360, 208 + size: 130, 80 +Attack + xy: 520, 208 + size: 130, 80 +Attack + xy: 680, 208 + size: 130, 80 +Attack + xy: 840, 208 + size: 130, 80 +Attack + xy: 1000, 208 + size: 130, 80 Death xy: 48, 430 - size: 16, 50 + size: 100, 50 Death xy: 208, 430 size: 100,50 diff --git a/forge-gui/res/adventure/Shandalar/sprites/dungeon/slobad.png b/forge-gui/res/adventure/Shandalar/sprites/boss/slobad.png similarity index 100% rename from forge-gui/res/adventure/Shandalar/sprites/dungeon/slobad.png rename to forge-gui/res/adventure/Shandalar/sprites/boss/slobad.png diff --git a/forge-gui/res/adventure/Shandalar/sprites/dungeon/teferi.atlas b/forge-gui/res/adventure/Shandalar/sprites/boss/teferi.atlas similarity index 100% rename from forge-gui/res/adventure/Shandalar/sprites/dungeon/teferi.atlas rename to forge-gui/res/adventure/Shandalar/sprites/boss/teferi.atlas diff --git a/forge-gui/res/adventure/Shandalar/sprites/dungeon/teferi.png b/forge-gui/res/adventure/Shandalar/sprites/boss/teferi.png similarity index 100% rename from forge-gui/res/adventure/Shandalar/sprites/dungeon/teferi.png rename to forge-gui/res/adventure/Shandalar/sprites/boss/teferi.png diff --git a/forge-gui/res/adventure/Shandalar/sprites/dungeon/tibalt.atlas b/forge-gui/res/adventure/Shandalar/sprites/boss/tibalt.atlas similarity index 100% rename from forge-gui/res/adventure/Shandalar/sprites/dungeon/tibalt.atlas rename to forge-gui/res/adventure/Shandalar/sprites/boss/tibalt.atlas diff --git a/forge-gui/res/adventure/Shandalar/sprites/dungeon/tibalt.png b/forge-gui/res/adventure/Shandalar/sprites/boss/tibalt.png similarity index 100% rename from forge-gui/res/adventure/Shandalar/sprites/dungeon/tibalt.png rename to forge-gui/res/adventure/Shandalar/sprites/boss/tibalt.png diff --git a/forge-gui/res/adventure/Shandalar/sprites/dungeon/xira.atlas b/forge-gui/res/adventure/Shandalar/sprites/boss/xira.atlas similarity index 100% rename from forge-gui/res/adventure/Shandalar/sprites/dungeon/xira.atlas rename to forge-gui/res/adventure/Shandalar/sprites/boss/xira.atlas diff --git a/forge-gui/res/adventure/Shandalar/sprites/dungeon/xira.png b/forge-gui/res/adventure/Shandalar/sprites/boss/xira.png similarity index 100% rename from forge-gui/res/adventure/Shandalar/sprites/dungeon/xira.png rename to forge-gui/res/adventure/Shandalar/sprites/boss/xira.png diff --git a/forge-gui/res/adventure/Shandalar/sprites/dungeon/bull.atlas b/forge-gui/res/adventure/Shandalar/sprites/bull.atlas similarity index 55% rename from forge-gui/res/adventure/Shandalar/sprites/dungeon/bull.atlas rename to forge-gui/res/adventure/Shandalar/sprites/bull.atlas index cf8e48ea75c..734abeb965e 100644 --- a/forge-gui/res/adventure/Shandalar/sprites/dungeon/bull.atlas +++ b/forge-gui/res/adventure/Shandalar/sprites/bull.atlas @@ -7,50 +7,50 @@ Avatar xy: 20, 10 size: 12, 13 Idle - xy: 0, 7 - size: 32, 25 + xy: 0, 5 + size: 32, 27 Idle - xy: 32, 7 - size: 32, 25 + xy: 32, 5 + size: 32, 27 Idle - xy: 64, 7 - size: 32, 25 + xy: 64, 5 + size: 32, 27 Idle - xy: 96, 7 - size: 32, 25 + xy: 96, 5 + size: 32, 27 Idle - xy: 128, 7 - size: 32, 25 + xy: 128, 5 + size: 32, 27 Idle - xy: 160, 7 - size: 32, 25 + xy: 160, 5 + size: 32, 27 Idle - xy: 192, 7 - size: 32, 25 + xy: 192, 5 + size: 32, 27 Walk - xy: 0, 41 - size: 32, 25 + xy: 0, 37 + size: 32, 27 Walk - xy: 32,41 - size: 32, 25 + xy: 32,37 + size: 32, 27 Walk - xy: 64, 41 - size: 32, 25 + xy: 64, 37 + size: 32, 27 Walk - xy: 96, 41 - size: 32, 25 + xy: 96, 37 + size: 32, 27 Walk - xy: 128, 41 - size: 32, 25 + xy: 128, 37 + size: 32, 27 Walk - xy: 160, 41 - size: 32, 25 + xy: 160, 37 + size: 32, 27 Walk - xy: 192, 41 - size: 32, 25 + xy: 192, 37 + size: 32, 27 Walk - xy: 224, 41 - size: 32, 25 + xy: 224, 37 + size: 32, 27 Attack xy: 0, 96 size: 32, 32 @@ -83,7 +83,4 @@ Death size: 32, 32 Death xy: 64, 128 - size: 32, 32 -Death - xy: 96, 128 - size: 32, 32 \ No newline at end of file + size: 32, 32 \ No newline at end of file diff --git a/forge-gui/res/adventure/Shandalar/sprites/dungeon/bull.png b/forge-gui/res/adventure/Shandalar/sprites/bull.png similarity index 100% rename from forge-gui/res/adventure/Shandalar/sprites/dungeon/bull.png rename to forge-gui/res/adventure/Shandalar/sprites/bull.png diff --git a/forge-gui/res/adventure/Shandalar/sprites/dungeon/cat.atlas b/forge-gui/res/adventure/Shandalar/sprites/cat.atlas similarity index 100% rename from forge-gui/res/adventure/Shandalar/sprites/dungeon/cat.atlas rename to forge-gui/res/adventure/Shandalar/sprites/cat.atlas diff --git a/forge-gui/res/adventure/Shandalar/sprites/dungeon/cat.png b/forge-gui/res/adventure/Shandalar/sprites/cat.png similarity index 100% rename from forge-gui/res/adventure/Shandalar/sprites/dungeon/cat.png rename to forge-gui/res/adventure/Shandalar/sprites/cat.png diff --git a/forge-gui/res/adventure/Shandalar/sprites/crab.atlas b/forge-gui/res/adventure/Shandalar/sprites/crab.atlas new file mode 100644 index 00000000000..2dbff1be4d0 --- /dev/null +++ b/forge-gui/res/adventure/Shandalar/sprites/crab.atlas @@ -0,0 +1,56 @@ +crab.png +size: 128,128 +format: RGBA8888 +filter: Nearest,Nearest +repeat: none +Avatar + xy: 41, 111 + size: 15, 16 +Idle + xy: 5,16 + size: 20, 16 +Idle + xy: 37,16 + size: 20, 16 +Idle + xy: 69,16 + size: 20, 16 +Idle + xy: 101,16 + size: 20, 16 +Walk + xy: 5,48 + size: 21, 16 +Walk + xy: 37,48 + size: 21, 16 +Walk + xy: 69,48 + size: 21, 16 +Walk + xy: 101,48 + size: 21, 16 +Attack + xy: 6,112 + size: 20, 16 +Attack + xy: 38,112 + size: 20, 16 +Attack + xy: 70,112 + size: 20, 16 +Attack + xy: 102,112 + size: 20, 16 +Death + xy: 5, 80 + size: 21, 16 +Death + xy: 37, 80 + size: 21, 16 +Death + xy: 69, 80 + size: 21, 16 +Death + xy: 102, 80 + size: 21, 16 \ No newline at end of file diff --git a/forge-gui/res/adventure/Shandalar/sprites/dungeon/crab.png b/forge-gui/res/adventure/Shandalar/sprites/crab.png similarity index 100% rename from forge-gui/res/adventure/Shandalar/sprites/dungeon/crab.png rename to forge-gui/res/adventure/Shandalar/sprites/crab.png diff --git a/forge-gui/res/adventure/Shandalar/sprites/dungeon/dog.atlas b/forge-gui/res/adventure/Shandalar/sprites/dog.atlas similarity index 71% rename from forge-gui/res/adventure/Shandalar/sprites/dungeon/dog.atlas rename to forge-gui/res/adventure/Shandalar/sprites/dog.atlas index 5b899150f6d..a8e67dbc2ff 100644 --- a/forge-gui/res/adventure/Shandalar/sprites/dungeon/dog.atlas +++ b/forge-gui/res/adventure/Shandalar/sprites/dog.atlas @@ -31,29 +31,29 @@ Idle xy: 230, 17 size: 20, 15 Walk - xy: 6, 108 - size: 25, 20 + xy: 5, 112 + size: 25, 16 Walk - xy: 38, 108 - size: 25, 20 + xy: 37, 112 + size: 25, 16 Walk - xy: 70, 108 - size: 25, 20 + xy: 69, 112 + size: 25, 16 Walk - xy: 102,108 - size: 25, 20 + xy: 101,112 + size: 25, 16 Walk - xy: 134, 108 - size: 25, 20 + xy: 133, 112 + size: 25, 16 Walk - xy: 166,108 - size: 25, 20 + xy: 165,112 + size: 25, 16 Walk - xy: 198, 108 - size: 25, 20 + xy: 197, 112 + size: 25, 16 Walk - xy: 230,108 - size: 25, 20 + xy: 229,112 + size: 25, 16 Attack xy: 0, 172 size: 32, 20 @@ -66,9 +66,9 @@ Attack Death xy: 0, 204 size: 32, 20 -Attack +Death xy: 32, 204 size: 32, 20 -Attack +Death xy: 64, 204 size: 32, 20 \ No newline at end of file diff --git a/forge-gui/res/adventure/Shandalar/sprites/dungeon/dog.png b/forge-gui/res/adventure/Shandalar/sprites/dog.png similarity index 100% rename from forge-gui/res/adventure/Shandalar/sprites/dungeon/dog.png rename to forge-gui/res/adventure/Shandalar/sprites/dog.png diff --git a/forge-gui/res/adventure/Shandalar/sprites/dungeon/dragonfly.atlas b/forge-gui/res/adventure/Shandalar/sprites/dragonfly.atlas similarity index 97% rename from forge-gui/res/adventure/Shandalar/sprites/dungeon/dragonfly.atlas rename to forge-gui/res/adventure/Shandalar/sprites/dragonfly.atlas index 15abf7ac118..5ddde72289e 100644 --- a/forge-gui/res/adventure/Shandalar/sprites/dungeon/dragonfly.atlas +++ b/forge-gui/res/adventure/Shandalar/sprites/dragonfly.atlas @@ -8,7 +8,7 @@ Avatar size: 14, 12 Idle xy: 7,8 - size: 20, 20 + size: 22, 20 Idle xy: 39,8 size: 22, 20 diff --git a/forge-gui/res/adventure/Shandalar/sprites/dungeon/dragonfly.png b/forge-gui/res/adventure/Shandalar/sprites/dragonfly.png similarity index 100% rename from forge-gui/res/adventure/Shandalar/sprites/dungeon/dragonfly.png rename to forge-gui/res/adventure/Shandalar/sprites/dragonfly.png diff --git a/forge-gui/res/adventure/Shandalar/sprites/drossgladiator.atlas b/forge-gui/res/adventure/Shandalar/sprites/drossgladiator.atlas new file mode 100644 index 00000000000..e368538266d --- /dev/null +++ b/forge-gui/res/adventure/Shandalar/sprites/drossgladiator.atlas @@ -0,0 +1,68 @@ +drossgladiator.png +size: 64,96 +format: RGBA8888 +filter: Nearest,Nearest +repeat: none +Avatar + xy: 0, 0 + size: 16, 16 +Idle + xy: 0, 16 + size: 16, 16 +Idle + xy: 16, 16 + size: 16, 16 +Idle + xy: 32, 16 + size: 16, 16 +Idle + xy: 48, 16 + size: 16, 16 +Walk + xy: 0, 32 + size: 16, 16 +Walk + xy: 16, 32 + size: 16, 16 +Walk + xy: 32, 32 + size: 16, 16 +Walk + xy: 48, 32 + size: 16, 16 +Attack + xy: 0, 48 + size: 16, 16 +Attack + xy: 16, 48 + size: 16, 16 +Attack + xy: 32, 48 + size: 16, 16 +Attack + xy: 48, 48 + size: 16, 16 +Hit + xy: 0, 64 + size: 16, 16 +Hit + xy: 16, 64 + size: 16, 16 +Hit + xy: 32, 64 + size: 16, 16 +Hit + xy: 48, 64 + size: 16, 16 +Death + xy: 0, 80 + size: 16, 16 +Death + xy: 16, 80 + size: 16, 16 +Death + xy: 32, 80 + size: 16, 16 +Death + xy: 48, 80 + size: 16, 16 \ No newline at end of file diff --git a/forge-gui/res/adventure/Shandalar/sprites/drossgladiator.png b/forge-gui/res/adventure/Shandalar/sprites/drossgladiator.png new file mode 100644 index 00000000000..6da299cdbee Binary files /dev/null and b/forge-gui/res/adventure/Shandalar/sprites/drossgladiator.png differ diff --git a/forge-gui/res/adventure/Shandalar/sprites/drossgrimnarch.atlas b/forge-gui/res/adventure/Shandalar/sprites/drossgrimnarch.atlas new file mode 100644 index 00000000000..aa62b4b78ab --- /dev/null +++ b/forge-gui/res/adventure/Shandalar/sprites/drossgrimnarch.atlas @@ -0,0 +1,68 @@ +drossgrimnarch.png +size: 64,96 +format: RGBA8888 +filter: Nearest,Nearest +repeat: none +Avatar + xy: 0, 0 + size: 16, 16 +Idle + xy: 0, 16 + size: 16, 16 +Idle + xy: 16, 16 + size: 16, 16 +Idle + xy: 32, 16 + size: 16, 16 +Idle + xy: 48, 16 + size: 16, 16 +Walk + xy: 0, 32 + size: 16, 16 +Walk + xy: 16, 32 + size: 16, 16 +Walk + xy: 32, 32 + size: 16, 16 +Walk + xy: 48, 32 + size: 16, 16 +Attack + xy: 0, 48 + size: 16, 16 +Attack + xy: 16, 48 + size: 16, 16 +Attack + xy: 32, 48 + size: 16, 16 +Attack + xy: 48, 48 + size: 16, 16 +Hit + xy: 0, 64 + size: 16, 16 +Hit + xy: 16, 64 + size: 16, 16 +Hit + xy: 32, 64 + size: 16, 16 +Hit + xy: 48, 64 + size: 16, 16 +Death + xy: 0, 80 + size: 16, 16 +Death + xy: 16, 80 + size: 16, 16 +Death + xy: 32, 80 + size: 16, 16 +Death + xy: 48, 80 + size: 16, 16 \ No newline at end of file diff --git a/forge-gui/res/adventure/Shandalar/sprites/drossgrimnarch.png b/forge-gui/res/adventure/Shandalar/sprites/drossgrimnarch.png new file mode 100644 index 00000000000..b55009a80ea Binary files /dev/null and b/forge-gui/res/adventure/Shandalar/sprites/drossgrimnarch.png differ diff --git a/forge-gui/res/adventure/Shandalar/sprites/dungeon/bat.atlas b/forge-gui/res/adventure/Shandalar/sprites/dungeon/bat.atlas new file mode 100644 index 00000000000..d3094e4d2b2 --- /dev/null +++ b/forge-gui/res/adventure/Shandalar/sprites/dungeon/bat.atlas @@ -0,0 +1,53 @@ +bat.png +size: 80,72 +format: RGBA8888 +filter: Nearest,Nearest +repeat: none +Avatar + xy: 66, 1 + size: 12, 9 +Idle + xy: 0, 0 + size: 16, 16 +Idle + xy: 16, 0 + size: 16, 16 +Idle + xy: 32, 0 + size: 16, 16 +Idle + xy: 48, 0 + size: 16, 16 +Idle + xy: 64, 0 + size: 16, 16 +Walk + xy: 0, 24 + size: 16, 16 +Walk + xy: 16, 24 + size: 16, 16 +Walk + xy: 32, 24 + size: 16, 16 +Walk + xy: 48, 24 + size: 16, 16 +Walk + xy: 64, 24 + size: 16, 16 +Death + xy: 0, 50 + size: 16, 20 +Death + xy: 16, 50 + size: 16, 20 +Death + xy: 32, 50 + size: 16, 20 +Death + xy: 48, 50 + size: 16, 20 +Death + xy: 62, 50 + size: 16, 20 \ No newline at end of file diff --git a/forge-gui/res/adventure/Shandalar/sprites/dungeon/bat.png b/forge-gui/res/adventure/Shandalar/sprites/dungeon/bat.png new file mode 100644 index 00000000000..2dc98e234ae Binary files /dev/null and b/forge-gui/res/adventure/Shandalar/sprites/dungeon/bat.png differ diff --git a/forge-gui/res/adventure/Shandalar/sprites/dungeon/crab.atlas b/forge-gui/res/adventure/Shandalar/sprites/dungeon/crab.atlas deleted file mode 100644 index b91a6726e00..00000000000 --- a/forge-gui/res/adventure/Shandalar/sprites/dungeon/crab.atlas +++ /dev/null @@ -1,56 +0,0 @@ -crab.png -size: 128,128 -format: RGBA8888 -filter: Nearest,Nearest -repeat: none -Avatar - xy: 41, 111 - size: 15, 16 -Idle - xy: 5,22 - size: 22, 10 -Idle - xy: 37, 22 - size: 22, 10 -Idle - xy: 69, 22 - size: 22, 10 -Idle - xy: 101, 22 - size: 22, 10 -Walk - xy: 6, 54 - size: 22, 10 -Walk - xy: 37, 54 - size: 22, 10 -Walk - xy: 69, 54 - size: 22, 10 -Walk - xy: 101, 54 - size: 22, 10 -Attack - xy: 0, 96 - size: 32, 32 -Attack - xy: 32, 96 - size: 32, 32 -Attack - xy: 64, 96 - size: 32, 32 -Attack - xy: 96, 96 - size: 32, 32 -Death - xy: 0, 64 - size: 32, 32 -Death - xy: 32, 64 - size: 32, 32 -Death - xy: 64, 64 - size: 32, 32 -Death - xy: 96, 64 - size: 32, 32 \ No newline at end of file diff --git a/forge-gui/res/adventure/Shandalar/sprites/dungeon/flyingwitch.atlas b/forge-gui/res/adventure/Shandalar/sprites/dungeon/flyingwitch.atlas new file mode 100644 index 00000000000..0a75f8cb229 --- /dev/null +++ b/forge-gui/res/adventure/Shandalar/sprites/dungeon/flyingwitch.atlas @@ -0,0 +1,86 @@ +witch.png +size: 320,192 +format: RGBA8888 +filter: Nearest,Nearest +repeat: none +Avatar + xy: 72,38 + size: 16, 16 +Idle + xy: 4, 7 + size: 25, 25 +Idle + xy: 36, 7 + size: 25, 25 +Idle + xy: 68, 7 + size: 25, 25 +Idle + xy: 100, 7 + size: 25, 25 +Walk + xy: 0, 160 + size: 32, 32 +Walk + xy: 32, 160 + size: 32, 32 +Walk + xy: 64, 160 + size: 32, 32 +Walk + xy: 96, 160 + size: 32, 32 +Attack + xy: 0, 68 + size: 32, 28 +Attack + xy: 32, 68 + size: 32, 28 +Attack + xy: 64, 68 + size: 32, 28 +Attack + xy: 96, 68 + size: 32, 28 +Attack + xy: 128, 68 + size: 32, 28 +Attack + xy: 160, 68 + size: 32, 28 +Attack + xy: 192, 68 + size: 32, 28 +Attack + xy: 224, 68 + size: 32, 28 +Death + xy: 4, 132 + size: 25, 28 +Death + xy: 36, 132 + size: 25, 28 +Death + xy: 68, 132 + size: 25, 28 +Death + xy: 100, 132 + size: 25, 28 +Death + xy: 132, 132 + size: 25, 28 +Death + xy: 164, 132 + size: 25, 28 +Death + xy: 196, 132 + size: 25, 28 +Death + xy: 228, 132 + size: 25, 28 +Death + xy: 260, 132 + size: 25, 28 +Death + xy: 292, 132 + size: 25, 28 \ No newline at end of file diff --git a/forge-gui/res/adventure/Shandalar/sprites/dungeon/frogboss.atlas b/forge-gui/res/adventure/Shandalar/sprites/dungeon/frogboss.atlas deleted file mode 100644 index 1ea91810a04..00000000000 --- a/forge-gui/res/adventure/Shandalar/sprites/dungeon/frogboss.atlas +++ /dev/null @@ -1,44 +0,0 @@ -frogboss.png -size: 86,600 -format: RGBA8888 -filter: Nearest,Nearest -repeat: none -Avatar - xy: 23, 150 - size: 45, 45 -Idle - xy: 0, 0 - size: 86, 50 -Idle - xy: 0, 50 - size: 86, 50 -Idle - xy: 0, 100 - size: 86, 50 -Idle - xy: 0, 150 - size: 86, 50 -Idle - xy: 0, 200 - size: 86, 50 -Idle - xy: 0, 250 - size: 86, 50 -Walk - xy: 0, 300 - size: 86, 50 -Walk - xy: 0, 350 - size: 86, 50 -Walk - xy: 0, 400 - size: 86, 50 -Walk - xy: 0, 450 - size: 86, 50 -Walk - xy: 0, 500 - size: 86, 50 -Walk - xy: 0, 550 - size: 86, 50 \ No newline at end of file diff --git a/forge-gui/res/adventure/Shandalar/sprites/dungeon/frogboss.png b/forge-gui/res/adventure/Shandalar/sprites/dungeon/frogboss.png deleted file mode 100644 index 32776f1fa0c..00000000000 Binary files a/forge-gui/res/adventure/Shandalar/sprites/dungeon/frogboss.png and /dev/null differ diff --git a/forge-gui/res/adventure/Shandalar/sprites/dungeon/gorilla.atlas b/forge-gui/res/adventure/Shandalar/sprites/dungeon/gorilla.atlas index 7641ad1e6c3..19843003733 100644 --- a/forge-gui/res/adventure/Shandalar/sprites/dungeon/gorilla.atlas +++ b/forge-gui/res/adventure/Shandalar/sprites/dungeon/gorilla.atlas @@ -7,29 +7,50 @@ Avatar xy: 278, 214 size: 22, 19 Idle - xy: 10,27 - size: 38,37 + xy: 10,0 + size: 38,64 Idle - xy: 74,27 - size: 38,37 + xy: 74,0 + size: 38,64 Idle - xy: 138,27 - size: 38,37 + xy: 138,0 + size: 38,64 Idle - xy: 202,27 - size: 38,37 + xy: 202,0 + size: 38,64 +Idle + xy: 10,256 + size: 38,64 +Idle + xy: 74,256 + size: 38,64 +Idle + xy: 138,256 + size: 38,64 +Idle + xy: 202,256 + size: 38,64 +Idle + xy: 266,256 + size: 38,64 +Idle + xy: 330,256 + size: 38,64 +Idle + xy: 202,256 + size: 38,64 Walk - xy: 0, 64 - size: 64, 64 + xy: 0, 89 + size: 64, 39 Walk - xy: 64, 64 - size: 64, 64 + xy: 64, 89 + size: 64, 39 Walk - xy: 128, 64 - size: 64, 64 + xy: 128, 89 + size: 64, 39 Walk - xy: 192, 64 - size: 64, 64 + xy: 192, 89 + size: 64, 39 Attack xy: 0, 320 size: 64, 64 diff --git a/forge-gui/res/adventure/Shandalar/sprites/dungeon/horse.atlas b/forge-gui/res/adventure/Shandalar/sprites/dungeon/horse.atlas index 8c0d9cd8d58..4b9c7e3fa9f 100644 --- a/forge-gui/res/adventure/Shandalar/sprites/dungeon/horse.atlas +++ b/forge-gui/res/adventure/Shandalar/sprites/dungeon/horse.atlas @@ -14,10 +14,10 @@ Idle size: 47, 35 Idle xy: 138, 28 - size: 46, 36 + size: 47, 36 Idle xy: 202, 28 - size: 46, 36 + size: 47, 36 Walk xy: 8, 156 size: 46, 36 @@ -43,7 +43,7 @@ Walk xy: 456, 156 size: 46, 36 Attack - xy: 0, 192 + xy: 8, 192 size: 64, 64 Attack xy: 64, 192 diff --git a/forge-gui/res/adventure/Shandalar/sprites/dungeon/oozeboss.atlas b/forge-gui/res/adventure/Shandalar/sprites/dungeon/oozeboss.atlas deleted file mode 100644 index 18380e8284d..00000000000 --- a/forge-gui/res/adventure/Shandalar/sprites/dungeon/oozeboss.atlas +++ /dev/null @@ -1,20 +0,0 @@ -oozeboss.png -size: 246,91 -format: RGBA8888 -filter: Nearest,Nearest -repeat: none -Avatar - xy: 83,57 - size: 34, 25 -Idle - xy: 0, 0 - size: 64, 40 -Idle - xy: 64, 0 - size: 64, 40 -Idle - xy: 128, 0 - size: 64, 40 -Idle - xy: 192,0 - size: 50, 40 \ No newline at end of file diff --git a/forge-gui/res/adventure/Shandalar/sprites/dungeon/oozeboss.png b/forge-gui/res/adventure/Shandalar/sprites/dungeon/oozeboss.png deleted file mode 100644 index 36fbea05ee5..00000000000 Binary files a/forge-gui/res/adventure/Shandalar/sprites/dungeon/oozeboss.png and /dev/null differ diff --git a/forge-gui/res/adventure/Shandalar/sprites/dungeon/sandelemental.atlas b/forge-gui/res/adventure/Shandalar/sprites/dungeon/sandelemental.atlas new file mode 100644 index 00000000000..691f1af6331 --- /dev/null +++ b/forge-gui/res/adventure/Shandalar/sprites/dungeon/sandelemental.atlas @@ -0,0 +1,20 @@ +sandelemental.png +size: 64,16 +format: RGBA8888 +filter: Nearest,Nearest +repeat: none +Avatar + xy: 3, 0 + size: 10, 10 +Idle + xy: 0, 0 + size: 16, 16 +Idle + xy: 16, 00 + size: 16, 16 +Idle + xy: 32, 00 + size: 16, 16 +Idle + xy: 48, 00 + size: 16, 16 \ No newline at end of file diff --git a/forge-gui/res/adventure/Shandalar/sprites/dungeon/sandelemental.png b/forge-gui/res/adventure/Shandalar/sprites/dungeon/sandelemental.png new file mode 100644 index 00000000000..59d9a65d5fa Binary files /dev/null and b/forge-gui/res/adventure/Shandalar/sprites/dungeon/sandelemental.png differ diff --git a/forge-gui/res/adventure/Shandalar/sprites/dungeon/sandwurm.atlas b/forge-gui/res/adventure/Shandalar/sprites/dungeon/sandwurm.atlas new file mode 100644 index 00000000000..ad59b156311 --- /dev/null +++ b/forge-gui/res/adventure/Shandalar/sprites/dungeon/sandwurm.atlas @@ -0,0 +1,83 @@ +sandwurm.png +size: 256,256 +format: RGBA8888 +filter: Nearest,Nearest +repeat: none +Avatar + xy: 103, 77 + size: 16, 16 +Idle + xy: 0, 12 + size: 32, 20 +Idle + xy: 32, 12 + size: 32, 20 +Idle + xy: 64, 12 + size: 32, 20 +Idle + xy: 96, 12 + size: 32, 20 +Idle + xy: 128, 12 + size: 32, 20 +Idle + xy: 160, 12 + size: 32, 20 +Idle + xy: 192, 12 + size: 32, 20 +Idle + xy: 224, 12 + size: 32, 20 +Walk + xy: 0, 39 + size: 32, 25 +Walk + xy: 32, 39 + size: 32, 25 +Walk + xy: 64, 39 + size: 32, 25 +Walk + xy: 96, 39 + size: 32, 25 +Walk + xy: 128, 39 + size: 32, 25 +Walk + xy: 160, 39 + size: 32, 25 +Walk + xy: 192, 39 + size: 32, 25 +Walk + xy: 224, 39 + size: 32, 25 +Attack + xy: 0, 70 + size: 32, 26 +Attack + xy: 32, 70 + size: 32, 26 +Attack + xy: 64, 70 + size: 32, 26 +Attack + xy: 96, 70 + size: 32, 26 +Death + xy: 0, 105 + size: 32, 23 +Death + xy: 32, 105 + size: 32, 23 +Death + xy: 64, 105 + size: 32, 23 +Death + xy: 96, 105 + size: 32, 23 +Death + xy: 128, 105 + size: 32, 23 \ No newline at end of file diff --git a/forge-gui/res/adventure/Shandalar/sprites/dungeon/sandwurm.png b/forge-gui/res/adventure/Shandalar/sprites/dungeon/sandwurm.png new file mode 100644 index 00000000000..49214ce0476 Binary files /dev/null and b/forge-gui/res/adventure/Shandalar/sprites/dungeon/sandwurm.png differ diff --git a/forge-gui/res/adventure/Shandalar/sprites/dungeon/scorpion.atlas b/forge-gui/res/adventure/Shandalar/sprites/dungeon/scorpion.atlas deleted file mode 100644 index 70bc8fd0771..00000000000 --- a/forge-gui/res/adventure/Shandalar/sprites/dungeon/scorpion.atlas +++ /dev/null @@ -1,56 +0,0 @@ -scorpion.png -size: 160,192 -format: RGBA8888 -filter: Nearest,Nearest -repeat: none -Avatar - xy: 11, 117 - size: 9, 10 -Idle - xy: 2, 108 - size: 19, 20 -Idle - xy: 34, 108 - size: 19, 20 -Idle - xy: 66, 108 - size: 19, 20 -Walk - xy: 2, 47 - size: 18, 17 -Walk - xy: 34, 47 - size: 18, 17 -Walk - xy: 66, 47 - size: 18, 17 -Walk - xy: 98, 47 - size: 18, 17 -Attack - xy: 2, 78 - size: 25, 18 -Attack - xy: 34, 78 - size: 25, 18 -Attack - xy: 66, 78 - size: 25, 18 -Attack - xy: 98, 78 - size: 25, 18 -Death - xy: 2, 137 - size: 19, 23 -Death - xy: 34, 137 - size: 19, 23 -Death - xy: 66, 137 - size: 19, 23 -Death - xy: 98, 137 - size: 19, 23 -Death - xy: 130, 137 - size: 19, 23 \ No newline at end of file diff --git a/forge-gui/res/adventure/Shandalar/sprites/dungeon/swamptroll.atlas b/forge-gui/res/adventure/Shandalar/sprites/dungeon/swamptroll.atlas new file mode 100644 index 00000000000..18be59c545c --- /dev/null +++ b/forge-gui/res/adventure/Shandalar/sprites/dungeon/swamptroll.atlas @@ -0,0 +1,107 @@ +swamptroll.png +size: 512, 512 +format: RGBA8888 +filter: Nearest, Nearest +repeat: none +Avatar + xy: 88, 156 + size: 20, 20 +Idle + xy: 10, 29 + size: 40, 35 +Idle + xy: 74, 29 + size: 40, 35 +Idle + xy: 138, 29 + size: 40, 35 +Idle + xy: 202, 29 + size: 40, 35 +Idle + xy: 10, 285 + size: 40, 35 +Idle + xy: 74, 285 + size: 40, 35 +Idle + xy: 138, 285 + size: 40, 35 +Idle + xy: 202, 285 + size: 40, 35 +Idle + xy: 10, 477 + size: 40, 35 +Idle + xy: 74, 477 + size: 40, 35 +Idle + xy: 138, 477 + size: 40, 35 +Idle + xy: 202, 477 + size: 40, 35 +Idle + xy: 266, 477 + size: 40, 35 +Idle + xy: 330, 477 + size: 40, 35 +Idle + xy: 394, 477 + size: 40, 35 +Idle + xy: 458, 477 + size: 40, 35 +Walk + xy: 5, 88 + size: 40, 40 +Walk + xy: 69, 88 + size: 40, 40 +Walk + xy: 133, 88 + size: 40, 40 +Walk + xy: 197, 88 + size: 40, 40 +Walk + xy: 261, 88 + size: 40, 40 +Walk + xy: 325, 88 + size: 40, 40 +Walk + xy: 389, 88 + size: 40, 40 +Walk + xy: 453, 88 + size: 40, 40 +Attack + xy: 0, 157 + size: 55, 35 +Attack + xy: 64, 157 + size: 55, 35 +Attack + xy: 128, 157 + size: 55, 35 +Attack + xy: 192, 157 + size: 55, 35 +Attack + xy: 256, 157 + size: 55, 35 +Death + xy: 0, 350 + size: 55, 35 +Death + xy: 64, 350 + size: 55, 35 +Death + xy: 128, 350 + size: 55, 35 +Death + xy: 192, 350 + size: 55, 35 \ No newline at end of file diff --git a/forge-gui/res/adventure/Shandalar/sprites/dungeon/swamptroll.png b/forge-gui/res/adventure/Shandalar/sprites/dungeon/swamptroll.png new file mode 100644 index 00000000000..9afa869c746 Binary files /dev/null and b/forge-gui/res/adventure/Shandalar/sprites/dungeon/swamptroll.png differ diff --git a/forge-gui/res/adventure/Shandalar/sprites/dungeon/vulture.atlas b/forge-gui/res/adventure/Shandalar/sprites/dungeon/vulture.atlas index 2fdc8d99095..f598bae30b6 100644 --- a/forge-gui/res/adventure/Shandalar/sprites/dungeon/vulture.atlas +++ b/forge-gui/res/adventure/Shandalar/sprites/dungeon/vulture.atlas @@ -19,35 +19,35 @@ Idle xy: 96, 10 size: 32, 22 Idle - xy: 0, 72 - size: 32, 24 + xy: 0, 74 + size: 32, 22 Idle - xy: 32, 72 - size: 32, 24 + xy: 32, 74 + size: 32, 22 Idle - xy: 64, 72 - size: 32, 24 + xy: 64, 74 + size: 32, 22 Idle - xy: 96, 72 - size: 32, 24 + xy: 96, 74 + size: 32, 22 Idle - xy: 128, 72 - size: 32, 24 + xy: 128, 74 + size: 32, 22 Idle - xy: 160, 72 - size: 32, 24 + xy: 160, 74 + size: 32, 22 Idle - xy: 192, 72 - size: 32, 24 + xy: 192, 74 + size: 32, 22 Idle - xy: 224, 72 - size: 32, 24 + xy: 224, 74 + size: 32, 22 Idle - xy: 256, 72 - size: 32, 24 + xy: 256, 74 + size: 32, 22 Idle - xy: 288, 72 - size: 32, 24 + xy: 288, 74 + size: 32, 22 Walk xy: 0, 32 size: 32, 32 diff --git a/forge-gui/res/adventure/Shandalar/sprites/dungeon/wasp.atlas b/forge-gui/res/adventure/Shandalar/sprites/dungeon/wasp.atlas index 7ee89eaa46a..d5b55b65ec2 100644 --- a/forge-gui/res/adventure/Shandalar/sprites/dungeon/wasp.atlas +++ b/forge-gui/res/adventure/Shandalar/sprites/dungeon/wasp.atlas @@ -7,50 +7,50 @@ Avatar xy: 9, 73 size: 14, 10 Idle - xy: 9, 8 - size: 15, 24 + xy: 5, 0 + size: 27, 32 Idle - xy: 41, 8 - size: 15, 24 + xy: 37, 0 + size: 27, 32 Idle - xy: 73, 8 - size: 15, 24 + xy: 69, 0 + size: 27, 32 Idle - xy: 105, 8 - size: 15, 24 + xy: 101, 0 + size: 27, 32 Walk - xy: 9, 40 - size: 15, 24 + xy: 5, 32 + size: 27, 32 Walk - xy: 41, 40 - size: 15, 24 + xy: 37, 32 + size: 27, 32 Walk - xy: 73, 40 - size: 15, 24 + xy: 69, 32 + size: 27, 32 Walk - xy: 105, 40 - size: 15, 24 + xy: 101, 32 + size: 27, 32 Attack - xy: 9, 72 - size: 15, 24 + xy: 5, 64 + size: 27, 32 Attack - xy: 41, 72 - size: 15, 24 + xy: 37, 64 + size: 27, 32 Attack - xy: 73, 72 - size: 15, 24 + xy: 69, 64 + size: 27, 32 Attack - xy: 105, 72 - size: 15, 24 + xy: 101, 64 + size: 27, 32 Death - xy: 9, 126 - size: 15, 24 + xy: 5, 128 + size: 27, 32 Death - xy: 32, 126 - size: 32, 32 + xy: 37, 128 + size: 27, 32 Death - xy: 64, 126 - size: 32, 32 + xy: 69, 128 + size: 27, 32 Death - xy: 96, 126 - size: 32, 32 \ No newline at end of file + xy: 101, 128 + size: 27, 32 \ No newline at end of file diff --git a/forge-gui/res/adventure/Shandalar/sprites/dungeon/witch.atlas b/forge-gui/res/adventure/Shandalar/sprites/dungeon/witch.atlas new file mode 100644 index 00000000000..3d2f3b32044 --- /dev/null +++ b/forge-gui/res/adventure/Shandalar/sprites/dungeon/witch.atlas @@ -0,0 +1,98 @@ +witch.png +size: 320,192 +format: RGBA8888 +filter: Nearest,Nearest +repeat: none +Avatar + xy: 72,38 + size: 16, 16 +Idle + xy: 4, 7 + size: 25, 25 +Idle + xy: 36, 7 + size: 25, 25 +Idle + xy: 68, 7 + size: 25, 25 +Idle + xy: 100, 7 + size: 25, 25 +Walk + xy: 4, 36 + size: 25, 28 +Walk + xy: 36, 36 + size: 25, 28 +Walk + xy: 68, 36 + size: 25, 28 +Walk + xy: 100, 36 + size: 25, 28 +Walk + xy: 132, 36 + size: 25, 28 +Walk + xy: 164, 36 + size: 25, 28 +Walk + xy: 196, 36 + size: 25, 28 +Walk + xy: 228, 36 + size: 25, 28 +Attack + xy: 0, 68 + size: 32, 28 +Attack + xy: 32, 68 + size: 32, 28 +Attack + xy: 64, 68 + size: 32, 28 +Attack + xy: 96, 68 + size: 32, 28 +Attack + xy: 128, 68 + size: 32, 28 +Attack + xy: 160, 68 + size: 32, 28 +Attack + xy: 192, 68 + size: 32, 28 +Attack + xy: 224, 68 + size: 32, 28 +Death + xy: 4, 132 + size: 25, 28 +Death + xy: 36, 132 + size: 25, 28 +Death + xy: 68, 132 + size: 25, 28 +Death + xy: 100, 132 + size: 25, 28 +Death + xy: 132, 132 + size: 25, 28 +Death + xy: 164, 132 + size: 25, 28 +Death + xy: 196, 132 + size: 25, 28 +Death + xy: 228, 132 + size: 25, 28 +Death + xy: 260, 132 + size: 25, 28 +Death + xy: 292, 132 + size: 25, 28 \ No newline at end of file diff --git a/forge-gui/res/adventure/Shandalar/sprites/dungeon/witch.png b/forge-gui/res/adventure/Shandalar/sprites/dungeon/witch.png new file mode 100644 index 00000000000..8a3ab9f0edf Binary files /dev/null and b/forge-gui/res/adventure/Shandalar/sprites/dungeon/witch.png differ diff --git a/forge-gui/res/adventure/Shandalar/sprites/dungeon/eye.atlas b/forge-gui/res/adventure/Shandalar/sprites/eye.atlas similarity index 100% rename from forge-gui/res/adventure/Shandalar/sprites/dungeon/eye.atlas rename to forge-gui/res/adventure/Shandalar/sprites/eye.atlas diff --git a/forge-gui/res/adventure/Shandalar/sprites/dungeon/eye.png b/forge-gui/res/adventure/Shandalar/sprites/eye.png similarity index 100% rename from forge-gui/res/adventure/Shandalar/sprites/dungeon/eye.png rename to forge-gui/res/adventure/Shandalar/sprites/eye.png diff --git a/forge-gui/res/adventure/Shandalar/sprites/dungeon/fox.atlas b/forge-gui/res/adventure/Shandalar/sprites/fox.atlas similarity index 100% rename from forge-gui/res/adventure/Shandalar/sprites/dungeon/fox.atlas rename to forge-gui/res/adventure/Shandalar/sprites/fox.atlas diff --git a/forge-gui/res/adventure/Shandalar/sprites/dungeon/fox.png b/forge-gui/res/adventure/Shandalar/sprites/fox.png similarity index 100% rename from forge-gui/res/adventure/Shandalar/sprites/dungeon/fox.png rename to forge-gui/res/adventure/Shandalar/sprites/fox.png diff --git a/forge-gui/res/adventure/Shandalar/sprites/dungeon/frog.atlas b/forge-gui/res/adventure/Shandalar/sprites/frog.atlas similarity index 100% rename from forge-gui/res/adventure/Shandalar/sprites/dungeon/frog.atlas rename to forge-gui/res/adventure/Shandalar/sprites/frog.atlas diff --git a/forge-gui/res/adventure/Shandalar/sprites/dungeon/frog.png b/forge-gui/res/adventure/Shandalar/sprites/frog.png similarity index 100% rename from forge-gui/res/adventure/Shandalar/sprites/dungeon/frog.png rename to forge-gui/res/adventure/Shandalar/sprites/frog.png diff --git a/forge-gui/res/adventure/Shandalar/sprites/dungeon/fungus.atlas b/forge-gui/res/adventure/Shandalar/sprites/fungus.atlas similarity index 96% rename from forge-gui/res/adventure/Shandalar/sprites/dungeon/fungus.atlas rename to forge-gui/res/adventure/Shandalar/sprites/fungus.atlas index e658854057b..767781b58c6 100644 --- a/forge-gui/res/adventure/Shandalar/sprites/dungeon/fungus.atlas +++ b/forge-gui/res/adventure/Shandalar/sprites/fungus.atlas @@ -57,9 +57,6 @@ Attack Attack xy: 128, 69 size: 32, 27 -Attack - xy: 160, 69 - size: 22, 27 Death xy: 0, 164 size: 32, 28 diff --git a/forge-gui/res/adventure/Shandalar/sprites/dungeon/fungus.png b/forge-gui/res/adventure/Shandalar/sprites/fungus.png similarity index 100% rename from forge-gui/res/adventure/Shandalar/sprites/dungeon/fungus.png rename to forge-gui/res/adventure/Shandalar/sprites/fungus.png diff --git a/forge-gui/res/adventure/Shandalar/sprites/dungeon/humanoidrat.atlas b/forge-gui/res/adventure/Shandalar/sprites/humanoidrat.atlas similarity index 98% rename from forge-gui/res/adventure/Shandalar/sprites/dungeon/humanoidrat.atlas rename to forge-gui/res/adventure/Shandalar/sprites/humanoidrat.atlas index 9fd4dc86ffe..e741e996cf4 100644 --- a/forge-gui/res/adventure/Shandalar/sprites/dungeon/humanoidrat.atlas +++ b/forge-gui/res/adventure/Shandalar/sprites/humanoidrat.atlas @@ -31,7 +31,7 @@ Walk xy: 103, 45 size: 20, 20 Walk - xy: 135, 50 + xy: 135,45 size: 20, 20 Walk xy: 167, 45 diff --git a/forge-gui/res/adventure/Shandalar/sprites/dungeon/humanoidrat.png b/forge-gui/res/adventure/Shandalar/sprites/humanoidrat.png similarity index 100% rename from forge-gui/res/adventure/Shandalar/sprites/dungeon/humanoidrat.png rename to forge-gui/res/adventure/Shandalar/sprites/humanoidrat.png diff --git a/forge-gui/res/adventure/Shandalar/sprites/dungeon/jackalwarrior.atlas b/forge-gui/res/adventure/Shandalar/sprites/jackalwarrior.atlas similarity index 59% rename from forge-gui/res/adventure/Shandalar/sprites/dungeon/jackalwarrior.atlas rename to forge-gui/res/adventure/Shandalar/sprites/jackalwarrior.atlas index fa37b8f17a2..2a50d69b844 100644 --- a/forge-gui/res/adventure/Shandalar/sprites/dungeon/jackalwarrior.atlas +++ b/forge-gui/res/adventure/Shandalar/sprites/jackalwarrior.atlas @@ -7,41 +7,41 @@ Avatar xy: 5, 2 size: 19, 14 Idle - xy: 0,3 - size: 30, 29 + xy: 0,0 + size: 32, 32 Idle - xy: 32, 3 - size: 30, 29 + xy: 32, 0 + size: 32, 32 Idle - xy: 64, 3 - size:24, 29 + xy: 64, 0 + size: 32, 32 Idle - xy: 96, 3 - size: 24, 29 + xy: 96, 0 + size: 32, 32 Walk - xy: 2, 33 - size: 27, 30 + xy: 0, 32 + size: 32, 32 Walk - xy: 34, 33 - size: 27, 30 + xy: 32, 32 + size: 32, 32 Walk - xy: 66, 33 - size: 27, 30 + xy: 64, 32 + size: 32, 32 Walk - xy: 98, 33 - size: 27, 30 + xy: 96, 32 + size: 32, 32 Walk - xy: 130, 33 - size: 27, 30 + xy: 128, 32 + size: 32, 32 Walk - xy: 162, 33 - size: 27, 30 + xy: 160, 32 + size: 32, 32 Walk - xy: 194, 33 - size: 27, 30 + xy: 192, 32 + size: 32, 32 Walk - xy: 226, 33 - size: 27, 30 + xy: 224, 32 + size: 32, 32 Attack xy: 0, 96 size: 32, 32 diff --git a/forge-gui/res/adventure/Shandalar/sprites/dungeon/jackalwarrior.png b/forge-gui/res/adventure/Shandalar/sprites/jackalwarrior.png similarity index 100% rename from forge-gui/res/adventure/Shandalar/sprites/dungeon/jackalwarrior.png rename to forge-gui/res/adventure/Shandalar/sprites/jackalwarrior.png diff --git a/forge-gui/res/adventure/Shandalar/sprites/dungeon/jellyfish.atlas b/forge-gui/res/adventure/Shandalar/sprites/jellyfish.atlas similarity index 100% rename from forge-gui/res/adventure/Shandalar/sprites/dungeon/jellyfish.atlas rename to forge-gui/res/adventure/Shandalar/sprites/jellyfish.atlas diff --git a/forge-gui/res/adventure/Shandalar/sprites/dungeon/jellyfish.png b/forge-gui/res/adventure/Shandalar/sprites/jellyfish.png similarity index 100% rename from forge-gui/res/adventure/Shandalar/sprites/dungeon/jellyfish.png rename to forge-gui/res/adventure/Shandalar/sprites/jellyfish.png diff --git a/forge-gui/res/adventure/Shandalar/sprites/dungeon/kobold.atlas b/forge-gui/res/adventure/Shandalar/sprites/kobold.atlas similarity index 100% rename from forge-gui/res/adventure/Shandalar/sprites/dungeon/kobold.atlas rename to forge-gui/res/adventure/Shandalar/sprites/kobold.atlas diff --git a/forge-gui/res/adventure/Shandalar/sprites/dungeon/kobold.png b/forge-gui/res/adventure/Shandalar/sprites/kobold.png similarity index 100% rename from forge-gui/res/adventure/Shandalar/sprites/dungeon/kobold.png rename to forge-gui/res/adventure/Shandalar/sprites/kobold.png diff --git a/forge-gui/res/adventure/Shandalar/sprites/dungeon/magmaelemental.atlas b/forge-gui/res/adventure/Shandalar/sprites/magmafireelemental.atlas similarity index 78% rename from forge-gui/res/adventure/Shandalar/sprites/dungeon/magmaelemental.atlas rename to forge-gui/res/adventure/Shandalar/sprites/magmafireelemental.atlas index 3f4b919295b..4fd0f5b79d3 100644 --- a/forge-gui/res/adventure/Shandalar/sprites/dungeon/magmaelemental.atlas +++ b/forge-gui/res/adventure/Shandalar/sprites/magmafireelemental.atlas @@ -1,4 +1,4 @@ -magmaelemental.png +magmafireelemental.png size: 256,160 format: RGBA8888 filter: Nearest,Nearest @@ -22,32 +22,32 @@ Idle xy: 134, 45 size: 20, 20 Idle - xy: 168, 45 + xy: 166, 45 size: 20, 20 Walk - xy: 6, 17 - size: 20,20 + xy: 4, 17 + size: 24,20 Walk - xy: 38, 17 - size: 20, 20 + xy: 36, 17 + size: 24, 20 Walk - xy: 70, 17 - size: 20, 20 + xy: 68, 17 + size: 24, 20 Walk - xy: 102, 17 - size: 20, 20 + xy: 100, 17 + size: 24, 20 Walk - xy: 134, 17 - size: 20,20 + xy: 132, 17 + size: 24,20 Walk - xy: 166, 17 - size: 20, 20 + xy: 164, 17 + size: 24, 20 Walk - xy: 198, 17 - size: 20, 20 + xy: 196, 17 + size: 24, 20 Walk - xy: 230, 17 - size: 20, 20 + xy: 228, 17 + size: 24, 20 Attack xy: 0, 79 size: 32,20 diff --git a/forge-gui/res/adventure/Shandalar/sprites/dungeon/magmaelemental.png b/forge-gui/res/adventure/Shandalar/sprites/magmafireelemental.png similarity index 100% rename from forge-gui/res/adventure/Shandalar/sprites/dungeon/magmaelemental.png rename to forge-gui/res/adventure/Shandalar/sprites/magmafireelemental.png diff --git a/forge-gui/res/adventure/Shandalar/sprites/dungeon/mummy.atlas b/forge-gui/res/adventure/Shandalar/sprites/mummy.atlas similarity index 100% rename from forge-gui/res/adventure/Shandalar/sprites/dungeon/mummy.atlas rename to forge-gui/res/adventure/Shandalar/sprites/mummy.atlas diff --git a/forge-gui/res/adventure/Shandalar/sprites/dungeon/mummy.png b/forge-gui/res/adventure/Shandalar/sprites/mummy.png similarity index 100% rename from forge-gui/res/adventure/Shandalar/sprites/dungeon/mummy.png rename to forge-gui/res/adventure/Shandalar/sprites/mummy.png diff --git a/forge-gui/res/adventure/Shandalar/sprites/dungeon/octopus.atlas b/forge-gui/res/adventure/Shandalar/sprites/octopus.atlas similarity index 100% rename from forge-gui/res/adventure/Shandalar/sprites/dungeon/octopus.atlas rename to forge-gui/res/adventure/Shandalar/sprites/octopus.atlas diff --git a/forge-gui/res/adventure/Shandalar/sprites/dungeon/octopus.png b/forge-gui/res/adventure/Shandalar/sprites/octopus.png similarity index 100% rename from forge-gui/res/adventure/Shandalar/sprites/dungeon/octopus.png rename to forge-gui/res/adventure/Shandalar/sprites/octopus.png diff --git a/forge-gui/res/adventure/Shandalar/sprites/dungeon/ooze.atlas b/forge-gui/res/adventure/Shandalar/sprites/ooze.atlas similarity index 100% rename from forge-gui/res/adventure/Shandalar/sprites/dungeon/ooze.atlas rename to forge-gui/res/adventure/Shandalar/sprites/ooze.atlas diff --git a/forge-gui/res/adventure/Shandalar/sprites/dungeon/ooze.png b/forge-gui/res/adventure/Shandalar/sprites/ooze.png similarity index 100% rename from forge-gui/res/adventure/Shandalar/sprites/dungeon/ooze.png rename to forge-gui/res/adventure/Shandalar/sprites/ooze.png diff --git a/forge-gui/res/adventure/Shandalar/sprites/dungeon/owl.atlas b/forge-gui/res/adventure/Shandalar/sprites/owl.atlas similarity index 100% rename from forge-gui/res/adventure/Shandalar/sprites/dungeon/owl.atlas rename to forge-gui/res/adventure/Shandalar/sprites/owl.atlas diff --git a/forge-gui/res/adventure/Shandalar/sprites/dungeon/owl.png b/forge-gui/res/adventure/Shandalar/sprites/owl.png similarity index 100% rename from forge-gui/res/adventure/Shandalar/sprites/dungeon/owl.png rename to forge-gui/res/adventure/Shandalar/sprites/owl.png diff --git a/forge-gui/res/adventure/Shandalar/sprites/dungeon/plant.atlas b/forge-gui/res/adventure/Shandalar/sprites/plant.atlas similarity index 100% rename from forge-gui/res/adventure/Shandalar/sprites/dungeon/plant.atlas rename to forge-gui/res/adventure/Shandalar/sprites/plant.atlas diff --git a/forge-gui/res/adventure/Shandalar/sprites/dungeon/plant.png b/forge-gui/res/adventure/Shandalar/sprites/plant.png similarity index 100% rename from forge-gui/res/adventure/Shandalar/sprites/dungeon/plant.png rename to forge-gui/res/adventure/Shandalar/sprites/plant.png diff --git a/forge-gui/res/adventure/Shandalar/sprites/dungeon/raven.atlas b/forge-gui/res/adventure/Shandalar/sprites/raven.atlas similarity index 100% rename from forge-gui/res/adventure/Shandalar/sprites/dungeon/raven.atlas rename to forge-gui/res/adventure/Shandalar/sprites/raven.atlas diff --git a/forge-gui/res/adventure/Shandalar/sprites/dungeon/raven.png b/forge-gui/res/adventure/Shandalar/sprites/raven.png similarity index 100% rename from forge-gui/res/adventure/Shandalar/sprites/dungeon/raven.png rename to forge-gui/res/adventure/Shandalar/sprites/raven.png diff --git a/forge-gui/res/adventure/Shandalar/sprites/scorpion.atlas b/forge-gui/res/adventure/Shandalar/sprites/scorpion.atlas new file mode 100644 index 00000000000..11874ce94c9 --- /dev/null +++ b/forge-gui/res/adventure/Shandalar/sprites/scorpion.atlas @@ -0,0 +1,59 @@ +scorpion.png +size: 160,192 +format: RGBA8888 +filter: Nearest,Nearest +repeat: none +Avatar + xy: 11, 117 + size: 9, 10 +Idle + xy: 0, 12 + size: 20, 20 +Idle + xy: 32, 12 + size: 20, 20 +Idle + xy: 64, 12 + size: 20, 20 +Idle + xy: 96, 12 + size: 20, 20 +Walk + xy: 0, 47 + size: 20, 17 +Walk + xy: 32, 47 + size: 20, 17 +Walk + xy: 64, 47 + size: 20,17 +Walk + xy: 96, 47 + size: 20, 17 +Attack + xy: 0, 78 + size: 32, 18 +Attack + xy: 32, 78 + size: 32, 18 +Attack + xy: 64, 78 + size: 32, 18 +Attack + xy: 96, 78 + size: 32, 18 +Death + xy: 0, 137 + size: 20, 23 +Death + xy: 32, 137 + size: 20, 23 +Death + xy: 64, 137 + size: 20, 23 +Death + xy: 96, 137 + size: 20, 23 +Death + xy: 128, 137 + size: 20, 23 \ No newline at end of file diff --git a/forge-gui/res/adventure/Shandalar/sprites/dungeon/scorpion.png b/forge-gui/res/adventure/Shandalar/sprites/scorpion.png similarity index 100% rename from forge-gui/res/adventure/Shandalar/sprites/dungeon/scorpion.png rename to forge-gui/res/adventure/Shandalar/sprites/scorpion.png diff --git a/forge-gui/res/adventure/Shandalar/sprites/dungeon/squirrel.atlas b/forge-gui/res/adventure/Shandalar/sprites/squirrel.atlas similarity index 100% rename from forge-gui/res/adventure/Shandalar/sprites/dungeon/squirrel.atlas rename to forge-gui/res/adventure/Shandalar/sprites/squirrel.atlas diff --git a/forge-gui/res/adventure/Shandalar/sprites/dungeon/squirrel.png b/forge-gui/res/adventure/Shandalar/sprites/squirrel.png similarity index 100% rename from forge-gui/res/adventure/Shandalar/sprites/dungeon/squirrel.png rename to forge-gui/res/adventure/Shandalar/sprites/squirrel.png diff --git a/forge-gui/res/adventure/Shandalar/sprites/dungeon/turtle.atlas b/forge-gui/res/adventure/Shandalar/sprites/turtle.atlas similarity index 100% rename from forge-gui/res/adventure/Shandalar/sprites/dungeon/turtle.atlas rename to forge-gui/res/adventure/Shandalar/sprites/turtle.atlas diff --git a/forge-gui/res/adventure/Shandalar/sprites/dungeon/turtle.png b/forge-gui/res/adventure/Shandalar/sprites/turtle.png similarity index 100% rename from forge-gui/res/adventure/Shandalar/sprites/dungeon/turtle.png rename to forge-gui/res/adventure/Shandalar/sprites/turtle.png diff --git a/forge-gui/res/adventure/Shandalar/sprites/dungeon/unused/insect.atlas b/forge-gui/res/adventure/Shandalar/sprites/unused/insect.atlas similarity index 100% rename from forge-gui/res/adventure/Shandalar/sprites/dungeon/unused/insect.atlas rename to forge-gui/res/adventure/Shandalar/sprites/unused/insect.atlas diff --git a/forge-gui/res/adventure/Shandalar/sprites/dungeon/unused/insect.png b/forge-gui/res/adventure/Shandalar/sprites/unused/insect.png similarity index 100% rename from forge-gui/res/adventure/Shandalar/sprites/dungeon/unused/insect.png rename to forge-gui/res/adventure/Shandalar/sprites/unused/insect.png diff --git a/forge-gui/res/adventure/Shandalar/sprites/dungeon/walkingbrain.atlas b/forge-gui/res/adventure/Shandalar/sprites/walkingbrain.atlas similarity index 97% rename from forge-gui/res/adventure/Shandalar/sprites/dungeon/walkingbrain.atlas rename to forge-gui/res/adventure/Shandalar/sprites/walkingbrain.atlas index 4fa75c604b6..955adf5c184 100644 --- a/forge-gui/res/adventure/Shandalar/sprites/dungeon/walkingbrain.atlas +++ b/forge-gui/res/adventure/Shandalar/sprites/walkingbrain.atlas @@ -43,8 +43,8 @@ Walk xy: 224, 44 size: 32, 20 Attack - xy: 0, 64 - size: 32, 32 + xy: 0, 72 + size: 32, 24 Attack xy: 32, 72 size: 32, 24 diff --git a/forge-gui/res/adventure/Shandalar/sprites/dungeon/walkingbrain.png b/forge-gui/res/adventure/Shandalar/sprites/walkingbrain.png similarity index 100% rename from forge-gui/res/adventure/Shandalar/sprites/dungeon/walkingbrain.png rename to forge-gui/res/adventure/Shandalar/sprites/walkingbrain.png diff --git a/forge-gui/res/adventure/Shandalar/sprites/dungeon/wildrat.atlas b/forge-gui/res/adventure/Shandalar/sprites/wildrat.atlas similarity index 100% rename from forge-gui/res/adventure/Shandalar/sprites/dungeon/wildrat.atlas rename to forge-gui/res/adventure/Shandalar/sprites/wildrat.atlas diff --git a/forge-gui/res/adventure/Shandalar/sprites/dungeon/wildrat.png b/forge-gui/res/adventure/Shandalar/sprites/wildrat.png similarity index 100% rename from forge-gui/res/adventure/Shandalar/sprites/dungeon/wildrat.png rename to forge-gui/res/adventure/Shandalar/sprites/wildrat.png diff --git a/forge-gui/res/adventure/Shandalar/ui/deck_selector_portrait.json b/forge-gui/res/adventure/Shandalar/ui/deck_selector_portrait.json index af93096cca5..d1b9cdb1a71 100644 --- a/forge-gui/res/adventure/Shandalar/ui/deck_selector_portrait.json +++ b/forge-gui/res/adventure/Shandalar/ui/deck_selector_portrait.json @@ -39,7 +39,6 @@ "type": "TextButton", "name": "rename", "text": "tr(lblRename)", - "binding": "Equip", "width": 86, "height": 30, "x": 180, diff --git a/forge-gui/res/adventure/Shandalar/ui/hud.json b/forge-gui/res/adventure/Shandalar/ui/hud.json index a9747682d2d..a18af1a95ac 100644 --- a/forge-gui/res/adventure/Shandalar/ui/hud.json +++ b/forge-gui/res/adventure/Shandalar/ui/hud.json @@ -7,8 +7,8 @@ "type": "Image", "name": "gamehud", "width": 64, - "height": 270, - "image": "ui/hud.png", + "height": 104, + "image": "ui/hud_portrait.png", "x": 416, "y": 0 }, @@ -61,7 +61,7 @@ "font": "default", "width": 64, "height": 16, - "x": 427, + "x": 425, "y": 56 }, { @@ -70,8 +70,8 @@ "font": "default", "width": 64, "height": 16, - "x": 427, - "y": 73 + "x": 425, + "y": 70 }, { "type": "Label", @@ -79,64 +79,48 @@ "font": "default", "width": 64, "height": 16, - "x": 427, - "y": 90 - }, - { - "type": "TextButton", - "name": "exittoworldmap", - "style":"menu", - "text": "[%120][+ExitToWorldMap]", - "binding": "ExitToWorldMap", - "width": 48, - "height": 36, - "x": 424, - "y": 66 + "x": 425, + "y": 84 }, { "type": "TextButton", "name": "deck", - "style":"menu", "text": "[%120][+Deck]", "binding": "Deck", - "width": 48, - "height": 36, - "x": 424, - "y": 106 - }, + "width": 45, + "height": 25, + "x": 175, + "y": 0 + }, { "type": "TextButton", - "name": "inventory", - "style":"menu", + "name": "inventory", "text": "[%120][+Item]", "binding": "Inventory", - "width": 48, - "height": 36, - "x": 424, - "y": 146 + "width": 45, + "height": 25, + "x": 220, + "y": 0 }, - { "type": "TextButton", "name": "logbook", - "style":"menu", "text": "[%120][+Logbook]", - "binding": "Status", - "width": 48, - "height": 36, - "x": 424, - "y": 186 + "binding": "Status", + "width": 45, + "height": 25, + "x": 265, + "y": 0 }, { "type": "TextButton", "name": "menu", - "style":"menu", "text": "[%120][+Menu]", "binding": "Menu", - "width": 48, - "height": 36, - "x": 424, - "y": 226 + "width": 45, + "height": 25, + "x": 130, + "y": 0 }, { "type": "TextButton", @@ -147,6 +131,16 @@ "height": 20, "x": 0, "y": 80 + }, + { + "type": "TextButton", + "name": "exittoworldmap", + "text": "[%120][+ExitToWorldMap]", + "binding": "ExitToWorldMap", + "width": 45, + "height": 25, + "x": 310, + "y": 0 } ] } \ No newline at end of file diff --git a/forge-gui/res/adventure/Shandalar/ui/hud_landscape.json b/forge-gui/res/adventure/Shandalar/ui/hud_landscape.json index dc0eb34866b..8646a3f03ac 100644 --- a/forge-gui/res/adventure/Shandalar/ui/hud_landscape.json +++ b/forge-gui/res/adventure/Shandalar/ui/hud_landscape.json @@ -85,45 +85,42 @@ { "type": "TextButton", "name": "deck", - "style":"menu", "text": "[%120][+Deck]", "binding": "Deck", - "width": 64, - "height": 36, - "x": 416, - "y": 106 + "width": 45, + "height": 25, + "x": 175, + "y": 240 }, { "type": "TextButton", "name": "inventory", - "style":"menu", "text": "[%120][+Item]", "binding": "Inventory", - "width": 64, - "height": 36, - "x": 416, - "y": 146 + "width": 45, + "height": 25, + "x": 220, + "y": 240 }, { "type": "TextButton", "name": "logbook", - "style":"menu", "text": "[%120][+Logbook]", - "width": 64, - "height": 36, - "x": 416, - "y": 186 + "binding": "Status", + "width": 45, + "height": 25, + "x": 265, + "y": 240 }, { "type": "TextButton", "name": "menu", - "style":"menu", "text": "[%120][+Menu]", "binding": "Menu", - "width": 64, - "height": 36, - "x": 416, - "y": 226 + "width": 45, + "height": 25, + "x": 130, + "y": 240 }, { "type": "TextButton", @@ -138,13 +135,12 @@ { "type": "TextButton", "name": "exittoworldmap", - "style":"menu", "text": "[%120][+ExitToWorldMap]", "binding": "ExitToWorldMap", - "width": 64, - "height": 32, - "x": 416, - "y": 66 + "width": 45, + "height": 25, + "x": 310, + "y": 240 } ] } \ No newline at end of file diff --git a/forge-gui/res/adventure/Shandalar/ui/hud_portrait.json b/forge-gui/res/adventure/Shandalar/ui/hud_portrait.json index 4d8f7d73e58..06b5f852570 100644 --- a/forge-gui/res/adventure/Shandalar/ui/hud_portrait.json +++ b/forge-gui/res/adventure/Shandalar/ui/hud_portrait.json @@ -84,53 +84,44 @@ { "type": "TextButton", "name": "deck", - "style":"menu", "text": "[%120][+Deck]", - "binding": "Deck", - "width": 64, - "height": 32, - "x": 206, - "y": 306 + "width": 25, + "height": 25, + "x": 105, + "y": 450 }, { "type": "TextButton", "name": "inventory", - "style":"menu", "text": "[%120][+Item]", - "binding": "Inventory", - "width": 64, - "height": 32, - "x": 206, - "y": 346 + "width": 25, + "height": 25, + "x": 130, + "y": 450 }, { "type": "TextButton", "name": "logbook", - "style":"menu", "text": "[%120][+Logbook]", - "binding": "Status", - "width": 64, - "height": 32, - "x": 206, - "y": 386 + "width": 25, + "height": 25, + "x": 155, + "y": 450 }, { "type": "TextButton", "name": "menu", - "style":"menu", "text": "[%120][+Menu]", - "binding": "Menu", - "width": 64, - "height": 32, - "x": 206, - "y": 426 + "width": 25, + "height": 25, + "x": 80, + "y": 450 }, { "type": "TextButton", "name": "openmap", "text": "[%80]tr(lblZoom)", - "binding": "Map", "width": 80, "height": 20, "x": 0, @@ -138,14 +129,12 @@ }, { "type": "TextButton", - "name": "exittoworldmap", - "style":"menu", + "name": "exittoworldmap", "text": "[%120][+ExitToWorldMap]", - "binding": "ExitToWorldMap", - "width": 64, - "height": 32, - "x": 206, - "y": 266 + "width": 25, + "height": 25, + "x": 180, + "y": 450 } ] } \ No newline at end of file diff --git a/forge-gui/res/adventure/Shandalar/ui/inn_portrait.json b/forge-gui/res/adventure/Shandalar/ui/inn_portrait.json index eb6ba344c16..1a7c8722071 100644 --- a/forge-gui/res/adventure/Shandalar/ui/inn_portrait.json +++ b/forge-gui/res/adventure/Shandalar/ui/inn_portrait.json @@ -22,7 +22,6 @@ "type": "TextButton", "name": "tempHitPointCost", "text": "Cost", - "binding": "Status", "width": 100, "height": 30, "x": 165, @@ -51,7 +50,6 @@ "type": "TextButton", "name": "sell", "text": "tr(lblSell)", - "binding": "Equip", "width": 100, "height": 30, "x": 165, @@ -70,7 +68,6 @@ "type": "TextButton", "name": "done", "text": "tr(lblBack)", - "binding": "Back", "width": 100, "height": 30, "x": 165, diff --git a/forge-gui/res/adventure/Shandalar/ui/inventory.json b/forge-gui/res/adventure/Shandalar/ui/inventory.json index f025b8fa88c..cf4d971a56e 100644 --- a/forge-gui/res/adventure/Shandalar/ui/inventory.json +++ b/forge-gui/res/adventure/Shandalar/ui/inventory.json @@ -17,6 +17,24 @@ "width": 129, "height": 243 }, + { + "type": "ImageButton", + "name": "Equipment_Ability1", + "style": "item_frame", + "width": 20, + "height": 20, + "x": 17, + "y": 20 + }, + { + "type": "ImageButton", + "name": "Equipment_Ability2", + "style": "item_frame", + "width": 20, + "height": 20, + "x": 107, + "y": 20 + }, { "type": "ImageButton", "name": "Equipment_Neck", diff --git a/forge-gui/res/adventure/Shandalar/ui/inventory_portrait.json b/forge-gui/res/adventure/Shandalar/ui/inventory_portrait.json index c55ddeace12..e561453c675 100644 --- a/forge-gui/res/adventure/Shandalar/ui/inventory_portrait.json +++ b/forge-gui/res/adventure/Shandalar/ui/inventory_portrait.json @@ -16,7 +16,25 @@ "y": 112, "width": 129, "height": 243 - }, + }, + { + "type": "ImageButton", + "name": "Equipment_Ability1", + "style": "item_frame", + "width": 20, + "height": 20, + "x": 17, + "y": 124 + }, + { + "type": "ImageButton", + "name": "Equipment_Ability2", + "style": "item_frame", + "width": 20, + "height": 20, + "x": 107, + "y": 124 + }, { "type": "ImageButton", "name": "Equipment_Neck", @@ -25,7 +43,7 @@ "height": 20, "x": 62, "y": 144 - } , + }, { "type": "ImageButton", "name": "Equipment_Body", @@ -34,7 +52,7 @@ "height": 20, "x": 62, "y": 189 - } , + }, { "type": "ImageButton", "name": "Equipment_Boots", @@ -43,7 +61,7 @@ "height": 20, "x": 62, "y": 324 - } , + }, { "type": "ImageButton", "name": "Equipment_Left", @@ -84,12 +102,11 @@ "y": 16, "width": 246, "height": 90 - } , + }, { "type": "TextButton", "name": "delete", "text": "tr(lblDispose)", - "binding": "Status", "width": 60, "height": 30, "x": 8, @@ -99,7 +116,6 @@ "type": "TextButton", "name": "equip", "text": "tr(lblEquip)", - "binding": "Equip", "width": 60, "height": 30, "x": 75, @@ -109,7 +125,6 @@ "type": "TextButton", "name": "use", "text": "tr(lblUse)", - "binding": "Use", "width": 60, "height": 30, "x": 140, @@ -119,7 +134,6 @@ "type": "TextButton", "name": "return", "text": "tr(lblBack)", - "binding": "Back", "width": 60, "height": 30, "x": 205, diff --git a/forge-gui/res/adventure/Shandalar/ui/items_portrait.json b/forge-gui/res/adventure/Shandalar/ui/items_portrait.json index 45d33a8a045..31663fbbbcf 100644 --- a/forge-gui/res/adventure/Shandalar/ui/items_portrait.json +++ b/forge-gui/res/adventure/Shandalar/ui/items_portrait.json @@ -28,7 +28,6 @@ "type": "TextButton", "name": "detail", "text": "Detail", - "binding": "Equip", "width": 128, "height": 32, "x": 140, @@ -38,7 +37,6 @@ "type": "TextButton", "name": "done", "text": "tr(lblLeave)", - "binding": "Back", "width": 128, "height": 32, "x": 140, diff --git a/forge-gui/res/adventure/Shandalar/ui/map_portrait.json b/forge-gui/res/adventure/Shandalar/ui/map_portrait.json index 6eeb1cba545..9e165c0f637 100644 --- a/forge-gui/res/adventure/Shandalar/ui/map_portrait.json +++ b/forge-gui/res/adventure/Shandalar/ui/map_portrait.json @@ -13,7 +13,6 @@ "type": "TextButton", "name": "done", "text": "[%80]tr(lblBack)", - "binding": "Back", "width": 48, "height": 20, "x": 5, diff --git a/forge-gui/res/adventure/Shandalar/ui/new_game_portrait.json b/forge-gui/res/adventure/Shandalar/ui/new_game_portrait.json index 6ffc8a8a582..0fab6dc9ef8 100644 --- a/forge-gui/res/adventure/Shandalar/ui/new_game_portrait.json +++ b/forge-gui/res/adventure/Shandalar/ui/new_game_portrait.json @@ -187,7 +187,6 @@ "name": "back", "text": "tr(lblBack)", "selectable": true, - "binding": "Back", "width": 64, "height": 28, "x": 32, @@ -198,7 +197,6 @@ "name": "start", "text": "tr(lblStart)", "selectable": true, - "binding": "Status", "width": 64, "height": 28, "x": 165, diff --git a/forge-gui/res/adventure/Shandalar/ui/quests_portrait.json b/forge-gui/res/adventure/Shandalar/ui/quests_portrait.json index 6cfc29125d4..0a8400244a5 100644 --- a/forge-gui/res/adventure/Shandalar/ui/quests_portrait.json +++ b/forge-gui/res/adventure/Shandalar/ui/quests_portrait.json @@ -66,7 +66,6 @@ "type": "TextButton", "name": "return", "text": "tr(lblBack)", - "binding": "Back", "width": 130, "height": 30, "x": 135, @@ -76,7 +75,6 @@ "type": "TextButton", "name": "status", "text": "Status", - "binding": "Status", "width": 130, "height": 30, "x": 5, diff --git a/forge-gui/res/adventure/Shandalar/ui/save_load_portrait.json b/forge-gui/res/adventure/Shandalar/ui/save_load_portrait.json index 0657e17d835..9c5f9202b2f 100644 --- a/forge-gui/res/adventure/Shandalar/ui/save_load_portrait.json +++ b/forge-gui/res/adventure/Shandalar/ui/save_load_portrait.json @@ -45,7 +45,6 @@ "type": "TextButton", "name": "return", "text": "tr(lblBack)", - "binding": "Back", "width": 120, "height": 32, "x": 10, @@ -54,7 +53,6 @@ { "type": "TextButton", "name": "save", - "binding": "Use", "width": 120, "height": 32, "x": 140, diff --git a/forge-gui/res/adventure/Shandalar/ui/settings_portrait.json b/forge-gui/res/adventure/Shandalar/ui/settings_portrait.json index 2589272e2e9..eb9ec94b0ae 100644 --- a/forge-gui/res/adventure/Shandalar/ui/settings_portrait.json +++ b/forge-gui/res/adventure/Shandalar/ui/settings_portrait.json @@ -21,7 +21,6 @@ "type": "TextButton", "name": "return", "text": "tr(lblBack)", - "binding": "Back", "width": 250, "height": 32, "x": 10, diff --git a/forge-gui/res/adventure/Shandalar/ui/shardtrader_portrait.json b/forge-gui/res/adventure/Shandalar/ui/shardtrader_portrait.json index 67ca39c0390..ee9464962d4 100644 --- a/forge-gui/res/adventure/Shandalar/ui/shardtrader_portrait.json +++ b/forge-gui/res/adventure/Shandalar/ui/shardtrader_portrait.json @@ -22,7 +22,6 @@ "type": "TextButton", "name": "btnBuyShardsCost", "text": "btnBuyShardsCost", - "binding": "Status", "width": 100, "height": 30, "x": 165, @@ -41,7 +40,6 @@ "type": "TextButton", "name": "btnSellShardsQuantity", "text": "btnSellShardsQuantity", - "binding": "Equip", "width": 100, "height": 30, "x": 165, @@ -60,7 +58,6 @@ "type": "TextButton", "name": "done", "text": "tr(lblBack)", - "binding": "Back", "width": 100, "height": 30, "x": 165, diff --git a/forge-gui/res/adventure/Shandalar/ui/spellsmith_portrait.json b/forge-gui/res/adventure/Shandalar/ui/spellsmith_portrait.json index ce7935278ae..dd0a389b188 100644 --- a/forge-gui/res/adventure/Shandalar/ui/spellsmith_portrait.json +++ b/forge-gui/res/adventure/Shandalar/ui/spellsmith_portrait.json @@ -64,7 +64,6 @@ "selectable": true, "name": "done", "text": "tr(lblBack)", - "binding": "Back", "x": 180, "y": 150, "width": 90, @@ -151,7 +150,6 @@ "type": "TextButton", "selectable": true, "name": "pullUsingGold", - "binding": "Status", "text": "tr(lblDraw) [+gold]", "x": 180, "y": 25, @@ -171,7 +169,6 @@ "type": "TextButton", "selectable": true, "name": "pullUsingShards", - "binding": "Equip", "text": "tr(lblDraw) [+shards]", "x": 180, "y": 75, diff --git a/forge-gui/res/adventure/Shandalar/ui/start_menu_portrait.json b/forge-gui/res/adventure/Shandalar/ui/start_menu_portrait.json index 8f662520582..484bab545b7 100644 --- a/forge-gui/res/adventure/Shandalar/ui/start_menu_portrait.json +++ b/forge-gui/res/adventure/Shandalar/ui/start_menu_portrait.json @@ -54,7 +54,6 @@ "name": "Resume", "text": "tr(lblResume)", "selectable": true, - "binding": "Back", "width": 238, "height": 48, "x": 16, diff --git a/forge-gui/res/adventure/Shandalar/ui/statistic_portrait.json b/forge-gui/res/adventure/Shandalar/ui/statistic_portrait.json index bfbecae1869..3f8b45b6187 100644 --- a/forge-gui/res/adventure/Shandalar/ui/statistic_portrait.json +++ b/forge-gui/res/adventure/Shandalar/ui/statistic_portrait.json @@ -112,7 +112,6 @@ "type": "TextButton", "name": "return", "text": "tr(lblBack)", - "binding": "Back", "width": 115, "height": 30, "x": 155, @@ -122,7 +121,6 @@ "type": "TextButton", "name": "quests", "text": "Quests", - "binding": "Status", "width": 115, "height": 30, "x": 35, diff --git a/forge-gui/res/adventure/Shandalar/world/black.json b/forge-gui/res/adventure/Shandalar/world/black.json index 077fa503c79..17b9fe383e3 100644 --- a/forge-gui/res/adventure/Shandalar/world/black.json +++ b/forge-gui/res/adventure/Shandalar/world/black.json @@ -94,6 +94,7 @@ "SkullCaveB", "SkullCaveB1", "SkullCaveB2", + "DrossOutpost", "CaveB", "CaveB1", "CaveB2", diff --git a/forge-gui/res/adventure/Shandalar/world/enemies.json b/forge-gui/res/adventure/Shandalar/world/enemies.json index 2cee7fb686b..12ddeb440e3 100644 --- a/forge-gui/res/adventure/Shandalar/world/enemies.json +++ b/forge-gui/res/adventure/Shandalar/world/enemies.json @@ -55,16 +55,16 @@ } ], "colors": "UW", - "questTags": [ - "Human", - "Soldier", - "Wandering", - "IdentityAzorius", - "IdentityWhite", - "IdentityBlue", - "BiomeWhite", - "Loner" - ] + "questTags": [ + "Human", + "Soldier", + "Wandering", + "IdentityAzorius", + "IdentityWhite", + "IdentityBlue", + "BiomeWhite", + "Loner" + ] }, { "name": "Aether Channeler", @@ -123,16 +123,16 @@ } ], "colors": "WU", - "questTags": [ - "Human", - "Wizard", - "BiomeWhite", - "BiomeBlue", - "IdentityWhite", - "IdentityBlue", - "IdentityAzorius", - "Mystic" - ] + "questTags": [ + "Human", + "Wizard", + "BiomeWhite", + "BiomeBlue", + "IdentityWhite", + "IdentityBlue", + "IdentityAzorius", + "Mystic" + ] }, { "name": "Akroma", @@ -169,15 +169,15 @@ "Mox Pearl" ], "colors": "W", - "questTags": [ - "Angel", - "Holy", - "Humanoid", - "Boss", - "Flying", - "IdentityWhite", - "Akroma" - ] + "questTags": [ + "Angel", + "Holy", + "Humanoid", + "Boss", + "Flying", + "IdentityWhite", + "Akroma" + ] }, { "name": "Amonkhet Minotaur", @@ -252,17 +252,17 @@ } ], "colors": "BR", - "questTags": [ - "Humanoid", - "Aggressive", - "Minotaur", - "Tribal", - "IdentityRed", - "BiomeRed", - "IdentityBlack", - "IdentityRakdos", - "BiomeRed" - ] + "questTags": [ + "Humanoid", + "Aggressive", + "Minotaur", + "Tribal", + "IdentityRed", + "BiomeRed", + "IdentityBlack", + "IdentityRakdos", + "BiomeRed" + ] }, { "name": "Ape", @@ -336,16 +336,16 @@ } ], "colors": "GR", - "questTags": [ - "Humanoid", - "Territorial", - "Animal", - "Wild", - "IdentityRed", - "IdentityGreen", - "IdentityGruul", - "BiomeGreen" - ] + "questTags": [ + "Humanoid", + "Territorial", + "Animal", + "Wild", + "IdentityRed", + "IdentityGreen", + "IdentityGruul", + "BiomeGreen" + ] }, { "name": "Archer", @@ -353,6 +353,7 @@ "deck": [ "decks/human_archer.dck" ], + "ai": "", "spawnRate": 1, "difficulty": 0.1, "speed": 25, @@ -419,29 +420,28 @@ } ], "colors": "GW", - "questTags": [ - "Human", - "Soldier", - "IdentityWhite", - "IdentityGreen", - "IdentitySelesnya", - "BiomeWhite" - ] + "questTags": [ + "Human", + "Soldier", + "IdentityWhite", + "IdentityGreen", + "IdentitySelesnya", + "BiomeWhite" + ] }, { "name": "Armored Knight", "sprite": "sprites/knight.atlas", "deck": [ - "decks/armored_knight.dck" + "decks/armored_knight.dck" ], "ai": "", - "flying": false, "spawnRate": 1, "difficulty": 0.1, "speed": 15, "life": 25, "rewards": [ - { + { "type": "deckCard", "probability": 1, "count": 2, @@ -483,16 +483,16 @@ "count": 50, "addMaxCount": 100 } - ], - "questTags": [ - "Human", - "Soldier", - "Leader", - "IdentityWhite", - "IdentityRed", - "IdentityBoros", - "BiomeWhite" - ] + ], + "questTags": [ + "Human", + "Soldier", + "Leader", + "IdentityWhite", + "IdentityRed", + "IdentityBoros", + "BiomeWhite" + ] }, { "name": "Ashmouth Devil", @@ -520,32 +520,21 @@ ], "colors": "BR", "questTags": [ - "Humanoid", - "Devil", - "IdentityRed", - "IdentityBlack", - "IdentityRakdos", - "BiomeRed" - ] + "Humanoid", + "Devil", + "IdentityRed", + "IdentityBlack", + "IdentityRakdos", + "BiomeRed" + ] }, { "name": "Axgard Dwarf", - "questTags": [ - "Dwarf", - "Soldier", - "Territorial", - "Tribal", - "Warrior", - "Subterranean", - "IdentityRed", - "IdentityWhite", - "IdentityBoros", - "BiomeRed" - ], "sprite": "sprites/dwarf_8.atlas", "deck": [ "decks/axgard_dwarf.dck" ], + "ai": "", "spawnRate": 1, "difficulty": 0.1, "speed": 22, @@ -611,30 +600,34 @@ "addMaxCount": 90 } ], - "colors": "RW" + "colors": "RW", + "questTags": [ + "Dwarf", + "Soldier", + "Territorial", + "Tribal", + "Warrior", + "Subterranean", + "IdentityRed", + "IdentityWhite", + "IdentityBoros", + "BiomeRed" + ] }, { "name": "Badger", - "questTags": [ - "Animal", - "Territorial", - "Wild", - "Small", - "IdentityGreen", - "BiomeGreen" - ], - "sprite": "sprites/dungeon/badger.atlas", + "sprite": "sprites/badger.atlas", "deck": [ "decks/badger.dck" ], "ai": "", "spawnRate": 1, - "scale":0.8, "difficulty": 0.1, "speed": 15, + "scale": 0.8, "life": 10, "rewards": [ - { + { "type": "deckCard", "probability": 1, "count": 2, @@ -670,24 +663,23 @@ "Land" ] } + ], + "questTags": [ + "Animal", + "Territorial", + "Wild", + "Small", + "IdentityGreen", + "BiomeGreen" ] }, { "name": "Bandit", - "questTags": [ - "Dwarf", - "Wandering", - "Warrior", - "Bandit", - "IdentityBlack", - "IdentityRed", - "IdentityRakdos", - "BiomeColorless" - ], "sprite": "sprites/dwarf_7.atlas", "deck": [ "decks/bandit.dck" ], + "ai": "", "spawnRate": 1, "difficulty": 0.1, "speed": 24, @@ -753,22 +745,82 @@ "addMaxCount": 90 } ], - "colors": "BR" + "colors": "BR", + "questTags": [ + "Dwarf", + "Wandering", + "Warrior", + "Bandit", + "IdentityBlack", + "IdentityRed", + "IdentityRakdos", + "BiomeColorless" + ] +}, +{ + "name": "Bat", + "sprite": "sprites/dungeon/bat.atlas", + "deck": [ + "decks/bat.dck" + ], + "ai": "", + "flying": true, + "spawnRate": 1, + "difficulty": 0.1, + "speed": 30, + "scale": 0.8, + "life": 14, + "rewards": [ + { + "type": "deckCard", + "probability": 1, + "count": 2, + "addMaxCount": 4, + "rarity": [ + "common", + "uncommon" + ] + }, + { + "type": "gold", + "probability": 0.7, + "count": 10, + "addMaxCount": 90 + }, + { + "type": "card", + "probability": 1, + "count": 1, + "rarity": [ + "uncommon", + "common" + ], + "cardTypes": [ + "Land" + ] + } + ], + "colors": "B", + "questTags": [ + "Animal", + "Wild", + "Nesting", + "Flying", + "Tiny", + "IdentityBlack", + "BiomeBlack", + "Aggressive", + "Bat", + "Nocturnal" + ] }, { "name": "Bear", - "questTags": [ - "Territorial", - "Animal", - "Wild", - "Domesticated", - "IdentityGreen", - "BiomeGreen" - ], "sprite": "sprites/bear.atlas", "deck": [ "decks/bear.json" ], + "ai": "", "spawnRate": 1, "difficulty": 0.1, "speed": 25, @@ -834,20 +886,18 @@ "addMaxCount": 90 } ], - "colors": "G" + "colors": "G", + "questTags": [ + "Territorial", + "Animal", + "Wild", + "Domesticated", + "IdentityGreen", + "BiomeGreen" + ] }, { "name": "Beastmaster", - "questTags": [ - "Human", - "Loner", - "Nature", - "IdentityGreen", - "IdentityWhite", - "IdentitySelesnya", - "BiomeGreen", - "BiomeWhite" - ], "sprite": "sprites/calibou_elite.atlas", "deck": [ "decks/beastmaster.dck" @@ -920,20 +970,20 @@ "addMaxCount": 90 } ], - "colors": "GW" + "colors": "GW", + "questTags": [ + "Human", + "Loner", + "Nature", + "IdentityGreen", + "IdentityWhite", + "IdentitySelesnya", + "BiomeGreen", + "BiomeWhite" + ] }, { "name": "Beholder", - "questTags": [ - "Aberration", - "Floating", - "Flying", - "IdentityBlack", - "IdentityBlue", - "IdentityRed", - "IdentityGrixis", - "BiomeBlack" - ], "sprite": "sprites/beholder.atlas", "deck": [ "decks/beholder.dck" @@ -1005,22 +1055,20 @@ "addMaxCount": 90 } ], - "colors": "BRU" + "colors": "BRU", + "questTags": [ + "Aberration", + "Floating", + "Flying", + "IdentityBlack", + "IdentityBlue", + "IdentityRed", + "IdentityGrixis", + "BiomeBlack" + ] }, { "name": "Berserker", - "questTags": [ - "Dwarf", - "Aggressive", - "Loner", - "Barbarian", - "Warrior", - "IdentityRed", - "IdentityBlack", - "IdentityGreen", - "IdentityJund", - "BiomeRed" - ], "sprite": "sprites/dwarf_5.atlas", "deck": [ "decks/berserker.json" @@ -1043,17 +1091,22 @@ "addMaxCount": 95 } ], - "colors": "BGR" + "colors": "BGR", + "questTags": [ + "Dwarf", + "Aggressive", + "Loner", + "Barbarian", + "Warrior", + "IdentityRed", + "IdentityBlack", + "IdentityGreen", + "IdentityJund", + "BiomeRed" + ] }, { "name": "Big Zombie", - "questTags": [ - "Undead", - "Zombie", - "Humanoid", - "IdentityBlack", - "BiomeBlack" - ], "sprite": "sprites/zombie_2.atlas", "deck": [ "decks/zombie_bad.json" @@ -1087,22 +1140,17 @@ ] } ], - "colors": "B" + "colors": "B", + "questTags": [ + "Undead", + "Zombie", + "Humanoid", + "IdentityBlack", + "BiomeBlack" + ] }, { "name": "Bird", - "questTags": [ - "Animal", - "Flying", - "Territorial", - "Bird", - "Predator", - "Nesting", - "Wild", - "Domesticated", - "IdentityBlue", - "BiomeBlue" - ], "sprite": "sprites/griffin_2.atlas", "deck": [ "decks/bird_blue.json" @@ -1174,21 +1222,27 @@ "addMaxCount": 90 } ], - "colors": "U" + "colors": "U", + "questTags": [ + "Animal", + "Flying", + "Territorial", + "Bird", + "Predator", + "Nesting", + "Wild", + "Domesticated", + "IdentityBlue", + "BiomeBlue" + ] }, { "name": "Black Wiz1", - "questTags": [ - "Wizard", - "Necromancer", - "IdentityBlack", - "BiomeColorless", - "BiomeBlack" - ], "sprite": "sprites/black_wizard.atlas", "deck": [ "decks/black_bad.json" ], + "ai": "", "spawnRate": 1, "difficulty": 0.1, "speed": 24, @@ -1254,21 +1308,22 @@ "addMaxCount": 90 } ], - "colors": "B" + "colors": "B", + "questTags": [ + "Wizard", + "Necromancer", + "IdentityBlack", + "BiomeColorless", + "BiomeBlack" + ] }, { "name": "Black Wiz2", - "questTags": [ - "Wizard", - "Necromancer", - "IdentityBlack", - "BiomeColorless", - "BiomeBlack" - ], "sprite": "sprites/black_wiz2.atlas", "deck": [ "decks/fear.dck" ], + "ai": "", "spawnRate": 1, "difficulty": 0.1, "speed": 24, @@ -1287,21 +1342,22 @@ "addMaxCount": 80 } ], - "colors": "B" + "colors": "B", + "questTags": [ + "Wizard", + "Necromancer", + "IdentityBlack", + "BiomeColorless", + "BiomeBlack" + ] }, { "name": "Black Wiz3", - "questTags": [ - "Wizard", - "Necromancer", - "IdentityBlack", - "BiomeColorless", - "BiomeBlack" - ], "sprite": "sprites/black_wiz3.atlas", "deck": [ "decks/black_wiz3.dck" ], + "ai": "", "spawnRate": 1, "difficulty": 0.1, "speed": 24, @@ -1320,19 +1376,17 @@ "addMaxCount": 80 } ], - "colors": "B" + "colors": "B", + "questTags": [ + "Wizard", + "Necromancer", + "IdentityBlack", + "BiomeColorless", + "BiomeBlack" + ] }, { "name": "Blue Wiz1", - "questTags": [ - "Wizard", - "Illusionist", - "Flying", - "Human", - "IdentityBlue", - "BiomeColorless", - "BiomeBlue" - ], "sprite": "sprites/mage.atlas", "deck": [ "decks/blue_bad.json" @@ -1404,22 +1458,24 @@ "addMaxCount": 90 } ], - "colors": "U" + "colors": "U", + "questTags": [ + "Wizard", + "Illusionist", + "Flying", + "Human", + "IdentityBlue", + "BiomeColorless", + "BiomeBlue" + ] }, { "name": "Blue Wiz2", - "questTags": [ - "Illusionist", - "Wizard", - "Human", - "IdentityBlue", - "BiomeColorless", - "BiomeBlue" - ], "sprite": "sprites/blue_wiz2.atlas", "deck": [ "decks/mill.dck" ], + "ai": "", "spawnRate": 1, "difficulty": 0.1, "speed": 24, @@ -1438,18 +1494,18 @@ "addMaxCount": 40 } ], - "colors": "U" + "colors": "U", + "questTags": [ + "Illusionist", + "Wizard", + "Human", + "IdentityBlue", + "BiomeColorless", + "BiomeBlue" + ] }, { "name": "Blue Wiz3", - "questTags": [ - "Human", - "Wizard", - "Illusionist", - "IdentityBlue", - "BiomeColorless", - "BiomeBlue" - ], "sprite": "sprites/mage_2.atlas", "deck": [ "decks/counter.dck" @@ -1473,33 +1529,30 @@ "addMaxCount": 300 } ], - "colors": "U" - + "colors": "U", + "questTags": [ + "Human", + "Wizard", + "Illusionist", + "IdentityBlue", + "BiomeColorless", + "BiomeBlue" + ] }, { "name": "Boar", - "questTags": [ - "Animal", - "Territorial", - "Prey", - "Wild", - "IdentityGreen", - "BiomeRed", - "BiomeColorless" - ], - "sprite": "sprites/dungeon/boar.atlas", - "scale": 0.55, + "sprite": "sprites/boar.atlas", "deck": [ "decks/boar.json" ], "ai": "", - "flying": false, "spawnRate": 1, "difficulty": 0.4, "speed": 31, + "scale": 0.55, "life": 13, "rewards": [ - { + { "type": "deckCard", "probability": 1, "count": 2, @@ -1539,24 +1592,24 @@ "addMaxCount": 100 } ], - "colors": "G" + "colors": "G", + "questTags": [ + "Animal", + "Territorial", + "Prey", + "Wild", + "IdentityGreen", + "BiomeRed", + "BiomeColorless" + ] }, { "name": "Boggart", - "questTags": [ - "Goblin", - "Humanoid", - "Coward", - "Tribal", - "IdentityRed", - "IdentityGreen", - "IdentityGruul", - "BiomeRed" - ], "sprite": "sprites/goblin_2.atlas", "deck": [ "decks/eyeblight.dck" ], + "ai": "", "spawnRate": 1, "difficulty": 0.1, "speed": 27, @@ -1586,30 +1639,32 @@ ] } ], - "colors": "GR" + "colors": "GR", + "questTags": [ + "Goblin", + "Humanoid", + "Coward", + "Tribal", + "IdentityRed", + "IdentityGreen", + "IdentityGruul", + "BiomeRed" + ] }, { "name": "Bull", - "questTags": [ - "Farm", - "Animal", - "Domesticated", - "IdentityGreen", - "BiomeRed" - ], - "sprite": "sprites/dungeon/bull.atlas", - "scale": 0.65, + "sprite": "sprites/bull.atlas", "deck": [ "decks/bull.dck" ], "ai": "", - "flying": false, "spawnRate": 1, "difficulty": 0.8, "speed": 31, + "scale": 0.65, "life": 13, "rewards": [ - { + { "type": "deckCard", "probability": 1, "count": 2, @@ -1649,23 +1704,22 @@ "addMaxCount": 100 } ], - "colors": "G" + "colors": "G", + "questTags": [ + "Farm", + "Animal", + "Domesticated", + "IdentityGreen", + "BiomeRed" + ] }, { "name": "Cat", - "questTags": [ - "Cat", - "Humanoid", - "Soldier", - "IdentityGreen", - "IdentityWhite", - "IdentitySelesnya", - "BiomeWhite" - ], "sprite": "sprites/lion.atlas", "deck": [ "decks/cat.json" ], + "ai": "", "spawnRate": 1, "difficulty": 0.1, "speed": 27, @@ -1731,24 +1785,24 @@ "addMaxCount": 90 } ], - "colors": "GW" + "colors": "GW", + "questTags": [ + "Cat", + "Humanoid", + "Soldier", + "IdentityGreen", + "IdentityWhite", + "IdentitySelesnya", + "BiomeWhite" + ] }, { "name": "Cathar", - "questTags": [ - "Soldier", - "Human", - "Religious", - "Holy", - "IdentityGreen", - "IdentityWhite", - "IdentitySelesnya", - "BiomeWhite" - ], "sprite": "sprites/cathar.atlas", "deck": [ "decks/cathar.dck" ], + "ai": "", "spawnRate": 1, "difficulty": 0.1, "speed": 25, @@ -1814,32 +1868,31 @@ "addMaxCount": 90 } ], - "colors": "GW" + "colors": "GW", + "questTags": [ + "Soldier", + "Human", + "Religious", + "Holy", + "IdentityGreen", + "IdentityWhite", + "IdentitySelesnya", + "BiomeWhite" + ] }, { "name": "Cave Spider", - "questTags": [ - "Territorial", - "Animal", - "Ambush", - "Predator", - "Wild", - "Subterranean", - "IdentityRed", - "IdentityGreen", - "IdentityBlack", - "IdentityJund" - ], "sprite": "sprites/spider_2.atlas", "deck": [ "decks/cave_spider.dck" ], + "ai": "", "spawnRate": 1, "difficulty": 0.1, "speed": 23, "life": 18, "rewards": [ - { + { "type": "deckCard", "probability": 1, "count": 4, @@ -1866,23 +1919,27 @@ ] } ], - "colors": "RGB" + "colors": "RGB", + "questTags": [ + "Territorial", + "Animal", + "Ambush", + "Predator", + "Wild", + "Subterranean", + "IdentityRed", + "IdentityGreen", + "IdentityBlack", + "IdentityJund" + ] }, { "name": "Centaur", - - "questTags": [ - "Humanoid", - "Tribal", - "IdentityGreen", - "IdentityWhite", - "IdentitySelesnya", - "BiomeGreen" - ], "sprite": "sprites/centaur.atlas", "deck": [ "decks/centaur.json" ], + "ai": "", "spawnRate": 1, "difficulty": 0.1, "speed": 30, @@ -1901,23 +1958,23 @@ "addMaxCount": 85 } ], - "colors": "GW" + "colors": "GW", + "questTags": [ + "Humanoid", + "Tribal", + "IdentityGreen", + "IdentityWhite", + "IdentitySelesnya", + "BiomeGreen" + ] }, { "name": "Centaur Warrior", - "questTags": [ - "Humanoid", - "Soldier", - "Tribal", - "IdentityGreen", - "IdentityWhite", - "IdentitySelesnya", - "BiomeGreen" - ], "sprite": "sprites/centaur_2.atlas", "deck": [ "decks/centaur_warrior.dck" ], + "ai": "", "spawnRate": 1, "difficulty": 0.1, "speed": 30, @@ -1936,20 +1993,19 @@ "addMaxCount": 85 } ], - "colors": "GW" + "colors": "GW", + "questTags": [ + "Humanoid", + "Soldier", + "Tribal", + "IdentityGreen", + "IdentityWhite", + "IdentitySelesnya", + "BiomeGreen" + ] }, { "name": "Challenger 20", - "questTags": [ - "Challenger", - "IdentityUnknown", - "BiomeGreen", - "BiomeRed", - "BiomeColorless", - "BiomeWhite", - "BiomeBlue", - "BiomeBlack" - ], "nameOverride": "Challenger", "sprite": "sprites/doppelganger.atlas", "deck": [ @@ -1958,6 +2014,7 @@ "decks/challenger_20_final_adventure.dck", "decks/challenger_20_flash_of_ferocity.dck" ], + "ai": "", "randomizeDeck": true, "spawnRate": 0.25, "difficulty": 0.25, @@ -2029,20 +2086,20 @@ "itemName": "Challenge Coin" } ], - "colors": "UBRWG" + "colors": "UBRWG", + "questTags": [ + "Challenger", + "IdentityUnknown", + "BiomeGreen", + "BiomeRed", + "BiomeColorless", + "BiomeWhite", + "BiomeBlue", + "BiomeBlack" + ] }, { "name": "Challenger 21", - "questTags": [ - "Challenger", - "IdentityUnknown", - "BiomeGreen", - "BiomeRed", - "BiomeColorless", - "BiomeWhite", - "BiomeBlue", - "BiomeBlack" - ], "nameOverride": "Challenger", "sprite": "sprites/doppelganger.atlas", "deck": [ @@ -2051,6 +2108,7 @@ "decks/challenger_21_mono-green_stompy.dck", "decks/challenger_21_mono-red_aggro.dck" ], + "ai": "", "randomizeDeck": true, "spawnRate": 0.25, "difficulty": 0.25, @@ -2122,20 +2180,20 @@ "itemName": "Challenge Coin" } ], - "colors": "UBRWG" + "colors": "UBRWG", + "questTags": [ + "Challenger", + "IdentityUnknown", + "BiomeGreen", + "BiomeRed", + "BiomeColorless", + "BiomeWhite", + "BiomeBlue", + "BiomeBlack" + ] }, { "name": "Challenger 22", - "questTags": [ - "Challenger", - "IdentityUnknown", - "BiomeGreen", - "BiomeRed", - "BiomeColorless", - "BiomeWhite", - "BiomeBlue", - "BiomeBlack" - ], "nameOverride": "Challenger", "sprite": "sprites/doppelganger.atlas", "deck": [ @@ -2144,6 +2202,7 @@ "decks/challenger_22_mono_white_aggro.dck", "decks/challenger_22_rakdos_vampires.dck" ], + "ai": "", "randomizeDeck": true, "spawnRate": 0.25, "difficulty": 0.25, @@ -2215,24 +2274,25 @@ "itemName": "Challenge Coin" } ], - "colors": "UBRWG" + "colors": "UBRWG", + "questTags": [ + "Challenger", + "IdentityUnknown", + "BiomeGreen", + "BiomeRed", + "BiomeColorless", + "BiomeWhite", + "BiomeBlue", + "BiomeBlack" + ] }, { "name": "Chandra", - "questTags": [ - "Human", - "Wizard", - "Pyromancer", - "Planeswalker", - "Boss", - "Chandra", - "Fire", - "IdentityRed" - ], "sprite": "sprites/boss/chandra.atlas", "deck": [ "decks/miniboss/Fire of Kaladesh.dck" ], + "ai": "", "boss": true, "spawnRate": 1, "difficulty": 0.1, @@ -2246,41 +2306,47 @@ "cardName": "Chandra, Fire Of Kaladesh" }, { - "count":4, - "type":"Union", + "type": "Union", "probability": 1, + "count": 4, "cardUnion": [ { - "count":1, - "subTypes": ["Chandra"] + "count": 1, + "subTypes": [ + "Chandra" + ] }, { - "count":1, - "superTypes": ["Legend","Legendary"], - "colors": ["red"], + "count": 1, + "colors": [ + "red" + ], + "superTypes": [ + "Legend", + "Legendary" + ], "cardText": "Chandra" }, { - "count":1, + "count": 1, "cardName": "Oath of Chandra" }, { - "count":1, + "count": 1, "cardName": "Pyromancer's Goggles" }, { - "count":1, + "count": 1, "cardName": "Pyromancer's Gauntlet" }, { - "count":1, + "count": 1, "cardName": "Chandra's Regulator" } - ] }, { - "count": 1, + "count": 1, "cardName": "Chandra's Defeat" }, { @@ -2312,21 +2378,23 @@ "itemName": "Chandra's Stone" } ], - "colors": "R" + "colors": "R", + "questTags": [ + "Human", + "Wizard", + "Pyromancer", + "Planeswalker", + "Boss", + "Chandra", + "Fire", + "IdentityRed" + ] }, { "name": "Chandra's Acolyte", - "questTags": [ - "Pyromancer", - "Human", - "Wizard", - "Chandra", - "Fire", - "IdentityRed" - ], "sprite": "sprites/red_wiz2.atlas", "deck": [ - "decks/chandra1.dck" + "decks/chandra1.dck" ], "ai": "", "spawnRate": 1, @@ -2402,7 +2470,8 @@ "probability": 0.3, "count": 1, "rarity": [ - "uncommon","rare" + "uncommon", + "rare" ], "cardTypes": [ "Land" @@ -2416,21 +2485,21 @@ "addMaxCount": 90 } ], - "colors": "R" + "colors": "R", + "questTags": [ + "Pyromancer", + "Human", + "Wizard", + "Chandra", + "Fire", + "IdentityRed" + ] }, { "name": "Chandra's Firestarter", - "questTags": [ - "Pyromancer", - "Wizard", - "Human", - "Chandra", - "Fire", - "IdentityRed" - ], "sprite": "sprites/red_wiz3.atlas", "deck": [ - "decks/chandra2.dck" + "decks/chandra2.dck" ], "ai": "", "spawnRate": 1, @@ -2506,7 +2575,8 @@ "probability": 0.3, "count": 1, "rarity": [ - "uncommon","rare" + "uncommon", + "rare" ], "cardTypes": [ "Land" @@ -2520,21 +2590,23 @@ "addMaxCount": 90 } ], - "colors": "R" + "colors": "R", + "questTags": [ + "Pyromancer", + "Wizard", + "Human", + "Chandra", + "Fire", + "IdentityRed" + ] }, { "name": "Chandra's Hellhound", - "questTags": [ - "Aberration", - "Animal", - "Chandra", - "FIre", - "IdentityRed" - ], "sprite": "sprites/hellhound_2.atlas", "deck": [ "decks/hellhound2.dck" ], + "ai": "", "spawnRate": 1, "difficulty": 0.1, "speed": 25, @@ -2608,7 +2680,8 @@ "probability": 0.3, "count": 1, "rarity": [ - "uncommon","rare" + "uncommon", + "rare" ], "cardTypes": [ "Land" @@ -2622,21 +2695,20 @@ "addMaxCount": 90 } ], - "colors": "R" + "colors": "R", + "questTags": [ + "Aberration", + "Animal", + "Chandra", + "FIre", + "IdentityRed" + ] }, { "name": "Chandra's Immolator", - "questTags": [ - "Chandra", - "Human", - "Pyromancer", - "Wizard", - "FIre", - "IdentityRed" - ], "sprite": "sprites/red_wiz2.atlas", "deck": [ - "decks/chandra3.dck" + "decks/chandra3.dck" ], "ai": "", "spawnRate": 1, @@ -2712,7 +2784,8 @@ "probability": 0.3, "count": 1, "rarity": [ - "uncommon","rare" + "uncommon", + "rare" ], "cardTypes": [ "Land" @@ -2726,21 +2799,21 @@ "addMaxCount": 90 } ], - "colors": "R" + "colors": "R", + "questTags": [ + "Chandra", + "Human", + "Pyromancer", + "Wizard", + "FIre", + "IdentityRed" + ] }, { "name": "Chandra's Lavamancer", - "questTags": [ - "Chandra", - "Pyromancer", - "Human", - "Wizard", - "FIre", - "IdentityRed" - ], "sprite": "sprites/red_wiz3.atlas", "deck": [ - "decks/chandra4.dck" + "decks/chandra4.dck" ], "ai": "", "spawnRate": 1, @@ -2816,7 +2889,8 @@ "probability": 0.3, "count": 1, "rarity": [ - "uncommon","rare" + "uncommon", + "rare" ], "cardTypes": [ "Land" @@ -2830,21 +2904,21 @@ "addMaxCount": 90 } ], - "colors": "R" + "colors": "R", + "questTags": [ + "Chandra", + "Pyromancer", + "Human", + "Wizard", + "FIre", + "IdentityRed" + ] }, { "name": "Chandra's Pyromancer", - "questTags": [ - "Pyromancer", - "Wizard", - "Chandra", - "Human", - "FIre", - "IdentityRed" - ], "sprite": "sprites/red_wiz2.atlas", "deck": [ - "decks/chandra5.dck" + "decks/chandra5.dck" ], "ai": "", "spawnRate": 1, @@ -2920,7 +2994,8 @@ "probability": 0.3, "count": 1, "rarity": [ - "uncommon","rare" + "uncommon", + "rare" ], "cardTypes": [ "Land" @@ -2934,21 +3009,21 @@ "addMaxCount": 90 } ], - "colors": "R" + "colors": "R", + "questTags": [ + "Pyromancer", + "Wizard", + "Chandra", + "Human", + "FIre", + "IdentityRed" + ] }, { "name": "Chandra's Scorcher", - "questTags": [ - "Human", - "Pyromancer", - "Chandra", - "Wizard", - "Fire", - "IdentityRed" - ], "sprite": "sprites/red_wiz2.atlas", "deck": [ - "decks/chandra6.dck" + "decks/chandra6.dck" ], "ai": "", "spawnRate": 1, @@ -3024,7 +3099,8 @@ "probability": 0.3, "count": 1, "rarity": [ - "uncommon","rare" + "uncommon", + "rare" ], "cardTypes": [ "Land" @@ -3038,31 +3114,27 @@ "addMaxCount": 90 } ], - "colors": "R" + "colors": "R", + "questTags": [ + "Human", + "Pyromancer", + "Chandra", + "Wizard", + "Fire", + "IdentityRed" + ] }, { "name": "Chicken", - "questTags": [ - "Farm", - "Animal", - "Bird", - "Prey", - "Domesticated", - "Small", - "IdentityWhite", - "IdentityGreen", - "IdentitySelesnya" - ], "sprite": "sprites/dungeon/chicken.atlas", - "scale": 0.75, "deck": [ "decks/chicken.dck" ], "ai": "", - "flying": false, "spawnRate": 1, "difficulty": 0.8, "speed": 31, + "scale": 0.75, "life": 8, "rewards": [ { @@ -3083,21 +3155,27 @@ "count": 1, "itemName": "Chicken Egg" } - ], - "colors": "WG" + ], + "colors": "WG", + "questTags": [ + "Farm", + "Animal", + "Bird", + "Prey", + "Domesticated", + "Small", + "IdentityWhite", + "IdentityGreen", + "IdentitySelesnya" + ] }, { "name": "ClayGolem", - "questTags": [ - "Golem", - "Construct", - "IdentityWhite", - "BiomeColorless" - ], "sprite": "sprites/golem_2.atlas", "deck": [ "decks/golem_good.json" ], + "ai": "", "spawnRate": 1, "difficulty": 0.1, "speed": 19, @@ -3125,22 +3203,21 @@ "colorType": "Colorless" } ], - "colors": "W" + "colors": "W", + "questTags": [ + "Golem", + "Construct", + "IdentityWhite", + "BiomeColorless" + ] }, { "name": "Cleric", - "questTags": [ - "Human", - "Religious", - "Wizard", - "Holy", - "IdentityWhite", - "BiomeWhite" - ], "sprite": "sprites/cleric.atlas", "deck": [ "decks/cleric.json" ], + "ai": "", "spawnRate": 1, "difficulty": 0.1, "speed": 24, @@ -3206,23 +3283,24 @@ "addMaxCount": 90 } ], - "colors": "W" + "colors": "W", + "questTags": [ + "Human", + "Religious", + "Wizard", + "Holy", + "IdentityWhite", + "BiomeWhite" + ] }, { "name": "Construct", - "questTags": [ - "Construct", - "Mechanical", - "IdentityRed", - "IdentityBlue", - "IdentityIzzet", - "BiomeColorless" - ], "sprite": "sprites/golem_3.atlas", "deck": [ "decks/artificer.dck", "decks/construct.json" ], + "ai": "", "spawnRate": 1, "difficulty": 0.1, "speed": 21, @@ -3248,11 +3326,11 @@ "type": "card", "probability": 0.5, "count": 3, - "cardTypes": [ - "Artifact" - ], "rarity": [ "Rare" + ], + "cardTypes": [ + "Artifact" ] }, { @@ -3274,19 +3352,23 @@ "addMaxCount": 100 } ], - "colors": "RU" + "colors": "RU", + "questTags": [ + "Construct", + "Mechanical", + "IdentityRed", + "IdentityBlue", + "IdentityIzzet", + "BiomeColorless" + ] }, { "name": "Copper Host Brutalizer", - "questTags": [ - "Phyrexian", - "Copper Host", - "Humanoid" - ], "sprite": "sprites/copperhostbrutalizer.atlas", "deck": [ "deckscopperhostbrutalizer.json" ], + "ai": "", "spawnRate": 1, "difficulty": 0.1, "speed": 25, @@ -3319,7 +3401,7 @@ }, { "type": "deckCard", - "probability": 0.50, + "probability": 0.5, "count": 1, "addMaxCount": 2, "rarity": [ @@ -3351,19 +3433,20 @@ "addMaxCount": 90 } ], - "colors": "GB" + "colors": "GB", + "questTags": [ + "Phyrexian", + "Copper Host", + "Humanoid" + ] }, { "name": "Copper Host Infector", - "questTags": [ - "Phyrexian", - "Copper Host", - "Humanoid" - ], "sprite": "sprites/copperhostinfector.atlas", "deck": [ "decks/copperhostinfector.json" ], + "ai": "", "spawnRate": 1, "difficulty": 0.1, "speed": 30, @@ -3428,37 +3511,29 @@ "addMaxCount": 90 } ], - "colors": "G" + "colors": "G", + "questTags": [ + "Phyrexian", + "Copper Host", + "Humanoid" + ] }, { "name": "Crab", - "questTags": [ - "Animal", - "Prey", - "Swimming", - "Wild", - "Water", - "Tiny", - "IdentityBlue", - "IdentityBlack", - "IdentityDimir", - "BiomeBlue" - ], - "sprite": "sprites/dungeon/crab.atlas", - "scale": 0.9, + "sprite": "sprites/crab.atlas", "deck": [ "decks/crab.json", "decks/giant_crab" ], "ai": "", - "flying": false, - "spawnRate": 1, "randomizeDeck": true, + "spawnRate": 1, "difficulty": 0.1, "speed": 20, + "scale": 0.9, "life": 11, "rewards": [ - { + { "type": "deckCard", "probability": 1, "count": 2, @@ -3495,31 +3570,33 @@ ] } ], - "colors": "UB" + "colors": "UB", + "questTags": [ + "Animal", + "Prey", + "Swimming", + "Wild", + "Water", + "Tiny", + "IdentityBlue", + "IdentityBlack", + "IdentityDimir", + "BiomeBlue" + ] }, -{ +{ "name": "Curselord", - "questTags": [ - "Human", - "Wizard", - "IdentityRed", - "IdentityBlue", - "IdentityBlack", - "IdentityGrixis", - "BiomeBlack" - ], "sprite": "sprites/black_wiz2.atlas", "deck": [ "decks/curselord.dck" ], "ai": "", - "flying": false, "spawnRate": 1, "difficulty": 0.1, "speed": 31, "life": 20, "rewards": [ - { + { "type": "deckCard", "probability": 1, "count": 3, @@ -3552,23 +3629,24 @@ "addMaxCount": 100 } ], - "colors": "RBU" + "colors": "RBU", + "questTags": [ + "Human", + "Wizard", + "IdentityRed", + "IdentityBlue", + "IdentityBlack", + "IdentityGrixis", + "BiomeBlack" + ] }, { "name": "Cyclops", - "questTags": [ - "Humanoid", - "Giant", - "Barbarian", - "Loner", - "Mythical", - "IdentityRed", - "BiomeRed" - ], "sprite": "sprites/cyclops.atlas", "deck": [ "decks/cyclops.dck" ], + "ai": "", "spawnRate": 1, "difficulty": 0.1, "speed": 16, @@ -3587,23 +3665,104 @@ "addMaxCount": 85 } ], - "colors": "R" + "colors": "R", + "questTags": [ + "Humanoid", + "Giant", + "Barbarian", + "Loner", + "Mythical", + "IdentityRed", + "BiomeRed" + ] +}, +{ + "name": "Dark Enchanter", + "sprite": "sprites/dreamwalker.atlas", + "deck": [ + "decks/darkenchanter.dck" + ], + "ai": "", + "spawnRate": 1, + "difficulty": 0.1, + "speed": 25, + "life": 35, + "rewards": [ + { + "type": "deckCard", + "probability": 1, + "count": 2, + "addMaxCount": 5 + }, + { + "type": "deckCard", + "probability": 0.5, + "count": 1, + "addMaxCount": 2, + "rarity": [ + "uncommon" + ], + "cardTypes": [ + "Creature", + "Artifact", + "Enchantment", + "Instant", + "Sorcery" + ] + }, + { + "type": "deckCard", + "probability": 0.25, + "count": 1, + "addMaxCount": 1, + "rarity": [ + "rare" + ], + "cardTypes": [ + "Creature", + "Artifact", + "Enchantment", + "Instant", + "Sorcery" + ] + }, + { + "type": "deckCard", + "probability": 0.1, + "count": 1, + "rarity": [ + "rare" + ], + "cardTypes": [ + "Land" + ] + }, + { + "type": "gold", + "probability": 0.3, + "count": 10, + "addMaxCount": 90 + } + ], + "colors": "GB", + "questTags": [ + "Humanoid", + "IdentityGreen", + "IdentityBlack", + "BiomeBlack", + "Leader", + "Mystic", + "Enchanter", + "Unholy" + ] }, { "name": "Dark Knight", - "questTags": [ - "Undead", - "Soldier", - "Knight", - "Unholy", - "Mounted", - "IdentityBlack", - "BiomeBlack" - ], "sprite": "sprites/death_knight.atlas", "deck": [ "decks/death_knight.json" ], + "ai": "", "spawnRate": 1, "difficulty": 0.1, "speed": 30, @@ -3669,22 +3828,24 @@ "addMaxCount": 90 } ], - "colors": "B" + "colors": "B", + "questTags": [ + "Undead", + "Soldier", + "Knight", + "Unholy", + "Mounted", + "IdentityBlack", + "BiomeBlack" + ] }, { "name": "Dawnhart Witch", - "questTags": [ - "Human", - "Mystic", - "IdentityGreen", - "IdentityWhite", - "IdentitySelesnya", - "BiomeWhite" - ], "sprite": "sprites/dawnhart_witch.atlas", "deck": [ "decks/dawnhart_witch.dck" ], + "ai": "", "spawnRate": 1, "difficulty": 0.1, "speed": 24, @@ -3750,23 +3911,23 @@ "addMaxCount": 90 } ], - "colors": "GW" + "colors": "GW", + "questTags": [ + "Human", + "Mystic", + "IdentityGreen", + "IdentityWhite", + "IdentitySelesnya", + "BiomeWhite" + ] }, { "name": "Death Knight", - "questTags": [ - "Undead", - "Soldier", - "Knight", - "Unholy", - "Mounted", - "IdentityBlack", - "BiomeBlack" - ], "sprite": "sprites/death_knight_2.atlas", "deck": [ "decks/death_knight.dck" ], + "ai": "", "spawnRate": 1, "difficulty": 0.1, "speed": 30, @@ -3832,21 +3993,24 @@ "addMaxCount": 90 } ], - "colors": "B" + "colors": "B", + "questTags": [ + "Undead", + "Soldier", + "Knight", + "Unholy", + "Mounted", + "IdentityBlack", + "BiomeBlack" + ] }, { "name": "Demon", - "questTags": [ - "Demon", - "Humanoid", - "Unholy", - "IdentityBlack", - "BiomeBlack" - ], "sprite": "sprites/demon_3.atlas", "deck": [ "decks/demon.json" ], + "ai": "", "spawnRate": 1, "difficulty": 0.1, "speed": 31, @@ -3912,28 +4076,28 @@ "addMaxCount": 90 } ], - "colors": "B" + "colors": "B", + "questTags": [ + "Demon", + "Humanoid", + "Unholy", + "IdentityBlack", + "BiomeBlack" + ] }, { "name": "Devil", - "questTags": [ - "Devil", - "Humanoid", - "Small", - "Thief", - "IdentityRed", - "BiomeRed" - ], "sprite": "sprites/imp.atlas", "deck": [ "decks/devil.json" ], + "ai": "", "spawnRate": 1, "difficulty": 0.1, "speed": 24, "life": 11, "rewards": [ - { + { "type": "deckCard", "probability": 1, "count": 2, @@ -3966,28 +4130,23 @@ ] } ], - "colors": "R" -}, + "colors": "R", + "questTags": [ + "Devil", + "Humanoid", + "Small", + "Thief", + "IdentityRed", + "BiomeRed" + ] +}, { "name": "Dino", - "questTags": [ - "Animal", - "Territorial", - "Aggressive", - "Dinosaur", - "Nesting", - "Predator", - "Wild", - "IdentityGreen", - "IdentityRed", - "IdentityWhite", - "IdentityNaya", - "BiomeGreen" - ], "sprite": "sprites/ancient.atlas", "deck": [ "decks/dinosaurs.json" ], + "ai": "", "spawnRate": 1, "difficulty": 0.1, "speed": 15, @@ -4019,27 +4178,29 @@ ] } ], - "colors": "GRW" + "colors": "GRW", + "questTags": [ + "Animal", + "Territorial", + "Aggressive", + "Dinosaur", + "Nesting", + "Predator", + "Wild", + "IdentityGreen", + "IdentityRed", + "IdentityWhite", + "IdentityNaya", + "BiomeGreen" + ] }, { "name": "Dinosaur", - "questTags": [ - "Dinosaur", - "Animal", - "Territorial", - "Aggressive", - "Nesting", - "Predator", - "Wild", - "IdentityRed", - "IdentityWhite", - "IdentityBoros", - "BiomeRed" - ], "sprite": "sprites/ancient_2.atlas", "deck": [ "decks/dinosaur_w_r.dck" ], + "ai": "", "spawnRate": 1, "difficulty": 0.1, "speed": 15, @@ -4071,30 +4232,34 @@ ] } ], - "colors": "RW" + "colors": "RW", + "questTags": [ + "Dinosaur", + "Animal", + "Territorial", + "Aggressive", + "Nesting", + "Predator", + "Wild", + "IdentityRed", + "IdentityWhite", + "IdentityBoros", + "BiomeRed" + ] }, { "name": "Disciple of Teferi", - "questTags": [ - "Human", - "Wizard", - "Illusionist", - "Teferi", - "IdentityBlue", - "IdentityRed", - "IdentityWhite", - "Identity Jeskai" - ], "sprite": "sprites/monk.atlas", "deck": [ "decks/disciple_of_teferi.dck" ], + "ai": "", "spawnRate": 1, "difficulty": 0.1, "speed": 23, "life": 12, "rewards": [ - { + { "type": "deckCard", "probability": 1, "count": 2, @@ -4138,19 +4303,20 @@ ] } ], - "colors": "WUR" + "colors": "WUR", + "questTags": [ + "Human", + "Wizard", + "Illusionist", + "Teferi", + "IdentityBlue", + "IdentityRed", + "IdentityWhite", + "Identity Jeskai" + ] }, { "name": "Djinn", - "questTags": [ - "Elemental", - "Flying", - "Humanoid", - "IdentityRed", - "IdentityBlue", - "IdentityIzzet", - "BiomeBlue" - ], "sprite": "sprites/djinn.atlas", "deck": [ "decks/djinn.json" @@ -4222,38 +4388,33 @@ "addMaxCount": 90 } ], - "colors": "RU" + "colors": "RU", + "questTags": [ + "Elemental", + "Flying", + "Humanoid", + "IdentityRed", + "IdentityBlue", + "IdentityIzzet", + "BiomeBlue" + ] }, { "name": "Dog", - "questTags": [ - "Predator", - "Prey", - "Animal", - "Domesticated", - "Wild", - "Scavenger", - "IdentityWhite", - "IdentityGreen", - "IdentitySelesnya", - "BiomeColorless", - "BiomeWhite" - ], - "sprite": "sprites/dungeon/dog.atlas", + "sprite": "sprites/dog.atlas", "deck": [ "decks/dog.json", "decks/dog.dck" ], "ai": "", - "flying": false, + "randomizeDeck": true, "spawnRate": 1, "difficulty": 0.1, "speed": 20, - "randomizeDeck": true, "scale": 0.75, "life": 10, "rewards": [ - { + { "type": "deckCard", "probability": 1, "count": 2, @@ -4289,22 +4450,29 @@ "Land" ] } + ], + "questTags": [ + "Predator", + "Prey", + "Animal", + "Domesticated", + "Wild", + "Scavenger", + "IdentityWhite", + "IdentityGreen", + "IdentitySelesnya", + "BiomeColorless", + "BiomeWhite" ] }, { "name": "Doppelganger", - "questTags": [ - "Aberration", - "Challenger", - "IdentityUnknown", - "BiomeColorless", - "BiomeBlue" - ], "sprite": "sprites/doppelganger.atlas", "deck": [ "decks/mimic.dck" ], "copyPlayerDeck": true, + "ai": "", "spawnRate": 0.95, "difficulty": 0.1, "speed": 30, @@ -4320,7 +4488,7 @@ "rare" ] }, - { + { "type": "deckCard", "probability": 0.25, "count": 1, @@ -4337,19 +4505,17 @@ "addMaxCount": 150 } ], - "colors": "C" + "colors": "C", + "questTags": [ + "Aberration", + "Challenger", + "IdentityUnknown", + "BiomeColorless", + "BiomeBlue" + ] }, { "name": "Dragon", - "questTags": [ - "Dragon", - "Flying", - "Territorial", - "Loner", - "Large", - "IdentityRed", - "BiomeRed" - ], "sprite": "sprites/dragon.atlas", "deck": [ "decks/dragon.dck" @@ -4421,25 +4587,168 @@ "addMaxCount": 90 } ], - "colors": "R" + "colors": "R", + "questTags": [ + "Dragon", + "Flying", + "Territorial", + "Loner", + "Large", + "IdentityRed", + "BiomeRed" + ] +}, +{ + "name": "Dross Gladiator", + "sprite": "sprites/drossgladiator.atlas", + "deck": [ + "decks/drossgladiator.json" + ], + "spawnRate": 1, + "difficulty": 0.1, + "speed": 35, + "life": 16, + "rewards": [ + { + "type": "deckCard", + "probability": 1, + "count": 2, + "addMaxCount": 4, + "rarity": [ + "common" + ] + }, + { + "type": "deckCard", + "probability": 0.5, + "count": 1, + "addMaxCount": 2, + "rarity": [ + "uncommon" + ], + "cardTypes": [ + "Creature", + "Artifact", + "Enchantment", + "Instant", + "Sorcery" + ] + }, + { + "type": "deckCard", + "probability": 0.25, + "count": 1, + "addMaxCount": 1, + "rarity": [ + "rare" + ], + "cardTypes": [ + "Creature", + "Artifact", + "Enchantment", + "Instant", + "Sorcery" + ] + }, + { + "type": "deckCard", + "probability": 0.1, + "count": 1, + "rarity": [ + "rare" + ], + "cardTypes": [ + "Land" + ] + }, + { + "type": "gold", + "probability": 0.3, + "count": 10, + "addMaxCount": 90 + } + ], + "colors": "B" +}, +{ + "name": "Dross Grimnarch", + "sprite": "sprites/drossgrimnarch.atlas", + "deck": [ + "decks/drossgrimnarch.json" + ], + "spawnRate": 1, + "difficulty": 0.1, + "speed": 24, + "life": 19, + "rewards": [ + { + "type": "deckCard", + "probability": 1, + "count": 2, + "addMaxCount": 4, + "rarity": [ + "common" + ] + }, + { + "type": "deckCard", + "probability": 0.75, + "count": 1, + "addMaxCount": 2, + "rarity": [ + "uncommon" + ], + "cardTypes": [ + "Creature", + "Artifact", + "Enchantment", + "Instant", + "Sorcery" + ] + }, + { + "type": "deckCard", + "probability": 0.50, + "count": 1, + "addMaxCount": 2, + "rarity": [ + "rare" + ], + "cardTypes": [ + "Creature", + "Artifact", + "Enchantment", + "Instant", + "Sorcery" + ] + }, + { + "type": "deckCard", + "probability": 0.1, + "count": 1, + "rarity": [ + "rare" + ], + "cardTypes": [ + "Land" + ] + }, + { + "type": "gold", + "probability": 0.3, + "count": 10, + "addMaxCount": 90 + } + ], + "colors": "BU" }, { "name": "Dwarf", - "questTags": [ - "Dwarf", - "Territorial", - "Humanoid", - "Warrior", - "Subterranean", - "IdentityRed", - "IdentityWhite", - "IdentityBoros", - "BiomeRed" - ], "sprite": "sprites/dwarf_2.atlas", "deck": [ "decks/dwarf.json" ], + "ai": "", "spawnRate": 1, "difficulty": 0.1, "speed": 22, @@ -4505,19 +4814,21 @@ "addMaxCount": 90 } ], - "colors": "RW" + "colors": "RW", + "questTags": [ + "Dwarf", + "Territorial", + "Humanoid", + "Warrior", + "Subterranean", + "IdentityRed", + "IdentityWhite", + "IdentityBoros", + "BiomeRed" + ] }, { "name": "Efreet", - "questTags": [ - "Elemental", - "Flying", - "Humanoid", - "IdentityRed", - "IdentityBlue", - "IdentityIzzet", - "BiomeRed" - ], "sprite": "sprites/efreet_2.atlas", "deck": [ "decks/efreet.dck" @@ -4542,20 +4853,19 @@ "addMaxCount": 95 } ], - "colors": "RU" + "colors": "RU", + "questTags": [ + "Elemental", + "Flying", + "Humanoid", + "IdentityRed", + "IdentityBlue", + "IdentityIzzet", + "BiomeRed" + ] }, { "name": "Eldraine Faerie", - "questTags": [ - "Mythical", - "Flying", - "Faerie", - "Eldraine", - "IdentityGreen", - "IdentityBlue", - "IdentitySimic", - "BiomeGreen" - ], "sprite": "sprites/pixie.atlas", "deck": [ "decks/eldraine_faerie.dck" @@ -4627,24 +4937,25 @@ "addMaxCount": 90 } ], - "colors": "GU" + "colors": "GU", + "questTags": [ + "Mythical", + "Flying", + "Faerie", + "Eldraine", + "IdentityGreen", + "IdentityBlue", + "IdentitySimic", + "BiomeGreen" + ] }, { "name": "Eldraine Knight", - "questTags": [ - "Soldier", - "Human", - "Knight", - "Eldraine", - "IdentityRed", - "IdentityWhite", - "IdentityBoros", - "BiomeWhite" - ], "sprite": "sprites/paladin_2.atlas", "deck": [ "decks/eldraine_knight.dck" ], + "ai": "", "spawnRate": 1, "difficulty": 0.1, "speed": 30, @@ -4710,21 +5021,20 @@ "addMaxCount": 90 } ], - "colors": "RW" + "colors": "RW", + "questTags": [ + "Soldier", + "Human", + "Knight", + "Eldraine", + "IdentityRed", + "IdentityWhite", + "IdentityBoros", + "BiomeWhite" + ] }, { "name": "Eldrazi", - "questTags": [ - "Aberration", - "Eldrazi", - "Wandering", - "Huge", - "IdentityBlack", - "IdentityGreen", - "IdentityBlue", - "IdentitySultai", - "BiomeColorless" - ], "sprite": "sprites/mindelemental.atlas", "deck": [ "decks/eldrazi.json" @@ -4796,20 +5106,26 @@ "addMaxCount": 90 } ], - "colors": "BGU" + "colors": "BGU", + "questTags": [ + "Aberration", + "Eldrazi", + "Wandering", + "Huge", + "IdentityBlack", + "IdentityGreen", + "IdentityBlue", + "IdentitySultai", + "BiomeColorless" + ] }, { "name": "Elemental", - "questTags": [ - "Elemental", - "Humanoid", - "IdentityBlue", - "BiomeBlue" - ], "sprite": "sprites/crystalelemental.atlas", "deck": [ "decks/elemental_blue.json" ], + "ai": "", "spawnRate": 1, "difficulty": 0.1, "speed": 31, @@ -4875,21 +5191,21 @@ "addMaxCount": 90 } ], - "colors": "U" + "colors": "U", + "questTags": [ + "Elemental", + "Humanoid", + "IdentityBlue", + "BiomeBlue" + ] }, { "name": "Elf", - "questTags": [ - "Elf", - "Humanoid", - "Tribal", - "IdentityGreen", - "BiomeGreen" - ], "sprite": "sprites/druid.atlas", "deck": [ "decks/elf_bad.json" ], + "ai": "", "spawnRate": 1, "difficulty": 0.1, "speed": 24, @@ -4919,21 +5235,22 @@ ] } ], - "colors": "G" + "colors": "G", + "questTags": [ + "Elf", + "Humanoid", + "Tribal", + "IdentityGreen", + "BiomeGreen" + ] }, { "name": "Elf warrior", - "questTags": [ - "Elf", - "Humanoid", - "Tribal", - "IdentityGreen", - "BiomeGreen" - ], "sprite": "sprites/hunter.atlas", "deck": [ "decks/elf_mid.json" ], + "ai": "", "spawnRate": 1, "difficulty": 0.1, "speed": 25, @@ -4963,21 +5280,22 @@ ] } ], - "colors": "G" + "colors": "G", + "questTags": [ + "Elf", + "Humanoid", + "Tribal", + "IdentityGreen", + "BiomeGreen" + ] }, { "name": "Elk", - "questTags": [ - "Animal", - "Wild", - "Prey", - "IdentityGreen", - "BiomeGreen" - ], "sprite": "sprites/deer_2.atlas", "deck": [ "decks/elk.dck" ], + "ai": "", "spawnRate": 1, "difficulty": 0.1, "speed": 29, @@ -5043,16 +5361,17 @@ "addMaxCount": 90 } ], - "colors": "G" + "colors": "G", + "questTags": [ + "Animal", + "Wild", + "Prey", + "IdentityGreen", + "BiomeGreen" + ] }, { "name": "Emrakul", - "questTags": [ - "Huge", - "Eldrazi", - "Boss", - "IdentityColorless" - ], "sprite": "sprites/boss/emrakul.atlas", "deck": [ "decks/boss/emrakul.dck" @@ -5079,29 +5398,29 @@ "equipment": [ "Sol Ring" ], - "colors": "C" + "colors": "C", + "questTags": [ + "Huge", + "Eldrazi", + "Boss", + "IdentityColorless" + ] }, { "name": "Eye", - "questTags": [ - "Aberration", - "Floating", - "IdentityBlack", - "BiomeBlack" - ], - "sprite": "sprites/dungeon/eye.atlas", + "sprite": "sprites/eye.atlas", "deck": [ "decks/eye.dck" ], "ai": "", "flying": true, "spawnRate": 1, - "scale":0.85, "difficulty": 0.1, "speed": 25, + "scale": 0.85, "life": 25, "rewards": [ - { + { "type": "deckCard", "probability": 1, "count": 2, @@ -5138,19 +5457,16 @@ ] } ], - "colors": "B" + "colors": "B", + "questTags": [ + "Aberration", + "Floating", + "IdentityBlack", + "BiomeBlack" + ] }, { "name": "Faerie", - "questTags": [ - "Faerie", - "Mythical", - "IdentityBlack", - "IdentityGreen", - "IdentityBlue", - "IdentitySultai", - "BiomeGreen" - ], "sprite": "sprites/pixie_2.atlas", "deck": [ "decks/faerie.json" @@ -5222,18 +5538,19 @@ "addMaxCount": 90 } ], - "colors": "BGU" + "colors": "BGU", + "questTags": [ + "Faerie", + "Mythical", + "IdentityBlack", + "IdentityGreen", + "IdentityBlue", + "IdentitySultai", + "BiomeGreen" + ] }, { "name": "Fire Elemental", - "questTags": [ - "FIre", - "Elemental", - "Humanoid", - "Flying", - "IdentityRed", - "BiomeRed" - ], "sprite": "sprites/fireelemental.atlas", "deck": [ "decks/fire_elemental.dck" @@ -5305,27 +5622,29 @@ "addMaxCount": 90 } ], - "colors": "R" + "colors": "R", + "questTags": [ + "FIre", + "Elemental", + "Humanoid", + "Flying", + "IdentityRed", + "BiomeRed" + ] }, { "name": "Fire Giant", - "questTags": [ - "Fire", - "Giant", - "Warrior", - "Territorial", - "IdentityRed" - ], "sprite": "sprites/dungeon/firegiant.atlas", "deck": [ "decks/firegiant.dck" ], + "ai": "", "spawnRate": 1, "difficulty": 0.1, "speed": 23, "life": 15, "rewards": [ - { + { "type": "deckCard", "probability": 1, "count": 2, @@ -5358,21 +5677,22 @@ ] } ], - "colors": "R" + "colors": "R", + "questTags": [ + "Fire", + "Giant", + "Warrior", + "Territorial", + "IdentityRed" + ] }, { "name": "Flame Elemental", - "questTags": [ - "Fire", - "Elemental", - "Humanoid", - "IdentityRed", - "BiomeRed" - ], "sprite": "sprites/magmaelemental.atlas", "deck": [ "decks/flame_elemental.dck" ], + "ai": "", "spawnRate": 1, "difficulty": 0.1, "speed": 23, @@ -5438,33 +5758,89 @@ "addMaxCount": 90 } ], - "colors": "R" + "colors": "R", + "questTags": [ + "Fire", + "Elemental", + "Humanoid", + "IdentityRed", + "BiomeRed" + ] +}, +{ + "name": "Flying Witch", + "sprite": "sprites/dungeon/flyingwitch.atlas", + "deck": [ + "decks/witch.dck" + ], + "ai": "", + "flying": true, + "spawnRate": 1, + "difficulty": 0.1, + "speed": 12, + "scale": 0.75, + "life": 13, + "rewards": [ + { + "type": "deckCard", + "probability": 1, + "count": 2, + "addMaxCount": 8, + "rarity": [ + "common", + "uncommon" + ] + }, + { + "type": "card", + "probability": 0.5, + "count": 1, + "rarity": [ + "Rare" + ] + }, + { + "type": "gold", + "probability": 1, + "count": 50, + "addMaxCount": 100 + }, + { + "type": "card", + "probability": 1, + "count": 1, + "rarity": [ + "uncommon", + "common" + ], + "cardTypes": [ + "Land" + ] + } + ], + "colors": "B", + "questTags": [ + "Mystic", + "Unholy", + "Wizard", + "Human", + "IdentityBlack" + ] }, { "name": "Fox", - "questTags": [ - "Animal", - "Wild", - "Prey", - "Thief", - "IdentityWhite", - "BiomeGreen", - "BiomeColorless", - "BiomeWhite" - ], - "sprite": "sprites/dungeon/fox.atlas", + "sprite": "sprites/fox.atlas", "deck": [ "decks/fox.json" ], "ai": "", - "flying": false, "spawnRate": 1, "difficulty": 0.1, - "speed": 15, + "speed": 20, "scale": 0.7, "life": 10, "rewards": [ - { + { "type": "deckCard", "probability": 1, "count": 2, @@ -5501,34 +5877,31 @@ ] } ], - "colors": "W" + "colors": "W", + "questTags": [ + "Animal", + "Wild", + "Prey", + "Thief", + "IdentityWhite", + "BiomeGreen", + "BiomeColorless", + "BiomeWhite" + ] }, { "name": "Frog", - "questTags": [ - "Animal", - "Swimming", - "Prey", - "IdentityBlue", - "IdentityGreen", - "IdentityBlack", - "IdentitySultai", - "BiomeGreen", - "BiomeBlue", - "BiomeBlack" - ], - "sprite": "sprites/dungeon/frog.atlas", + "sprite": "sprites/frog.atlas", "deck": [ "decks/frog.json" ], "ai": "", - "flying": false, "spawnRate": 1, "difficulty": 0.1, "speed": 15, "life": 10, "rewards": [ - { + { "type": "deckCard", "probability": 1, "count": 2, @@ -5565,25 +5938,27 @@ ] } ], - "colors": "BGU" + "colors": "BGU", + "questTags": [ + "Animal", + "Swimming", + "Prey", + "IdentityBlue", + "IdentityGreen", + "IdentityBlack", + "IdentitySultai", + "BiomeGreen", + "BiomeBlue", + "BiomeBlack" + ] }, { "name": "Frost Titan", - "questTags": [ - "Ice", - "Giant", - "Warrior", - "Territorial", - "IdentityWhite", - "IdentityBlue", - "IdentityAzorius", - "BiomeWhite", - "BiomeBlue" - ], "sprite": "sprites/titan.atlas", "deck": [ "decks/frost_titan.dck" ], + "ai": "", "spawnRate": 1, "difficulty": 0.1, "speed": 23, @@ -5651,32 +6026,33 @@ "addMaxCount": 90 } ], - "colors": "WU" + "colors": "WU", + "questTags": [ + "Ice", + "Giant", + "Warrior", + "Territorial", + "IdentityWhite", + "IdentityBlue", + "IdentityAzorius", + "BiomeWhite", + "BiomeBlue" + ] }, { "name": "Fungus", - "questTags": [ - "Fungus", - "Inhuman", - "Nature", - "Wild", - "Subterranean", - "IdentityGreen", - "BiomeBlack" - ], - "sprite": "sprites/dungeon/fungus.atlas", + "sprite": "sprites/fungus.atlas", "deck": [ "decks/fungus.json" ], "ai": "", - "flying": false, "spawnRate": 1, "difficulty": 0.1, "speed": 15, "scale": 0.75, "life": 10, "rewards": [ - { + { "type": "deckCard", "probability": 1, "count": 2, @@ -5713,25 +6089,19 @@ ] } ], - "colors": "G" + "colors": "G", + "questTags": [ + "Fungus", + "Inhuman", + "Nature", + "Wild", + "Subterranean", + "IdentityGreen", + "BiomeBlack" + ] }, { "name": "Gargoyle", - "questTags": [ - "Stone", - "Flying", - "Humanoid", - "Construct", - "Gargoyle", - "Passive", - "Territorial", - "Stone", - "IdentityRed", - "IdentityWhite", - "IdentityBlue", - "IdentityJeskai", - "BiomeColorless" - ], "sprite": "sprites/gargoyle.atlas", "deck": [ "decks/gargoyle.json" @@ -5803,22 +6173,25 @@ "addMaxCount": 90 } ], - "colors": "RUW" + "colors": "RUW", + "questTags": [ + "Stone", + "Flying", + "Humanoid", + "Construct", + "Gargoyle", + "Passive", + "Territorial", + "Stone", + "IdentityRed", + "IdentityWhite", + "IdentityBlue", + "IdentityJeskai", + "BiomeColorless" + ] }, { "name": "Gargoyle 2", - "questTags": [ - "Stone", - "Flying", - "Humanoid", - "Construct", - "Gargoyle", - "Passive", - "Territorial", - "Stone", - "IdentityWhite", - "BiomeColorless" - ], "sprite": "sprites/gargoyle_2.atlas", "deck": [ "decks/gargoyle.dck" @@ -5890,23 +6263,27 @@ "addMaxCount": 90 } ], - "colors": "W" + "colors": "W", + "questTags": [ + "Stone", + "Flying", + "Humanoid", + "Construct", + "Gargoyle", + "Passive", + "Territorial", + "Stone", + "IdentityWhite", + "BiomeColorless" + ] }, { "name": "Ghalta", - "questTags": [ - "Dinosaur", - "Huge", - "Boss", - "Nature", - "Territorial", - "IdentityGreen", - "Ghalta" - ], "sprite": "sprites/boss/ghalta.atlas", "deck": [ "decks/boss/ghalta.dck" ], + "ai": "", "boss": true, "speed": 1, "life": 80, @@ -5933,26 +6310,28 @@ "equipment": [ "Mox Emerald" ], - "colors": "G" + "colors": "G", + "questTags": [ + "Dinosaur", + "Huge", + "Boss", + "Nature", + "Territorial", + "IdentityGreen", + "Ghalta" + ] }, { "name": "Garruk", - "questTags": [ - "Planeswalker", - "Garruk", - "Boss", - "IdentityGreen", - "IdentityBlack", - "IdentityGolgari" - ], - "sprite": "sprites/dungeon/garruk.atlas", + "sprite": "sprites/boss/garruk.atlas", "deck": [ "decks/miniboss/garruk.dck" ], + "ai": "", "spawnRate": 1, - "scale": 0.5, "difficulty": 1, "speed": 30, + "scale": 0.5, "life": 25, "rewards": [ { @@ -6010,17 +6389,18 @@ "itemName": "Garruk's Mighty Axe" } ], - "colors": "GB" + "colors": "GB", + "questTags": [ + "Planeswalker", + "Garruk", + "Boss", + "IdentityGreen", + "IdentityBlack", + "IdentityGolgari" + ] }, { "name": "Geist", - "questTags": [ - "Undead", - "Ghost", - "Flying", - "IdentityBlue", - "BiomeBlue" - ], "sprite": "sprites/ghost.atlas", "deck": [ "decks/ghost_blue.dck" @@ -6092,22 +6472,22 @@ "addMaxCount": 90 } ], - "colors": "U" + "colors": "U", + "questTags": [ + "Undead", + "Ghost", + "Flying", + "IdentityBlue", + "BiomeBlue" + ] }, { "name": "Ghoul", - "questTags": [ - "Undead", - "Humanoid", - "IdentityBlack", - "IdentityBlue", - "IdentityDimir", - "BiomeBlack" - ], "sprite": "sprites/ghoul.atlas", "deck": [ "decks/ghoul.dck" ], + "ai": "", "spawnRate": 1, "difficulty": 0.1, "speed": 15, @@ -6126,18 +6506,18 @@ "addMaxCount": 90 } ], - "colors": "BU" + "colors": "BU", + "questTags": [ + "Undead", + "Humanoid", + "IdentityBlack", + "IdentityBlue", + "IdentityDimir", + "BiomeBlack" + ] }, { "name": "Ghost", - "questTags": [ - "Undead", - "Spirit", - "Flying", - "Ghost", - "IdentityBlack", - "BiomeBlack" - ], "sprite": "sprites/ghost_2.atlas", "deck": [ "decks/ghost.json" @@ -6209,24 +6589,23 @@ "addMaxCount": 90 } ], - "colors": "B" + "colors": "B", + "questTags": [ + "Undead", + "Spirit", + "Flying", + "Ghost", + "IdentityBlack", + "BiomeBlack" + ] }, { "name": "Giant Spider", - "questTags": [ - "Spider", - "Territorial", - "Predator", - "Ambush", - "Wild", - "Subterranean", - "IdentityGreen", - "BiomeGreen" - ], "sprite": "sprites/spider_2.atlas", "deck": [ "decks/spider_token.dck" ], + "ai": "", "spawnRate": 1, "difficulty": 0.1, "speed": 23, @@ -6245,23 +6624,25 @@ "addMaxCount": 90 } ], - "colors": "G" + "colors": "G", + "questTags": [ + "Spider", + "Territorial", + "Predator", + "Ambush", + "Wild", + "Subterranean", + "IdentityGreen", + "BiomeGreen" + ] }, { "name": "Gitaxian Scientist", - "questTags": [ - "Phyrexian", - "Gitaxian", - "Humanoid", - "Scientist", - "IdentityBlue", - "IdentityGreen", - "IdentitySimic" - ], "sprite": "sprites/gitaxianscientist.atlas", "deck": [ "decks/gitaxianscientist.json" ], + "ai": "", "spawnRate": 1, "difficulty": 0.1, "speed": 24, @@ -6294,7 +6675,7 @@ }, { "type": "deckCard", - "probability": 0.50, + "probability": 0.5, "count": 1, "addMaxCount": 2, "rarity": [ @@ -6326,20 +6707,24 @@ "addMaxCount": 90 } ], - "colors": "UG" + "colors": "UG", + "questTags": [ + "Phyrexian", + "Gitaxian", + "Humanoid", + "Scientist", + "IdentityBlue", + "IdentityGreen", + "IdentitySimic" + ] }, { "name": "Gitaxian Underling", - "questTags": [ - "Gitaxian", - "Phyrexian", - "Humanoid", - "IdentityBlue" - ], "sprite": "sprites/gitaxianunderling.atlas", "deck": [ "decks/gitaxianunderling.json" ], + "ai": "", "spawnRate": 1, "difficulty": 0.1, "speed": 24, @@ -6404,19 +6789,16 @@ "addMaxCount": 90 } ], - "colors": "U" + "colors": "U", + "questTags": [ + "Gitaxian", + "Phyrexian", + "Humanoid", + "IdentityBlue" + ] }, { "name": "Griselbrand", - "questTags": [ - "Demon", - "Huge", - "Flying", - "Unholy", - "Boss", - "IdentityBlack", - "Griselbrand" - ], "sprite": "sprites/boss/griselbrand.atlas", "deck": [ "decks/boss/griselbrand.dck" @@ -6449,33 +6831,32 @@ "equipment": [ "Mox Jet" ], - "colors": "B" + "colors": "B", + "questTags": [ + "Demon", + "Huge", + "Flying", + "Unholy", + "Boss", + "IdentityBlack", + "Griselbrand" + ] }, { "name": "Grolnok", - "questTags": [ - "Boss", - "Animal", - "IdentityBlack", - "IdentityBlue", - "IdentityGreen", - "Giant", - "IdentitySultai" - ], - "sprite": "sprites/dungeon/frogboss.atlas", - "scale": 0.50, + "sprite": "sprites/boss/frogboss.atlas", "deck": [ "decks/miniboss/frogboss.dck" ], - "boss": true, "ai": "", - "flying": false, + "boss": true, "spawnRate": 1, "difficulty": 0.8, "speed": 15, + "scale": 0.5, "life": 50, "rewards": [ - { + { "type": "deckCard", "probability": 1, "count": 4, @@ -6500,37 +6881,37 @@ }, { "type": "card", - "probability": 0.50, + "probability": 0.5, "count": 1, "cardName": "The Gitrog Monster" }, - { + { "type": "card", - "probability": 0.50, + "probability": 0.5, "count": 1, "cardName": "Thalia and The Gitrog Monster" }, { "type": "card", - "probability": 0.50, + "probability": 0.5, "count": 1, "cardName": "Damnation" }, { "type": "card", - "probability": 0.50, + "probability": 0.5, "count": 1, "cardName": "Gitrog, Horror of Zhava" }, { "type": "card", - "probability": 0.50, + "probability": 0.5, "count": 1, "cardName": "Froghemoth" }, { "type": "card", - "probability": 0.50, + "probability": 0.5, "count": 1, "cardName": "Yargle and Multani" }, @@ -6541,33 +6922,31 @@ "itemName": "Grolnok's Skin" } ], - "colors": "BGU" + "colors": "BGU", + "questTags": [ + "Boss", + "Animal", + "IdentityBlack", + "IdentityBlue", + "IdentityGreen", + "Giant", + "IdentitySultai" + ] }, { "name": "Gorilla", - "questTags": [ - "Humanoid", - "Simian", - "Territorial", - "Animal", - "Wild", - "IdentityGreen", - "IdentityRed", - "IdentityGruul" - ], "sprite": "sprites/dungeon/gorilla.atlas", - "scale": 0.55, "deck": [ "decks/gorilla.dck" ], "ai": "", - "flying": false, "spawnRate": 1, "difficulty": 0.8, "speed": 31, + "scale": 0.55, "life": 30, "rewards": [ - { + { "type": "deckCard", "probability": 1, "count": 2, @@ -6600,19 +6979,30 @@ ] } ], - "colors": "RG" + "colors": "RG", + "questTags": [ + "Humanoid", + "Simian", + "Territorial", + "Animal", + "Wild", + "IdentityGreen", + "IdentityRed", + "IdentityGruul" + ] }, { - "name": "Magma Elemental", - "sprite": "sprites/dungeon/magmaelemental.atlas", + "name": "Magma Fire Elemental", + "sprite": "sprites/magmafireelemental.atlas", "deck": [ "decks/magma_elemental.dck" ], + "ai": "", + "flying": true, "spawnRate": 1, "difficulty": 0.5, "speed": 15, "life": 15, - "flying":true, "rewards": [ { "type": "deckCard", @@ -6651,23 +7041,17 @@ "addMaxCount": 90 } ], - "colors": "R" + "colors": "R", + "questTags": [ + "Aggressive", + "BiomeRed", + "Elemental", + "Golem", + "Inhuman" + ] }, { "name": "Goblin", - "questTags": [ - "Goblin", - "Coward", - "Humanoid", - "Territorial", - "Aggressive", - "Tribal", - "Small", - "Thief", - "Scavenger", - "IdentityRed", - "BiomeRed" - ], "sprite": "sprites/goblin.atlas", "deck": [ "decks/goblin_bad.json" @@ -6696,31 +7080,32 @@ { "type": "card", "count": 1, - "cardTypes": [ - "land" - ], "rarity": [ "common", "uncommon" + ], + "cardTypes": [ + "land" ] } ], - "colors": "R" + "colors": "R", + "questTags": [ + "Goblin", + "Coward", + "Humanoid", + "Territorial", + "Aggressive", + "Tribal", + "Small", + "Thief", + "Scavenger", + "IdentityRed", + "BiomeRed" + ] }, { "name": "Goblin Artificer", - "questTags": [ - "Goblin", - "Coward", - "Humanoid", - "Tribal", - "Territorial", - "Scientist", - "Small", - "Artificer", - "Scavenger", - "IdentityRed" - ], "sprite": "sprites/goblin.atlas", "deck": [ "decks/goblin_artificer.dck" @@ -6748,43 +7133,41 @@ }, { "type": "card", - "count": 1, "probability": 0.5, + "count": 1, "rarity": [ "rare" ] }, { "type": "card", - "count": 1, "probability": 1, - "cardTypes": [ - "land" - ], + "count": 1, "rarity": [ "common", "uncommon" + ], + "cardTypes": [ + "land" ] } ], - "colors": "R" + "colors": "R", + "questTags": [ + "Goblin", + "Coward", + "Humanoid", + "Tribal", + "Territorial", + "Scientist", + "Small", + "Artificer", + "Scavenger", + "IdentityRed" + ] }, { "name": "Goblin Chief", - "questTags": [ - "Goblin", - "Leader", - "Warrior", - "Humanoid", - "Territorial", - "Aggressive", - "Tribal", - "Small", - "IdentityRed", - "IdentityBlack", - "IdentityRakdos", - "BiomeRed" - ], "sprite": "sprites/wolf_rider_2.atlas", "deck": [ "decks/goblin_good.json" @@ -6818,16 +7201,24 @@ ] } ], - "colors": "BR" + "colors": "BR", + "questTags": [ + "Goblin", + "Leader", + "Warrior", + "Humanoid", + "Territorial", + "Aggressive", + "Tribal", + "Small", + "IdentityRed", + "IdentityBlack", + "IdentityRakdos", + "BiomeRed" + ] }, { "name": "Goblin pack", - "questTags": [ - "Goblin", - "Horde", - "Aggressive", - "IdentityRed" - ], "sprite": "sprites/goblin_group.atlas", "deck": [ "decks/goblin_bad.json" @@ -6881,21 +7272,16 @@ }, "teamNumber": 1 }, - "teamNumber": 1 + "teamNumber": 1, + "questTags": [ + "Goblin", + "Horde", + "Aggressive", + "IdentityRed" + ] }, { "name": "Goblin Warrior", - "questTags": [ - "Goblin", - "Warrior", - "Humanoid", - "Territorial", - "Aggressive", - "Tribal", - "Small", - "IdentityRed", - "BiomeRed" - ], "sprite": "sprites/wolf_rider.atlas", "deck": [ "decks/goblin_mid.json" @@ -6929,18 +7315,21 @@ ] } ], - "colors": "R" + "colors": "R", + "questTags": [ + "Goblin", + "Warrior", + "Humanoid", + "Territorial", + "Aggressive", + "Tribal", + "Small", + "IdentityRed", + "BiomeRed" + ] }, { "name": "Golem", - "questTags": [ - "Golem", - "Construct", - "IdentityGreen", - "IdentityWhite", - "IdentitySelesnya", - "BiomeColorless" - ], "sprite": "sprites/golem.atlas", "deck": [ "decks/golem.json" @@ -6978,17 +7367,18 @@ "addMaxCount": 90 } ], - "colors": "GW" + "colors": "GW", + "questTags": [ + "Golem", + "Construct", + "IdentityGreen", + "IdentityWhite", + "IdentitySelesnya", + "BiomeColorless" + ] }, { "name": "Golem that is Generous", - "questTags": [ - "Golem", - "Construct", - "IdentityGreen", - "IdentityWhite", - "IdentitySelesnya" - ], "sprite": "sprites/golem.atlas", "deck": [ "decks/golem.json" @@ -7038,20 +7428,17 @@ "addMaxCount": 90 } ], - "colors": "GW" + "colors": "GW", + "questTags": [ + "Golem", + "Construct", + "IdentityGreen", + "IdentityWhite", + "IdentitySelesnya" + ] }, { "name": "Gorgon", - "questTags": [ - "Humanoid", - "Mythical", - "Loner", - "Stone", - "IdentityBlack", - "IdentityGreen", - "IdentityGolgari", - "BiomeGreen" - ], "sprite": "sprites/gorgone.atlas", "deck": [ "decks/gorgon.dck" @@ -7121,20 +7508,20 @@ "addMaxCount": 90 } ], - "colors": "BG" + "colors": "BG", + "questTags": [ + "Humanoid", + "Mythical", + "Loner", + "Stone", + "IdentityBlack", + "IdentityGreen", + "IdentityGolgari", + "BiomeGreen" + ] }, { "name": "Gorgon 2", - "questTags": [ - "Humanoid", - "Mythical", - "Loner", - "Stone", - "IdentityBlack", - "IdentityGreen", - "IdentityGolgari", - "BiomeGreen" - ], "sprite": "sprites/gorgonen.atlas", "deck": [ "decks/gorgon_2.dck" @@ -7204,19 +7591,20 @@ "addMaxCount": 90 } ], - "colors": "BG" + "colors": "BG", + "questTags": [ + "Humanoid", + "Mythical", + "Loner", + "Stone", + "IdentityBlack", + "IdentityGreen", + "IdentityGolgari", + "BiomeGreen" + ] }, { "name": "Green Beast", - "questTags": [ - "Beast", - "Animal", - "Wild", - "Territorial", - "Nesting", - "IdentityGreen", - "BiomeGreen" - ], "sprite": "sprites/basilisk.atlas", "deck": [ "decks/beast_green.json" @@ -7286,18 +7674,19 @@ "addMaxCount": 90 } ], - "colors": "G" + "colors": "G", + "questTags": [ + "Beast", + "Animal", + "Wild", + "Territorial", + "Nesting", + "IdentityGreen", + "BiomeGreen" + ] }, { "name": "Green Wiz1", - "questTags": [ - "Nature", - "Wizard", - "Human", - "IdentityGreen", - "BiomeGreen", - "BiomeColorless" - ], "sprite": "sprites/green_wiz1.atlas", "deck": [ "decks/green_bad.json" @@ -7367,18 +7756,18 @@ "addMaxCount": 90 } ], - "colors": "G" + "colors": "G", + "questTags": [ + "Nature", + "Wizard", + "Human", + "IdentityGreen", + "BiomeGreen", + "BiomeColorless" + ] }, { "name": "Green Wiz2", - "questTags": [ - "Nature", - "Wizard", - "Human", - "IdentityGreen", - "BiomeGreen", - "BiomeColorless" - ], "sprite": "sprites/green_wiz2.atlas", "deck": [ "decks/trample.dck" @@ -7448,18 +7837,18 @@ "addMaxCount": 90 } ], - "colors": "G" + "colors": "G", + "questTags": [ + "Nature", + "Wizard", + "Human", + "IdentityGreen", + "BiomeGreen", + "BiomeColorless" + ] }, { "name": "Green Wiz3", - "questTags": [ - "Nature", - "Wizard", - "Human", - "IdentityGreen", - "BiomeGreen", - "BiomeColorless" - ], "sprite": "sprites/green_wiz3.atlas", "deck": [ "decks/ramp.dck" @@ -7529,21 +7918,18 @@ "addMaxCount": 90 } ], - "colors": "G" + "colors": "G", + "questTags": [ + "Nature", + "Wizard", + "Human", + "IdentityGreen", + "BiomeGreen", + "BiomeColorless" + ] }, { "name": "Griffin", - "questTags": [ - "Bird", - "Predator", - "Wild", - "Nesting", - "Animal", - "Mythical", - "Flying", - "IdentityWhite", - "BiomeWhite" - ], "sprite": "sprites/griffin.atlas", "deck": [ "decks/griffin.json" @@ -7615,18 +8001,21 @@ "addMaxCount": 90 } ], - "colors": "W" + "colors": "W", + "questTags": [ + "Bird", + "Predator", + "Wild", + "Nesting", + "Animal", + "Mythical", + "Flying", + "IdentityWhite", + "BiomeWhite" + ] }, { "name": "Harpy", - "questTags": [ - "Flying", - "Humanoid", - "Nesting", - "Thief", - "IdentityBlack", - "BiomeBlack" - ], "sprite": "sprites/harpy.atlas", "deck": [ "decks/harpy.dck" @@ -7698,20 +8087,18 @@ "addMaxCount": 90 } ], - "colors": "B" + "colors": "B", + "questTags": [ + "Flying", + "Humanoid", + "Nesting", + "Thief", + "IdentityBlack", + "BiomeBlack" + ] }, { "name": "Harpy 2", - "questTags": [ - "Flying", - "Humanoid", - "Nesting", - "Thief", - "IdentityBlack", - "IdentityBlue", - "IdentityDimir", - "BiomeBlack" - ], "sprite": "sprites/harpy_2.atlas", "deck": [ "decks/harpy_2.dck" @@ -7783,22 +8170,20 @@ "addMaxCount": 90 } ], - "colors": "BU" + "colors": "BU", + "questTags": [ + "Flying", + "Humanoid", + "Nesting", + "Thief", + "IdentityBlack", + "IdentityBlue", + "IdentityDimir", + "BiomeBlack" + ] }, { "name": "Hellhound", - "questTags": [ - "Aberration", - "Animal", - "Predator", - "Unholy", - "Beast", - "Subterranean", - "IdentityBlack", - "IdentityRed", - "IdentityRakdos", - "BiomeRed" - ], "sprite": "sprites/hellhound_2.atlas", "deck": [ "decks/hellhound.dck" @@ -7868,20 +8253,22 @@ "addMaxCount": 90 } ], - "colors": "BR" + "colors": "BR", + "questTags": [ + "Aberration", + "Animal", + "Predator", + "Unholy", + "Beast", + "Subterranean", + "IdentityBlack", + "IdentityRed", + "IdentityRakdos", + "BiomeRed" + ] }, { "name": "High Elf", - "questTags": [ - "Elf", - "Nature", - "Wizard", - "Territorial", - "Mystic", - "IdentityGreen", - "IdentityBlack", - "BiomeGreen" - ], "sprite": "sprites/druid_2.atlas", "deck": [ "decks/elf_good.json" @@ -7915,21 +8302,20 @@ ] } ], - "colors": "BG" + "colors": "BG", + "questTags": [ + "Elf", + "Nature", + "Wizard", + "Territorial", + "Mystic", + "IdentityGreen", + "IdentityBlack", + "BiomeGreen" + ] }, { "name": "High Vampire", - "questTags": [ - "Undead", - "Vampire", - "Unholy", - "Necromancer", - "Flying", - "Leader", - "Nocturnal", - "IdentityBlack", - "BiomeBlack" - ], "sprite": "sprites/vampire_2.atlas", "deck": [ "decks/vampire.json" @@ -8001,19 +8387,21 @@ "addMaxCount": 90 } ], - "colors": "B" + "colors": "B", + "questTags": [ + "Undead", + "Vampire", + "Unholy", + "Necromancer", + "Flying", + "Leader", + "Nocturnal", + "IdentityBlack", + "BiomeBlack" + ] }, { "name": "Horror", - "questTags": [ - "Aberration", - "Inhuman", - "IdentityBlue", - "IdentityBlack", - "IdentityDimir", - "BiomeBlue", - "BiomeBlack" - ], "sprite": "sprites/leech_2.atlas", "deck": [ "decks/horror.dck" @@ -8084,19 +8472,19 @@ "addMaxCount": 90 } ], - "colors": "BU" + "colors": "BU", + "questTags": [ + "Aberration", + "Inhuman", + "IdentityBlue", + "IdentityBlack", + "IdentityDimir", + "BiomeBlue", + "BiomeBlack" + ] }, { "name": "Horse", - "questTags": [ - "Animal", - "Domesticated", - "Farm", - "Prey", - "IdentityGreen", - "IdentityWhite", - "IdentitySelesnya" - ], "sprite": "sprites/dungeon/horse.atlas", "deck": [ "decks/horse.dck" @@ -8107,7 +8495,7 @@ "scale": 0.5, "life": 14, "rewards": [ - { + { "type": "deckCard", "probability": 1, "count": 2, @@ -8140,19 +8528,19 @@ ] } ], - "colors": "GW" + "colors": "GW", + "questTags": [ + "Animal", + "Domesticated", + "Farm", + "Prey", + "IdentityGreen", + "IdentityWhite", + "IdentitySelesnya" + ] }, { "name": "Horseman", - "questTags": [ - "Human", - "Soldier", - "Mounted", - "IdentityBlue", - "IdentityWhite", - "IdentityAzorius", - "BiomeWhite" - ], "sprite": "sprites/cavalier_2.atlas", "deck": [ "decks/horsemanship.dck" @@ -8186,19 +8574,19 @@ ] } ], - "colors": "UW" + "colors": "UW", + "questTags": [ + "Human", + "Soldier", + "Mounted", + "IdentityBlue", + "IdentityWhite", + "IdentityAzorius", + "BiomeWhite" + ] }, { "name": "Human", - "questTags": [ - "Human", - "Warrior", - "IdentityWhite", - "IdentityBlack", - "IdentityRed", - "IdentityMardu", - "BiomeWhite" - ], "sprite": "sprites/pikeman.atlas", "deck": [ "decks/human_bad.json" @@ -8232,18 +8620,19 @@ ] } ], - "colors": "BRW" + "colors": "BRW", + "questTags": [ + "Human", + "Warrior", + "IdentityWhite", + "IdentityBlack", + "IdentityRed", + "IdentityMardu", + "BiomeWhite" + ] }, { "name": "Human elite", - "questTags": [ - "Human", - "Soldier", - "Wandering", - "Leader", - "IdentityWhite", - "BiomeWhite" - ], "sprite": "sprites/legionite.atlas", "deck": [ "decks/human_good.json" @@ -8277,19 +8666,18 @@ ] } ], - "colors": "W" + "colors": "W", + "questTags": [ + "Human", + "Soldier", + "Wandering", + "Leader", + "IdentityWhite", + "BiomeWhite" + ] }, { "name": "Human guard", - "questTags": [ - "Human", - "Territorial", - "Warrior", - "IdentityWhite", - "IdentityBlack", - "IdentityOrzhov", - "BiomeWhite" - ], "sprite": "sprites/swordsman.atlas", "deck": [ "decks/human_mid.json" @@ -8323,18 +8711,19 @@ ] } ], - "colors": "BW" + "colors": "BW", + "questTags": [ + "Human", + "Territorial", + "Warrior", + "IdentityWhite", + "IdentityBlack", + "IdentityOrzhov", + "BiomeWhite" + ] }, { "name": "Hydra", - "questTags": [ - "Wurm", - "Mythical", - "Giant", - "Aberration", - "IdentityGreen", - "BiomeGreen" - ], "sprite": "sprites/hydra.atlas", "deck": [ "decks/hydra.json" @@ -8368,18 +8757,18 @@ ] } ], - "colors": "G" + "colors": "G", + "questTags": [ + "Wurm", + "Mythical", + "Giant", + "Aberration", + "IdentityGreen", + "BiomeGreen" + ] }, { "name": "Illusionist", - "questTags": [ - "Human", - "Wizard", - "Illusionist", - "Scientist", - "IdentityBlue", - "BiomeBlue" - ], "sprite": "sprites/blue_wiz2.atlas", "deck": [ "decks/illusion.dck" @@ -8417,34 +8806,26 @@ ] } ], - "colors": "U" + "colors": "U", + "questTags": [ + "Human", + "Wizard", + "Illusionist", + "Scientist", + "IdentityBlue", + "BiomeBlue" + ] }, { "name": "Insect", - "questTags": [ - "Insect", - "Animal", - "Wild", - "Nesting", - "Swarming", - "Flying", - "Tiny", - "IdentityWhite", - "IdentityBlack", - "IdentityGreen", - "IdentityAbzan", - "BiomeColorless", - "BiomeWhite", - "BiomeBlack" - ], - "sprite": "sprites/dungeon/dragonfly.atlas", + "sprite": "sprites/dragonfly.atlas", "deck": [ "decks/insect.dck" ], + "flying": true, "spawnRate": 1, "difficulty": 0.1, "speed": 30, - "flying": true, "scale": 0.5, "life": 14, "rewards": [ @@ -8477,20 +8858,26 @@ ] } ], - "colors": "WBG" + "colors": "WBG", + "questTags": [ + "Insect", + "Animal", + "Wild", + "Nesting", + "Swarming", + "Flying", + "Tiny", + "IdentityWhite", + "IdentityBlack", + "IdentityGreen", + "IdentityAbzan", + "BiomeColorless", + "BiomeWhite", + "BiomeBlack" + ] }, { "name": "Immersturm Demon", - "questTags": [ - "Demon", - "Humanoid", - "Unholy", - "Fire", - "IdentityBlack", - "IdentityRed", - "IdentityRakdos", - "BiomeRed" - ], "sprite": "sprites/devil_2.atlas", "deck": [ "decks/immersturm_demon.dck" @@ -8560,32 +8947,32 @@ "addMaxCount": 90 } ], - "colors": "BR" + "colors": "BR", + "questTags": [ + "Demon", + "Humanoid", + "Unholy", + "Fire", + "IdentityBlack", + "IdentityRed", + "IdentityRakdos", + "BiomeRed" + ] }, { "name": "Jackal Warrior", - "questTags": [ - "Humanoid", - "Warrior", - "Aggressive", - "IdentityRed", - "IdentityGreen", - "IdentityGruul", - "BiomeRed" - ], - "sprite": "sprites/dungeon/jackalwarrior.atlas", - "scale": 0.5, + "sprite": "sprites/jackalwarrior.atlas", "deck": [ "decks/jackal.dck" ], "ai": "", - "flying": false, "spawnRate": 0.3, "difficulty": 0.1, "speed": 20, + "scale": 0.5, "life": 11, "rewards": [ - { + { "type": "deckCard", "probability": 1, "count": 2, @@ -8617,63 +9004,63 @@ "count": 50, "addMaxCount": 100 } - ] + ], + "questTags": [ + "Humanoid", + "Warrior", + "Aggressive", + "IdentityRed", + "IdentityGreen", + "IdentityGruul", + "BiomeRed" + ] }, { "name": "Jace", - "questTags": [ - "Boss", - "Jace", - "Planeswalker", - "Illusionist", - "IdentityBlue", - "IdentityWhite", - "IdentityAzorius" - ], - "sprite": "sprites/dungeon/jace.atlas", + "sprite": "sprites/boss/jace.atlas", "deck": [ "decks/miniboss/jace.dck" ], "boss": true, "spawnRate": 1, - "scale": 0.5, "difficulty": 0.1, "speed": 30, + "scale": 0.5, "life": 40, "rewards": [ { "type": "card", - "probability": 0.50, + "probability": 0.5, "count": 1, "cardName": "Jace, the Mind Sculptor" }, { "type": "card", - "probability": 0.50, + "probability": 0.5, "count": 1, "cardName": "Jace, the Perfected Mind" }, { "type": "card", - "probability": 0.50, + "probability": 0.5, "count": 1, "cardName": "Jace's Defeat" }, { "type": "card", - "probability": 0.50, + "probability": 0.5, "count": 1, "cardName": "Treasure Cruise" }, { "type": "card", - "probability": 0.50, + "probability": 0.5, "count": 1, "cardName": "Castaway's Despair" }, { "type": "card", - "probability": 0.50, + "probability": 0.5, "count": 1, "cardName": "Counterspell" }, @@ -8690,19 +9077,20 @@ "itemName": "Jace's Signature Hoodie" } ], - "colors": "UW" + "colors": "UW", + "questTags": [ + "Boss", + "Jace", + "Planeswalker", + "Illusionist", + "IdentityBlue", + "IdentityWhite", + "IdentityAzorius" + ] }, { "name": "Jellyfish", - "questTags": [ - "Swimming", - "Animal", - "Territorial", - "Water", - "IdentityBlue", - "BiomeBlue" - ], - "sprite": "sprites/dungeon/jellyfish.atlas", + "sprite": "sprites/jellyfish.atlas", "deck": [ "decks/jellyfish.dck" ], @@ -8714,7 +9102,7 @@ "scale": 0.75, "life": 10, "rewards": [ - { + { "type": "deckCard", "probability": 1, "count": 2, @@ -8750,26 +9138,18 @@ "Land" ] } + ], + "questTags": [ + "Swimming", + "Animal", + "Territorial", + "Water", + "IdentityBlue", + "BiomeBlue" ] }, { "name": "Kavu", - "questTags": [ - "Kavu", - "Animal", - "Beast", - "Wild", - "Nature", - "Nesting", - "Territorial", - "Tribal", - "IdentityGreen", - "IdentityWhite", - "IdentityRed", - "IdentityNaya", - "BiomeGreen", - "BiomeRed" - ], "sprite": "sprites/kavu.atlas", "deck": [ "decks/kavu.dck" @@ -8839,21 +9219,26 @@ "addMaxCount": 90 } ], - "colors": "RGW" + "colors": "RGW", + "questTags": [ + "Kavu", + "Animal", + "Beast", + "Wild", + "Nature", + "Nesting", + "Territorial", + "Tribal", + "IdentityGreen", + "IdentityWhite", + "IdentityRed", + "IdentityNaya", + "BiomeGreen", + "BiomeRed" + ] }, { "name": "Khan", - "questTags": [ - "Mounted", - "Human", - "Warrior", - "Aggressive", - "IdentityBlack", - "IdentityRed", - "IdentityWhite", - "IdentityMardu", - "BiomeRed" - ], "sprite": "sprites/cavalier.atlas", "deck": [ "decks/mardu.dck" @@ -8923,33 +9308,31 @@ "addMaxCount": 90 } ], - "colors": "BRW" + "colors": "BRW", + "questTags": [ + "Mounted", + "Human", + "Warrior", + "Aggressive", + "IdentityBlack", + "IdentityRed", + "IdentityWhite", + "IdentityMardu", + "BiomeRed" + ] }, -{ +{ "name": "Kiora", - "questTags": [ - "Planeswalker", - "Kiora", - "Boss", - "Merfolk", - "Wizard", - "Swimming", - "Water", - "IdentityGreen", - "IdentityBlue", - "IdentitySimic" - ], - "sprite": "sprites/dungeon/kiora.atlas", - "scale": 0.35, + "sprite": "sprites/boss/kiora.atlas", "deck": [ "decks/miniboss/kiora.dck" ], - "boss": true, "ai": "", - "flying": false, + "boss": true, "spawnRate": 1, "difficulty": 0.8, "speed": 31, + "scale": 0.35, "life": 40, "rewards": [ { @@ -8971,43 +9354,43 @@ }, { "type": "card", - "probability": 0.50, + "probability": 0.5, "count": 1, "cardName": "Bident of Thassa" }, { "type": "card", - "probability": 0.50, + "probability": 0.5, "count": 1, "cardName": "Kiora, the Tide's Fury" }, { "type": "card", - "probability": 0.50, + "probability": 0.5, "count": 1, "cardName": "Kiora, the Crashing Wave" }, { "type": "card", - "probability": 0.50, + "probability": 0.5, "count": 1, "cardName": "Kiora Bests the Sea God" }, { "type": "card", - "probability": 0.50, + "probability": 0.5, "count": 1, "cardName": "Kiora, Behemoth Beckoner" }, { "type": "card", - "probability": 0.50, + "probability": 0.5, "count": 1, "cardName": "Kiora, Master of the Depths" }, { "type": "card", - "probability": 0.50, + "probability": 0.5, "count": 4, "cardName": "Kiora's Follower" }, @@ -9018,17 +9401,22 @@ "itemName": "Kiora's Bident" } ], - "colors": "UG" + "colors": "UG", + "questTags": [ + "Planeswalker", + "Kiora", + "Boss", + "Merfolk", + "Wizard", + "Swimming", + "Water", + "IdentityGreen", + "IdentityBlue", + "IdentitySimic" + ] }, { "name": "Knight", - "questTags": [ - "Human", - "Knight", - "Warrior", - "IdentityWhite", - "BiomeWhite" - ], "sprite": "sprites/paladin.atlas", "deck": [ "decks/knight.json" @@ -9062,35 +9450,29 @@ ] } ], - "colors": "W" + "colors": "W", + "questTags": [ + "Human", + "Knight", + "Warrior", + "IdentityWhite", + "BiomeWhite" + ] }, { "name": "Kobold", - "questTags": [ - "Kobold", - "Coward", - "Sneaky", - "Small", - "Humanoid", - "Thief", - "IdentityRed", - "IdentityBlack", - "IdentityRakdos", - "BiomeRed" - ], - "sprite": "sprites/dungeon/kobold.atlas", + "sprite": "sprites/kobold.atlas", "deck": [ "decks/kobold.dck" ], "ai": "", - "flying": false, "spawnRate": 1, "difficulty": 0.1, "speed": 31, "scale": 0.75, "life": 12, "rewards": [ - { + { "type": "deckCard", "probability": 1, "count": 2, @@ -9127,20 +9509,22 @@ ] } ], - "colors": "RB" + "colors": "RB", + "questTags": [ + "Kobold", + "Coward", + "Sneaky", + "Small", + "Humanoid", + "Thief", + "IdentityRed", + "IdentityBlack", + "IdentityRakdos", + "BiomeRed" + ] }, { "name": "Kor Warrior", - "questTags": [ - "Humanoid", - "Warrior", - "Kor", - "Tribal", - "IdentityRed", - "IdentityWhite", - "IdentityBoros", - "BiomeWhite" - ], "sprite": "sprites/mineguard.atlas", "deck": [ "decks/kor_warrior.dck" @@ -9149,8 +9533,8 @@ "difficulty": 0.1, "speed": 30, "life": 15, - "rewards":[ - { + "rewards": [ + { "type": "deckCard", "probability": 1, "count": 2, @@ -9183,18 +9567,20 @@ ] } ], - "colors": "RW" + "colors": "RW", + "questTags": [ + "Humanoid", + "Warrior", + "Kor", + "Tribal", + "IdentityRed", + "IdentityWhite", + "IdentityBoros", + "BiomeWhite" + ] }, { "name": "Lich", - "questTags": [ - "Lich", - "Undead", - "Necromancer", - "Unholy", - "IdentityBlack", - "BiomeBlack" - ], "sprite": "sprites/lich_2.atlas", "deck": [ "decks/lich.dck" @@ -9264,18 +9650,18 @@ "addMaxCount": 90 } ], - "colors": "B" + "colors": "B", + "questTags": [ + "Lich", + "Undead", + "Necromancer", + "Unholy", + "IdentityBlack", + "BiomeBlack" + ] }, { "name": "Lathliss", - "questTags": [ - "IdentityRed", - "Flying", - "Dragon", - "Huge", - "Boss", - "Lathliss" - ], "sprite": "sprites/boss/lathiss.atlas", "deck": [ "decks/boss/lathliss.dck" @@ -9308,23 +9694,25 @@ "equipment": [ "Mox Ruby" ], - "colors": "R" + "colors": "R", + "questTags": [ + "IdentityRed", + "Flying", + "Dragon", + "Huge", + "Boss", + "Lathliss" + ] }, { "name": "Lightning Elemental", - "questTags": [ - "Elemental", - "Lightning", - "Inhuman", - "IdentityRed" - ], "sprite": "sprites/lightningelemental.atlas", "deck": [ "decks/lightning_elemental.dck" ], + "flying": true, "spawnRate": 1, "difficulty": 0.1, - "flying": true, "speed": 32, "life": 20, "rewards": [ @@ -9396,7 +9784,8 @@ "probability": 0.3, "count": 1, "rarity": [ - "uncommon","rare" + "uncommon", + "rare" ], "cardTypes": [ "Land" @@ -9410,17 +9799,16 @@ "addMaxCount": 90 } ], - "colors": "R" + "colors": "R", + "questTags": [ + "Elemental", + "Lightning", + "Inhuman", + "IdentityRed" + ] }, { "name": "Lorthos", - "questTags": [ - "Boss", - "Water", - "Octopus", - "IdentityBlue", - "Lorthos" - ], "sprite": "sprites/boss/lorthos.atlas", "deck": [ "decks/boss/lorthos.dck" @@ -9451,26 +9839,26 @@ "equipment": [ "Mox Sapphire" ], - "colors": "U" + "colors": "U", + "questTags": [ + "Boss", + "Water", + "Octopus", + "IdentityBlue", + "Lorthos" + ] }, { "name": "Magma Elemental", - "questTags": [ - "Humanoid", - "Fire", - "Elemental", - "Subterranean", - "IdentityRed" - ], "sprite": "sprites/magmaelemental.atlas", "deck": [ "decks/magma_elemental.dck" ], + "flying": true, "spawnRate": 1, "difficulty": 0.1, "speed": 24, "life": 25, - "flying": true, "rewards": [ { "type": "deckCard", @@ -9540,7 +9928,8 @@ "probability": 0.3, "count": 1, "rarity": [ - "uncommon","rare" + "uncommon", + "rare" ], "cardTypes": [ "Land" @@ -9554,19 +9943,17 @@ "addMaxCount": 90 } ], - "colors": "R" -},{ + "colors": "R", + "questTags": [ + "Humanoid", + "Fire", + "Elemental", + "Subterranean", + "IdentityRed" + ] +}, +{ "name": "Merfolk", - "questTags": [ - "Merfolk", - "Humanoid", - "Swimming", - "Tribal", - "Territorial", - "Water", - "IdentityBlue", - "BiomeBlue" - ], "sprite": "sprites/waterelemental.atlas", "deck": [ "decks/merfolk_bad.json" @@ -9600,21 +9987,20 @@ ] } ], - "colors": "U" + "colors": "U", + "questTags": [ + "Merfolk", + "Humanoid", + "Swimming", + "Tribal", + "Territorial", + "Water", + "IdentityBlue", + "BiomeBlue" + ] }, { "name": "Merfolk Avatar", - "questTags": [ - "Elemental", - "Merfolk", - "Tribal", - "Water", - "Humanoid", - "IdentityGreen", - "IdentityBlue", - "IdentitySimic", - "BiomeBlue" - ], "sprite": "sprites/iceelemental.atlas", "deck": [ "decks/merfolk_good.json" @@ -9650,20 +10036,21 @@ ] } ], - "colors": "GU" + "colors": "GU", + "questTags": [ + "Elemental", + "Merfolk", + "Tribal", + "Water", + "Humanoid", + "IdentityGreen", + "IdentityBlue", + "IdentitySimic", + "BiomeBlue" + ] }, { - "name": "Merfolk Fighter", "questTags": [ - "Merfolk", - "Humanoid", - "Swimming", - "Territorial", - "Tribal", - "IdentityGreen", - "IdentityBlue", - "IdentitySimic", - "BiomeBlue" - ], + "name": "Merfolk Fighter", "sprite": "sprites/merfolk.atlas", "deck": [ "decks/merfolk_lords.dck" @@ -9707,23 +10094,21 @@ ] } ], - "colors": "GU" + "colors": "GU", + "questTags": [ + "Merfolk", + "Humanoid", + "Swimming", + "Territorial", + "Tribal", + "IdentityGreen", + "IdentityBlue", + "IdentitySimic", + "BiomeBlue" + ] }, { "name": "Merfolk Lord", - "questTags": [ - "Merfolk", - "Humanoid", - "Tribal", - "Territorial", - "Water", - "Swimming", - "Leader", - "IdentityGreen", - "IdentityBlue", - "IdentitySimic", - "BiomeBlue" - ], "sprite": "sprites/merfolk_lord.atlas", "deck": [ "decks/merfolk_lord2.dck" @@ -9767,21 +10152,23 @@ ] } ], - "colors": "GU" + "colors": "GU", + "questTags": [ + "Merfolk", + "Humanoid", + "Tribal", + "Territorial", + "Water", + "Swimming", + "Leader", + "IdentityGreen", + "IdentityBlue", + "IdentitySimic", + "BiomeBlue" + ] }, { "name": "Merfolk Soldier", - "questTags": [ - "Merfolk", - "Humanoid", - "Tribal", - "Water", - "Swimming", - "Soldier", - "Territorial", - "IdentityBlue", - "BiomeBlue" - ], "sprite": "sprites/mermaid.atlas", "deck": [ "decks/merfolk_v_goblins.dck" @@ -9815,21 +10202,21 @@ ] } ], - "colors": "U" + "colors": "U", + "questTags": [ + "Merfolk", + "Humanoid", + "Tribal", + "Water", + "Swimming", + "Soldier", + "Territorial", + "IdentityBlue", + "BiomeBlue" + ] }, { "name": "Merfolk warrior", - "questTags": [ - "Merfolk", - "Humanoid", - "Water", - "Swimming", - "Territorial", - "Tribal", - "Warrior", - "IdentityBlue", - "BiomeBlue" - ], "sprite": "sprites/airelemental.atlas", "deck": [ "decks/merfolk_mid.json" @@ -9865,20 +10252,21 @@ ] } ], - "colors": "U" + "colors": "U", + "questTags": [ + "Merfolk", + "Humanoid", + "Water", + "Swimming", + "Territorial", + "Tribal", + "Warrior", + "IdentityBlue", + "BiomeBlue" + ] }, { "name": "Mimic", - "questTags": [ - "Mimic", - "Sneaky", - "Ambush", - "Predator", - "Inhuman", - "IdentityBlack", - "IdentityBlue", - "IdentityDimir" - ], "sprite": "sprites/mimic.atlas", "deck": [ "decks/mimic.dck" @@ -9948,23 +10336,20 @@ "addMaxCount": 90 } ], - "colors": "BU" + "colors": "BU", + "questTags": [ + "Mimic", + "Sneaky", + "Ambush", + "Predator", + "Inhuman", + "IdentityBlack", + "IdentityBlue", + "IdentityDimir" + ] }, { "name": "Mindclaw Shaman", - "questTags": [ - "Viashino", - "Humanoid", - "Shaman", - "Tribal", - "Wizard", - "Leader", - "IdentityRed", - "IdentityBlack", - "IdentityRakdos", - "BiomeRed", - "BiomeBlack" - ], "sprite": "sprites/dreamwalker.atlas", "deck": [ "decks/mindclaw_shaman.dck" @@ -10035,19 +10420,23 @@ "addMaxCount": 90 } ], - "colors": "BR" + "colors": "BR", + "questTags": [ + "Viashino", + "Humanoid", + "Shaman", + "Tribal", + "Wizard", + "Leader", + "IdentityRed", + "IdentityBlack", + "IdentityRakdos", + "BiomeRed", + "BiomeBlack" + ] }, { "name": "Minotaur", - "questTags": [ - "Minotaur", - "Humanoid", - "Aggressive", - "Tribal", - "Territorial", - "IdentityRed", - "BiomeRed" - ], "sprite": "sprites/minotaur.atlas", "deck": [ "decks/minotaur.json" @@ -10117,22 +10506,19 @@ "addMaxCount": 90 } ], - "colors": "R" + "colors": "R", + "questTags": [ + "Minotaur", + "Humanoid", + "Aggressive", + "Tribal", + "Territorial", + "IdentityRed", + "BiomeRed" + ] }, { "name": "Minotaur Flayer", - "questTags": [ - "Territorial", - "Tribal", - "Minotaur", - "Warrior", - "Aggressive", - "Humanoid", - "IdentityBlack", - "IdentityRed", - "IdentityRakdos", - "BiomeRed" - ], "sprite": "sprites/warden_2.atlas", "deck": [ "decks/minotaur.dck" @@ -10202,26 +10588,31 @@ "addMaxCount": 90 } ], - "colors": "BR" + "colors": "BR", + "questTags": [ + "Territorial", + "Tribal", + "Minotaur", + "Warrior", + "Aggressive", + "Humanoid", + "IdentityBlack", + "IdentityRed", + "IdentityRakdos", + "BiomeRed" + ] }, { "name": "Monk", - "questTags": [ - "Human", - "Mystic", - "Passive", - "IdentityWhite", - "BiomeWhite" - ], "sprite": "sprites/monk.atlas", "deck": [ "decks/angel.json", "decks/monk.json" ], + "randomizeDeck": true, "spawnRate": 1, "difficulty": 0.1, "speed": 24, - "randomizeDeck": true, "life": 10, "rewards": [ { @@ -10284,33 +10675,29 @@ "addMaxCount": 90 } ], - "colors": "W" + "colors": "W", + "questTags": [ + "Human", + "Mystic", + "Passive", + "IdentityWhite", + "BiomeWhite" + ] }, { - "name": "Mummy","questTags": [ - "Undead", - "Humanoid", - "Loner", - "Territorial", - "IdentityWhite", - "IdentityBlack", - "IdentityOrzhov", - "BiomeColorless", - "BiomeBlack" - ], - "sprite": "sprites/dungeon/mummy.atlas", - "scale": 0.70, + "name": "Mummy", + "sprite": "sprites/mummy.atlas", "deck": [ "decks/mummy.dck" ], "ai": "", - "flying": false, "spawnRate": 0.5, "difficulty": 0.1, "speed": 15, + "scale": 0.7, "life": 11, "rewards": [ - { + { "type": "deckCard", "probability": 1, "count": 2, @@ -10342,62 +10729,64 @@ "count": 50, "addMaxCount": 100 } - ] + ], + "questTags": [ + "Undead", + "Humanoid", + "Loner", + "Territorial", + "IdentityWhite", + "IdentityBlack", + "IdentityOrzhov", + "BiomeColorless", + "BiomeBlack" + ] }, { "name": "Nahiri", - "questTags": [ - "Planeswalker", - "Kor", - "Stone", - "Boss", - "IdentityRed", - "IdentityWhite", - "IdentityBoros" - ], - "sprite": "sprites/dungeon/nahiri.atlas", + "sprite": "sprites/boss/nahiri.atlas", "deck": [ "decks/miniboss/nahiri.dck" ], "spawnRate": 1, - "scale": 0.5, "difficulty": 0.1, "speed": 30, + "scale": 0.5, "life": 40, "rewards": [ { "type": "card", - "probability": 0.50, + "probability": 0.5, "count": 1, "cardName": "Nahiri, Heir of the Ancients" }, { "type": "card", - "probability": 0.50, + "probability": 0.5, "count": 1, "cardName": "Embercleave" }, { "type": "card", - "probability": 0.50, + "probability": 0.5, "count": 1, "cardName": "Skullclamp" }, { "type": "card", - "probability": 0.50, + "probability": 0.5, "count": 1, "cardName": "Lightning Bolt" }, { "type": "card", - "probability": 0.50, + "probability": 0.5, "count": 1, "cardName": "Wheel of Fortune" }, { "type": "card", - "probability": 0.50, + "probability": 0.5, "count": 1, "cardName": "Sword of Fire and Ice" }, @@ -10414,29 +10803,30 @@ "itemName": "Nahiri's Armory" } ], - "colors": "RW" + "colors": "RW", + "questTags": [ + "Planeswalker", + "Kor", + "Stone", + "Boss", + "IdentityRed", + "IdentityWhite", + "IdentityBoros" + ] }, -{ +{ "name": "Necromancer", - "questTags": [ - "Necromancer", - "Unholy", - "Wizard", - "Human", - "IdentityBlack" - ], "sprite": "sprites/black_wiz2.atlas", "deck": [ "decks/reanimator.dck" ], "ai": "", - "flying": false, "spawnRate": 1, "difficulty": 0.1, "speed": 31, "life": 20, "rewards": [ - { + { "type": "deckCard", "probability": 1, "count": 3, @@ -10469,34 +10859,29 @@ "addMaxCount": 100 } ], - "colors": "B" + "colors": "B", + "questTags": [ + "Necromancer", + "Unholy", + "Wizard", + "Human", + "IdentityBlack" + ] }, { "name": "Octopus", - "questTags": [ - "Water", - "Swimming", - "Predator", - "Ambush", - "Beast", - "Wild", - "Octopus", - "IdentityBlue", - "BiomeBlue" - ], - "sprite": "sprites/dungeon/octopus.atlas", + "sprite": "sprites/octopus.atlas", "deck": [ "decks/octopus.dck" ], "ai": "", - "flying": false, "spawnRate": 1, "difficulty": 0.1, "speed": 15, "scale": 0.75, "life": 10, "rewards": [ - { + { "type": "deckCard", "probability": 1, "count": 2, @@ -10532,37 +10917,33 @@ "Land" ] } + ], + "questTags": [ + "Water", + "Swimming", + "Predator", + "Ambush", + "Beast", + "Wild", + "Octopus", + "IdentityBlue", + "BiomeBlue" ] }, { "name": "Ooze", - "questTags": [ - "Aberration", - "Ambush", - "Nature", - "Nesting", - "Predator", - "Ooze", - "Subterranean", - "IdentityBlue", - "IdentityGreen", - "IdentitySimic", - "BiomeGreen", - "BiomeColorless" - ], - "sprite": "sprites/dungeon/ooze.atlas", - "scale": 0.6, + "sprite": "sprites/ooze.atlas", "deck": [ "decks/ooze.json" ], "ai": "", - "flying": false, "spawnRate": 1, "difficulty": 0.1, "speed": 15, + "scale": 0.6, "life": 12, "rewards": [ - { + { "type": "deckCard", "probability": 1, "count": 2, @@ -10599,24 +10980,25 @@ ] } ], - "colors": "UG" + "colors": "UG", + "questTags": [ + "Aberration", + "Ambush", + "Nature", + "Nesting", + "Predator", + "Ooze", + "Subterranean", + "IdentityBlue", + "IdentityGreen", + "IdentitySimic", + "BiomeGreen", + "BiomeColorless" + ] }, { "name": "Ooze Boss", - "questTags": [ - "Leader", - "Ooze", - "Aberration", - "Ambush", - "Nature", - "Nesting", - "Subterranean", - "IdentityGreen", - "IdentityBlack", - "IdentityGolgari" - ], - "sprite": "sprites/dungeon/oozeboss.atlas", - "scale": 0.5, + "sprite": "sprites/boss/oozeboss.atlas", "deck": [ "decks/miniboss/ooze_boss.dck" ], @@ -10624,6 +11006,7 @@ "spawnRate": 1, "difficulty": 0.1, "speed": 23, + "scale": 0.5, "life": 30, "rewards": [ { @@ -10644,7 +11027,7 @@ "count": 1, "cardName": "Experiment Kraj" }, - { + { "type": "card", "probability": 0.5, "count": 1, @@ -10678,37 +11061,32 @@ "type": "card", "probability": 0.5, "count": 1, - "cardName": "Rampant Growth" + "cardName": "Rampant Growth" }, { "type": "card", "probability": 0.5, "count": 1, "cardName": "Cultivate" - } + } ], - "colors": "GB" + "colors": "GB", + "questTags": [ + "Leader", + "Ooze", + "Aberration", + "Ambush", + "Nature", + "Nesting", + "Subterranean", + "IdentityGreen", + "IdentityBlack", + "IdentityGolgari" + ] }, { "name": "Owl", - "questTags": [ - "Bird", - "Animal", - "Domesticated", - "Flying", - "Nature", - "Wild", - "Nocturnal", - "Small", - "Predator", - "IdentityBlack", - "IdentityBlue", - "IdentityDimir", - "BiomeGreen", - "BiomeWhite", - "BiomeBlue" - ], - "sprite": "sprites/dungeon/owl.atlas", + "sprite": "sprites/owl.atlas", "deck": [ "decks/owl.dck" ], @@ -10720,7 +11098,7 @@ "scale": 0.75, "life": 10, "rewards": [ - { + { "type": "deckCard", "probability": 1, "count": 2, @@ -10756,28 +11134,32 @@ "Land" ] } + ], + "questTags": [ + "Bird", + "Animal", + "Domesticated", + "Flying", + "Nature", + "Wild", + "Nocturnal", + "Small", + "Predator", + "IdentityBlack", + "IdentityBlue", + "IdentityDimir", + "BiomeGreen", + "BiomeWhite", + "BiomeBlue" ] }, { - "name": "Pirate", "questTags": [ - "Aggressive", - "Human", - "Warrior", - "Water", - "Bandit", - "Thief", - "IdentityBlue", - "IdentityRed", - "IdentityIzzet", - "BiomeColorless", - "BiomeBlue" - ], + "name": "Pirate", "sprite": "sprites/pirate.atlas", "deck": [ "decks/pirate.dck" ], "ai": "", - "flying": false, "spawnRate": 1, "difficulty": 0.1, "speed": 24, @@ -10819,7 +11201,7 @@ "count": 30, "addMaxCount": 100 }, - { + { "type": "card", "probability": 0.5, "count": 2, @@ -10827,41 +11209,45 @@ "Red" ] }, - { + { "type": "card", "probability": 0.5, "count": 1, "colors": [ "Blue" ] - } + } ], - "colors": "UR" + "colors": "UR", + "questTags": [ + "Aggressive", + "Human", + "Warrior", + "Water", + "Bandit", + "Thief", + "IdentityBlue", + "IdentityRed", + "IdentityIzzet", + "BiomeColorless", + "BiomeBlue" + ] }, { "name": "Plant", - "questTags": [ - "Nature", - "Territorial", - "Inhuman", - "Prey", - "IdentityGreen", - "BiomeGreen" - ], - "sprite": "sprites/dungeon/plant.atlas", + "sprite": "sprites/plant.atlas", "deck": [ "decks/plant.json", "decks/plant.dck" ], "ai": "", - "flying": false, + "randomizeDeck": true, "spawnRate": 1, "difficulty": 0.1, "speed": 15, "life": 10, - "randomizeDeck": true, "rewards": [ - { + { "type": "deckCard", "probability": 1, "count": 2, @@ -10897,17 +11283,18 @@ "Land" ] } + ], + "questTags": [ + "Nature", + "Territorial", + "Inhuman", + "Prey", + "IdentityGreen", + "BiomeGreen" ] }, { "name": "Orthodoxy Angel", - "questTags": [ - "Phyrexian", - "Angel", - "IdentityWhite", - "IdentityGreen", - "IdentitySelesnya" - ], "sprite": "sprites/phyrexianangel.atlas", "deck": [ "decks/phyrexianangel.json" @@ -10944,7 +11331,7 @@ }, { "type": "deckCard", - "probability": 0.50, + "probability": 0.5, "count": 1, "addMaxCount": 2, "rarity": [ @@ -10976,17 +11363,17 @@ "addMaxCount": 90 } ], - "colors": "WG" + "colors": "WG", + "questTags": [ + "Phyrexian", + "Angel", + "IdentityWhite", + "IdentityGreen", + "IdentitySelesnya" + ] }, { "name": "Orthodoxy Duelist", - "questTags": [ - "Phyrexian", - "Warrior", - "IdentityWhite", - "IdentityBlack", - "IdentityOrzhov" - ], "sprite": "sprites/phyrexianduelist.atlas", "deck": [ "decks/phyrexianduelist.json" @@ -11055,26 +11442,24 @@ "addMaxCount": 90 } ], - "colors": "WB" + "colors": "WB", + "questTags": [ + "Phyrexian", + "Warrior", + "IdentityWhite", + "IdentityBlack", + "IdentityOrzhov" + ] }, { "name": "Phoenix", - "questTags": [ - "Mythical", - "Fire", - "Bird", - "Flying", - "Nesting", - "Loner", - "IdentityRed" - ], "sprite": "sprites/phoenix.atlas", "deck": [ "decks/phoenix.dck" ], + "flying": true, "spawnRate": 1, "difficulty": 0.1, - "flying": true, "speed": 28, "life": 20, "rewards": [ @@ -11146,7 +11531,8 @@ "probability": 0.3, "count": 1, "rarity": [ - "uncommon","rare" + "uncommon", + "rare" ], "cardTypes": [ "Land" @@ -11160,23 +11546,19 @@ "addMaxCount": 90 } ], - "colors": "R" + "colors": "R", + "questTags": [ + "Mythical", + "Fire", + "Bird", + "Flying", + "Nesting", + "Loner", + "IdentityRed" + ] }, { "name": "Rakdos Devil", - "questTags": [ - "Devil", - "Fire", - "Unholy", - "Sneaky", - "Humanoid", - "Thief", - "Subterranean", - "IdentityRed", - "IdentityBlack", - "IdentityRakdos", - "BiomeBlack" - ], "sprite": "sprites/juggler.atlas", "deck": [ "decks/rakdos_devil.dck" @@ -11199,35 +11581,35 @@ "addMaxCount": 95 } ], - "colors": "BR" + "colors": "BR", + "questTags": [ + "Devil", + "Fire", + "Unholy", + "Sneaky", + "Humanoid", + "Thief", + "Subterranean", + "IdentityRed", + "IdentityBlack", + "IdentityRakdos", + "BiomeBlack" + ] }, { "name": "Rat Ninja", - "questTags": [ - "Humanoid", - "Ninja", - "Bandit", - "Rat", - "Sneaky", - "Thief", - "Subterranean", - "Scavenger", - "IdentityBlack", - "BiomeBlack" - ], - "sprite": "sprites/dungeon/humanoidrat.atlas", + "sprite": "sprites/humanoidrat.atlas", "deck": [ "decks/humanoidrat.dck" ], "ai": "", - "flying": false, "spawnRate": 1, "difficulty": 0.1, "speed": 15, "scale": 0.75, "life": 10, "rewards": [ - { + { "type": "deckCard", "probability": 1, "count": 2, @@ -11263,24 +11645,23 @@ "Land" ] } + ], + "questTags": [ + "Humanoid", + "Ninja", + "Bandit", + "Rat", + "Sneaky", + "Thief", + "Subterranean", + "Scavenger", + "IdentityBlack", + "BiomeBlack" ] }, { "name": "Raven", - "questTags": [ - "Bird", - "Flying", - "Animal", - "Wild", - "Domesticated", - "Scavenger", - "IdentityBlack", - "IdentityBlue", - "IdentityDimir", - "BiomeColorless", - "BiomeWhite" - ], - "sprite": "sprites/dungeon/raven.atlas", + "sprite": "sprites/raven.atlas", "deck": [ "decks/raven.dck" ], @@ -11289,10 +11670,10 @@ "spawnRate": 0.5, "difficulty": 0.1, "speed": 20, - "scale":0.70, + "scale": 0.7, "life": 12, "rewards": [ - { + { "type": "deckCard", "probability": 1, "count": 2, @@ -11328,19 +11709,23 @@ "Land" ] } + ], + "questTags": [ + "Bird", + "Flying", + "Animal", + "Wild", + "Domesticated", + "Scavenger", + "IdentityBlack", + "IdentityBlue", + "IdentityDimir", + "BiomeColorless", + "BiomeWhite" ] }, { "name": "Red Beast", - "questTags": [ - "Beast", - "Animal", - "Wild", - "Territorial", - "Nesting", - "IdentityRed", - "BiomeRed" - ], "sprite": "sprites/basilisk_2.atlas", "deck": [ "decks/beast_red.json" @@ -11410,17 +11795,19 @@ "addMaxCount": 90 } ], - "colors": "R" + "colors": "R", + "questTags": [ + "Beast", + "Animal", + "Wild", + "Territorial", + "Nesting", + "IdentityRed", + "BiomeRed" + ] }, { "name": "Reassembling Skeleton", - "questTags": [ - "Undead", - "Skeleton", - "Regenerating", - "IdentityBlack", - "BiomeBlack" - ], "sprite": "sprites/skeleton.atlas", "deck": [ "decks/reassemblingskeleton.dck" @@ -11442,19 +11829,17 @@ "addMaxCount": 32 } ], - "colors": "B" + "colors": "B", + "questTags": [ + "Undead", + "Skeleton", + "Regenerating", + "IdentityBlack", + "BiomeBlack" + ] }, { "name": "Red Wiz1", - "questTags": [ - "Wizard", - "Human", - "Fire", - "Pyromancer", - "IdentityRed", - "BiomeRed", - "BiomeColorless" - ], "sprite": "sprites/enchanter.atlas", "deck": [ "decks/red_bad.json" @@ -11524,19 +11909,19 @@ "addMaxCount": 90 } ], - "colors": "R" + "colors": "R", + "questTags": [ + "Wizard", + "Human", + "Fire", + "Pyromancer", + "IdentityRed", + "BiomeRed", + "BiomeColorless" + ] }, { "name": "Red Wiz2", - "questTags": [ - "Wizard", - "Human", - "Fire", - "Pyromancer", - "IdentityRed", - "BiomeRed", - "BiomeColorless" - ], "sprite": "sprites/red_wiz2.atlas", "deck": [ "decks/haste_burn.dck" @@ -11558,22 +11943,22 @@ "addMaxCount": 200 } ], - "colors": "R" + "colors": "R", + "questTags": [ + "Wizard", + "Human", + "Fire", + "Pyromancer", + "IdentityRed", + "BiomeRed", + "BiomeColorless" + ] }, { "name": "Red Wiz3", - "questTags": [ - "Wizard", - "Human", - "Fire", - "Pyromancer", - "IdentityRed", - "BiomeRed", - "BiomeColorless" - ], "sprite": "sprites/red_wiz3.atlas", "deck": [ - "decks/lava_axe.dck" + "decks/lava_axe.dck" ], "ai": "", "spawnRate": 1, @@ -11593,21 +11978,19 @@ "addMaxCount": 300 } ], - "colors": "R" + "colors": "R", + "questTags": [ + "Wizard", + "Human", + "Fire", + "Pyromancer", + "IdentityRed", + "BiomeRed", + "BiomeColorless" + ] }, { "name": "Rogue", - "questTags": [ - "Bandit", - "Human", - "Sneaky", - "Wandering", - "Thief", - "IdentityBlack", - "IdentityBlue", - "IdentityDimir", - "BiomeBlue" - ], "sprite": "sprites/rogue.atlas", "deck": [ "decks/rogue.json" @@ -11627,20 +12010,110 @@ "addMaxCount": 250 } ], - "colors": "BU" + "colors": "BU", + "questTags": [ + "Bandit", + "Human", + "Sneaky", + "Wandering", + "Thief", + "IdentityBlack", + "IdentityBlue", + "IdentityDimir", + "BiomeBlue" + ] +}, +{ + "name": "Sand Golem", + "sprite": "sprites/dungeon/sandelemental.atlas", + "deck": [ + "decks/sandgolem.dck" + ], + "spawnRate": 1, + "difficulty": 0.1, + "speed": 23, + "life": 12, + "rewards": [ + { + "type": "deckCard", + "probability": 1, + "count": 1, + "addMaxCount": 4 + }, + { + "type": "gold", + "probability": 0.7, + "count": 10, + "addMaxCount": 90 + }, + { + "type": "card", + "probability": 0.5, + "count": 3, + "colors": [ + "White" + ], + "rarity": [ + "Rare" + ] + } + ], + "colors": "W", + "questTags": [ + "Golem", + "Elemental", + "Humanoid", + "IdentityWhite", + "IdentityRed", + "BiomeWhite", + "BiomeRed" + ] +}, +{ + "name": "Sandwurm", + "sprite": "sprites/dungeon/sandwurm.atlas", + "deck": [ + "decks/sandwurm.dck" + ], + "spawnRate": 1, + "difficulty": 0.1, + "speed": 13, + "life": 12, + "rewards": [ + { + "type": "deckCard", + "probability": 1, + "count": 2, + "addMaxCount": 4 + }, + { + "type": "gold", + "probability": 0.7, + "count": 10, + "addMaxCount": 90 + }, + { + "type": "card", + "probability": 0.5, + "count": 3, + "colors": [ + "White" + ], + "rarity": [ + "Rare" + ] + } + ], + "colors": "W", + "questTags": [ + "Wurm", + "Nature", + "Subterranean", + "IdentityGreen" + ] }, { "name": "Satyr", - "questTags": [ - "Humanoid", - "Mythical", - "Sneaky", - "Thief", - "IdentityGreen", - "IdentityRed", - "IdentityGruul", - "BiomeGreen" - ], "sprite": "sprites/satyr.atlas", "deck": [ "decks/satyr.dck" @@ -11710,29 +12183,32 @@ "addMaxCount": 90 } ], - "colors": "GR" + "colors": "GR", + "questTags": [ + "Humanoid", + "Mythical", + "Sneaky", + "Thief", + "IdentityGreen", + "IdentityRed", + "IdentityGruul", + "BiomeGreen" + ] }, { "name": "Scarecrow", - "questTags": [ - "Construct", - "Nature", - "Territorial", - "IdentityBlue", - "BiomeColorless" - ], "sprite": "sprites/dungeon/scarecrow.atlas", "deck": [ "decks/scarecrow.dck" ], + "flying": true, "spawnRate": 1, "difficulty": 0.1, "speed": 15, - "flying": true, "scale": 0.35, "life": 13, "rewards": [ - { + { "type": "deckCard", "probability": 1, "count": 2, @@ -11769,26 +12245,26 @@ ] } ], - "colors": "U" + "colors": "U", + "questTags": [ + "Construct", + "Nature", + "Territorial", + "IdentityBlue", + "BiomeColorless" + ] }, { "name": "Scarecrow Captain", - "questTags": [ - "Construct", - "Nature", - "Territorial", - "Leader", - "IdentityAll" - ], "sprite": "sprites/dungeon/scarecrowcaptain.atlas", "deck": [ "decks/scarecrowcaptain.dck" ], + "flying": true, "spawnRate": 1, "difficulty": 0.1, "speed": 15, - "flying": true, - "scale": 0.40, + "scale": 0.4, "life": 40, "rewards": [ { @@ -11820,7 +12296,7 @@ }, { "type": "card", - "probability": 0.50, + "probability": 0.5, "count": 1, "cardName": "Wickerwing Effigy" }, @@ -11843,37 +12319,29 @@ "itemName": "Giant Scythe" } ], - "colors": "WUBRG" + "colors": "WUBRG", + "questTags": [ + "Construct", + "Nature", + "Territorial", + "Leader", + "IdentityAll" + ] }, { "name": "Scorpion", - "questTags": [ - "Tiny", - "Insect", - "Nature", - "Territorial", - "Predator", - "Ambush", - "IdentityBlack", - "IdentityGreen", - "IdentityGolgari", - "BiomeRed", - "BiomeWhite", - "BiomeBlue" - ], - "sprite": "sprites/dungeon/scorpion.atlas", - "scale": 0.9, + "sprite": "sprites/scorpion.atlas", "deck": [ "decks/scorpion.dck" ], "ai": "", - "flying": false, "spawnRate": 0.8, "difficulty": 0.1, "speed": 15, + "scale": 0.9, "life": 11, "rewards": [ - { + { "type": "deckCard", "probability": 1, "count": 2, @@ -11905,17 +12373,24 @@ "count": 50, "addMaxCount": 100 } - ] + ], + "questTags": [ + "Tiny", + "Insect", + "Nature", + "Territorial", + "Predator", + "Ambush", + "IdentityBlack", + "IdentityGreen", + "IdentityGolgari", + "BiomeRed", + "BiomeWhite", + "BiomeBlue" + ] }, { "name": "Sea Monster", - "questTags": [ - "Water", - "Swimming", - "Inhuman", - "IdentityBlue", - "BiomeBlue" - ], "sprite": "sprites/leech_2.atlas", "deck": [ "decks/sea_monster.dck" @@ -11985,20 +12460,17 @@ "addMaxCount": 90 } ], - "colors": "U" + "colors": "U", + "questTags": [ + "Water", + "Swimming", + "Inhuman", + "IdentityBlue", + "BiomeBlue" + ] }, { "name": "Shaman", - "questTags": [ - "Shaman", - "Nature", - "Wizard", - "Mystic", - "IdentityGreen", - "IdentityRed", - "IdentityGruul", - "BiomeRed" - ], "sprite": "sprites/shaman_2.atlas", "deck": [ "decks/shaman.json" @@ -12068,17 +12540,20 @@ "addMaxCount": 90 } ], - "colors": "GR" + "colors": "GR", + "questTags": [ + "Shaman", + "Nature", + "Wizard", + "Mystic", + "IdentityGreen", + "IdentityRed", + "IdentityGruul", + "BiomeRed" + ] }, { "name": "Skeleton", - "questTags": [ - "Undead", - "Skeleton", - "Regenerating", - "IdentityBlack", - "BiomeBlack" - ], "sprite": "sprites/skeleton.atlas", "deck": [ "decks/skeleton.dck" @@ -12100,18 +12575,17 @@ "addMaxCount": 32 } ], - "colors": "B" + "colors": "B", + "questTags": [ + "Undead", + "Skeleton", + "Regenerating", + "IdentityBlack", + "BiomeBlack" + ] }, { "name": "Skeleton Soldier", - "questTags": [ - "Undead", - "Skeleton", - "Soldier", - "Regenerating", - "IdentityBlack", - "BiomeBlack" - ], "sprite": "sprites/skeleton_2.atlas", "deck": [ "decks/skeleton_2.dck" @@ -12133,33 +12607,31 @@ "addMaxCount": 32 } ], - "colors": "B" + "colors": "B", + "questTags": [ + "Undead", + "Skeleton", + "Soldier", + "Regenerating", + "IdentityBlack", + "BiomeBlack" + ] }, { "name": "Slimefoot", - "questTags": [ - "Fungus", - "Nature", - "Boss", - "Inhuman", - "IdentityBlack", - "IdentityGreen", - "IdentityGolgari" - ], - "sprite": "sprites/dungeon/slimefoot.atlas", - "scale": 0.5, + "sprite": "sprites/boss/slimefoot.atlas", "deck": [ "decks/miniboss/slimefoot.dck" ], - "boss": true, "ai": "", - "flying": false, + "boss": true, "spawnRate": 1, "difficulty": 0.8, "speed": 31, + "scale": 0.5, "life": 40, "rewards": [ - { + { "type": "deckCard", "probability": 1, "count": 1, @@ -12188,7 +12660,7 @@ "count": 1, "cardName": "Slimefoot, Thallid Transplant" }, - { + { "type": "card", "probability": 0.5, "count": 1, @@ -12219,22 +12691,19 @@ "itemName": "Slimefoot's Slimy Staff" } ], - "colors": "BG" + "colors": "BG", + "questTags": [ + "Fungus", + "Nature", + "Boss", + "Inhuman", + "IdentityBlack", + "IdentityGreen", + "IdentityGolgari" + ] }, { "name": "Sliver", - "questTags": [ - "Tribal", - "Inhuman", - "Territorial", - "Subterranean", - "Nesting", - "Swarm", - "IdentityGreen", - "IdentityRed", - "IdentityWhite", - "BiomeColorless" - ], "sprite": "sprites/sliver.atlas", "deck": [ "decks/sliver.json" @@ -12253,32 +12722,34 @@ "count": 150 } ], - "colors": "GRW" + "colors": "GRW", + "questTags": [ + "Tribal", + "Inhuman", + "Territorial", + "Subterranean", + "Nesting", + "Swarm", + "IdentityGreen", + "IdentityRed", + "IdentityWhite", + "BiomeColorless" + ] }, { "name": "Slobad", - "questTags": [ - "Goblin", - "Artificer", - "Wandering", - "Tribal", - "Boss", - "Loner", - "IdentityRed" - ], - "sprite": "sprites/dungeon/slobad.atlas", - "scale": 0.75, + "sprite": "sprites/boss/slobad.atlas", "deck": [ "decks/miniboss/slobad.dck" ], "ai": "", - "flying": false, "spawnRate": 1, "difficulty": 0.8, "speed": 15, + "scale": 0.75, "life": 40, "rewards": [ - { + { "type": "Card", "probability": 1, "count": 1, @@ -12307,7 +12778,7 @@ "count": 1, "cardName": "Slobad, Goblin Tinkerer" }, - { + { "type": "card", "probability": 0.5, "count": 1, @@ -12338,19 +12809,19 @@ "itemName": "Slobad's Iron Boots" } ], - "colors": "R" + "colors": "R", + "questTags": [ + "Goblin", + "Artificer", + "Wandering", + "Tribal", + "Boss", + "Loner", + "IdentityRed" + ] }, { "name": "Sliver Queen", - "questTags": [ - "Sliver", - "Boss", - "Leader", - "Inhuman", - "Territorial", - "Nesting", - "IdentityAll" - ], "sprite": "sprites/boss/sliver_queen.atlas", "deck": [ "decks/boss/sliver_queen.dck" @@ -12381,20 +12852,19 @@ "equipment": [ "Black Lotus" ], - "colors": "BGRUW" + "colors": "BGRUW", + "questTags": [ + "Sliver", + "Boss", + "Leader", + "Inhuman", + "Territorial", + "Nesting", + "IdentityAll" + ] }, { "name": "Snake", - "questTags": [ - "Animal", - "Wild", - "Nature", - "Territorial", - "Predator", - "IdentityGreen", - "IdentityBlue", - "IdentitySimic" - ], "sprite": "sprites/big_snake.atlas", "deck": [ "decks/snake.json" @@ -12464,21 +12934,20 @@ "addMaxCount": 90 } ], - "colors": "GU" + "colors": "GU", + "questTags": [ + "Animal", + "Wild", + "Nature", + "Territorial", + "Predator", + "IdentityGreen", + "IdentityBlue", + "IdentitySimic" + ] }, { "name": "Spider", - "questTags": [ - "Spider", - "Predator", - "Ambush", - "Territorial", - "Wild", - "IdentityBlack", - "IdentityGreen", - "IdentityGolgari", - "BiomeGreen" - ], "sprite": "sprites/spider.atlas", "deck": [ "decks/spider.json" @@ -12548,19 +13017,22 @@ "addMaxCount": 90 } ], - "colors": "BG" + "colors": "BG", + "questTags": [ + "Spider", + "Predator", + "Ambush", + "Territorial", + "Wild", + "IdentityBlack", + "IdentityGreen", + "IdentityGolgari", + "BiomeGreen" + ] }, { "name": "Stray Cat", - "questTags": [ - "Cat", - "Animal", - "Domesticated", - "Prey", - "Small", - "IdentityWhite" - ], - "sprite": "sprites/dungeon/cat.atlas", + "sprite": "sprites/cat.atlas", "deck": [ "decks/straycat.dck" ], @@ -12568,10 +13040,10 @@ "spawnRate": 1, "difficulty": 0.1, "speed": 15, + "scale": 0.8, "life": 10, - "scale":0.80, "rewards": [ - { + { "type": "deckCard", "probability": 1, "count": 2, @@ -12607,24 +13079,19 @@ "Land" ] } + ], + "questTags": [ + "Cat", + "Animal", + "Domesticated", + "Prey", + "Small", + "IdentityWhite" ] }, { "name": "Squirrel", - "questTags": [ - "Animal", - "Sneaky", - "Tiny", - "Prey", - "Nature", - "Territorial", - "Nesting", - "IdentityGreen", - "IdentityBlack", - "IdentityGolgari", - "BiomeGreen" - ], - "sprite": "sprites/dungeon/squirrel.atlas", + "sprite": "sprites/squirrel.atlas", "deck": [ "decks/squirrel.dck" ], @@ -12651,21 +13118,121 @@ "addMaxCount": 90 } ], - "colors": "BG" + "colors": "BG", + "questTags": [ + "Animal", + "Sneaky", + "Tiny", + "Prey", + "Nature", + "Territorial", + "Nesting", + "IdentityGreen", + "IdentityBlack", + "IdentityGolgari", + "BiomeGreen" + ] +}, +{ + "name": "Swamp Troll", + "sprite": "sprites/dungeon/swamptroll.atlas", + "deck": [ + "decks/swamptroll.dck" + ], + "spawnRate": 1, + "difficulty": 0.1, + "speed": 25, + "scale": 0.8, + "life": 35, + "rewards": [ + { + "type": "deckCard", + "probability": 1, + "count": 2, + "addMaxCount": 5 + }, + { + "type": "card", + "probability": 0.5, + "count": 1, + "cardName": "Asceticism" + }, + { + "type": "card", + "probability": 0.5, + "count": 1, + "cardName": "Golgari Grave-Troll" + }, + { + "type": "card", + "probability": 0.5, + "count": 1, + "cardName": "Gyome, Master Chef" + }, + { + "type": "deckCard", + "probability": 0.5, + "count": 1, + "addMaxCount": 2, + "rarity": [ + "uncommon" + ], + "cardTypes": [ + "Creature", + "Artifact", + "Enchantment", + "Instant", + "Sorcery" + ] + }, + { + "type": "deckCard", + "probability": 0.25, + "count": 1, + "addMaxCount": 1, + "rarity": [ + "rare" + ], + "cardTypes": [ + "Creature", + "Artifact", + "Enchantment", + "Instant", + "Sorcery" + ] + }, + { + "type": "deckCard", + "probability": 0.1, + "count": 1, + "rarity": [ + "rare" + ], + "cardTypes": [ + "Land" + ] + }, + { + "type": "gold", + "probability": 0.3, + "count": 10, + "addMaxCount": 90 + } + ], + "colors": "GB", + "questTags": [ + "Giant", + "Humanoid", + "Regenerating", + "Subterranean", + "IdentityGreen", + "IdentityBlack", + "BiomeBlack", + "Leader" + ] }, { "name": "Symbiote", - "questTags": [ - "Inhuman", - "Nature", - "Wild", - "Predator", - "Beast", - "IdentityBlack", - "IdentityBlue", - "IdentityGreen", - "IdentitySultai" - ], "sprite": "sprites/basilisk_3.atlas", "deck": [ "decks/symbiote.dck" @@ -12736,20 +13303,21 @@ "addMaxCount": 90 } ], - "colors": "BUG" + "colors": "BUG", + "questTags": [ + "Inhuman", + "Nature", + "Wild", + "Predator", + "Beast", + "IdentityBlack", + "IdentityBlue", + "IdentityGreen", + "IdentitySultai" + ] }, { "name": "Tarkir Djinn", - "questTags": [ - "Flying", - "Humanoid", - "Elemental", - "Wind", - "IdentityBlue", - "IdentityRed", - "IdentityIzzet", - "BiomeBlue" - ], "sprite": "sprites/djinn_2.atlas", "deck": [ "decks/djinn_tarkir.dck" @@ -12774,31 +13342,29 @@ "addMaxCount": 95 } ], - "colors": "RU" + "colors": "RU", + "questTags": [ + "Flying", + "Humanoid", + "Elemental", + "Wind", + "IdentityBlue", + "IdentityRed", + "IdentityIzzet", + "BiomeBlue" + ] }, -{ +{ "name": "Teferi", - "questTags": [ - "Boss", - "Illusionist", - "Human", - "Wizard", - "Territorial", - "Planeswalker", - "IdentityBlue", - "IdentityWhite", - "IdentityAzorius" - ], - "sprite": "sprites/dungeon/teferi.atlas", - "scale": 0.5, + "sprite": "sprites/boss/teferi.atlas", "deck": [ "decks/miniboss/teferi_boss.dck" ], "ai": "", - "flying": false, "spawnRate": 1, "difficulty": 0.8, "speed": 31, + "scale": 0.5, "life": 25, "rewards": [ { @@ -12813,7 +13379,7 @@ "count": 1, "cardName": "Swords to Plowshares" }, - { + { "type": "card", "probability": 1, "count": 1, @@ -12850,31 +13416,34 @@ "itemName": "Teferi's Staff" } ], - "colors": "WU" + "colors": "WU", + "questTags": [ + "Boss", + "Illusionist", + "Human", + "Wizard", + "Territorial", + "Planeswalker", + "IdentityBlue", + "IdentityWhite", + "IdentityAzorius" + ] }, { "name": "Tibalt", - "questTags": [ - "Sneaky", - "Devil", - "Boss", - "Planeswalker", - "IdentityRed" - ], - "sprite": "sprites/dungeon/tibalt.atlas", - "scale": 0.50, + "sprite": "sprites/boss/tibalt.atlas", "deck": [ "decks/miniboss/tibalt.dck" ], - "boss": true, "ai": "", - "flying": false, + "boss": true, "spawnRate": 1, "difficulty": 0.8, "speed": 31, + "scale": 0.5, "life": 40, "rewards": [ - { + { "type": "card", "probability": 1, "count": 1, @@ -12893,43 +13462,43 @@ }, { "type": "card", - "probability": 0.50, + "probability": 0.5, "count": 1, "cardName": "Valki, God of Lies" }, { "type": "card", - "probability": 0.50, + "probability": 0.5, "count": 1, "cardName": "Tibalt, Wicked Tormentor" }, - { + { "type": "card", - "probability": 0.50, + "probability": 0.5, "count": 1, "cardName": "Mayhem Devil" }, { "type": "card", - "probability": 0.50, + "probability": 0.5, "count": 1, "cardName": "Fiendish Duo" }, { "type": "card", - "probability": 0.50, + "probability": 0.5, "count": 1, "cardName": "Hellrider" }, { "type": "card", - "probability": 0.50, + "probability": 0.5, "count": 1, "cardName": "Badlands" }, - { + { "type": "card", - "probability": 0.50, + "probability": 0.5, "count": 1, "cardName": "Wheel of Fortune" }, @@ -12940,17 +13509,17 @@ "itemName": "Tibalt's Bag of Tricks" } ], - "colors": "R" + "colors": "R", + "questTags": [ + "Sneaky", + "Devil", + "Boss", + "Planeswalker", + "IdentityRed" + ] }, { "name": "Torturer", - "questTags": [ - "Inhuman", - "Devil", - "Flying", - "Aggressive", - "IdentityBlack" - ], "sprite": "sprites/dungeon/torturer.atlas", "deck": [ "decks/torturer.dck" @@ -12958,12 +13527,12 @@ "ai": "", "flying": true, "spawnRate": 1, - "scale":0.5, "difficulty": 0.1, "speed": 20, + "scale": 0.5, "life": 30, "rewards": [ - { + { "type": "deckCard", "probability": 1, "count": 2, @@ -12996,35 +13565,29 @@ ] } ], - "colors": "B" + "colors": "B", + "questTags": [ + "Inhuman", + "Devil", + "Flying", + "Aggressive", + "IdentityBlack" + ] }, { "name": "Turtle", - "questTags": [ - "Passive", - "Territorial", - "Nature", - "Animal", - "Wild", - "Swimming", - "Water", - "Prey", - "IdentityBlue", - "BiomeBlue" - ], - "sprite": "sprites/dungeon/turtle.atlas", + "sprite": "sprites/turtle.atlas", "deck": [ "decks/turtle.json" ], "ai": "", - "flying": false, "spawnRate": 1, "difficulty": 0.1, "speed": 5, - "scale":0.80, + "scale": 0.8, "life": 10, "rewards": [ - { + { "type": "deckCard", "probability": 1, "count": 2, @@ -13061,19 +13624,22 @@ ] } ], - "colors": "U" + "colors": "U", + "questTags": [ + "Passive", + "Territorial", + "Nature", + "Animal", + "Wild", + "Swimming", + "Water", + "Prey", + "IdentityBlue", + "BiomeBlue" + ] }, { "name": "Treefolk", - "questTags": [ - "Humanoid", - "Territorial", - "Nature", - "Passive", - "Giant", - "IdentityGreen", - "BiomeGreen" - ], "sprite": "sprites/treant.atlas", "deck": [ "decks/treefolk.json" @@ -13116,19 +13682,19 @@ "addMaxCount": 90 } ], - "colors": "G" + "colors": "G", + "questTags": [ + "Humanoid", + "Territorial", + "Nature", + "Passive", + "Giant", + "IdentityGreen", + "BiomeGreen" + ] }, { "name": "Treefolk Guardian", - "questTags": [ - "Humanoid", - "Nature", - "Giant", - "Warrior", - "Territorial", - "IdentityGreen", - "BiomeGreen" - ], "sprite": "sprites/treant_2.atlas", "deck": [ "decks/treefolk.dck" @@ -13198,19 +13764,19 @@ "addMaxCount": 90 } ], - "colors": "G" + "colors": "G", + "questTags": [ + "Humanoid", + "Nature", + "Giant", + "Warrior", + "Territorial", + "IdentityGreen", + "BiomeGreen" + ] }, { "name": "Troll", - "questTags": [ - "Giant", - "Humanoid", - "Regenerating", - "Subterranean", - "IdentityGreen", - "IdentityRed", - "BiomeRed" - ], "sprite": "sprites/troll.atlas", "deck": [ "decks/troll.json" @@ -13280,21 +13846,19 @@ "addMaxCount": 90 } ], - "colors": "GR" + "colors": "GR", + "questTags": [ + "Giant", + "Humanoid", + "Regenerating", + "Subterranean", + "IdentityGreen", + "IdentityRed", + "BiomeRed" + ] }, { "name": "Vampire", - "questTags": [ - "Vampire", - "Undead", - "Unholy", - "Flying", - "Humanoid", - "Predator", - "Nocturnal", - "IdentityBlack", - "BiomeBlack" - ], "sprite": "sprites/vampire.atlas", "deck": [ "decks/vampire.dck" @@ -13312,22 +13876,21 @@ "addMaxCount": 8 } ], - "colors": "B" + "colors": "B", + "questTags": [ + "Vampire", + "Undead", + "Unholy", + "Flying", + "Humanoid", + "Predator", + "Nocturnal", + "IdentityBlack", + "BiomeBlack" + ] }, { "name": "Vampire Lord", - "questTags": [ - "Vampire", - "Unholy", - "Undead", - "Flying", - "Predator", - "Leader", - "Nocturnal", - "IdentityBlack", - "IdentityRed", - "BiomeRed" - ], "sprite": "sprites/vampire_3.atlas", "deck": [ "decks/vampire_blood_token_fly.dck" @@ -13345,20 +13908,22 @@ "addMaxCount": 8 } ], - "colors": "BR" + "colors": "BR", + "questTags": [ + "Vampire", + "Unholy", + "Undead", + "Flying", + "Predator", + "Leader", + "Nocturnal", + "IdentityBlack", + "IdentityRed", + "BiomeRed" + ] }, { "name": "Viashino", - "questTags": [ - "Viashino", - "Tribal", - "Humanoid", - "IdentityBlack", - "IdentityGreen", - "IdentityRed", - "IdentityJund", - "BiomeRed" - ], "sprite": "sprites/battler.atlas", "deck": [ "decks/viashino.dck" @@ -13428,23 +13993,20 @@ "addMaxCount": 90 } ], - "colors": "BGR" + "colors": "BGR", + "questTags": [ + "Viashino", + "Tribal", + "Humanoid", + "IdentityBlack", + "IdentityGreen", + "IdentityRed", + "IdentityJund", + "BiomeRed" + ] }, { "name": "Viper", - "questTags": [ - "Animal", - "Snake", - "Wild", - "Territorial", - "Ambush", - "Predator", - "Small", - "IdentityBlack", - "IdentityGreen", - "IdentityGolgari", - "BiomeGreen" - ], "sprite": "sprites/big_snake_2.atlas", "deck": [ "decks/snake.dck" @@ -13514,18 +14076,23 @@ "addMaxCount": 90 } ], - "colors": "BG" -},{ + "colors": "BG", + "questTags": [ + "Animal", + "Snake", + "Wild", + "Territorial", + "Ambush", + "Predator", + "Small", + "IdentityBlack", + "IdentityGreen", + "IdentityGolgari", + "BiomeGreen" + ] +}, +{ "name": "Volcano Elemental", - "questTags": [ - "Fire", - "Elemental", - "Inhuman", - "Subterranean", - "IdentityRed", - "IdentityBlack", - "IdentityRakdos" - ], "sprite": "sprites/volcanoelemental.atlas", "deck": [ "decks/br_elemental.dck" @@ -13603,7 +14170,8 @@ "probability": 0.3, "count": 1, "rarity": [ - "uncommon","rare" + "uncommon", + "rare" ], "cardTypes": [ "Land" @@ -13617,21 +14185,20 @@ "addMaxCount": 90 } ], - "colors": "BR" + "colors": "BR", + "questTags": [ + "Fire", + "Elemental", + "Inhuman", + "Subterranean", + "IdentityRed", + "IdentityBlack", + "IdentityRakdos" + ] }, { "name": "Walking Brain", - "questTags": [ - "Aberration", - "Sneaky", - "Construct", - "Leader", - "Small", - "IdentityBlue", - "BiomeBlue", - "BiomeBlack" - ], - "sprite": "sprites/dungeon/walkingbrain.atlas", + "sprite": "sprites/walkingbrain.atlas", "deck": [ "decks/walkingbrain.dck" ], @@ -13639,10 +14206,10 @@ "spawnRate": 0.3, "difficulty": 0.1, "speed": 15, - "scale":0.75, + "scale": 0.75, "life": 16, "rewards": [ - { + { "type": "deckCard", "probability": 1, "count": 2, @@ -13678,22 +14245,20 @@ "Land" ] } + ], + "questTags": [ + "Aberration", + "Sneaky", + "Construct", + "Leader", + "Small", + "IdentityBlue", + "BiomeBlue", + "BiomeBlack" ] }, { "name": "Wasp", - "questTags": [ - "Tiny", - "Flying", - "Insect", - "Territorial", - "Aggressive", - "Swarm", - "IdentityGreen", - "IdentityRed", - "IdentityBlack", - "IdentityJund" - ], "sprite": "sprites/dungeon/wasp.atlas", "deck": [ "decks/insect.dck" @@ -13705,7 +14270,7 @@ "speed": 15, "life": 10, "rewards": [ - { + { "type": "deckCard", "probability": 1, "count": 2, @@ -13738,25 +14303,22 @@ ] } ], - "colors": "GRB" + "colors": "GRB", + "questTags": [ + "Tiny", + "Flying", + "Insect", + "Territorial", + "Aggressive", + "Swarm", + "IdentityGreen", + "IdentityRed", + "IdentityBlack", + "IdentityJund" + ] }, { "name": "Werewolf", - "questTags": [ - "Nocturnal", - "Animal", - "Humanoid", - "Human", - "Beast", - "Wild", - "Loner", - "Aggressive", - "Territorial", - "IdentityGreen", - "IdentityRed", - "IdentityGruul", - "BiomeGreen" - ], "sprite": "sprites/hellhound.atlas", "deck": [ "decks/werewolf.dck" @@ -13778,18 +14340,25 @@ "addMaxCount": 32 } ], - "colors": "GR" + "colors": "GR", + "questTags": [ + "Nocturnal", + "Animal", + "Humanoid", + "Human", + "Beast", + "Wild", + "Loner", + "Aggressive", + "Territorial", + "IdentityGreen", + "IdentityRed", + "IdentityGruul", + "BiomeGreen" + ] }, { "name": "White Dwarf", - "questTags": [ - "Dwarf", - "Warrior", - "Humanoid", - "Subterranean", - "IdentityWhite", - "BiomeWhite" - ], "sprite": "sprites/dwarf_6.atlas", "deck": [ "decks/white_dwarf.dck" @@ -13812,19 +14381,18 @@ "addMaxCount": 80 } ], - "colors": "W" + "colors": "W", + "questTags": [ + "Dwarf", + "Warrior", + "Humanoid", + "Subterranean", + "IdentityWhite", + "BiomeWhite" + ] }, { "name": "White Wiz1", - "questTags": [ - "Holy", - "Wizard", - "Human", - "Religious", - "IdentityWhite", - "BiomeColorless", - "BiomeWhite" - ], "sprite": "sprites/priest.atlas", "deck": [ "decks/white_bad.json" @@ -13894,20 +14462,19 @@ "addMaxCount": 90 } ], - "colors": "W" + "colors": "W", + "questTags": [ + "Holy", + "Wizard", + "Human", + "Religious", + "IdentityWhite", + "BiomeColorless", + "BiomeWhite" + ] }, { "name": "White Wiz2", - "questTags": [ - "Holy", - "Wizard", - "Human", - "Religious", - "Passive", - "IdentityWhite", - "BiomeColorless", - "BiomeWhite" - ], "sprite": "sprites/white_wiz2.atlas", "deck": [ "decks/basri.dck" @@ -13977,18 +14544,20 @@ "addMaxCount": 90 } ], - "colors": "W" + "colors": "W", + "questTags": [ + "Holy", + "Wizard", + "Human", + "Religious", + "Passive", + "IdentityWhite", + "BiomeColorless", + "BiomeWhite" + ] }, { "name": "White Wiz3", - "questTags": [ - "Holy", - "Wizard", - "Human", - "IdentityWhite", - "BiomeColorless", - "BiomeWhite" - ], "sprite": "sprites/white_wiz3.atlas", "deck": [ "decks/human_soldier_token.dck" @@ -14058,38 +14627,33 @@ "addMaxCount": 90 } ], - "colors": "W" + "colors": "W", + "questTags": [ + "Holy", + "Wizard", + "Human", + "IdentityWhite", + "BiomeColorless", + "BiomeWhite" + ] }, { "name": "Wild Rat", - "questTags": [ - "Subterranean", - "Animal", - "Wild", - "Sneaky", - "Small", - "Scavenger", - "Swarm", - "IdentityBlack", - "BiomeColorless", - "BiomeBlack" - ], - "sprite": "sprites/dungeon/wildrat.atlas", + "sprite": "sprites/wildrat.atlas", "deck": [ "decks/infectrat.dck", "decks/rat.json", "decks/ratswarm.dck" ], "ai": "", - "flying": false, + "randomizeDeck": true, "spawnRate": 1, "difficulty": 0.1, "speed": 15, - "scale":0.8, + "scale": 0.8, "life": 10, - "randomizeDeck": true, "rewards": [ - { + { "type": "deckCard", "probability": 1, "count": 2, @@ -14125,21 +14689,22 @@ "Land" ] } + ], + "questTags": [ + "Subterranean", + "Animal", + "Wild", + "Sneaky", + "Small", + "Scavenger", + "Swarm", + "IdentityBlack", + "BiomeColorless", + "BiomeBlack" ] }, { "name": "Wild-Magic Sorcerer", - "questTags": [ - "Viashino", - "Leader", - "Wizard", - "Humanoid", - "IdentityRed", - "IdentityGreen", - "IdentityGruul", - "BiomeGreen", - "BiomeRed" - ], "sprite": "sprites/dreamwalker_2.atlas", "deck": [ "decks/wild-magic_sorcerer.dck" @@ -14210,17 +14775,21 @@ "addMaxCount": 90 } ], - "colors": "RG" + "colors": "RG", + "questTags": [ + "Viashino", + "Leader", + "Wizard", + "Humanoid", + "IdentityRed", + "IdentityGreen", + "IdentityGruul", + "BiomeGreen", + "BiomeRed" + ] }, { "name": "Wurm", - "questTags": [ - "Wurm", - "Nature", - "Subterranean", - "IdentityGreen", - "BiomeGreen" - ], "sprite": "sprites/wurm.atlas", "deck": [ "decks/wurm.json" @@ -14255,27 +14824,27 @@ ] } ], - "colors": "G" + "colors": "G", + "questTags": [ + "Wurm", + "Nature", + "Subterranean", + "IdentityGreen", + "BiomeGreen" + ] }, { "name": "Vulture", - "questTags": [ - "Scavenger", - "Bird", - "Wild", - "Flying", - "IdentityBlack" - ], "sprite": "sprites/dungeon/vulture.atlas", "deck": [ "decks/vulture.dck" ], "ai": "", "flying": true, - "scale": 0.60, "spawnRate": 1, "difficulty": 0.1, "speed": 25, + "scale": 0.6, "life": 11, "rewards": [ { @@ -14307,17 +14876,17 @@ "addMaxCount": 90 } ], - "colors": "B" + "colors": "B", + "questTags": [ + "Scavenger", + "Bird", + "Wild", + "Flying", + "IdentityBlack" + ] }, { "name": "Water Elemental", - "questTags": [ - "Water", - "Elemental", - "Humanoid", - "IdentityBlue", - "BiomeBlue" - ], "sprite": "sprites/waterelemental.atlas", "deck": [ "decks/water_elemental.dck" @@ -14351,21 +14920,75 @@ ] } ], - "colors": "U" + "colors": "U", + "questTags": [ + "Water", + "Elemental", + "Humanoid", + "IdentityBlue", + "BiomeBlue" + ] +}, +{ + "name": "Witch", + "sprite": "sprites/dungeon/witch.atlas", + "deck": [ + "decks/witch.dck" + ], + "spawnRate": 1, + "difficulty": 0.1, + "speed": 12, + "scale": 0.75, + "life": 13, + "rewards": [ + { + "type": "deckCard", + "probability": 1, + "count": 2, + "addMaxCount": 8, + "rarity": [ + "common", + "uncommon" + ] + }, + { + "type": "card", + "probability": 0.5, + "count": 1, + "rarity": [ + "Rare" + ] + }, + { + "type": "gold", + "probability": 1, + "count": 50, + "addMaxCount": 100 + }, + { + "type": "card", + "probability": 1, + "count": 1, + "rarity": [ + "uncommon", + "common" + ], + "cardTypes": [ + "Land" + ] + } + ], + "colors": "B", + "questTags": [ + "Mystic", + "Unholy", + "Wizard", + "Human", + "IdentityBlack" + ] }, { "name": "Wounded Sliver", - "questTags": [ - "Sliver", - "Boss", - "Inhuman", - "Territorial", - "Nesting", - "IdentityGreen", - "IdentityRed", - "IdentityWhite", - "IdentityNaya" - ], "sprite": "sprites/boss/wsliver.atlas", "deck": [ "decks/miniboss/sliver_shandalar.dck" @@ -14386,33 +15009,34 @@ "addMaxCount": 150 } ], - "colors": "GRW" + "colors": "GRW", + "questTags": [ + "Sliver", + "Boss", + "Inhuman", + "Territorial", + "Nesting", + "IdentityGreen", + "IdentityRed", + "IdentityWhite", + "IdentityNaya" + ] }, { "name": "Xira", - "questTags": [ - "Insect", - "Boss", - "Flying", - "IdentityBlack", - "IdentityGreen", - "IdentityRed", - "IdentityJund" - ], - "sprite": "sprites/dungeon/xira.atlas", - "scale": 0.50, + "sprite": "sprites/boss/xira.atlas", "deck": [ "decks/miniboss/xira.dck" ], - "boss": true, "ai": "", - "flying": false, + "boss": true, "spawnRate": 1, "difficulty": 0.8, "speed": 31, + "scale": 0.5, "life": 50, "rewards": [ - { + { "type": "deckCard", "probability": 1, "count": 4, @@ -14437,37 +15061,37 @@ }, { "type": "card", - "probability": 0.50, + "probability": 0.5, "count": 1, "cardName": "Zask, Skittering Swarmlord" }, - { + { "type": "card", - "probability": 0.50, + "probability": 0.5, "count": 1, "cardName": "Mazirek, Kraul Death Priest" }, { "type": "card", - "probability": 0.50, + "probability": 0.5, "count": 1, "cardName": "Scute Swarm" }, { "type": "card", - "probability": 0.50, + "probability": 0.5, "count": 1, "cardName": "Fatal Push" }, { "type": "card", - "probability": 0.50, + "probability": 0.5, "count": 1, "cardName": "Grist, the Hunger Tide" }, { "type": "card", - "probability": 0.50, + "probability": 0.5, "count": 1, "cardName": "Doom Blade" }, @@ -14478,20 +15102,19 @@ "itemName": "Xira's Fancy Hat" } ], - "colors": "BGR" + "colors": "BGR", + "questTags": [ + "Insect", + "Boss", + "Flying", + "IdentityBlack", + "IdentityGreen", + "IdentityRed", + "IdentityJund" + ] }, { "name": "Yeti", - "questTags": [ - "Loner", - "Giant", - "Humanoid", - "IdentityRed", - "IdentityGreen", - "IdentityBlue", - "IdentityTemur", - "BiomeRed" - ], "sprite": "sprites/yeti_2.atlas", "deck": [ "decks/yeti.dck" @@ -14561,17 +15184,20 @@ "addMaxCount": 90 } ], - "colors": "GRU" + "colors": "GRU", + "questTags": [ + "Loner", + "Giant", + "Humanoid", + "IdentityRed", + "IdentityGreen", + "IdentityBlue", + "IdentityTemur", + "BiomeRed" + ] }, { "name": "Zombie", - "questTags": [ - "Undead", - "Zombie", - "Humanoid", - "IdentityBlack", - "BiomeBlack" - ], "sprite": "sprites/zombie.atlas", "deck": [ "decks/zombie_bad.json" @@ -14605,18 +15231,17 @@ ] } ], - "colors": "B" + "colors": "B", + "questTags": [ + "Undead", + "Zombie", + "Humanoid", + "IdentityBlack", + "BiomeBlack" + ] }, { "name": "Zombie Lord", - "questTags": [ - "Undead", - "Zombie", - "Humanoid", - "Leader", - "IdentityBlack", - "BiomeBlack" - ], "sprite": "sprites/lich.atlas", "deck": [ "decks/zombie_good.json" @@ -14650,6 +15275,14 @@ ] } ], - "colors": "B" + "colors": "B", + "questTags": [ + "Undead", + "Zombie", + "Humanoid", + "Leader", + "IdentityBlack", + "BiomeBlack" + ] } -] +] \ No newline at end of file diff --git a/forge-gui/res/adventure/Shandalar/world/green.json b/forge-gui/res/adventure/Shandalar/world/green.json index 1cf54047777..049692f29b5 100644 --- a/forge-gui/res/adventure/Shandalar/world/green.json +++ b/forge-gui/res/adventure/Shandalar/world/green.json @@ -105,6 +105,7 @@ "CaveG8", "CaveG9", "CaveGB", + "CopperhostForest", "Slime Cave", "Garruk Forest", "Scarecrow Farm" diff --git a/forge-gui/res/adventure/Shandalar/world/items.json b/forge-gui/res/adventure/Shandalar/world/items.json index 93040574945..215553de851 100644 --- a/forge-gui/res/adventure/Shandalar/world/items.json +++ b/forge-gui/res/adventure/Shandalar/world/items.json @@ -217,6 +217,16 @@ "iconName": "StrangeKey", "questItem": true }, + { + "name": "Grolnoks Key", + "iconName": "StrangeKey", + "questItem": true + }, + { + "name": "Rusty Old Key", + "iconName": "StrangeKey", + "questItem": true + }, { "name": "Illusionist's Key", "iconName": "StrangeKey", @@ -869,7 +879,8 @@ }, { "name": "Colorless rune", - "usableOnWorldMap":true, + "usableOnWorldMap":true, + "equipmentSlot": "Ability2", "description": "Teleports you to the center", "commandOnUse": "teleport to poi Spawn", "iconName": "ColorlessRune", @@ -880,6 +891,7 @@ { "name": "White rune", "usableOnWorldMap":true, + "equipmentSlot": "Ability2", "effect": { "name": "" }, @@ -893,6 +905,7 @@ { "name": "Black rune", "usableOnWorldMap":true, + "equipmentSlot": "Ability2", "effect": { "name": "" }, @@ -906,6 +919,7 @@ { "name": "Blue rune", "usableOnWorldMap":true, + "equipmentSlot": "Ability2", "effect": { "name": "" }, @@ -919,6 +933,7 @@ { "name": "Red rune", "usableOnWorldMap":true, + "equipmentSlot": "Ability2", "effect": { "name": "" }, @@ -932,6 +947,7 @@ { "name": "Green rune", "usableOnWorldMap":true, + "equipmentSlot": "Ability2", "effect": { "name": "" }, @@ -944,6 +960,7 @@ }, { "name": "White Staff", + "equipmentSlot": "Ability1", "usableOnWorldMap":true, "usableInPoi":true, "effect": { @@ -958,6 +975,7 @@ }, { "name": "Black Staff", + "equipmentSlot": "Ability1", "usableOnWorldMap":true, "usableInPoi":false, "effect": { @@ -973,6 +991,7 @@ { "name": "Blue Staff", "usableOnWorldMap":true, + "equipmentSlot": "Ability1", "effect": { "name": "" }, @@ -986,6 +1005,7 @@ { "name": "Red Staff", "usableOnWorldMap":true, + "equipmentSlot": "Ability1", "effect": { "name": "" }, @@ -998,6 +1018,7 @@ }, { "name": "Green Staff", + "equipmentSlot": "Ability1", "usableOnWorldMap":true, "usableInPoi":true, "effect": { diff --git a/forge-gui/res/adventure/Shandalar/world/points_of_interest.json b/forge-gui/res/adventure/Shandalar/world/points_of_interest.json index ae8c0e16cd1..74ae8ead9b0 100644 --- a/forge-gui/res/adventure/Shandalar/world/points_of_interest.json +++ b/forge-gui/res/adventure/Shandalar/world/points_of_interest.json @@ -261,9 +261,7 @@ "radiusFactor": 0.8, "questTags": [ "Cave", - "Hostile", - "BiomeBlack", - "Sidequest" + "BiomeBlack" ] }, { @@ -395,10 +393,8 @@ "map": "maps/map/cave_2.tmx", "radiusFactor": 0.8, "questTags": [ - "Hostile", "Cave", - "BiomeColorless", - "Sidequest" + "BiomeColorless" ] }, { @@ -591,9 +587,7 @@ "radiusFactor": 0.8, "questTags": [ "Cave", - "Hostile", - "BiomeGreen", - "Sidequest" + "BiomeGreen" ] }, { @@ -710,10 +704,8 @@ "map": "maps/map/cave_2.tmx", "radiusFactor": 0.8, "questTags": [ - "Hostile", "Cave", - "BiomeBlue", - "Sidequest" + "BiomeBlue" ] }, { @@ -800,10 +792,8 @@ "map": "maps/map/cave_2.tmx", "radiusFactor": 0.8, "questTags": [ - "Hostile", "Cave", - "BiomeRed", - "Sidequest" + "BiomeRed" ] }, { @@ -1040,10 +1030,8 @@ "map": "maps/map/cave_2.tmx", "radiusFactor": 0.8, "questTags": [ - "Hostile", "Cave", - "BiomeWhite", - "Sidequest" + "BiomeWhite" ] }, { @@ -1208,6 +1196,15 @@ "Hostile" ] }, +{ + "name": "DrossOutpost", + "type": "dungeon", + "count": 2, + "radiusFactor": 0.8, + "spriteAtlas": "maps/tileset/Phyrexian_Buildings.atlas", + "sprite": "DrossOutpost", + "map": "maps/map/phyrexian_black1.tmx" +}, { "name": "ElfTown", "type": "dungeon", diff --git a/forge-gui/res/adventure/Shandalar/world/quests.json b/forge-gui/res/adventure/Shandalar/world/quests.json index dab705aa855..86bf383b5ec 100644 --- a/forge-gui/res/adventure/Shandalar/world/quests.json +++ b/forge-gui/res/adventure/Shandalar/world/quests.json @@ -2167,9 +2167,11 @@ }, { "name": "You decide that the invasive thoughts, if you can call them that, are unwelcomed, and you take a step back.", - "text": "The thoughts urgently follow you for a moment. '{COLOR=red}KKKKiiiiill...{ENDCOLOR}' But as you take another step back, the words vanish from your mind." + "text": "The thoughts urgently follow you for a moment. '{COLOR=red}KKKKiiiiill...{ENDCOLOR}' But as you take another step back, the words vanish from your mind.", "options": [ - {"name": "With no delay at all, you walk away. Far away. (Decline Quest)"} + { + "name": "With no delay at all, you walk away. Far away. (Decline Quest)" + } ] } ] @@ -3690,7 +3692,7 @@ ] }, { - "name": "\"A fight with a dragon? No thanks. I'll be leaving now.\" (Decline Quest)", + "name": "\"A fight with a dragon? No thanks. I'll be leaving now.\" (Decline Quest)" } ] }, @@ -4470,9 +4472,11 @@ }, { "name": "A short note is written in red ink.", - "text": "\"{COLOR=red}Have fangs, will travel{ENDCOLOR}\"." + "text": "\"{COLOR=red}Have fangs, will travel{ENDCOLOR}\".", "options": [ - {"name": "You suddenly realize that isn't ink, and step away. (Decline Quest)"} + { + "name": "You suddenly realize that isn't ink, and step away. (Decline Quest)" + } ] } ] @@ -4741,7 +4745,6 @@ "options": [ { "action": [ - { "grantRewards": [ { @@ -4855,7 +4858,6 @@ "failureDialog": {}, "POIToken": "" } - ] }, { @@ -4969,7 +4971,6 @@ { "name": "You don't especially feel like volunteering to take on a $(enemy_1) today. (Decline Quest)" } - ] }, { diff --git a/forge-gui/res/cardsfolder/b/barbarian_guides.txt b/forge-gui/res/cardsfolder/b/barbarian_guides.txt index d101bafcedb..eb19d12d5e6 100644 --- a/forge-gui/res/cardsfolder/b/barbarian_guides.txt +++ b/forge-gui/res/cardsfolder/b/barbarian_guides.txt @@ -2,7 +2,7 @@ Name:Barbarian Guides ManaCost:2 R Types:Creature Human Barbarian PT:1/2 -A:AB$ ChooseType | Cost$ 2 R T | Defined$ You | Type$ Land | SubAbility$ DBPump | StackDescription$ SpellDescription | SpellDescription$ Choose a land type. Target creature you control gains snow landwalk of the chosen type until end of turn. Return that creature to its owner's hand at the beginning of the next end step. +A:AB$ ChooseType | Cost$ 2 R T | Defined$ You | Type$ Land | SubAbility$ DBPump | StackDescription$ SpellDescription | SpellDescription$ Choose a land type. Target creature you control gains snow landwalk of the chosen type until end of turn. SVar:DBPump:DB$ Pump | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Select target creature you control | KW$ Snow ChosenTypewalk | DefinedKW$ ChosenType | StackDescription$ None | SubAbility$ DBDelTrig SVar:DBDelTrig:DB$ DelayedTrigger | Mode$ Phase | Phase$ End of Turn | RememberObjects$ ParentTarget | Execute$ TrigReturn | SpellDescription$ Return that creature to its owner's hand at the beginning of the next end step. SVar:TrigReturn:DB$ ChangeZone | Defined$ DelayTriggerRememberedLKI | Origin$ Battlefield | Destination$ Hand diff --git a/forge-gui/res/cardsfolder/b/blessed_defiance.txt b/forge-gui/res/cardsfolder/b/blessed_defiance.txt index d9be9e82196..353cd88ce97 100644 --- a/forge-gui/res/cardsfolder/b/blessed_defiance.txt +++ b/forge-gui/res/cardsfolder/b/blessed_defiance.txt @@ -1,8 +1,8 @@ Name:Blessed Defiance ManaCost:W Types:Instant -A:SP$ Pump | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Select target creature you control | NumAtt$ 2 | KW$ Lifelink | SubAbility$ DBDelayedTrigger | SpellDescription$ Target creature you control gets +2/+0 and gains lifelink until end of turn. When that creature dies this turn, create a 1/1 white Spirit creature token with flying. -SVar:DBDelayedTrigger:DB$ DelayedTrigger | Mode$ ChangesZone | RememberObjects$ Targeted | ValidCard$ Card.IsTriggerRemembered | Origin$ Battlefield | Destination$ Graveyard | ThisTurn$ True | Execute$ DBToken | TriggerDescription$ When that creature dies this turn, create a 1/1 white Spirit creature token with flying. +A:SP$ Pump | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Select target creature you control | NumAtt$ 2 | KW$ Lifelink | SubAbility$ DBDelayedTrigger | SpellDescription$ Target creature you control gets +2/+0 and gains lifelink until end of turn. +SVar:DBDelayedTrigger:DB$ DelayedTrigger | Mode$ ChangesZone | RememberObjects$ Targeted | ValidCard$ Card.IsTriggerRemembered | Origin$ Battlefield | Destination$ Graveyard | ThisTurn$ True | Execute$ DBToken | SpellDescription$ When that creature dies this turn, create a 1/1 white Spirit creature token with flying. SVar:DBToken:DB$ Token | TokenScript$ w_1_1_spirit_flying DeckHas:Ability$Token Oracle:Target creature you control gets +2/+0 and gains lifelink until end of turn. When that creature dies this turn, create a 1/1 white Spirit creature token with flying. diff --git a/forge-gui/res/cardsfolder/b/burn_away.txt b/forge-gui/res/cardsfolder/b/burn_away.txt index 6e79090c1c6..98276d29137 100644 --- a/forge-gui/res/cardsfolder/b/burn_away.txt +++ b/forge-gui/res/cardsfolder/b/burn_away.txt @@ -1,7 +1,7 @@ Name:Burn Away ManaCost:4 R Types:Instant -A:SP$ DealDamage | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumDmg$ 6 | SubAbility$ DBDelayedTrigger | SpellDescription$ CARDNAME deals 6 damage to target creature. When that creature dies this turn, exile all cards from its controller's graveyard. -SVar:DBDelayedTrigger:DB$ DelayedTrigger | Mode$ ChangesZone | RememberObjects$ Targeted | ValidCard$ Card.IsTriggerRemembered | Origin$ Battlefield | Destination$ Graveyard | ThisTurn$ True | Execute$ TrigExile | TriggerDescription$ When that creature dies this turn, exile all cards from its controller's graveyard. +A:SP$ DealDamage | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumDmg$ 6 | SubAbility$ DBDelayedTrigger | SpellDescription$ CARDNAME deals 6 damage to target creature. +SVar:DBDelayedTrigger:DB$ DelayedTrigger | Mode$ ChangesZone | RememberObjects$ Targeted | ValidCard$ Card.IsTriggerRemembered | Origin$ Battlefield | Destination$ Graveyard | ThisTurn$ True | Execute$ TrigExile | SpellDescription$ When that creature dies this turn, exile all cards from its controller's graveyard. SVar:TrigExile:DB$ ChangeZoneAll | Defined$ TriggeredCardController | Origin$ Graveyard | Destination$ Exile Oracle:Burn Away deals 6 damage to target creature. When that creature dies this turn, exile all cards from its controller's graveyard. diff --git a/forge-gui/res/cardsfolder/c/calibrated_blast.txt b/forge-gui/res/cardsfolder/c/calibrated_blast.txt index 14630b8f383..f51d1528c6e 100644 --- a/forge-gui/res/cardsfolder/c/calibrated_blast.txt +++ b/forge-gui/res/cardsfolder/c/calibrated_blast.txt @@ -1,8 +1,8 @@ Name:Calibrated Blast ManaCost:2 R Types:Instant -A:SP$ DigUntil | Valid$ Card.nonLand | ValidDescription$ nonland | RevealedDestination$ Library | RevealedLibraryPosition$ -1 | RevealRandomOrder$ True | RememberFound$ True | SubAbility$ DBImmediateTrigger | StackDescription$ Reveal cards from the top of your library until you reveal a nonland card. Put the revealed cards on the bottom of your library in a random order. | SpellDescription$ Reveal cards from the top of your library until you reveal a nonland card. Put the revealed cards on the bottom of your library in a random order. When you reveal a nonland card this way, CARDNAME deals damage equal to that card's mana value to any target. -SVar:DBImmediateTrigger:DB$ ImmediateTrigger | ConditionDefined$ Remembered | ConditionPresent$ Card.nonLand | Execute$ TrigDamage | TriggerDescription$ When you reveal a nonland card this way, CARDNAME deals damage equal to that card's mana value to any target. +A:SP$ DigUntil | Valid$ Card.nonLand | ValidDescription$ nonland | RevealedDestination$ Library | RevealedLibraryPosition$ -1 | RevealRandomOrder$ True | RememberFound$ True | SubAbility$ DBImmediateTrigger | StackDescription$ Reveal cards from the top of your library until you reveal a nonland card. Put the revealed cards on the bottom of your library in a random order. | SpellDescription$ Reveal cards from the top of your library until you reveal a nonland card. Put the revealed cards on the bottom of your library in a random order. +SVar:DBImmediateTrigger:DB$ ImmediateTrigger | ConditionDefined$ Remembered | ConditionPresent$ Card.nonLand | Execute$ TrigDamage | SpellDescription$ When you reveal a nonland card this way, CARDNAME deals damage equal to that card's mana value to any target. SVar:TrigDamage:DB$ DealDamage | ValidTgts$ Creature,Player,Planeswalker | TgtPrompt$ Select any target | NumDmg$ X | SubAbility$ DBCleanup SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True SVar:X:Remembered$CardManaCost diff --git a/forge-gui/res/cardsfolder/c/calim_djinn_emperor.txt b/forge-gui/res/cardsfolder/c/calim_djinn_emperor.txt index fd431dfc28f..55e4ed124ae 100644 --- a/forge-gui/res/cardsfolder/c/calim_djinn_emperor.txt +++ b/forge-gui/res/cardsfolder/c/calim_djinn_emperor.txt @@ -4,7 +4,7 @@ Types:Legendary Creature Djinn Noble PT:5/6 K:Flying K:Ward:2 -A:AB$ Tap | Cost$ 1 U Discard<1/CARDNAME> | ActivationZone$ Hand | ValidTgts$ Permanent.nonLand | TgtPrompt$ Select target nonland permanent | TargetMin$ 0 | TargetMax$ 1 | SubAbility$ DBDraw | SpellDescription$ Tap up to one target nonland permanent. Draw a card. Then you may exile two other cards named Calim, Djinn Emperor from your graveyard. When you do, return CARDNAME from your graveyard to the battlefield tapped. +A:AB$ Tap | Cost$ 1 U Discard<1/CARDNAME> | ActivationZone$ Hand | ValidTgts$ Permanent.nonLand | TgtPrompt$ Select target nonland permanent | TargetMin$ 0 | TargetMax$ 1 | SubAbility$ DBDraw | SpellDescription$ Tap up to one target nonland permanent. Draw a card. Then you may exile two other cards named Calim, Djinn Emperor from your graveyard. SVar:DBDraw:DB$ Draw | Defined$ You | SubAbility$ CalimChooseTwo SVar:CalimChooseTwo:DB$ ChooseCard | ConditionCheckSVar$ X | ConditionSVarCompare$ GE2 | Defined$ You | Amount$ 2 | ChoiceTitle$ Choose two other cards named Calim, Djinn Emperor from your graveyard | Choices$ Card.namedCalim; Djinn Emperor+YouOwn+Other | ChoiceZone$ Graveyard | RememberChosen$ True | SubAbility$ CalimExile SVar:CalimExile:DB$ ChangeZoneAll | ConditionCheckSVar$ CalimNumRemembered | ConditionSVarCompare$ EQ2 | Origin$ Graveyard | Destination$ Exile | ChangeType$ Card.IsRemembered | RememberChanged$ True | ForgetOtherRemembered$ True | SubAbility$ TrigImmediateTrig diff --git a/forge-gui/res/cardsfolder/c/cryptek.txt b/forge-gui/res/cardsfolder/c/cryptek.txt index 05715ec2e48..ad640fa5fb0 100644 --- a/forge-gui/res/cardsfolder/c/cryptek.txt +++ b/forge-gui/res/cardsfolder/c/cryptek.txt @@ -2,8 +2,8 @@ Name:Cryptek ManaCost:3 B Types:Artifact Creature Necron Wizard PT:3/3 -A:AB$ ChooseCard | Cost$ 1 B T | ValidTgts$ Artifact.Creature+YouCtrl+Other | TgtPrompt$ Choose another target artifact creature you control | SubAbility$ DBDelayedTrigger | StackDescription$ When {c:Targeted} dies this turn, return that card to the battlefield tapped. | SpellDescription$ Choose another target artifact creature you control. When that creature dies this turn, return it to the battlefield tapped under your control. -SVar:DBDelayedTrigger:DB$ DelayedTrigger | Mode$ ChangesZone | RememberObjects$ Targeted | ValidCard$ Card.IsTriggerRemembered | Origin$ Battlefield | Destination$ Graveyard | ThisTurn$ True | Execute$ TrigReturn | StackDescription$ None | TriggerDescription$ When that creature dies this turn, return it to the battlefield tapped under your control. +A:AB$ ChooseCard | Cost$ 1 B T | ValidTgts$ Artifact.Creature+YouCtrl+Other | TgtPrompt$ Choose another target artifact creature you control | SubAbility$ DBDelayedTrigger | StackDescription$ When {c:Targeted} dies this turn, return that card to the battlefield tapped. | SpellDescription$ Choose another target artifact creature you control. +SVar:DBDelayedTrigger:DB$ DelayedTrigger | Mode$ ChangesZone | RememberObjects$ Targeted | ValidCard$ Card.IsTriggerRemembered | Origin$ Battlefield | Destination$ Graveyard | ThisTurn$ True | Execute$ TrigReturn | StackDescription$ None | SpellDescription$ When that creature dies this turn, return it to the battlefield tapped under your control. SVar:TrigReturn:DB$ ChangeZone | Origin$ Graveyard | Destination$ Battlefield | Defined$ TriggeredCard | Tapped$ True | GainControl$ True DeckHints:Ability$Graveyard Oracle:{1}{B}, {T}: Choose another target artifact creature you control. When that creature dies this turn, return it to the battlefield tapped under your control. \ No newline at end of file diff --git a/forge-gui/res/cardsfolder/d/dwarven_sea_clan.txt b/forge-gui/res/cardsfolder/d/dwarven_sea_clan.txt index 43a54649cf4..2eed8908417 100644 --- a/forge-gui/res/cardsfolder/d/dwarven_sea_clan.txt +++ b/forge-gui/res/cardsfolder/d/dwarven_sea_clan.txt @@ -3,7 +3,7 @@ ManaCost:2 R Types:Creature Dwarf PT:1/1 A:AB$ Pump | Cost$ T | IsCurse$ True | ValidTgts$ Creature.ControllerControlsIsland+attacking,Creature.ControllerControlsIsland+blocking | TgtPrompt$ Select target attacking or blocking creature whose controller controls an Island | ActivationPhases$ BeginCombat->Combat Damage | ActivationFirstCombat$ True | ConditionDefined$ Targeted | ConditionPresent$ Creature.ControllerControlsIsland | ConditionCompare$ GE1 | SubAbility$ DBDelayTrig | StackDescription$ SpellDescription | SpellDescription$ Choose target attacking or blocking creature whose controller controls an Island. CARDNAME deals 2 damage to that creature at end of combat. Activate only before the end of combat step. -SVar:DBDelayTrig:DB$ DelayedTrigger | Mode$ Phase | Phase$ EndCombat | Execute$ TrigDmg | SpellDescription$ CARDNAME deals 2 damage to that creature at end of combat. | RememberObjects$ ParentTarget | SubAbility$ DBCleanup +SVar:DBDelayTrig:DB$ DelayedTrigger | Mode$ Phase | Phase$ EndCombat | Execute$ TrigDmg | TriggerDescription$ CARDNAME deals 2 damage to that creature at end of combat. | RememberObjects$ ParentTarget | SubAbility$ DBCleanup SVar:TrigDmg:DB$ DealDamage | NumDmg$ 2 | Defined$ DelayTriggerRemembered SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True SVar:NeedsToPlay:Island.OppCtrl diff --git a/forge-gui/res/cardsfolder/f/fiery_encore.txt b/forge-gui/res/cardsfolder/f/fiery_encore.txt index b5af7af9b14..bc8926e8bc6 100644 --- a/forge-gui/res/cardsfolder/f/fiery_encore.txt +++ b/forge-gui/res/cardsfolder/f/fiery_encore.txt @@ -1,9 +1,9 @@ Name:Fiery Encore ManaCost:4 R Types:Sorcery -A:SP$ Discard | Cost$ 4 R | Mode$ TgtChoose | SubAbility$ DBDraw | RememberDiscarded$ True | SpellDescription$ Discard a card, then draw a card. When you discard a nonland card this way, CARDNAME deals damage equal to that card's mana value to target creature or planeswalker. +A:SP$ Discard | Cost$ 4 R | Mode$ TgtChoose | SubAbility$ DBDraw | RememberDiscarded$ True | SpellDescription$ Discard a card, then draw a card. SVar:DBDraw:DB$ Draw | SubAbility$ DBImmediateTrigger -SVar:DBImmediateTrigger:DB$ ImmediateTrigger | ConditionDefined$ Remembered | ConditionPresent$ Card.nonLand | Execute$ TrigDealDamage | RememberObjects$ RememberedCard | SubAbility$ DBCleanup | TriggerDescription$ When you discard a nonland card this way, CARDNAME deals damage equal to that card's mana value to target creature or planeswalker. +SVar:DBImmediateTrigger:DB$ ImmediateTrigger | ConditionDefined$ Remembered | ConditionPresent$ Card.nonLand | Execute$ TrigDealDamage | RememberObjects$ RememberedCard | SubAbility$ DBCleanup | SpellDescription$ When you discard a nonland card this way, CARDNAME deals damage equal to that card's mana value to target creature or planeswalker. SVar:TrigDealDamage:DB$ DealDamage | ValidTgts$ Creature,Planeswalker | TgtPrompt$ Select target creature or planeswalker | NumDmg$ X SVar:X:TriggerRemembered$CardManaCost SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True diff --git a/forge-gui/res/cardsfolder/f/foxfire.txt b/forge-gui/res/cardsfolder/f/foxfire.txt index 966511678fc..416a71df1fe 100644 --- a/forge-gui/res/cardsfolder/f/foxfire.txt +++ b/forge-gui/res/cardsfolder/f/foxfire.txt @@ -5,7 +5,7 @@ A:SP$ Untap | Cost$ 2 G | ValidTgts$ Creature.attacking | TgtPrompt$ Select targ SVar:DBPump:DB$ Effect | ReplacementEffects$ RPrevent1,RPrevent2 | RememberObjects$ Targeted | ExileOnMoved$ Battlefield | SubAbility$ DelTrigSlowtrip | SpellDescription$ Prevent all combat damage that would be dealt to and dealt by that creature this turn. SVar:RPrevent1:Event$ DamageDone | Prevent$ True | IsCombat$ True | ValidSource$ Card.IsRemembered | Description$ Prevent all combat damage that would be dealt to and dealt by that creature this turn. SVar:RPrevent2:Event$ DamageDone | Prevent$ True | IsCombat$ True | ValidTarget$ Card.IsRemembered | Description$ Prevent all combat damage that would be dealt to and dealt by that creature this turn. | Secondary$ True -SVar:DelTrigSlowtrip:DB$ DelayedTrigger | NextTurn$ True | Mode$ Phase | Phase$ Upkeep | ValidPlayer$ Player | Execute$ DrawSlowtrip | SpellDescription$ Draw a card. | TriggerDescription$ Draw a card at the beginning of the next turn's upkeep. +SVar:DelTrigSlowtrip:DB$ DelayedTrigger | NextTurn$ True | Mode$ Phase | Phase$ Upkeep | ValidPlayer$ Player | Execute$ DrawSlowtrip | SpellDescription$ Draw a card at the beginning of the next turn's upkeep. SVar:DrawSlowtrip:DB$ Draw | NumCards$ 1 | Defined$ You AI:RemoveDeck:All Oracle:Untap target attacking creature. Prevent all combat damage that would be dealt to and dealt by that creature this turn.\nDraw a card at the beginning of the next turn's upkeep. diff --git a/forge-gui/res/cardsfolder/g/giant_slug.txt b/forge-gui/res/cardsfolder/g/giant_slug.txt index ce24d4bc823..3cc6313e378 100644 --- a/forge-gui/res/cardsfolder/g/giant_slug.txt +++ b/forge-gui/res/cardsfolder/g/giant_slug.txt @@ -4,6 +4,6 @@ Types:Creature Slug PT:1/1 A:AB$ DelayedTrigger | Cost$ 5 | Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | Execute$ ChooseB | RememberObjects$ Self | StackDescription$ SpellDescription | SpellDescription$ At the beginning of your next upkeep, choose a basic land type. CARDNAME gains landwalk of the chosen type until the end of that turn. (It can't be blocked as long as defending player controls a land of that type.) SVar:ChooseB:DB$ ChooseType | Defined$ You | Type$ Basic Land | AILogic$ ChosenLandwalk | SubAbility$ DBPump -SVar:DBPump:DB$ Pump | Defined$ DelayTriggerRemembered | KW$ ChosenTypewalk | DefinedKW$ ChosenType | ConditionDefined$ DelayTriggerRemembered | ConditionPresent$ Card.StrictlySelf +SVar:DBPump:DB$ Pump | Defined$ DelayTriggerRememberedLKI | KW$ ChosenTypewalk | DefinedKW$ ChosenType AI:RemoveDeck:All Oracle:{5}: At the beginning of your next upkeep, choose a basic land type. Giant Slug gains landwalk of the chosen type until the end of that turn. (It can't be blocked as long as defending player controls a land of that type.) diff --git a/forge-gui/res/cardsfolder/g/golden_guardian_gold_forge_garrison.txt b/forge-gui/res/cardsfolder/g/golden_guardian_gold_forge_garrison.txt index 9f0a854087d..bc19793abcb 100644 --- a/forge-gui/res/cardsfolder/g/golden_guardian_gold_forge_garrison.txt +++ b/forge-gui/res/cardsfolder/g/golden_guardian_gold_forge_garrison.txt @@ -3,8 +3,8 @@ ManaCost:4 Types:Artifact Creature Golem PT:4/4 K:Defender -A:AB$ Fight | Cost$ 2 | Defined$ Self | ValidTgts$ Creature.YouCtrl+Other | TgtPrompt$ Select another target creature you control | SubAbility$ DBDelayedTrigger | StackDescription$ CARDNAME fights {c:Targeted}. | SpellDescription$ CARDNAME fights another target creature you control. When CARDNAME dies this turn, return it to the battlefield transformed under your control. -SVar:DBDelayedTrigger:DB$ DelayedTrigger | Mode$ ChangesZone | RememberObjects$ Self | ValidCard$ Card.IsTriggerRemembered | Origin$ Battlefield | Destination$ Graveyard | ThisTurn$ True | Execute$ TrigChangeZone | TriggerDescription$ When CARDNAME dies this turn, return it to the battlefield transformed under your control. +A:AB$ Fight | Cost$ 2 | Defined$ Self | ValidTgts$ Creature.YouCtrl+Other | TgtPrompt$ Select another target creature you control | SubAbility$ DBDelayedTrigger | StackDescription$ CARDNAME fights {c:Targeted}. | SpellDescription$ CARDNAME fights another target creature you control. +SVar:DBDelayedTrigger:DB$ DelayedTrigger | Mode$ ChangesZone | RememberObjects$ Self | ValidCard$ Card.IsTriggerRemembered | Origin$ Battlefield | Destination$ Graveyard | ThisTurn$ True | Execute$ TrigChangeZone | SpellDescription$ When CARDNAME dies this turn, return it to the battlefield transformed under your control. SVar:TrigChangeZone:DB$ ChangeZone | Defined$ DelayTriggerRemembered | Origin$ Graveyard | Destination$ Battlefield | Transformed$ True | GainControl$ True AlternateMode:DoubleFaced Oracle:Defender\n{2}: Golden Guardian fights another target creature you control. When Golden Guardian dies this turn, return it to the battlefield transformed under your control. diff --git a/forge-gui/res/cardsfolder/h/hidetsugu_devouring_chaos.txt b/forge-gui/res/cardsfolder/h/hidetsugu_devouring_chaos.txt index 5cf23551f75..ca7bd4fc88b 100644 --- a/forge-gui/res/cardsfolder/h/hidetsugu_devouring_chaos.txt +++ b/forge-gui/res/cardsfolder/h/hidetsugu_devouring_chaos.txt @@ -3,12 +3,12 @@ ManaCost:3 B Types:Legendary Creature Ogre Demon PT:4/4 A:AB$ Scry | Cost$ B Sac<1/Creature> | ScryNum$ 2 | SpellDescription$ Scry 2. -A:AB$ Dig | Cost$ 2 R T | Defined$ You | DigNum$ 1 | ChangeNum$ All | DestinationZone$ Exile | RememberChanged$ True | SubAbility$ DBEffect | AILogic$ ExileAndPlayUntilEOT | StackDescription$ SpellDescription | SpellDescription$ Exile the top card of your library. You may play that card this turn. When you exile a nonland card this way, CARDNAME deals damage equal to the exiled card's mana value to any target. -SVar:DBEffect:DB$ Effect | RememberObjects$ RememberedCard | StaticAbilities$ Play | SubAbility$ DBImmediateTrigger | ExileOnMoved$ Exile -SVar:Play:Mode$ Continuous | MayPlay$ True | EffectZone$ Command | Affected$ Card.IsRemembered | AffectedZone$ Exile | Description$ You may play this card this turn. -SVar:DBImmediateTrigger:DB$ ImmediateTrigger | ConditionDefined$ Remembered | ConditionPresent$ Card.nonLand | Execute$ TrigDealDamage | RememberObjects$ RememberedCard | SubAbility$ DBCleanup | StackDescription$ None | TriggerDescription$ When you exile a nonland card this way, CARDNAME deals damage equal to the exiled card's mana value to any target. +A:AB$ Dig | Cost$ 2 R T | Defined$ You | DigNum$ 1 | ChangeNum$ All | DestinationZone$ Exile | RememberChanged$ True | SubAbility$ DBEffect | AILogic$ ExileAndPlayUntilEOT | StackDescription$ SpellDescription | SpellDescription$ Exile the top card of your library. +SVar:DBEffect:DB$ Effect | RememberObjects$ RememberedCard | StaticAbilities$ Play | SubAbility$ DBImmediateTrigger | ExileOnMoved$ Exile | SpellDescription$ You may play that card this turn. +SVar:Play:Mode$ Continuous | MayPlay$ True | EffectZone$ Command | Affected$ Card.IsRemembered | AffectedZone$ Exile | Description$ You may play that card this turn. +SVar:DBImmediateTrigger:DB$ ImmediateTrigger | ConditionDefined$ Remembered | ConditionPresent$ Card.nonLand | Execute$ TrigDealDamage | RememberObjects$ RememberedCard | SubAbility$ DBCleanup | SpellDescription$ When you exile a nonland card this way, CARDNAME deals damage equal to the exiled card's mana value to any target. SVar:TrigDealDamage:DB$ DealDamage | ValidTgts$ Creature,Player,Planeswalker | TgtPrompt$ Select any target | NumDmg$ X SVar:X:TriggerRemembered$CardManaCost SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True Deckhas:Ability$Sacrifice -Oracle:{B}, Sacrifice a creature: Scry 2.\n{2}{R}, {T}, Exile the top card of your library. You may play that card this turn. When you exile a nonland card this way, Hidetsugu, Devouring Chaos deals damage equal to the exiled card's mana value to any target. +Oracle:{B}, Sacrifice a creature: Scry 2.\n{2}{R}, {T}: Exile the top card of your library. You may play that card this turn. When you exile a nonland card this way, Hidetsugu, Devouring Chaos deals damage equal to the exiled card's mana value to any target. diff --git a/forge-gui/res/cardsfolder/h/hypothesizzle.txt b/forge-gui/res/cardsfolder/h/hypothesizzle.txt index 54203a46f0a..733a0d6c25c 100644 --- a/forge-gui/res/cardsfolder/h/hypothesizzle.txt +++ b/forge-gui/res/cardsfolder/h/hypothesizzle.txt @@ -1,8 +1,8 @@ Name:Hypothesizzle ManaCost:3 U R Types:Instant -A:SP$ Draw | NumCards$ 2 | SubAbility$ DBImmediateTrigger | SpellDescription$ Draw two cards. Then you may discard a nonland card. When you do, CARDNAME deals 4 damage to target creature. -SVar:DBImmediateTrigger:DB$ ImmediateTrigger | UnlessCost$ Discard<1/Card.nonLand/nonland card> | UnlessPayer$ You | UnlessSwitched$ True | Execute$ TrigDealDmg | StackDescription$ None | TriggerDescription$ When you do, CARDNAME deals 4 damage to target creature. +A:SP$ Draw | NumCards$ 2 | SubAbility$ DBImmediateTrigger | SpellDescription$ Draw two cards. Then you may discard a nonland card. +SVar:DBImmediateTrigger:DB$ ImmediateTrigger | UnlessCost$ Discard<1/Card.nonLand/nonland card> | UnlessPayer$ You | UnlessSwitched$ True | Execute$ TrigDealDmg | StackDescription$ None | SpellDescription$ When you do, CARDNAME deals 4 damage to target creature. SVar:TrigDealDmg:DB$ DealDamage | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumDmg$ 4 DeckHas:Ability$Discard Oracle:Draw two cards. Then you may discard a nonland card. When you do, Hypothesizzle deals 4 damage to target creature. diff --git a/forge-gui/res/cardsfolder/i/inferno_of_the_star_mounts.txt b/forge-gui/res/cardsfolder/i/inferno_of_the_star_mounts.txt index fdb70d30e9a..d06c401b209 100644 --- a/forge-gui/res/cardsfolder/i/inferno_of_the_star_mounts.txt +++ b/forge-gui/res/cardsfolder/i/inferno_of_the_star_mounts.txt @@ -5,8 +5,8 @@ PT:6/6 K:This spell can't be countered. K:Flying K:Haste -A:AB$ Pump | Cost$ R | Defined$ Self | NumAtt$ +1 | SubAbility$ DBImmediateTrigger | AILogic$ InfernoOfTheStarMounts | SpellDescription$ CARDNAME gets +1/+0 until end of turn. When its power becomes 20 this way, it deals 20 damage to any target. -SVar:DBImmediateTrigger:DB$ ImmediateTrigger | Execute$ TrigDealDamage | ConditionCheckSVar$ X | ConditionSVarCompare$ EQ20 | TriggerDescription$ When its power becomes 20 this way, it deals 20 damage to any target. +A:AB$ Pump | Cost$ R | Defined$ Self | NumAtt$ +1 | SubAbility$ DBImmediateTrigger | AILogic$ InfernoOfTheStarMounts | SpellDescription$ CARDNAME gets +1/+0 until end of turn. +SVar:DBImmediateTrigger:DB$ ImmediateTrigger | Execute$ TrigDealDamage | ConditionCheckSVar$ X | ConditionSVarCompare$ EQ20 | SpellDescription$ When its power becomes 20 this way, it deals 20 damage to any target. SVar:TrigDealDamage:DB$ DealDamage | ValidTgts$ Creature,Player,Planeswalker | TgtPrompt$ Select any target | NumDmg$ 20 SVar:X:Count$CardPower Oracle:This spell can't be countered.\nFlying, haste\n{R}: Inferno of the Star Mounts gets +1/+0 until end of turn. When its power becomes 20 this way, it deals 20 damage to any target. diff --git a/forge-gui/res/cardsfolder/i/initiate_of_blood_goka_the_unjust.txt b/forge-gui/res/cardsfolder/i/initiate_of_blood_goka_the_unjust.txt index 51fb9f70b57..56ca6976ae7 100644 --- a/forge-gui/res/cardsfolder/i/initiate_of_blood_goka_the_unjust.txt +++ b/forge-gui/res/cardsfolder/i/initiate_of_blood_goka_the_unjust.txt @@ -2,8 +2,8 @@ Name:Initiate of Blood ManaCost:3 R Types:Creature Ogre Shaman PT:2/2 -A:AB$ DealDamage | Cost$ T | ValidTgts$ Creature.wasDealtDamageThisTurn | TgtPrompt$ Select target creature that was dealt damage this turn | NumDmg$ 1 | SubAbility$ DBDelayedTrigger | SpellDescription$ CARDNAME deals 1 damage to target creature that was dealt damage this turn. When that creature dies this turn, flip CARDNAME. -SVar:DBDelayedTrigger:DB$ DelayedTrigger | Mode$ ChangesZone | RememberObjects$ Targeted | ValidCard$ Card.IsTriggerRemembered | Origin$ Battlefield | Destination$ Graveyard | ThisTurn$ True | Execute$ TrigTransform | TriggerDescription$ When that creature dies this turn, flip CARDNAME. +A:AB$ DealDamage | Cost$ T | ValidTgts$ Creature.wasDealtDamageThisTurn | TgtPrompt$ Select target creature that was dealt damage this turn | NumDmg$ 1 | SubAbility$ DBDelayedTrigger | SpellDescription$ CARDNAME deals 1 damage to target creature that was dealt damage this turn. +SVar:DBDelayedTrigger:DB$ DelayedTrigger | Mode$ ChangesZone | RememberObjects$ Targeted | ValidCard$ Card.IsTriggerRemembered | Origin$ Battlefield | Destination$ Graveyard | ThisTurn$ True | Execute$ TrigTransform | SpellDescription$ When that creature dies this turn, flip CARDNAME. SVar:TrigTransform:DB$ SetState | Defined$ Self | Mode$ Flip AlternateMode:Flip Oracle:{T}: Initiate of Blood deals 1 damage to target creature that was dealt damage this turn. When that creature dies this turn, flip Initiate of Blood. diff --git a/forge-gui/res/cardsfolder/j/jailbreak.txt b/forge-gui/res/cardsfolder/j/jailbreak.txt index e2d4770cb16..cb5bf089075 100644 --- a/forge-gui/res/cardsfolder/j/jailbreak.txt +++ b/forge-gui/res/cardsfolder/j/jailbreak.txt @@ -1,8 +1,8 @@ Name:Jailbreak ManaCost:1 W Types:Sorcery -A:SP$ ChangeZone | Origin$ Graveyard | Destination$ Battlefield | TgtPrompt$ Select target permanent in an opponent's graveyard | ValidTgts$ Permanent.OppOwn | SubAbility$ DBDelayedTrigger | SpellDescription$ Return target permanent card in an opponent's graveyard to the battlefield under their control. When that permanent enters the battlefield, return up to one target permanent card with equal or lesser mana value from your graveyard to the battlefield. -SVar:DBDelayedTrigger:DB$ DelayedTrigger | RememberObjects$ Targeted | Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.IsTriggerRemembered | Execute$ TrigReturn | TriggerDescription$ When that permanent enters the battlefield, return up to one target permanent card with equal or lesser mana value from your graveyard to the battlefield. +A:SP$ ChangeZone | Origin$ Graveyard | Destination$ Battlefield | TgtPrompt$ Select target permanent in an opponent's graveyard | ValidTgts$ Permanent.OppOwn | SubAbility$ DBDelayedTrigger | SpellDescription$ Return target permanent card in an opponent's graveyard to the battlefield under their control. +SVar:DBDelayedTrigger:DB$ DelayedTrigger | RememberObjects$ Targeted | Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.IsTriggerRemembered | Execute$ TrigReturn | SpellDescription$ When that permanent enters the battlefield, return up to one target permanent card with equal or lesser mana value from your graveyard to the battlefield. SVar:TrigReturn:DB$ ChangeZone | Origin$ Graveyard | Destination$ Battlefield | TgtPrompt$ Select up to one target permanent with equal or lesser mana value | TargetMin$ 0 | TargetMax$ 1 | ValidTgts$ Permanent.YouOwn+cmcLEX SVar:X:TriggeredCard$CardManaCost DeckHas:Ability$Graveyard diff --git a/forge-gui/res/cardsfolder/k/kelsien_the_plague.txt b/forge-gui/res/cardsfolder/k/kelsien_the_plague.txt index 20cedb86413..0f9b1550c16 100644 --- a/forge-gui/res/cardsfolder/k/kelsien_the_plague.txt +++ b/forge-gui/res/cardsfolder/k/kelsien_the_plague.txt @@ -6,8 +6,8 @@ K:Vigilance K:Haste S:Mode$ Continuous | Affected$ Card.Self | AddPower$ X | AddToughness$ X | Description$ CARDNAME gets +1/+1 for each experience counter you have. SVar:X:Count$YourCountersExperience -A:AB$ DealDamage | Cost$ T | ValidTgts$ Creature.YouDontCtrl | TgtPrompt$ Select target creature you don't control | NumDmg$ 1 | SubAbility$ DBDelayedTrigger | StackDescription$ CARDNAME deals 1 damage to {c:Targeted}. | SpellDescription$ CARDNAME deals 1 damage to target creature you don't control. When that creature dies this turn, you get an experience counter. -SVar:DBDelayedTrigger:DB$ DelayedTrigger | Mode$ ChangesZone | RememberObjects$ Targeted | ValidCard$ Card.IsTriggerRemembered | Origin$ Battlefield | Destination$ Graveyard | ThisTurn$ True | Execute$ TrigPutCounter | TriggerDescription$ When that creature dies this turn, you get an experience counter. +A:AB$ DealDamage | Cost$ T | ValidTgts$ Creature.YouDontCtrl | TgtPrompt$ Select target creature you don't control | NumDmg$ 1 | SubAbility$ DBDelayedTrigger | StackDescription$ NICKNAME deals 1 damage to {c:Targeted}. | SpellDescription$ NICKNAME deals 1 damage to target creature you don't control. +SVar:DBDelayedTrigger:DB$ DelayedTrigger | Mode$ ChangesZone | RememberObjects$ Targeted | ValidCard$ Card.IsTriggerRemembered | Origin$ Battlefield | Destination$ Graveyard | ThisTurn$ True | Execute$ TrigPutCounter | SpellDescription$ When that creature dies this turn, you get an experience counter. SVar:TrigPutCounter:DB$ PutCounter | Defined$ You | CounterType$ Experience | CounterNum$ 1 DeckHas:Ability$Counters Oracle:Vigilance, haste\nKelsien, the Plague gets +1/+1 for each experience counter you have.\n{T}: Kelsien deals 1 damage to target creature you don't control. When that creature dies this turn, you get an experience counter. diff --git a/forge-gui/res/cardsfolder/m/make_your_mark.txt b/forge-gui/res/cardsfolder/m/make_your_mark.txt index df24e006f1e..f38c4da04b8 100644 --- a/forge-gui/res/cardsfolder/m/make_your_mark.txt +++ b/forge-gui/res/cardsfolder/m/make_your_mark.txt @@ -1,8 +1,8 @@ Name:Make Your Mark ManaCost:RW Types:Instant -A:SP$ Pump | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumAtt$ +1 | SubAbility$ DBDelayedTrigger | SpellDescription$ Target creature gets +1/+0 until end of turn. When that creature dies this turn, create a 3/2 red and white Spirit creature token. -SVar:DBDelayedTrigger:DB$ DelayedTrigger | Mode$ ChangesZone | RememberObjects$ Targeted | ValidCard$ Card.IsTriggerRemembered | Origin$ Battlefield | Destination$ Graveyard | ThisTurn$ True | Execute$ DBToken | TriggerDescription$ When that creature dies this turn, create a 3/2 red and white Spirit creature token. +A:SP$ Pump | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumAtt$ +1 | SubAbility$ DBDelayedTrigger | SpellDescription$ Target creature gets +1/+0 until end of turn. +SVar:DBDelayedTrigger:DB$ DelayedTrigger | Mode$ ChangesZone | RememberObjects$ Targeted | ValidCard$ Card.IsTriggerRemembered | Origin$ Battlefield | Destination$ Graveyard | ThisTurn$ True | Execute$ DBToken | SpellDescription$ When that creature dies this turn, create a 3/2 red and white Spirit creature token. SVar:DBToken:DB$ Token | TokenScript$ rw_3_2_spirit DeckHas:Ability$Token Oracle:Target creature gets +1/+0 until end of turn. When that creature dies this turn, create a 3/2 red and white Spirit creature token. diff --git a/forge-gui/res/cardsfolder/m/minsc_boo_timeless_heroes.txt b/forge-gui/res/cardsfolder/m/minsc_boo_timeless_heroes.txt index e1ccad56838..56e15612f51 100644 --- a/forge-gui/res/cardsfolder/m/minsc_boo_timeless_heroes.txt +++ b/forge-gui/res/cardsfolder/m/minsc_boo_timeless_heroes.txt @@ -6,8 +6,8 @@ T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.S T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | Execute$ TrigToken | TriggerZones$ Battlefield | Secondary$ True | OptionalDecider$ You | TriggerDescription$ When CARDNAME enters the battlefield and at the beginning of your upkeep, you may create Boo, a legendary 1/1 red Hamster creature token with trample and haste. SVar:TrigToken:DB$ Token | TokenScript$ boo A:AB$ PutCounter | Cost$ AddCounter<1/LOYALTY> | Planeswalker$ True | ValidTgts$ Creature.withTrample,Creature.withHaste | TgtPrompt$ Select target creature with trample or haste | TargetMin$ 0 | TargetMax$ 1 | CounterType$ P1P1 | CounterNum$ 3 | SpellDescription$ Put three +1/+1 counters on up to one target creature with trample or haste. -A:AB$ Sacrifice | Cost$ SubCounter<2/LOYALTY> | Planeswalker$ True | SacValid$ Creature | RememberSacrificed$ True | SubAbility$ DBImmediateTrigger | SpellDescription$ Sacrifice a creature. When you do, CARDNAME deals X damage to any target, where X is that creature's power. If the sacrificed creature was a Hamster, draw X cards. -SVar:DBImmediateTrigger:DB$ ImmediateTrigger | Execute$ TrigDamage | ConditionDefined$ RememberedLKI | ConditionPresent$ Creature | RememberObjects$ RememberedLKI | TriggerDescription$ When you do, CARDNAME deals X damage to any target, where X is that creature's power. If the sacrificed creature was a Hamster, draw X cards. +A:AB$ Sacrifice | Cost$ SubCounter<2/LOYALTY> | Planeswalker$ True | SacValid$ Creature | RememberSacrificed$ True | SubAbility$ DBImmediateTrigger | SpellDescription$ Sacrifice a creature. +SVar:DBImmediateTrigger:DB$ ImmediateTrigger | Execute$ TrigDamage | ConditionDefined$ RememberedLKI | ConditionPresent$ Creature | RememberObjects$ RememberedLKI | SpellDescription$ When you do, CARDNAME deals X damage to any target, where X is that creature's power. If the sacrificed creature was a Hamster, draw X cards. SVar:TrigDamage:DB$ DealDamage | ValidTgts$ Creature,Player,Planeswalker | TgtPrompt$ Select any target | NumDmg$ X | SubAbility$ DBDraw SVar:DBDraw:DB$ Draw | ConditionDefined$ DelayTriggerRememberedLKI | ConditionPresent$ Hamster | NumCards$ X SVar:X:TriggerRemembered$CardPower diff --git a/forge-gui/res/cardsfolder/o/otherworldly_outburst.txt b/forge-gui/res/cardsfolder/o/otherworldly_outburst.txt index a682f547351..3936ada3cb1 100644 --- a/forge-gui/res/cardsfolder/o/otherworldly_outburst.txt +++ b/forge-gui/res/cardsfolder/o/otherworldly_outburst.txt @@ -1,8 +1,8 @@ Name:Otherworldly Outburst ManaCost:R Types:Instant -A:SP$ Pump | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumAtt$ 1 | SubAbility$ DBDelayedTrigger | SpellDescription$ Target creature gets +1/+0 until end of turn. When that creature dies this turn, create a 3/2 colorless Eldrazi Horror creature token. -SVar:DBDelayedTrigger:DB$ DelayedTrigger | Mode$ ChangesZone | RememberObjects$ Targeted | ValidCard$ Card.IsTriggerRemembered | Origin$ Battlefield | Destination$ Graveyard | ThisTurn$ True | Execute$ DBToken | TriggerDescription$ When that creature dies this turn, create a 3/2 colorless Eldrazi Horror creature token. +A:SP$ Pump | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumAtt$ 1 | SubAbility$ DBDelayedTrigger | SpellDescription$ Target creature gets +1/+0 until end of turn. +SVar:DBDelayedTrigger:DB$ DelayedTrigger | Mode$ ChangesZone | RememberObjects$ Targeted | ValidCard$ Card.IsTriggerRemembered | Origin$ Battlefield | Destination$ Graveyard | ThisTurn$ True | Execute$ DBToken | SpellDescription$ When that creature dies this turn, create a 3/2 colorless Eldrazi Horror creature token. SVar:DBToken:DB$ Token | TokenScript$ c_3_2_eldrazi_horror DeckHints:Type$Eldrazi|Horror DeckHas:Ability$Token diff --git a/forge-gui/res/cardsfolder/o/out_of_the_way.txt b/forge-gui/res/cardsfolder/o/out_of_the_way.txt index 11ecee95ed1..b7bd4080cfe 100644 --- a/forge-gui/res/cardsfolder/o/out_of_the_way.txt +++ b/forge-gui/res/cardsfolder/o/out_of_the_way.txt @@ -1,7 +1,7 @@ Name:Out of the Way ManaCost:3 U Types:Instant -S:Mode$ ReduceCost | ValidCard$ Card.Self | Type$ Spell | Amount$ 2 | ValidTarget$ Permanent.Green | EffectZone$ All | Description$ This spell costs {2} less to cast if it targets a a green permanent. +S:Mode$ ReduceCost | ValidCard$ Card.Self | Type$ Spell | Amount$ 2 | ValidTarget$ Permanent.Green | EffectZone$ All | Description$ This spell costs {2} less to cast if it targets a green permanent. A:SP$ ChangeZone | ValidTgts$ Permanent.nonLand+OppCtrl | TgtPrompt$ Select target nonland permanent an opponent controls | Origin$ Battlefield | Destination$ Hand | SubAbility$ DBDraw | SpellDescription$ Return target nonland permanent an opponent controls to its owner's hand. -SVar:DBDraw:DB$ Draw +SVar:DBDraw:DB$ Draw | SpellDescription$ Draw a card. Oracle:This spell costs {2} less to cast if it targets a green permanent.\nReturn target nonland permanent an opponent controls to its owner's hand.\nDraw a card. diff --git a/forge-gui/res/cardsfolder/p/psychic_theft.txt b/forge-gui/res/cardsfolder/p/psychic_theft.txt index 51cc52ebee2..e07d3439ff3 100644 --- a/forge-gui/res/cardsfolder/p/psychic_theft.txt +++ b/forge-gui/res/cardsfolder/p/psychic_theft.txt @@ -2,8 +2,8 @@ Name:Psychic Theft ManaCost:1 U Types:Sorcery A:SP$ ChangeZone | ValidTgts$ Player | Origin$ Hand | Destination$ Exile | ChangeType$ Instant,Sorcery | Mandatory$ True | IsCurse$ True | Chooser$ You | ChangeNum$ 1 | RememberChanged$ True | SubAbility$ TheftEffect | SpellDescription$ Target player reveals their hand. You choose an instant or sorcery card from it and exile that card. | StackDescription$ SpellDescription -SVar:TheftEffect:DB$ Effect | StaticAbilities$ STThieving | Duration$ Permanent | RememberObjects$ Remembered | ExileOnMoved$ Exile | SubAbility$ DBDelayedTrigger | SpellDescription$ You may cast that card for as long as it remains exiled. At the beginning of the next end step, if you haven't cast the card, return it to its owner's hand. -SVar:DBDelayedTrigger:DB$ DelayedTrigger | Mode$ Phase | Phase$ End of Turn | Execute$ TrigReturn | IsPresent$ Card.IsRemembered | PresentZone$ Exile | RememberObjects$ Remembered | SubAbility$ DBCleanup | TriggerDescription$ At the beginning of the next end step, if you haven't cast the card, return it to its owner's hand. +SVar:TheftEffect:DB$ Effect | StaticAbilities$ STThieving | Duration$ Permanent | RememberObjects$ Remembered | ExileOnMoved$ Exile | SubAbility$ DBDelayedTrigger | SpellDescription$ You may cast that card for as long as it remains exiled. +SVar:DBDelayedTrigger:DB$ DelayedTrigger | Mode$ Phase | Phase$ End of Turn | Execute$ TrigReturn | IsPresent$ Card.IsRemembered | PresentZone$ Exile | RememberObjects$ Remembered | SubAbility$ DBCleanup | SpellDescription$ At the beginning of the next end step, if you haven't cast the card, return it to its owner's hand. SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True SVar:STThieving:Mode$ Continuous | Affected$ Card.IsRemembered+nonLand | MayPlay$ True | EffectZone$ Command | AffectedZone$ Exile | Description$ You may cast that card for as long as it remains exiled. SVar:TrigReturn:DB$ ChangeZone | Defined$ RememberedLKI | Origin$ Exile | Destination$ Hand diff --git a/forge-gui/res/cardsfolder/r/rushed_rebirth.txt b/forge-gui/res/cardsfolder/r/rushed_rebirth.txt index a3d3a409141..50ea8f306c5 100644 --- a/forge-gui/res/cardsfolder/r/rushed_rebirth.txt +++ b/forge-gui/res/cardsfolder/r/rushed_rebirth.txt @@ -1,8 +1,8 @@ Name:Rushed Rebirth ManaCost:B G Types:Instant -A:SP$ ChooseCard | ValidTgts$ Creature | TgtPrompt$ Choose target creature | SubAbility$ DBDelayedTrigger | StackDescription$ When {c:Targeted} dies this turn, search your library for a creature card with lesser mana value, put it onto the battlefield tapped, then shuffle. | SpellDescription$ Choose target creature. When that creature dies this turn, search your library for a creature card with lesser mana value, put it onto the battlefield tapped, then shuffle. -SVar:DBDelayedTrigger:DB$ DelayedTrigger | Mode$ ChangesZone | RememberObjects$ Targeted | ValidCard$ Card.IsTriggerRemembered | Origin$ Battlefield | Destination$ Graveyard | ThisTurn$ True | Execute$ TrigChangeZone | StackDescription$ None | TriggerDescription$ When that creature dies this turn, search your library for a creature card with lesser mana value, put it onto the battlefield tapped, then shuffle. +A:SP$ ChooseCard | ValidTgts$ Creature | TgtPrompt$ Choose target creature | SubAbility$ DBDelayedTrigger | StackDescription$ When {c:Targeted} dies this turn, search your library for a creature card with lesser mana value, put it onto the battlefield tapped, then shuffle. | SpellDescription$ Choose target creature. +SVar:DBDelayedTrigger:DB$ DelayedTrigger | Mode$ ChangesZone | RememberObjects$ Targeted | ValidCard$ Card.IsTriggerRemembered | Origin$ Battlefield | Destination$ Graveyard | ThisTurn$ True | Execute$ TrigChangeZone | StackDescription$ None | SpellDescription$ When that creature dies this turn, search your library for a creature card with lesser mana value, put it onto the battlefield tapped, then shuffle. SVar:TrigChangeZone:DB$ ChangeZone | Origin$ Library | Destination$ Battlefield | ChangeType$ Creature.cmcLTX | ChangeNum$ 1 | Mandatory$ True | Tapped$ True SVar:X:TriggerRemembered$CardManaCost Oracle:Choose target creature. When that creature dies this turn, search your library for a creature card with lesser mana value, put it onto the battlefield tapped, then shuffle. diff --git a/forge-gui/res/cardsfolder/s/searing_blood.txt b/forge-gui/res/cardsfolder/s/searing_blood.txt index e60a041d566..c0a069ab6da 100644 --- a/forge-gui/res/cardsfolder/s/searing_blood.txt +++ b/forge-gui/res/cardsfolder/s/searing_blood.txt @@ -1,7 +1,7 @@ Name:Searing Blood ManaCost:R R Types:Instant -A:SP$ DealDamage | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumDmg$ 2 | SubAbility$ DBDelayedTrigger | SpellDescription$ CARDNAME deals 2 damage to target creature. When that creature dies this turn, CARDNAME deals 3 damage to the creature's controller. -SVar:DBDelayedTrigger:DB$ DelayedTrigger | Mode$ ChangesZone | RememberObjects$ Targeted | ValidCard$ Card.IsTriggerRemembered | Origin$ Battlefield | Destination$ Graveyard | ThisTurn$ True | Execute$ TrigDealDamage | StackDescription$ When that creature dies this turn, CARDNAME deals 3 damage to {p:TargetedController}. | TriggerDescription$ When that creature dies this turn, CARDNAME deals 3 damage to the creature's controller. +A:SP$ DealDamage | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumDmg$ 2 | SubAbility$ DBDelayedTrigger | SpellDescription$ CARDNAME deals 2 damage to target creature. +SVar:DBDelayedTrigger:DB$ DelayedTrigger | Mode$ ChangesZone | RememberObjects$ Targeted | ValidCard$ Card.IsTriggerRemembered | Origin$ Battlefield | Destination$ Graveyard | ThisTurn$ True | Execute$ TrigDealDamage | StackDescription$ When that creature dies this turn, CARDNAME deals 3 damage to {p:TargetedController}. | SpellDescription$ When that creature dies this turn, CARDNAME deals 3 damage to the creature's controller. SVar:TrigDealDamage:DB$ DealDamage | Defined$ TriggeredCardController | NumDmg$ 3 Oracle:Searing Blood deals 2 damage to target creature. When that creature dies this turn, Searing Blood deals 3 damage to the creature's controller. diff --git a/forge-gui/res/cardsfolder/s/skeletonize.txt b/forge-gui/res/cardsfolder/s/skeletonize.txt index 4d5c5f66e87..8eaea1cd1e1 100644 --- a/forge-gui/res/cardsfolder/s/skeletonize.txt +++ b/forge-gui/res/cardsfolder/s/skeletonize.txt @@ -1,8 +1,8 @@ Name:Skeletonize ManaCost:4 R Types:Instant -A:SP$ DealDamage | NumDmg$ 3 | ValidTgts$ Creature | TgtPrompt$ Select target creature | RememberDamaged$ True | SubAbility$ DBDelayedTrigger | SpellDescription$ CARDNAME deals 3 damage to target creature. When a creature dealt damage this way dies this turn, create a 1/1 black Skeleton creature token with "{B}: Regenerate this creature." -SVar:DBDelayedTrigger:DB$ DelayedTrigger | Mode$ ChangesZone | RememberObjects$ Remembered | ValidCard$ Card.IsTriggerRemembered | Origin$ Battlefield | Destination$ Graveyard | ThisTurn$ True | Execute$ TrigToken | TriggerDescription$ When a creature dealt damage this way dies this turn, create a 1/1 black Skeleton creature token with "{B}: Regenerate this creature." +A:SP$ DealDamage | NumDmg$ 3 | ValidTgts$ Creature | TgtPrompt$ Select target creature | RememberDamaged$ True | SubAbility$ DBDelayedTrigger | SpellDescription$ CARDNAME deals 3 damage to target creature. +SVar:DBDelayedTrigger:DB$ DelayedTrigger | Mode$ ChangesZone | RememberObjects$ Remembered | ValidCard$ Card.IsTriggerRemembered | Origin$ Battlefield | Destination$ Graveyard | ThisTurn$ True | Execute$ TrigToken | SpellDescription$ When a creature dealt damage this way dies this turn, create a 1/1 black Skeleton creature token with "{B}: Regenerate this creature." SVar:TrigToken:DB$ Token | TokenScript$ b_1_1_skeleton_regenerate DeckHas:Ability$Token Oracle:Skeletonize deals 3 damage to target creature. When a creature dealt damage this way dies this turn, create a 1/1 black Skeleton creature token with "{B}: Regenerate this creature." diff --git a/forge-gui/res/cardsfolder/s/sorin_imperious_bloodlord.txt b/forge-gui/res/cardsfolder/s/sorin_imperious_bloodlord.txt index 664b23caaf7..562ac43894b 100644 --- a/forge-gui/res/cardsfolder/s/sorin_imperious_bloodlord.txt +++ b/forge-gui/res/cardsfolder/s/sorin_imperious_bloodlord.txt @@ -4,8 +4,8 @@ Types:Legendary Planeswalker Sorin Loyalty:4 A:AB$ Pump | Cost$ AddCounter<1/LOYALTY> | Planeswalker$ True | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Select target creature you control | KW$ Deathtouch & Lifelink | SubAbility$ DBPutCounter | SpellDescription$ Target creature you control gains deathtouch and lifelink until end of turn. If it's a Vampire, put a +1/+1 counter on it. SVar:DBPutCounter:DB$ PutCounter | Defined$ Targeted | CounterType$ P1P1 | CounterNum$ 1 | ConditionDefined$ Targeted | ConditionPresent$ Card.Vampire | ConditionCompare$ GE1 -A:AB$ Sacrifice | Cost$ AddCounter<1/LOYALTY> | Planeswalker$ True | Defined$ You | SacValid$ Vampire | Optional$ True | RememberSacrificed$ True | SubAbility$ TrigPayCost | SpellDescription$ You may sacrifice a Vampire. When you do, CARDNAME deals 3 damage to any target and you gain 3 life. -SVar:TrigPayCost:DB$ ImmediateTrigger | Execute$ DBDmg | ConditionDefined$ RememberedLKI | ConditionPresent$ Creature | ConditionCompare$ GE1 | TriggerDescription$ When you do, CARDNAME deals 3 damage to any target and you gain 3 life. | SubAbility$ DBCleanup +A:AB$ Sacrifice | Cost$ AddCounter<1/LOYALTY> | Planeswalker$ True | Defined$ You | SacValid$ Vampire | Optional$ True | RememberSacrificed$ True | SubAbility$ TrigPayCost | SpellDescription$ You may sacrifice a Vampire. +SVar:TrigPayCost:DB$ ImmediateTrigger | Execute$ DBDmg | ConditionDefined$ RememberedLKI | ConditionPresent$ Creature | ConditionCompare$ GE1 | SpellDescription$ When you do, CARDNAME deals 3 damage to any target and you gain 3 life. | SubAbility$ DBCleanup SVar:DBDmg:DB$ DealDamage | ValidTgts$ Creature,Player,Planeswalker | TgtPrompt$ Select any target | NumDmg$ 3 | SubAbility$ DBGainLife SVar:DBGainLife:DB$ GainLife | LifeAmount$ 3 SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True diff --git a/forge-gui/res/cardsfolder/t/the_royal_scions.txt b/forge-gui/res/cardsfolder/t/the_royal_scions.txt index 76cf63b57ff..63fc1fbf25e 100644 --- a/forge-gui/res/cardsfolder/t/the_royal_scions.txt +++ b/forge-gui/res/cardsfolder/t/the_royal_scions.txt @@ -6,8 +6,8 @@ A:AB$ Draw | Cost$ AddCounter<1/LOYALTY> | Planeswalker$ True | NumCards$ 1 | Sp SVar:DBDiscard:DB$ Discard | Defined$ You | NumCards$ 1 | Mode$ TgtChoose AI:RemoveDeck:All A:AB$ Pump | Cost$ AddCounter<1/LOYALTY> | Planeswalker$ True | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumAtt$ +2 | KW$ First Strike & Trample | SpellDescription$ Target creature gets +2/+0 and gains first strike and trample until end of turn. -A:AB$ Draw | Cost$ SubCounter<8/LOYALTY> | Planeswalker$ True | Ultimate$ True | NumCards$ 4 | RememberDrawn$ True | SubAbility$ DBTrigger | SpellDescription$ Draw four cards. When you do, CARDNAME deals damage to any target equal to the number of cards in your hand. -SVar:DBTrigger:DB$ ImmediateTrigger | ConditionDefined$ Remembered | ConditionPresent$ Card | ConditionCompare$ GE4 | Execute$ DBDamage | TriggerDescription$ When you do, CARDNAME deals damage to any target equal to the number of cards in your hand. | SubAbility$ DBCleanup +A:AB$ Draw | Cost$ SubCounter<8/LOYALTY> | Planeswalker$ True | Ultimate$ True | NumCards$ 4 | RememberDrawn$ True | SubAbility$ DBTrigger | SpellDescription$ Draw four cards. +SVar:DBTrigger:DB$ ImmediateTrigger | ConditionDefined$ Remembered | ConditionPresent$ Card | ConditionCompare$ GE4 | Execute$ DBDamage | SpellDescription$ When you do, CARDNAME deals damage to any target equal to the number of cards in your hand. | SubAbility$ DBCleanup SVar:DBDamage:DB$ DealDamage | ValidTgts$ Creature,Player,Planeswalker | TgtPrompt$ Select any target | NumDmg$ X SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True SVar:X:Count$InYourHand diff --git a/forge-gui/res/cardsfolder/t/time_to_feed.txt b/forge-gui/res/cardsfolder/t/time_to_feed.txt index c5fe2f56b5e..e225a693506 100644 --- a/forge-gui/res/cardsfolder/t/time_to_feed.txt +++ b/forge-gui/res/cardsfolder/t/time_to_feed.txt @@ -1,9 +1,9 @@ Name:Time to Feed ManaCost:2 G Types:Sorcery -A:SP$ Pump | ValidTgts$ Creature.OppCtrl | TgtPrompt$ Choose target creature an opponent controls | AILogic$ Fight | SubAbility$ DBDelayedTrigger | StackDescription$ When {c:ThisTargetedCard} dies this turn, {p:You} gains 3 life. | SpellDescription$ Choose target creature an opponent controls. When that creature dies this turn, you gain 3 life. Target creature you control fights that creature. -SVar:DBDelayedTrigger:DB$ DelayedTrigger | Mode$ ChangesZone | RememberObjects$ ParentTarget | ValidCard$ Card.IsTriggerRemembered | Origin$ Battlefield | Destination$ Graveyard | ThisTurn$ True | Execute$ TrigGainLife | SubAbility$ DBFight | StackDescription$ None | TriggerDescription$ When that creature dies this turn, you gain 3 life. -SVar:DBFight:DB$ Fight | Defined$ ParentTarget | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Choose target creature you control | StackDescription$ {c:ThisTargetedCard} fights that creature. +A:SP$ Pump | ValidTgts$ Creature.OppCtrl | TgtPrompt$ Choose target creature an opponent controls | AILogic$ Fight | SubAbility$ DBDelayedTrigger | StackDescription$ When {c:ThisTargetedCard} dies this turn, {p:You} gains 3 life. | SpellDescription$ Choose target creature an opponent controls. +SVar:DBDelayedTrigger:DB$ DelayedTrigger | Mode$ ChangesZone | RememberObjects$ ParentTarget | ValidCard$ Card.IsTriggerRemembered | Origin$ Battlefield | Destination$ Graveyard | ThisTurn$ True | Execute$ TrigGainLife | SubAbility$ DBFight | StackDescription$ None | SpellDescription$ When that creature dies this turn, you gain 3 life. +SVar:DBFight:DB$ Fight | Defined$ ParentTarget | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Choose target creature you control | StackDescription$ {c:ThisTargetedCard} fights that creature. | SpellDescription$ Target creature you control fights that creature. SVar:TrigGainLife:DB$ GainLife | LifeAmount$ 3 DeckHas:Ability$LifeGain Oracle:Choose target creature an opponent controls. When that creature dies this turn, you gain 3 life. Target creature you control fights that creature. (Each deals damage equal to its power to the other.) diff --git a/forge-gui/res/cardsfolder/t/torrent_sculptor_flamethrower_sonata.txt b/forge-gui/res/cardsfolder/t/torrent_sculptor_flamethrower_sonata.txt index bc2462bd7cc..ff97e73ab7f 100644 --- a/forge-gui/res/cardsfolder/t/torrent_sculptor_flamethrower_sonata.txt +++ b/forge-gui/res/cardsfolder/t/torrent_sculptor_flamethrower_sonata.txt @@ -16,9 +16,9 @@ ALTERNATE Name:Flamethrower Sonata ManaCost:1 R Types:Sorcery -A:SP$ Discard | Mode$ TgtChoose | SubAbility$ DBDraw | RememberDiscarded$ True | SpellDescription$ Discard a card, then draw a card. When you discard an instant or sorcery card this way, CARDNAME deals damage equal to that card's mana value to target creature or planeswalker you don't control. +A:SP$ Discard | Mode$ TgtChoose | SubAbility$ DBDraw | RememberDiscarded$ True | SpellDescription$ Discard a card, then draw a card. SVar:DBDraw:DB$ Draw | SubAbility$ DBImmediateTrigger -SVar:DBImmediateTrigger:DB$ ImmediateTrigger | ConditionDefined$ Remembered | ConditionPresent$ Instant,Sorcery | Execute$ TrigDealDamage | RememberObjects$ RememberedCard | SubAbility$ DBCleanup | TriggerDescription$ When you discard an instant or sorcery card this way, CARDNAME deals damage equal to that card's mana value to target creature or planeswalker you don't control. +SVar:DBImmediateTrigger:DB$ ImmediateTrigger | ConditionDefined$ Remembered | ConditionPresent$ Instant,Sorcery | Execute$ TrigDealDamage | RememberObjects$ RememberedCard | SubAbility$ DBCleanup | SpellDescription$ When you discard an instant or sorcery card this way, CARDNAME deals damage equal to that card's mana value to target creature or planeswalker you don't control. SVar:TrigDealDamage:DB$ DealDamage | ValidTgts$ Creature.YouDontCtrl,Planeswalker.YouDontCtrl | TgtPrompt$ Select target creature or planeswalker you don't control | NumDmg$ X SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True SVar:X:TriggerRemembered$CardManaCost diff --git a/forge-gui/res/cardsfolder/u/unleash_the_inferno.txt b/forge-gui/res/cardsfolder/u/unleash_the_inferno.txt index 127ab7e4147..8df1dbc3a58 100644 --- a/forge-gui/res/cardsfolder/u/unleash_the_inferno.txt +++ b/forge-gui/res/cardsfolder/u/unleash_the_inferno.txt @@ -1,8 +1,8 @@ Name:Unleash the Inferno ManaCost:1 B R G Types:Instant -A:SP$ DealDamage | ValidTgts$ Creature,Planeswalker | TgtPrompt$ Select target creature or planeswalker | NumDmg$ 7 | ExcessSVar$ Excess | SubAbility$ DBImmediateTrigger | SpellDescription$ CARDNAME deals 7 damage to target creature or planeswalker. When it deals excess damage this way, destroy target artifact or enchantment an opponent controls with mana value less than or equal to that amount of excess damage. -SVar:DBImmediateTrigger:DB$ ImmediateTrigger | ConditionCheckSVar$ Excess | ConditionSVarCompare$ GE1 | RememberSVarAmount$ Excess | Execute$ TrigDestroy | TriggerDescription$ When it deals excess damage this way, destroy target artifact or enchantment an opponent controls with mana value less than or equal to that amount of excess damage. +A:SP$ DealDamage | ValidTgts$ Creature,Planeswalker | TgtPrompt$ Select target creature or planeswalker | NumDmg$ 7 | ExcessSVar$ Excess | SubAbility$ DBImmediateTrigger | SpellDescription$ CARDNAME deals 7 damage to target creature or planeswalker. +SVar:DBImmediateTrigger:DB$ ImmediateTrigger | ConditionCheckSVar$ Excess | ConditionSVarCompare$ GE1 | RememberSVarAmount$ Excess | Execute$ TrigDestroy | SpellDescription$ When it deals excess damage this way, destroy target artifact or enchantment an opponent controls with mana value less than or equal to that amount of excess damage. SVar:TrigDestroy:DB$ Destroy | ValidTgts$ Artifact.OppCtrl+cmcLEX,Enchantment.OppCtrl+cmcLEX | TgtPrompt$ Select target artifact or enchantment an opponent controls with mana value less than or equal to the amount of excess damage | SubAbility$ DBCleanup SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True SVar:X:Count$TriggerRememberAmount diff --git a/forge-gui/res/cardsfolder/upcoming/elenda_and_azor.txt b/forge-gui/res/cardsfolder/upcoming/elenda_and_azor.txt index d0d1005de8e..f0888d6c459 100644 --- a/forge-gui/res/cardsfolder/upcoming/elenda_and_azor.txt +++ b/forge-gui/res/cardsfolder/upcoming/elenda_and_azor.txt @@ -8,7 +8,7 @@ T:Mode$ Attacks | ValidCard$ Card.Self | Execute$ TrigDraw | TriggerDescription$ SVar:TrigDraw:AB$ Draw | Cost$ X W U U | NumCards$ X SVar:X:Count$xPaid T:Mode$ Phase | Phase$ End of Turn | TriggerZones$ Battlefield | Execute$ TrigToken | TriggerDescription$ At the beginning of each end step, you may pay 4 life. If you do, create a number of 1/1 black Vampire Knight creature tokens with lifelink equal to the number of cards you've drawn this turn. -SVar:TrigToken:AB$ Token | Cost$ PayLife<4> | TokenAmount$ Y | TokenScript$ w_1_1_vampire_knight_lifelink | TokenOwner$ You +SVar:TrigToken:AB$ Token | Cost$ PayLife<4> | TokenAmount$ Y | TokenScript$ b_1_1_vampire_knight_lifelink | TokenOwner$ You SVar:Y:Count$YouDrewThisTurn DeckHas:Ability$Token|LifeGain SVar:HasAttackEffect:TRUE diff --git a/forge-gui/res/cardsfolder/upcoming/invasion_of_ixalan_belligerent_regisaur.txt b/forge-gui/res/cardsfolder/upcoming/invasion_of_ixalan_belligerent_regisaur.txt new file mode 100644 index 00000000000..06364711329 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/invasion_of_ixalan_belligerent_regisaur.txt @@ -0,0 +1,20 @@ +Name:Invasion of Ixalan +ManaCost:1 G +Types:Battle Siege +Defense:4 +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigDig | TriggerDescription$ When CARDNAME enters the battlefield, look at the top five cards of your library. You may reveal a permanent card from among them and put it into your hand. Put the rest on the bottom of your library in a random order. +SVar:TrigDig:DB$ Dig | DigNum$ 5 | ChangeNum$ 1 | Optional$ True | ChangeValid$ Permanent | ForceRevealToController$ True | RestRandomOrder$ True +AlternateMode:DoubleFaced +Oracle:(As a Siege enters, choose an opponent to protect it. You and others can attack it. When it's defeated, exile it, then cast it transformed.)\nWhen Invasion of Ixalan enters the battlefield, look at the top five cards of your library. You may reveal a permanent card from among them and put it into your hand. Put the rest on the bottom of your library in a random order. + +ALTERNATE + +Name:Belligerent Regisaur +ManaCost:no cost +Colors:green +Types:Creature Dinosaur +PT:4/3 +K:Trample +T:Mode$ SpellCast | ValidCard$ Card | ValidActivatingPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigPump | TriggerDescription$ Whenever you cast a spell, CARDNAME gains indestructible until end of turn. +SVar:TrigPump:DB$ Pump | KW$ Indestructible +Oracle:Trample\nWhenever you cast a spell, Belligerent Regisaur gains indestructible until end of turn. diff --git a/forge-gui/res/cardsfolder/upcoming/invasion_of_kaldheim_pyre_of_the_world_tree.txt b/forge-gui/res/cardsfolder/upcoming/invasion_of_kaldheim_pyre_of_the_world_tree.txt new file mode 100644 index 00000000000..98ec4966173 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/invasion_of_kaldheim_pyre_of_the_world_tree.txt @@ -0,0 +1,29 @@ +Name:Invasion of Kaldheim +ManaCost:3 R +Types:Battle Siege +Defense:4 +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigExileHand | TriggerDescription$ When CARDNAME enters the battlefield, exile all cards from your hand, then draw that many cards. Until the end of your next turn, you may play cards exiled this way. +SVar:TrigExileHand:DB$ ChangeZoneAll | ChangeType$ Card.YouOwn | Origin$ Hand | Destination$ Exile | RememberChanged$ True | SubAbility$ DBDraw +SVar:DBDraw:DB$ Draw | Defined$ You | NumCards$ Y | SubAbility$ DBEffect +SVar:DBEffect:DB$ Effect | RememberObjects$ RememberedCard | StaticAbilities$ Play | Duration$ UntilTheEndOfYourNextTurn | ForgetOnMoved$ Exile | SubAbility$ DBCleanup +SVar:Play:Mode$ Continuous | MayPlay$ True | EffectZone$ Command | Affected$ Card.IsRemembered | AffectedZone$ Exile | Description$ Until the end of your next turn, you may play cards exiled this way. +SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True +SVar:Y:Count$RememberedSize +AlternateMode:DoubleFaced +Oracle:(As a Siege enters, choose an opponent to protect it. You and others can attack it. When it's defeated, exile it, then cast it transformed.)\nWhen Invasion of Kaldheim enters the battlefield, exile all cards from your hand, then draw that many cards. Until the end of your next turn, you may play cards exiled this way. + +ALTERNATE + +Name:Pyre of the World Tree +ManaCost:no cost +Colors:red +Types:Enchantment +A:AB$ DealDamage | Cost$ Discard<1/Land> | ValidTgts$ Creature,Player,Planeswalker | TgtPrompt$ Select any target | NumDmg$ 2 | SpellDescription$ CARDNAME deals 2 damage to any target. +T:Mode$ Discarded | ValidCard$ Land.YouOwn | TriggerZones$ Battlefield | Execute$ TrigExile | TriggerDescription$ Whenever you discard a land card, exile the top card of your library. You may play that card this turn. +SVar:TrigExile:DB$ Dig | DigNum$ 1 | ChangeNum$ All | DestinationZone$ Exile | RememberChanged$ True | SubAbility$ DBEffect | AILogic$ ExileAndPlayUntilEOT +SVar:DBEffect:DB$ Effect | RememberObjects$ RememberedCard | StaticAbilities$ Play | ExileOnMoved$ Exile | SubAbility$ DBCleanup +SVar:Play:Mode$ Continuous | MayPlay$ True | EffectZone$ Command | Affected$ Card.IsRemembered | AffectedZone$ Exile | Description$ You may play that card this turn. +SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True +DeckHas:Ability$Discard +DeckHints:Ability$Discard +Oracle:Discard a land card: Pyre of the World Tree deals 2 damage to any target.\nWhenever you discard a land card, exile the top card of your library. You may play that card this turn. diff --git a/forge-gui/res/cardsfolder/upcoming/invasion_of_kylem__valors_reach_tag_team.txt b/forge-gui/res/cardsfolder/upcoming/invasion_of_kylem_valors_reach_tag_team.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/invasion_of_kylem__valors_reach_tag_team.txt rename to forge-gui/res/cardsfolder/upcoming/invasion_of_kylem_valors_reach_tag_team.txt diff --git a/forge-gui/res/cardsfolder/upcoming/invasion_of_new_phyrexia_teferi_akosa_of_zhalfir.txt b/forge-gui/res/cardsfolder/upcoming/invasion_of_new_phyrexia_teferi_akosa_of_zhalfir.txt index bb4193d7aff..4c702108e83 100644 --- a/forge-gui/res/cardsfolder/upcoming/invasion_of_new_phyrexia_teferi_akosa_of_zhalfir.txt +++ b/forge-gui/res/cardsfolder/upcoming/invasion_of_new_phyrexia_teferi_akosa_of_zhalfir.txt @@ -20,8 +20,8 @@ A:AB$ Draw | Cost$ AddCounter<1/LOYALTY> | Planeswalker$ True | NumCards$ 2 | Su SVar:DBDiscard:DB$ Discard | NumCards$ 2 | Mode$ TgtChoose | UnlessType$ Creature | StackDescription$ SpellDescription | SpellDescription$ Then discard two cards unless you discard a creature card. A:AB$ Effect | Cost$ SubCounter<2/LOYALTY> | Planeswalker$ True | Name$ Emblem - Teferi Akosa of Zhalfir | Image$ emblem_teferi_akosa_of_zhalfir | StaticAbilities$ STPump | Duration$ Permanent | SpellDescription$ You get an emblem with "Knights you control get +1/+0 and have ward {1}." SVar:STPump:Mode$ Continuous | EffectZone$ Command | AffectedZone$ Battlefield | Affected$ Knight.YouCtrl | AddPower$ 1 | AddKeyword$ Ward:1 | Description$ Knights you control get +1/+0 and have ward {1}. -A:AB$ Tap | Cost$ SubCounter<3/LOYALTY> | Planeswalker$ True | CardChoices$ Creature.YouCtrl+untapped | AnyNumber$ True | ChoiceAmount$ Count$Valid Creature.YouCtrl+untapped | ChoicePrompt$ Tap any number of untapped creatures you control | RememberTapped$ True | SubAbility$ DBImmediateTrig | StackDescription$ Tap any number of untapped creatures you control. | SpellDescription$ Tap any number of untapped creatures you control. When you do, shuffle target nonland permanent an opponent controls with mana value X or less into its owner's library, where X is the number of creatures tapped this way. -SVar:DBImmediateTrig:DB$ ImmediateTrigger | RememberSVarAmount$ Y | Execute$ TrigChangeZone | SubAbility$ DBCleanup | TriggerDescription$ When you do, shuffle target nonland permanent an opponent controls with mana value X or less into its owner's library, where X is the number of creatures tapped this way. +A:AB$ Tap | Cost$ SubCounter<3/LOYALTY> | Planeswalker$ True | CardChoices$ Creature.YouCtrl+untapped | AnyNumber$ True | ChoiceAmount$ Count$Valid Creature.YouCtrl+untapped | ChoicePrompt$ Tap any number of untapped creatures you control | RememberTapped$ True | SubAbility$ DBImmediateTrig | StackDescription$ Tap any number of untapped creatures you control. | SpellDescription$ Tap any number of untapped creatures you control. +SVar:DBImmediateTrig:DB$ ImmediateTrigger | RememberSVarAmount$ Y | Execute$ TrigChangeZone | SubAbility$ DBCleanup | SpellDescription$ When you do, shuffle target nonland permanent an opponent controls with mana value X or less into its owner's library, where X is the number of creatures tapped this way. SVar:TrigChangeZone:DB$ ChangeZone | ValidTgts$ Permanent.nonLand+OppCtrl+cmcLEX | TgtPrompt$ Select target nonland permanent an opponent controls with mana value X or less | Origin$ Battlefield | Destination$ Library | Shuffle$ True SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True SVar:X:Count$TriggerRememberAmount diff --git a/forge-gui/res/cardsfolder/upcoming/rampaging_raptor.txt b/forge-gui/res/cardsfolder/upcoming/rampaging_raptor.txt new file mode 100644 index 00000000000..8849399ff1c --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/rampaging_raptor.txt @@ -0,0 +1,11 @@ +Name:Rampaging Raptor +ManaCost:2 R R +Types:Creature Dinosaur +PT:4/4 +K:Trample +K:Haste +A:AB$ Pump | Cost$ 2 R | NumAtt$ 2 | SpellDescription$ CARDNAME gets +2/+0 until end of turn. +T:Mode$ DamageDone | ValidSource$ Card.Self | ValidTarget$ Opponent | CombatDamage$ True | TriggerZones$ Battlefield | Execute$ TrigDamage | TriggerDescription$ Whenever CARDNAME deals combat damage to an opponent, it deals that much damage to target planeswalker that player controls or battle that player protects. +SVar:TrigDamage:DB$ DealDamage | ValidTgts$ Planeswalker.ControlledBy TriggeredTarget,Battle.ProtectedBy TriggeredTarget | TgtPrompt$ Select target planeswalker that player controls or battle that player protects | NumDmg$ X +SVar:X:TriggerCount$DamageAmount +Oracle:Trample, haste\n{2}{R}: Rampaging Raptor gets +2/+0 until end of turn.\nWhenever Rampaging Raptor deals combat damage to an opponent, it deals that much damage to target planeswalker that player controls or battle that player protects. diff --git a/forge-gui/res/cardsfolder/upcoming/war_historian.txt b/forge-gui/res/cardsfolder/upcoming/war_historian.txt new file mode 100644 index 00000000000..e1dcb3b4d54 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/war_historian.txt @@ -0,0 +1,8 @@ +Name:War Historian +ManaCost:2 G +Types:Creature Human Monk +PT:3/3 +K:Reach +S:Mode$ Continuous | Affected$ Card.Self+attackedBattleThisTurn | AddKeyword$ Indestructible | Description$ CARDNAME has indestructible as long as it attacked a battle this turn. +AI:RemoveDeck:Random +Oracle:Reach\nWar Historian has indestructible as long as it attacked a battle this turn. diff --git a/forge-gui/res/cardsfolder/upcoming/wildwood_escort.txt b/forge-gui/res/cardsfolder/upcoming/wildwood_escort.txt new file mode 100644 index 00000000000..c69dfea3de4 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/wildwood_escort.txt @@ -0,0 +1,11 @@ +Name:Wildwood Escort +ManaCost:4 G +Types:Creature Elf Warrior +PT:3/3 +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigReturn | TriggerDescription$ When CARDNAME enters the battlefield, return target creature or battle card from your graveyard to your hand. +SVar:TrigReturn:DB$ ChangeZone | Origin$ Graveyard | Destination$ Hand | TgtPrompt$ Select target creature or battle card in your graveyard | ValidTgts$ Creature.YouOwn,Battle.YouOwn +R:Event$ Moved | ActiveZones$ Battlefield | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.Self | ReplaceWith$ Exile | Description$ If CARDNAME would die, exile it instead. +SVar:Exile:DB$ ChangeZone | Origin$ Battlefield | Destination$ Exile | Defined$ ReplacedCard +DeckHints:Type$Battle +DeckHas:Ability$Graveyard +Oracle:When Wildwood Escort enters the battlefield, return target creature or battle card from your graveyard to your hand.\nIf Wildwood Escort would die, exile it instead. diff --git a/forge-gui/res/cardsfolder/v/virulent_wound.txt b/forge-gui/res/cardsfolder/v/virulent_wound.txt index 50fbf739f95..001047b33a2 100644 --- a/forge-gui/res/cardsfolder/v/virulent_wound.txt +++ b/forge-gui/res/cardsfolder/v/virulent_wound.txt @@ -1,8 +1,8 @@ Name:Virulent Wound ManaCost:B Types:Instant -A:SP$ PutCounter | ValidTgts$ Creature | TgtPrompt$ Select target creature | CounterType$ M1M1 | CounterNum$ 1 | IsCurse$ True | SubAbility$ DBDelayedTrigger | SpellDescription$ Put a -1/-1 counter on target creature. When that creature dies this turn, its controller gets a poison counter. -SVar:DBDelayedTrigger:DB$ DelayedTrigger | Mode$ ChangesZone | RememberObjects$ Targeted | ValidCard$ Card.IsTriggerRemembered | Origin$ Battlefield | Destination$ Graveyard | ThisTurn$ True | Execute$ TrigPoison | TriggerDescription$ When that creature dies this turn, its controller gets a poison counter. +A:SP$ PutCounter | ValidTgts$ Creature | TgtPrompt$ Select target creature | CounterType$ M1M1 | CounterNum$ 1 | IsCurse$ True | SubAbility$ DBDelayedTrigger | SpellDescription$ Put a -1/-1 counter on target creature. +SVar:DBDelayedTrigger:DB$ DelayedTrigger | Mode$ ChangesZone | RememberObjects$ Targeted | ValidCard$ Card.IsTriggerRemembered | Origin$ Battlefield | Destination$ Graveyard | ThisTurn$ True | Execute$ TrigPoison | SpellDescription$ When that creature dies this turn, its controller gets a poison counter. SVar:TrigPoison:DB$ Poison | Defined$ TriggeredCardController | Num$ 1 DeckHas:Ability$Counters Oracle:Put a -1/-1 counter on target creature. When that creature dies this turn, its controller gets a poison counter. diff --git a/forge-gui/res/cardsfolder/w/waylay.txt b/forge-gui/res/cardsfolder/w/waylay.txt index b79c13b39c8..6c1bb773a16 100644 --- a/forge-gui/res/cardsfolder/w/waylay.txt +++ b/forge-gui/res/cardsfolder/w/waylay.txt @@ -2,7 +2,7 @@ Name:Waylay ManaCost:2 W Types:Instant A:SP$ Token | TokenAmount$ 3 | TokenScript$ w_2_2_knight | RememberTokens$ True | SubAbility$ DBDelayedTrigger | SpellDescription$ Create three 2/2 white Knight creature tokens. -SVar:DBDelayedTrigger:DB$ DelayedTrigger | RememberObjects$ Remembered | Mode$ Phase | Phase$ Cleanup | Execute$ TrigExileAll | SubAbility$ DBCleanup | TriggerDescription$ Exile them at the beginning of the next cleanup step. +SVar:DBDelayedTrigger:DB$ DelayedTrigger | RememberObjects$ Remembered | Mode$ Phase | Phase$ Cleanup | Execute$ TrigExileAll | SubAbility$ DBCleanup | SpellDescription$ Exile them at the beginning of the next cleanup step. SVar:TrigExileAll:DB$ ChangeZone | Defined$ DelayTriggerRememberedLKI | Origin$ Battlefield | Destination$ Exile SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True DeckHas:Ability$Token & Type$Knight diff --git a/forge-gui/res/editions/March of the Machine Commander.txt b/forge-gui/res/editions/March of the Machine Commander.txt index a3cee2575d1..710b47347ad 100644 --- a/forge-gui/res/editions/March of the Machine Commander.txt +++ b/forge-gui/res/editions/March of the Machine Commander.txt @@ -201,7 +201,7 @@ ScryfallCode=MOC 193 R Knight of the White Orchid @Mark Zug 194 U Master Splicer @Chippy 195 R Maul of the Skyclaves @Joseph Meehan -196 U Mentor of the Meek @Jana Schirmer & Johannes Voss +196 R Mentor of the Meek @Jana Schirmer & Johannes Voss 197 M Mikaeus, the Lunarch @Steven Belledin 198 U Path to Exile @Todd Lockwood 199 R Phyrexian Rebirth @Scott Chou diff --git a/forge-gui/res/editions/March of the Machine The Aftermath.txt b/forge-gui/res/editions/March of the Machine The Aftermath.txt index b68a33ebaf9..3a965d2c84e 100644 --- a/forge-gui/res/editions/March of the Machine The Aftermath.txt +++ b/forge-gui/res/editions/March of the Machine The Aftermath.txt @@ -6,5 +6,9 @@ Type=Expansion ScryfallCode=MAT [cards] +33 R Jolrael, Voice of Zhalfir @Lorenzo Mastroianni 34 R The Kenriths' Royal Funeral @Manuel Castañón -230 Jolrael, Voice of Zhalfir @Ernanda Souza +83 R Jolrael, Voice of Zhalfir @Scott M. Fischer +133 R Jolrael, Voice of Zhalfir @Lorenzo Mastroianni +168 R Jolrael, Voice of Zhalfir @Lorenzo Mastroianni +230 R Jolrael, Voice of Zhalfir @Ernanda Souza diff --git a/forge-gui/res/editions/March of the Machine.txt b/forge-gui/res/editions/March of the Machine.txt index e6ce3275820..932b6d706f2 100644 --- a/forge-gui/res/editions/March of the Machine.txt +++ b/forge-gui/res/editions/March of the Machine.txt @@ -485,9 +485,6 @@ g_1_1_phyrexian_saproling g_x_x_dinosaur gw_3_3_phyrexian_hydra_lifelink gw_3_3_phyrexian_hydra_reach -incubator_c_0_0_a_phyrexian -incubator_c_0_0_a_phyrexian -incubator_c_0_0_a_phyrexian rw_3_2_spirit rw_3_2_warrior_symbiotic_attack u_1_1_kraken_trample diff --git a/forge-gui/res/editions/Multiverse Legends.txt b/forge-gui/res/editions/Multiverse Legends.txt index 546b30b4d43..bbe09c081c2 100644 --- a/forge-gui/res/editions/Multiverse Legends.txt +++ b/forge-gui/res/editions/Multiverse Legends.txt @@ -71,22 +71,52 @@ ScryfallCode=MUL 63 M Yarok, the Desecrated @Jessica Rossier 64 R Yorion, Sky Nomad @Justine Mara Andersen 65 R Zirda, the Dawnwaker @Justine Mara Andersen +66 R Anafenza, Kin-Tree Spirit @Ryan Yee +67 U Daxos, Blessed by the Sun @Lius Lasahido 68 M Elesh Norn, Grand Cenobite @Igor Kieryluk 69 M Kenrith, the Returned King @Kieran Yanner +70 U Kwende, Pride of Femeref @Daarken 71 R Sram, Senior Edificer @Chris Rahn +72 R Thalia, Guardian of Thraben @Jana Schirmer & Johannes Voss 73 R Baral, Chief of Compliance @Wesley Burt +74 R Emry, Lurker of the Loch @Livia Prima +75 U Inga Rune-Eyes @Bram Sels 76 M Jin-Gitaxias, Core Augur @Eric Deschamps +77 U Tetsuko Umezawa, Fugitive @Randy Vargas +78 R Ayara, First of Locthwain @Ryan Pancoast +79 R Horobi, Death's Wail @John Bolton +80 R Seizan, Perverter of Truth @Kev Walker 81 M Sheoldred, Whispering One @Jana Schirmer & Johannes Voss 82 M Skithiryx, the Blight Dragon @Chippy +83 U Tymaret, Chosen from Death @Chase Stone 84 U Yargle, Glutton of Urborg @Jehan Choo +85 R Captain Lannery Storm @Chris Rallis +86 M Ragavan, Nimble Pilferer @Simon Dominic +87 R Squee, the Immortal @Svetlin Velinov 88 M Urabrask the Hidden @Brad Rigney +89 U Valduk, Keeper of the Flame @Victor Adame Minguez 90 U Zada, Hedron Grinder @Chris Rallis +91 U Fynn, the Fangbearer @Lie Setiawan +92 R Goreclaw, Terror of Qal Sisma @Svetlin Velinov +93 U Renata, Called to the Hunt @Chris Rahn 94 M Vorinclex, Voice of Hunger @Karl Kopinski +95 R Yedora, Grave Gardener @Svetlin Velinov +96 U Aegar, the Freezing Flame @Chris Rahn 97 R Arixmethes, Slumbering Isle @Dimitar Marinski +98 M Atraxa, Praetors' Voice @Victor Adame Minguez +99 R Atris, Oracle of Half-Truths @Bastien L. Deharme +100 M Aurelia, the Warleader @Slawomir Maniak 101 R Brudiclad, Telchor Engineer @Daarken 102 U Dina, Soul Steeper @Chris Rahn +103 M Ezuri, Claw of Progress @James Ryman +104 R Firesong and Sunspeaker @Zoltan Boros 105 U Firja, Judge of Valor @Livia Prima +106 M Grimgrin, Corpse-Born @Bartek Fedyczak 107 R Gyruda, Doom of Depths @Tyler Jacobson +108 U Imoti, Celebrant of Bounty @Ekaterina Burmak +109 R Jegantha, the Wellspring @Chris Rahn +110 R Judith, the Scourge Diva @Wesley Burt +111 U Juri, Master of the Revue @Dmitry Burmak 112 R Kaheera, the Orphanguard @Ryan Pancoast 113 R Keruga, the Macrosage @Dan Scott 114 M Kroxa, Titan of Death's Hunger @Vincent Proce @@ -95,7 +125,13 @@ ScryfallCode=MUL 117 R Lutri, the Spellchaser @Lie Setiawan 118 M Niv-Mizzet Reborn @Raymond Swanland 119 R Obosh, the Preypiercer @Daarken +120 U Radha, Coalition Warlord @Randy Vargas 121 U Raff, Weatherlight Stalwart @Eelis Kyttanen +122 U Reyav, Master Smith @Scott Murphy +123 U Rona, Sheoldred's Faithful @Ryan Alexander Lee +124 U Shanna, Sisay's Legacy @Magali Villeneuve +125 R Taigam, Ojutai Master @Simon Dominic +126 R Teysa Karlov @Magali Villeneuve 127 R Umori, the Collector @Jehan Choo 128 M Yarok, the Desecrated @Daarken 129 R Yorion, Sky Nomad @Steven Belledin diff --git a/forge-gui/res/languages/de-DE.properties b/forge-gui/res/languages/de-DE.properties index ffd47053a66..70c2c019e3d 100644 --- a/forge-gui/res/languages/de-DE.properties +++ b/forge-gui/res/languages/de-DE.properties @@ -1858,6 +1858,7 @@ lblSearchPlayerZoneConfirm=Durchsuche {0} {1}? lblCardMatchSearchingTypeInAlternateZones=Karten entsprechen deiner Suche in alternativen Zonen lblLookingCardIn=Schaue nach Karten in lblDoYouWantPlayCard=Möchtest du {0} spielen? +lblDoYouWantPlayCardTransformed=Möchtest du {0} verwandelt spielen? lblSelectCardFromPlayerZone=Wähle Karte von {0} {1} lblSelectUpToNumCardFromPlayerZone=Wähle bis zu {0} Karte(n) von {1} {2} lblSelectCardsFromPlayerZone=Wähle Karten {0} {1} diff --git a/forge-gui/res/languages/en-US.properties b/forge-gui/res/languages/en-US.properties index ff38cac5738..ddcc90817c0 100644 --- a/forge-gui/res/languages/en-US.properties +++ b/forge-gui/res/languages/en-US.properties @@ -1863,6 +1863,7 @@ lblSearchPlayerZoneConfirm=Search {0} {1}? lblCardMatchSearchingTypeInAlternateZones=cards match your searching type in Alternate Zones. lblLookingCardIn=Looking at cards in lblDoYouWantPlayCard=Do you want to play {0}? +lblDoYouWantPlayCardTransformed=Do you want to play {0} transformed? lblSelectCardFromPlayerZone=Select a card from {0} {1} lblSelectUpToNumCardFromPlayerZone=Select up to {0} cards from {1} {2} lblSelectCardsFromPlayerZone=Select cards from {0} {1} diff --git a/forge-gui/res/languages/es-ES.properties b/forge-gui/res/languages/es-ES.properties index 14a6d8a327f..7049e2651fa 100644 --- a/forge-gui/res/languages/es-ES.properties +++ b/forge-gui/res/languages/es-ES.properties @@ -1859,6 +1859,7 @@ lblSearchPlayerZoneConfirm=¿Buscar {0} {1}? lblCardMatchSearchingTypeInAlternateZones=las cartas coinciden con tu tipo de búsqueda en las zonas alternativas. lblLookingCardIn=Mirando las cartas en lblDoYouWantPlayCard=¿Quieres jugar {0}? +lblDoYouWantPlayCardTransformed=¿Quieres jugar {0} transformada? lblSelectCardFromPlayerZone=Selecciona una carta de {0} {1} lblSelectUpToNumCardFromPlayerZone=Selecciona hasta {0} cartas de {1} {2} lblSelectCardsFromPlayerZone=Selecciona cartas de {0} {1} diff --git a/forge-gui/res/languages/fr-FR.properties b/forge-gui/res/languages/fr-FR.properties index 889bca86224..62f6c4d2af7 100644 --- a/forge-gui/res/languages/fr-FR.properties +++ b/forge-gui/res/languages/fr-FR.properties @@ -1860,6 +1860,7 @@ lblSearchPlayerZoneConfirm=Rechercher {0} {1} ? lblCardMatchSearchingTypeInAlternateZones=les cartes correspondent à votre type de recherche dans les zones alternatives. lblLookingCardIn=Regarder les cartes dans lblDoYouWantPlayCard=Voulez-vous jouer à {0} ? +lblDoYouWantPlayCardTransformed=Voulez-vous jouer à {0} transformée? lblSelectCardFromPlayerZone=Sélectionnez une carte de {0} {1} lblSelectUpToNumCardFromPlayerZone=S\u00e9lectionnez jusqu''\u00e0 {0} cartes de {1} {2} lblSelectCardsFromPlayerZone=Sélectionner les cartes de {0} {1} diff --git a/forge-gui/res/languages/it-IT.properties b/forge-gui/res/languages/it-IT.properties index 03b6c822be7..5b1fd660af8 100644 --- a/forge-gui/res/languages/it-IT.properties +++ b/forge-gui/res/languages/it-IT.properties @@ -1858,6 +1858,7 @@ lblSearchPlayerZoneConfirm=Cerchi {1} di {0}? lblCardMatchSearchingTypeInAlternateZones=carte corrispondono alla tua ricerca in zone diverse.. lblLookingCardIn=Stai guardando le carte in lblDoYouWantPlayCard=Vuoi giocare {0}? +lblDoYouWantPlayCardTransformed=Vuoi giocare {0} transformata? lblSelectCardFromPlayerZone=Scegl;i una carta da {1} di {0} lblSelectUpToNumCardFromPlayerZone=Scegli fino a {0} carte da {2} di {1} lblSelectCardsFromPlayerZone=Scegli carte a {1} di {0} diff --git a/forge-gui/res/languages/ja-JP.properties b/forge-gui/res/languages/ja-JP.properties index f70ba25cdde..84cd585e088 100644 --- a/forge-gui/res/languages/ja-JP.properties +++ b/forge-gui/res/languages/ja-JP.properties @@ -1858,6 +1858,7 @@ lblSearchPlayerZoneConfirm={0} {1}を探しますか? lblCardMatchSearchingTypeInAlternateZones=枚もう一つの領域のカードが探すタイプと一致します。 lblLookingCardIn=カードを見る lblDoYouWantPlayCard={0}をプレイしますか? +lblDoYouWantPlayCardTransformed={0}をプレイしますか変換? lblSelectCardFromPlayerZone={0} {1}から 1枚のカードを選ぶ lblSelectUpToNumCardFromPlayerZone={1} {2}から最大 {0}枚のカードを選ぶ lblSelectCardsFromPlayerZone={0} {1}からカードを選ぶ diff --git a/forge-gui/res/languages/pt-BR.properties b/forge-gui/res/languages/pt-BR.properties index cd0389545c4..d84c38c03b0 100644 --- a/forge-gui/res/languages/pt-BR.properties +++ b/forge-gui/res/languages/pt-BR.properties @@ -1920,6 +1920,7 @@ lblSearchPlayerZoneConfirm=Procurar {0} {1}? lblCardMatchSearchingTypeInAlternateZones=cartas que correspondem à busca de tipo em Zonas Alternativas. lblLookingCardIn=Olhando as cartas em lblDoYouWantPlayCard=Quer jogar {0}? +lblDoYouWantPlayCardTransformed=Você quer jogar {0} transformada? lblSelectCardFromPlayerZone=Escolha a carta de {0} {1} lblSelectUpToNumCardFromPlayerZone=Escolha até {0} cartas de {1} {2} lblSelectCardsFromPlayerZone=Escolha cartas de {0} {1} diff --git a/forge-gui/res/languages/zh-CN.properties b/forge-gui/res/languages/zh-CN.properties index 077b7e066d0..00b22fec9b9 100644 --- a/forge-gui/res/languages/zh-CN.properties +++ b/forge-gui/res/languages/zh-CN.properties @@ -1862,6 +1862,7 @@ lblSearchPlayerZoneConfirm=搜索{0}的{1}? lblCardMatchSearchingTypeInAlternateZones=在你的备用区域搜索匹配类型的卡牌。 lblLookingCardIn=看牌自 lblDoYouWantPlayCard=你想要使用{0}? +lblDoYouWantPlayCardTransformed=你想要使用转化{0}? lblSelectCardFromPlayerZone=选择一张牌从{0}的{1} lblSelectUpToNumCardFromPlayerZone=最多选择{0}张牌来自{1}的{2} lblSelectCardsFromPlayerZone=选择卡牌来自{0}的{1} diff --git a/forge-gui/res/tokenscripts/w_1_1_vampire_knight_lifelink.txt b/forge-gui/res/tokenscripts/w_1_1_vampire_lifelink.txt similarity index 53% rename from forge-gui/res/tokenscripts/w_1_1_vampire_knight_lifelink.txt rename to forge-gui/res/tokenscripts/w_1_1_vampire_lifelink.txt index 68f8d88471b..01f33cc970c 100644 --- a/forge-gui/res/tokenscripts/w_1_1_vampire_knight_lifelink.txt +++ b/forge-gui/res/tokenscripts/w_1_1_vampire_lifelink.txt @@ -1,6 +1,6 @@ -Name:Vampire Knight Token +Name:Vampire Token ManaCost:no cost -Types:Creature Knight Vampire +Types:Creature Vampire Colors:white PT:1/1 K:Lifelink