Merge pull request #2265 from jjayers99/master

Adventure mode revamp, Phase 1
This commit is contained in:
Anthony Calosa
2023-01-27 19:47:51 +08:00
committed by GitHub
110 changed files with 9069 additions and 460 deletions

View File

@@ -792,6 +792,11 @@ public class AiCostDecision extends CostDecisionMakerBase {
return PaymentDecision.number(0); return PaymentDecision.number(0);
} }
@Override
public PaymentDecision visit(CostPayShards cost) {
return PaymentDecision.number(0);
}
@Override @Override
public PaymentDecision visit(CostUnattach cost) { public PaymentDecision visit(CostUnattach cost) {
final Card cardToUnattach = cost.findCardToUnattach(source, player, ability); final Card cardToUnattach = cost.findCardToUnattach(source, player, ability);

View File

@@ -42,7 +42,7 @@ public class DeckHints {
} }
private boolean valid = false; private boolean valid = false;
private List<Pair<Type, String>> filters = null; public List<Pair<Type, String>> filters = null;
/** /**
* Construct a DeckHints from the SVar string. * Construct a DeckHints from the SVar string.

View File

@@ -27,6 +27,7 @@ import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
import forge.game.card.*;
import org.apache.commons.lang3.tuple.Pair; import org.apache.commons.lang3.tuple.Pair;
import com.google.common.base.Predicate; import com.google.common.base.Predicate;
@@ -45,16 +46,6 @@ import forge.card.CardRarity;
import forge.card.CardStateName; import forge.card.CardStateName;
import forge.card.CardType.Supertype; import forge.card.CardType.Supertype;
import forge.game.ability.AbilityKey; import forge.game.ability.AbilityKey;
import forge.game.card.Card;
import forge.game.card.CardCollection;
import forge.game.card.CardCollectionView;
import forge.game.card.CardDamageHistory;
import forge.game.card.CardLists;
import forge.game.card.CardPredicates;
import forge.game.card.CardUtil;
import forge.game.card.CardView;
import forge.game.card.CardZoneTable;
import forge.game.card.CounterType;
import forge.game.combat.Combat; import forge.game.combat.Combat;
import forge.game.event.Event; import forge.game.event.Event;
import forge.game.event.GameEventDayTimeChanged; import forge.game.event.GameEventDayTimeChanged;
@@ -305,6 +296,9 @@ public class Game {
pl.setMaxHandSize(psc.getStartingHand()); pl.setMaxHandSize(psc.getStartingHand());
pl.setStartingHandSize(psc.getStartingHand()); pl.setStartingHandSize(psc.getStartingHand());
if (psc.getManaShards() > 0) {
pl.setCounters(CounterEnumType.MANASHARDS, psc.getManaShards(), true);
}
int teamNum = psc.getTeamNumber(); int teamNum = psc.getTeamNumber();
if (teamNum == -1) { if (teamNum == -1) {
// RegisteredPlayer doesn't have an assigned team, set it to 1 higher than the highest found team number // RegisteredPlayer doesn't have an assigned team, set it to 1 higher than the highest found team number

View File

@@ -390,6 +390,7 @@ public enum CounterEnumType {
POISON("POISN"), POISON("POISN"),
TICKET("TICKET"), TICKET("TICKET"),
MANASHARDS("MANASHARDS"), //Adventure-specific mechanic
// Keyword Counters // Keyword Counters
/* /*

View File

@@ -324,6 +324,11 @@ public class Cost implements Serializable {
final String[] splitStr = abCostParse(parse, 1); final String[] splitStr = abCostParse(parse, 1);
return new CostPayEnergy(splitStr[0]); return new CostPayEnergy(splitStr[0]);
} }
if (parse.startsWith("PayShards<")) { //Adventure specific energy-esque tokens
// Payshards<ShardCost>
final String[] splitStr = abCostParse(parse, 1);
return new CostPayShards(splitStr[0]);
}
if (parse.startsWith("GainLife<")) { if (parse.startsWith("GainLife<")) {
// PayLife<LifeCost> // PayLife<LifeCost>

View File

@@ -0,0 +1,99 @@
/*
* Forge: Play Magic: the Gathering.
* Copyright (C) 2011 Forge Team
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package forge.game.cost;
import com.google.common.base.Strings;
import forge.game.card.Card;
import forge.game.card.CounterEnumType;
import forge.game.player.Player;
import forge.game.spellability.SpellAbility;
public class CostPayShards extends CostPart {
/**
* Serializables need a version ID.
*/
private static final long serialVersionUID = 1L;
int paidAmount = 0;
/**
* Instantiates a new cost pay shards.
*
* @param amount
* the amount
*/
public CostPayShards(final String amount) {
this.setAmount(amount);
}
@Override
public int paymentOrder() { return 7; }
@Override
public Integer getMaxAmountX(final SpellAbility ability, final Player payer, final boolean effect) {
return payer.getCounters(CounterEnumType.MANASHARDS);
}
/*
* (non-Javadoc)
*
* @see forge.card.cost.CostPart#toString()
*/
@Override
public final String toString() {
final StringBuilder sb = new StringBuilder();
sb.append("Pay ");
sb.append(Strings.repeat("{M}", Integer.parseInt(getAmount())));
return sb.toString();
}
/*
* (non-Javadoc)
*
* @see forge.card.cost.CostPart#refund(forge.Card)
*/
@Override
public final void refund(final Card source) {
// Really should be activating player
source.getController().loseShards(this.paidAmount * -1);
}
/*
* (non-Javadoc)
*
* @see
* forge.card.cost.CostPart#canPay(forge.card.spellability.SpellAbility,
* forge.Card, forge.Player, forge.card.cost.Cost)
*/
@Override
public final boolean canPay(final SpellAbility ability, final Player payer, final boolean effect) {
return payer.getCounters(CounterEnumType.MANASHARDS) >= this.getAbilityAmount(ability);
}
@Override
public boolean payAsDecided(Player ai, PaymentDecision decision, SpellAbility ability, final boolean effect) {
paidAmount = decision.c;
return ai.payShards(paidAmount, null);
}
public <T> T accept(ICostVisitor<T> visitor) {
return visitor.visit(this);
}
}

View File

@@ -34,6 +34,7 @@ public interface ICostVisitor<T> {
T visit(CostUntap cost); T visit(CostUntap cost);
T visit(CostUnattach cost); T visit(CostUnattach cost);
T visit(CostTapType cost); T visit(CostTapType cost);
T visit(CostPayShards cost);
class Base<T> implements ICostVisitor<T> { class Base<T> implements ICostVisitor<T> {
@@ -196,6 +197,11 @@ public interface ICostVisitor<T> {
public T visit(CostTapType cost) { public T visit(CostTapType cost) {
return null; return null;
} }
@Override
public T visit(CostPayShards cost) {
return null;
}
} }
} }

View File

@@ -661,6 +661,28 @@ public class Player extends GameEntity implements Comparable<Player> {
return canPayEnergy(energyPayment) && loseEnergy(energyPayment) > -1; return canPayEnergy(energyPayment) && loseEnergy(energyPayment) > -1;
} }
public final boolean canPayShards(final int shardPayment) {
int cnt = getCounters(CounterEnumType.MANASHARDS);
return cnt >= shardPayment;
}
public final int loseShards(int lostShards) {
int cnt = getCounters(CounterEnumType.MANASHARDS);
if (lostShards > cnt) {
return -1;
}
cnt -= lostShards;
this.setCounters(CounterEnumType.MANASHARDS, cnt, true);
return cnt;
}
public final boolean payShards(final int shardPayment, final Card source) {
if (shardPayment <= 0)
return true;
return canPayShards(shardPayment) && loseShards(shardPayment) > -1;
}
// This function handles damage after replacement and prevention effects are applied // This function handles damage after replacement and prevention effects are applied
@Override @Override
public final int addDamageAfterPrevention(final int amount, final Card source, final boolean isCombat, GameEntityCounterTable counterTable) { public final int addDamageAfterPrevention(final int amount, final Card source, final boolean isCombat, GameEntityCounterTable counterTable) {

View File

@@ -26,6 +26,7 @@ public class RegisteredPlayer {
private int startingLife = 20; private int startingLife = 20;
private int startingHand = 7; private int startingHand = 7;
private int manaShards = 0;
private Iterable<IPaperCard> cardsOnBattlefield = null; private Iterable<IPaperCard> cardsOnBattlefield = null;
private Iterable<IPaperCard> extraCardsOnBattlefield = null; private Iterable<IPaperCard> extraCardsOnBattlefield = null;
private Iterable<? extends IPaperCard> schemes = null; private Iterable<? extends IPaperCard> schemes = null;
@@ -58,6 +59,14 @@ public class RegisteredPlayer {
this.startingLife = startingLife; this.startingLife = startingLife;
} }
public final int getManaShards() {
return manaShards;
}
public final void setManaShards(int manaShards) {
this.manaShards = manaShards;
}
public final void setCardsOnBattlefield(Iterable<IPaperCard> cardsOnTable) { public final void setCardsOnBattlefield(Iterable<IPaperCard> cardsOnTable) {
this.cardsOnBattlefield = cardsOnTable; this.cardsOnBattlefield = cardsOnTable;
} }

View File

@@ -1466,6 +1466,7 @@ public class FSkin {
addEncodingSymbol("TK", FSkinProp.IMG_TICKET); addEncodingSymbol("TK", FSkinProp.IMG_TICKET);
addEncodingSymbol("EXPERIENCE", FSkinProp.IMG_EXPERIENCE); addEncodingSymbol("EXPERIENCE", FSkinProp.IMG_EXPERIENCE);
addEncodingSymbol("A-", FSkinProp.IMG_ALCHEMY); addEncodingSymbol("A-", FSkinProp.IMG_ALCHEMY);
addEncodingSymbol("M", FSkinProp.ICO_MANASHARD);
// Set look and feel after skin loaded // Set look and feel after skin loaded
FView.SINGLETON_INSTANCE.setSplashProgessBarMessage("Setting look and feel..."); FView.SINGLETON_INSTANCE.setSplashProgessBarMessage("Setting look and feel...");

View File

@@ -2,27 +2,33 @@ package forge.adventure.character;
import com.badlogic.gdx.utils.Array; import com.badlogic.gdx.utils.Array;
import forge.Forge; import forge.Forge;
import forge.adventure.data.ShopData;
import forge.adventure.scene.RewardScene; import forge.adventure.scene.RewardScene;
import forge.adventure.stage.MapStage; import forge.adventure.stage.MapStage;
import forge.adventure.util.Reward; import forge.adventure.util.Reward;
/** /**
* Map actor that will open the Shop on collision * Map actor that will open the Shop on collision
*/ */
public class ShopActor extends MapActor{ public class ShopActor extends MapActor{
private final MapStage stage; private final MapStage stage;
private final boolean unlimited; private ShopData shopData;
Array<Reward> rewardData; Array<Reward> rewardData;
public ShopActor(MapStage stage, int id, Array<Reward> rewardData, boolean unlimited) float shopPriceModifier = 1.0f;
float townPriceModifier = 1.0f;
public ShopActor(MapStage stage, int id, Array<Reward> rewardData, ShopData data)
{ {
super(id); super(id);
this.stage = stage; this.stage = stage;
this.shopData = data;
this.rewardData = rewardData; this.rewardData = rewardData;
this.unlimited = unlimited; this.shopPriceModifier = stage.getChanges().getShopPriceModifier(id) ;
this.townPriceModifier = stage.getChanges().getTownPriceModifier();
} }
public float getPriceModifier() { return (shopPriceModifier > 0? shopPriceModifier:1.0f) * (townPriceModifier> 0? townPriceModifier:1.0f); }
public MapStage getMapStage() public MapStage getMapStage()
{ {
return stage; return stage;
@@ -39,6 +45,28 @@ public class ShopActor extends MapActor{
public boolean isUnlimited() { public boolean isUnlimited() {
return unlimited; return shopData.unlimited;
} }
@Override
public String getName() {
return shopData.name;
}
public String getDescription() {
return shopData.description;
}
public int getRestockPrice() {
return shopData.restockPrice;
}
public boolean canRestock() {
return getRestockPrice() > 0;
}
public ShopData getShopData() { return shopData; }
public void setRewardData(Array<Reward> data) { rewardData = data; }
public Array<Reward> getRewardData() { return rewardData;}
} }

View File

@@ -10,7 +10,7 @@ import com.badlogic.gdx.utils.ObjectMap;
public class DifficultyData { public class DifficultyData {
public String name=""; public String name="";
public int startingLife=10; public int startingLife=10;
public int startingMana=100; public int startingShards=1;
public int staringMoney=10; public int staringMoney=10;
public float enemyLifeFactor=1; public float enemyLifeFactor=1;
public boolean startingDifficulty; public boolean startingDifficulty;
@@ -18,6 +18,7 @@ public class DifficultyData {
public float sellFactor=0.2f; public float sellFactor=0.2f;
public float goldLoss=0.2f; public float goldLoss=0.2f;
public float lifeLoss=0.2f; public float lifeLoss=0.2f;
public float shardSellRatio = 0.8f;
public float rewardMaxFactor=1f; public float rewardMaxFactor=1f;
public String[] startItems=new String[0]; public String[] startItems=new String[0];

View File

@@ -19,6 +19,7 @@ public class EffectData implements Serializable {
public float moveSpeed = 1.0f; //Change of movement speed. Map only. public float moveSpeed = 1.0f; //Change of movement speed. Map only.
public float goldModifier = -1.0f; //Modifier for shop discounts. public float goldModifier = -1.0f; //Modifier for shop discounts.
public int cardRewardBonus = 0; //Bonus "DeckCard" drops. Max 3. public int cardRewardBonus = 0; //Bonus "DeckCard" drops. Max 3.
public int extraManaShards = 0; //Mana Shard tokens available to spend in battle
//Opponent field. //Opponent field.
public EffectData opponent; //Effects to be applied to the opponent's side. public EffectData opponent; //Effects to be applied to the opponent's side.
@@ -31,6 +32,7 @@ public class EffectData implements Serializable {
startBattleWithCard=effect.startBattleWithCard; startBattleWithCard=effect.startBattleWithCard;
colorView=effect.colorView; colorView=effect.colorView;
opponent = (effect.opponent == null) ? null : new EffectData(effect.opponent); opponent = (effect.opponent == null) ? null : new EffectData(effect.opponent);
extraManaShards = effect.extraManaShards;
} }
public Array<IPaperCard> startBattleWithCards() { public Array<IPaperCard> startBattleWithCards() {

View File

@@ -27,7 +27,7 @@ public class ItemData {
public boolean usableOnWorldMap; public boolean usableOnWorldMap;
public boolean usableInPoi; public boolean usableInPoi;
public String commandOnUse; public String commandOnUse;
public int manaNeeded; public int shardsNeeded;
public ItemData() public ItemData()
@@ -46,7 +46,7 @@ public class ItemData {
usableInPoi = cpy.usableInPoi; usableInPoi = cpy.usableInPoi;
usableOnWorldMap = cpy.usableOnWorldMap; usableOnWorldMap = cpy.usableOnWorldMap;
commandOnUse = cpy.commandOnUse; commandOnUse = cpy.commandOnUse;
manaNeeded = cpy.manaNeeded; shardsNeeded = cpy.shardsNeeded;
} }
public Sprite sprite() public Sprite sprite()
@@ -90,8 +90,8 @@ public class ItemData {
result += "Slot: " + this.equipmentSlot + "\n"; result += "Slot: " + this.equipmentSlot + "\n";
if(effect != null) if(effect != null)
result += effect.getDescription(); result += effect.getDescription();
if(manaNeeded != 0) if(shardsNeeded != 0)
result += manaNeeded+" [+Mana]"; result += shardsNeeded+" [+Shards]";
return result; return result;
} }

View File

@@ -14,6 +14,7 @@ import forge.model.FModel;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.HashSet;
import java.util.List; import java.util.List;
/** /**
@@ -42,6 +43,10 @@ public class RewardData {
public String colorType; public String colorType;
public String cardText; public String cardText;
public boolean matchAllSubTypes; public boolean matchAllSubTypes;
public boolean matchAllColors;
public RewardData[] cardUnion;
public String[] deckNeeds;
public RewardData[] rotation;
public RewardData() { } public RewardData() { }
@@ -64,6 +69,10 @@ public class RewardData {
colorType =rewardData.colorType; colorType =rewardData.colorType;
cardText =rewardData.cardText; cardText =rewardData.cardText;
matchAllSubTypes =rewardData.matchAllSubTypes; matchAllSubTypes =rewardData.matchAllSubTypes;
matchAllColors =rewardData.matchAllColors;
cardUnion =rewardData.cardUnion==null?null:rewardData.cardUnion.clone();
rotation =rewardData.rotation==null?null:rewardData.rotation.clone();
deckNeeds =rewardData.deckNeeds==null?null:rewardData.deckNeeds.clone();
} }
private static Iterable<PaperCard> allCards; private static Iterable<PaperCard> allCards;
@@ -119,6 +128,19 @@ public class RewardData {
int addedCount = (maxCount > 0 ? WorldSave.getCurrentSave().getWorld().getRandom().nextInt(maxCount) : 0); int addedCount = (maxCount > 0 ? WorldSave.getCurrentSave().getWorld().getRandom().nextInt(maxCount) : 0);
switch(type) { switch(type) {
case "Union":
HashSet<PaperCard> pool = new HashSet<>();
for (RewardData r : cardUnion) {
pool.addAll(CardUtil.getPredicateResult(allCards, r));
}
ArrayList<PaperCard> finalPool = new ArrayList(pool);
if (finalPool.size() > 0){
for (int i = 0; i < count; i++) {
ret.add(new Reward(finalPool.get(WorldSave.getCurrentSave().getWorld().getRandom().nextInt(finalPool.size()))));
}
}
break;
case "card": case "card":
case "randomCard": case "randomCard":
if( cardName != null && !cardName.isEmpty() ) { if( cardName != null && !cardName.isEmpty() ) {
@@ -156,8 +178,9 @@ public class RewardData {
case "life": case "life":
ret.add(new Reward(Reward.Type.Life, count + addedCount)); ret.add(new Reward(Reward.Type.Life, count + addedCount));
break; break;
case "mana": case "mana": //backwards compatibility for reward data
ret.add(new Reward(Reward.Type.Mana, count + addedCount)); case "shards":
ret.add(new Reward(Reward.Type.Shards, count + addedCount));
break; break;
} }
} }

View File

@@ -10,10 +10,13 @@ import com.badlogic.gdx.utils.Array;
public class ShopData { public class ShopData {
public String name; public String name;
public String description;
public int restockPrice;
public String spriteAtlas; public String spriteAtlas;
public String sprite; public String sprite;
public boolean unlimited; public boolean unlimited;
public Array<RewardData> rewards; public Array<RewardData> rewards;
public String overlaySprite = "";

View File

@@ -50,8 +50,7 @@ public class AdventurePlayer implements Serializable, SaveFileContent {
private int gold = 0; private int gold = 0;
private int maxLife= 20; private int maxLife= 20;
private int life = 20; private int life = 20;
private int maxMana= 100; private int shards = 0;
private int mana = 100;
private EffectData blessing; //Blessing to apply for next battle. private EffectData blessing; //Blessing to apply for next battle.
private final PlayerStatistic statistic = new PlayerStatistic(); private final PlayerStatistic statistic = new PlayerStatistic();
private final Map<String, Byte> questFlags = new HashMap<>(); private final Map<String, Byte> questFlags = new HashMap<>();
@@ -67,7 +66,7 @@ public class AdventurePlayer implements Serializable, SaveFileContent {
// Signals // Signals
final SignalList onLifeTotalChangeList = new SignalList(); final SignalList onLifeTotalChangeList = new SignalList();
final SignalList onManaTotalChangeList = new SignalList(); final SignalList onShardsChangeList = new SignalList();
final SignalList onGoldChangeList = new SignalList(); final SignalList onGoldChangeList = new SignalList();
final SignalList onPlayerChangeList = new SignalList(); final SignalList onPlayerChangeList = new SignalList();
final SignalList onEquipmentChange = new SignalList(); final SignalList onEquipmentChange = new SignalList();
@@ -93,8 +92,7 @@ public class AdventurePlayer implements Serializable, SaveFileContent {
gold = 0; gold = 0;
maxLife = 20; maxLife = 20;
life = 20; life = 20;
maxMana = 10; shards = 0;
mana = 10;
clearDecks(); clearDecks();
inventoryItems.clear(); inventoryItems.clear();
equippedItems.clear(); equippedItems.clear();
@@ -129,6 +127,7 @@ public class AdventurePlayer implements Serializable, SaveFileContent {
this.difficultyData.spawnRank = difficultyData.spawnRank; this.difficultyData.spawnRank = difficultyData.spawnRank;
this.difficultyData.enemyLifeFactor = difficultyData.enemyLifeFactor; this.difficultyData.enemyLifeFactor = difficultyData.enemyLifeFactor;
this.difficultyData.sellFactor = difficultyData.sellFactor; this.difficultyData.sellFactor = difficultyData.sellFactor;
this.difficultyData.shardSellRatio = difficultyData.shardSellRatio;
gold = difficultyData.staringMoney; gold = difficultyData.staringMoney;
name = n; name = n;
@@ -139,12 +138,12 @@ public class AdventurePlayer implements Serializable, SaveFileContent {
setColorIdentity(DeckProxy.getColorIdentity(deck)); setColorIdentity(DeckProxy.getColorIdentity(deck));
life = maxLife = difficultyData.startingLife; life = maxLife = difficultyData.startingLife;
mana = maxMana = difficultyData.startingMana; shards = difficultyData.startingShards;
inventoryItems.addAll(difficultyData.startItems); inventoryItems.addAll(difficultyData.startItems);
onGoldChangeList.emit(); onGoldChangeList.emit();
onLifeTotalChangeList.emit(); onLifeTotalChangeList.emit();
onManaTotalChangeList.emit(); onShardsChangeList.emit();
} }
public void setSelectedDeckSlot(int slot) { public void setSelectedDeckSlot(int slot) {
@@ -156,8 +155,7 @@ public class AdventurePlayer implements Serializable, SaveFileContent {
} }
public void updateDifficulty(DifficultyData diff) { public void updateDifficulty(DifficultyData diff) {
maxLife = diff.startingLife; maxLife = diff.startingLife;
maxMana = diff.startingMana; this.difficultyData.startingShards = diff.startingShards;
this.difficultyData.startingMana = diff.startingMana;
this.difficultyData.startingLife = diff.startingLife; this.difficultyData.startingLife = diff.startingLife;
this.difficultyData.staringMoney = diff.staringMoney; this.difficultyData.staringMoney = diff.staringMoney;
this.difficultyData.startingDifficulty = diff.startingDifficulty; this.difficultyData.startingDifficulty = diff.startingDifficulty;
@@ -165,6 +163,7 @@ public class AdventurePlayer implements Serializable, SaveFileContent {
this.difficultyData.spawnRank = diff.spawnRank; this.difficultyData.spawnRank = diff.spawnRank;
this.difficultyData.enemyLifeFactor = diff.enemyLifeFactor; this.difficultyData.enemyLifeFactor = diff.enemyLifeFactor;
this.difficultyData.sellFactor = diff.sellFactor; this.difficultyData.sellFactor = diff.sellFactor;
this.difficultyData.shardSellRatio = diff.shardSellRatio;
fullHeal(); fullHeal();
} }
@@ -180,8 +179,7 @@ public class AdventurePlayer implements Serializable, SaveFileContent {
public int getGold() { return gold; } public int getGold() { return gold; }
public int getLife() { return life; } public int getLife() { return life; }
public int getMaxLife() { return maxLife; } public int getMaxLife() { return maxLife; }
public int getMana() { return mana; } public int getShards() { return shards; }
public int getMaxMana() { return maxMana; }
public @Null EffectData getBlessing() { return blessing; } public @Null EffectData getBlessing() { return blessing; }
public Collection<String> getEquippedItems() { return equippedItems.values(); } public Collection<String> getEquippedItems() { return equippedItems.values(); }
@@ -228,6 +226,10 @@ public class AdventurePlayer implements Serializable, SaveFileContent {
if(this.difficultyData.sellFactor==0) if(this.difficultyData.sellFactor==0)
this.difficultyData.sellFactor=0.2f; this.difficultyData.sellFactor=0.2f;
this.difficultyData.shardSellRatio=data.readFloat("sellFactor");
if(this.difficultyData.shardSellRatio==0)
this.difficultyData.shardSellRatio=0.8f;
name = data.readString("name"); name = data.readString("name");
heroRace = data.readInt("heroRace"); heroRace = data.readInt("heroRace");
avatarIndex = data.readInt("avatarIndex"); avatarIndex = data.readInt("avatarIndex");
@@ -240,8 +242,7 @@ public class AdventurePlayer implements Serializable, SaveFileContent {
gold = data.readInt("gold"); gold = data.readInt("gold");
maxLife = data.readInt("maxLife"); maxLife = data.readInt("maxLife");
life = data.readInt("life"); life = data.readInt("life");
maxMana = data.containsKey("maxMana")?data.readInt("maxMana"):100; shards = data.containsKey("shards")?data.readInt("shards"):0;
mana = data.containsKey("mana")?data.readInt("mana"):100;
worldPosX = data.readFloat("worldPosX"); worldPosX = data.readFloat("worldPosX");
worldPosY = data.readFloat("worldPosY"); worldPosY = data.readFloat("worldPosY");
@@ -310,7 +311,7 @@ public class AdventurePlayer implements Serializable, SaveFileContent {
announceCustom = data.containsKey("announceCustom") ? data.readBool("announceCustom") : false; announceCustom = data.containsKey("announceCustom") ? data.readBool("announceCustom") : false;
onLifeTotalChangeList.emit(); onLifeTotalChangeList.emit();
onManaTotalChangeList.emit(); onShardsChangeList.emit();
onGoldChangeList.emit(); onGoldChangeList.emit();
onBlessing.emit(); onBlessing.emit();
} }
@@ -326,6 +327,7 @@ public class AdventurePlayer implements Serializable, SaveFileContent {
data.store("difficultyName",this.difficultyData.name); data.store("difficultyName",this.difficultyData.name);
data.store("enemyLifeFactor",this.difficultyData.enemyLifeFactor); data.store("enemyLifeFactor",this.difficultyData.enemyLifeFactor);
data.store("sellFactor",this.difficultyData.sellFactor); data.store("sellFactor",this.difficultyData.sellFactor);
data.store("shardSellRatio", this.difficultyData.shardSellRatio);
data.store("name",name); data.store("name",name);
data.store("heroRace",heroRace); data.store("heroRace",heroRace);
@@ -343,8 +345,7 @@ public class AdventurePlayer implements Serializable, SaveFileContent {
data.store("gold",gold); data.store("gold",gold);
data.store("life",life); data.store("life",life);
data.store("maxLife",maxLife); data.store("maxLife",maxLife);
data.store("mana",mana); data.store("shards",shards);
data.store("maxMana",maxMana);
data.store("deckName",deck.getName()); data.store("deckName",deck.getName());
data.storeObject("inventory",inventoryItems.toArray(String.class)); data.storeObject("inventory",inventoryItems.toArray(String.class));
@@ -418,8 +419,8 @@ public class AdventurePlayer implements Serializable, SaveFileContent {
case Life: case Life:
addMaxLife(reward.getCount()); addMaxLife(reward.getCount());
break; break;
case Mana: case Shards:
addMaxMana(reward.getCount()); addShards(reward.getCount());
break; break;
} }
} }
@@ -428,8 +429,8 @@ public class AdventurePlayer implements Serializable, SaveFileContent {
gold+=goldCount; gold+=goldCount;
onGoldChangeList.emit(); onGoldChangeList.emit();
} }
public void onManaChange(Runnable o) { public void onShardsChange(Runnable o) {
onManaTotalChangeList.add(o); onShardsChangeList.add(o);
o.run(); o.run();
} }
@@ -466,29 +467,23 @@ public class AdventurePlayer implements Serializable, SaveFileContent {
return false; return false;
} }
public void potionOfFalseLife() { public boolean potionOfFalseLife() {
if (gold >= falseLifeCost() && life == maxLife) { if (gold >= falseLifeCost() && life == maxLife) {
life = maxLife + 2; life = maxLife + 2;
gold -= falseLifeCost(); gold -= falseLifeCost();
onLifeTotalChangeList.emit(); onLifeTotalChangeList.emit();
onGoldChangeList.emit(); onGoldChangeList.emit();
return true;
} else { } else {
System.out.println("Can't afford cost of false life " + falseLifeCost()); System.out.println("Can't afford cost of false life " + falseLifeCost());
System.out.println("Only has this much gold " + gold); System.out.println("Only has this much gold " + gold);
} }
return false;
} }
public int falseLifeCost() { public int falseLifeCost() {
return 200 + (int)(50 * getStatistic().winLossRatio()); int ret = 200 + (int)(50 * getStatistic().winLossRatio());
} return ret < 0?250:ret;
public void addMana(int addedValue) {
mana = Math.min(maxMana,Math.max(mana + addedValue, 0));
onManaTotalChangeList.emit();
}
public void addManaPercent(float percent) {
mana = Math.min(mana + (int)(maxMana*percent), maxMana);
onManaTotalChangeList.emit();
} }
public void heal(int amount) { public void heal(int amount) {
life = Math.min(life + amount, maxLife); life = Math.min(life + amount, maxLife);
@@ -505,18 +500,13 @@ public class AdventurePlayer implements Serializable, SaveFileContent {
onGoldChangeList.emit(); onGoldChangeList.emit();
} }
public void win() { public void win() {
Current.player().addManaPercent(0.1f); Current.player().addShards(1);
} }
public void addMaxLife(int count) { public void addMaxLife(int count) {
maxLife += count; maxLife += count;
life += count; life += count;
onLifeTotalChangeList.emit(); onLifeTotalChangeList.emit();
} }
public void addMaxMana(int count) {
maxMana += count;
mana += count;
onManaTotalChangeList.emit();
}
public void giveGold(int price) { public void giveGold(int price) {
takeGold(-price); takeGold(-price);
} }
@@ -524,6 +514,18 @@ public class AdventurePlayer implements Serializable, SaveFileContent {
gold -= price; gold -= price;
onGoldChangeList.emit(); onGoldChangeList.emit();
} }
public void addShards(int number) {
takeShards(-number);
}
public void takeShards(int number) {
shards -= number;
onShardsChangeList.emit();
}
public void setShards(int number) {
shards = number;
onShardsChangeList.emit();
}
public void addBlessing(EffectData bless){ public void addBlessing(EffectData bless){
blessing = bless; blessing = bless;

View File

@@ -1,5 +1,6 @@
package forge.adventure.pointofintrest; package forge.adventure.pointofintrest;
import forge.adventure.util.Current;
import forge.adventure.util.SaveFileContent; import forge.adventure.util.SaveFileContent;
import forge.adventure.util.SaveFileData; import forge.adventure.util.SaveFileData;
@@ -14,6 +15,8 @@ public class PointOfInterestChanges implements SaveFileContent {
private final HashSet<Integer> deletedObjects=new HashSet<>(); private final HashSet<Integer> deletedObjects=new HashSet<>();
private final HashMap<Integer, HashSet<Integer>> cardsBought = new HashMap<>(); private final HashMap<Integer, HashSet<Integer>> cardsBought = new HashMap<>();
private final java.util.Map<String, Byte> mapFlags = new HashMap<>(); private final java.util.Map<String, Byte> mapFlags = new HashMap<>();
private final java.util.Map<Integer, Long> shopSeeds = new HashMap<>();
private final java.util.Map<Integer, Float> shopModifiers = new HashMap<>();
public static class Map extends HashMap<String,PointOfInterestChanges> implements SaveFileContent { public static class Map extends HashMap<String,PointOfInterestChanges> implements SaveFileContent {
@Override @Override
@@ -52,8 +55,12 @@ public class PointOfInterestChanges implements SaveFileContent {
deletedObjects.addAll((HashSet<Integer>) data.readObject("deletedObjects")); deletedObjects.addAll((HashSet<Integer>) data.readObject("deletedObjects"));
cardsBought.clear(); cardsBought.clear();
cardsBought.putAll((HashMap<Integer, HashSet<Integer>>) data.readObject("cardsBought")); cardsBought.putAll((HashMap<Integer, HashSet<Integer>>) data.readObject("cardsBought"));
shopSeeds.clear();
shopSeeds.putAll((java.util.Map<Integer, Long>) data.readObject("shopSeeds"));
mapFlags.clear(); mapFlags.clear();
mapFlags.putAll((java.util.Map<String, Byte>) data.readObject("mapFlags")); mapFlags.putAll((java.util.Map<String, Byte>) data.readObject("mapFlags"));
shopModifiers.clear();
shopModifiers.putAll((java.util.Map<Integer, Float>) data.readObject("shopModifiers"));
} }
@Override @Override
@@ -62,6 +69,8 @@ public class PointOfInterestChanges implements SaveFileContent {
data.storeObject("deletedObjects",deletedObjects); data.storeObject("deletedObjects",deletedObjects);
data.storeObject("cardsBought",cardsBought); data.storeObject("cardsBought",cardsBought);
data.storeObject("mapFlags", mapFlags); data.storeObject("mapFlags", mapFlags);
data.storeObject("shopSeeds", shopSeeds);
data.storeObject("shopModifiers", shopModifiers);
return data; return data;
} }
@@ -85,4 +94,48 @@ public class PointOfInterestChanges implements SaveFileContent {
return cardsBought.get(objectID).contains(cardIndex); return cardsBought.get(objectID).contains(cardIndex);
} }
public long getShopSeed(int objectID){
if (!shopSeeds.containsKey(objectID))
{
generateNewShopSeed(objectID);
}
return shopSeeds.get(objectID);
}
public void generateNewShopSeed(int objectID){
shopSeeds.put(objectID, Current.world().getRandom().nextLong());
cardsBought.put(objectID, new HashSet<>()); //Allows cards to appear in slots of previous purchases
}
public void setRotatingShopSeed(int objectID, long seed){
if (shopSeeds.containsKey(objectID) && shopSeeds.get(objectID) != seed) {
cardsBought.put(objectID, new HashSet<>()); //Allows cards to appear in slots of previous purchases
}
shopSeeds.put(objectID, seed);
}
public float getShopPriceModifier(int objectID){
if (!shopModifiers.containsKey(objectID))
{
return -1.0f;
}
return shopModifiers.get(objectID);
}
public void setShopModifier(int objectID, float mod){
if (objectID!= 0) shopModifiers.put(objectID, mod);
}
public float getTownPriceModifier(){
if (!shopModifiers.containsKey(0))
{
return -1.0f;
}
return shopModifiers.get(0);
}
public void setTownModifier(float mod){
shopModifiers.put(0, mod);
}
} }

View File

@@ -22,6 +22,7 @@ import forge.deck.Deck;
import forge.deck.DeckProxy; import forge.deck.DeckProxy;
import forge.game.GameRules; import forge.game.GameRules;
import forge.game.GameType; import forge.game.GameType;
import forge.game.card.CounterEnumType;
import forge.game.player.Player; import forge.game.player.Player;
import forge.game.player.RegisteredPlayer; import forge.game.player.RegisteredPlayer;
import forge.gamemodes.match.HostedMatch; import forge.gamemodes.match.HostedMatch;
@@ -87,6 +88,13 @@ public class DuelScene extends ForgeScene {
boolean winner = false; boolean winner = false;
try { try {
winner = humanPlayer == hostedMatch.getGame().getMatch().getWinner(); winner = humanPlayer == hostedMatch.getGame().getMatch().getWinner();
//Persists expended (or potentially gained) shards back to Adventure
//TODO: Progress towards applicable Adventure quests also needs to be reported here.
List<PlayerControllerHuman> humans = hostedMatch.getHumanControllers();
if (humans.size() == 1) {
Current.player().setShards(humans.get(0).getPlayer().getCounters(CounterEnumType.MANASHARDS));
}
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }
@@ -157,16 +165,19 @@ public class DuelScene extends ForgeScene {
//Apply various combat effects. //Apply various combat effects.
int lifeMod = 0; int lifeMod = 0;
int changeStartCards = 0; int changeStartCards = 0;
int extraManaShards = 0;
Array<IPaperCard> startCards = new Array<>(); Array<IPaperCard> startCards = new Array<>();
for (EffectData data : effects) { for (EffectData data : effects) {
lifeMod += data.lifeModifier; lifeMod += data.lifeModifier;
changeStartCards += data.changeStartCards; changeStartCards += data.changeStartCards;
startCards.addAll(data.startBattleWithCards()); startCards.addAll(data.startBattleWithCards());
extraManaShards += data.extraManaShards;
} }
player.addExtraCardsOnBattlefield(startCards); player.addExtraCardsOnBattlefield(startCards);
player.setStartingLife(Math.max(1, lifeMod + player.getStartingLife())); player.setStartingLife(Math.max(1, lifeMod + player.getStartingLife()));
player.setStartingHand(player.getStartingHand() + changeStartCards); player.setStartingHand(player.getStartingHand() + changeStartCards);
player.setManaShards((player.getManaShards() + extraManaShards));
} }
public void setDungeonEffect(EffectData E) { public void setDungeonEffect(EffectData E) {
@@ -197,6 +208,7 @@ public class DuelScene extends ForgeScene {
humanPlayer.setPlayer(playerObject); humanPlayer.setPlayer(playerObject);
humanPlayer.setTeamNumber(0); humanPlayer.setTeamNumber(0);
humanPlayer.setStartingLife(advPlayer.getLife()); humanPlayer.setStartingLife(advPlayer.getLife());
humanPlayer.setManaShards((advPlayer.getShards()));
Array<EffectData> playerEffects = new Array<>(); Array<EffectData> playerEffects = new Array<>();
Array<EffectData> oppEffects = new Array<>(); Array<EffectData> oppEffects = new Array<>();

View File

@@ -2,8 +2,10 @@ package forge.adventure.scene;
import com.badlogic.gdx.scenes.scene2d.ui.Image; import com.badlogic.gdx.scenes.scene2d.ui.Image;
import com.github.tommyettinger.textra.TextraButton; import com.github.tommyettinger.textra.TextraButton;
import com.github.tommyettinger.textra.TextraLabel;
import forge.Forge; import forge.Forge;
import forge.adventure.stage.GameHUD; import forge.adventure.stage.GameHUD;
import forge.adventure.util.Controls;
import forge.adventure.util.Current; import forge.adventure.util.Current;
/** /**
@@ -20,6 +22,7 @@ public class InnScene extends UIScene {
TextraButton tempHitPointCost, sell, leave; TextraButton tempHitPointCost, sell, leave;
Image healIcon, sellIcon, leaveIcon; Image healIcon, sellIcon, leaveIcon;
private TextraLabel playerGold,playerShards;
private InnScene() { private InnScene() {
@@ -30,7 +33,8 @@ public class InnScene extends UIScene {
ui.onButtonPress("sell", InnScene.this::sell); ui.onButtonPress("sell", InnScene.this::sell);
leave = ui.findActor("done"); leave = ui.findActor("done");
sell = ui.findActor("sell"); sell = ui.findActor("sell");
playerGold = Controls.newAccountingLabel(ui.findActor("playerGold"), false);
playerShards = Controls.newAccountingLabel(ui.findActor("playerShards"),true);
leaveIcon = ui.findActor("leaveIcon"); leaveIcon = ui.findActor("leaveIcon");
healIcon = ui.findActor("healIcon"); healIcon = ui.findActor("healIcon");
@@ -45,7 +49,9 @@ public class InnScene extends UIScene {
} }
public void potionOfFalseLife() { public void potionOfFalseLife() {
Current.player().potionOfFalseLife(); if (Current.player().potionOfFalseLife()){
refreshStatus();
}
} }
@Override @Override
@@ -59,12 +65,16 @@ public class InnScene extends UIScene {
super.render(); super.render();
} }
int tempHealthCost = 0;
@Override @Override
public void enter() { public void enter() {
super.enter(); super.enter();
int tempHealthCost = Current.player().falseLifeCost(); refreshStatus();
if (tempHealthCost < 0) // if computed negative set 250 as minimum }
tempHealthCost = 250;
private void refreshStatus(){
tempHealthCost = Current.player().falseLifeCost();
boolean purchaseable = Current.player().getMaxLife() == Current.player().getLife() && boolean purchaseable = Current.player().getMaxLife() == Current.player().getLife() &&
tempHealthCost <= Current.player().getGold(); tempHealthCost <= Current.player().getGold();
@@ -76,5 +86,4 @@ public class InnScene extends UIScene {
Forge.switchScene(ShopScene.instance()); Forge.switchScene(ShopScene.instance());
} }
} }

View File

@@ -159,7 +159,7 @@ public class InventoryScene extends UIScene {
ItemData data = ItemData.getItem(itemLocation.get(selected)); ItemData data = ItemData.getItem(itemLocation.get(selected));
if(data==null)return; if(data==null)return;
Current.player().addMana(-data.manaNeeded); Current.player().addShards(-data.shardsNeeded);
done(); done();
ConsoleCommandInterpreter.getInstance().command(data.commandOnUse); ConsoleCommandInterpreter.getInstance().command(data.commandOnUse);
} }
@@ -192,12 +192,12 @@ public class InventoryScene extends UIScene {
boolean isInPoi = MapStage.getInstance().isInMap(); boolean isInPoi = MapStage.getInstance().isInMap();
useButton.setDisabled(!(isInPoi&&data.usableInPoi||!isInPoi&&data.usableOnWorldMap)); useButton.setDisabled(!(isInPoi&&data.usableInPoi||!isInPoi&&data.usableOnWorldMap));
if(data.manaNeeded==0) if(data.shardsNeeded==0)
useButton.setText("Use"); useButton.setText("Use");
else else
useButton.setText("Use "+data.manaNeeded+"[+Mana]"); useButton.setText("Use "+data.shardsNeeded+"[+Shards]");
useButton.layout(); useButton.layout();
if(Current.player().getMana()<data.manaNeeded) if(Current.player().getShards()<data.shardsNeeded)
useButton.setDisabled(true); useButton.setDisabled(true);
if(data.equipmentSlot==null|| data.equipmentSlot.equals("")) if(data.equipmentSlot==null|| data.equipmentSlot.equals(""))

View File

@@ -12,6 +12,8 @@ import com.github.tommyettinger.textra.TextraButton;
import com.github.tommyettinger.textra.TextraLabel; import com.github.tommyettinger.textra.TextraLabel;
import forge.Forge; import forge.Forge;
import forge.adventure.character.ShopActor; import forge.adventure.character.ShopActor;
import forge.adventure.data.RewardData;
import forge.adventure.data.ShopData;
import forge.adventure.player.AdventurePlayer; import forge.adventure.player.AdventurePlayer;
import forge.adventure.pointofintrest.PointOfInterestChanges; import forge.adventure.pointofintrest.PointOfInterestChanges;
import forge.adventure.stage.GameHUD; import forge.adventure.stage.GameHUD;
@@ -25,11 +27,14 @@ import forge.sound.SoundSystem;
* Displays the rewards of a fight or a treasure * Displays the rewards of a fight or a treasure
*/ */
public class RewardScene extends UIScene { public class RewardScene extends UIScene {
private final TextraButton doneButton, detailButton; private TextraButton doneButton, detailButton, restockButton;
private final TextraLabel goldLabel; private TextraLabel shopNameLabel, playerGold, playerShards;
private ShopActor shopActor;
private static RewardScene object; private static RewardScene object;
private PointOfInterestChanges changes;
public static RewardScene instance() { public static RewardScene instance() {
if(object==null) if(object==null)
object=new RewardScene(); object=new RewardScene();
@@ -52,12 +57,16 @@ public class RewardScene extends UIScene {
super(Forge.isLandscapeMode() ? "ui/items.json" : "ui/items_portrait.json"); super(Forge.isLandscapeMode() ? "ui/items.json" : "ui/items_portrait.json");
goldLabel=ui.findActor("gold"); playerGold = Controls.newAccountingLabel(ui.findActor("playerGold"), false);
playerShards = Controls.newAccountingLabel(ui.findActor("playerShards"),true);
shopNameLabel = ui.findActor("shopName");
ui.onButtonPress("done", () -> RewardScene.this.done()); ui.onButtonPress("done", () -> RewardScene.this.done());
ui.onButtonPress("detail",()->RewardScene.this.toggleToolTip()); ui.onButtonPress("detail",()->RewardScene.this.toggleToolTip());
ui.onButtonPress("restock",()-> RewardScene.this.restockShop());
detailButton = ui.findActor("detail"); detailButton = ui.findActor("detail");
detailButton.setVisible(false); detailButton.setVisible(false);
doneButton = ui.findActor("done"); doneButton = ui.findActor("done");
restockButton = ui.findActor("restock");
} }
@Override @Override
@@ -221,11 +230,52 @@ public class RewardScene extends UIScene {
} }
} }
void updateRestockButton(){
if (!shopActor.canRestock())
return;
int price = shopActor.getRestockPrice();
restockButton.setText("Refresh\n " + price + "[+shards]");
restockButton.setDisabled(WorldSave.getCurrentSave().getPlayer().getShards() < price);
}
void restockShop(){
if (!shopActor.canRestock())
return;
int price = shopActor.getRestockPrice();
if(changes!=null)
changes.generateNewShopSeed(shopActor.getObjectId());
Current.player().takeShards(price);
Gdx.input.vibrate(5);
SoundSystem.instance.play(SoundEffectType.Shuffle, false);
updateBuyButtons();
if(changes==null)
return;
clearGenerated();
ShopData data = shopActor.getShopData();
Array<Reward> ret = new Array<>();
long shopSeed = changes.getShopSeed(shopActor.getObjectId());
WorldSave.getCurrentSave().getWorld().getRandom().setSeed(shopSeed);
for (RewardData rdata : new Array.ArrayIterator<>(data.rewards)) {
ret.addAll(rdata.generate(false));
}
shopActor.setRewardData(ret);
loadRewards(ret, RewardScene.Type.Shop,shopActor);
}
public void loadRewards(Array<Reward> newRewards, Type type, ShopActor shopActor) { public void loadRewards(Array<Reward> newRewards, Type type, ShopActor shopActor) {
clearSelectable(); clearSelectable();
this.type = type; this.type = type;
doneClicked = false; doneClicked = false;
if (type==Type.Shop) {
this.shopActor = shopActor;
this.changes = shopActor.getMapStage().getChanges();
}
for (Actor actor : new Array.ArrayIterator<>(generated)) { for (Actor actor : new Array.ArrayIterator<>(generated)) {
actor.remove(); actor.remove();
if (actor instanceof RewardActor) { if (actor instanceof RewardActor) {
@@ -234,15 +284,23 @@ public class RewardScene extends UIScene {
} }
generated.clear(); generated.clear();
Actor card = ui.findActor("cards"); Actor card = ui.findActor("cards");
if(type==Type.Shop) { if(type==Type.Shop) {
goldLabel.setText(Current.player().getGold()+"[+Gold]"); String shopName = shopActor.getDescription();
if (shopName != null && !shopName.isEmpty()) {
shopNameLabel.setVisible(true);
shopNameLabel.setText(shopName);
}
else
{
shopNameLabel.setVisible(false);
}
Actor background = ui.findActor("market_background"); Actor background = ui.findActor("market_background");
if(background!=null) if(background!=null)
background.setVisible(true); background.setVisible(true);
} else { } else {
goldLabel.setText(""); shopNameLabel.setVisible(false);
shopNameLabel.setText("");
Actor background = ui.findActor("market_background"); Actor background = ui.findActor("market_background");
if(background!=null) if(background!=null)
background.setVisible(false); background.setVisible(false);
@@ -266,10 +324,24 @@ public class RewardScene extends UIScene {
switch (type) { switch (type) {
case Shop: case Shop:
doneButton.setText(Forge.getLocalizer().getMessage("lblLeave")); doneButton.setText(Forge.getLocalizer().getMessage("lblLeave"));
goldLabel.setText(Current.player().getGold()+"[+Gold]"); String shopName = shopActor.getDescription();
if ((shopName != null && !shopName.isEmpty())) {
shopNameLabel.setVisible(true);
shopNameLabel.setText(shopName);
}
if (shopActor.canRestock()) {
restockButton.setVisible(true);
}
else{
restockButton.setVisible(false);
restockButton.setDisabled(true);
}
break; break;
case Loot: case Loot:
goldLabel.setText(""); shopNameLabel.setVisible(false);
shopNameLabel.setText("");
restockButton.setVisible(false);
doneButton.setText(Forge.getLocalizer().getMessage("lblDone")); doneButton.setText(Forge.getLocalizer().getMessage("lblDone"));
break; break;
} }
@@ -334,7 +406,7 @@ public class RewardScene extends UIScene {
for (Reward reward : new Array.ArrayIterator<>(newRewards)) { for (Reward reward : new Array.ArrayIterator<>(newRewards)) {
boolean skipCard = false; boolean skipCard = false;
if (type == Type.Shop) { if (type == Type.Shop) {
if (shopActor.getMapStage().getChanges().wasCardBought(shopActor.getObjectId(), i)) { if (changes.wasCardBought(shopActor.getObjectId(), i)) {
skipCard = true; skipCard = true;
} }
} }
@@ -354,7 +426,7 @@ public class RewardScene extends UIScene {
if (currentRow != ((i + 1) / numberOfColumns)) if (currentRow != ((i + 1) / numberOfColumns))
yOff += doneButton.getHeight(); yOff += doneButton.getHeight();
BuyButton buyCardButton = new BuyButton(shopActor.getObjectId(), i, shopActor.isUnlimited()?null:shopActor.getMapStage().getChanges(), actor, doneButton); BuyButton buyCardButton = new BuyButton(shopActor.getObjectId(), i, actor, doneButton, shopActor.getPriceModifier());
generated.add(buyCardButton); generated.add(buyCardButton);
if (!skipCard) { if (!skipCard) {
stage.addActor(buyCardButton); stage.addActor(buyCardButton);
@@ -369,7 +441,10 @@ public class RewardScene extends UIScene {
} }
i++; i++;
} }
if (type == Type.Shop) {
updateBuyButtons(); updateBuyButtons();
updateRestockButton();
}
} }
@@ -380,11 +455,9 @@ public class RewardScene extends UIScene {
} }
} }
} }
private class BuyButton extends TextraButton { private class BuyButton extends TextraButton {
private final int objectID; private final int objectID;
private final int index; private final int index;
private final PointOfInterestChanges changes;
public RewardActor reward; public RewardActor reward;
int price; int price;
@@ -392,11 +465,10 @@ public class RewardScene extends UIScene {
setDisabled(WorldSave.getCurrentSave().getPlayer().getGold() < price); setDisabled(WorldSave.getCurrentSave().getPlayer().getGold() < price);
} }
public BuyButton(int id, int i, PointOfInterestChanges ch, RewardActor actor, TextraButton style) { public BuyButton(int id, int i, RewardActor actor, TextraButton style, float shopModifier) {
super("", style.getStyle(),Controls.getTextraFont()); super("", style.getStyle(),Controls.getTextraFont());
this.objectID = id; this.objectID = id;
this.index = i; this.index = i;
this.changes = ch;
reward = actor; reward = actor;
setHeight(style.getHeight()); setHeight(style.getHeight());
setWidth(actor.getWidth()); setWidth(actor.getWidth());
@@ -404,13 +476,15 @@ public class RewardScene extends UIScene {
setY(actor.getY() - getHeight()); setY(actor.getY() - getHeight());
price = CardUtil.getRewardPrice(actor.getReward()); price = CardUtil.getRewardPrice(actor.getReward());
price *= Current.player().goldModifier(); price *= Current.player().goldModifier();
price *= shopModifier;
setText(price+"[+Gold]"); setText(price+"[+Gold]");
addListener(new ClickListener() { addListener(new ClickListener() {
@Override @Override
public void clicked(InputEvent event, float x, float y) { public void clicked(InputEvent event, float x, float y) {
if (Current.player().getGold() >= price) { if (Current.player().getGold() >= price) {
if(changes!=null) if(!shopActor.isUnlimited())
changes.buyCard(objectID, index); changes.buyCard(objectID, index);
Current.player().takeGold(price); Current.player().takeGold(price);
Current.player().addReward(reward.getReward()); Current.player().addReward(reward.getReward());
@@ -418,7 +492,6 @@ public class RewardScene extends UIScene {
SoundSystem.instance.play(SoundEffectType.FlipCoin, false); SoundSystem.instance.play(SoundEffectType.FlipCoin, false);
updateBuyButtons(); updateBuyButtons();
goldLabel.setText(AdventurePlayer.current().getGold()+"[+Gold]");
if(changes==null) if(changes==null)
return; return;
setDisabled(true); setDisabled(true);

View File

@@ -0,0 +1,97 @@
package forge.adventure.scene;
import com.badlogic.gdx.scenes.scene2d.ui.Image;
import com.github.tommyettinger.textra.TextraButton;
import com.github.tommyettinger.textra.TextraLabel;
import forge.Forge;
import forge.adventure.stage.GameHUD;
import forge.adventure.util.Controls;
import forge.adventure.util.Current;
/**
* Scene for the Shard Trader in towns
*/
public class ShardTraderScene extends UIScene {
private static ShardTraderScene object;
public static final String spriteAtlas = "maps/tileset/buildings.atlas";
public static final String sprite = "ShardTrader";
public static ShardTraderScene instance() {
if(object==null)
object=new ShardTraderScene();
return object;
}
TextraButton buyShardsCost, sellShardsQuantity, leave;
Image leaveIcon;
private TextraLabel playerGold, playerShards;
int shardsToSell = 5;
int shardsToBuy = 5;
int shardPrice = Math.round(100 * Current.player().getDifficulty().shardSellRatio);
int shardCost = 100;
private ShardTraderScene() {
super(Forge.isLandscapeMode() ? "ui/shardtrader.json" : "ui/shardtrader_portrait.json");
buyShardsCost = ui.findActor("btnBuyShardsCost");
sellShardsQuantity = ui.findActor("btnSellShardsQuantity");
ui.onButtonPress("done", ShardTraderScene.this::done);
ui.onButtonPress("btnBuyShardsCost", ShardTraderScene.this::buyShards);
ui.onButtonPress("btnSellShardsQuantity", ShardTraderScene.this::sellShards);
leave = ui.findActor("done");
playerGold = Controls.newAccountingLabel(ui.findActor("playerGold"), false);
playerShards = Controls.newAccountingLabel(ui.findActor("playerShards"),true);
leaveIcon = ui.findActor("leaveIcon");
}
public void done() {
GameHUD.getInstance().getTouchpad().setVisible(false);
Forge.switchToLast();
}
public void buyShards() {
Current.player().addShards(shardsToBuy);
Current.player().takeGold(shardCost);
refreshStatus(-shardCost,shardsToBuy);
}
public void sellShards() {
Current.player().takeShards(shardsToSell);
Current.player().giveGold(shardPrice);
refreshStatus(shardPrice,-shardsToSell);
}
@Override
public void act(float delta) {
stage.act(delta);
}
@Override
public void render() {
super.render();
}
@Override
public void enter() {
super.enter();
refreshStatus(0,0);
}
private void refreshStatus(int goldAdded, int shardsAdded) {
int currentGold = Current.player().getGold();
int currentShards = Current.player().getShards();
shardPrice = Math.round(100 * Current.player().getDifficulty().shardSellRatio);
sellShardsQuantity.setDisabled(currentShards < shardsToSell);
buyShardsCost.setDisabled(currentGold < shardCost);
buyShardsCost.setText( "Buy " + shardsToBuy+ "[+Shards] for " + shardCost+"[+Gold]");
sellShardsQuantity.setText("Sell " +shardsToSell+"[+Shards] for " +shardPrice+"[+Gold]");
}
}

View File

@@ -12,10 +12,7 @@ import com.github.tommyettinger.textra.TextraLabel;
import forge.Forge; import forge.Forge;
import forge.StaticData; import forge.StaticData;
import forge.adventure.data.RewardData; import forge.adventure.data.RewardData;
import forge.adventure.util.Config; import forge.adventure.util.*;
import forge.adventure.util.Current;
import forge.adventure.util.Reward;
import forge.adventure.util.RewardActor;
import forge.card.CardEdition; import forge.card.CardEdition;
import forge.card.ColorSet; import forge.card.ColorSet;
import forge.item.PaperCard; import forge.item.PaperCard;
@@ -38,8 +35,8 @@ public class SpellSmithScene extends UIScene {
} }
private List<PaperCard> cardPool = new ArrayList<>(); private List<PaperCard> cardPool = new ArrayList<>();
private final TextraLabel goldLabel; private TextraLabel playerGold, playerShards, poolSize;
private final TextraButton pullButton; private final TextraButton pullUsingGold, pullUsingShards;
private final ScrollPane rewardDummy; private final ScrollPane rewardDummy;
private RewardActor rewardActor; private RewardActor rewardActor;
SelectBox<CardEdition> editionList; SelectBox<CardEdition> editionList;
@@ -55,6 +52,7 @@ public class SpellSmithScene extends UIScene {
//Other //Other
private final float basePrice = 125f; private final float basePrice = 125f;
private int currentPrice = 0; private int currentPrice = 0;
private int currentShardPrice = 0;
private SpellSmithScene() { super(Forge.isLandscapeMode() ? "ui/spellsmith.json" : "ui/spellsmith_portrait.json"); private SpellSmithScene() { super(Forge.isLandscapeMode() ? "ui/spellsmith.json" : "ui/spellsmith_portrait.json");
@@ -68,7 +66,7 @@ public class SpellSmithScene extends UIScene {
.filter(input2 -> input2.getEdition().equals(input.getCode())).collect(Collectors.toList()); .filter(input2 -> input2.getEdition().equals(input.getCode())).collect(Collectors.toList());
if(it.size()==0) if(it.size()==0)
return false; return false;
return(!Arrays.asList(Config.instance().getConfigData().restrictedEditions).contains(input.getCode())); return (!Arrays.asList(Config.instance().getConfigData().restrictedEditions).contains(input.getCode()));
}).collect(Collectors.toList()); }).collect(Collectors.toList());
editionList = ui.findActor("BSelectPlane"); editionList = ui.findActor("BSelectPlane");
rewardDummy = ui.findActor("RewardDummy"); rewardDummy = ui.findActor("RewardDummy");
@@ -86,44 +84,47 @@ public class SpellSmithScene extends UIScene {
} }
}); });
goldLabel = ui.findActor("gold"); pullUsingGold = ui.findActor("pullUsingGold");
pullButton = ui.findActor("pull"); pullUsingGold.setDisabled(true);
pullButton.setDisabled(true); pullUsingShards = ui.findActor("pullUsingShards");
goldLabel.setText("Gold: "+ Current.player().getGold()); pullUsingShards.setDisabled(true);
for(String i : new String[]{"BBlack", "BBlue", "BGreen", "BRed", "BWhite", "BColorless"} ){ playerGold = Controls.newAccountingLabel(ui.findActor("playerGold"), false);
playerShards = Controls.newAccountingLabel(ui.findActor("playerShards"),true);
poolSize = ui.findActor("poolSize");
for (String i : new String[]{"BBlack", "BBlue", "BGreen", "BRed", "BWhite", "BColorless"}) {
TextraButton button = ui.findActor(i); TextraButton button = ui.findActor(i);
if(button != null){ if (button != null) {
colorButtons.put(i, button); colorButtons.put(i, button);
button.addListener(new ClickListener() { button.addListener(new ClickListener() {
@Override @Override
public void clicked(InputEvent event, float x, float y){ public void clicked(InputEvent event, float x, float y) {
selectColor(i); selectColor(i);
filterResults(); filterResults();
} }
}); });
} }
} }
for(String i : new String[]{"BCommon", "BUncommon", "BRare", "BMythic"} ){ for (String i : new String[]{"BCommon", "BUncommon", "BRare", "BMythic"}) {
TextraButton button = ui.findActor(i); TextraButton button = ui.findActor(i);
if(button != null) { if (button != null) {
rarityButtons.put(i, button); rarityButtons.put(i, button);
button.addListener(new ClickListener() { button.addListener(new ClickListener() {
@Override @Override
public void clicked(InputEvent event, float x, float y) { public void clicked(InputEvent event, float x, float y) {
if(selectRarity(i)) button.setColor(Color.RED); if (selectRarity(i)) button.setColor(Color.RED);
filterResults(); filterResults();
} }
}); });
} }
} }
for(String i : new String[]{"B02", "B35", "B68", "B9X"} ){ for (String i : new String[]{"B02", "B35", "B68", "B9X"}) {
TextraButton button = ui.findActor(i); TextraButton button = ui.findActor(i);
if(button != null) { if (button != null) {
costButtons.put(i, button); costButtons.put(i, button);
button.addListener(new ClickListener() { button.addListener(new ClickListener() {
@Override @Override
public void clicked(InputEvent event, float x, float y) { public void clicked(InputEvent event, float x, float y) {
if(selectCost(i)) button.setColor(Color.RED); if (selectCost(i)) button.setColor(Color.RED);
filterResults(); filterResults();
} }
}); });
@@ -131,7 +132,8 @@ public class SpellSmithScene extends UIScene {
} }
ui.onButtonPress("done", () -> SpellSmithScene.this.done()); ui.onButtonPress("done", () -> SpellSmithScene.this.done());
ui.onButtonPress("pull", () -> SpellSmithScene.this.pullCard()); ui.onButtonPress("pullUsingGold", () -> SpellSmithScene.this.pullCard(false));
ui.onButtonPress("pullUsingShards", () -> SpellSmithScene.this.pullCard(true));
ui.onButtonPress("BResetEdition", () -> { ui.onButtonPress("BResetEdition", () -> {
editionList.setColor(Color.WHITE); editionList.setColor(Color.WHITE);
edition = ""; edition = "";
@@ -141,39 +143,57 @@ public class SpellSmithScene extends UIScene {
public boolean done() { public boolean done() {
if(rewardActor != null) rewardActor.remove(); if (rewardActor != null) rewardActor.remove();
cardPool.clear(); //Get rid of cardPool, filtering is fast enough to justify keeping it cached. cardPool.clear(); //Get rid of cardPool, filtering is fast enough to justify keeping it cached.
Forge.switchToLast(); Forge.switchToLast();
return true; return true;
} }
private boolean selectRarity(String what){ private boolean selectRarity(String what) {
for(Map.Entry<String, TextraButton> B : rarityButtons.entrySet()) for (Map.Entry<String, TextraButton> B : rarityButtons.entrySet())
B.getValue().setColor(Color.WHITE); B.getValue().setColor(Color.WHITE);
switch(what){ switch (what) {
case "BCommon": case "BCommon":
if(rarity.equals("C")) { rarity = ""; return false; } if (rarity.equals("C")) {
rarity = "C"; break; rarity = "";
return false;
}
rarity = "C";
break;
case "BUncommon": case "BUncommon":
if(rarity.equals("U")) { rarity = ""; return false; } if (rarity.equals("U")) {
rarity = "U"; break; rarity = "";
return false;
}
rarity = "U";
break;
case "BRare": case "BRare":
if(rarity.equals("R")) { rarity = ""; return false; } if (rarity.equals("R")) {
rarity = "R"; break; rarity = "";
return false;
}
rarity = "R";
break;
case "BMythic": case "BMythic":
if(rarity.equals("M")) { rarity = ""; return false; } if (rarity.equals("M")) {
rarity = "M"; break; rarity = "";
return false;
}
rarity = "M";
break;
default: default:
rarity = ""; break; rarity = "";
break;
} }
return true; return true;
} }
private void selectColor(String what){ private void selectColor(String what) {
TextraButton B = colorButtons.get(what); TextraButton B = colorButtons.get(what);
switch(what){ switch (what) {
case "BColorless": case "BColorless":
if(B.getColor().equals(Color.RED)) B.setColor(Color.WHITE); else { if (B.getColor().equals(Color.RED)) B.setColor(Color.WHITE);
else {
for (Map.Entry<String, TextraButton> BT : colorButtons.entrySet()) for (Map.Entry<String, TextraButton> BT : colorButtons.entrySet())
BT.getValue().setColor(Color.WHITE); BT.getValue().setColor(Color.WHITE);
B.setColor(Color.RED); B.setColor(Color.RED);
@@ -184,45 +204,71 @@ public class SpellSmithScene extends UIScene {
case "BGreen": case "BGreen":
case "BRed": case "BRed":
case "BWhite": case "BWhite":
if(B.getColor().equals(Color.RED)) B.setColor(Color.WHITE); else B.setColor(Color.RED); if (B.getColor().equals(Color.RED)) B.setColor(Color.WHITE);
else B.setColor(Color.RED);
break; break;
} }
} }
private boolean selectCost(String what){ private boolean selectCost(String what) {
for(Map.Entry<String, TextraButton> B : costButtons.entrySet()) for (Map.Entry<String, TextraButton> B : costButtons.entrySet())
B.getValue().setColor(Color.WHITE); B.getValue().setColor(Color.WHITE);
switch(what){ switch (what) {
case "B02": case "B02":
if(cost_low == 0 && cost_high == 2) { cost_low = -1; cost_high = 9999; return false; } if (cost_low == 0 && cost_high == 2) {
cost_low = 0; cost_high = 2; break; cost_low = -1;
cost_high = 9999;
return false;
}
cost_low = 0;
cost_high = 2;
break;
case "B35": case "B35":
if(cost_low == 3 && cost_high == 5) { cost_low = -1; cost_high = 9999; return false; } if (cost_low == 3 && cost_high == 5) {
cost_low = 3; cost_high = 5; break; cost_low = -1;
cost_high = 9999;
return false;
}
cost_low = 3;
cost_high = 5;
break;
case "B68": case "B68":
if(cost_low == 6 && cost_high == 8) { cost_low = -1; cost_high = 9999; return false; } if (cost_low == 6 && cost_high == 8) {
cost_low = 6; cost_high = 8; break; cost_low = -1;
cost_high = 9999;
return false;
}
cost_low = 6;
cost_high = 8;
break;
case "B9X": case "B9X":
if(cost_low == 9 && cost_high == 9999) { cost_low = -1; cost_high = 9999; return false; } if (cost_low == 9 && cost_high == 9999) {
cost_low = 9; cost_high = 9999; break; cost_low = -1;
cost_high = 9999;
return false;
}
cost_low = 9;
cost_high = 9999;
break;
default: default:
cost_low = -1; break; cost_low = -1;
break;
} }
return true; return true;
} }
@Override @Override
public void enter(){ public void enter() {
edition = ""; edition = "";
cost_low = -1; cost_high = 9999; cost_low = -1;
cost_high = 9999;
rarity = ""; rarity = "";
currentPrice = (int)basePrice; currentPrice = (int) basePrice;
goldLabel.setText(Current.player().getGold()+"[+Gold]");
for(Map.Entry<String, TextraButton> B : colorButtons.entrySet()) B.getValue().setColor(Color.WHITE); for (Map.Entry<String, TextraButton> B : colorButtons.entrySet()) B.getValue().setColor(Color.WHITE);
for(Map.Entry<String, TextraButton> B : costButtons.entrySet()) B.getValue().setColor(Color.WHITE); for (Map.Entry<String, TextraButton> B : costButtons.entrySet()) B.getValue().setColor(Color.WHITE);
for(Map.Entry<String, TextraButton> B : rarityButtons.entrySet()) B.getValue().setColor(Color.WHITE); for (Map.Entry<String, TextraButton> B : rarityButtons.entrySet()) B.getValue().setColor(Color.WHITE);
editionList.setColor(Color.WHITE); editionList.setColor(Color.WHITE);
filterResults(); filterResults();
super.enter(); super.enter();
@@ -231,28 +277,27 @@ public class SpellSmithScene extends UIScene {
public void filterResults() { public void filterResults() {
Iterable<PaperCard> P = RewardData.getAllCards(); Iterable<PaperCard> P = RewardData.getAllCards();
goldLabel.setText( Current.player().getGold()+"[+Gold]");
float totalCost = basePrice * Current.player().goldModifier(); float totalCost = basePrice * Current.player().goldModifier();
final List<String> colorFilter = new ArrayList<>(); final List<String> colorFilter = new ArrayList<>();
for(Map.Entry<String, TextraButton> B : colorButtons.entrySet()) for (Map.Entry<String, TextraButton> B : colorButtons.entrySet())
switch (B.getKey()){ switch (B.getKey()) {
case "BColorless": case "BColorless":
if(B.getValue().getColor().equals(Color.RED)) colorFilter.add("Colorless"); if (B.getValue().getColor().equals(Color.RED)) colorFilter.add("Colorless");
continue; continue;
case "BBlack": case "BBlack":
if(B.getValue().getColor().equals(Color.RED)) colorFilter.add("Black"); if (B.getValue().getColor().equals(Color.RED)) colorFilter.add("Black");
break; break;
case "BBlue": case "BBlue":
if(B.getValue().getColor().equals(Color.RED)) colorFilter.add("Blue"); if (B.getValue().getColor().equals(Color.RED)) colorFilter.add("Blue");
break; break;
case "BGreen": case "BGreen":
if(B.getValue().getColor().equals(Color.RED)) colorFilter.add("Green"); if (B.getValue().getColor().equals(Color.RED)) colorFilter.add("Green");
break; break;
case "BRed": case "BRed":
if(B.getValue().getColor().equals(Color.RED)) colorFilter.add("Red"); if (B.getValue().getColor().equals(Color.RED)) colorFilter.add("Red");
break; break;
case "BWhite": case "BWhite":
if(B.getValue().getColor().equals(Color.RED)) colorFilter.add("White"); if (B.getValue().getColor().equals(Color.RED)) colorFilter.add("White");
break; break;
} }
P = StreamSupport.stream(P.spliterator(), false).filter(input -> { P = StreamSupport.stream(P.spliterator(), false).filter(input -> {
@@ -260,43 +305,63 @@ public class SpellSmithScene extends UIScene {
if (input == null) return false; if (input == null) return false;
final CardEdition cardEdition = FModel.getMagicDb().getEditions().get(edition); final CardEdition cardEdition = FModel.getMagicDb().getEditions().get(edition);
if(cardEdition!=null&&cardEdition.getCardInSet(input.getName()).size()==0) return false; if (cardEdition != null && cardEdition.getCardInSet(input.getName()).size() == 0) return false;
if(colorFilter.size() > 0) if(input.getRules().getColor() != ColorSet.fromNames(colorFilter)) return false; if (colorFilter.size() > 0)
if(!rarity.isEmpty()) if (!input.getRarity().toString().equals(rarity)) return false; if (input.getRules().getColor() != ColorSet.fromNames(colorFilter)) return false;
if(cost_low > -1) { if (!rarity.isEmpty()) if (!input.getRarity().toString().equals(rarity)) return false;
if (cost_low > -1) {
if (!(input.getRules().getManaCost().getCMC() >= cost_low && input.getRules().getManaCost().getCMC() <= cost_high)) if (!(input.getRules().getManaCost().getCMC() >= cost_low && input.getRules().getManaCost().getCMC() <= cost_high))
return false; return false;
} }
return true; return true;
}).collect(Collectors.toList()); }).collect(Collectors.toList());
//Stream method is very fast, might not be necessary to precache anything. //Stream method is very fast, might not be necessary to precache anything.
if(!edition.isEmpty()) totalCost *= 4.0f; //Edition select cost multiplier. This is a huge factor, so it's most expensive. if (!edition.isEmpty())
if(colorFilter.size() > 0) totalCost *= Math.min(colorFilter.size() * 2.5f, 6.0f); //Color filter cost multiplier. totalCost *= 4.0f; //Edition select cost multiplier. This is a huge factor, so it's most expensive.
if(!rarity.isEmpty()){ //Rarity cost multiplier. if (colorFilter.size() > 0)
switch(rarity){ totalCost *= Math.min(colorFilter.size() * 2.5f, 6.0f); //Color filter cost multiplier.
case "C": totalCost *= 1.5f; break; if (!rarity.isEmpty()) { //Rarity cost multiplier.
case "U": totalCost *= 2.5f; break; switch (rarity) {
case "R": totalCost *= 4.0f; break; case "C":
case "M": totalCost *= 5.5f; break; totalCost *= 1.5f;
default: break; break;
case "U":
totalCost *= 2.5f;
break;
case "R":
totalCost *= 4.0f;
break;
case "M":
totalCost *= 5.5f;
break;
default:
break;
} }
} }
if(cost_low > -1) totalCost *= 2.5f; //And CMC cost multiplier. if (cost_low > -1) totalCost *= 2.5f; //And CMC cost multiplier.
cardPool = StreamSupport.stream(P.spliterator(), false).collect(Collectors.toList()); cardPool = StreamSupport.stream(P.spliterator(), false).collect(Collectors.toList());
pullButton.setText("Pull (" + cardPool.size() + ") " + totalCost + "G"); poolSize.setText(((cardPool.size() > 0 ? "[LIME]" : "[RED]")) + cardPool.size() + " possible card" + (cardPool.size() != 1 ? "s" : ""));
currentPrice = (int)totalCost; currentPrice = (int) totalCost;
pullButton.setDisabled(false); currentShardPrice = (int) (totalCost * 0.2f); //Intentionally rounding up via the cast to int
if(!(cardPool.size() > 0) || Current.player().getGold() < totalCost) pullUsingGold.setText("Pull: " + currentPrice + "[+gold]");
pullButton.setDisabled(true); pullUsingShards.setText("Pull: " + currentShardPrice + "[+shards]");
pullUsingGold.setDisabled(!(cardPool.size() > 0) || Current.player().getGold() < totalCost);
pullUsingShards.setDisabled(!(cardPool.size() > 0) || Current.player().getShards() < currentShardPrice);
} }
public void pullCard() { public void pullCard(boolean usingShards) {
PaperCard P = cardPool.get(MyRandom.getRandom().nextInt(cardPool.size())); //Don't use the standard RNG. PaperCard P = cardPool.get(MyRandom.getRandom().nextInt(cardPool.size())); //Don't use the standard RNG.
Reward R = new Reward(P); Reward R = new Reward(P);
Current.player().addReward(R); Current.player().addReward(R);
if (usingShards) {
Current.player().takeShards(currentShardPrice);
} else {
Current.player().takeGold(currentPrice); Current.player().takeGold(currentPrice);
if(Current.player().getGold() < currentPrice) pullButton.setDisabled(true); }
if(rewardActor != null) rewardActor.remove(); if (Current.player().getGold() < currentPrice) pullUsingGold.setDisabled(true);
if (Current.player().getShards() < currentShardPrice) pullUsingShards.setDisabled(true);
if (rewardActor != null) rewardActor.remove();
rewardActor = new RewardActor(R, true); rewardActor = new RewardActor(R, true);
rewardActor.flip(); //Make it flip so it draws visual attention, why not. rewardActor.flip(); //Make it flip so it draws visual attention, why not.
rewardActor.setBounds(rewardDummy.getX(), rewardDummy.getY(), rewardDummy.getWidth(), rewardDummy.getHeight()); rewardActor.setBounds(rewardDummy.getX(), rewardDummy.getY(), rewardDummy.getWidth(), rewardDummy.getHeight());

View File

@@ -154,7 +154,7 @@ public static ConsoleCommandInterpreter getInstance()
Current.player().giveGold(amount); Current.player().giveGold(amount);
return "Added "+amount+" gold"; return "Added "+amount+" gold";
}); });
registerCommand(new String[]{"give", "mana"}, s -> { registerCommand(new String[]{"give", "shards"}, s -> {
if(s.length<1) return "Command needs 1 parameter: Amount."; if(s.length<1) return "Command needs 1 parameter: Amount.";
int amount; int amount;
try { try {
@@ -163,8 +163,8 @@ public static ConsoleCommandInterpreter getInstance()
catch (Exception e) { catch (Exception e) {
return "Can not convert " + s[0] + " to number"; return "Can not convert " + s[0] + " to number";
} }
Current.player().addMaxMana(amount); Current.player().addShards(amount);
return "Added " + amount + " max mana"; return "Added " + amount + " shards";
}); });
registerCommand(new String[]{"give", "life"}, s -> { registerCommand(new String[]{"give", "life"}, s -> {
if(s.length<1) return "Command needs 1 parameter: Amount."; if(s.length<1) return "Command needs 1 parameter: Amount.";
@@ -279,26 +279,26 @@ public static ConsoleCommandInterpreter getInstance()
return "Player healed to " + Current.player().getLife() + "/" + Current.player().getMaxLife(); return "Player healed to " + Current.player().getLife() + "/" + Current.player().getMaxLife();
}); });
registerCommand(new String[]{"getMana", "amount"}, s -> { registerCommand(new String[]{"getShards", "amount"}, s -> {
if(s.length<1) return "Command needs 1 parameter: Amount"; if(s.length<1) return "Command needs 1 parameter: Amount";
int value; int value;
try { value = Integer.parseInt(s[0]); } try { value = Integer.parseInt(s[0]); }
catch (Exception e) { return "Can not convert " + s[0] + " to integer"; } catch (Exception e) { return "Can not convert " + s[0] + " to integer"; }
Current.player().addMana(value); Current.player().addShards(value);
return "Player healed to " + Current.player().getLife() + "/" + Current.player().getMaxLife(); return "Player now has " + Current.player().getShards() + " shards";
});
registerCommand(new String[]{"getMana", "percent"}, s -> {
if(s.length<1) return "Command needs 1 parameter: Amount";
float value = 0;
try { value = Float.parseFloat(s[0]); }
catch (Exception e) { return "Can not convert " + s[0] + " to integer"; }
Current.player().addManaPercent(value);
return "Player healed to " + Current.player().getLife() + "/" + Current.player().getMaxLife();
});
registerCommand(new String[]{"getMana", "full"}, s -> {
Current.player().addManaPercent(1.0f);
return "Player healed to " + Current.player().getLife() + "/" + Current.player().getMaxLife();
}); });
// registerCommand(new String[]{"getMana", "percent"}, s -> {
// if(s.length<1) return "Command needs 1 parameter: Amount";
// float value = 0;
// try { value = Float.parseFloat(s[0]); }
// catch (Exception e) { return "Can not convert " + s[0] + " to integer"; }
// Current.player().addManaPercent(value);
// return "Player healed to " + Current.player().getLife() + "/" + Current.player().getMaxLife();
// });
// registerCommand(new String[]{"getMana", "full"}, s -> {
// Current.player().addManaPercent(1.0f);
// return "Player healed to " + Current.player().getLife() + "/" + Current.player().getMaxLife();
// });
registerCommand(new String[]{"debug","map"}, s -> { registerCommand(new String[]{"debug","map"}, s -> {
GameHUD.getInstance().setDebug(true); GameHUD.getInstance().setDebug(true);
return "Debug map ON"; return "Debug map ON";
@@ -356,7 +356,7 @@ public static ConsoleCommandInterpreter getInstance()
if(!MapStage.getInstance().isInMap()) if(!MapStage.getInstance().isInMap())
return "Only supported for PoI"; return "Only supported for PoI";
MapStage.getInstance().deleteObject(id); MapStage.getInstance().deleteObject(id);
return "Femoved enemy "+s[0]; return "Removed enemy "+s[0];
}); });
} }
} }

View File

@@ -45,7 +45,7 @@ public class GameHUD extends Stage {
private final Image miniMapPlayer; private final Image miniMapPlayer;
private final TextraLabel lifePoints; private final TextraLabel lifePoints;
private final TextraLabel money; private final TextraLabel money;
private final TextraLabel mana; private final TextraLabel shards;
private final Image miniMap, gamehud, mapborder, avatarborder, blank; private final Image miniMap, gamehud, mapborder, avatarborder, blank;
private final InputEvent eventTouchDown; private final InputEvent eventTouchDown;
private final InputEvent eventTouchUp; private final InputEvent eventTouchUp;
@@ -120,12 +120,12 @@ public class GameHUD extends Stage {
ui.onButtonPress("deck", () -> openDeck()); ui.onButtonPress("deck", () -> openDeck());
ui.onButtonPress("exittoworldmap", () -> exitToWorldMap()); ui.onButtonPress("exittoworldmap", () -> exitToWorldMap());
lifePoints = ui.findActor("lifePoints"); lifePoints = ui.findActor("lifePoints");
mana = ui.findActor("mana"); shards = ui.findActor("shards");
money = ui.findActor("money"); money = ui.findActor("money");
mana.setText("{Scale=80%}0/0"); shards.setText("{Scale=80%}0/0");
lifePoints.setText("{Scale=80%}20/20"); lifePoints.setText("{Scale=80%}20/20");
AdventurePlayer.current().onLifeChange(() -> lifePoints.setText("{Scale=80%}"+AdventurePlayer.current().getLife() + "/" + AdventurePlayer.current().getMaxLife())); AdventurePlayer.current().onLifeChange(() -> lifePoints.setText("{Scale=80%}"+AdventurePlayer.current().getLife() + "/" + AdventurePlayer.current().getMaxLife()));
AdventurePlayer.current().onManaChange(() -> mana.setText("{Scale=80%}"+AdventurePlayer.current().getMana() + "/" + AdventurePlayer.current().getMaxMana())); AdventurePlayer.current().onShardsChange(() -> shards.setText("{Scale=80%}"+AdventurePlayer.current().getShards()));
WorldSave.getCurrentSave().getPlayer().onGoldChange(() -> money.setText("{Scale=80%}"+String.valueOf(AdventurePlayer.current().getGold()))); WorldSave.getCurrentSave().getPlayer().onGoldChange(() -> money.setText("{Scale=80%}"+String.valueOf(AdventurePlayer.current().getGold())));
addActor(ui); addActor(ui);
@@ -219,7 +219,7 @@ public class GameHUD extends Stage {
&& !(Controls.actorContainsVector(openMapActor, touch)) //not inside openmap button && !(Controls.actorContainsVector(openMapActor, touch)) //not inside openmap button
&& !(Controls.actorContainsVector(statsActor, touch)) //not inside stats button && !(Controls.actorContainsVector(statsActor, touch)) //not inside stats button
&& !(Controls.actorContainsVector(inventoryActor, touch)) //not inside inventory button && !(Controls.actorContainsVector(inventoryActor, touch)) //not inside inventory button
&& !(Controls.actorContainsVector(exitToWorldMapActor, touch)) //not inside deck button && !(Controls.actorContainsVector(exitToWorldMapActor, touch)) //not inside exit button
&& (Controls.actorContainsVector(ui, touch)) //inside display bounds && (Controls.actorContainsVector(ui, touch)) //inside display bounds
&& pointer < 1) { //not more than 1 pointer && pointer < 1) { //not more than 1 pointer
touchpad.setBounds(touch.x - TOUCHPAD_SCALE / 2, touch.y - TOUCHPAD_SCALE / 2, TOUCHPAD_SCALE, TOUCHPAD_SCALE); touchpad.setBounds(touch.x - TOUCHPAD_SCALE / 2, touch.y - TOUCHPAD_SCALE / 2, TOUCHPAD_SCALE, TOUCHPAD_SCALE);
@@ -349,7 +349,7 @@ public class GameHUD extends Stage {
setVisibility(miniMapPlayer, visible); setVisibility(miniMapPlayer, visible);
setVisibility(gamehud, visible); setVisibility(gamehud, visible);
setVisibility(lifePoints, visible); setVisibility(lifePoints, visible);
setVisibility(mana, visible); setVisibility(shards, visible);
setVisibility(money, visible); setVisibility(money, visible);
setVisibility(blank, visible); setVisibility(blank, visible);
setVisibility(exitToWorldMapActor, GameScene.instance().isInDungeonOrCave()); setVisibility(exitToWorldMapActor, GameScene.instance().isInDungeonOrCave());

View File

@@ -46,6 +46,7 @@ import forge.sound.SoundEffectType;
import forge.sound.SoundSystem; import forge.sound.SoundSystem;
import java.util.Map; import java.util.Map;
import java.util.Random;
/** /**
@@ -380,9 +381,9 @@ public class MapStage extends GameStage {
if (difficultyData.spawnRank == 0 && !spawnEasy) return false; if (difficultyData.spawnRank == 0 && !spawnEasy) return false;
return true; return true;
} }
private void loadObjects(MapLayer layer, String sourceMap) { private void loadObjects(MapLayer layer, String sourceMap) {
player.setMoveModifier(2); player.setMoveModifier(2);
Array<String> shopsAlreadyPresent = new Array<>();
for (MapObject obj : layer.getObjects()) { for (MapObject obj : layer.getObjects()) {
MapProperties prop = obj.getProperties(); MapProperties prop = obj.getProperties();
String type = prop.get("type", String.class); String type = prop.get("type", String.class);
@@ -392,6 +393,8 @@ public class MapStage extends GameStage {
continue; continue;
boolean hidden = !obj.isVisible(); //Check if the object is invisible. boolean hidden = !obj.isVisible(); //Check if the object is invisible.
String rotatingShop = "";
switch (type) { switch (type) {
case "entry": case "entry":
float x = Float.parseFloat(prop.get("x").toString()); float x = Float.parseFloat(prop.get("x").toString());
@@ -475,6 +478,21 @@ public class MapStage extends GameStage {
case "spellsmith": case "spellsmith":
addMapActor(obj, new OnCollide(() -> Forge.switchScene(SpellSmithScene.instance()))); addMapActor(obj, new OnCollide(() -> Forge.switchScene(SpellSmithScene.instance())));
break; break;
case "shardtrader":
MapActor shardTraderActor = new OnCollide(() -> Forge.switchScene(ShardTraderScene.instance()));
addMapActor(obj, shardTraderActor);
if (prop.containsKey("hasSign") && Boolean.parseBoolean(prop.get("hasSign").toString()) && prop.containsKey("signYOffset") && prop.containsKey("signXOffset")) {
try {
TextureSprite sprite = new TextureSprite(Config.instance().getAtlas(ShardTraderScene.spriteAtlas).createSprite(ShardTraderScene.sprite));
sprite.setX(shardTraderActor.getX() + Float.parseFloat(prop.get("signXOffset").toString()));
sprite.setY(shardTraderActor.getY() + Float.parseFloat(prop.get("signYOffset").toString()));
addMapActor(sprite);
} catch (Exception e) {
System.err.print("Can not create Texture for Shard Trader");
}
}
break;
case "arena": case "arena":
addMapActor(obj, new OnCollide(() -> { addMapActor(obj, new OnCollide(() -> {
ArenaData arenaData = JSONStringLoader.parse(ArenaData.class, prop.get("arena").toString(), ""); ArenaData arenaData = JSONStringLoader.parse(ArenaData.class, prop.get("arena").toString(), "");
@@ -496,10 +514,98 @@ public class MapStage extends GameStage {
addMapActor(obj, dialog); addMapActor(obj, dialog);
} }
break; break;
case "quest":
DialogActor dialog;
if (prop.containsKey("questtype")){
TiledMapTileMapObject tiledObj = (TiledMapTileMapObject) obj;
String questOrigin = prop.containsKey("questtype") ? prop.get("questtype").toString() : "";
String placeholderText = "[" +
" {" +
" \"name\":\"Quest Offer\"," +
" \"text\":\"Please, help us!\\n((QUEST DESCRIPTION))\"," +
" \"condition\":[]," +
" \"options\":[" +
" { \"name\":\"No, I'm not ready yet.\nMaybe next snapshot.\" }," +
" ]" +
" }" +
"]";
{
dialog = new DialogActor(this, id, placeholderText,tiledObj.getTextureRegion());
}
dialog.setVisible(false);
addMapActor(obj, dialog);
}
break;
case "Rotating":
String rotation = "";
if (prop.containsKey("rotation")) {
rotation = prop.get("rotation").toString();
}
Array<String> possibleShops = new Array<>(rotation.split(","));
if (possibleShops.size > 0){
long rotatingRandomSeed = WorldSave.getCurrentSave().getWorld().getRandom().nextLong() + java.time.LocalDate.now().toEpochDay();
Random rotatingShopRandom = new Random(rotatingRandomSeed);
rotatingShop = possibleShops.get(rotatingShopRandom.nextInt(possibleShops.size));
changes.setRotatingShopSeed(id, rotatingRandomSeed);
}
//Intentionally not breaking here.
//Flow continues into "shop" case with above data overriding base logic.
case "shop": case "shop":
String shopList = prop.get("shopList").toString();
int restockPrice = 0;
String shopList = "";
boolean isRotatingShop = !rotatingShop.isEmpty();
if (isRotatingShop){
shopList = rotatingShop;
restockPrice = 7;
}
else{
int rarity = WorldSave.getCurrentSave().getWorld().getRandom().nextInt(100);
if (rarity > 95 & prop.containsKey("mythicShopList")) {
shopList = prop.get("mythicShopList").toString();
restockPrice = 5;
}
if (shopList.isEmpty() && (rarity > 85 & prop.containsKey("rareShopList"))) {
shopList = prop.get("rareShopList").toString();
restockPrice = 4;
}
if (shopList.isEmpty() && (rarity > 55 & prop.containsKey("uncommonShopList"))) {
shopList = prop.get("uncommonShopList").toString();
restockPrice = 3;
}
if (shopList.isEmpty() && prop.containsKey("commonShopList")) {
shopList = prop.get("commonShopList").toString();
restockPrice = 2;
}
if (shopList.trim().isEmpty() && prop.containsKey("shopList")) {
shopList = prop.get("shopList").toString(); //removed but included to not break existing custom planes
restockPrice = 0; //Tied to restock button
}
shopList = shopList.replaceAll("\\s", ""); shopList = shopList.replaceAll("\\s", "");
Array<String> possibleShops = new Array<>(shopList.split(","));
}
if (prop.containsKey("noRestock") && (boolean)prop.get("noRestock")){
restockPrice = 0;
}
possibleShops = new Array<>(shopList.split(","));
Array<String> filteredPossibleShops = possibleShops;
if (!isRotatingShop)
filteredPossibleShops.removeAll(shopsAlreadyPresent, false);
if (filteredPossibleShops.notEmpty()){
possibleShops = filteredPossibleShops;
}
Array<ShopData> shops; Array<ShopData> shops;
if (possibleShops.size == 0 || shopList.equals("")) if (possibleShops.size == 0 || shopList.equals(""))
shops = WorldData.getShopList(); shops = WorldData.getShopList();
@@ -507,6 +613,7 @@ public class MapStage extends GameStage {
shops = new Array<>(); shops = new Array<>();
for (ShopData data : new Array.ArrayIterator<>(WorldData.getShopList())) { for (ShopData data : new Array.ArrayIterator<>(WorldData.getShopList())) {
if (possibleShops.contains(data.name, false)) { if (possibleShops.contains(data.name, false)) {
data.restockPrice = restockPrice;
shops.add(data); shops.add(data);
} }
} }
@@ -514,18 +621,27 @@ public class MapStage extends GameStage {
if (shops.size == 0) continue; if (shops.size == 0) continue;
ShopData data = shops.get(WorldSave.getCurrentSave().getWorld().getRandom().nextInt(shops.size)); ShopData data = shops.get(WorldSave.getCurrentSave().getWorld().getRandom().nextInt(shops.size));
shopsAlreadyPresent.add(data.name);
Array<Reward> ret = new Array<>(); Array<Reward> ret = new Array<>();
WorldSave.getCurrentSave().getWorld().getRandom().setSeed(changes.getShopSeed(id));
for (RewardData rdata : new Array.ArrayIterator<>(data.rewards)) { for (RewardData rdata : new Array.ArrayIterator<>(data.rewards)) {
ret.addAll(rdata.generate(false)); ret.addAll(rdata.generate(false));
} }
ShopActor actor = new ShopActor(this, id, ret, data.unlimited); ShopActor actor = new ShopActor(this, id, ret, data);
addMapActor(obj, actor); addMapActor(obj, actor);
if (prop.containsKey("signYOffset") && prop.containsKey("signXOffset")) { if (prop.containsKey("hasSign") && (boolean)prop.get("hasSign") && prop.containsKey("signYOffset") && prop.containsKey("signXOffset")) {
try { try {
TextureSprite sprite = new TextureSprite(Config.instance().getAtlas(data.spriteAtlas).createSprite(data.sprite)); TextureSprite sprite = new TextureSprite(Config.instance().getAtlas(data.spriteAtlas).createSprite(data.sprite));
sprite.setX(actor.getX() + Float.parseFloat(prop.get("signXOffset").toString())); sprite.setX(actor.getX() + Float.parseFloat(prop.get("signXOffset").toString()));
sprite.setY(actor.getY() + Float.parseFloat(prop.get("signYOffset").toString())); sprite.setY(actor.getY() + Float.parseFloat(prop.get("signYOffset").toString()));
addMapActor(sprite); addMapActor(sprite);
if (!(data.overlaySprite == null | data.overlaySprite.isEmpty())){
TextureSprite overlay = new TextureSprite(Config.instance().getAtlas(data.spriteAtlas).createSprite(data.overlaySprite));
overlay.setX(actor.getX() + Float.parseFloat(prop.get("signXOffset").toString()));
overlay.setY(actor.getY() + Float.parseFloat(prop.get("signYOffset").toString()));
addMapActor(overlay);
}
} catch (Exception e) { } catch (Exception e) {
System.err.print("Can not create Texture for " + data.sprite + " Obj:" + data); System.err.print("Can not create Texture for " + data.sprite + " Obj:" + data);
} }

View File

@@ -19,10 +19,7 @@ import forge.item.PaperCard;
import forge.model.FModel; import forge.model.FModel;
import java.io.File; import java.io.File;
import java.util.ArrayList; import java.util.*;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;
import java.util.regex.Pattern; import java.util.regex.Pattern;
import static forge.adventure.data.RewardData.generateAllCards; import static forge.adventure.data.RewardData.generateAllCards;
@@ -48,9 +45,11 @@ public class CardUtil {
private final List<Integer> manaCosts =new ArrayList<>(); private final List<Integer> manaCosts =new ArrayList<>();
private final Pattern text; private final Pattern text;
private final boolean matchAllSubTypes; private final boolean matchAllSubTypes;
private final boolean matchAllColors;
private int colors; private int colors;
private final ColorType colorType; private final ColorType colorType;
private final boolean shouldBeEqual; private final boolean shouldBeEqual;
private final List<String> deckNeeds=new ArrayList<>();
@Override @Override
public boolean apply(final PaperCard card) { public boolean apply(final PaperCard card) {
@@ -63,6 +62,14 @@ public class CardUtil {
if(this.text!=null&& !this.text.matcher(card.getRules().getOracleText()).find()) if(this.text!=null&& !this.text.matcher(card.getRules().getOracleText()).find())
return !this.shouldBeEqual; return !this.shouldBeEqual;
if(this.matchAllColors)
{
if(!card.getRules().getColor().hasAllColors(this.colors))
{
return !this.shouldBeEqual;
}
}
if(this.colors!= MagicColor.ALL_COLORS) if(this.colors!= MagicColor.ALL_COLORS)
{ {
if(!card.getRules().getColor().hasNoColorsExcept(this.colors)||(this.colors != MagicColor.COLORLESS && card.getRules().getColor().isColorless())) if(!card.getRules().getColor().hasNoColorsExcept(this.colors)||(this.colors != MagicColor.COLORLESS && card.getRules().getColor().isColorless()))
@@ -162,6 +169,28 @@ public class CardUtil {
return !this.shouldBeEqual; return !this.shouldBeEqual;
} }
if(!this.deckNeeds.isEmpty())
{
boolean found = false;
for(String need:this.deckNeeds)
{
//FormatExpected: X$Y, where X is DeckHints.Type and Y is a string descriptor
String[] parts = need.split("\\$");
if (parts.length != 2){
continue;
}
DeckHints.Type t = DeckHints.Type.valueOf(parts[0].toUpperCase());
DeckHints hints = card.getRules().getAiHints().getDeckHints();
if (hints != null && hints.contains(t, parts[1])){
found=true;
break;
}
}
if(!found)
return !this.shouldBeEqual;
}
return this.shouldBeEqual; return this.shouldBeEqual;
@@ -169,6 +198,7 @@ public class CardUtil {
public CardPredicate(final RewardData type, final boolean wantEqual) { public CardPredicate(final RewardData type, final boolean wantEqual) {
this.matchAllSubTypes=type.matchAllSubTypes; this.matchAllSubTypes=type.matchAllSubTypes;
this.matchAllColors=type.matchAllColors;
this.shouldBeEqual = wantEqual; this.shouldBeEqual = wantEqual;
for(int i=0;type.manaCosts!=null&&i<type.manaCosts.length;i++) for(int i=0;type.manaCosts!=null&&i<type.manaCosts.length;i++)
manaCosts.add(type.manaCosts[i]); manaCosts.add(type.manaCosts[i]);
@@ -227,34 +257,39 @@ public class CardUtil {
{ {
this.colorType=ColorType.Any; this.colorType=ColorType.Any;
} }
if(type.deckNeeds!=null&&type.deckNeeds.length!=0){
deckNeeds.addAll(Arrays.asList(type.deckNeeds));
} }
} }
}
public static List<PaperCard> getPredicateResult(Iterable<PaperCard> cards,final RewardData data)
{
List<PaperCard> result = new ArrayList<>();
CardPredicate pre = new CardPredicate(data, true);
java.util.Map<String, String> tempMap = new HashMap<>();
for (final PaperCard item : cards)
{
if(pre.apply(item))
result.add(item);
}
return result;
}
public static List<PaperCard> generateCards(Iterable<PaperCard> cards,final RewardData data, final int count) public static List<PaperCard> generateCards(Iterable<PaperCard> cards,final RewardData data, final int count)
{ {
final List<PaperCard> result = new ArrayList<>(); final List<PaperCard> result = new ArrayList<>();
List<PaperCard> pool = getPredicateResult(cards, data);
if (pool.size() > 0) {
for (int i=0;i<count;i++) { for (int i = 0; i < count; i++) {
PaperCard candidate = pool.get(WorldSave.getCurrentSave().getWorld().getRandom().nextInt(pool.size()));
CardPredicate pre=new CardPredicate(data, true); if (candidate != null) {
PaperCard card = null; result.add(candidate);
int lowest = Integer.MAX_VALUE;
for (final PaperCard item : cards)
{
if(!pre.apply(item))
continue;
int next = WorldSave.getCurrentSave().getWorld().getRandom().nextInt();
if(next < lowest) {
lowest = next;
card = item;
} }
} }
if (card != null )
result.add(card);
} }
return result; return result;
} }
public static int getCardPrice(PaperCard card) public static int getCardPrice(PaperCard card)
@@ -286,7 +321,7 @@ public class CardUtil {
return reward.getItem().cost; return reward.getItem().cost;
if(reward.getType()== Reward.Type.Life) if(reward.getType()== Reward.Type.Life)
return reward.getCount()*500; return reward.getCount()*500;
if(reward.getType()== Reward.Type.Mana) if(reward.getType()== Reward.Type.Shards)
return reward.getCount()*500; return reward.getCount()*500;
if(reward.getType()== Reward.Type.Gold) if(reward.getType()== Reward.Type.Gold)
return reward.getCount(); return reward.getCount();
@@ -320,8 +355,7 @@ public class CardUtil {
case MagicColor.RED: targetName = "Mountain";break; case MagicColor.RED: targetName = "Mountain";break;
case MagicColor.GREEN: targetName = "Forest"; break; case MagicColor.GREEN: targetName = "Forest"; break;
} }
if(jumpStartSheetsCandidates==null)
{
jumpStartSheetsCandidates=new ArrayList<>(); jumpStartSheetsCandidates=new ArrayList<>();
for(PrintSheet sheet : StaticData.instance().getPrintSheets()) for(PrintSheet sheet : StaticData.instance().getPrintSheets())
{ {
@@ -330,7 +364,6 @@ public class CardUtil {
jumpStartSheetsCandidates.add(sheet); jumpStartSheetsCandidates.add(sheet);
} }
} }
}
PrintSheet sheet=jumpStartSheetsCandidates.get(Current.world().getRandom().nextInt(jumpStartSheetsCandidates.size())); PrintSheet sheet=jumpStartSheetsCandidates.get(Current.world().getRandom().nextInt(jumpStartSheetsCandidates.size()));
deck.getOrCreate(DeckSection.Main).addAllFlat(sheet.all()); deck.getOrCreate(DeckSection.Main).addAllFlat(sheet.all());
} }

View File

@@ -4,10 +4,13 @@ import com.badlogic.gdx.files.FileHandle;
import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.graphics.Color;
import com.badlogic.gdx.graphics.g2d.BitmapFont; import com.badlogic.gdx.graphics.g2d.BitmapFont;
import com.badlogic.gdx.graphics.g2d.TextureAtlas; import com.badlogic.gdx.graphics.g2d.TextureAtlas;
import com.badlogic.gdx.math.Interpolation;
import com.badlogic.gdx.math.Rectangle; import com.badlogic.gdx.math.Rectangle;
import com.badlogic.gdx.math.Vector2; import com.badlogic.gdx.math.Vector2;
import com.badlogic.gdx.scenes.scene2d.Actor; import com.badlogic.gdx.scenes.scene2d.Actor;
import com.badlogic.gdx.scenes.scene2d.InputEvent; import com.badlogic.gdx.scenes.scene2d.InputEvent;
import com.badlogic.gdx.scenes.scene2d.actions.Actions;
import com.badlogic.gdx.scenes.scene2d.actions.SequenceAction;
import com.badlogic.gdx.scenes.scene2d.ui.*; import com.badlogic.gdx.scenes.scene2d.ui.*;
import com.badlogic.gdx.scenes.scene2d.utils.ChangeListener; import com.badlogic.gdx.scenes.scene2d.utils.ChangeListener;
import com.badlogic.gdx.scenes.scene2d.utils.ClickListener; import com.badlogic.gdx.scenes.scene2d.utils.ClickListener;
@@ -15,11 +18,13 @@ import com.badlogic.gdx.scenes.scene2d.utils.Drawable;
import com.badlogic.gdx.utils.Align; import com.badlogic.gdx.utils.Align;
import com.badlogic.gdx.utils.Array; import com.badlogic.gdx.utils.Array;
import com.badlogic.gdx.utils.Null; import com.badlogic.gdx.utils.Null;
import com.badlogic.gdx.utils.Timer;
import com.github.tommyettinger.textra.Font; import com.github.tommyettinger.textra.Font;
import com.github.tommyettinger.textra.TextraButton; import com.github.tommyettinger.textra.TextraButton;
import com.github.tommyettinger.textra.TextraLabel; import com.github.tommyettinger.textra.TextraLabel;
import com.github.tommyettinger.textra.TypingLabel; import com.github.tommyettinger.textra.TypingLabel;
import forge.Forge; import forge.Forge;
import forge.adventure.player.AdventurePlayer;
import forge.card.ColorSet; import forge.card.ColorSet;
import java.util.function.Function; import java.util.function.Function;
@@ -404,4 +409,121 @@ public class Controls {
} }
static public class AccountingLabel extends TextraLabel {
private TextraLabel label;
private final TextraLabel placeholder;
private String currencyIcon;
private boolean isShards;
private int currencyAmount;
private float animationDelay = 2f; //seconds to wait before replacing intermediate label
private final String NEGDECOR = "[RED]-";
private final String POSDECOR = "[GREEN]+";
private final Timer t = new Timer();
public AccountingLabel(TextraLabel target, boolean isShards) {
target.setVisible(false);
placeholder = target;
label = Controls.newTextraLabel(target.getName()+"Replacement");
currencyAmount = isShards?Current.player().getShards():Current.player().getGold();
this.isShards = isShards;
if (isShards){
currencyAmount = Current.player().getShards();
currencyIcon = "[+Shards]";
Current.player().onShardsChange(() -> update(AdventurePlayer.current().getShards(),true));
}
else {
currencyAmount = Current.player().getGold();
currencyIcon = "[+Gold]";
Current.player().onGoldChange(() -> update(AdventurePlayer.current().getGold(),true));
}
label.setText(getLabelText(currencyAmount));
setName(label.getName());
replaceLabel(label);
}
public void setAnimationDelay(float animationDelay) {
this.animationDelay = animationDelay;
}
public float getAnimationDelay() {
return animationDelay;
}
public void update(int newAmount){
update(newAmount, false);
}
public void update(int newAmount, boolean animate){
if (animate) {
TextraLabel temporaryLabel = getUpdateLabel(newAmount);
currencyAmount = newAmount;
replaceLabel(temporaryLabel);
t.schedule(new AccountingLabelUpdater(temporaryLabel), animationDelay);
}
else{
currencyAmount = newAmount;
drawFinalLabel(false);
}
}
private void drawFinalLabel(boolean fadeIn){
TextraLabel finalLabel = getDefaultLabel();
if (fadeIn) {
SequenceAction sequence = new SequenceAction();
sequence.addAction(Actions.alpha(0.5f));
sequence.addAction(Actions.alpha(1f, 2f, Interpolation.pow2Out));
finalLabel.addAction(sequence);
}
replaceLabel(finalLabel);
}
private TextraLabel getDefaultLabel(){
return Controls.newTextraLabel(getLabelText(currencyAmount));
}
private TextraLabel getUpdateLabel(int newAmount){
int delta = newAmount - currencyAmount;
String updateText = delta==0?"":(delta<0?NEGDECOR + delta *-1:POSDECOR + delta);
return Controls.newTextraLabel(getLabelText(currencyAmount, updateText));
}
private String getLabelText(int amount){
return getLabelText(amount, "");
}
private String getLabelText(int amount, String updateText){
return amount + " " + currencyIcon + updateText;
}
private void replaceLabel(TextraLabel newLabel) {
newLabel.setName(label.getName());
newLabel.style = placeholder.style;
newLabel.setBounds(placeholder.getX(), placeholder.getY(), label.getWidth(), placeholder.getHeight());
newLabel.setFont(label.getFont());
newLabel.style = placeholder.style;
newLabel.layout.setBaseColor(label.layout.getBaseColor());
newLabel.layout();
label.remove();
label = newLabel;
placeholder.getStage().addActor(label);
}
private class AccountingLabelUpdater extends Timer.Task{
@Override
public void run() {
if (label.equals(target)){
drawFinalLabel(true);
}
}
TextraLabel target;
AccountingLabelUpdater(TextraLabel replacement){
this.target = replacement;
}
}
}
public static TextraLabel newAccountingLabel(TextraLabel target, Boolean isShards) {
AccountingLabel label = new AccountingLabel(target, isShards);
return label;
}
} }

View File

@@ -12,7 +12,7 @@ public class Reward {
Gold, Gold,
Item, Item,
Life, Life,
Mana Shards
} }
Type type; Type type;
PaperCard card; PaperCard card;

View File

@@ -257,7 +257,7 @@ public class RewardActor extends Actor implements Disposable, ImageFetcher.Callb
break; break;
} }
case Life: case Life:
case Mana: case Shards:
case Gold: { case Gold: {
TextureAtlas atlas = Config.instance().getAtlas(ITEMS_ATLAS); TextureAtlas atlas = Config.instance().getAtlas(ITEMS_ATLAS);
Sprite backSprite = atlas.createSprite("CardBack"); Sprite backSprite = atlas.createSprite("CardBack");

View File

@@ -230,6 +230,9 @@ public enum FSkinImage implements FImage {
QUEST_BIG_SWORD (FSkinProp.ICO_QUEST_BIG_SWORD, SourceFile.ICONS), QUEST_BIG_SWORD (FSkinProp.ICO_QUEST_BIG_SWORD, SourceFile.ICONS),
QUEST_BIG_BAG (FSkinProp.ICO_QUEST_BIG_BAG, SourceFile.ICONS), QUEST_BIG_BAG (FSkinProp.ICO_QUEST_BIG_BAG, SourceFile.ICONS),
//adventure
MANASHARD (FSkinProp.ICO_MANASHARD, SourceFile.ADVENTURE),
//menu icon //menu icon
MENU_GALAXY (FSkinProp.ICO_MENU_GALAXY, SourceFile.ICONS), MENU_GALAXY (FSkinProp.ICO_MENU_GALAXY, SourceFile.ICONS),
MENU_STATS (FSkinProp.ICO_MENU_STATS, SourceFile.ICONS), MENU_STATS (FSkinProp.ICO_MENU_STATS, SourceFile.ICONS),
@@ -484,7 +487,9 @@ public enum FSkinImage implements FImage {
WATERMARKS(ForgeConstants.SPRITE_WATERMARK_FILE), WATERMARKS(ForgeConstants.SPRITE_WATERMARK_FILE),
DRAFTRANKS(ForgeConstants.SPRITE_DRAFTRANKS_FILE), DRAFTRANKS(ForgeConstants.SPRITE_DRAFTRANKS_FILE),
CRACKS(ForgeConstants.SPRITE_CRACKS_FILE), CRACKS(ForgeConstants.SPRITE_CRACKS_FILE),
PLANAR_CONQUEST(ForgeConstants.SPRITE_PLANAR_CONQUEST_FILE); PLANAR_CONQUEST(ForgeConstants.SPRITE_PLANAR_CONQUEST_FILE),
ADVENTURE(ForgeConstants.SPRITE_ADVENTURE_FILE);
private final String filename; private final String filename;

View File

@@ -76,6 +76,7 @@ public class TextRenderer {
Forge.getAssets().symbolLookup().put("AE", FSkinImage.AETHER_SHARD); Forge.getAssets().symbolLookup().put("AE", FSkinImage.AETHER_SHARD);
Forge.getAssets().symbolLookup().put("PW", FSkinImage.PW_BADGE_COMMON); Forge.getAssets().symbolLookup().put("PW", FSkinImage.PW_BADGE_COMMON);
Forge.getAssets().symbolLookup().put("CR", FSkinImage.QUEST_COINSTACK); Forge.getAssets().symbolLookup().put("CR", FSkinImage.QUEST_COINSTACK);
Forge.getAssets().symbolLookup().put("M", FSkinImage.MANASHARD);
} }
public static String startColor(Color color) { public static String startColor(Color color) {

View File

@@ -468,6 +468,7 @@ public class VPlayerPanel extends FContainer {
private int energyCounters = player.getCounters(CounterEnumType.ENERGY); private int energyCounters = player.getCounters(CounterEnumType.ENERGY);
private int experienceCounters = player.getCounters(CounterEnumType.EXPERIENCE); private int experienceCounters = player.getCounters(CounterEnumType.EXPERIENCE);
private int ticketCounters = player.getCounters(CounterEnumType.TICKET); private int ticketCounters = player.getCounters(CounterEnumType.TICKET);
private int manaShards = player.getCounters(CounterEnumType.MANASHARDS);
private String lifeStr = String.valueOf(life); private String lifeStr = String.valueOf(life);
private LifeLabel() { private LifeLabel() {
@@ -496,6 +497,7 @@ public class VPlayerPanel extends FContainer {
energyCounters = player.getCounters(CounterEnumType.ENERGY); energyCounters = player.getCounters(CounterEnumType.ENERGY);
experienceCounters = player.getCounters(CounterEnumType.EXPERIENCE); experienceCounters = player.getCounters(CounterEnumType.EXPERIENCE);
manaShards = player.getCounters(CounterEnumType.MANASHARDS);
//when gui player loses life, vibrate device for a length of time based on amount of life lost //when gui player loses life, vibrate device for a length of time based on amount of life lost
if (vibrateDuration > 0 && MatchController.instance.isLocalPlayer(player) && if (vibrateDuration > 0 && MatchController.instance.isLocalPlayer(player) &&
@@ -516,7 +518,7 @@ public class VPlayerPanel extends FContainer {
adjustHeight = 1; adjustHeight = 1;
float divider = Gdx.app.getGraphics().getHeight() > 900 ? 1.2f : 2f; float divider = Gdx.app.getGraphics().getHeight() > 900 ? 1.2f : 2f;
if(Forge.altPlayerLayout && !Forge.altZoneTabs && Forge.isLandscapeMode()) { if(Forge.altPlayerLayout && !Forge.altZoneTabs && Forge.isLandscapeMode()) {
if (poisonCounters == 0 && energyCounters == 0 && experienceCounters == 0 && ticketCounters ==0) { if (poisonCounters == 0 && energyCounters == 0 && experienceCounters == 0 && ticketCounters ==0 && manaShards == 0) {
g.fillRect(Color.DARK_GRAY, 0, 0, INFO2_FONT.getBounds(lifeStr).width+1, INFO2_FONT.getBounds(lifeStr).height+1); g.fillRect(Color.DARK_GRAY, 0, 0, INFO2_FONT.getBounds(lifeStr).width+1, INFO2_FONT.getBounds(lifeStr).height+1);
g.drawText(lifeStr, INFO2_FONT, getInfoForeColor().getColor(), 0, 0, getWidth(), getHeight(), false, Align.left, false); g.drawText(lifeStr, INFO2_FONT, getInfoForeColor().getColor(), 0, 0, getWidth(), getHeight(), false, Align.left, false);
} else { } else {
@@ -551,10 +553,16 @@ public class VPlayerPanel extends FContainer {
g.drawText(String.valueOf(ticketCounters), INFO_FONT, getInfoForeColor().getColor(), textStart, (halfHeight*mod)+2, textWidth, halfHeight, false, Align.left, false); g.drawText(String.valueOf(ticketCounters), INFO_FONT, getInfoForeColor().getColor(), textStart, (halfHeight*mod)+2, textWidth, halfHeight, false, Align.left, false);
mod+=1; mod+=1;
} }
if (manaShards > 0) {
g.fillRect(Color.DARK_GRAY, 0, (halfHeight*mod)+2, INFO_FONT.getBounds(String.valueOf(manaShards)).width+halfHeight+1, INFO_FONT.getBounds(String.valueOf(manaShards)).height+1);
g.drawImage(FSkinImage.AETHER_SHARD, 0, (halfHeight*mod)+2, halfHeight, halfHeight);
g.drawText(String.valueOf(manaShards), INFO_FONT, getInfoForeColor().getColor(), textStart, (halfHeight*mod)+2, textWidth, halfHeight, false, Align.left, false);
mod+=1;
}
adjustHeight = (mod > 2) && (avatar.getHeight() < halfHeight*mod)? mod : 1; adjustHeight = (mod > 2) && (avatar.getHeight() < halfHeight*mod)? mod : 1;
} }
} else { } else {
if (poisonCounters == 0 && energyCounters == 0) { if (poisonCounters == 0 && energyCounters == 0 && manaShards == 0) {
g.drawText(lifeStr, Forge.altZoneTabs ? LIFE_FONT_ALT : LIFE_FONT, getInfoForeColor(), 0, 0, getWidth(), getHeight(), false, Align.center, true); g.drawText(lifeStr, Forge.altZoneTabs ? LIFE_FONT_ALT : LIFE_FONT, getInfoForeColor(), 0, 0, getWidth(), getHeight(), false, Align.center, true);
} else { } else {
float halfHeight = getHeight() / 2; float halfHeight = getHeight() / 2;
@@ -565,10 +573,14 @@ public class VPlayerPanel extends FContainer {
if (poisonCounters > 0) { //prioritize showing poison counters over energy counters if (poisonCounters > 0) { //prioritize showing poison counters over energy counters
g.drawImage(FSkinImage.POISON, 0, halfHeight, halfHeight, halfHeight); g.drawImage(FSkinImage.POISON, 0, halfHeight, halfHeight, halfHeight);
g.drawText(String.valueOf(poisonCounters), INFO_FONT, getInfoForeColor(), textStart, halfHeight, textWidth, halfHeight, false, Align.center, true); g.drawText(String.valueOf(poisonCounters), INFO_FONT, getInfoForeColor(), textStart, halfHeight, textWidth, halfHeight, false, Align.center, true);
} else { } else if (energyCounters > 0) { //prioritize showing energy counters over mana shards
g.drawImage(FSkinImage.ENERGY, 0, halfHeight, halfHeight, halfHeight); g.drawImage(FSkinImage.ENERGY, 0, halfHeight, halfHeight, halfHeight);
g.drawText(String.valueOf(energyCounters), INFO_FONT, getInfoForeColor(), textStart, halfHeight, textWidth, halfHeight, false, Align.center, true); g.drawText(String.valueOf(energyCounters), INFO_FONT, getInfoForeColor(), textStart, halfHeight, textWidth, halfHeight, false, Align.center, true);
} }
else {
g.drawImage(FSkinImage.MANASHARD, 0, halfHeight, halfHeight, halfHeight);
g.drawText(String.valueOf(manaShards), INFO_FONT, getInfoForeColor(), textStart, halfHeight, textWidth, halfHeight, false, Align.center, true);
}
} }
} }
} }

View File

@@ -58,7 +58,7 @@
{ {
"name": "Easy", "name": "Easy",
"startingLife": 16, "startingLife": 16,
"startingMana": 32, "startingShards": 5,
"staringMoney": 500, "staringMoney": 500,
"enemyLifeFactor": 0.8, "enemyLifeFactor": 0.8,
"spawnRank": 0, "spawnRank": 0,
@@ -66,6 +66,7 @@
"lifeLoss": 0.1, "lifeLoss": 0.1,
"rewardMaxFactor" : 1.5, "rewardMaxFactor" : 1.5,
"sellFactor": 0.6, "sellFactor": 0.6,
"shardSellRatio": 0.95,
"starterDecks": { "starterDecks": {
"W":"decks/starter/white_e.json", "W":"decks/starter/white_e.json",
"B":"decks/starter/black_e.json", "B":"decks/starter/black_e.json",
@@ -94,7 +95,7 @@
},{ },{
"name": "Normal", "name": "Normal",
"startingLife": 12, "startingLife": 12,
"startingMana": 25, "startingShards": 2,
"staringMoney": 250, "staringMoney": 250,
"startingDifficulty": true, "startingDifficulty": true,
"enemyLifeFactor": 1.0, "enemyLifeFactor": 1.0,
@@ -103,6 +104,7 @@
"goldLoss": 0.1, "goldLoss": 0.1,
"lifeLoss": 0.2, "lifeLoss": 0.2,
"sellFactor": 0.5, "sellFactor": 0.5,
"shardSellRatio": 0.8,
"starterDecks": { "starterDecks": {
"W":"decks/starter/white_n.json", "W":"decks/starter/white_n.json",
"B":"decks/starter/black_n.json", "B":"decks/starter/black_n.json",
@@ -130,7 +132,7 @@
},{ },{
"name": "Hard", "name": "Hard",
"startingLife": 8, "startingLife": 8,
"startingMana": 10, "startingShards": 0,
"staringMoney": 125, "staringMoney": 125,
"enemyLifeFactor": 1.5, "enemyLifeFactor": 1.5,
"rewardMaxFactor" : 0.5, "rewardMaxFactor" : 0.5,
@@ -138,6 +140,7 @@
"goldLoss": 0.3, "goldLoss": 0.3,
"lifeLoss": 0.3, "lifeLoss": 0.3,
"sellFactor": 0.25, "sellFactor": 0.25,
"shardSellRatio": 0.6,
"starterDecks": { "starterDecks": {
"W":"decks/starter/white_h.json", "W":"decks/starter/white_h.json",
"B":"decks/starter/black_h.json", "B":"decks/starter/black_h.json",
@@ -162,7 +165,7 @@
},{ },{
"name": "Insane", "name": "Insane",
"startingLife": 7, "startingLife": 7,
"startingMana": 10, "startingShards": 0,
"staringMoney": 0, "staringMoney": 0,
"enemyLifeFactor": 2.5, "enemyLifeFactor": 2.5,
"rewardMaxFactor" : 0.0, "rewardMaxFactor" : 0.0,
@@ -170,6 +173,7 @@
"goldLoss": 0.5, "goldLoss": 0.5,
"lifeLoss": 0.3, "lifeLoss": 0.3,
"sellFactor": 0.05, "sellFactor": 0.05,
"shardSellRatio": 0.3,
"starterDecks": { "starterDecks": {
"W":"decks/starter/white_h.json", "W":"decks/starter/white_h.json",
"B":"decks/starter/black_h.json", "B":"decks/starter/black_h.json",

Binary file not shown.

After

Width:  |  Height:  |  Size: 556 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 654 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 502 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 689 KiB

View File

@@ -0,0 +1,8 @@
Name:Cursed Treasure
ManaCost:no cost
Types:Artifact
S:Mode$ Continuous | Description$ Provided by Cursed Treasure (Equipped Item - Right)
StackDescription$ Create a Treasure token. You lose 2 life. | SpellDescription$ Create a Treasure token. You lose 2 life.
A:AB$ Token | Cost$ PayShards<1> Sac<1/CARDNAME> | TokenScript$ c_a_treasure_sac | SubAbility$ DBLoseLife2 | SpellDescription$ Create a Treasure token.
SVar:DBLoseLife2:DB$ LoseLife | LifeAmount$ 2 | Defined$ You
Oracle: Provided by Cursed Treasure. Pay {M}, sacrifice Cursed Treasure: Create a Treasure token. You lose 2 life.

View File

@@ -0,0 +1,6 @@
Name:Farmer's Tools
ManaCost:no cost
Types:Artifact
S:Mode$ Continuous | Description$ Provided by Farmer's Tools (Equipped Item - Left)
A:AB$ ChangeZone | Cost$ PayShards<2> Sac<1/CARDNAME> | ExileOnMoved$ Battlefield | Optional$ True | Origin$ Hand | Destination$ Battlefield | ChangeType$ Land | DefinedPlayer$ Player | ChangeNum$ 1 | StackDescription$ Each player may put a land card from their hand onto the battlefield.
Oracle: Provided by Farmer's Tools. Pay {M}{M}, sacrifice Farmer's Tools: Starting with you, each player may place a land card from their hand onto the battlefield.

View File

@@ -0,0 +1,10 @@
Name:Hill Giant Club
ManaCost:no cost
Types:Artifact
S:Mode$ Continuous | Description$ Provided by Hill Giant Club (Equipped Item - Right)
A:AB$ Effect | Cost$ PayShards<2> Sac<1/CARDNAME> | ValidTgts$ Creature | TgtPrompt$ Select target creature | ExileOnMoved$ Battlefield | StaticAbilities$ UnblockableLE2 | RememberObjects$ Targeted | StackDescription$ {c:Targeted} can't be blocked by creatures with power 2 or less this turn. | SpellDescription$ Targe creature can't be blocked by creatures with power 2 or less this turn.
SVar:UnblockableLE2:Mode$ CantBlockBy | ValidAttacker$ Card.IsRemembered | ValidBlocker$ Creature.powerLE2 | Description$ {c:Targeted} can't be blocked by creatures with power 2 or less this turn.
Oracle: Provided by Hill Giant Club. Pay {M}{M}, sacrifice Hill Giant Club: Target creature can't be blocked by creatures with power 2 or less this turn.

View File

@@ -0,0 +1,7 @@
Name:Piper's Charm
ManaCost:no cost
Types:Artifact
S:Mode$ Continuous | Description$ Provided by Piper's Charm (Equipped Item - Neck)
A:AB$ Effect | Cost$ PayShards<3> Sac<1/CARDNAME> | ValidTgts$ Creature | ExileOnMoved$ Battlefield | StaticAbilities$ MustBlock | RememberObjects$ Targeted | StackDescription$ {c:Targeted} blocks this turn if able. | SpellDescription$ Target creature blocks this turn if able.
SVar:MustBlock:Mode$ MustBlock | ValidCreature$ Card.IsRemembered | Description$ This creature blocks this turn if able.
Oracle: Provided by Piper's Charm. Pay {M}{M}{M}, sacrifice Piper's Charm: Target creature blocks this turn if able.

View File

@@ -0,0 +1,6 @@
Name:Sleep Wand
ManaCost:no cost
Types:Artifact
S:Mode$ Continuous | Description$ Provided by Sleep Wand (Equipped Item - Left)
A:AB$ PutCounter | Cost$ PayShards<2> Sac<1/CARDNAME> | ValidTgts$ Creature | ExileOnMoved$ Battlefield ValidTgts$ Creature | TgtPrompt$ Select target creature | CounterType$ Stun | CounterNum$ 1 | StackDescription$ Put a stun counter on target creature. (If a permanent with a stun counter would become untapped, remove one from it instead.)
Oracle: Provided by Sleep Wand. Pay {M}, sacrifice Sleep Wand: Put a stun counter on target creature.

View File

@@ -0,0 +1,111 @@
<?xml version="1.0" encoding="UTF-8"?>
<map version="1.9" tiledversion="1.9.2" orientation="orthogonal" renderorder="right-down" width="30" height="17" tilewidth="16" tileheight="16" infinite="0" nextlayerid="6" nextobjectid="53">
<editorsettings>
<export target="wastetown..tmx" format="tmx"/>
</editorsettings>
<tileset firstgid="1" source="../tileset/main.tsx"/>
<tileset firstgid="10113" source="../tileset/buildings.tsx"/>
<layer id="1" name="Background" width="30" height="17">
<data encoding="base64" compression="zlib">
eJztldEOgzAIRZuo0/GhOv1RO/Wj5CZrwpKu0K3dkw/nScMFLtDx7tz4JRMzKzTk3DHYY278767Qka4LloxaHoZ4FlbOb6D3elqqqys1oYd+B29+8c7S3014Aq+DN6i5jXhv9U6bKS2OnLsSmqXzu7CD+fbMk+kpDr6V1gw7hR2tuUeyRnk7/qEbu5G3xL2qqZsCOflXj2K9s/qf+x5Jgr4XXuX0o/lwE2u9vamen7FF4yE=
</data>
</layer>
<layer id="2" name="Ground" width="30" height="17">
<data encoding="base64" compression="zlib">
eJy1lVkKwjAQhqctdMF76IO4HEA8j3oC8RBuB1ChJ+mDSMELeBsb7NA4TmbSYgOhaZb58s/fJgDusggBrsF/6jJ0cwrSfglz2xYTqxDGbY27iJ8zTmTGg+nbRrJmH42lwu0Sm47Z2rDdJzcf/DJKB1fLexvuKgU4xADr+ontScXYpN9rcB8aX/JY87cU8q7lf0Ti3wXuqdJ2tvTZsTEnz6R5nypsly7aP8sA5hnP5fq0nNP4Q9K/jxtf7Yp+G5+p7/Y4/QawuDz2PaOo7jb/Fsfw5VIvfbzlGDTPPoVq1Nh4PnMM7RyVuMhG348xv47jFjXb5w7r47yU9mHqLfhwLx3uYnPPvQGEo2CM
</data>
</layer>
<layer id="3" name="Foreground" width="30" height="17">
<properties>
<property name="spriteLayer" type="bool" value="true"/>
</properties>
<data encoding="base64" compression="zlib">
eJzT5mFg0AFieoE2bgh9EmjnKR7scqQCXW3K3EQICAPNF8Fix2Iy3EuuH2kFPiH5y1iHgcFEhzxz9GgQB5S4h572Z5FiJpZwGmh/UgtYazEw2GhRZsZgCQsjLPFESjwPBXAT6MdbePItrfz7FWjnNxqX2aSCHCDOReLTK665GBkYuBkx7aS1/QB3HhO+
</data>
</layer>
<layer id="5" name="AboveSprites" width="30" height="17">
<data encoding="base64" compression="zlib">
eJxjYBj8IAtKf9ViYPimhRA/CMSHoOxsIM5Bw7lUsl9Qm4FBSBvhDmSwnJGBYQUQ8wAxFxRzM5JuxzVtBFtch4FBQgdTzSFMIQZOCu3FB47jcQ/M3yC8ksr2ogNc4UFPe46SaeYxKK2FVxV1gTzQMgUKLUQOiywG7GmfGKDHSZk7BgKQ69eBsBuWvshx801gmXNLG1VsIP1ODsDm3hN0dwXxYLCELwD5Hxp7
</data>
</layer>
<objectgroup id="4" name="Objects">
<object id="38" template="../obj/entry_up.tx" x="240" y="272"/>
<object id="41" template="../obj/shop.tx" x="129" y="82">
<properties>
<property name="commonShopList" value="Green,Green,Enchantment4Green,Creature2Green,Instant4Green"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,RGU,UWG,UGB,RWG,RGB,GWB"/>
<property name="rareShopList" value="Land4Green,Simic,Golgari,Gruul,Selesnya,Vehicle,Colorless"/>
<property name="uncommonShopList" value="Artifact,Elf,Wolf4Green,Druid,Squirrel,Sliver2Green,Wand,Equip,Multicolor"/>
</properties>
</object>
<object id="42" template="../obj/shop.tx" x="304" y="114">
<properties>
<property name="commonShopList" value="Green,Green,Enchantment4Green,Creature2Green,Instant4Green"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,RGU,UWG,UGB,RWG,RGB,GWB"/>
<property name="rareShopList" value="Land4Green,Simic,Golgari,Gruul,Selesnya,Vehicle,Colorless"/>
<property name="uncommonShopList" value="Artifact,Elf,Wolf4Green,Druid,Squirrel,Sliver2Green,Wand,Equip,Multicolor"/>
</properties>
</object>
<object id="43" template="../obj/shop.tx" x="352" y="162">
<properties>
<property name="commonShopList" value="Green,Green,Enchantment4Green,Creature2Green,Instant4Green"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,RGU,UWG,UGB,RWG,RGB,GWB"/>
<property name="rareShopList" value="Land4Green,Simic,Golgari,Gruul,Selesnya,Vehicle,Colorless"/>
<property name="uncommonShopList" value="Artifact,Elf,Wolf4Green,Druid,Squirrel,Sliver2Green,Wand,Equip,Multicolor"/>
</properties>
</object>
<object id="44" template="../obj/shop.tx" x="177" y="81">
<properties>
<property name="commonShopList" value="Green,Green,Enchantment4Green,Creature2Green,Instant4Green"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,RGU,UWG,UGB,RWG,RGB,GWB"/>
<property name="rareShopList" value="Land4Green,Simic,Golgari,Gruul,Selesnya,Vehicle,Colorless"/>
<property name="uncommonShopList" value="Artifact,Elf,Wolf4Green,Druid,Squirrel,Sliver2Green,Wand,Equip,Multicolor"/>
</properties>
</object>
<object id="45" template="../obj/shop.tx" x="240" y="129">
<properties>
<property name="commonShopList" value="Green,Green,Enchantment4Green,Creature2Green,Instant4Green"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,RGU,UWG,UGB,RWG,RGB,GWB"/>
<property name="rareShopList" value="Land4Green,Simic,Golgari,Gruul,Selesnya,Vehicle,Colorless"/>
<property name="uncommonShopList" value="Artifact,Elf,Wolf4Green,Druid,Squirrel,Sliver2Green,Wand,Equip,Multicolor"/>
</properties>
</object>
<object id="46" template="../obj/shop.tx" x="368" y="226">
<properties>
<property name="commonShopList" value="Green,Green,Enchantment4Green,Creature2Green,Instant4Green"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,RGU,UWG,UGB,RWG,RGB,GWB"/>
<property name="rareShopList" value="Land4Green,Simic,Golgari,Gruul,Selesnya,Vehicle,Colorless"/>
<property name="uncommonShopList" value="Artifact,Elf,Wolf4Green,Druid,Squirrel,Sliver2Green,Wand,Equip,Multicolor"/>
</properties>
</object>
<object id="47" template="../obj/inn.tx" x="137" y="162"/>
<object id="48" template="../obj/shop.tx" x="304" y="48">
<properties>
<property name="commonShopList" value="Forest"/>
<property name="noRestock" type="bool" value="true"/>
</properties>
</object>
<object id="49" template="../obj/quest.tx" x="98" y="162">
<properties>
<property name="questtype" value="forest_town_generic"/>
</properties>
</object>
<object id="50" template="../obj/shardtrader.tx" x="98" y="98"/>
<object id="51" template="../obj/shop.tx" x="272" y="98">
<properties>
<property name="commonShopList" value="Green,Green,Enchantment4Green,Creature2Green,Instant4Green"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,RGU,UWG,UGB,RWG,RGB,GWB"/>
<property name="rareShopList" value="Land4Green,Simic,Golgari,Gruul,Selesnya,Vehicle,Colorless"/>
<property name="uncommonShopList" value="Artifact,Elf,Wolf4Green,Druid,Squirrel,Sliver2Green,Wand,Equip,Multicolor"/>
</properties>
</object>
<object id="52" template="../obj/shop.tx" x="208" y="50">
<properties>
<property name="commonShopList" value="Green,Green,Enchantment4Green,Creature2Green,Instant4Green"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,RGU,UWG,UGB,RWG,RGB,GWB"/>
<property name="rareShopList" value="Land4Green,Simic,Golgari,Gruul,Selesnya,Vehicle,Colorless"/>
<property name="uncommonShopList" value="Artifact,Elf,Wolf4Green,Druid,Squirrel,Sliver2Green,Wand,Equip,Multicolor"/>
</properties>
</object>
</objectgroup>
</map>

View File

@@ -0,0 +1,108 @@
<?xml version="1.0" encoding="UTF-8"?>
<map version="1.9" tiledversion="1.9.2" orientation="orthogonal" renderorder="right-down" width="30" height="17" tilewidth="16" tileheight="16" infinite="0" nextlayerid="6" nextobjectid="54">
<editorsettings>
<export target="wastetown..tmx" format="tmx"/>
</editorsettings>
<tileset firstgid="1" source="../tileset/main.tsx"/>
<tileset firstgid="10113" source="../tileset/buildings.tsx"/>
<layer id="1" name="Background" width="30" height="17">
<data encoding="base64" compression="zlib">
eJztldEOgzAIRZuo0/GhOv1RO/Wj5CZrwpKu0K3dkw/nScMFLtDx7tz4JRMzKzTk3DHYY278767Qka4LloxaHoZ4FlbOb6D3elqqqys1oYd+B29+8c7S3014Aq+DN6i5jXhv9U6bKS2OnLsSmqXzu7CD+fbMk+kpDr6V1gw7hR2tuUeyRnk7/qEbu5G3xL2qqZsCOflXj2K9s/qf+x5Jgr4XXuX0o/lwE2u9vamen7FF4yE=
</data>
</layer>
<layer id="2" name="Ground" width="30" height="17">
<data encoding="base64" compression="zlib">
eJy1lVkKwjAQhqctdMF76IO4HEA8j3oC8RBuB1ChJ+mDSMELeBsb7NA4TmbSYgOhaZb58s/fJgDusggBrsF/6jJ0cwrSfglz2xYTqxDGbY27iJ8zTmTGg+nbRrJmH42lwu0Sm47Z2rDdJzcf/DJKB1fLexvuKgU4xADr+ontScXYpN9rcB8aX/JY87cU8q7lf0Ti3wXuqdJ2tvTZsTEnz6R5nypsly7aP8sA5hnP5fq0nNP4Q9K/jxtf7Yp+G5+p7/Y4/QawuDz2PaOo7jb/Fsfw5VIvfbzlGDTPPoVq1Nh4PnMM7RyVuMhG348xv47jFjXb5w7r47yU9mHqLfhwLx3uYnPPvQGEo2CM
</data>
</layer>
<layer id="3" name="Foreground" width="30" height="17">
<properties>
<property name="spriteLayer" type="bool" value="true"/>
</properties>
<data encoding="base64" compression="zlib">
eJzT5mFg0AFieoE2bgh9EmjnKR7scoMNCGszMIhoY4ovJsO9g82Pn5D8ZazDwGCiM3BuQQcD7R5i7c8ixUws6Wig/UktYK3FwGCjRZkZgzksSIlneoMsJEwsuAlMi7ewpEdkM4mxl1i1MPAVaOc3PPYSC15oUG4GDOQAcS4Sn15xzcXIwMDNiGknre0HAGN/FdI=
</data>
</layer>
<layer id="5" name="AboveSprites" width="30" height="17">
<data encoding="base64" compression="zlib">
eJxjYBj8IAtKf9ViYPimhRA/CMSHoOxsIM5Bw7lUsl9Qm4FBSBvhDmSwnJGBYQUQ8wAxFxRzM5JuxzVtBFtch4FBQgdTzSFMIQZOCu3FB47jcQ/M3yC8ksr2ogNc4UFPe46SaeYxKK2FVxV1gTzQMgUKLUQOiywG7GmfGKDHSZk7BgKQ69eBsPsYYSU4wU1gmXNLG1WMHL+f0aDAETQAJwbaAXjAQKYtZAAAL4Yamw==
</data>
</layer>
<objectgroup id="4" name="Objects">
<object id="38" template="../obj/entry_up.tx" x="240" y="272"/>
<object id="41" template="../obj/shop.tx" x="129" y="82">
<properties>
<property name="commonShopList" value="Green,Green,Enchantment4Green,Creature2Green,Instant4Green"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,Vehicle,Artifact,Equip,Wand,Legend4Green"/>
<property name="rareShopList" value="RGU,UWG,UGB,RWG,RGB,GWB,Land4Green,Creature6Green"/>
<property name="uncommonShopList" value="Simic,Golgari,Gruul,Selesnya,Simic,Golgari,Gruul,Selesnya,Land"/>
</properties>
</object>
<object id="42" template="../obj/shop.tx" x="304" y="114">
<properties>
<property name="commonShopList" value="Green,Green,Enchantment4Green,Creature2Green,Instant4Green"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,Vehicle,Artifact,Equip,Wand,Legend4Green"/>
<property name="rareShopList" value="RGU,UWG,UGB,RWG,RGB,GWB,Land4Green,Creature6Green"/>
<property name="uncommonShopList" value="Simic,Golgari,Gruul,Selesnya,Simic,Golgari,Gruul,Selesnya,Land"/>
</properties>
</object>
<object id="43" template="../obj/shop.tx" x="352" y="162">
<properties>
<property name="commonShopList" value="Green,Green,Enchantment4Green,Creature2Green,Instant4Green"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,Vehicle,Artifact,Equip,Wand,Legend4Green"/>
<property name="rareShopList" value="RGU,UWG,UGB,RWG,RGB,GWB,Land4Green,Creature6Green"/>
<property name="uncommonShopList" value="Simic,Golgari,Gruul,Selesnya,Simic,Golgari,Gruul,Selesnya,Land"/>
</properties>
</object>
<object id="44" template="../obj/shop.tx" x="177" y="81">
<properties>
<property name="commonShopList" value="Green,Green,Enchantment4Green,Creature2Green,Instant4Green"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,Vehicle,Artifact,Equip,Wand,Legend4Green"/>
<property name="rareShopList" value="RGU,UWG,UGB,RWG,RGB,GWB,Land4Green,Creature6Green"/>
<property name="uncommonShopList" value="Simic,Golgari,Gruul,Selesnya,Simic,Golgari,Gruul,Selesnya,Land"/>
</properties>
</object>
<object id="45" template="../obj/shop.tx" x="240" y="129">
<properties>
<property name="commonShopList" value="Green,Green,Enchantment4Green,Creature2Green,Instant4Green"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,Vehicle,Artifact,Equip,Wand,Legend4Green"/>
<property name="rareShopList" value="RGU,UWG,UGB,RWG,RGB,GWB,Land4Green,Creature6Green"/>
<property name="uncommonShopList" value="Simic,Golgari,Gruul,Selesnya,Simic,Golgari,Gruul,Selesnya,Land"/>
</properties>
</object>
<object id="46" template="../obj/shop.tx" x="368" y="226">
<properties>
<property name="commonShopList" value="Green,Green,Enchantment4Green,Creature2Green,Instant4Green"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,Vehicle,Artifact,Equip,Wand,Legend4Green"/>
<property name="rareShopList" value="RGU,UWG,UGB,RWG,RGB,GWB,Land4Green,Creature6Green"/>
<property name="uncommonShopList" value="Simic,Golgari,Gruul,Selesnya,Simic,Golgari,Gruul,Selesnya,Land"/>
</properties>
</object>
<object id="47" template="../obj/inn.tx" x="137" y="162"/>
<object id="48" template="../obj/shop.tx" x="304" y="48">
<properties>
<property name="commonShopList" value="Forest"/>
<property name="noRestock" type="bool" value="true"/>
</properties>
</object>
<object id="49" template="../obj/quest.tx" x="98" y="162">
<properties>
<property name="questtype" value="forest_town_identity"/>
</properties>
</object>
<object id="50" template="../obj/shardtrader.tx" x="98" y="98"/>
<object id="52" template="../obj/shop.tx" x="272" y="98">
<properties>
<property name="commonShopList" value="Green,Green,Enchantment4Green,Creature2Green,Instant4Green"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,Vehicle,Artifact,Equip,Wand,Legend4Green"/>
<property name="rareShopList" value="RGU,UWG,UGB,RWG,RGB,GWB,Land4Green,Creature6Green"/>
<property name="uncommonShopList" value="Simic,Golgari,Gruul,Selesnya,Simic,Golgari,Gruul,Selesnya,Land"/>
</properties>
</object>
<object id="53" template="../obj/RotatingShop.tx" x="208" y="50">
<properties>
<property name="rotation" value="Green1,Green2,Green3,Green4,Green5,Green6"/>
</properties>
</object>
</objectgroup>
</map>

View File

@@ -0,0 +1,111 @@
<?xml version="1.0" encoding="UTF-8"?>
<map version="1.9" tiledversion="1.9.2" orientation="orthogonal" renderorder="right-down" width="30" height="17" tilewidth="16" tileheight="16" infinite="0" nextlayerid="6" nextobjectid="55">
<editorsettings>
<export target="wastetown..tmx" format="tmx"/>
</editorsettings>
<tileset firstgid="1" source="../tileset/main.tsx"/>
<tileset firstgid="10113" source="../tileset/buildings.tsx"/>
<layer id="1" name="Background" width="30" height="17">
<data encoding="base64" compression="zlib">
eJztldEOgzAIRZuo0/GhOv1RO/Wj5CZrwpKu0K3dkw/nScMFLtDx7tz4JRMzKzTk3DHYY278767Qka4LloxaHoZ4FlbOb6D3elqqqys1oYd+B29+8c7S3014Aq+DN6i5jXhv9U6bKS2OnLsSmqXzu7CD+fbMk+kpDr6V1gw7hR2tuUeyRnk7/qEbu5G3xL2qqZsCOflXj2K9s/qf+x5Jgr4XXuX0o/lwE2u9vamen7FF4yE=
</data>
</layer>
<layer id="2" name="Ground" width="30" height="17">
<data encoding="base64" compression="zlib">
eJy1lVkKwjAQhqctdMF76IO4HEA8j3oC8RBuB1ChJ+mDSMELeBsb7NA4TmbSYgOhaZb58s/fJgDusggBrsF/6jJ0cwrSfglz2xYTqxDGbY27iJ8zTmTGg+nbRrJmH42lwu0Sm47Z2rDdJzcf/DJKB1fLexvuKgU4xADr+ontScXYpN9rcB8aX/JY87cU8q7lf0Ti3wXuqdJ2tvTZsTEnz6R5nypsly7aP8sA5hnP5fq0nNP4Q9K/jxtf7Yp+G5+p7/Y4/QawuDz2PaOo7jb/Fsfw5VIvfbzlGDTPPoVqpGzqMZ7PHEM7RyUustH3Y8yv47hFzfa5w/o4L6V9mHoLPtxLh7vY3HNv0GRgvg==
</data>
</layer>
<layer id="3" name="Foreground" width="30" height="17">
<properties>
<property name="spriteLayer" type="bool" value="true"/>
</properties>
<data encoding="base64" compression="zlib">
eJzT5mFg0AFieoE2bgh9EmjnKR7scsiAkZn2biIEhLUZGES0oRwk9yzG4l5CAJsfBxJ80kawjXUYGEx0yDPnHxN13IMMKHEPPe3PIsFMbOE00P6kFrDWYmCw0aLMjEETFljKHVLimVLARIdy7yYw79/Sxi1PK/9+Bdr5DY+9AwFygDgXiU/LuP6PVAZwMTIwcDNi2knrtAYAUVAVYg==
</data>
</layer>
<layer id="5" name="AboveSprites" width="30" height="17">
<data encoding="base64" compression="zlib">
eJxjYBj8IAtKf9ViYPimhRA/CMSHoOxsIM5Bw7lUsl9Qm4FBSBvhDmSwnJGBYQUQ8wAxFxRzM5JuxzVtBFtch4FBQgdTzSFMIQZOCu3FB47jcQ/M3yC8ksr2ogNc4UFPe46SaeYxKA1KttjSDy2APNAyBS3C6vAB5LDIYiDf7XqclLljIAC94okadsPSFyn6YGpvAsucW9rY5YYKwObeE3R3BfFgsIQvALDsG08=
</data>
</layer>
<objectgroup id="4" name="Objects">
<object id="38" template="../obj/entry_up.tx" x="240" y="272"/>
<object id="41" template="../obj/shop.tx" x="129" y="82">
<properties>
<property name="commonShopList" value="Elf,Wolf,Druid,Squirrel,Sliver2Green,Wolf4Green"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,Vehicle,Artifact,Equip,Wand,Legend4Green"/>
<property name="rareShopList" value="Simic,Golgari,Gruul,Selesnya,Creature6Green,Multicolor,Land4Green"/>
<property name="uncommonShopList" value="Creature2Green,Creature,Green"/>
</properties>
</object>
<object id="42" template="../obj/shop.tx" x="304" y="114">
<properties>
<property name="commonShopList" value="Elf,Wolf,Druid,Squirrel,Sliver2Green,Wolf4Green"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,Vehicle,Artifact,Equip,Wand,Legend4Green"/>
<property name="rareShopList" value="Simic,Golgari,Gruul,Selesnya,Creature6Green,Multicolor,Land4Green"/>
<property name="uncommonShopList" value="Creature2Green,Creature,Green"/>
</properties>
</object>
<object id="43" template="../obj/shop.tx" x="352" y="162">
<properties>
<property name="commonShopList" value="Elf,Wolf,Druid,Squirrel,Sliver2Green,Wolf4Green"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,Vehicle,Artifact,Equip,Wand,Legend4Green"/>
<property name="rareShopList" value="Simic,Golgari,Gruul,Selesnya,Creature6Green,Multicolor,Land4Green"/>
<property name="uncommonShopList" value="Creature2Green,Creature,Green"/>
</properties>
</object>
<object id="44" template="../obj/shop.tx" x="177" y="81">
<properties>
<property name="commonShopList" value="Elf,Wolf,Druid,Squirrel,Sliver2Green,Wolf4Green"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,Vehicle,Artifact,Equip,Wand,Legend4Green"/>
<property name="rareShopList" value="Simic,Golgari,Gruul,Selesnya,Creature6Green,Multicolor,Land4Green"/>
<property name="uncommonShopList" value="Creature2Green,Creature,Green"/>
</properties>
</object>
<object id="45" template="../obj/shop.tx" x="240" y="129">
<properties>
<property name="commonShopList" value="Elf,Wolf,Druid,Squirrel,Sliver2Green,Wolf4Green"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,Vehicle,Artifact,Equip,Wand,Legend4Green"/>
<property name="rareShopList" value="Simic,Golgari,Gruul,Selesnya,Creature6Green,Multicolor,Land4Green"/>
<property name="uncommonShopList" value="Creature2Green,Creature,Green"/>
</properties>
</object>
<object id="46" template="../obj/shop.tx" x="368" y="226">
<properties>
<property name="commonShopList" value="Elf,Wolf,Druid,Squirrel,Sliver2Green,Wolf4Green"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,Vehicle,Artifact,Equip,Wand,Legend4Green"/>
<property name="rareShopList" value="Simic,Golgari,Gruul,Selesnya,Creature6Green,Multicolor,Land4Green"/>
<property name="uncommonShopList" value="Creature2Green,Creature,Green"/>
</properties>
</object>
<object id="47" template="../obj/inn.tx" x="137" y="162"/>
<object id="48" template="../obj/shop.tx" x="304" y="48">
<properties>
<property name="commonShopList" value="Forest"/>
<property name="noRestock" type="bool" value="true"/>
</properties>
</object>
<object id="51" template="../obj/quest.tx" x="98" y="162">
<properties>
<property name="questtype" value="forest_town_tribal"/>
</properties>
</object>
<object id="52" template="../obj/shardtrader.tx" x="98" y="98"/>
<object id="53" template="../obj/shop.tx" x="272" y="98">
<properties>
<property name="commonShopList" value="Elf,Wolf,Druid,Squirrel,Sliver2Green,Wolf4Green"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,Vehicle,Artifact,Equip,Wand,Legend4Green"/>
<property name="rareShopList" value="Simic,Golgari,Gruul,Selesnya,Creature6Green,Multicolor,Land4Green"/>
<property name="uncommonShopList" value="Creature2Green,Creature,Green"/>
</properties>
</object>
<object id="54" template="../obj/shop.tx" x="208" y="50">
<properties>
<property name="commonShopList" value="Elf,Wolf,Druid,Squirrel,Sliver2Green,Wolf4Green"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,Vehicle,Artifact,Equip,Wand,Legend4Green"/>
<property name="rareShopList" value="Simic,Golgari,Gruul,Selesnya,Creature6Green,Multicolor,Land4Green"/>
<property name="uncommonShopList" value="Creature2Green,Creature,Green"/>
</properties>
</object>
</objectgroup>
</map>

View File

@@ -0,0 +1,111 @@
<?xml version="1.0" encoding="UTF-8"?>
<map version="1.9" tiledversion="1.9.2" orientation="orthogonal" renderorder="right-down" width="30" height="17" tilewidth="16" tileheight="16" infinite="0" nextlayerid="6" nextobjectid="54">
<editorsettings>
<export target="wastetown..tmx" format="tmx"/>
</editorsettings>
<tileset firstgid="1" source="../tileset/main.tsx"/>
<tileset firstgid="10113" source="../tileset/buildings.tsx"/>
<layer id="1" name="Background" width="30" height="17">
<data encoding="base64" compression="zlib">
eJzbwM7AsIHG2JiVgeEKEHdyIjBI3IiVtvZeR7MTZu8FEuwFub2EDROb4DHjIlDODIt/SbELPbxg+DIB94DstkDCxNhXyobdLmIwyD34woKYtEAuvkqCvdjSArm4mED808KvpIQ3Nf1KSngPlL3Y8hu90hcsv1HLflOgOWtIKOMo9TvIPiF2TDsJlXHE+N0UrSxCxrj8CMtfpNgPwpZIbiClXIDlU1LjHVv4k6IPW9lAqrs3spOmD9lOAPPDPGo=
</data>
</layer>
<layer id="2" name="Ground" width="30" height="17">
<data encoding="base64" compression="zlib">
eJxjYBgFQwHosw+MvWeB9pby0s78SWwMDJOx4AtI/tXHwSYHlBHwy1l2wmxagHPsCL/nciDYeRwQeULuJhfQyl/Y0ow+jvCEiaPTlAJYmF4gEKfoNKX2Z0PjLAcpHs9jiV90GhbX1AS0TrfIoIQXQdPTXmQwai9xAADlPiO/
</data>
</layer>
<layer id="3" name="Foreground" width="30" height="17">
<properties>
<property name="spriteLayer" type="bool" value="true"/>
</properties>
<data encoding="base64" compression="zlib">
eJxjYKAfKORgYCgC4mIOOloKBPycDAwCQCzISV97KQWdWgwMXVoQtrEOA4OJDu3s2qjOwLBJHcJeCrRzGRDrDZLwQvY7NcMhl4s8uZEI9LXJ02cNTEc2BNIwTBydphUgFLfLuBkYDMn0L0z/YAUmUH8ZUOC/4QiusDMwXGWnv70DUR+CAAAD6BOP
</data>
</layer>
<layer id="5" name="AboveSprites" width="30" height="17">
<data encoding="base64" compression="zlib">
eJxjYBgFpABxHQYGCR3amT9VnYFhmjqE3anFwNClRTu7SAXIfqd1OIwC6gJ5YDpSgKYlXHEHE0enR8EoGAXDCwAAl/AHJQ==
</data>
</layer>
<objectgroup id="4" name="Objects">
<object id="38" template="../obj/entry_up.tx" x="256" y="271"/>
<object id="41" template="../obj/shop.tx" x="304" y="98">
<properties>
<property name="commonShopList" value="Blue,Blue,Enchantment4Blue,Creature2Blue,Instant4Blue"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,RWU,RGU,UWG,RUB,UWB,UGB"/>
<property name="rareShopList" value="Land4Blue,Azorius,Izzet,Simic,Dimir,Vehicle,Colorless"/>
<property name="uncommonShopList" value="Artifact,Merfolk,Wizard,Bird4Blue,Pirate4Blue,Spirit4Blue,Sliver2Blue,Rogue4Blue,Wand,Equip,Multicolor"/>
</properties>
</object>
<object id="42" template="../obj/shop.tx" x="368" y="162">
<properties>
<property name="commonShopList" value="Blue,Blue,Enchantment4Blue,Creature2Blue,Instant4Blue"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,RWU,RGU,UWG,RUB,UWB,UGB"/>
<property name="rareShopList" value="Land4Blue,Azorius,Izzet,Simic,Dimir,Vehicle,Colorless"/>
<property name="uncommonShopList" value="Artifact,Merfolk,Wizard,Bird4Blue,Pirate4Blue,Spirit4Blue,Sliver2Blue,Rogue4Blue,Wand,Equip,Multicolor"/>
</properties>
</object>
<object id="43" template="../obj/shop.tx" x="353" y="98">
<properties>
<property name="commonShopList" value="Blue,Blue,Enchantment4Blue,Creature2Blue,Instant4Blue"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,RWU,RGU,UWG,RUB,UWB,UGB"/>
<property name="rareShopList" value="Land4Blue,Azorius,Izzet,Simic,Dimir,Vehicle,Colorless"/>
<property name="uncommonShopList" value="Artifact,Merfolk,Wizard,Bird4Blue,Pirate4Blue,Spirit4Blue,Sliver2Blue,Rogue4Blue,Wand,Equip,Multicolor"/>
</properties>
</object>
<object id="44" template="../obj/shop.tx" x="208" y="162">
<properties>
<property name="commonShopList" value="Blue,Blue,Enchantment4Blue,Creature2Blue,Instant4Blue"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,RWU,RGU,UWG,RUB,UWB,UGB"/>
<property name="rareShopList" value="Land4Blue,Azorius,Izzet,Simic,Dimir,Vehicle,Colorless"/>
<property name="uncommonShopList" value="Artifact,Merfolk,Wizard,Bird4Blue,Pirate4Blue,Spirit4Blue,Sliver2Blue,Rogue4Blue,Wand,Equip,Multicolor"/>
</properties>
</object>
<object id="45" template="../obj/shop.tx" x="304" y="162">
<properties>
<property name="commonShopList" value="Blue,Blue,Enchantment4Blue,Creature2Blue,Instant4Blue"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,RWU,RGU,UWG,RUB,UWB,UGB"/>
<property name="rareShopList" value="Land4Blue,Azorius,Izzet,Simic,Dimir,Vehicle,Colorless"/>
<property name="uncommonShopList" value="Artifact,Merfolk,Wizard,Bird4Blue,Pirate4Blue,Spirit4Blue,Sliver2Blue,Rogue4Blue,Wand,Equip,Multicolor"/>
</properties>
</object>
<object id="46" template="../obj/shop.tx" x="336" y="162">
<properties>
<property name="commonShopList" value="Blue,Blue,Enchantment4Blue,Creature2Blue,Instant4Blue"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,RWU,RGU,UWG,RUB,UWB,UGB"/>
<property name="rareShopList" value="Land4Blue,Azorius,Izzet,Simic,Dimir,Vehicle,Colorless"/>
<property name="uncommonShopList" value="Artifact,Merfolk,Wizard,Bird4Blue,Pirate4Blue,Spirit4Blue,Sliver2Blue,Rogue4Blue,Wand,Equip,Multicolor"/>
</properties>
</object>
<object id="47" template="../obj/inn.tx" x="215" y="82"/>
<object id="48" template="../obj/shop.tx" x="176" y="192">
<properties>
<property name="commonShopList" value="Island"/>
<property name="noRestock" type="bool" value="true"/>
</properties>
</object>
<object id="50" template="../obj/quest.tx" x="176" y="162">
<properties>
<property name="questtype" value="island_town_generic"/>
</properties>
</object>
<object id="51" template="../obj/shardtrader.tx" x="398" y="178"/>
<object id="52" template="../obj/shop.tx" x="168" y="82">
<properties>
<property name="commonShopList" value="Blue,Blue,Enchantment4Blue,Creature2Blue,Instant4Blue"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,RWU,RGU,UWG,RUB,UWB,UGB"/>
<property name="rareShopList" value="Land4Blue,Azorius,Izzet,Simic,Dimir,Vehicle,Colorless"/>
<property name="uncommonShopList" value="Artifact,Merfolk,Wizard,Bird4Blue,Pirate4Blue,Spirit4Blue,Sliver2Blue,Rogue4Blue,Wand,Equip,Multicolor"/>
</properties>
</object>
<object id="53" template="../obj/shop.tx" x="256" y="66">
<properties>
<property name="commonShopList" value="Blue,Blue,Enchantment4Blue,Creature2Blue,Instant4Blue"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,RWU,RGU,UWG,RUB,UWB,UGB"/>
<property name="rareShopList" value="Land4Blue,Azorius,Izzet,Simic,Dimir,Vehicle,Colorless"/>
<property name="uncommonShopList" value="Artifact,Merfolk,Wizard,Bird4Blue,Pirate4Blue,Spirit4Blue,Sliver2Blue,Rogue4Blue,Wand,Equip,Multicolor"/>
</properties>
</object>
</objectgroup>
</map>

View File

@@ -0,0 +1,110 @@
<?xml version="1.0" encoding="UTF-8"?>
<map version="1.9" tiledversion="1.9.2" orientation="orthogonal" renderorder="right-down" width="30" height="17" tilewidth="16" tileheight="16" infinite="0" nextlayerid="6" nextobjectid="58">
<editorsettings>
<export target="wastetown..tmx" format="tmx"/>
</editorsettings>
<tileset firstgid="1" source="../tileset/main.tsx"/>
<tileset firstgid="10113" source="../tileset/buildings.tsx"/>
<layer id="1" name="Background" width="30" height="17">
<data encoding="base64" compression="zlib">
eJzbwM7AsIHG2JiVgeEKEHdyIjBI3IiVtvZeR7MTZu8FEuwFub2EDROb4DHjIlDODIt/SbELPbxg+DIB94DstkDCxNhXyobdLmIwyD34woKYtEAuvkqCvdjSArm4mED808KvpIQ3Nf1KSngPlL3Y8hu90hcsv1HLflOgOWtIKOMo9TvIPiF2TDsJlXHE+N0UrSxCxrj8CMtfpNgPwpZIbiClXIDlU1LjHVv4k6IPW9lAqrs3spOmD9lOAPPDPGo=
</data>
</layer>
<layer id="2" name="Ground" width="30" height="17">
<data encoding="base64" compression="zlib">
eJxjYBgFQwHosw+MvWeB9pby0s78SWwMDJOx4AtI/tXHwSYHlBHwy1l2wmxagHPsCL/nciDYeRwQeULuJhfQyl/Y0ow+jvCEiaPTlAJYmF4gEKfoNKX2Z0PjLAcpHs9jiV90GhbX1AS0TrfIoIQXQdPTXmQwai9xAADlPiO/
</data>
</layer>
<layer id="3" name="Foreground" width="30" height="17">
<properties>
<property name="spriteLayer" type="bool" value="true"/>
</properties>
<data encoding="base64" compression="zlib">
eJxjYKAfKORgYCgC4mIOOloKBPycDAwCQCzISV97KQWdWgwMXVoQtrEOA4OJDu3s2qjOwLBJHcJeCrRzGRDrDZLwQvY7NcMhl4s8uZEInmiQp88amI5s0NLwWTSzYOLoNLXBS6i9hOJ2GTdl9lCqfxTQH1xhZ2C4yk5/eweiPgQBAMi+FTE=
</data>
</layer>
<layer id="5" name="AboveSprites" width="30" height="17">
<data encoding="base64" compression="zlib">
eJxjYBgFpABxHQYGCR3amT9VnYFhmjqE3anFwNClRTu7SAXIfqd1OIwC7OCEBnn65IHpSAGalnDFHUwcnR4Fo2AUDC8AAJuECBU=
</data>
</layer>
<objectgroup id="4" name="Objects">
<object id="38" template="../obj/entry_up.tx" x="256" y="271"/>
<object id="41" template="../obj/shop.tx" x="304" y="98">
<properties>
<property name="commonShopList" value="Blue,Blue,Enchantment4Blue,Creature2Blue,Instant4Blue"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,Vehicle,Artifact,Equip,Wand,Legend4Blue"/>
<property name="rareShopList" value="RWU,RGU,UWG,RUB,UWB,UGB,Land4Blue,Creature6Blue"/>
<property name="uncommonShopList" value="Azorius,Izzet,Simic,Dimir,Azorius,Izzet,Simic,Dimir,Land"/>
</properties>
</object>
<object id="42" template="../obj/shop.tx" x="368" y="162">
<properties>
<property name="commonShopList" value="Blue,Blue,Enchantment4Blue,Creature2Blue,Instant4Blue"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,Vehicle,Artifact,Equip,Wand,Legend4Blue"/>
<property name="rareShopList" value="RWU,RGU,UWG,RUB,UWB,UGB,Land4Blue,Creature6Blue"/>
<property name="uncommonShopList" value="Azorius,Izzet,Simic,Dimir,Azorius,Izzet,Simic,Dimir,Land"/>
</properties>
</object>
<object id="43" template="../obj/shop.tx" x="353" y="98">
<properties>
<property name="commonShopList" value="Blue,Blue,Enchantment4Blue,Creature2Blue,Instant4Blue"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,Vehicle,Artifact,Equip,Wand,Legend4Blue"/>
<property name="rareShopList" value="RWU,RGU,UWG,RUB,UWB,UGB,Land4Blue,Creature6Blue"/>
<property name="uncommonShopList" value="Azorius,Izzet,Simic,Dimir,Azorius,Izzet,Simic,Dimir,Land"/>
</properties>
</object>
<object id="44" template="../obj/shop.tx" x="208" y="162">
<properties>
<property name="commonShopList" value="Blue,Blue,Enchantment4Blue,Creature2Blue,Instant4Blue"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,Vehicle,Artifact,Equip,Wand,Legend4Blue"/>
<property name="rareShopList" value="RWU,RGU,UWG,RUB,UWB,UGB,Land4Blue,Creature6Blue"/>
<property name="uncommonShopList" value="Azorius,Izzet,Simic,Dimir,Azorius,Izzet,Simic,Dimir,Land"/>
</properties>
</object>
<object id="45" template="../obj/shop.tx" x="304" y="162">
<properties>
<property name="commonShopList" value="Blue,Blue,Enchantment4Blue,Creature2Blue,Instant4Blue"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,Vehicle,Artifact,Equip,Wand,Legend4Blue"/>
<property name="rareShopList" value="RWU,RGU,UWG,RUB,UWB,UGB,Land4Blue,Creature6Blue"/>
<property name="uncommonShopList" value="Azorius,Izzet,Simic,Dimir,Azorius,Izzet,Simic,Dimir,Land"/>
</properties>
</object>
<object id="46" template="../obj/shop.tx" x="336" y="162">
<properties>
<property name="commonShopList" value="Blue,Blue,Enchantment4Blue,Creature2Blue,Instant4Blue"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,Vehicle,Artifact,Equip,Wand,Legend4Blue"/>
<property name="rareShopList" value="RWU,RGU,UWG,RUB,UWB,UGB,Land4Blue,Creature6Blue"/>
<property name="uncommonShopList" value="Azorius,Izzet,Simic,Dimir,Azorius,Izzet,Simic,Dimir,Land"/>
</properties>
</object>
<object id="47" template="../obj/inn.tx" x="215" y="82"/>
<object id="48" template="../obj/shop.tx" x="176" y="192">
<properties>
<property name="commonShopList" value="Island"/>
<property name="noRestock" type="bool" value="true"/>
</properties>
</object>
<object id="52" template="../obj/quest.tx" x="176" y="162">
<properties>
<property name="questtype" value="island_town_identity"/>
</properties>
</object>
<object id="53" template="../obj/shardtrader.tx" x="398" y="178"/>
<object id="54" template="../obj/shop.tx" x="256" y="66">
<properties>
<property name="commonShopList" value="Blue,Blue,Enchantment4Blue,Creature2Blue,Instant4Blue"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,Vehicle,Artifact,Equip,Wand,Legend4Blue"/>
<property name="rareShopList" value="RWU,RGU,UWG,RUB,UWB,UGB,Land4Blue,Creature6Blue"/>
<property name="uncommonShopList" value="Azorius,Izzet,Simic,Dimir,Azorius,Izzet,Simic,Dimir,Land"/>
</properties>
</object>
<object id="57" template="../obj/RotatingShop.tx" x="168" y="82">
<properties>
<property name="rotation" value="Blue1,Blue2,Blue3,Blue4,Blue5,Blue6"/>
<property name="signXOffset" type="float" value="-16"/>
<property name="signYOffset" type="float" value="-16"/>
</properties>
</object>
</objectgroup>
</map>

View File

@@ -0,0 +1,111 @@
<?xml version="1.0" encoding="UTF-8"?>
<map version="1.9" tiledversion="1.9.2" orientation="orthogonal" renderorder="right-down" width="30" height="17" tilewidth="16" tileheight="16" infinite="0" nextlayerid="6" nextobjectid="57">
<editorsettings>
<export target="wastetown..tmx" format="tmx"/>
</editorsettings>
<tileset firstgid="1" source="../tileset/main.tsx"/>
<tileset firstgid="10113" source="../tileset/buildings.tsx"/>
<layer id="1" name="Background" width="30" height="17">
<data encoding="base64" compression="zlib">
eJzbwM7AsIHG2JiVgeEKEHdyIjBI3IiVtvZeR7MTZu8FEuwFub2EDROb4DHjIlDODIt/SbELPbxg+DIB94DstkDCxNhXyobdLmIwyD34woKYtEAuvkqCvdjSArm4mED808KvpIQ3Nf1KSngPlL3Y8hu90hcsv1HLflOgOWtIKOMo9TvIPiF2TDsJlXHE+N0UrSxCxrj8CMtfpNgPwpZIbiClXIDlU1LjHVv4k6IPW9lAqrs3spOmD9lOAPPDPGo=
</data>
</layer>
<layer id="2" name="Ground" width="30" height="17">
<data encoding="base64" compression="zlib">
eJxjYBgFQwHosw+MvWeB9pby0s78SWwMDJOx4AtI/tXHwSYHlBHwy1l2wmxagHPsCL/nciDYeRwQeULuJhfQyl/Y0ow+jvCEiaPTlAJYmF4gEKfoNKX2Z0PjLAcpHs9jiV90GhbX1AS0TrfIoIQXQdPTXmQwai9xAADlPiO/
</data>
</layer>
<layer id="3" name="Foreground" width="30" height="17">
<properties>
<property name="spriteLayer" type="bool" value="true"/>
</properties>
<data encoding="base64" compression="zlib">
eJxjYKAfKORgYCgC4mIO+tn5n4mBgZ+TgUEAiAU56WcvzG5SwVR1BoZp6hB2pxYDQ5cWhG2sw8BgokM9t6GDjUA7N0HtXQq0cxkQ69E5vHABZL9TMxxyuciTG0qAkRm33D8y0iepwBqYjmxwpGGY/TBxdJpWgFDcLuOmzHxK9Y8C+oMr7AwMV4GYAU9+oQWgd30IAwDoJheh
</data>
</layer>
<layer id="5" name="AboveSprites" width="30" height="17">
<data encoding="base64" compression="zlib">
eJxjYBgFpABxHQYGCR362NWpxcDQpUUfu4gByH6nZziMAsqBPDAdKUDTEq64g4mj06NgFIyC4QUAK4MFrA==
</data>
</layer>
<objectgroup id="4" name="Objects">
<object id="38" template="../obj/entry_up.tx" x="256" y="271"/>
<object id="41" template="../obj/shop.tx" x="304" y="98">
<properties>
<property name="commonShopList" value="Merfolk,Wizard,Bird4Blue,Sliver2Blue,Rogue4Blue,Spirit4Blue,Pirate4Blue"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,Vehicle,Artifact,Equip,Wand,Legend4Blue"/>
<property name="rareShopList" value="Azorius,Izzet,Simic,Dimir,Creature6Blue,Multicolor,Land4Blue"/>
<property name="uncommonShopList" value="Creature2Blue,Creature,Blue"/>
</properties>
</object>
<object id="42" template="../obj/shop.tx" x="368" y="162">
<properties>
<property name="commonShopList" value="Merfolk,Wizard,Bird4Blue,Sliver2Blue,Rogue4Blue,Spirit4Blue,Pirate4Blue"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,Vehicle,Artifact,Equip,Wand,Legend4Blue"/>
<property name="rareShopList" value="Azorius,Izzet,Simic,Dimir,Creature6Blue,Multicolor,Land4Blue"/>
<property name="uncommonShopList" value="Creature2Blue,Creature,Blue"/>
</properties>
</object>
<object id="43" template="../obj/shop.tx" x="353" y="98">
<properties>
<property name="commonShopList" value="Merfolk,Wizard,Bird4Blue,Sliver2Blue,Rogue4Blue,Spirit4Blue,Pirate4Blue"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,Vehicle,Artifact,Equip,Wand,Legend4Blue"/>
<property name="rareShopList" value="Azorius,Izzet,Simic,Dimir,Creature6Blue,Multicolor,Land4Blue"/>
<property name="uncommonShopList" value="Creature2Blue,Creature,Blue"/>
</properties>
</object>
<object id="44" template="../obj/shop.tx" x="208" y="162">
<properties>
<property name="commonShopList" value="Merfolk,Wizard,Bird4Blue,Sliver2Blue,Rogue4Blue,Spirit4Blue,Pirate4Blue"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,Vehicle,Artifact,Equip,Wand,Legend4Blue"/>
<property name="rareShopList" value="Azorius,Izzet,Simic,Dimir,Creature6Blue,Multicolor,Land4Blue"/>
<property name="uncommonShopList" value="Creature2Blue,Creature,Blue"/>
</properties>
</object>
<object id="45" template="../obj/shop.tx" x="304" y="162">
<properties>
<property name="commonShopList" value="Merfolk,Wizard,Bird4Blue,Sliver2Blue,Rogue4Blue,Spirit4Blue,Pirate4Blue"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,Vehicle,Artifact,Equip,Wand,Legend4Blue"/>
<property name="rareShopList" value="Azorius,Izzet,Simic,Dimir,Creature6Blue,Multicolor,Land4Blue"/>
<property name="uncommonShopList" value="Creature2Blue,Creature,Blue"/>
</properties>
</object>
<object id="46" template="../obj/shop.tx" x="336" y="162">
<properties>
<property name="commonShopList" value="Merfolk,Wizard,Bird4Blue,Sliver2Blue,Rogue4Blue,Spirit4Blue,Pirate4Blue"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,Vehicle,Artifact,Equip,Wand,Legend4Blue"/>
<property name="rareShopList" value="Azorius,Izzet,Simic,Dimir,Creature6Blue,Multicolor,Land4Blue"/>
<property name="uncommonShopList" value="Creature2Blue,Creature,Blue"/>
</properties>
</object>
<object id="47" template="../obj/inn.tx" x="215" y="82"/>
<object id="48" template="../obj/shop.tx" x="176" y="192">
<properties>
<property name="commonShopList" value="Island"/>
<property name="noRestock" type="bool" value="true"/>
</properties>
</object>
<object id="52" template="../obj/quest.tx" x="176" y="162">
<properties>
<property name="questtype" value="island_town_tribal"/>
</properties>
</object>
<object id="53" template="../obj/shardtrader.tx" x="398" y="178"/>
<object id="55" template="../obj/shop.tx" x="168" y="82">
<properties>
<property name="commonShopList" value="Merfolk,Wizard,Bird4Blue,Sliver2Blue,Rogue4Blue,Spirit4Blue,Pirate4Blue"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,Vehicle,Artifact,Equip,Wand,Legend4Blue"/>
<property name="rareShopList" value="Azorius,Izzet,Simic,Dimir,Creature6Blue,Multicolor,Land4Blue"/>
<property name="uncommonShopList" value="Creature2Blue,Creature,Blue"/>
</properties>
</object>
<object id="56" template="../obj/shop.tx" x="256" y="66">
<properties>
<property name="commonShopList" value="Merfolk,Wizard,Bird4Blue,Sliver2Blue,Rogue4Blue,Spirit4Blue,Pirate4Blue"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,Vehicle,Artifact,Equip,Wand,Legend4Blue"/>
<property name="rareShopList" value="Azorius,Izzet,Simic,Dimir,Creature6Blue,Multicolor,Land4Blue"/>
<property name="uncommonShopList" value="Creature2Blue,Creature,Blue"/>
</properties>
</object>
</objectgroup>
</map>

View File

@@ -1,10 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<map version="1.9" tiledversion="1.9.1" orientation="orthogonal" renderorder="right-down" width="40" height="40" tilewidth="16" tileheight="16" infinite="0" nextlayerid="7" nextobjectid="72"> <map version="1.9" tiledversion="1.9.2" orientation="orthogonal" renderorder="right-down" width="40" height="40" tilewidth="16" tileheight="16" infinite="0" nextlayerid="7" nextobjectid="81">
<editorsettings> <editorsettings>
<export target="wastetown..tmx" format="tmx"/> <export target="wastetown..tmx" format="tmx"/>
</editorsettings> </editorsettings>
<tileset firstgid="1" source="../../tileset/main.tsx"/> <tileset firstgid="1" source="../../tileset/main.tsx"/>
<tileset firstgid="6321" source="../../tileset/buildings.tsx"/> <tileset firstgid="10113" source="../../tileset/buildings.tsx"/>
<layer id="1" name="Background" width="40" height="40"> <layer id="1" name="Background" width="40" height="40">
<data encoding="base64" compression="zlib"> <data encoding="base64" compression="zlib">
eJztzjENADAIADDeBWOzgn8DM0FgR4/+rRNRAAAAAACMubl/8PP7VdfvAWT0x+U= eJztzjENADAIADDeBWOzgn8DM0FgR4/+rRNRAAAAAACMubl/8PP7VdfvAWT0x+U=
@@ -17,7 +17,7 @@
</layer> </layer>
<layer id="6" name="Ground2" width="40" height="40"> <layer id="6" name="Ground2" width="40" height="40">
<data encoding="base64" compression="zlib"> <data encoding="base64" compression="zlib">
eJzNmF1OwkAQx/cdDETUBCIPWlrQRi+lR/DrAgo8GRMRjiGGCyCgRoJnchu7YRhnvwv0n0zS7m63v87uzG43KjIWc4u4NbnlQWHKE6cWcJtym+WEb8I5GiljwvbN7arE2HVO7Ka0ZBRjultmrJIT2ysv/ThDfAfchluyfcQHtUvUNSXzo11grAOsW1itfyjQz+lEMVB1uv4naTxNJXG1CT7xjt6hus+A4Hnk909p2Qt6/qLO2GV9taxlyceId6qEv2fO/blwyFU2fMkYQsYB8APlA/w9kBnqFFwL34p2NnxZCPI1DNqvg4/yJcVHCc9tGz48r11FMX5J2m5ifBdVxn6qbs/68o3dXqsUnB8ufIOMxtlEPv5rS9YyX8F57sMXgj1syMcjksSs0FmNsfOaHastH4z/SUZ7WFVu942PtmLPcsRj9tgxbk0YZHUwVwkfJvvacTH7uWjLR+XW++LfXIzX8D/lM754Lup82ORzrCWJob4kZ2W5fkBG37wjYsaVL9QwZjXWNnyyfUnAyxqgHPsR+lK2D5D17TO+qv0MjGuZL03WblO+D00/MlZd3HyC6y6xtkCGmQF7D+2/sU6IMtvc05esv2ItUPFR0v3P4XWQav9skF/Ed5ryBTtypkiNrOWS8UUE353jeU4i3zOm25Kez+c8J6szJmp8X8t2ZzkjcP1W/t/HyLK/IeoP+89VlZr63lUUH84521RW/rOROK+D696UaJfkvndHPpNcMrfvdmVvLtjiDfsPn2t2CCZsm5TIGRRHBHwG738BVormxQ== eJzNmElOw0AQAOcEkRKUKCwfSHAC5gY3+Ah3lnBn+wAETogHwBsA8QFwAgjEK3gBOxcQbcWjdIbu2eyEtNSSl/G43Nu0JygIEYIGoDXQYZDphCdMtALaAm0PCV8EHNWEMWa7B90sCrE1JLpd7DJKn5ZLQowPiU6UunZsK3xToOf/pJMKH5Yyca/GxEczL8QB0sN87/39PP2cSSgG6p5p/ijJpxaTV4Pgk+9YDfVzVgieIzg/Tq6tKc/PzwmxMNd7re7IJ4h36kT9ngew56NHrXLhi32IGRvIDpQN1O/BzFhm0bG0rRznwpeFYL6qxfh+8FG2pPgoUWPbhU+Na1+hGO+YsYPw7wkk42ndPK4ffFd+r9UKjg8fvkZGfraRNPZrMmtZWsFxnoZP9oxxv/MOc34Y7PoNMfjjGIcufGruRxn1sLranjY/cN+i+vkZmp0XruGxFB8+XKukDeO+9qqQfSy68lG1da/QicWwD/9TafyL4zFibLgIi/9S0gB8wvgvJofWmetZrh+YEcdjOGr3PBaZM7580wZG7OtGDvrTkY5u5Nw4Xfi4vuQVfPPG+FrNba4P4OZO419dP4Pzmssbm7Xblu/GMA/HyuWNlFt0vDyjZ2hbsMuc5fpM4hXOtWedWX/lWqDjo8T0P6eug9T4FYv6Ir/Tlq8yxjMFemQjF8cXEHy7nvs5saTdY9opmvnS7OdktcdE+fes5LaXc4mOL0p/57h0nO9cmU+1n6881fXnvkLxqTXnPyUr+7mIbF/xutcixsW179qTz6aWPLhP29ObS7ZwwPZT9zUPCCZVBymyZlAcAbIZPv8FDvfvLg==
</data> </data>
</layer> </layer>
<layer id="3" name="Walls" width="40" height="40"> <layer id="3" name="Walls" width="40" height="40">
@@ -30,20 +30,25 @@
</layer> </layer>
<layer id="5" name="Overlay" width="40" height="40"> <layer id="5" name="Overlay" width="40" height="40">
<data encoding="base64" compression="zlib"> <data encoding="base64" compression="zlib">
eJzt1DkKgDAQBdDfuAupp8h59FTqlfRytk4vBsHAyOQ/SJFUswYgInpnisAcraOwxRrkw1rmtQtwiHUU+XA+/qfTfvROe2I1b5XubO1obylt0BkbneyQxz/6KadG39qPuXqsFxGVaQnAqmcL1pHcnZK+E1G5Ls9cDMw= eJzt1EsKgCAUBdC7g4Y1q1lirrHf5lpB/xaT0DCKIOuF3QOCjny+jwAR0TWhASIjHYUs5sAd5tKtSgG1ko7CHfbH94wZMGXSUTxDqt/aFOjS9++l98QaSPS2n+38LJ7MkI9/9NGbeluz4WbdfMwXEf1THgCFXWUgHcleo87PRPRfKyQjEbs=
</data> </data>
</layer> </layer>
<objectgroup id="4" name="Objects"> <objectgroup id="4" name="Objects">
<object id="56" template="../../obj/shop.tx" x="208" y="162"> <object id="56" template="../../obj/shop.tx" x="208" y="162">
<properties> <properties>
<property name="shopList" value="Human,Boros,Orzhov,Selesnya,Selesnya,Azorius,White,Creature,Instant,Angel"/> <property name="commonShopList" value="Enchantment6Green,Creature6Green,Instant6Green,Elf,Wolf,Druid,Squirrel"/>
<property name="mythicShopList" value="Planeswalker4Green,WUBRG,RGU,UWG,UGB,RWG,RGB,GWB,Legend4Green"/>
<property name="rareShopList" value="Artifact4Green,Land4Green,Dimir,Rakdos,Orzhov,Golgari,Vehicle2Green,Wand4Green"/>
<property name="signYOffset" type="float" value="-2"/>
<property name="uncommonShopList" value="Dinosaur4Green,Wolf4Green,Sliver4Green,Multicolor8Green"/>
</properties> </properties>
</object> </object>
<object id="47" template="../../obj/inn.tx" x="199" y="419"/> <object id="47" template="../../obj/inn.tx" x="199" y="419"/>
<object id="53" template="../../obj/spellsmith.tx" x="327" y="228"/> <object id="53" template="../../obj/spellsmith.tx" x="327" y="228"/>
<object id="55" template="../../obj/shop.tx" x="479" y="453"> <object id="55" template="../../obj/shop.tx" x="479" y="453">
<properties> <properties>
<property name="shopList" value="Forest"/> <property name="commonShopList" value="Forest"/>
<property name="noRestock" type="bool" value="true"/>
<property name="signYOffset" type="float" value="0"/> <property name="signYOffset" type="float" value="0"/>
</properties> </properties>
</object> </object>
@@ -56,49 +61,81 @@
<object id="60" template="../../obj/entry_right.tx" x="254" y="623" width="16" height="85"/> <object id="60" template="../../obj/entry_right.tx" x="254" y="623" width="16" height="85"/>
<object id="62" template="../../obj/shop.tx" x="361" y="370"> <object id="62" template="../../obj/shop.tx" x="361" y="370">
<properties> <properties>
<property name="shopList" value="GreenEquipment"/> <property name="commonShopList" value="GreenEquipment"/>
<property name="hasSign" type="bool" value="true"/>
<property name="noRestock" type="bool" value="true"/>
<property name="signYOffset" type="float" value="0"/> <property name="signYOffset" type="float" value="0"/>
</properties> </properties>
</object> </object>
<object id="63" template="../../obj/shop.tx" x="216" y="290"> <object id="63" template="../../obj/shop.tx" x="216" y="290">
<properties> <properties>
<property name="shopList" value="GreenItems"/> <property name="commonShopList" value="GreenItems"/>
<property name="hasSign" type="bool" value="true"/>
<property name="noRestock" type="bool" value="true"/>
<property name="signYOffset" type="float" value="0"/> <property name="signYOffset" type="float" value="0"/>
</properties> </properties>
</object> </object>
<object id="64" template="../../obj/shop.tx" x="466" y="417"> <object id="64" template="../../obj/shop.tx" x="466" y="417">
<properties> <properties>
<property name="shopList" value="Instant,Creature,Green,Gruul,Selesnya,Golgari,Simic,Elf "/> <property name="commonShopList" value="Enchantment6Green,Creature6Green,Instant6Green,Elf,Wolf,Druid,Squirrel"/>
<property name="mythicShopList" value="Planeswalker4Green,WUBRG,RGU,UWG,UGB,RWG,RGB,GWB,Legend4Green"/>
<property name="rareShopList" value="Artifact4Green,Land4Green,Dimir,Rakdos,Orzhov,Golgari,Vehicle2Green,Wand4Green"/>
<property name="signYOffset" type="float" value="-2"/>
<property name="uncommonShopList" value="Dinosaur4Green,Wolf4Green,Sliver4Green,Multicolor8Green"/>
</properties> </properties>
</object> </object>
<object id="65" template="../../obj/shop.tx" x="529" y="386"> <object id="65" template="../../obj/shop.tx" x="530" y="386">
<properties> <properties>
<property name="shopList" value="Instant,Creature,Green,Gruul,Selesnya,Golgari,Simic,Elf "/> <property name="commonShopList" value="Enchantment6Green,Creature6Green,Instant6Green,Elf,Wolf,Druid,Squirrel"/>
<property name="mythicShopList" value="Planeswalker4Green,WUBRG,RGU,UWG,UGB,RWG,RGB,GWB,Legend4Green"/>
<property name="rareShopList" value="Artifact4Green,Land4Green,Dimir,Rakdos,Orzhov,Golgari,Vehicle2Green,Wand4Green"/>
<property name="signYOffset" type="float" value="-2"/>
<property name="uncommonShopList" value="Dinosaur4Green,Wolf4Green,Sliver4Green,Multicolor8Green"/>
</properties> </properties>
</object> </object>
<object id="66" template="../../obj/shop.tx" x="449" y="305"> <object id="66" template="../../obj/shop.tx" x="449" y="305">
<properties> <properties>
<property name="shopList" value="Instant,Creature,Green,Gruul,Selesnya,Golgari,Simic,Elf "/> <property name="commonShopList" value="Enchantment6Green,Creature6Green,Instant6Green,Elf,Wolf,Druid,Squirrel"/>
<property name="mythicShopList" value="Planeswalker4Green,WUBRG,RGU,UWG,UGB,RWG,RGB,GWB,Legend4Green"/>
<property name="rareShopList" value="Artifact4Green,Land4Green,Dimir,Rakdos,Orzhov,Golgari,Vehicle2Green,Wand4Green"/>
<property name="signYOffset" type="float" value="-2"/>
<property name="uncommonShopList" value="Dinosaur4Green,Wolf4Green,Sliver4Green,Multicolor8Green"/>
</properties> </properties>
</object> </object>
<object id="67" template="../../obj/shop.tx" x="513" y="241"> <object id="67" template="../../obj/shop.tx" x="513" y="241">
<properties> <properties>
<property name="shopList" value="Instant,Creature,Green,Gruul,Selesnya,Golgari,Simic,Elf "/> <property name="commonShopList" value="Enchantment6Green,Creature6Green,Instant6Green,Elf,Wolf,Druid,Squirrel"/>
<property name="mythicShopList" value="Planeswalker4Green,WUBRG,RGU,UWG,UGB,RWG,RGB,GWB,Legend4Green"/>
<property name="rareShopList" value="Artifact4Green,Land4Green,Dimir,Rakdos,Orzhov,Golgari,Vehicle2Green,Wand4Green"/>
<property name="signYOffset" type="float" value="-2"/>
<property name="uncommonShopList" value="Dinosaur4Green,Wolf4Green,Sliver4Green,Multicolor8Green"/>
</properties> </properties>
</object> </object>
<object id="68" template="../../obj/shop.tx" x="448" y="130"> <object id="68" template="../../obj/shop.tx" x="448" y="130">
<properties> <properties>
<property name="shopList" value="Instant,Creature,Green,Gruul,Selesnya,Golgari,Simic,Elf "/> <property name="commonShopList" value="Enchantment6Green,Creature6Green,Instant6Green,Elf,Wolf,Druid,Squirrel"/>
<property name="mythicShopList" value="Planeswalker4Green,WUBRG,RGU,UWG,UGB,RWG,RGB,GWB,Legend4Green"/>
<property name="rareShopList" value="Artifact4Green,Land4Green,Dimir,Rakdos,Orzhov,Golgari,Vehicle2Green,Wand4Green"/>
<property name="signYOffset" type="float" value="-2"/>
<property name="uncommonShopList" value="Dinosaur4Green,Wolf4Green,Sliver4Green,Multicolor8Green"/>
</properties> </properties>
</object> </object>
<object id="69" template="../../obj/shop.tx" x="257" y="194"> <object id="69" template="../../obj/shop.tx" x="257" y="194">
<properties> <properties>
<property name="shopList" value="Instant,Creature,Green,Gruul,Selesnya,Golgari,Simic,Elf "/> <property name="commonShopList" value="Enchantment6Green,Creature6Green,Instant6Green,Elf,Wolf,Druid,Squirrel"/>
<property name="mythicShopList" value="Planeswalker4Green,WUBRG,RGU,UWG,UGB,RWG,RGB,GWB,Legend4Green"/>
<property name="rareShopList" value="Artifact4Green,Land4Green,Dimir,Rakdos,Orzhov,Golgari,Vehicle2Green,Wand4Green"/>
<property name="signYOffset" type="float" value="-2"/>
<property name="uncommonShopList" value="Dinosaur4Green,Wolf4Green,Sliver4Green,Multicolor8Green"/>
</properties> </properties>
</object> </object>
<object id="70" template="../../obj/shop.tx" x="97" y="417"> <object id="70" template="../../obj/shop.tx" x="97" y="417">
<properties> <properties>
<property name="shopList" value="Instant,Creature,Green,Gruul,Selesnya,Golgari,Simic,Elf "/> <property name="commonShopList" value="Enchantment6Green,Creature6Green,Instant6Green,Elf,Wolf,Druid,Squirrel"/>
<property name="mythicShopList" value="Planeswalker4Green,WUBRG,RGU,UWG,UGB,RWG,RGB,GWB,Legend4Green"/>
<property name="rareShopList" value="Artifact4Green,Land4Green,Dimir,Rakdos,Orzhov,Golgari,Vehicle2Green,Wand4Green"/>
<property name="signYOffset" type="float" value="-2"/>
<property name="uncommonShopList" value="Dinosaur4Green,Wolf4Green,Sliver4Green,Multicolor8Green"/>
</properties> </properties>
</object> </object>
<object id="71" template="../../obj/arena.tx" x="359" y="290"> <object id="71" template="../../obj/arena.tx" x="359" y="290">
@@ -163,5 +200,47 @@
}</property> }</property>
</properties> </properties>
</object> </object>
<object id="74" template="../../obj/quest.tx" class="quest" x="312" y="370">
<properties>
<property name="questtype" value="forest_capital"/>
</properties>
</object>
<object id="76" template="../../obj/shop.tx" x="96" y="209">
<properties>
<property name="commonShopList" value="Enchantment6Green,Creature6Green,Instant6Green,Elf,Wolf,Druid,Squirrel"/>
<property name="mythicShopList" value="Planeswalker4Green,WUBRG,RGU,UWG,UGB,RWG,RGB,GWB,Legend4Green"/>
<property name="rareShopList" value="Artifact4Green,Land4Green,Dimir,Rakdos,Orzhov,Golgari,Vehicle2Green,Wand4Green"/>
<property name="signXOffset" type="float" value="-16"/>
<property name="signYOffset" type="float" value="-8"/>
<property name="uncommonShopList" value="Dinosaur4Green,Wolf4Green,Sliver4Green,Multicolor8Green"/>
</properties>
</object>
<object id="77" template="../../obj/shop.tx" x="96" y="304">
<properties>
<property name="commonShopList" value="Enchantment6Green,Creature6Green,Instant6Green,Elf,Wolf,Druid,Squirrel"/>
<property name="mythicShopList" value="Planeswalker4Green,WUBRG,RGU,UWG,UGB,RWG,RGB,GWB,Legend4Green"/>
<property name="rareShopList" value="Artifact4Green,Land4Green,Dimir,Rakdos,Orzhov,Golgari,Vehicle2Green,Wand4Green"/>
<property name="signXOffset" type="float" value="-16"/>
<property name="signYOffset" type="float" value="-8"/>
<property name="uncommonShopList" value="Dinosaur4Green,Wolf4Green,Sliver4Green,Multicolor8Green"/>
</properties>
</object>
<object id="78" template="../../obj/RotatingShop.tx" x="462" y="369">
<properties>
<property name="rotation" value="Green1,Green2,Green3,Green4,Green5,Green6"/>
</properties>
</object>
<object id="79" template="../../obj/RotatingShop.tx" x="160" y="161">
<properties>
<property name="rotation" value="Green1,Green2,Green3,Green4,Green5,Green6"/>
<property name="signYOffset" type="float" value="0"/>
</properties>
</object>
<object id="80" template="../../obj/RotatingShop.tx" x="160" y="370">
<properties>
<property name="rotation" value="Green1,Green2,Green3,Green4,Green5,Green6"/>
<property name="signYOffset" type="float" value="0"/>
</properties>
</object>
</objectgroup> </objectgroup>
</map> </map>

View File

@@ -1,23 +1,28 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<map version="1.9" tiledversion="1.9.1" orientation="orthogonal" renderorder="right-down" width="40" height="40" tilewidth="16" tileheight="16" infinite="0" nextlayerid="7" nextobjectid="64"> <map version="1.9" tiledversion="1.9.2" orientation="orthogonal" renderorder="right-down" width="40" height="40" tilewidth="16" tileheight="16" infinite="0" nextlayerid="13" nextobjectid="72">
<editorsettings> <editorsettings>
<export format="tmx"/> <export format="tmx"/>
</editorsettings> </editorsettings>
<tileset firstgid="1" source="../../tileset/main.tsx"/> <tileset firstgid="1" source="../../tileset/main.tsx"/>
<tileset firstgid="6321" source="../../tileset/buildings.tsx"/> <tileset firstgid="10113" source="../../tileset/buildings.tsx"/>
<layer id="1" name="Background" width="40" height="40"> <layer id="1" name="Background" width="40" height="40">
<data encoding="base64" compression="zlib"> <data encoding="base64" compression="zlib">
eJztmEEOgjAQRbsAzmOiHse7cAQlKd5TTcSdbaRJGafDVFo6Jiz+poTw+n+npdPXSt0rpQ7NVA8z1tcydDU6VVPpAhy+T74/Uvh8Dh0Yj+Fz870h6+OXdRLiuxi9xvGn0WDUzfhvdWy+5wW1b6ZzoHgtxxD4vmPHfHNcHB4ub2z9OXbIbdlScGGcKWopB9tSL3N5RnFyGddmi2EsxcZlxPbBtRXad0t7R3kohS3EKCFXKmfJfNKyhRlL9M73cOPb+Epp18jmk+6fBncPSbL3oO4Pzo9/4JOWsZ+tNEaMTVLOVN+itIeUd6UZOWylGOfYXK/A/+d3/Y6cnFQvCqsLrN+Qy0vKM+gXrFt4f0rp5ehZS/Xv3H1D1zif/wyuy/OHtbXi8LoMx/fILCGHDvjDraW57GNqEvKFzhDOeuXu6bE97FB/d4lS8mH93TfVKOm8 eJzNmEtOwzAQhrPIoxdhyUMFjsMJYAE36BGgbdpTcRmgtGwqMkp+MRnG9jhxCpVGVVPF/vzPwx5viix7z7PspuzbR/NsU/wP2zZ2l/et/gMOrhPX57/wcY7a8TyGD+t9U+JjSJy4+F4a++qe7xs7NLYM6E92W/5el7Trsr8GHy9xHBzzg92lG7FZeKy8sfkH9qVgwjhP1Xg2yTk2l9bN96po13tRtvyfiRmHaKn5kjhpHC2XUnBaGX1xVjty/VSMoRw4Vq1NwWdhDGkzNR/iaEz9IL6zBHXGZ7LGWdl2eVt/qBalzGNtjtD+q713zupBakbfvmXh47mbutbsHFwxviWmddHnjdGQGJ67PQo5Rt+Hzi/cn8RE+/UYDa7KuNiAPo9Vn49+0zrx/7z80WFovaX5Hqow307EFM4/nA9nGxlrWNMQvprNt/a8X7MzxmvDMZu54wH7PMaL8Y/Ug7QLsfGYJc77qn3POp/MQZo7FOs181GITc4F/11G1HbScOuJRfrgPIs4GppPqyLeX5xJqxf0OVb9c32Mbq64tdYkMPEc4z0AzgNjmDQ+i4b73F2zkZupzyqIX8t6fX3QWD9qhnpmHVfjs65tiMWcHV2+nersHsPni7sp+eAv5J4rh333FvweIbVh/4JRvyoZQzk7NaPUifvLwnZKRtITGlpqnezjUaen5MT+MDf2ldp9w1Racs34+VTTS+at7JNTatn1QQvf/R36Dd9+qOU5cXY9xILMwou+DL2HL84kR+3Qx5pLId/H5KTk097V7gBjxrT4wDpWqvvvlHza/e435SQojA==
</data> </data>
</layer> </layer>
<layer id="2" name="Ground" width="40" height="40"> <layer id="2" name="Ground" width="40" height="40">
<data encoding="base64" compression="zlib"> <data encoding="base64" compression="zlib">
eJzlWM1KA0EMHrGt0CL9wZM3xbvtU/gW4n0VFYpP4U1fwKpFqeIriHf1afTsDDY0DclusrvjKH4QxJ1k803+ZjvO/S1s953b6admIWN/4NzBIJ3/rV8cm/+Ajc00tlVwlcZtJXCcGxH9wbunwrr0PAV2PdmhUUYxg0d4tVvO3Xs5bOrkzut2WvXw5HqM43XU1L8zU/K09ndZXlItanlquWl4TYmNxh/lWYbja+ObmyWPwebd4Cubc7TYTAy+Pvz6J9KhNnSdg3VPGjuYvRd+/5fN5TrFdQXrAVIaqB8NVag97b6Cjzciki19HGytNSjV3oRXL+SXdz5banAN+dPoQ33hfsT9rqk/iz+rPq4vzg6v09jjmFI7KU9YH9dEq5gq60eLmHMJz2TsR5rVtBY1vcide9q+wnrAT9v/+IwK9YrPoqKzOMs5f2DejRrLsQZ+uP+xLrc36xkVADmQ8gzzBGYxzGX6d0jiQ/dombESuDzjeULnHhbp24LmtQpwnuk3cbuAH2cjxfTay00Fjtw3cR43Lo5YgFus336ZkmMdObQC5kBeHZb5HRALNJZSzOAcOk9wjwAcU+RTQui3W/R/2fP3p5DHb7xe7d1wL7jXzdc79usnjJx2F/zydLQ4Y/YTuBXdX856zj0QefLy2Fvwm82fUb2gU4SY98s4v9pvRopnz+0lEr+shnkX8/57pePcaqfed34BjJbWzg== eJzVWEtOwzAQ9SI1iAr1cwMQC1ilnIJLIMS+IEBC3If+1KogroDYp1yCg2CLDJ1OZmwnTlN40ogm2Jnn+ctK/S8c95Q66e2ahYyrvlLX/d3pPxJs89wsDRF7uyawZXydbj5rbc6si+vSRKnzxL23CWSGw2cS/r5plOHXJF3wK/CYqU2fNmk/To3V3zb8DvTP30Ei/x4wsVgnaKynuf6FkZuWX+aIK5dLZcDlGPWVfV6V8N+Q4cnZs0x+a+QbayvMBfTdtvi9M/J8ecbzjLEl2Ah8GMKFq3mub8fkT5Zzk3hJezidUyPLmviNBF1jI5OK/Ch88RECly46S6RJsaZQP0dQKSBlcsIF8BeW2No89+jjYm/EL/fyG8dR/QXMXmV700Sv6wbk+9RROyAepFx32a4Kv5B9I7IuJgagt8IZQ8to6Lkov9C6CRii3umrAdLM4tJp48HGgo0Brf25SPuelAccwNZ41grRmaEzLXKuuBfFzNrYNmCLNuKEdWqhHmb5OWBdnaBxBhxXwkzIcchIjcVnDq1HUAfo3Ib5vaB3uP7h2ZBySxneVWoGtQuet/B8BPGGuWHfDpBe2M99s0q9mWh5Jl4lm/pAsG+BL8A1Z8fMCxzvuS72NSq+Ga2u3ocBdQD3NY6Xr8/Vgf2ANdSWUs2AVzDvN4khmg/qjKMY2Hl6ip7/yp2GBBe/x0P/fleowr3gRcf9jTvz/3tGHjprfq41oXhizmO5SfeXgGXX9Awib0Zeu2t+y/wdXWfX+FD2frlMfcL+rVpW3g23jy3df9eRH9u6/4YeHHtvQfENf1fcDQ==
</data>
</layer>
<layer id="8" name="Bridges" width="40" height="40">
<data encoding="base64" compression="zlib">
eJzt1kkOgkAUhOG3cXYPW2fDbXC6FU4XxekAFkmTEMWYELVLUl/yNqz+hOY1ZiJSV53IrBv5rnhtgrYpcZ98xiowW7vZBL5rnl3QdHVzI+zbh2YHN8fQd40wi3F+F5gl4TnOpOg6Yc7qq6Ssj+meT7CftphdYU/pnv+9mHgHZFLCb6yBM9p055Sxb4C2IXFfUfKwA+os/7etqoV32v7ifsz/Hd/poaFf0jHCszHB/p6hYU7QISIi/+0OQfQkaQ==
</data> </data>
</layer> </layer>
<layer id="6" name="Ground2" width="40" height="40"> <layer id="6" name="Ground2" width="40" height="40">
<data encoding="base64" compression="zlib"> <data encoding="base64" compression="zlib">
eJzt1kEKgzAQheE5RDfq4W3PYXsKtbHozrbncBYBlWajjImU/4PZiCSPiUkUAQD8k7YQeRZ27wFLe76bTy7yzY+fB/GVmcjV1y1LneZXpZnuvh4nzOc0U+frdcJ8mMU+k46cr9Zxm8DYTp91nLtBvfZl2NCbUe+898Z7D/FY7y/+WdK6sNdW6Ed6lmvAegI2JkGoI2Y= eJztlU0OQDAUhN9xcAXuhHPgFH5K2Pk5kYN4i25EF0SbtsyXvIUumjHTdogAAKZoI6Iuur8O/ECVX8zfCbI2zh/8/OI/riHRFtpW4Re+9EcaEGVy8sC2misFayrlVIb0vclEsKZezuCgf8AeJu96zfs2ir0Fr/UOvS8uMbIv0wNvZu68xfPee3MGXesq8G129OcJ+GEfnRkgTwD0cABSpCk/
</data> </data>
</layer> </layer>
<layer id="3" name="Walls" width="40" height="40"> <layer id="3" name="Walls" width="40" height="40">
@@ -30,55 +35,88 @@
</layer> </layer>
<layer id="5" name="Overlay" width="40" height="40"> <layer id="5" name="Overlay" width="40" height="40">
<data encoding="base64" compression="zlib"> <data encoding="base64" compression="zlib">
eJzt1jsOgzAMBmDfgBm4K/Qm0FPwFmy0PVFHPEQC0S60DjbR/0leUIitBCcQAVzHO9Z5F2CrSYnaVG5cKDR7LKT+/uW7eSZEr8R/HoC9gnuvdHE32Icd19S7GAzWB6uzzySf+Sqet/4yd8fPeqGcFu+9f2oaeV2mA2sz8533OHjvwXmk+wv/LLosnjeasB76JPcA+/kpi4hyF7dIuxoAGQufWSj0 eJxjYBgFo2DogBMaqPxOLQaGLi1MddjE0fWOgsELsMWfPJCvQGRcjwLyASXhOZB5jBS7h2OamanJwDBLc6BdMbQAKfXHKMAN8oF5rwCKC2lUBlASJ91AN/VAce9oO2AUIAFa5vV2oLkdWMzuBor1UMnOwdiupcRN/cBwmUBC2EwH1nkzhni9R0kaHK2rRgE9wWAsbwYSjIbHwANqxsFofGKCOn4GhnoobuAfaNeMglFAHQAAkqgpdw==
</data> </data>
</layer> </layer>
<objectgroup id="4" name="Objects"> <objectgroup id="4" name="Objects">
<object id="41" template="../../obj/shop.tx" x="232" y="162"> <object id="41" template="../../obj/shop.tx" x="232" y="146">
<properties> <properties>
<property name="shopList" value="Instant,Creature,Blue,Azorius,Dimir,Izzet,Simic,Merfolk "/> <property name="commonShopList" value="Enchantment6Blue,Creature6Blue,Instant6Blue,Merfolk,Wizard"/>
<property name="mythicShopList" value="Planeswalker4Blue,WUBRG,RWU,RGU,UWG,RUB,UWB,UGB,Legend4Blue"/>
<property name="rareShopList" value="Artifact4Blue,Land4Blue,Azorius,Izzet,Simic,Dimir,Vehicle2Blue,Wand4Blue"/>
<property name="signYOffset" type="float" value="-4"/>
<property name="uncommonShopList" value="Pirate4Blue,Spirit4Blue,Sliver2Blue,Rogue4Blue,Multicolor8Blue"/>
</properties> </properties>
</object> </object>
<object id="56" template="../../obj/shop.tx" x="103" y="226"> <object id="56" template="../../obj/shop.tx" x="106" y="210">
<properties> <properties>
<property name="shopList" value="Instant,Creature,Blue,Azorius,Dimir,Izzet,Simic,Merfolk "/> <property name="commonShopList" value="Enchantment6Blue,Creature6Blue,Instant6Blue,Merfolk,Wizard"/>
<property name="mythicShopList" value="Planeswalker4Blue,WUBRG,RWU,RGU,UWG,RUB,UWB,UGB,Legend4Blue"/>
<property name="rareShopList" value="Artifact4Blue,Land4Blue,Azorius,Izzet,Simic,Dimir,Vehicle2Blue,Wand4Blue"/>
<property name="signYOffset" type="float" value="-4"/>
<property name="uncommonShopList" value="Pirate4Blue,Spirit4Blue,Sliver2Blue,Rogue4Blue,Multicolor8Blue"/>
</properties> </properties>
</object> </object>
<object id="57" template="../../obj/shop.tx" x="392" y="162"> <object id="57" template="../../obj/shop.tx" x="408" y="146">
<properties> <properties>
<property name="shopList" value="Instant,Creature,Blue,Azorius,Dimir,Izzet,Simic,Merfolk "/> <property name="commonShopList" value="Enchantment6Blue,Creature6Blue,Instant6Blue,Merfolk,Wizard"/>
<property name="mythicShopList" value="Planeswalker4Blue,WUBRG,RWU,RGU,UWG,RUB,UWB,UGB,Legend4Blue"/>
<property name="rareShopList" value="Artifact4Blue,Land4Blue,Azorius,Izzet,Simic,Dimir,Vehicle2Blue,Wand4Blue"/>
<property name="signYOffset" type="float" value="-4"/>
<property name="uncommonShopList" value="Pirate4Blue,Spirit4Blue,Sliver2Blue,Rogue4Blue,Multicolor8Blue"/>
</properties> </properties>
</object> </object>
<object id="43" template="../../obj/shop.tx" x="152" y="451"> <object id="43" template="../../obj/shop.tx" x="152" y="435">
<properties> <properties>
<property name="shopList" value="Instant,Creature,Blue,Azorius,Dimir,Izzet,Simic,Merfolk "/> <property name="commonShopList" value="Enchantment6Blue,Creature6Blue,Instant6Blue,Merfolk,Wizard"/>
<property name="mythicShopList" value="Planeswalker4Blue,WUBRG,RWU,RGU,UWG,RUB,UWB,UGB,Legend4Blue"/>
<property name="rareShopList" value="Artifact4Blue,Land4Blue,Azorius,Izzet,Simic,Dimir,Vehicle2Blue,Wand4Blue"/>
<property name="signYOffset" type="float" value="-4"/>
<property name="uncommonShopList" value="Pirate4Blue,Spirit4Blue,Sliver2Blue,Rogue4Blue,Multicolor8Blue"/>
</properties> </properties>
</object> </object>
<object id="47" template="../../obj/inn.tx" x="311" y="227"/> <object id="47" template="../../obj/inn.tx" x="311" y="227"/>
<object id="49" template="../../obj/shop.tx" x="520" y="225"> <object id="49" template="../../obj/shop.tx" x="360" y="258">
<properties> <properties>
<property name="shopList" value="Instant,Creature,Blue,Azorius,Dimir,Izzet,Simic,Merfolk "/> <property name="commonShopList" value="Enchantment6Blue,Creature6Blue,Instant6Blue,Merfolk,Wizard"/>
<property name="mythicShopList" value="Planeswalker4Blue,WUBRG,RWU,RGU,UWG,RUB,UWB,UGB,Legend4Blue"/>
<property name="rareShopList" value="Artifact4Blue,Land4Blue,Azorius,Izzet,Simic,Dimir,Vehicle2Blue,Wand4Blue"/>
<property name="signYOffset" type="float" value="-4"/>
<property name="uncommonShopList" value="Pirate4Blue,Spirit4Blue,Sliver2Blue,Rogue4Blue,Multicolor8Blue"/>
</properties> </properties>
</object> </object>
<object id="50" template="../../obj/shop.tx" x="536" y="354"> <object id="50" template="../../obj/shop.tx" x="536" y="354">
<properties> <properties>
<property name="shopList" value="Instant,Creature,Blue,Azorius,Dimir,Izzet,Simic,Merfolk "/> <property name="commonShopList" value="Enchantment6Blue,Creature6Blue,Instant6Blue,Merfolk,Wizard"/>
<property name="mythicShopList" value="Planeswalker4Blue,WUBRG,RWU,RGU,UWG,RUB,UWB,UGB,Legend4Blue"/>
<property name="rareShopList" value="Artifact4Blue,Land4Blue,Azorius,Izzet,Simic,Dimir,Vehicle2Blue,Wand4Blue"/>
<property name="signYOffset" type="float" value="-4"/>
<property name="uncommonShopList" value="Pirate4Blue,Spirit4Blue,Sliver2Blue,Rogue4Blue,Multicolor8Blue"/>
</properties> </properties>
</object> </object>
<object id="51" template="../../obj/shop.tx" x="472" y="450"> <object id="51" template="../../obj/shop.tx" x="552" y="418">
<properties> <properties>
<property name="shopList" value="Instant,Creature,Blue,Azorius,Dimir,Izzet,Simic,Merfolk "/> <property name="commonShopList" value="Enchantment6Blue,Creature6Blue,Instant6Blue,Merfolk,Wizard"/>
<property name="mythicShopList" value="Planeswalker4Blue,WUBRG,RWU,RGU,UWG,RUB,UWB,UGB,Legend4Blue"/>
<property name="rareShopList" value="Artifact4Blue,Land4Blue,Azorius,Izzet,Simic,Dimir,Vehicle2Blue,Wand4Blue"/>
<property name="signYOffset" type="float" value="-4"/>
<property name="uncommonShopList" value="Pirate4Blue,Spirit4Blue,Sliver2Blue,Rogue4Blue,Multicolor8Blue"/>
</properties> </properties>
</object> </object>
<object id="52" template="../../obj/shop.tx" x="88" y="354"> <object id="52" template="../../obj/shop.tx" x="56" y="306">
<properties> <properties>
<property name="shopList" value="Instant,Creature,Blue,Azorius,Dimir,Izzet,Simic,Merfolk "/> <property name="commonShopList" value="Enchantment6Blue,Creature6Blue,Instant6Blue,Merfolk,Wizard"/>
<property name="mythicShopList" value="Planeswalker4Blue,WUBRG,RWU,RGU,UWG,RUB,UWB,UGB,Legend4Blue"/>
<property name="rareShopList" value="Artifact4Blue,Land4Blue,Azorius,Izzet,Simic,Dimir,Vehicle2Blue,Wand4Blue"/>
<property name="signYOffset" type="float" value="-4"/>
<property name="uncommonShopList" value="Pirate4Blue,Spirit4Blue,Sliver2Blue,Rogue4Blue,Multicolor8Blue"/>
</properties> </properties>
</object> </object>
<object id="53" template="../../obj/spellsmith.tx" x="408" y="402"/> <object id="53" template="../../obj/spellsmith.tx" x="408" y="402"/>
<object id="55" template="../../obj/shop.tx" x="465" y="515"> <object id="55" template="../../obj/shop.tx" x="462" y="515">
<properties> <properties>
<property name="shopList" value="Island"/> <property name="commonShopList" value="Island"/>
<property name="noRestock" type="bool" value="true"/>
<property name="signYOffset" type="float" value="0"/> <property name="signYOffset" type="float" value="0"/>
</properties> </properties>
</object> </object>
@@ -141,15 +179,67 @@
</object> </object>
<object id="62" template="../../obj/shop.tx" x="360" y="370"> <object id="62" template="../../obj/shop.tx" x="360" y="370">
<properties> <properties>
<property name="shopList" value="BlueItems"/> <property name="commonShopList" value="BlueItems"/>
<property name="hasSign" type="bool" value="true"/>
<property name="noRestock" type="bool" value="true"/>
<property name="signYOffset" type="float" value="0"/> <property name="signYOffset" type="float" value="0"/>
</properties> </properties>
</object> </object>
<object id="63" template="../../obj/shop.tx" x="263" y="371"> <object id="63" template="../../obj/shop.tx" x="263" y="371">
<properties> <properties>
<property name="shopList" value="BlueEquipment"/> <property name="commonShopList" value="BlueEquipment"/>
<property name="hasSign" type="bool" value="true"/>
<property name="noRestock" type="bool" value="true"/>
<property name="signYOffset" type="float" value="0"/> <property name="signYOffset" type="float" value="0"/>
</properties> </properties>
</object> </object>
<object id="65" template="../../obj/quest.tx" x="312" y="146">
<properties>
<property name="questtype" value="island_capital"/>
</properties>
</object>
<object id="66" template="../../obj/shop.tx" x="264" y="258">
<properties>
<property name="commonShopList" value="Enchantment6Blue,Creature6Blue,Instant6Blue,Merfolk,Wizard"/>
<property name="mythicShopList" value="Planeswalker4Blue,WUBRG,RWU,RGU,UWG,RUB,UWB,UGB,Legend4Blue"/>
<property name="rareShopList" value="Artifact4Blue,Land4Blue,Azorius,Izzet,Simic,Dimir,Vehicle2Blue,Wand4Blue"/>
<property name="signYOffset" type="float" value="-4"/>
<property name="uncommonShopList" value="Pirate4Blue,Spirit4Blue,Sliver2Blue,Rogue4Blue,Multicolor8Blue"/>
</properties>
</object>
<object id="67" template="../../obj/shop.tx" x="472" y="178">
<properties>
<property name="commonShopList" value="Enchantment6Blue,Creature6Blue,Instant6Blue,Merfolk,Wizard"/>
<property name="mythicShopList" value="Planeswalker4Blue,WUBRG,RWU,RGU,UWG,RUB,UWB,UGB,Legend4Blue"/>
<property name="rareShopList" value="Artifact4Blue,Land4Blue,Azorius,Izzet,Simic,Dimir,Vehicle2Blue,Wand4Blue"/>
<property name="signYOffset" type="float" value="-4"/>
<property name="uncommonShopList" value="Pirate4Blue,Spirit4Blue,Sliver2Blue,Rogue4Blue,Multicolor8Blue"/>
</properties>
</object>
<object id="68" template="../../obj/RotatingShop.tx" x="574" y="471">
<properties>
<property name="rotation" value="Blue1,Blue2,Blue3,Blue4,Blue5,Blue6"/>
<property name="signXOffset" type="float" value="-4"/>
</properties>
</object>
<object id="69" template="../../obj/RotatingShop.tx" x="50" y="472">
<properties>
<property name="rotation" value="Blue1,Blue2,Blue3,Blue4,Blue5,Blue6"/>
<property name="signXOffset" type="float" value="14"/>
<property name="signYOffset" type="float" value="14"/>
</properties>
</object>
<object id="70" template="../../obj/RotatingShop.tx" x="136" y="130">
<properties>
<property name="rotation" value="Blue1,Blue2,Blue3,Blue4,Blue5,Blue6"/>
<property name="signXOffset" type="float" value="-16"/>
<property name="signYOffset" type="float" value="-4"/>
</properties>
</object>
<object id="71" template="../../obj/shardtrader.tx" x="400.909" y="208.727">
<properties>
<property name="signYOffset" type="float" value="-4"/>
</properties>
</object>
</objectgroup> </objectgroup>
</map> </map>

View File

@@ -1,10 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<map version="1.9" tiledversion="1.9.1" orientation="orthogonal" renderorder="right-down" width="40" height="40" tilewidth="16" tileheight="16" infinite="0" nextlayerid="7" nextobjectid="64"> <map version="1.9" tiledversion="1.9.2" orientation="orthogonal" renderorder="right-down" width="40" height="40" tilewidth="16" tileheight="16" infinite="0" nextlayerid="7" nextobjectid="73">
<editorsettings> <editorsettings>
<export format="tmx"/> <export format="tmx"/>
</editorsettings> </editorsettings>
<tileset firstgid="1" source="../../tileset/main.tsx"/> <tileset firstgid="1" source="../../tileset/main.tsx"/>
<tileset firstgid="6321" source="../../tileset/buildings.tsx"/> <tileset firstgid="10113" source="../../tileset/buildings.tsx"/>
<layer id="1" name="Background" width="40" height="40"> <layer id="1" name="Background" width="40" height="40">
<data encoding="base64" compression="zlib"> <data encoding="base64" compression="zlib">
eJztmG0OwiAMhon/hufRGQ+ye0ydF/VjHkca10jIGF9CUfvjDckC6UMLZH3HRoiR9TPaKLUVcNi4Hkr3yvYBsc5SiJN8jTY+mLdVGqZ5t0J8kLOrpjk+3APO2SkdZXk+W9xefdsTsJl5WaoZ7mO19pe+PmSdKV++lBipsp09vcaUfCDX20LN53ozqPlc95Kaz+fOMx/zMR/zMR/zMV9ZPkq2b+CD3rGtmM/1j0/NBz1kzf/Qvv5GiMwYnUcM6MUOU8+NvoY+Lp3BEHWRfDon+gIujyNFGAe8B8hLiP+AvgCsRdZP82GcGE/p0rw9Fax7Dn8l9mz3mXjm8pCjLv/CV6pONekJ5zkFQw== eJztmG0OwiAMhon/hufRGQ+ye0ydF/VjHkca10jIGF9CUfvjDckC6UMLZH3HRoiR9TPaKLUVcNi4Hkr3yvYBsc5SiJN8jTY+mLdVGqZ5t0J8kLOrpjk+3APO2SkdZXk+W9xefdsTsJl5WaoZ7mO19pe+PmSdKV++lBipsp09vcaUfCDX20LN53ozqPlc95Kaz+fOMx/zMR/zMR/zMV9ZPkq2b+CD3rGtmM/1j0/NBz1kzf/Qvv5GiMwYnUcM6MUOU8+NvoY+Lp3BEHWRfDon+gIujyNFGAe8B8hLiP+AvgCsRdZP82GcGE/p0rw9Fax7Dn8l9mz3mXjm8pCjLv/CV6pONekJ5zkFQw==
@@ -12,12 +12,12 @@
</layer> </layer>
<layer id="2" name="Ground" width="40" height="40"> <layer id="2" name="Ground" width="40" height="40">
<data encoding="base64" compression="zlib"> <data encoding="base64" compression="zlib">
eJzdmc1u00AQx4dYFFo1uTT2IalDEEgFDkiIFs4InqDwJnAnLULio6SJaPkQ515KX6ag8gK0nFCbcMiZHbwrj9ez67VlgsNIf62TXa9/+Y+9XU9XGgCv62ltCanY8AGe+VG7qemp0OUgHntNzHejAalYrwG88QDGop1InQpte7HOSJ/SS4btRT15jUtBxIBtV6gnubpBks0WI4Zp4KXHjIlw/EojyXXd8PtpoI+h4DppurFh9KU/v2rpvqE2RrFha/JMjx1yrHy0eXfrHM+oe6aP63vJnLt65hpvHcdx/HrgPYvPwa7Qu4rpfT3yEvluC+9WK6Y1mU/Ma5X5MGaN767QlynrTg4+2jetsDHMKt/REkDgl6tvS+Xx+X75PpnmNDHsVJzP1qfmOt8CmGtFx+0OwHInPf9JCPAjjD+HbYBOW54j2uX23+Obmwe44KA9S9/FeZ5P/R2exv13byF7TJn+PW7mezaRL2vME8OekWP4uZjNnidc/DMFx4DvCqeL1eXD4PZXs8B3RawHV+Wa4HLM8X0X682xXHMOZLst28+yHYR2Pm7/h32uawrV/QXzulLUv6y+PGHK777m2b7mHXqbl6+M/OaJvHxF8vtA43veio8Hmnd9zdN/mV+X+J/4PhZ8X0W+ou/SH+rufEWE8yFfWe+Cs8Bn2h9Uhe+VrEEeNoq/tx7J9qvkO9S+LyqcD/cvx824jsfVlLCG9Iip2XGhP7/cuZ/cpvoTmN/NjFrjyFBTdOHDc7c8gIe1SJT1pqG+NiTHmN+ezzOuyzmxZmy6hgvfhNRr1Tyu+cD8bshack9jpPXiM3INm5ccH62HTwgnZRxCOtS9oWrJnSDp44jMperuWR6Y+MYap+136nlDLlWL75K6MlerpvV3vY7M8fUt/zvQPVRs1AvUb9TxixY= eJzVmUtv00AQx7exVETU+NLYNyCc8iDiIaAc4ILgExTO0O8Ap4JEWi48SiCiLSCu8AlaOPAtCgpnqOBEaBJAObODd+TxenezdtzUjDRaZ3c9/vk/fqwnVZexx6W4r3FHW/EYu+8F7ark97gf98O5NR6v4bKYLRYYe+IwNuTtSPge96dO6H0yhv5QwfagFD3GMT9ggLbCvSW4Kn6UzWQDBdMzJz5nSBzmV90oV11z/tRAxyOc63vZjg2sLfT5VYiPdaQ5yAatTjPZ1sk26mjS7syMmlHWTJ7XdqI5t9XM1p5bzlPxywbXLNwHG9w3c+YvSoGWwHeWa3cuZ35e5BPymmc+sP+N7wL3j1P2hQR8dGxaZmI4aD73RDq+7jxjvpetf56P810upuPzvOy1wpigGbYmvvUD4qOMk+rXrfG81ILtH03Ges34cd/xvvek/2edr1XqYh/e9urRmG8OM3ZI+O6EfLMklsnfWszZ8oL2ajHQD9/D07j+IE/jDGPSuWnv31vlZPfmtsWc2+WQD68/HUNvbry2WeuH9qUY5lynH3wr7M3tL1+/ytft1fD3TIOxQiM+T8egWl9lrZ/cr5qXlO8UP8fT4jx/82fDH/F80PXjcS/ysUtifIs/b7abQf9d8ey5KX7fEb+XmmY+1foPxmyfKdSvFNX9X6X+3QT6jRtLYpi3D7PR/mWhEWq2LGkH2ibls8kp7ad8Se5jE4NpbJL8Yj6pjkuSdjckTaeZ3zS2X3x0jUjfH6p1XlZ8rxJ8p8L7FL9XQb8Nqd/WX5bs+dI4xFOt4yaJl3c+3fogL3yPRA1yx03/3doV7SfBtyP1p3WIB+uXb+WwjqeqKUEN6bqiZqcy+fmi2ve1Xah/BvldHVNrHGhqijZ8sO+aw9i1QuCU9aSmvtYh25DflqdmXBQxoWasO4YN34jUazGObT4gvyuiltySGGm9uE+OYdJSxUfr4SPCSRk7LG54bWAt+agf1XFAYmHdfZwGOr6hxGk6TzlvwIW1+AqpK6tq1bT+LteRVXxtw38HsobIRrUA/wuF8ano
</data> </data>
</layer> </layer>
<layer id="6" name="Ground2" width="40" height="40"> <layer id="6" name="Ground2" width="40" height="40">
<data encoding="base64" compression="zlib"> <data encoding="base64" compression="zlib">
eJzt1sEJwCAMheEMUCEDFNdw1dRpLfTmpRFSDPT/Ll48PCM8IgIAQKx+xN5DHGaOv2tld4K8ss3Gm8fuXrsc3ZbtfQDYS954um2VMXM59Tmr7s2Bb/C/AGYDsZYG7w== eJzt1UEKgCAQhWG3QYEHiNZ1gm4a1mkLWkTBhMTYK/i/jSAuxlHehAAAgK+l9j0HP/QcCn2lruAwNuoKzgZ6Y8qtJ225Nmdk29fuB7yBuf9vd9n2dH6kgn9iMnLW2ldp4752UVsHyuB9AVytTOkIyg==
</data> </data>
</layer> </layer>
<layer id="3" name="Walls" width="40" height="40"> <layer id="3" name="Walls" width="40" height="40">
@@ -30,55 +30,79 @@
</layer> </layer>
<layer id="5" name="Overlay" width="40" height="40"> <layer id="5" name="Overlay" width="40" height="40">
<data encoding="base64" compression="zlib"> <data encoding="base64" compression="zlib">
eJzt1DsKgDAMgOHoolvnWupR1dv5uIleQgMKDio4WErl/6AhfUEgEBEAAID/ma3IYvd89Rrq65tRzyd/7jMnkrvjT6XBha4SQCoKnQele5/f6XXeDP75HvF80V8Au8aItLo6E7sShEB/AaRmAzrgDb8= eJzt1O8JgzAQh+HfBo5gv2nEGatb+GeTdolaLdQFdA4PbLFgP0hBRPs+EHI5ErgQchIAAMDxXELpGo7xLZaqeL6nsFz5kb87qXavMzZXbv06gb1pAukRTOvO/kn/B3/laXds3fL4zY+kUzTGmfWb/EsvwvZ+fV8Ac2dPSmyk3taVYA28L4C9GQDl9SK0
</data> </data>
</layer> </layer>
<objectgroup id="4" name="Objects"> <objectgroup id="4" name="Objects">
<object id="41" template="../../obj/shop.tx" x="249" y="370"> <object id="41" template="../../obj/shop.tx" x="249" y="370">
<properties> <properties>
<property name="shopList" value="Instant,Creature,Red,Rakdos,Gruul,Izzet,Boros,Goblin "/> <property name="commonShopList" value="Enchantment6Red,Creature6Red,Instant6Red,Goblin,Devil,Dwarf,Dragon,Minotaur,Shaman"/>
<property name="mythicShopList" value="Planeswalker4Red,WUBRG,RGU,RWG,RWU,RUB,RWB,RGB,Legend4Red"/>
<property name="rareShopList" value="Artifact4Red,Land4Red,Gruul,Izzet,Rakdos,Boros,Vehicle2Red,Wand4Red"/>
<property name="signYOffset" type="float" value="-4"/>
<property name="uncommonShopList" value="Wolf4Red,Sliver4Red,Knight4Red,Soldier4Red,Dinosaur4Red,Ogre4Red,Multicolor8Red"/>
</properties> </properties>
</object> </object>
<object id="56" template="../../obj/shop.tx" x="153" y="371"> <object id="56" template="../../obj/shop.tx" x="152" y="370">
<properties> <properties>
<property name="shopList" value="Instant,Creature,Red,Rakdos,Gruul,Izzet,Boros,Goblin "/> <property name="commonShopList" value="Enchantment6Red,Creature6Red,Instant6Red,Goblin,Devil,Dwarf,Dragon,Minotaur,Shaman"/>
<property name="mythicShopList" value="Planeswalker4Red,WUBRG,RGU,RWG,RWU,RUB,RWB,RGB,Legend4Red"/>
<property name="rareShopList" value="Artifact4Red,Land4Red,Gruul,Izzet,Rakdos,Boros,Vehicle2Red,Wand4Red"/>
<property name="signYOffset" type="float" value="-4"/>
<property name="uncommonShopList" value="Wolf4Red,Sliver4Red,Knight4Red,Soldier4Red,Dinosaur4Red,Ogre4Red,Multicolor8Red"/>
</properties> </properties>
</object> </object>
<object id="57" template="../../obj/shop.tx" x="201" y="418"> <object id="57" template="../../obj/shop.tx" x="200" y="418">
<properties> <properties>
<property name="shopList" value="Human,Boros,Orzhov,Selesnya,Selesnya,Azorius,White,Creature,Instant,Angel"/> <property name="commonShopList" value="Enchantment6Red,Creature6Red,Instant6Red,Goblin,Devil,Dwarf,Dragon,Minotaur,Shaman"/>
<property name="mythicShopList" value="Planeswalker4Red,WUBRG,RGU,RWG,RWU,RUB,RWB,RGB,Legend4Red"/>
<property name="rareShopList" value="Artifact4Red,Land4Red,Gruul,Izzet,Rakdos,Boros,Vehicle2Red,Wand4Red"/>
<property name="signYOffset" type="float" value="-4"/>
<property name="uncommonShopList" value="Wolf4Red,Sliver4Red,Knight4Red,Soldier4Red,Dinosaur4Red,Ogre4Red,Multicolor8Red"/>
</properties> </properties>
</object> </object>
<object id="43" template="../../obj/shop.tx" x="105" y="370"> <object id="43" template="../../obj/shop.tx" x="104" y="370">
<properties> <properties>
<property name="shopList" value="Instant,Creature,Red,Rakdos,Gruul,Izzet,Boros,Goblin "/> <property name="commonShopList" value="Enchantment6Red,Creature6Red,Instant6Red,Goblin,Devil,Dwarf,Dragon,Minotaur,Shaman"/>
<property name="mythicShopList" value="Planeswalker4Red,WUBRG,RGU,RWG,RWU,RUB,RWB,RGB,Legend4Red"/>
<property name="rareShopList" value="Artifact4Red,Land4Red,Gruul,Izzet,Rakdos,Boros,Vehicle2Red,Wand4Red"/>
<property name="signYOffset" type="float" value="-4"/>
<property name="uncommonShopList" value="Wolf4Red,Sliver4Red,Knight4Red,Soldier4Red,Dinosaur4Red,Ogre4Red,Multicolor8Red"/>
</properties> </properties>
</object> </object>
<object id="47" template="../../obj/inn.tx" x="376" y="370"/> <object id="47" template="../../obj/inn.tx" x="376" y="370"/>
<object id="49" template="../../obj/shop.tx" x="105" y="418"> <object id="49" template="../../obj/shop.tx" x="104" y="418">
<properties> <properties>
<property name="shopList" value="Instant,Creature,Red,Rakdos,Gruul,Izzet,Boros,Goblin "/> <property name="commonShopList" value="Enchantment6Red,Creature6Red,Instant6Red,Goblin,Devil,Dwarf,Dragon,Minotaur,Shaman"/>
<property name="mythicShopList" value="Planeswalker4Red,WUBRG,RGU,RWG,RWU,RUB,RWB,RGB,Legend4Red"/>
<property name="rareShopList" value="Artifact4Red,Land4Red,Gruul,Izzet,Rakdos,Boros,Vehicle2Red,Wand4Red"/>
<property name="signYOffset" type="float" value="-4"/>
<property name="uncommonShopList" value="Wolf4Red,Sliver4Red,Knight4Red,Soldier4Red,Dinosaur4Red,Ogre4Red,Multicolor8Red"/>
</properties> </properties>
</object> </object>
<object id="50" template="../../obj/shop.tx" x="152" y="418"> <object id="50" template="../../obj/shop.tx" x="152" y="418">
<properties> <properties>
<property name="shopList" value="Instant,Creature,Red,Rakdos,Gruul,Izzet,Boros,Goblin "/> <property name="commonShopList" value="Enchantment6Red,Creature6Red,Instant6Red,Goblin,Devil,Dwarf,Dragon,Minotaur,Shaman"/>
<property name="mythicShopList" value="Planeswalker4Red,WUBRG,RGU,RWG,RWU,RUB,RWB,RGB,Legend4Red"/>
<property name="rareShopList" value="Artifact4Red,Land4Red,Gruul,Izzet,Rakdos,Boros,Vehicle2Red,Wand4Red"/>
<property name="signYOffset" type="float" value="-4"/>
<property name="uncommonShopList" value="Wolf4Red,Sliver4Red,Knight4Red,Soldier4Red,Dinosaur4Red,Ogre4Red,Multicolor8Red"/>
</properties> </properties>
</object> </object>
<object id="51" template="../../obj/shop.tx" x="248" y="417"> <object id="51" template="../../obj/shop.tx" x="248" y="418">
<properties> <properties>
<property name="shopList" value="Instant,Creature,Red,Rakdos,Gruul,Izzet,Boros,Goblin "/> <property name="commonShopList" value="Enchantment6Red,Creature6Red,Instant6Red,Goblin,Devil,Dwarf,Dragon,Minotaur,Shaman"/>
</properties> <property name="mythicShopList" value="Planeswalker4Red,WUBRG,RGU,RWG,RWU,RUB,RWB,RGB,Legend4Red"/>
</object> <property name="rareShopList" value="Artifact4Red,Land4Red,Gruul,Izzet,Rakdos,Boros,Vehicle2Red,Wand4Red"/>
<object id="52" template="../../obj/shop.tx" x="201" y="370"> <property name="signYOffset" type="float" value="-4"/>
<properties> <property name="uncommonShopList" value="Wolf4Red,Sliver4Red,Knight4Red,Soldier4Red,Dinosaur4Red,Ogre4Red,Multicolor8Red"/>
<property name="shopList" value="Instant,Creature,Red,Rakdos,Gruul,Izzet,Boros,Goblin "/>
</properties> </properties>
</object> </object>
<object id="53" template="../../obj/spellsmith.tx" x="152" y="258"/> <object id="53" template="../../obj/spellsmith.tx" x="152" y="258"/>
<object id="55" template="../../obj/shop.tx" x="368" y="433"> <object id="55" template="../../obj/shop.tx" x="366" y="433">
<properties> <properties>
<property name="shopList" value="Mountain"/> <property name="commonShopList" value="Mountain"/>
<property name="noRestock" type="bool" value="true"/>
<property name="signYOffset" type="float" value="0"/> <property name="signYOffset" type="float" value="0"/>
</properties> </properties>
</object> </object>
@@ -156,13 +180,74 @@
</object> </object>
<object id="62" template="../../obj/shop.tx" x="361" y="258"> <object id="62" template="../../obj/shop.tx" x="361" y="258">
<properties> <properties>
<property name="shopList" value="RedEquipment"/> <property name="commonShopList" value="RedEquipment"/>
<property name="signYOffset" type="float" value="0"/> <property name="hasSign" type="bool" value="true"/>
<property name="noRestock" type="bool" value="true"/>
<property name="signYOffset" type="float" value="-4"/>
</properties> </properties>
</object> </object>
<object id="63" template="../../obj/shop.tx" x="409" y="259"> <object id="63" template="../../obj/shop.tx" x="409" y="259">
<properties> <properties>
<property name="shopList" value="RedItems"/> <property name="commonShopList" value="RedItems"/>
<property name="hasSign" type="bool" value="true"/>
<property name="noRestock" type="bool" value="true"/>
<property name="signYOffset" type="float" value="-4"/>
</properties>
</object>
<object id="65" template="../../obj/shop.tx" x="200" y="370">
<properties>
<property name="commonShopList" value="Enchantment6Red,Creature6Red,Instant6Red,Goblin,Devil,Dwarf,Dragon,Minotaur,Shaman"/>
<property name="mythicShopList" value="Planeswalker4Red,WUBRG,RGU,RWG,RWU,RUB,RWB,RGB,Legend4Red"/>
<property name="rareShopList" value="Artifact4Red,Land4Red,Gruul,Izzet,Rakdos,Boros,Vehicle2Red,Wand4Red"/>
<property name="signYOffset" type="float" value="-4"/>
<property name="uncommonShopList" value="Wolf4Red,Sliver4Red,Knight4Red,Soldier4Red,Dinosaur4Red,Ogre4Red,Multicolor8Red"/>
</properties>
</object>
<object id="66" template="../../obj/quest.tx" x="328" y="370">
<properties>
<property name="questtype" value="mountain_capital"/>
</properties>
</object>
<object id="67" template="../../obj/shardtrader.tx" x="337" y="403">
<properties>
<property name="signXOffset" type="float" value="14"/>
<property name="signYOffset" type="float" value="-2"/>
</properties>
</object>
<object id="68" template="../../obj/shop.tx" x="400" y="337">
<properties>
<property name="commonShopList" value="Enchantment6Red,Creature6Red,Instant6Red,Goblin,Devil,Dwarf,Dragon,Minotaur,Shaman"/>
<property name="mythicShopList" value="Planeswalker4Red,WUBRG,RGU,RWG,RWU,RUB,RWB,RGB,Legend4Red"/>
<property name="rareShopList" value="Artifact4Red,Land4Red,Gruul,Izzet,Rakdos,Boros,Vehicle2Red,Wand4Red"/>
<property name="signYOffset" type="float" value="-2"/>
<property name="uncommonShopList" value="Wolf4Red,Sliver4Red,Knight4Red,Soldier4Red,Dinosaur4Red,Ogre4Red,Multicolor8Red"/>
</properties>
</object>
<object id="69" template="../../obj/shop.tx" x="464" y="337">
<properties>
<property name="commonShopList" value="Enchantment6Red,Creature6Red,Instant6Red,Goblin,Devil,Dwarf,Dragon,Minotaur,Shaman"/>
<property name="mythicShopList" value="Planeswalker4Red,WUBRG,RGU,RWG,RWU,RUB,RWB,RGB,Legend4Red"/>
<property name="rareShopList" value="Artifact4Red,Land4Red,Gruul,Izzet,Rakdos,Boros,Vehicle2Red,Wand4Red"/>
<property name="signYOffset" type="float" value="-4"/>
<property name="uncommonShopList" value="Wolf4Red,Sliver4Red,Knight4Red,Soldier4Red,Dinosaur4Red,Ogre4Red,Multicolor8Red"/>
</properties>
</object>
<object id="70" template="../../obj/RotatingShop.tx" x="495.917" y="305.432">
<properties>
<property name="rotation" value="Red1,Red2,Red3,Red4,Red5,Red6"/>
<property name="signXOffset" type="float" value="16"/>
<property name="signYOffset" type="float" value="0"/>
</properties>
</object>
<object id="71" template="../../obj/RotatingShop.tx" x="511.091" y="227.455">
<properties>
<property name="rotation" value="Red1,Red2,Red3,Red4,Red5,Red6"/>
<property name="signYOffset" type="float" value="0"/>
</properties>
</object>
<object id="72" template="../../obj/RotatingShop.tx" x="527.455" y="193.455">
<properties>
<property name="rotation" value="Red1,Red2,Red3,Red4,Red5,Red6"/>
<property name="signYOffset" type="float" value="0"/> <property name="signYOffset" type="float" value="0"/>
</properties> </properties>
</object> </object>

View File

@@ -1,10 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<map version="1.9" tiledversion="1.9.1" orientation="orthogonal" renderorder="right-down" width="40" height="40" tilewidth="16" tileheight="16" infinite="0" nextlayerid="7" nextobjectid="65"> <map version="1.9" tiledversion="1.9.2" orientation="orthogonal" renderorder="right-down" width="40" height="40" tilewidth="16" tileheight="16" infinite="0" nextlayerid="7" nextobjectid="73">
<editorsettings> <editorsettings>
<export target="wastetown..tmx" format="tmx"/> <export target="wastetown..tmx" format="tmx"/>
</editorsettings> </editorsettings>
<tileset firstgid="1" source="../../tileset/main.tsx"/> <tileset firstgid="1" source="../../tileset/main.tsx"/>
<tileset firstgid="6321" source="../../tileset/buildings.tsx"/> <tileset firstgid="10113" source="../../tileset/buildings.tsx"/>
<layer id="1" name="Background" width="40" height="40"> <layer id="1" name="Background" width="40" height="40">
<data encoding="base64" compression="zlib"> <data encoding="base64" compression="zlib">
eJztzrENACAMwLAOSFzZ7zmEJ6qCwEPmOEdEqqQ174iPj4+Pj4+Pj4+Pj4+Pj+98fHx87/kq6/rw8f3s21DxrDk= eJztzrENACAMwLAOSFzZ7zmEJ6qCwEPmOEdEqqQ174iPj4+Pj4+Pj4+Pj4+Pj+98fHx87/kq6/rw8f3s21DxrDk=
@@ -12,12 +12,12 @@
</layer> </layer>
<layer id="2" name="Ground" width="40" height="40"> <layer id="2" name="Ground" width="40" height="40">
<data encoding="base64" compression="zlib"> <data encoding="base64" compression="zlib">
eJztmEtOwzAQQL0iTnqCLiqBYAcUroAQcCTYUtYpqHADPseAq0AL67bAAfAoHWU0jdNxbNMgMdKoVho5L/N3lGqfTLVSh5lSw3TdJNWSpwVbTL6TRKnTBnqWlLaLyTcxz3lvoB9Jyfap28sHbPuZ7FmDTqlN+c67Sl10izUXzlfFBjlzYK7NzO9cL3NxdeW7NWx3Qr4qu9GcuSZx2YStim/D7JlU6FO6zFclUj6pSOPvyNhqu6fUTq+eb9fc960Lvj7xsytXEz6J/UBGxIbcjv98f5+P5ohLfVwH341n7wvNR2caX9/G4MsDxh7y3ZPaa1sjH16T8oXw72tW9ok3y/p4sR5nbnxQo+ce801s//raMCQfz41QfKHiD3rvl2HcIz04RH0OGX8o6Oc21Ocpi3/qZzrDrIsvZ/7jOeJjw9B8YLu6MyHEr8s5cTP140NfosDsUvfOfJ9QauMbkfMlsraNr5+V62GL7Ddj31/yhS3bwkdzFPn6K/xLa61EH4X3jWv4MP6wfwDfi7n+LMw9F7tQfejY/6N8vH8B31Yqrw2r+OBdB7pQyTvD/Vfa3v8vdbmfjwIL8NFaK9mbsvn21zqZJMt8NuFnMpxPfOfjUHz0TAtMmAuxbOfKZ/vuE1Oa8MWMNy4ufOBPmIt/iw3EhW+V/AAJonRV eJztmF1OwkAQgPfJ7pZL6BsJilyBGMV76EXEZ9BwharHwKso6jMgHMCdlEknQ7s/3a3UxEkmbEu7/To/O7MVon2ylEIMUiGm6tAk5TJROVuTfJeJEFc1dJQUtmuS70M/57OGfiUF27dsLx+wnaVuzxp3Cq3LN+oKcd3Nx1w4Xxkb5My5PrfSv2u5z8XVl+9Gs9068pXZjebMA4lL5MmUnw0535G+PynRF7XPVyY2vmEa5t8qhXk3PSG2PTNfT1+3lTlfn/jZN+7q8LnYD2RGbMjt+M/39/lojvisj4fgewysfbH5aE+TWXybKfMx8mVkbasau/JR28E9Jr5haj5GPvps2xh/Xfhi+fctLerEe8X4YjdeePLBGr0O6G9ixx/nC7Whb/zhuTI+mhsx+WLFH9TejWY8JTU4xvocM/5Q0M9tWJ+XLP6pn2kPcyi+CfMfz5EQG8bmA9uZ9oSQXz77xGMVxoe+RIHexfTOfJ5YWsU3I/tLZG0bXz8txtMW2W/Fvr9MdrZsCx/NUeTrW/xL11oXfXa8bmHgw/jD+gF8r/r83DH3fOxC9alT/R/l4/UL+E6U+9pg44N3HctcXd4Zrr+X1fX/Thbzheh81+PStdZlbsoWWl9Ngr2LrdaD8D0Z9ieh/XEsPrqnBSbMhaZs58tX9d2nSanD12S8cfHhA39CX/xbbCA+fDb5AV5mcmA=
</data> </data>
</layer> </layer>
<layer id="6" name="Ground2" width="40" height="40"> <layer id="6" name="Ground2" width="40" height="40">
<data encoding="base64" compression="zlib"> <data encoding="base64" compression="zlib">
eJztlO0KgkAQRS/+y4L2r5jWixWaQj1G9PHeuYhkwyJSaw7bPTDM7AfsYdhdgPjiuvQX9KOfL79bAtybeCQ6/bT3j370C8VvnwKHVK/fN/ybX5UBdTZcd7jmpvbzDf10+fH+0U+rXxW9j+vIvW8uv0/YroBdE/GizV1sTJtz81qzWdb9ORfnXo/KEf3SxFGBr7xzWimE50mBt3SS4zHvl7iRvZySy/p3Z4WK/c8tuZnXg5DQeQKDcgII eJztl80KwjAMgIM3f8A+gEyPY0wv+ibqXaeojyE+uStzOMomTc3a0OWD0J8d+pGMLQUQqHhN6SIGv+uItx8Wn37FJ3c3RA67ztqnAIcyjinOD1s/V78h1peT34mozj7zd3ZwDlnfu4WvD791BrDJ8P6+/Lq4MMnfP1D7bXOAXf57XtO217cfNeLHy0/eP/Hj6mf+L2x6We75W84AVmVMxtVYx0JVY6K+z/Rozpt7bTwaOXLpr0JSMPC16VE4YPb7Nr1p35hO5pr6LjokqO53Njzn/s6KFf091yQqrIcgxM4bns4Cfg==
</data> </data>
</layer> </layer>
<layer id="3" name="Walls" width="40" height="40"> <layer id="3" name="Walls" width="40" height="40">
@@ -25,61 +25,94 @@
<property name="spriteLayer" type="bool" value="true"/> <property name="spriteLayer" type="bool" value="true"/>
</properties> </properties>
<data encoding="base64" compression="zlib"> <data encoding="base64" compression="zlib">
eJztmEsOgjAQhmdnJMGVK4gbT4HixnAO3eol9CC+Nt4J3fk4iRBpLDh9wACW2D+ZpJ06088WhrQA3dDOBdgbYgf3my8YAEwymyV2IVhYIUfIzT8dyPmw8TIKKuRQzR9w//n6A76YW0cRH3Xd6sgliu0637lPn4MSq8o5d+hzUGItHy2W949HHz9rMz5sjPe1wXdPWHr9tz2yduTk+3z76ejNkWrhAyx9Gh8mk/YXk0l8Gw9g6+nxrZK9Whf2q2k+rBbL1q/4+zbfD2YR4mNW5v2ogw+TSc8fJpP4ZPW5OI71f1mfizXaPn96OU3gO0nOeymf7hn06DbDJzoTpuellC8WjIti6ubD/MPsO3dz8v2m1Mb5iCLLR1OX+U6S+yOVdsj9E+ZTxYtqE/V+CIsvk1PnfoiNi+q0qibL+FQ5sXheZWqvbm2umpN6f2Zl9S96AU0B1qI= eJztmEsOwiAQhlmYmJLUe1ijW6t1oXHvAX1tvFN15+MInkCJEsc6QNvpAyJ/MhFmMsPXWiYBxtzQOmRsY4ltw1++uMfY5G2zpx0JlpSokYD1pz09HxYvorhEDdP6MXjmUwt8KXiPKj7qe6uilirXdb5DQF+DkmuqueD0NSi5no+WC/33wccvx5IPi0FfE3yXJ0s3eNn1PV7y7zkc33i+NYSGEWOjiMaHyab/F5NNfKLXrfpqPtgLx9Fvb6ybD3tX0JeNZ+dN7g9pS2RfSCuyP6rgw2TT94fJJj5df87GsXmb/dl/f+7y7TXnPcGX9wy6C+vhU50JxXlJ8KWKuCqnaj7MP++8fs/8e16XmjgfUeT5aHKZb6+5PzJpjdw/YT5Tvqo3Ue+HsPwiNfPcD8m4qk+berKOz1QTy4cq0nvz9uayNan3Z15e/6IHVk/fZg==
</data> </data>
</layer> </layer>
<layer id="5" name="Overlay" width="40" height="40"> <layer id="5" name="Overlay" width="40" height="40">
<data encoding="base64" compression="zlib"> <data encoding="base64" compression="zlib">
eJzt1E0OgjAQBeC3EnddF9LD6EYSvARswEsIx/JoLp2dEUqDkTKA70ua9G/xkmkHIKJf1BZoZNysdhLySRxwdNopPj1S7QTxHJx/PnbWv7Nlpww4Z9op/lspf6ua+L8KqdV1pF4XeZe5C899d4nmEOv9hfqzb29P/ZnoW3cDtDI6o51k6GnDayIieltzPyei5bwA2sMSFQ== eJxjYBgFo2AUUALMNRgYLIDYUmOgXTIKsIHr2gwMN7QH2hWooENzoF1AO3BNGzsblxy6mqEMBLUYGIS0BtoVIxsYAvOWEY78JQ+MGwWk+JEGsmVwxJe4DgODhA5+Nja1hIAvnrxvDXSLDZp7LEbT04gEtEp/+MpnbGLDqXweBaOAVFDHz8BQD8QN/APtEkywiBk/f6iBAk38/MECLAepu4ZK+I2CUTBQYDCX56NgFIwC+gEAuogcaQ==
</data> </data>
</layer> </layer>
<objectgroup id="4" name="Objects"> <objectgroup id="4" name="Objects">
<object id="41" template="../../obj/shop.tx" x="465" y="260"> <object id="41" template="../../obj/shop.tx" x="465" y="260">
<properties> <properties>
<property name="shopList" value="Human,Boros,Orzhov,Selesnya,Azorius,White,Creature,Instant,Angel"/> <property name="commonShopList" value="Enchantment6White,Creature6White,Instant6White,Angel,Human4White,Soldier4White"/>
<property name="mythicShopList" value="Planeswalker4White,WUBRG,RWG,RWU,RWB,UWG,UWB,GWB,Legend4White"/>
<property name="rareShopList" value="Artifact4White,Land4White,Dimir,Rakdos,Orzhov,Golgari,Vehicle2White,Wand4White"/>
<property name="signYOffset" type="float" value="-8"/>
<property name="uncommonShopList" value="Bird4White,Spirit4White,Sliver4White,Knight4White,Multicolor8White"/>
</properties> </properties>
</object> </object>
<object id="56" template="../../obj/shop.tx" x="416" y="260"> <object id="56" template="../../obj/shop.tx" x="416" y="260">
<properties> <properties>
<property name="shopList" value="Human,Boros,Orzhov,Selesnya,Azorius,White,Creature,Instant,Angel"/> <property name="commonShopList" value="Enchantment6White,Creature6White,Instant6White,Angel,Human4White,Soldier4White"/>
<property name="mythicShopList" value="Planeswalker4White,WUBRG,RWG,RWU,RWB,UWG,UWB,GWB,Legend4White"/>
<property name="rareShopList" value="Artifact4White,Land4White,Dimir,Rakdos,Orzhov,Golgari,Vehicle2White,Wand4White"/>
<property name="signYOffset" type="float" value="-8"/>
<property name="uncommonShopList" value="Bird4White,Spirit4White,Sliver4White,Knight4White,Multicolor8White"/>
</properties> </properties>
</object> </object>
<object id="57" template="../../obj/shop.tx" x="545" y="259"> <object id="57" template="../../obj/shop.tx" x="545" y="259">
<properties> <properties>
<property name="shopList" value="Human,Boros,Orzhov,Selesnya,Azorius,White,Creature,Instant,Angel"/> <property name="commonShopList" value="Enchantment6White,Creature6White,Instant6White,Angel,Human4White,Soldier4White"/>
<property name="mythicShopList" value="Planeswalker4White,WUBRG,RWG,RWU,RWB,UWG,UWB,GWB,Legend4White"/>
<property name="rareShopList" value="Artifact4White,Land4White,Dimir,Rakdos,Orzhov,Golgari,Vehicle2White,Wand4White"/>
<property name="signYOffset" type="float" value="-8"/>
<property name="uncommonShopList" value="Bird4White,Spirit4White,Sliver4White,Knight4White,Multicolor8White"/>
</properties> </properties>
</object> </object>
<object id="43" template="../../obj/shop.tx" x="370" y="325"> <object id="43" template="../../obj/shop.tx" x="370" y="325">
<properties> <properties>
<property name="shopList" value="Human,Boros,Orzhov,Selesnya,Azorius,White,Creature,Instant,Angel"/> <property name="commonShopList" value="Enchantment6White,Creature6White,Instant6White,Angel,Human4White,Soldier4White"/>
<property name="mythicShopList" value="Planeswalker4White,WUBRG,RWG,RWU,RWB,UWG,UWB,GWB,Legend4White"/>
<property name="rareShopList" value="Artifact4White,Land4White,Dimir,Rakdos,Orzhov,Golgari,Vehicle2White,Wand4White"/>
<property name="signYOffset" type="float" value="-8"/>
<property name="uncommonShopList" value="Bird4White,Spirit4White,Sliver4White,Knight4White,Multicolor8White"/>
</properties> </properties>
</object> </object>
<object id="47" template="../../obj/inn.tx" x="536" y="144"/> <object id="47" template="../../obj/inn.tx" x="536" y="144"/>
<object id="49" template="../../obj/shop.tx" x="417" y="324"> <object id="49" template="../../obj/shop.tx" x="417" y="324">
<properties> <properties>
<property name="shopList" value="Human,Boros,Orzhov,Selesnya,Azorius,White,Creature,Instant,Angel"/> <property name="commonShopList" value="Enchantment6White,Creature6White,Instant6White,Angel,Human4White,Soldier4White"/>
<property name="mythicShopList" value="Planeswalker4White,WUBRG,RWG,RWU,RWB,UWG,UWB,GWB,Legend4White"/>
<property name="rareShopList" value="Artifact4White,Land4White,Dimir,Rakdos,Orzhov,Golgari,Vehicle2White,Wand4White"/>
<property name="signYOffset" type="float" value="-8"/>
<property name="uncommonShopList" value="Bird4White,Spirit4White,Sliver4White,Knight4White,Multicolor8White"/>
</properties> </properties>
</object> </object>
<object id="50" template="../../obj/shop.tx" x="465" y="323"> <object id="50" template="../../obj/shop.tx" x="465" y="323">
<properties> <properties>
<property name="shopList" value="Human,Boros,Orzhov,Selesnya,Azorius,White,Creature,Instant,Angel"/> <property name="commonShopList" value="Enchantment6White,Creature6White,Instant6White,Angel,Human4White,Soldier4White"/>
<property name="mythicShopList" value="Planeswalker4White,WUBRG,RWG,RWU,RWB,UWG,UWB,GWB,Legend4White"/>
<property name="rareShopList" value="Artifact4White,Land4White,Dimir,Rakdos,Orzhov,Golgari,Vehicle2White,Wand4White"/>
<property name="signYOffset" type="float" value="-8"/>
<property name="uncommonShopList" value="Bird4White,Spirit4White,Sliver4White,Knight4White,Multicolor8White"/>
</properties> </properties>
</object> </object>
<object id="51" template="../../obj/shop.tx" x="545" y="325"> <object id="51" template="../../obj/shop.tx" x="545" y="325">
<properties> <properties>
<property name="shopList" value="Human,Boros,Orzhov,Selesnya,Azorius,White,Creature,Instant,Angel"/> <property name="commonShopList" value="Enchantment6White,Creature6White,Instant6White,Angel,Human4White,Soldier4White"/>
<property name="mythicShopList" value="Planeswalker4White,WUBRG,RWG,RWU,RWB,UWG,UWB,GWB,Legend4White"/>
<property name="rareShopList" value="Artifact4White,Land4White,Dimir,Rakdos,Orzhov,Golgari,Vehicle2White,Wand4White"/>
<property name="signYOffset" type="float" value="-8"/>
<property name="uncommonShopList" value="Bird4White,Spirit4White,Sliver4White,Knight4White,Multicolor8White"/>
</properties> </properties>
</object> </object>
<object id="52" template="../../obj/shop.tx" x="369" y="261"> <object id="52" template="../../obj/shop.tx" x="369" y="261">
<properties> <properties>
<property name="shopList" value="Human,Boros,Orzhov,Selesnya,Azorius,White,Creature,Instant,Angel"/> <property name="commonShopList" value="Enchantment6White,Creature6White,Instant6White,Angel,Human4White,Soldier4White"/>
<property name="mythicShopList" value="Planeswalker4White,WUBRG,RWG,RWU,RWB,UWG,UWB,GWB,Legend4White"/>
<property name="rareShopList" value="Artifact4White,Land4White,Dimir,Rakdos,Orzhov,Golgari,Vehicle2White,Wand4White"/>
<property name="signYOffset" type="float" value="-8"/>
<property name="uncommonShopList" value="Bird4White,Spirit4White,Sliver4White,Knight4White,Multicolor8White"/>
</properties> </properties>
</object> </object>
<object id="53" template="../../obj/spellsmith.tx" x="452" y="212"/> <object id="53" template="../../obj/spellsmith.tx" x="452" y="212"/>
<object id="55" template="../../obj/shop.tx" x="465" y="515"> <object id="55" template="../../obj/shop.tx" x="465" y="515">
<properties> <properties>
<property name="shopList" value="Plains"/> <property name="commonShopList" value="Plains"/>
<property name="signYOffset" type="float" value="0"/> <property name="noRestock" type="bool" value="true"/>
<property name="signYOffset" type="float" value="-2"/>
</properties> </properties>
</object> </object>
<object id="58" template="../../obj/entry_up.tx" x="320" y="644" width="80" height="20"> <object id="58" template="../../obj/entry_up.tx" x="320" y="644" width="80" height="20">
@@ -143,15 +176,17 @@
}</property> }</property>
</properties> </properties>
</object> </object>
<object id="62" template="../../obj/shop.tx" x="263" y="257"> <object id="62" template="../../obj/shop.tx" x="80" y="338">
<properties> <properties>
<property name="shopList" value="WhiteItems"/> <property name="commonShopList" value="WhiteItems"/>
<property name="noRestock" type="bool" value="true"/>
<property name="signYOffset" type="float" value="0"/> <property name="signYOffset" type="float" value="0"/>
</properties> </properties>
</object> </object>
<object id="63" template="../../obj/shop.tx" x="82" y="257"> <object id="63" template="../../obj/shop.tx" x="82" y="257">
<properties> <properties>
<property name="shopList" value="WhiteEquipment"/> <property name="commonShopList" value="WhiteEquipment"/>
<property name="noRestock" type="bool" value="true"/>
<property name="signYOffset" type="float" value="0"/> <property name="signYOffset" type="float" value="0"/>
</properties> </properties>
</object> </object>
@@ -166,5 +201,51 @@
<property name="sprite" value=""/> <property name="sprite" value=""/>
</properties> </properties>
</object> </object>
<object id="66" template="../../obj/quest.tx" x="200" y="257">
<properties>
<property name="questtype" value="plains_capital"/>
</properties>
</object>
<object id="67" template="../../obj/shop.tx" x="208" y="338">
<properties>
<property name="commonShopList" value="Enchantment6White,Creature6White,Instant6White,Angel,Human4White,Soldier4White"/>
<property name="mythicShopList" value="Planeswalker4White,WUBRG,RWG,RWU,RWB,UWG,UWB,GWB,Legend4White"/>
<property name="rareShopList" value="Artifact4White,Land4White,Dimir,Rakdos,Orzhov,Golgari,Vehicle2White,Wand4White"/>
<property name="signYOffset" type="float" value="-2"/>
<property name="uncommonShopList" value="Bird4White,Spirit4White,Sliver4White,Knight4White,Multicolor8White"/>
</properties>
</object>
<object id="68" template="../../obj/shop.tx" x="128" y="338">
<properties>
<property name="commonShopList" value="Enchantment6White,Creature6White,Instant6White,Angel,Human4White,Soldier4White"/>
<property name="mythicShopList" value="Planeswalker4White,WUBRG,RWG,RWU,RWB,UWG,UWB,GWB,Legend4White"/>
<property name="rareShopList" value="Artifact4White,Land4White,Dimir,Rakdos,Orzhov,Golgari,Vehicle2White,Wand4White"/>
<property name="signYOffset" type="float" value="-2"/>
<property name="uncommonShopList" value="Bird4White,Spirit4White,Sliver4White,Knight4White,Multicolor8White"/>
</properties>
</object>
<object id="69" template="../../obj/RotatingShop.tx" x="481.667" y="418.667">
<properties>
<property name="rotation" value="White1,White2,White3,White4,White5,White6"/>
<property name="signYOffset" type="float" value="-2"/>
</properties>
</object>
<object id="70" template="../../obj/RotatingShop.tx" x="541" y="193">
<properties>
<property name="rotation" value="White1,White2,White3,White4,White5,White6"/>
<property name="signYOffset" type="float" value="-2"/>
</properties>
</object>
<object id="71" template="../../obj/RotatingShop.tx" x="401" y="161">
<properties>
<property name="rotation" value="White1,White2,White3,White4,White5,White6"/>
<property name="signYOffset" type="float" value="-2"/>
</properties>
</object>
<object id="72" template="../../obj/shardtrader.tx" x="272" y="338">
<properties>
<property name="signYOffset" type="float" value="-2"/>
</properties>
</object>
</objectgroup> </objectgroup>
</map> </map>

View File

@@ -1,10 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<map version="1.9" tiledversion="1.9.1" orientation="orthogonal" renderorder="right-down" width="40" height="40" tilewidth="16" tileheight="16" infinite="0" nextlayerid="7" nextobjectid="72"> <map version="1.9" tiledversion="1.9.2" orientation="orthogonal" renderorder="right-down" width="40" height="40" tilewidth="16" tileheight="16" infinite="0" nextlayerid="7" nextobjectid="94">
<editorsettings> <editorsettings>
<export format="tmx"/> <export format="tmx"/>
</editorsettings> </editorsettings>
<tileset firstgid="1" source="../../tileset/main.tsx"/> <tileset firstgid="1" source="../../tileset/main.tsx"/>
<tileset firstgid="6321" source="../../tileset/buildings.tsx"/> <tileset firstgid="10113" source="../../tileset/buildings.tsx"/>
<layer id="1" name="Background" width="40" height="40"> <layer id="1" name="Background" width="40" height="40">
<data encoding="base64" compression="zlib"> <data encoding="base64" compression="zlib">
eJztw7ENAAAMAiB3l/5/rX80kNBLqqqqqqqq+ugA4iKowQ== eJztw7ENAAAMAiB3l/5/rX80kNBLqqqqqqqq+ugA4iKowQ==
@@ -12,12 +12,12 @@
</layer> </layer>
<layer id="2" name="Ground" width="40" height="40"> <layer id="2" name="Ground" width="40" height="40">
<data encoding="base64" compression="zlib"> <data encoding="base64" compression="zlib">
eJzNWMtS21AMveCEadg4yY7yDcCwhg5fAf2B1oUWvgE2rMtjSdOCyd/Qx7eUwppK1BqOFd3rm9RJrBmNh4skHx097DhLnUu6zrWVLpJ+SP3KPu/oOqSrSBaw1fHZ97b7ou/T0fuzX8vjq+0t1TloHILBirUEebHkYIf3z5W/cJJ3y/n51Iqp8ScG5qHCl6maCG8sLSOmT/fTclzxXYKcNGaspcZlxckgJ41v0priOZ4lETlbPu1IfFV9PG0VfBqHrx6xfTmJWrkLPpynp1fO7SyPquuMaugc/awr6kKnnLtgtfANyPbrjPVbx943Fr7c8D9ede5kdXb4BGMsvivC9mXG+ERi8FXGJ+zX/4H/WuHbpdq+hfry3pHdOwm+uvk7JzyXar/ILpkHPs2fcGjVV+b3huqVGzW7pbNhzb1o9d858If1ncd+sfjD+Zh3favmt2nzofHhO2MTnh9Nw1fVf22ocVP2iwi+N/CMNK2+WurAt7bi3PpKPfzhs25e/RfiD59108J3+rpZ9Z1m/zVtfrVs0e+BbdKkE75ug12LdNGws3zwXP5+sxyPLyR6lkQGBgcbPec2e3HxfHHHFZmlTH1LyIseQkyf+s4d9cPYzijWYzo6o1YOIdFc5Oq3seD7QTYH/bKtzkXkD539Tv240O5R+euYmgv5lobvPIyP7Q6Vrc4F7/uZzveAH+EB+RA75NAXE/+P3xcGY+4IFq7pRaHCofD/kfRX76UHmOf7ijr76iT4xtkRPmF8PwtlfMzdQ1Ffi0fElhTvYJzTXlquSz4Bf5Zwf3wnXHe9fz0i+BgX8/hg9OLz/aGeXJf7tGxbF3/cd1JbFsGH6uMQRc9eLH+hHmHR84VciIZ6UXaR9U4Rw1/V3FmiOQztS995XfX14WPOLgou9U6KkWnh+wtIU1uf eJzNmM9u00AQxpc6qUgvTvISkXJBPbeIR4AL5QWKW/pH0Jb3gJZzAJm+TVt4FtLmCHQGPOrnyex6E5zEI42sbmfXv/1mZu04S51Lus61la+R76V+5zm7dL2kq1gWiNXr89xv3Qd/nU7fn+e1PHN1vOV6D5pDGKy11mFfbDnE4f1zNV80ybvl/fncWlPzJwbzpeLLVE5EN7aWsabP99PyujJ3HfakmTGXmstaJ4M9ab55c4rjOJZE7Nma047kq6rjRbvwaQ5fPmLrch639i582E9/Hjv3bGPaXWfaQ+M4z7qiP+qU9y6sFt+IYj8v2b907PPG4suN+c+Hzr0YLo9PGGP5DontaMl8YjF8Vf6W2N/9B/9XxfeScvsK8svnjpy98/DVrd858XxS54ucJavg0/qJhlZ+pX9PKF+nRs7OaOx9zbVo1d856If5XcX5YumH/bHq/Fb1b9P6Q/PhO2MTnh9N46uqvzbkuCnnixi+N3CPNC2/2urg+zVw7vegHv3wWbeq+gvph8+6JvItIr+L5Gta/2rbot8D2+RJJ3zdhrgW+ZoRZ83Bcfn76UY8X8h0L4mNDA2e9Jzb7MWt51t3VpNeytS3hLyoIWQ67Dt33A+zfaS1Jul0j1p7CJnWIle/jYXvhmLe9Muxei9itzT2M/VzYdxEzddrai3kWxq+8zAfxx2pWL0XvO8HGt8BfUQH1EPiUEPfmvh//L4wmvGMYOOcXhQuGor+B+Q/eg81wDqPK/Lsy5PwzXJG+Iz5vhfOfKzdXZFfS0dkS4p3MN7TTlrOSz6HfpZxfVwT11XvX40IH3OxjndGLf69P+ST8zJOy7F16cd1J7llEz50n4Zouvdi9QvVCJvuL9RCPFSLchZZ7xQx+lX1nWVaw9B56RuvK78+PtbsotBSn0kxtii+e9gCXBk=
</data> </data>
</layer> </layer>
<layer id="6" name="Ground2" width="40" height="40"> <layer id="6" name="Ground2" width="40" height="40">
<data encoding="base64" compression="zlib"> <data encoding="base64" compression="zlib">
eJztV21uwyAM9d+EkAu0UrMzbCeYmuxc066ytuutuia9R0EFxbKgITRQNvEkqwSS+uFn8wGQkZHxX/DNAXZPsj2f5vdeA3TCfiNbK2xbu/FzeW9puPrN/B7za3uvLwEu5Xy/fA1Qr8Pz+2QAh8L+HeYv24OwTpnLvB7ldxTcvpj9Ozwu51KI51LZSxWe31T8ML+puSzFT+sk7UNYq/QayG9HxmX73lyW4rcRujTVqBM1PMaKm6ayj0WK3xxITXXMZC60JL4DsY7UT2h+kpOtPkzxbpA2sn5i8otRH68rgLfVrc/Wpvzu6Ut1xm0ffXvynyYftH41P1xXum5MuupnH32xD1rD2kdDeJg0ddU6Rv61hji7roWh8++IdKTxDrG/9ZY8ozmO829uzfry++Fj/pnWLFM/U+uz7/3lwN34nWbeGwZh53rcP06qz+cOcg54Lsbrc4qYOn89G6nHz2fPjYnU9cXnvxSRev5tKrd9LCPjL+EKsTvNGA== eJztV0tOwzAQHQk2iZtcoWFJrgArRIPoniPAPShXgZYeClRacw88aqwMlv9x06rKk0ZxHNvzMs/jD8CIESPOBe8FwMeRbFm4+d2VAI2wn4FtJuy+9OPn0y41fP2m4LfLAX7zsD5D8ntlAG8srE9ffiExofy+aoDvOszvi6W9iR/6XGXmfpQ/tp2JcuNp2K9v/NaZXTP6Hfll4j132ILtn1eT/vxc8aP8XP8isSBtVL8mjWk71Iy39pB3mnHl2SjfsWz7Fxe/eW3mSNtNRdyriVkf+o1le02xjiWInwmx6wtqKmMm84PGlyuGdcjPlB9zD31duBFj3NYdJ1d+0HhXRJsU+aEDzRnKzzc/YvzKdhciLpdtbExllZ9NX1VnWo5Z/3bKmDofppyleSXzRqerfI/Rl/pQc1j6qBQeOk19tT50/ur2NJ77r4WHmH8Ua6KjGm/U7+k6LT+6d5jmH63DOIXmbCy/z6Kbf7o1S1fP2vU59v6yKvz4bQLvDVzYtuz2j01bF3MH2QbO+8f6/9MG25lZHcdnvFBuz44xXeevlNxiEHPnGBIxe+6QcOl7bNDz3yni1OfftD2HjBhxTvgDGpfgIw==
</data> </data>
</layer> </layer>
<layer id="3" name="Walls" width="40" height="40"> <layer id="3" name="Walls" width="40" height="40">
@@ -25,12 +25,12 @@
<property name="spriteLayer" type="bool" value="true"/> <property name="spriteLayer" type="bool" value="true"/>
</properties> </properties>
<data encoding="base64" compression="zlib"> <data encoding="base64" compression="zlib">
eJzty0EGACAABMA+ED0gvb7+2SkRHYoOMcOyh90QAAAAAO60eJahHv7W/ws5zV7SfgcA/KEDgLsSbg== eJzt0sEJwCAMheG3gOAA0rvOXSdrd9BjT8UiFipFRPg/CCSQQCCRAADAX0eQzlDq5KXs5+0DzPL8/S851sJ9AbRE0xe3vXOunh/B2ZJv9r0PAACs4QIr1ijS
</data> </data>
</layer> </layer>
<layer id="5" name="Overlay" width="40" height="40"> <layer id="5" name="Overlay" width="40" height="40">
<data encoding="base64" compression="zlib"> <data encoding="base64" compression="zlib">
eJzt0ksKhDAQRdGa2xB00kotQFdpC/3R7eoKrIETUVoRY4HcA4HiQUjIiwgAAH7eKvLRZd5bNqzk8Pe1Xn4r3bSWdXQWXWJv/ND989VKO7fS/TPmYvb7tD25/p+30O9xaSGSFd638HPG/8M91EHkNa0meN8GAADc3Qj2GhFY eJzt0sEJg0AQheHXgSWYm6ztRGOqibZmLqYHc0kuWkbmEGHBJeTgsiT+HwizD4SBeRIAAOkcS6kq13lv2dXLB5tv3nt00t3F3w9rtd3hFLhZY9k5kGNbfve/mfcmtw4efriHMe872T+z+zwjnkchPYvUW6RD/7C4ZFL7/ros9TYAAODfvQDOSyqr
</data> </data>
</layer> </layer>
<objectgroup id="4" name="Objects"> <objectgroup id="4" name="Objects">
@@ -38,8 +38,9 @@
<object id="53" template="../../obj/spellsmith.tx" x="392" y="194"/> <object id="53" template="../../obj/spellsmith.tx" x="392" y="194"/>
<object id="55" template="../../obj/shop.tx" x="416" y="402"> <object id="55" template="../../obj/shop.tx" x="416" y="402">
<properties> <properties>
<property name="shopList" value="Swamp"/> <property name="commonShopList" value="Swamp"/>
<property name="signYOffset" type="float" value="0"/> <property name="noRestock" type="bool" value="true"/>
<property name="signYOffset" type="float" value="-2"/>
</properties> </properties>
</object> </object>
<object id="58" template="../../obj/entry_up.tx" x="258" y="639" width="97" height="20"> <object id="58" template="../../obj/entry_up.tx" x="258" y="639" width="97" height="20">
@@ -106,54 +107,137 @@
</object> </object>
<object id="62" template="../../obj/shop.tx" x="216" y="241"> <object id="62" template="../../obj/shop.tx" x="216" y="241">
<properties> <properties>
<property name="shopList" value="BlackItems"/> <property name="commonShopList" value="BlackItems"/>
<property name="hasSign" type="bool" value="true"/>
<property name="noRestock" type="bool" value="true"/>
<property name="signYOffset" type="float" value="0"/> <property name="signYOffset" type="float" value="0"/>
</properties> </properties>
</object> </object>
<object id="63" template="../../obj/shop.tx" x="115" y="241"> <object id="63" template="../../obj/shop.tx" x="115" y="241">
<properties> <properties>
<property name="shopList" value="BlackEquipment"/> <property name="commonShopList" value="BlackEquipment"/>
<property name="hasSign" type="bool" value="true"/>
<property name="noRestock" type="bool" value="true"/>
<property name="signYOffset" type="float" value="0"/> <property name="signYOffset" type="float" value="0"/>
</properties> </properties>
</object> </object>
<object id="64" template="../../obj/shop.tx" x="376" y="274">
<properties>
<property name="shopList" value="Instant,Creature,Black,Dimir,Rakdos,Orzhov,Golgari,Simic,Zombie "/>
</properties>
</object>
<object id="65" template="../../obj/shop.tx" x="376" y="322"> <object id="65" template="../../obj/shop.tx" x="376" y="322">
<properties> <properties>
<property name="shopList" value="Instant,Creature,Black,Dimir,Rakdos,Orzhov,Golgari,Simic,Zombie "/> <property name="commonShopList" value="Enchantment6Black,Creature6Black,Instant6Black,Vampire,Zombie,Skeleton,Demon"/>
<property name="mythicShopList" value="Planeswalker4Black,WUBRG,RWB,RUB,RGB,UWB,UGB,UWB,Legend4Black"/>
<property name="rareShopList" value="Artifact4Black,Land4Black,Dimir,Rakdos,Orzhov,Golgari,Vehicle2Black,Wand4Black"/>
<property name="signYOffset" type="float" value="-8"/>
<property name="uncommonShopList" value="Rogue4Black,Sliver4Black,Knight4Black,Multicolor8Black"/>
</properties> </properties>
</object> </object>
<object id="66" template="../../obj/shop.tx" x="424" y="274"> <object id="66" template="../../obj/shop.tx" x="424" y="274">
<properties> <properties>
<property name="shopList" value="Instant,Creature,Black,Dimir,Rakdos,Orzhov,Golgari,Simic,Zombie "/> <property name="commonShopList" value="Enchantment6Black,Creature6Black,Instant6Black,Vampire,Zombie,Skeleton,Demon"/>
<property name="mythicShopList" value="Planeswalker4Black,WUBRG,RWB,RUB,RGB,UWB,UGB,UWB,Legend4Black"/>
<property name="rareShopList" value="Artifact4Black,Land4Black,Dimir,Rakdos,Orzhov,Golgari,Vehicle2Black,Wand4Black"/>
<property name="signYOffset" type="float" value="-8"/>
<property name="uncommonShopList" value="Rogue4Black,Sliver4Black,Knight4Black,Multicolor8Black"/>
</properties> </properties>
</object> </object>
<object id="67" template="../../obj/shop.tx" x="424" y="322"> <object id="67" template="../../obj/shop.tx" x="424" y="322">
<properties> <properties>
<property name="shopList" value="Instant,Creature,Black,Dimir,Rakdos,Orzhov,Golgari,Simic,Zombie "/> <property name="commonShopList" value="Enchantment6Black,Creature6Black,Instant6Black,Vampire,Zombie,Skeleton,Demon"/>
<property name="mythicShopList" value="Planeswalker4Black,WUBRG,RWB,RUB,RGB,UWB,UGB,UWB,Legend4Black"/>
<property name="rareShopList" value="Artifact4Black,Land4Black,Dimir,Rakdos,Orzhov,Golgari,Vehicle2Black,Wand4Black"/>
<property name="signXOffset" type="float" value="18"/>
<property name="signYOffset" type="float" value="-8"/>
<property name="uncommonShopList" value="Rogue4Black,Sliver4Black,Knight4Black,Multicolor8Black"/>
</properties> </properties>
</object> </object>
<object id="68" template="../../obj/shop.tx" x="472" y="274"> <object id="68" template="../../obj/shop.tx" x="472" y="274">
<properties> <properties>
<property name="shopList" value="Instant,Creature,Black,Dimir,Rakdos,Orzhov,Golgari,Simic,Zombie "/> <property name="commonShopList" value="Enchantment6Black,Creature6Black,Instant6Black,Vampire,Zombie,Skeleton,Demon"/>
<property name="mythicShopList" value="Planeswalker4Black,WUBRG,RWB,RUB,RGB,UWB,UGB,UWB,Legend4Black"/>
<property name="rareShopList" value="Artifact4Black,Land4Black,Dimir,Rakdos,Orzhov,Golgari,Vehicle2Black,Wand4Black"/>
<property name="signYOffset" type="float" value="-8"/>
<property name="uncommonShopList" value="Rogue4Black,Sliver4Black,Knight4Black,Multicolor8Black"/>
</properties> </properties>
</object> </object>
<object id="69" template="../../obj/shop.tx" x="472" y="322"> <object id="69" template="../../obj/shop.tx" x="472" y="322">
<properties> <properties>
<property name="shopList" value="Instant,Creature,Black,Dimir,Rakdos,Orzhov,Golgari,Simic,Zombie "/> <property name="commonShopList" value="Enchantment6Black,Creature6Black,Instant6Black,Vampire,Zombie,Skeleton,Demon"/>
<property name="mythicShopList" value="Planeswalker4Black,WUBRG,RWB,RUB,RGB,UWB,UGB,UWB,Legend4Black"/>
<property name="rareShopList" value="Artifact4Black,Land4Black,Dimir,Rakdos,Orzhov,Golgari,Vehicle2Black,Wand4Black"/>
<property name="signYOffset" type="float" value="-8"/>
<property name="uncommonShopList" value="Rogue4Black,Sliver4Black,Knight4Black,Multicolor8Black"/>
</properties> </properties>
</object> </object>
<object id="70" template="../../obj/shop.tx" x="520" y="274"> <object id="70" template="../../obj/shop.tx" x="520" y="274">
<properties> <properties>
<property name="shopList" value="Instant,Creature,Black,Dimir,Rakdos,Orzhov,Golgari,Simic,Zombie "/> <property name="commonShopList" value="Enchantment6Black,Creature6Black,Instant6Black,Vampire,Zombie,Skeleton,Demon"/>
<property name="mythicShopList" value="Planeswalker4Black,WUBRG,RWB,RUB,RGB,UWB,UGB,UWB,Legend4Black"/>
<property name="rareShopList" value="Artifact4Black,Land4Black,Dimir,Rakdos,Orzhov,Golgari,Vehicle2Black,Wand4Black"/>
<property name="signYOffset" type="float" value="-8"/>
<property name="uncommonShopList" value="Rogue4Black,Sliver4Black,Knight4Black,Multicolor8Black"/>
</properties> </properties>
</object> </object>
<object id="71" template="../../obj/shop.tx" x="520" y="322"> <object id="71" template="../../obj/shop.tx" x="520" y="322">
<properties> <properties>
<property name="shopList" value="Instant,Creature,Black,Dimir,Rakdos,Orzhov,Golgari,Simic,Zombie "/> <property name="commonShopList" value="Enchantment6Black,Creature6Black,Instant6Black,Vampire,Zombie,Skeleton,Demon"/>
<property name="mythicShopList" value="Planeswalker4Black,WUBRG,RWB,RUB,RGB,UWB,UGB,UWB,Legend4Black"/>
<property name="rareShopList" value="Artifact4Black,Land4Black,Dimir,Rakdos,Orzhov,Golgari,Vehicle2Black,Wand4Black"/>
<property name="signYOffset" type="float" value="-8"/>
<property name="uncommonShopList" value="Rogue4Black,Sliver4Black,Knight4Black,Multicolor8Black"/>
</properties>
</object>
<object id="77" template="../../obj/shop.tx" x="376" y="274">
<properties>
<property name="commonShopList" value="Enchantment6Black,Creature6Black,Instant6Black,Vampire,Zombie,Skeleton,Demon"/>
<property name="mythicShopList" value="Planeswalker4Black,WUBRG,RWB,RUB,RGB,UWB,UGB,UWB,Legend4Black"/>
<property name="rareShopList" value="Artifact4Black,Land4Black,Dimir,Rakdos,Orzhov,Golgari,Vehicle2Black,Wand4Black"/>
<property name="signYOffset" type="float" value="-8"/>
<property name="uncommonShopList" value="Rogue4Black,Sliver4Black,Knight4Black,Multicolor8Black"/>
</properties>
</object>
<object id="81" template="../../obj/quest.tx" class="quest" x="248" y="306">
<properties>
<property name="questtype" value="swamp_capital"/>
</properties>
</object>
<object id="83" template="../../obj/shop.tx" x="519" y="194">
<properties>
<property name="commonShopList" value="Enchantment6Black,Creature6Black,Instant6Black,Vampire,Zombie,Skeleton,Demon"/>
<property name="mythicShopList" value="Planeswalker4Black,WUBRG,RWB,RUB,RGB,UWB,UGB,UWB,Legend4Black"/>
<property name="rareShopList" value="Artifact4Black,Land4Black,Dimir,Rakdos,Orzhov,Golgari,Vehicle2Black,Wand4Black"/>
<property name="signYOffset" type="float" value="-8"/>
<property name="uncommonShopList" value="Rogue4Black,Sliver4Black,Knight4Black,Multicolor8Black"/>
</properties>
</object>
<object id="84" template="../../obj/shop.tx" x="456" y="194">
<properties>
<property name="commonShopList" value="Enchantment6Black,Creature6Black,Instant6Black,Vampire,Zombie,Skeleton,Demon"/>
<property name="mythicShopList" value="Planeswalker4Black,WUBRG,RWB,RUB,RGB,UWB,UGB,UWB,Legend4Black"/>
<property name="rareShopList" value="Artifact4Black,Land4Black,Dimir,Rakdos,Orzhov,Golgari,Vehicle2Black,Wand4Black"/>
<property name="signYOffset" type="float" value="-8"/>
<property name="uncommonShopList" value="Rogue4Black,Sliver4Black,Knight4Black,Multicolor8Black"/>
</properties>
</object>
<object id="90" template="../../obj/RotatingShop.tx" class="RotatingShop" x="200" y="402">
<properties>
<property name="rotation" value="Black1,Black2,Black3,Black4,Black5,Black6"/>
<property name="signYOffset" type="float" value="-8"/>
</properties>
</object>
<object id="91" template="../../obj/RotatingShop.tx" class="RotatingShop" x="153" y="402">
<properties>
<property name="rotation" value="Black1,Black2,Black3,Black4,Black5,Black6"/>
<property name="signYOffset" type="float" value="-8"/>
</properties>
</object>
<object id="92" template="../../obj/RotatingShop.tx" class="RotatingShop" x="106" y="402">
<properties>
<property name="rotation" value="Black1,Black2,Black3,Black4,Black5,Black6"/>
<property name="signYOffset" type="float" value="-8"/>
</properties>
</object>
<object id="93" template="../../obj/shardtrader.tx" x="152" y="339">
<properties>
<property name="signYOffset" type="float" value="-8"/>
</properties> </properties>
</object> </object>
</objectgroup> </objectgroup>

View File

@@ -0,0 +1,116 @@
<?xml version="1.0" encoding="UTF-8"?>
<map version="1.9" tiledversion="1.9.2" orientation="orthogonal" renderorder="right-down" width="30" height="17" tilewidth="16" tileheight="16" infinite="0" nextlayerid="6" nextobjectid="55">
<editorsettings>
<export target="wastetown..tmx" format="tmx"/>
</editorsettings>
<tileset firstgid="1" source="../tileset/main.tsx"/>
<tileset firstgid="10113" source="../tileset/buildings.tsx"/>
<layer id="1" name="Background" width="30" height="17">
<data encoding="base64" compression="zlib">
eJzFlN0KgCAMRr3N9+n3rbLoRTPqcdrASMS1RWoXB4Rcx28rbaWUDdiA3XFEniMdMOl7H8VK1HPvG2E9MGf76qUyxGpTeZ/65mfGfUbLesx5JbNCdy+caVhnHOG8pD37in+Gkl4f9M7gb3/wlspcA43j8pbITH3bOd2YddH0P5XLLbm3cril93Rqt9Sb0s3NNpf7TdaU92jMewIfOqPa
</data>
</layer>
<layer id="2" name="Ground" width="30" height="17">
<data encoding="base64" compression="zlib">
eJytld0OwUAQhacX2HoAJC68AQnB0yDxSBJBvAYSXKifh/LPTNrGZM1ut2WSE9maPd8c29Y0DzBNqTGqW4CvqnoAtUhL1ApVQpVRFe/TQ+u0vE5BZlKt0W+D2nqfaws2A+8hH1eZeDsF8PJD7ZXc41JtL7mH86AI0PdDPTOyySuI/OjT5EF9nMc18OU9TUuenuZhmn8o8H7JrHNjn4CdYWDJyvfo592y5LXlyCLX7DfsO6n/sk3nLbHvqKNKN8NBhXu4yOeR4T5zzU9Mk39SnXPy9aQzT8N0fTdQ2TL/kjMuU14T28ZsaLku6H1lcp1jLLDpPh1F34+E/XXGnmj/McS+MX9bZqpext9X55JmeXM/zTFn6ziz/kxKeW3cN3fBlwQ=
</data>
</layer>
<layer id="3" name="Foreground" width="30" height="17">
<properties>
<property name="spriteLayer" type="bool" value="true"/>
</properties>
<data encoding="base64" compression="zlib">
eJxjYBgFQwXsYGFgkMaDd7FQph8X/saKas4uNgYGeS0GBgUtCD+UFdMuZIAsr6uNaRYMZGoyMGQB8Xp1BoYN6hAxPaB6Yx0GBhMgPsvOwGANtNOGBHthekEAmQ0DepwMDK1AO9uAWJ8d1X05HAwMk4HuO88OofM4iLcXZBYMILORwVl2VBquXhu7ODH2wtwMwhdw2HsOzT+43EWsvV9YUdMgsn7kMMcljhy/yHxC9qK78SyOMMclro8W/jA+qfYih3kuEhuWbtDFYWwYTWy6QgbIYY5eBoD8Q0peR8/f5ABY+JPiB2qAUXvJAwB5S0IJ
</data>
</layer>
<layer id="5" name="AboveSprites" width="30" height="17">
<data encoding="base64" compression="zlib">
eJxjYBgFowA7mKzOwDBFHcEX12FgkNAhzyxkvZSYMwrIA7jCHF+8jMbTKBgFwxMAAMK5BSc=
</data>
</layer>
<objectgroup id="4" name="Objects">
<object id="38" template="../obj/entry_up.tx" x="208" y="272"/>
<object id="41" template="../obj/shop.tx" x="64" y="115">
<properties>
<property name="commonShopList" value="Red,Red,Enchantment4Red,Creature2Red,Instant4Red,Goblin"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,RGU,RWG,RWU,RUB,RWB,RGB"/>
<property name="rareShopList" value="Land4Red,Gruul,Izzet,Rakdos,Boros,Vehicle,Colorless"/>
<property name="uncommonShopList" value="Artifact,Wolf4Red,Devil,Dwarf,Dragon,Sliver2Red,Knight4Red,Soldier4Red,Minotaur,Shaman,Dinosaur4Red,Ogre4Red,Wand,Equip,Multicolor"/>
</properties>
</object>
<object id="42" template="../obj/shop.tx" x="113" y="115">
<properties>
<property name="commonShopList" value="Red,Red,Enchantment4Red,Creature2Red,Instant4Red,Goblin"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,RGU,RWG,RWU,RUB,RWB,RGB"/>
<property name="rareShopList" value="Land4Red,Gruul,Izzet,Rakdos,Boros,Vehicle,Colorless"/>
<property name="uncommonShopList" value="Artifact,Wolf4Red,Devil,Dwarf,Dragon,Sliver2Red,Knight4Red,Soldier4Red,Minotaur,Shaman,Dinosaur4Red,Ogre4Red,Wand,Equip,Multicolor"/>
</properties>
</object>
<object id="43" template="../obj/shop.tx" x="161" y="163">
<properties>
<property name="commonShopList" value="Red,Red,Enchantment4Red,Creature2Red,Instant4Red,Goblin"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,RGU,RWG,RWU,RUB,RWB,RGB"/>
<property name="rareShopList" value="Land4Red,Gruul,Izzet,Rakdos,Boros,Vehicle,Colorless"/>
<property name="uncommonShopList" value="Artifact,Wolf4Red,Devil,Dwarf,Dragon,Sliver2Red,Knight4Red,Soldier4Red,Minotaur,Shaman,Dinosaur4Red,Ogre4Red,Wand,Equip,Multicolor"/>
</properties>
</object>
<object id="44" template="../obj/shop.tx" x="257" y="162">
<properties>
<property name="commonShopList" value="Red,Red,Enchantment4Red,Creature2Red,Instant4Red,Goblin"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,RGU,RWG,RWU,RUB,RWB,RGB"/>
<property name="rareShopList" value="Land4Red,Gruul,Izzet,Rakdos,Boros,Vehicle,Colorless"/>
<property name="uncommonShopList" value="Artifact,Wolf4Red,Devil,Dwarf,Dragon,Sliver2Red,Knight4Red,Soldier4Red,Minotaur,Shaman,Dinosaur4Red,Ogre4Red,Wand,Equip,Multicolor"/>
</properties>
</object>
<object id="45" template="../obj/shop.tx" x="304" y="162">
<properties>
<property name="commonShopList" value="Red,Red,Enchantment4Red,Creature2Red,Instant4Red,Goblin"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,RGU,RWG,RWU,RUB,RWB,RGB"/>
<property name="rareShopList" value="Land4Red,Gruul,Izzet,Rakdos,Boros,Vehicle,Colorless"/>
<property name="uncommonShopList" value="Artifact,Wolf4Red,Devil,Dwarf,Dragon,Sliver2Red,Knight4Red,Soldier4Red,Minotaur,Shaman,Dinosaur4Red,Ogre4Red,Wand,Equip,Multicolor"/>
</properties>
</object>
<object id="46" template="../obj/shop.tx" x="367" y="162">
<properties>
<property name="commonShopList" value="Red,Red,Enchantment4Red,Creature2Red,Instant4Red,Goblin"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,RGU,RWG,RWU,RUB,RWB,RGB"/>
<property name="rareShopList" value="Land4Red,Gruul,Izzet,Rakdos,Boros,Vehicle,Colorless"/>
<property name="uncommonShopList" value="Artifact,Wolf4Red,Devil,Dwarf,Dragon,Sliver2Red,Knight4Red,Soldier4Red,Minotaur,Shaman,Dinosaur4Red,Ogre4Red,Wand,Equip,Multicolor"/>
</properties>
</object>
<object id="47" template="../obj/inn.tx" x="214" y="114"/>
<object id="48" template="../obj/shop.tx" x="160" y="96">
<properties>
<property name="commonShopList" value="Mountain"/>
<property name="noRestock" type="bool" value="true"/>
</properties>
</object>
<object id="50" template="../obj/shardtrader.tx" x="335" y="81">
<properties>
<property name="signXOffset" type="float" value="-16"/>
<property name="signYOffset" type="float" value="-8"/>
</properties>
</object>
<object id="51" template="../obj/quest.tx" x="364" y="98">
<properties>
<property name="questtype" value="mountain_town_generic"/>
</properties>
</object>
<object id="53" template="../obj/shop.tx" x="239" y="100">
<properties>
<property name="commonShopList" value="Red,Red,Enchantment4Red,Creature2Red,Instant4Red,Goblin"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,RGU,RWG,RWU,RUB,RWB,RGB"/>
<property name="rareShopList" value="Land4Red,Gruul,Izzet,Rakdos,Boros,Vehicle,Colorless"/>
<property name="uncommonShopList" value="Artifact,Wolf4Red,Devil,Dwarf,Dragon,Sliver2Red,Knight4Red,Soldier4Red,Minotaur,Shaman,Dinosaur4Red,Ogre4Red,Wand,Equip,Multicolor"/>
</properties>
</object>
<object id="54" template="../obj/shop.tx" x="304" y="98">
<properties>
<property name="commonShopList" value="Red,Red,Enchantment4Red,Creature2Red,Instant4Red,Goblin"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,RGU,RWG,RWU,RUB,RWB,RGB"/>
<property name="rareShopList" value="Land4Red,Gruul,Izzet,Rakdos,Boros,Vehicle,Colorless"/>
<property name="uncommonShopList" value="Artifact,Wolf4Red,Devil,Dwarf,Dragon,Sliver2Red,Knight4Red,Soldier4Red,Minotaur,Shaman,Dinosaur4Red,Ogre4Red,Wand,Equip,Multicolor"/>
</properties>
</object>
</objectgroup>
</map>

View File

@@ -0,0 +1,114 @@
<?xml version="1.0" encoding="UTF-8"?>
<map version="1.9" tiledversion="1.9.2" orientation="orthogonal" renderorder="right-down" width="30" height="17" tilewidth="16" tileheight="16" infinite="0" nextlayerid="6" nextobjectid="57">
<editorsettings>
<export target="wastetown..tmx" format="tmx"/>
</editorsettings>
<tileset firstgid="1" source="../tileset/main.tsx"/>
<tileset firstgid="10113" source="../tileset/buildings.tsx"/>
<layer id="1" name="Background" width="30" height="17">
<data encoding="base64" compression="zlib">
eJzFlN0KgCAMRr3N9+n3rbLoRTPqcdrASMS1RWoXB4Rcx28rbaWUDdiA3XFEniMdMOl7H8VK1HPvG2E9MGf76qUyxGpTeZ/65mfGfUbLesx5JbNCdy+caVhnHOG8pD37in+Gkl4f9M7gb3/wlspcA43j8pbITH3bOd2YddH0P5XLLbm3cril93Rqt9Sb0s3NNpf7TdaU92jMewIfOqPa
</data>
</layer>
<layer id="2" name="Ground" width="30" height="17">
<data encoding="base64" compression="zlib">
eJytld0OwUAQhacX2HoAJC68AQnB0yDxSBJBvAYSXKifh/LPTNrGZM1ut2WSE9maPd8c29Y0DzBNqTGqW4CvqnoAtUhL1ApVQpVRFe/TQ+u0vE5BZlKt0W+D2nqfaws2A+8hH1eZeDsF8PJD7ZXc41JtL7mH86AI0PdDPTOyySuI/OjT5EF9nMc18OU9TUuenuZhmn8o8H7JrHNjn4CdYWDJyvfo592y5LXlyCLX7DfsO6n/sk3nLbHvqKNKN8NBhXu4yOeR4T5zzU9Mk39SnXPy9aQzT8N0fTdQ2TL/kjMuU14T28ZsaLku6H1lcp1jLLDpPh1F34+E/XXGnmj/McS+MX9bZqpext9X55JmeXM/zTFn6ziz/kxKeW3cN3fBlwQ=
</data>
</layer>
<layer id="3" name="Foreground" width="30" height="17">
<properties>
<property name="spriteLayer" type="bool" value="true"/>
</properties>
<data encoding="base64" compression="zlib">
eJxjYBgFQwXsYGFgkMaDd7FQph8X/saKas4uNlR+KJo8OsAnj2xWpiYDQxYQr1dnYNigjhA31mFgMAHis+wMDNZaDAw2WsTbC9OLbA4y0ONkYGgF2tkGxPrsqHI5HAwMk4HuO88OofM4iLcX2Sx0c2HgLDsqjUse2VxC9sLcDMIXcJh7Ds0/lNr7hRU1DSLrRw5zkPgrDUxx5PhF5hOyF92NZ3GEOS5xfbTwh/FJtRc5zHOR2LB0gy4OY8NoYtMVMkAOc/QyAOQfUvI6ev4mB8DCnxQ/UAOM2kseAAD38kEl
</data>
</layer>
<layer id="5" name="AboveSprites" width="30" height="17">
<data encoding="base64" compression="zlib">
eJxjYBgFowA7mKzOwDBFHcEX12FgkNCBsOW1GBgUtIg3C1kvMnsU0Aegh/k5DUxxdDWj8TQKRsHwBADmvgaw
</data>
</layer>
<objectgroup id="4" name="Objects">
<object id="38" template="../obj/entry_up.tx" x="208" y="272"/>
<object id="41" template="../obj/shop.tx" x="64" y="115">
<properties>
<property name="commonShopList" value="Red,Red,Enchantment4Red,Creature2Red,Instant4Red"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,Vehicle,Artifact,Equip,Wand,Legend4Red"/>
<property name="rareShopList" value="RGU,RWG,RWU,RUB,RWB,RGB,Land4Red,Creature6Red"/>
<property name="uncommonShopList" value="Gruul,Izzet,Rakdos,Boros,Gruul,Izzet,Rakdos,Boros,Land"/>
</properties>
</object>
<object id="42" template="../obj/shop.tx" x="113" y="115">
<properties>
<property name="commonShopList" value="Red,Red,Enchantment4Red,Creature2Red,Instant4Red"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,Vehicle,Artifact,Equip,Wand,Legend4Red"/>
<property name="rareShopList" value="RGU,RWG,RWU,RUB,RWB,RGB,Land4Red,Creature6Red"/>
<property name="uncommonShopList" value="Gruul,Izzet,Rakdos,Boros,Gruul,Izzet,Rakdos,Boros,Land"/>
</properties>
</object>
<object id="43" template="../obj/shop.tx" x="161" y="163">
<properties>
<property name="commonShopList" value="Red,Red,Enchantment4Red,Creature2Red,Instant4Red"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,Vehicle,Artifact,Equip,Wand,Legend4Red"/>
<property name="rareShopList" value="RGU,RWG,RWU,RUB,RWB,RGB,Land4Red,Creature6Red"/>
<property name="uncommonShopList" value="Gruul,Izzet,Rakdos,Boros,Gruul,Izzet,Rakdos,Boros,Land"/>
</properties>
</object>
<object id="44" template="../obj/shop.tx" x="257" y="162">
<properties>
<property name="commonShopList" value="Red,Red,Enchantment4Red,Creature2Red,Instant4Red"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,Vehicle,Artifact,Equip,Wand,Legend4Red"/>
<property name="rareShopList" value="RGU,RWG,RWU,RUB,RWB,RGB,Land4Red,Creature6Red"/>
<property name="uncommonShopList" value="Gruul,Izzet,Rakdos,Boros,Gruul,Izzet,Rakdos,Boros,Land"/>
</properties>
</object>
<object id="45" template="../obj/shop.tx" x="304" y="162">
<properties>
<property name="commonShopList" value="Red,Red,Enchantment4Red,Creature2Red,Instant4Red"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,Vehicle,Artifact,Equip,Wand,Legend4Red"/>
<property name="rareShopList" value="RGU,RWG,RWU,RUB,RWB,RGB,Land4Red,Creature6Red"/>
<property name="uncommonShopList" value="Gruul,Izzet,Rakdos,Boros,Gruul,Izzet,Rakdos,Boros,Land"/>
</properties>
</object>
<object id="46" template="../obj/shop.tx" x="367" y="162">
<properties>
<property name="commonShopList" value="Red,Red,Enchantment4Red,Creature2Red,Instant4Red"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,Vehicle,Artifact,Equip,Wand,Legend4Red"/>
<property name="rareShopList" value="RGU,RWG,RWU,RUB,RWB,RGB,Land4Red,Creature6Red"/>
<property name="uncommonShopList" value="Gruul,Izzet,Rakdos,Boros,Gruul,Izzet,Rakdos,Boros,Land"/>
</properties>
</object>
<object id="47" template="../obj/inn.tx" x="214" y="114"/>
<object id="48" template="../obj/shop.tx" x="160" y="96">
<properties>
<property name="commonShopList" value="Mountain"/>
<property name="noRestock" type="bool" value="true"/>
</properties>
</object>
<object id="50" template="../obj/shardtrader.tx" x="335" y="81">
<properties>
<property name="signXOffset" type="float" value="-16"/>
<property name="signYOffset" type="float" value="-8"/>
</properties>
</object>
<object id="51" template="../obj/quest.tx" x="364" y="98">
<properties>
<property name="questtype" value="mountain_town_identity"/>
</properties>
</object>
<object id="55" template="../obj/RotatingShop.tx" x="240" y="97">
<properties>
<property name="rotation" value="Red1,Red2,Red3,Red4,Red5,Red6"/>
<property name="signYOffset" type="float" value="0"/>
</properties>
</object>
<object id="56" template="../obj/shop.tx" x="304" y="97">
<properties>
<property name="commonShopList" value="Red,Red,Enchantment4Red,Creature2Red,Instant4Red"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,Vehicle,Artifact,Equip,Wand,Legend4Red"/>
<property name="rareShopList" value="RGU,RWG,RWU,RUB,RWB,RGB,Land4Red,Creature6Red"/>
<property name="uncommonShopList" value="Gruul,Izzet,Rakdos,Boros,Gruul,Izzet,Rakdos,Boros,Land"/>
</properties>
</object>
</objectgroup>
</map>

View File

@@ -0,0 +1,116 @@
<?xml version="1.0" encoding="UTF-8"?>
<map version="1.9" tiledversion="1.9.2" orientation="orthogonal" renderorder="right-down" width="30" height="17" tilewidth="16" tileheight="16" infinite="0" nextlayerid="6" nextobjectid="54">
<editorsettings>
<export target="wastetown..tmx" format="tmx"/>
</editorsettings>
<tileset firstgid="1" source="../tileset/main.tsx"/>
<tileset firstgid="10113" source="../tileset/buildings.tsx"/>
<layer id="1" name="Background" width="30" height="17">
<data encoding="base64" compression="zlib">
eJzFlN0KgCAMRr3N9+n3rbLoRTPqcdrASMS1RWoXB4Rcx28rbaWUDdiA3XFEniMdMOl7H8VK1HPvG2E9MGf76qUyxGpTeZ/65mfGfUbLesx5JbNCdy+caVhnHOG8pD37in+Gkl4f9M7gb3/wlspcA43j8pbITH3bOd2YddH0P5XLLbm3cril93Rqt9Sb0s3NNpf7TdaU92jMewIfOqPa
</data>
</layer>
<layer id="2" name="Ground" width="30" height="17">
<data encoding="base64" compression="zlib">
eJytld0OwUAQhacX2HoAJC68AQnB0yDxSBJBvAYSXKifh/LPTNrGZM1ut2WSE9maPd8c29Y0DzBNqTGqW4CvqnoAtUhL1ApVQpVRFe/TQ+u0vE5BZlKt0W+D2nqfaws2A+8hH1eZeDsF8PJD7ZXc41JtL7mH86AI0PdDPTOyySuI/OjT5EF9nMc18OU9TUuenuZhmn8o8H7JrHNjn4CdYWDJyvfo592y5LXlyCLX7DfsO6n/sk3nLbHvqKNKN8NBhXu4yOeR4T5zzU9Mk39SnXPy9aQzT8N0fTdQ2TL/kjMuU14T28ZsaLku6H1lcp1jLLDpPh1F34+E/XXGnmj/McS+MX9bZqpext9X55JmeXM/zTFn6ziz/kxKeW3cN3fBlwQ=
</data>
</layer>
<layer id="3" name="Foreground" width="30" height="17">
<properties>
<property name="spriteLayer" type="bool" value="true"/>
</properties>
<data encoding="base64" compression="zlib">
eJxjYKAf+MdEW/MZmSE0EzOqeI8mkGDGUE5T8J8Gft3BwsAgjQfvYqFMPy78jRXVnF1sqPxQNHl0gE8e2axMYDxlAfF6dQaGDerQMATGm7EOA4MJEJ9lZ2Cw1mJgsNEi3l6YXhBAZsOAHicDQyvQzjZNiPmMSOkkh4OBYTLQfefZIXQeB/H26rMj+MhsZHCWHZXGJY9sLiF7YW4G4Qs4zD2H5h9K7f3CipoGkfUjhzkuceT4ReYTshfdjWdxhDkucX208IfxSbUXOcxzkdiwdIMuDmPDaGLTFTJADnP0MgDkH1LyOnr+JgXAynRY+MP8gF4G0wog20svO9HtpSeglr0AD9lFhQ==
</data>
</layer>
<layer id="5" name="AboveSprites" width="30" height="17">
<data encoding="base64" compression="zlib">
eJxjYBgFowA7mKzOwDBFHcEX12FgkNCBsOW1GBgUtIg3C1kvMnsU0AfgCnN88TIaT6NgFAxPAAAOuQW6
</data>
</layer>
<objectgroup id="4" name="Objects">
<object id="38" template="../obj/entry_up.tx" x="208" y="272"/>
<object id="41" template="../obj/shop.tx" x="64" y="115">
<properties>
<property name="commonShopList" value="Wolf4Red,Goblin,Devil,Dwarf,Dragon,Sliver2Red,Knight4Red,Soldier4Red,Minotaur,Shaman,Dinosaur4Red,Ogre4Red"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,Vehicle,Artifact,Equip,Wand,Legend4Red"/>
<property name="rareShopList" value="Gruul,Izzet,Rakdos,Boros,Creature6Red,Multicolor,Land4Red"/>
<property name="uncommonShopList" value="Creature2Red,Creature,Red"/>
</properties>
</object>
<object id="42" template="../obj/shop.tx" x="113" y="115">
<properties>
<property name="commonShopList" value="Wolf4Red,Goblin,Devil,Dwarf,Dragon,Sliver2Red,Knight4Red,Soldier4Red,Minotaur,Shaman,Dinosaur4Red,Ogre4Red"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,Vehicle,Artifact,Equip,Wand,Legend4Red"/>
<property name="rareShopList" value="Gruul,Izzet,Rakdos,Boros,Creature6Red,Multicolor,Land4Red"/>
<property name="uncommonShopList" value="Creature2Red,Creature,Red"/>
</properties>
</object>
<object id="43" template="../obj/shop.tx" x="161" y="163">
<properties>
<property name="commonShopList" value="Wolf4Red,Goblin,Devil,Dwarf,Dragon,Sliver2Red,Knight4Red,Soldier4Red,Minotaur,Shaman,Dinosaur4Red,Ogre4Red"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,Vehicle,Artifact,Equip,Wand,Legend4Red"/>
<property name="rareShopList" value="Gruul,Izzet,Rakdos,Boros,Creature6Red,Multicolor,Land4Red"/>
<property name="uncommonShopList" value="Creature2Red,Creature,Red"/>
</properties>
</object>
<object id="44" template="../obj/shop.tx" x="257" y="162">
<properties>
<property name="commonShopList" value="Wolf4Red,Goblin,Devil,Dwarf,Dragon,Sliver2Red,Knight4Red,Soldier4Red,Minotaur,Shaman,Dinosaur4Red,Ogre4Red"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,Vehicle,Artifact,Equip,Wand,Legend4Red"/>
<property name="rareShopList" value="Gruul,Izzet,Rakdos,Boros,Creature6Red,Multicolor,Land4Red"/>
<property name="uncommonShopList" value="Creature2Red,Creature,Red"/>
</properties>
</object>
<object id="45" template="../obj/shop.tx" x="304" y="162">
<properties>
<property name="commonShopList" value="Wolf4Red,Goblin,Devil,Dwarf,Dragon,Sliver2Red,Knight4Red,Soldier4Red,Minotaur,Shaman,Dinosaur4Red,Ogre4Red"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,Vehicle,Artifact,Equip,Wand,Legend4Red"/>
<property name="rareShopList" value="Gruul,Izzet,Rakdos,Boros,Creature6Red,Multicolor,Land4Red"/>
<property name="uncommonShopList" value="Creature2Red,Creature,Red"/>
</properties>
</object>
<object id="46" template="../obj/shop.tx" x="367" y="162">
<properties>
<property name="commonShopList" value="Wolf4Red,Goblin,Devil,Dwarf,Dragon,Sliver2Red,Knight4Red,Soldier4Red,Minotaur,Shaman,Dinosaur4Red,Ogre4Red"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,Vehicle,Artifact,Equip,Wand,Legend4Red"/>
<property name="rareShopList" value="Gruul,Izzet,Rakdos,Boros,Creature6Red,Multicolor,Land4Red"/>
<property name="uncommonShopList" value="Creature2Red,Creature,Red"/>
</properties>
</object>
<object id="47" template="../obj/inn.tx" x="214" y="114"/>
<object id="48" template="../obj/shop.tx" x="160" y="96">
<properties>
<property name="commonShopList" value="Mountain"/>
<property name="noRestock" type="bool" value="true"/>
</properties>
</object>
<object id="50" template="../obj/shardtrader.tx" x="335" y="81">
<properties>
<property name="signXOffset" type="float" value="-16"/>
<property name="signYOffset" type="float" value="-8"/>
</properties>
</object>
<object id="51" template="../obj/quest.tx" x="364" y="98">
<properties>
<property name="questtype" value="mountain_town_tribal"/>
</properties>
</object>
<object id="52" template="../obj/shop.tx" x="304" y="97">
<properties>
<property name="commonShopList" value="Wolf4Red,Goblin,Devil,Dwarf,Dragon,Sliver2Red,Knight4Red,Soldier4Red,Minotaur,Shaman,Dinosaur4Red,Ogre4Red"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,Vehicle,Artifact,Equip,Wand,Legend4Red"/>
<property name="rareShopList" value="Gruul,Izzet,Rakdos,Boros,Creature6Red,Multicolor,Land4Red"/>
<property name="uncommonShopList" value="Creature2Red,Creature,Red"/>
</properties>
</object>
<object id="53" template="../obj/shop.tx" x="240" y="97">
<properties>
<property name="commonShopList" value="Wolf4Red,Goblin,Devil,Dwarf,Dragon,Sliver2Red,Knight4Red,Soldier4Red,Minotaur,Shaman,Dinosaur4Red,Ogre4Red"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,Vehicle,Artifact,Equip,Wand,Legend4Red"/>
<property name="rareShopList" value="Gruul,Izzet,Rakdos,Boros,Creature6Red,Multicolor,Land4Red"/>
<property name="uncommonShopList" value="Creature2Red,Creature,Red"/>
</properties>
</object>
</objectgroup>
</map>

View File

@@ -0,0 +1,131 @@
<?xml version="1.0" encoding="UTF-8"?>
<map version="1.9" tiledversion="1.9.2" orientation="orthogonal" renderorder="right-down" width="30" height="30" tilewidth="16" tileheight="16" infinite="0" nextlayerid="6" nextobjectid="60">
<editorsettings>
<export target="wastetown..tmx" format="tmx"/>
</editorsettings>
<tileset firstgid="1" source="../tileset/main.tsx"/>
<tileset firstgid="10113" source="../tileset/buildings.tsx"/>
<layer id="1" name="Background" width="30" height="30">
<data encoding="base64" compression="zlib">
eJzr5GRg6Bxk+AUHBJOqz28QuH0UY8dN3NTHg9He5xy0tbcNDcPs1OCiv72tSOyRYi+t0xU2e5W5aG+vChcqHuh8NGovde19zoGoV7HVrbSyF1QuoadnUuwlx20wsymxl5L4HUn2YiuvKGkbEKuHWvYi0/SydxSP4sGKARuK+bI=
</data>
</layer>
<layer id="2" name="Ground" width="30" height="30">
<data encoding="base64" compression="zlib">
eJztlUFOAkEQRb8xRGZwuAcHwKg7QjScg4UbQA6A8SDKkngdIBhlqURXcgi6Y3fSQHX3Z9I7+MlPZjpV81JVnRrguDWtArOEnlc57vkZ0EU6P5D11nLgMqGLnAQrvRTAq/K44HNS5F/XgRvl2/r/+yADHgkPMzmf1YeK/1Remjy297anu/laT6b2UaAH7p0+9H7Phbv8R9Y7cPqmnyfKF4TfnBy371ahWiVui+yzjvNxNfO5BFfrrgHcN7Zj3bMQ10qzfXX7uDEx3JAYru8s9XxTcCV1AtyvfP/utoWzFcFdK/8G6rV3VNoZfdODXibvDvtcZr5210nW+09zYzFluHbXSV4abiymDFeaaWy+3/n+rA9R7D9QmN3ExKUWu0tC6sRD0KwAVxU/94f4BhOzq4Vivge4J510zNoAyJKMbg==
</data>
</layer>
<layer id="3" name="Walls" width="30" height="30">
<properties>
<property name="spriteLayer" type="bool" value="true"/>
</properties>
<data encoding="base64" compression="zlib">
eJxjYBgFo4D2YAsLA4M4FfE2FuLsDWTFLl6gSRxfXouBQUGLsHmE7F3CTZw+GLAG2mlDBXthQE8bwf6kjUoTY14VL241lbzEu49YQKl/R7q9X4Fx+42E+CVXnbEOA4OJDuluoEU463FSz7zBHr/Dwd4qpHIDVBbpI5VLhkCsqw1hw8piEA3i66Cpg7GR7S3HU14R6z5SALJ5FVjshomRYq8gjnyFy1584AMr8XUqMXX1JyqGH8wP1I4TGKjEEh99moTtxaaPGgDZ3hxN/GppZe8oGAXYAAB7/jCB
</data>
</layer>
<layer id="5" name="Overlay" width="30" height="30">
<data encoding="base64" compression="zlib">
eJxjYBhYMIuXgWE2DfEcXuz2WvDR1l9WOMwftXdw2dvKw8CgC2WfgvLpYS8IXNNGpellLzlgKNqrqcnAoKVJWIwSe3XwmGGuAVQPxJYauNXoovGJtRc9yYgDHSIBdUww0L4QIA6F2nsTqPgWmoZTZNqriqM8FcUXEEgAPX9hs3eX9uBOV/SwF1+9CKvTiFFDqr3IZREuNinqBns4j9o7au9QtvcaUPw6kRgZEKvnBo39NQoGFwAAZ+tPHw==
</data>
</layer>
<objectgroup id="4" name="Objects">
<object id="38" template="../obj/entry_up.tx" x="219" y="383" width="28" height="16"/>
<object id="41" template="../obj/shop.tx" x="97" y="305">
<properties>
<property name="commonShopList" value="White,White,Enchantment4White,Creature2White,Instant4White"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,RWG,RWU,RWB,UWG,UWB,GWB"/>
<property name="rareShopList" value="Land4White,Azorius,Boros,Selesnya,Orzhov,Vehicle,Colorless"/>
<property name="uncommonShopList" value="Artifact,Knight4White,Bird4White,Soldier4White,Angel,Sliver2White,Spirit4White,Wand,Equip,Multicolor"/>
</properties>
</object>
<object id="56" template="../obj/shop.tx" x="208" y="144">
<properties>
<property name="commonShopList" value="White,White,Enchantment4White,Creature2White,Instant4White"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,RWG,RWU,RWB,UWG,UWB,GWB"/>
<property name="rareShopList" value="Land4White,Azorius,Boros,Selesnya,Orzhov,Vehicle,Colorless"/>
<property name="uncommonShopList" value="Artifact,Knight4White,Bird4White,Soldier4White,Angel,Sliver2White,Spirit4White,Wand,Equip,Multicolor"/>
</properties>
</object>
<object id="57" template="../obj/shop.tx" x="240" y="144">
<properties>
<property name="commonShopList" value="White,White,Enchantment4White,Creature2White,Instant4White"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,RWG,RWU,RWB,UWG,UWB,GWB"/>
<property name="rareShopList" value="Land4White,Azorius,Boros,Selesnya,Orzhov,Vehicle,Colorless"/>
<property name="uncommonShopList" value="Artifact,Knight4White,Bird4White,Soldier4White,Angel,Sliver2White,Spirit4White,Wand,Equip,Multicolor"/>
</properties>
</object>
<object id="43" template="../obj/shop.tx" x="352" y="306">
<properties>
<property name="commonShopList" value="White1, White2, White3, White4, White5"/>
<property name="mythicShopList" value=""/>
<property name="rareShopList" value=""/>
<property name="uncommonShopList" value=""/>
</properties>
</object>
<object id="47" template="../obj/inn.tx" x="224" y="211"/>
<object id="48" template="../obj/shop.tx" x="290" y="225">
<properties>
<property name="commonShopList" value="Plains"/>
<property name="noRestock" type="bool" value="true"/>
<property name="signXOffset" type="float" value="-32"/>
<property name="signYOffset" type="float" value="0"/>
</properties>
</object>
<object id="49" template="../obj/shop.tx" x="304" y="306">
<properties>
<property name="commonShopList" value="White,White,Enchantment4White,Creature2White,Instant4White"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,RWG,RWU,RWB,UWG,UWB,GWB"/>
<property name="rareShopList" value="Land4White,Azorius,Boros,Selesnya,Orzhov,Vehicle,Colorless"/>
<property name="uncommonShopList" value="Artifact,Knight4White,Bird4White,Soldier4White,Angel,Sliver2White,Spirit4White,Wand,Equip,Multicolor"/>
</properties>
</object>
<object id="50" template="../obj/shop.tx" x="256" y="306">
<properties>
<property name="commonShopList" value="White,White,Enchantment4White,Creature2White,Instant4White"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,RWG,RWU,RWB,UWG,UWB,GWB"/>
<property name="rareShopList" value="Land4White,Azorius,Boros,Selesnya,Orzhov,Vehicle,Colorless"/>
<property name="uncommonShopList" value="Artifact,Knight4White,Bird4White,Soldier4White,Angel,Sliver2White,Spirit4White,Wand,Equip,Multicolor"/>
</properties>
</object>
<object id="51" template="../obj/shop.tx" x="192" y="306">
<properties>
<property name="commonShopList" value="Everything"/>
<property name="mythicShopList" value=""/>
<property name="rareShopList" value=""/>
<property name="uncommonShopList" value=""/>
</properties>
</object>
<object id="52" template="../obj/shop.tx" x="144" y="306">
<properties>
<property name="commonShopList" value="White,White,Enchantment4White,Creature2White,Instant4White"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,RWG,RWU,RWB,UWG,UWB,GWB"/>
<property name="rareShopList" value="Land4White,Azorius,Boros,Selesnya,Orzhov,Vehicle,Colorless"/>
<property name="uncommonShopList" value="Artifact,Knight4White,Bird4White,Soldier4White,Angel,Sliver2White,Spirit4White,Wand,Equip,Multicolor"/>
</properties>
</object>
<object id="53" template="../obj/spellsmith.tx" x="157" y="225"/>
<object id="54" template="../obj/enemy.tx" x="16" y="240">
<properties>
<property name="dialog">[{
&quot;text&quot;:&quot;I am a big gate. Greetings.&quot;,
&quot;options&quot;:[ { &quot;name&quot;:&quot;Okay...&quot; } ],
&quot;action&quot;: [ { &quot;setMapFlag&quot;: {&quot;key&quot;: &quot;gate&quot;, &quot;val&quot;: 1} } ]
}]</property>
<property name="enemy" value="White Wiz1"/>
</properties>
</object>
<object id="55" template="../obj/shop.tx" x="160" y="151">
<properties>
<property name="commonShopList" value="Plains"/>
<property name="noRestock" type="bool" value="true"/>
<property name="signYOffset" type="float" value="0"/>
</properties>
</object>
<object id="58" template="../obj/quest.tx" x="328" y="130">
<properties>
<property name="questtype" value="plains_town_generic"/>
</properties>
</object>
<object id="59" template="../obj/shardtrader.tx" x="128" y="130"/>
</objectgroup>
</map>

View File

@@ -0,0 +1,129 @@
<?xml version="1.0" encoding="UTF-8"?>
<map version="1.9" tiledversion="1.9.2" orientation="orthogonal" renderorder="right-down" width="30" height="30" tilewidth="16" tileheight="16" infinite="0" nextlayerid="6" nextobjectid="61">
<editorsettings>
<export target="wastetown..tmx" format="tmx"/>
</editorsettings>
<tileset firstgid="1" source="../tileset/main.tsx"/>
<tileset firstgid="10113" source="../tileset/buildings.tsx"/>
<layer id="1" name="Background" width="30" height="30">
<data encoding="base64" compression="zlib">
eJzr5GRg6Bxk+AUHBJOqz28QuH0UY8dN3NTHg9He5xy0tbcNDcPs1OCiv72tSOyRYi+t0xU2e5W5aG+vChcqHuh8NGovde19zoGoV7HVrbSyF1QuoadnUuwlx20wsymxl5L4HUn2YiuvKGkbEKuHWvYi0/SydxSP4sGKARuK+bI=
</data>
</layer>
<layer id="2" name="Ground" width="30" height="30">
<data encoding="base64" compression="zlib">
eJztlUFOAkEQRb8xRGZwuAcHwKg7QjScg4UbQA6A8SDKkngdIBhlqURXcgi6Y3fSQHX3Z9I7+MlPZjpV81JVnRrguDWtArOEnlc57vkZ0EU6P5D11nLgMqGLnAQrvRTAq/K44HNS5F/XgRvl2/r/+yADHgkPMzmf1YeK/1Remjy297anu/laT6b2UaAH7p0+9H7Phbv8R9Y7cPqmnyfKF4TfnBy371ahWiVui+yzjvNxNfO5BFfrrgHcN7Zj3bMQ10qzfXX7uDEx3JAYru8s9XxTcCV1AtyvfP/utoWzFcFdK/8G6rV3VNoZfdODXibvDvtcZr5210nW+09zYzFluHbXSV4abiymDFeaaWy+3/n+rA9R7D9QmN3ExKUWu0tC6sRD0KwAVxU/94f4BhOzq4Vivge4J510zNoAyJKMbg==
</data>
</layer>
<layer id="3" name="Walls" width="30" height="30">
<properties>
<property name="spriteLayer" type="bool" value="true"/>
</properties>
<data encoding="base64" compression="zlib">
eJxjYBgFo4D2YAsLA4M4FfE2FuLsDWTFLl6gicp/rYFdXl6LgUFBi7B5hOxdwk2cPhiwBtppQwV7YUBPG8H+pI1KE2NeFS9uNZW8xLuPWECpf0e6vV+BcfuNhPglV52xDgODiQ7pbqBFOOtxUs+8wR6/w8HeKqRy4xOW8gnGhpXFIBqfOmR7y/GUV8S6jxSAbF4FFrthYqTYK4gjX+GyFx/4wEp8nUpMXf2JiuEH8wO14wQGKrHER58mYXux6aMGQLY3RxO/WlrZOwpGATYAADv+Lzo=
</data>
</layer>
<layer id="5" name="Overlay" width="30" height="30">
<data encoding="base64" compression="zlib">
eJxjYBhYMIuXgWE2DfEcXuz2WvDR1l9WOMwftRc/OK9BX3tbeRgYdKHsU1A+PewFgWvaqDS97CUHDEV7NTUZGLQ0CYtRYq8OHjPMgWnZAogt8aRpXTQ+sfaiJxlxoEMkoI4JBtoXAsShUHtvAhXfQtNwikx7VXGUp6L4AgIJoOcvbPbu0h7c6Yoe9uKrF2F1GjFqSLUXuSzCxSZF3WAP51F7R+0dyvZeA4pfJxIjA2L13KCxv0bB4AIAgOhQFg==
</data>
</layer>
<objectgroup id="4" name="Objects">
<object id="38" template="../obj/entry_up.tx" x="219" y="383" width="28" height="16"/>
<object id="41" template="../obj/shop.tx" x="97" y="305">
<properties>
<property name="commonShopList" value="White,White,Enchantment4White,Creature2White,Instant4White"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,Vehicle,Artifact,Equip,Wand,Legend4White"/>
<property name="rareShopList" value="RWG,RWU,RWB,UWG,UWB,GWB,Land4White,Creature6White"/>
<property name="uncommonShopList" value="Azorius,Boros,Selesnya,Orzhov,Azorius,Boros,Selesnya,Orzhov,Land"/>
</properties>
</object>
<object id="56" template="../obj/shop.tx" x="208" y="144">
<properties>
<property name="commonShopList" value="White,White,Enchantment4White,Creature2White,Instant4White"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,Vehicle,Artifact,Equip,Wand,Legend4White"/>
<property name="rareShopList" value="RWG,RWU,RWB,UWG,UWB,GWB,Land4White,Creature6White"/>
<property name="uncommonShopList" value="Azorius,Boros,Selesnya,Orzhov,Azorius,Boros,Selesnya,Orzhov,Land"/>
</properties>
</object>
<object id="57" template="../obj/shop.tx" x="240" y="144">
<properties>
<property name="commonShopList" value="White,White,Enchantment4White,Creature2White,Instant4White"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,Vehicle,Artifact,Equip,Wand,Legend4White"/>
<property name="rareShopList" value="RWG,RWU,RWB,UWG,UWB,GWB,Land4White,Creature6White"/>
<property name="uncommonShopList" value="Azorius,Boros,Selesnya,Orzhov,Azorius,Boros,Selesnya,Orzhov,Land"/>
</properties>
</object>
<object id="43" template="../obj/shop.tx" x="352" y="306">
<properties>
<property name="commonShopList" value="White,White,Enchantment4White,Creature2White,Instant4White"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,Vehicle,Artifact,Equip,Wand,Legend4White"/>
<property name="rareShopList" value="RWG,RWU,RWB,UWG,UWB,GWB,Land4White,Creature6White"/>
<property name="uncommonShopList" value="Azorius,Boros,Selesnya,Orzhov,Azorius,Boros,Selesnya,Orzhov,Land"/>
</properties>
</object>
<object id="47" template="../obj/inn.tx" x="224" y="211"/>
<object id="48" template="../obj/shop.tx" x="290" y="225">
<properties>
<property name="commonShopList" value="Plains"/>
<property name="noRestock" type="bool" value="true"/>
<property name="signXOffset" type="float" value="-32"/>
<property name="signYOffset" type="float" value="0"/>
</properties>
</object>
<object id="50" template="../obj/shop.tx" x="256" y="306">
<properties>
<property name="commonShopList" value="White,White,Enchantment4White,Creature2White,Instant4White"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,Vehicle,Artifact,Equip,Wand,Legend4White"/>
<property name="rareShopList" value="RWG,RWU,RWB,UWG,UWB,GWB,Land4White,Creature6White"/>
<property name="uncommonShopList" value="Azorius,Boros,Selesnya,Orzhov,Azorius,Boros,Selesnya,Orzhov,Land"/>
</properties>
</object>
<object id="51" template="../obj/shop.tx" x="192" y="306">
<properties>
<property name="commonShopList" value="White,White,Enchantment4White,Creature2White,Instant4White"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,Vehicle,Artifact,Equip,Wand,Legend4White"/>
<property name="rareShopList" value="RWG,RWU,RWB,UWG,UWB,GWB,Land4White,Creature6White"/>
<property name="uncommonShopList" value="Azorius,Boros,Selesnya,Orzhov,Azorius,Boros,Selesnya,Orzhov,Land"/>
</properties>
</object>
<object id="52" template="../obj/shop.tx" x="144" y="306">
<properties>
<property name="commonShopList" value="White,White,Enchantment4White,Creature2White,Instant4White"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,Vehicle,Artifact,Equip,Wand,Legend4White"/>
<property name="rareShopList" value="RWG,RWU,RWB,UWG,UWB,GWB,Land4White,Creature6White"/>
<property name="uncommonShopList" value="Azorius,Boros,Selesnya,Orzhov,Azorius,Boros,Selesnya,Orzhov,Land"/>
</properties>
</object>
<object id="53" template="../obj/spellsmith.tx" x="157" y="225"/>
<object id="54" template="../obj/enemy.tx" x="16" y="240">
<properties>
<property name="dialog">[{
&quot;text&quot;:&quot;I am a big gate. Greetings.&quot;,
&quot;options&quot;:[ { &quot;name&quot;:&quot;Okay...&quot; } ],
&quot;action&quot;: [ { &quot;setMapFlag&quot;: {&quot;key&quot;: &quot;gate&quot;, &quot;val&quot;: 1} } ]
}]</property>
<property name="enemy" value="White Wiz1"/>
</properties>
</object>
<object id="55" template="../obj/shop.tx" x="160" y="151">
<properties>
<property name="commonShopList" value="Plains"/>
<property name="noRestock" type="bool" value="true"/>
<property name="signYOffset" type="float" value="0"/>
</properties>
</object>
<object id="58" template="../obj/quest.tx" x="328" y="130">
<properties>
<property name="questtype" value="plains_town_identity"/>
</properties>
</object>
<object id="59" template="../obj/shardtrader.tx" x="128" y="130"/>
<object id="60" template="../obj/RotatingShop.tx" x="304" y="306">
<properties>
<property name="rotation" value="White1,White2,White3,White4,White5,White6"/>
<property name="signYOffset" type="float" value="-16"/>
</properties>
</object>
</objectgroup>
</map>

View File

@@ -0,0 +1,131 @@
<?xml version="1.0" encoding="UTF-8"?>
<map version="1.9" tiledversion="1.9.2" orientation="orthogonal" renderorder="right-down" width="30" height="30" tilewidth="16" tileheight="16" infinite="0" nextlayerid="6" nextobjectid="60">
<editorsettings>
<export target="wastetown..tmx" format="tmx"/>
</editorsettings>
<tileset firstgid="1" source="../tileset/main.tsx"/>
<tileset firstgid="10113" source="../tileset/buildings.tsx"/>
<layer id="1" name="Background" width="30" height="30">
<data encoding="base64" compression="zlib">
eJzr5GRg6Bxk+AUHBJOqz28QuH0UY8dN3NTHg9He5xy0tbcNDcPs1OCiv72tSOyRYi+t0xU2e5W5aG+vChcqHuh8NGovde19zoGoV7HVrbSyF1QuoadnUuwlx20wsymxl5L4HUn2YiuvKGkbEKuHWvYi0/SydxSP4sGKARuK+bI=
</data>
</layer>
<layer id="2" name="Ground" width="30" height="30">
<data encoding="base64" compression="zlib">
eJztlUFOAkEQRb8xRGZwuAcHwKg7QjScg4UbQA6A8SDKkngdIBhlqURXcgi6Y3fSQHX3Z9I7+MlPZjpV81JVnRrguDWtArOEnlc57vkZ0EU6P5D11nLgMqGLnAQrvRTAq/K44HNS5F/XgRvl2/r/+yADHgkPMzmf1YeK/1Remjy297anu/laT6b2UaAH7p0+9H7Phbv8R9Y7cPqmnyfKF4TfnBy371ahWiVui+yzjvNxNfO5BFfrrgHcN7Zj3bMQ10qzfXX7uDEx3JAYru8s9XxTcCV1AtyvfP/utoWzFcFdK/8G6rV3VNoZfdODXibvDvtcZr5210nW+09zYzFluHbXSV4abiymDFeaaWy+3/n+rA9R7D9QmN3ExKUWu0tC6sRD0KwAVxU/94f4BhOzq4Vivge4J510zNoAyJKMbg==
</data>
</layer>
<layer id="3" name="Walls" width="30" height="30">
<properties>
<property name="spriteLayer" type="bool" value="true"/>
</properties>
<data encoding="base64" compression="zlib">
eJxjYBgFo4D2YAsLA4M4FfE2FuLsDWTFLl6gSRqfkHmE1C3hJk4fDFhrMTDYaFFuLwzoaSPYn7RRaWLMq+LFraaSF6GOiZmwmcQASv1LKvjHNDD2kmoeseq+AuP2GwnxS646Yx0GBhMd0t1Aqr2MRKQrPU7ccv/JjF+YPkrBcElX1LS3Cqnc+ISlfIKxYWUxiManDtnecjzlFbHuIwUgm1eBxW6YGCn2CuLIV7jsxQc+sBJfpxJTV3+iYvjB/EDtOIGBSizx0adJ2F5s+qgBkO3NwdHOoLW9o2AUYAMAMPkxOA==
</data>
</layer>
<layer id="5" name="Overlay" width="30" height="30">
<data encoding="base64" compression="zlib">
eJxjYBhYMIuXgWE2DfEcXuz2WvDR1l9WOMwftXdw2dvKw8CgC2WfgvKRgbwWA4OCFvXtBYFr2qg0MWCohvNA2KupycCgpUlYjBJ7dfCYYa4BVA/Elhq41eii8Ym1Fz3JiAMdIgF1TDDQvhAgDoXaexOo+BaahlNk2quKozwVxRcQSAA9f2Gzd5f24E5X9LAXX70Iq9OIUUOqvchlES42KeoGeziP2jtq71C29xpQ/DqRGBkQq+cGjf01CgYXAACumU+y
</data>
</layer>
<objectgroup id="4" name="Objects">
<object id="38" template="../obj/entry_up.tx" x="219" y="383" width="28" height="16"/>
<object id="41" template="../obj/shop.tx" x="97" y="305">
<properties>
<property name="commonShopList" value="Knight4White,Bird4White,Soldier4White,Angel,Sliver2White,Spirit4White"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,Vehicle,Artifact,Equip,Wand,Legend4White"/>
<property name="rareShopList" value="Azorius,Boros,Selesnya,Orzhov,Creature6White,Multicolor,Land4White"/>
<property name="uncommonShopList" value="Creature2White,Creature,White"/>
</properties>
</object>
<object id="56" template="../obj/shop.tx" x="208" y="144">
<properties>
<property name="commonShopList" value="Knight4White,Bird4White,Soldier4White,Angel,Sliver2White,Spirit4White"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,Vehicle,Artifact,Equip,Wand,Legend4White"/>
<property name="rareShopList" value="Azorius,Boros,Selesnya,Orzhov,Creature6White,Multicolor,Land4White"/>
<property name="uncommonShopList" value="Creature2White,Creature,White"/>
</properties>
</object>
<object id="57" template="../obj/shop.tx" x="240" y="144">
<properties>
<property name="commonShopList" value="Knight4White,Bird4White,Soldier4White,Angel,Sliver2White,Spirit4White"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,Vehicle,Artifact,Equip,Wand,Legend4White"/>
<property name="rareShopList" value="Azorius,Boros,Selesnya,Orzhov,Creature6White,Multicolor,Land4White"/>
<property name="uncommonShopList" value="Creature2White,Creature,White"/>
</properties>
</object>
<object id="43" template="../obj/shop.tx" x="352" y="306">
<properties>
<property name="commonShopList" value="Knight4White,Bird4White,Soldier4White,Angel,Sliver2White,Spirit4White"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,Vehicle,Artifact,Equip,Wand,Legend4White"/>
<property name="rareShopList" value="Azorius,Boros,Selesnya,Orzhov,Creature6White,Multicolor,Land4White"/>
<property name="uncommonShopList" value="Creature2White,Creature,White"/>
</properties>
</object>
<object id="47" template="../obj/inn.tx" x="224" y="211"/>
<object id="48" template="../obj/shop.tx" x="290" y="225">
<properties>
<property name="commonShopList" value="Plains"/>
<property name="noRestock" type="bool" value="true"/>
<property name="signXOffset" type="float" value="-32"/>
<property name="signYOffset" type="float" value="0"/>
</properties>
</object>
<object id="49" template="../obj/shop.tx" x="304" y="306">
<properties>
<property name="commonShopList" value="Knight4White,Bird4White,Soldier4White,Angel,Sliver2White,Spirit4White"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,Vehicle,Artifact,Equip,Wand,Legend4White"/>
<property name="rareShopList" value="Azorius,Boros,Selesnya,Orzhov,Creature6White,Multicolor,Land4White"/>
<property name="uncommonShopList" value="Creature2White,Creature,White"/>
</properties>
</object>
<object id="50" template="../obj/shop.tx" x="256" y="306">
<properties>
<property name="commonShopList" value="Knight4White,Bird4White,Soldier4White,Angel,Sliver2White,Spirit4White"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,Vehicle,Artifact,Equip,Wand,Legend4White"/>
<property name="rareShopList" value="Azorius,Boros,Selesnya,Orzhov,Creature6White,Multicolor,Land4White"/>
<property name="uncommonShopList" value="Creature2White,Creature,White"/>
</properties>
</object>
<object id="51" template="../obj/shop.tx" x="192" y="306">
<properties>
<property name="commonShopList" value="Knight4White,Bird4White,Soldier4White,Angel,Sliver2White,Spirit4White"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,Vehicle,Artifact,Equip,Wand,Legend4White"/>
<property name="rareShopList" value="Azorius,Boros,Selesnya,Orzhov,Creature6White,Multicolor,Land4White"/>
<property name="uncommonShopList" value="Creature2White,Creature,White"/>
</properties>
</object>
<object id="52" template="../obj/shop.tx" x="144" y="306">
<properties>
<property name="commonShopList" value="Knight4White,Bird4White,Soldier4White,Angel,Sliver2White,Spirit4White"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,Vehicle,Artifact,Equip,Wand,Legend4White"/>
<property name="rareShopList" value="Azorius,Boros,Selesnya,Orzhov,Creature6White,Multicolor,Land4White"/>
<property name="uncommonShopList" value="Creature2White,Creature,White"/>
</properties>
</object>
<object id="53" template="../obj/spellsmith.tx" x="157" y="225"/>
<object id="54" template="../obj/enemy.tx" x="16" y="240">
<properties>
<property name="dialog">[{
&quot;text&quot;:&quot;I am a big gate. Greetings.&quot;,
&quot;options&quot;:[ { &quot;name&quot;:&quot;Okay...&quot; } ],
&quot;action&quot;: [ { &quot;setMapFlag&quot;: {&quot;key&quot;: &quot;gate&quot;, &quot;val&quot;: 1} } ]
}]</property>
<property name="enemy" value="White Wiz1"/>
</properties>
</object>
<object id="55" template="../obj/shop.tx" x="160" y="151">
<properties>
<property name="commonShopList" value="Plains"/>
<property name="noRestock" type="bool" value="true"/>
<property name="signYOffset" type="float" value="0"/>
</properties>
</object>
<object id="58" template="../obj/shardtrader.tx" x="128" y="130"/>
<object id="59" template="../obj/quest.tx" x="328" y="130">
<properties>
<property name="questtype" value="plains_town_trobal"/>
</properties>
</object>
</objectgroup>
</map>

View File

@@ -0,0 +1,113 @@
<?xml version="1.0" encoding="UTF-8"?>
<map version="1.9" tiledversion="1.9.2" orientation="orthogonal" renderorder="right-down" width="30" height="17" tilewidth="16" tileheight="16" infinite="0" nextlayerid="6" nextobjectid="54">
<editorsettings>
<export target="wastetown..tmx" format="tmx"/>
</editorsettings>
<tileset firstgid="1" source="../tileset/main.tsx"/>
<tileset firstgid="10113" source="../tileset/buildings.tsx"/>
<layer id="1" name="Background" width="30" height="17">
<data encoding="base64" compression="zlib">
eJyL4GZgiBjFo3gUj+JRPIpH8YjAAH23xTs=
</data>
</layer>
<layer id="2" name="Ground" width="30" height="17">
<data encoding="base64" compression="zlib">
eJydVUtSg0AQ7QUkBCsnMH42uo0eQC8UPcKQFPfws9Rz6BY9gpp4D+0m82qaZkBwqrpggOnX7/VjppgRFT5+JkQ0DXMdxznRV0b1OOT776z9zZafHfG7D76e5vE8D5z/0WDc8fx+2swj+eW68zkxBHuhYmcwbV3IdcVxnTWfxWp3fL+eUWssE6LLpP1c6pF1pcGTHKXKjzpLo8fGY5UKV7AufOTck4NJmCNQC/SQ3KjFzYJ2de55s2dbpSnWLD3WW9IfUktMB8vBaoQa7aj+wOvDFl7gVms73/sAPo31UOs6FBfYWncZZynReRq4Sy8t/lBdY/HM627SfdymIecL37/6ufP/pnh/o7Qfo6uN947+CrdPz88pD68V7xXX9fRPvrq/0kvtH/Gu8HPmfx3r37GcoS9qsP6ufJ/GcEZfZY3FFR1P8rB/dnmr8jUP0Rt48FAV+Zec2ZeAC2+B90rl6cMWTO1ZfI864CV7Tuh+Fx37CTgMwYSeMd9aXJwhen+0AxzQvxgmOCw8D2gYO1/1t12YMe5dfo3h2/NV6vgFXcroBg==
</data>
</layer>
<layer id="3" name="Foreground" width="30" height="17">
<properties>
<property name="spriteLayer" type="bool" value="true"/>
</properties>
<data encoding="base64" compression="zlib">
eJxjYKAcNPJSJk9tQG/7KAUNQPc6MDEwLGYkDzsxkW5nPTSM7kL1emqhYnxgETeqXmIBsh/rmBH2wgCI/VmdgeGLOm4zdLRJtxek3hpotg0ef+mzE2cOsQAUpzD1+Mw+iyRnrMPAYKKDySbHvzCzcZmJbK8+DjYl9uIyE9nec0D2ZDYIzuOg3N4coBm5QGzEjuDD2DB7dbVR3QACsHAh116YfpB9MP9cQLPXgB3hR1j+gYULufZiS1dn0eyFuckQS1hTEs4gc0BhC/IXiEa3F9k96GUbLO+Tai8MgOwH+QEW3yC/5SKFPcyPpPoPHdQw4y9zsfmNFP/VkVFP3YXaS6nfAKsYWFc=
</data>
</layer>
<layer id="5" name="AboveSprites" width="30" height="17">
<data encoding="base64" compression="zlib">
eJxjYBg8oIZ3oF0wCmDgujoDww116psrr8XAoKAFYTcN0vgW12FgkNDBZNPKTD1Oys0fDoDSsKZWXCGDlkGSRgeLO4gB9VRwK8y/zUPI30MJAACVSQnZ
</data>
</layer>
<objectgroup id="4" name="Objects">
<object id="38" template="../obj/entry_up.tx" x="208" y="272"/>
<object id="41" template="../obj/shop.tx" x="129" y="146">
<properties>
<property name="commonShopList" value="Black,Black,Enchantment4Black,Creature2Black,Instant4Black"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,RWB,RUB,RGB,UWB,UGB,UWB "/>
<property name="rareShopList" value="Land4Black,Dimir,Rakdos,Orzhov,Golgari,Vehicle,Colorless"/>
<property name="uncommonShopList" value="Artifact,Vampire,Zombie,Skeleton,Demon,Knight4Black,Rogue4Black,Sliver2Black,Wand,Equip,Multicolor"/>
</properties>
</object>
<object id="42" template="../obj/shop.tx" x="177" y="145">
<properties>
<property name="commonShopList" value="Black,Black,Enchantment4Black,Creature2Black,Instant4Black"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,RWB,RUB,RGB,UWB,UGB,UWB "/>
<property name="rareShopList" value="Land4Black,Dimir,Rakdos,Orzhov,Golgari,Vehicle,Colorless"/>
<property name="uncommonShopList" value="Artifact,Vampire,Zombie,Skeleton,Demon,Knight4Black,Rogue4Black,Sliver2Black,Wand,Equip,Multicolor"/>
</properties>
</object>
<object id="43" template="../obj/shop.tx" x="321" y="129">
<properties>
<property name="commonShopList" value="Black,Black,Enchantment4Black,Creature2Black,Instant4Black"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,RWB,RUB,RGB,UWB,UGB,UWB "/>
<property name="rareShopList" value="Land4Black,Dimir,Rakdos,Orzhov,Golgari,Vehicle,Colorless"/>
<property name="uncommonShopList" value="Artifact,Vampire,Zombie,Skeleton,Demon,Knight4Black,Rogue4Black,Sliver2Black,Wand,Equip,Multicolor"/>
</properties>
</object>
<object id="44" template="../obj/shop.tx" x="114" y="194">
<properties>
<property name="commonShopList" value="Black,Black,Enchantment4Black,Creature2Black,Instant4Black"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,RWB,RUB,RGB,UWB,UGB,UWB "/>
<property name="rareShopList" value="Land4Black,Dimir,Rakdos,Orzhov,Golgari,Vehicle,Colorless"/>
<property name="uncommonShopList" value="Artifact,Vampire,Zombie,Skeleton,Demon,Knight4Black,Rogue4Black,Sliver2Black,Wand,Equip,Multicolor"/>
</properties>
</object>
<object id="45" template="../obj/shop.tx" x="273" y="130">
<properties>
<property name="commonShopList" value="Black,Black,Enchantment4Black,Creature2Black,Instant4Black"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,RWB,RUB,RGB,UWB,UGB,UWB "/>
<property name="rareShopList" value="Land4Black,Dimir,Rakdos,Orzhov,Golgari,Vehicle,Colorless"/>
<property name="uncommonShopList" value="Artifact,Vampire,Zombie,Skeleton,Demon,Knight4Black,Rogue4Black,Sliver2Black,Wand,Equip,Multicolor"/>
</properties>
</object>
<object id="46" template="../obj/shop.tx" x="337" y="177">
<properties>
<property name="commonShopList" value="Black,Black,Enchantment4Black,Creature2Black,Instant4Black"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,RWB,RUB,RGB,UWB,UGB,UWB "/>
<property name="rareShopList" value="Land4Black,Dimir,Rakdos,Orzhov,Golgari,Vehicle,Colorless"/>
<property name="uncommonShopList" value="Artifact,Vampire,Zombie,Skeleton,Demon,Knight4Black,Rogue4Black,Sliver2Black,Wand,Equip,Multicolor"/>
</properties>
</object>
<object id="47" template="../obj/inn.tx" x="230" y="98"/>
<object id="48" template="../obj/shop.tx" x="336" y="80">
<properties>
<property name="commonShopList" value="Swamp"/>
<property name="noRestock" type="bool" value="true"/>
</properties>
</object>
<object id="50" template="../obj/shardtrader.tx" x="304" y="194"/>
<object id="51" template="../obj/quest.tx" x="114" y="114">
<properties>
<property name="questtype" value="swamp_town_generic"/>
</properties>
</object>
<object id="52" template="../obj/shop.tx" x="201" y="88">
<properties>
<property name="commonShopList" value="Black,Black,Enchantment4Black,Creature2Black,Instant4Black"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,RWB,RUB,RGB,UWB,UGB,UWB "/>
<property name="rareShopList" value="Land4Black,Dimir,Rakdos,Orzhov,Golgari,Vehicle,Colorless"/>
<property name="signXOffset" type="float" value="-4"/>
<property name="uncommonShopList" value="Artifact,Vampire,Zombie,Skeleton,Demon,Knight4Black,Rogue4Black,Sliver2Black,Wand,Equip,Multicolor"/>
</properties>
</object>
<object id="53" template="../obj/shop.tx" x="167" y="88">
<properties>
<property name="commonShopList" value="Black,Black,Enchantment4Black,Creature2Black,Instant4Black"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,RWB,RUB,RGB,UWB,UGB,UWB "/>
<property name="rareShopList" value="Land4Black,Dimir,Rakdos,Orzhov,Golgari,Vehicle,Colorless"/>
<property name="signXOffset" type="float" value="4"/>
<property name="uncommonShopList" value="Artifact,Vampire,Zombie,Skeleton,Demon,Knight4Black,Rogue4Black,Sliver2Black,Wand,Equip,Multicolor"/>
</properties>
</object>
</objectgroup>
</map>

View File

@@ -0,0 +1,111 @@
<?xml version="1.0" encoding="UTF-8"?>
<map version="1.9" tiledversion="1.9.2" orientation="orthogonal" renderorder="right-down" width="30" height="17" tilewidth="16" tileheight="16" infinite="0" nextlayerid="6" nextobjectid="54">
<editorsettings>
<export target="wastetown..tmx" format="tmx"/>
</editorsettings>
<tileset firstgid="1" source="../tileset/main.tsx"/>
<tileset firstgid="10113" source="../tileset/buildings.tsx"/>
<layer id="1" name="Background" width="30" height="17">
<data encoding="base64" compression="zlib">
eJyL4GZgiBjFo3gUj+JRPIpH8YjAAH23xTs=
</data>
</layer>
<layer id="2" name="Ground" width="30" height="17">
<data encoding="base64" compression="zlib">
eJydVUtSg0AQ7QUkBCsnMH42uo0eQC8UPcKQFPfws9Rz6BY9gpp4D+0m82qaZkBwqrpggOnX7/VjppgRFT5+JkQ0DXMdxznRV0b1OOT776z9zZafHfG7D76e5vE8D5z/0WDc8fx+2swj+eW68zkxBHuhYmcwbV3IdcVxnTWfxWp3fL+eUWssE6LLpP1c6pF1pcGTHKXKjzpLo8fGY5UKV7AufOTck4NJmCNQC/SQ3KjFzYJ2de55s2dbpSnWLD3WW9IfUktMB8vBaoQa7aj+wOvDFl7gVms73/sAPo31UOs6FBfYWncZZynReRq4Sy8t/lBdY/HM627SfdymIecL37/6ufP/pnh/o7Qfo6uN947+CrdPz88pD68V7xXX9fRPvrq/0kvtH/Gu8HPmfx3r37GcoS9qsP6ufJ/GcEZfZY3FFR1P8rB/dnmr8jUP0Rt48FAV+Zec2ZeAC2+B90rl6cMWTO1ZfI864CV7Tuh+Fx37CTgMwYSeMd9aXJwhen+0AxzQvxgmOCw8D2gYO1/1t12YMe5dfo3h2/NV6vgFXcroBg==
</data>
</layer>
<layer id="3" name="Foreground" width="30" height="17">
<properties>
<property name="spriteLayer" type="bool" value="true"/>
</properties>
<data encoding="base64" compression="zlib">
eJxjYKAcNPJSJk9tQG/7KAUNQPc6MDEwLGYkDzsxkW5nPTSM7pKhdxE3eXqR/VjHjF3NZ3UGhi/q+M0h1V6QemstBgYbLdxq9NmJM4dYAIpTmHp8Zp9FkjPWYWAw0cFkk+NfmNm4zES2Vx8HmxJ7cZmJbO85IHsyGwTncVBubw7QjFwgNmJH8GHsszjcAAKwcCHXXph+kH0w/1xAs9eAHeFHWP6BhQu59mJLV2fR7IW5yRBLWFMSziBzQGEL8heIRrcX2T3oZRuuvE/IXhgA2Q/yAyy+QX7LRQp7mB/JKduQQQ0z/jIXm99I8V8dGfXUXai9lPoNAFBAVPY=
</data>
</layer>
<layer id="5" name="AboveSprites" width="30" height="17">
<data encoding="base64" compression="zlib">
eJxjYBg8oIZ3oF0w8GAxIyqmF/DUQsXX1RkYbqhT3x55oNkKWhB2Ey/ELmQ3DAYgrsPAIKGDyaaVmXqclJs/HAClYY1L/wUN8s1soaBMekOBvdR0B71BPRXcCvNv8xDy91ACAEHHESc=
</data>
</layer>
<objectgroup id="4" name="Objects">
<object id="38" template="../obj/entry_up.tx" x="208" y="272"/>
<object id="41" template="../obj/shop.tx" x="129" y="146">
<properties>
<property name="commonShopList" value="Black,Black,Enchantment4Black,Creature2Black,Instant4Black"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,Vehicle,Artifact,Equip,Wand,Legend4Black"/>
<property name="rareShopList" value="RWB,RUB,RGB,UWB,UGB,UWB,Land4Black,Creature6Black"/>
<property name="uncommonShopList" value="Dimir,Rakdos,Orzhov,Golgari,Dimir,Rakdos,Orzhov,Golgari,Land"/>
</properties>
</object>
<object id="42" template="../obj/shop.tx" x="177" y="145">
<properties>
<property name="commonShopList" value="Black,Black,Enchantment4Black,Creature2Black,Instant4Black"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,Vehicle,Artifact,Equip,Wand,Legend4Black"/>
<property name="rareShopList" value="RWB,RUB,RGB,UWB,UGB,UWB,Land4Black,Creature6Black"/>
<property name="uncommonShopList" value="Dimir,Rakdos,Orzhov,Golgari,Dimir,Rakdos,Orzhov,Golgari,Land"/>
</properties>
</object>
<object id="43" template="../obj/shop.tx" x="321" y="129">
<properties>
<property name="commonShopList" value="Black,Black,Enchantment4Black,Creature2Black,Instant4Black"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,Vehicle,Artifact,Equip,Wand,Legend4Black"/>
<property name="rareShopList" value="RWB,RUB,RGB,UWB,UGB,UWB,Land4Black,Creature6Black"/>
<property name="uncommonShopList" value="Dimir,Rakdos,Orzhov,Golgari,Dimir,Rakdos,Orzhov,Golgari,Land"/>
</properties>
</object>
<object id="44" template="../obj/shop.tx" x="114" y="194">
<properties>
<property name="commonShopList" value="Black,Black,Enchantment4Black,Creature2Black,Instant4Black"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,Vehicle,Artifact,Equip,Wand,Legend4Black"/>
<property name="rareShopList" value="RWB,RUB,RGB,UWB,UGB,UWB,Land4Black,Creature6Black"/>
<property name="uncommonShopList" value="Dimir,Rakdos,Orzhov,Golgari,Dimir,Rakdos,Orzhov,Golgari,Land"/>
</properties>
</object>
<object id="45" template="../obj/shop.tx" x="273" y="130">
<properties>
<property name="commonShopList" value="Black,Black,Enchantment4Black,Creature2Black,Instant4Black"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,Vehicle,Artifact,Equip,Wand,Legend4Black"/>
<property name="rareShopList" value="RWB,RUB,RGB,UWB,UGB,UWB,Land4Black,Creature6Black"/>
<property name="uncommonShopList" value="Dimir,Rakdos,Orzhov,Golgari,Dimir,Rakdos,Orzhov,Golgari,Land"/>
</properties>
</object>
<object id="46" template="../obj/shop.tx" x="337" y="177">
<properties>
<property name="commonShopList" value="Black,Black,Enchantment4Black,Creature2Black,Instant4Black"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,Vehicle,Artifact,Equip,Wand,Legend4Black"/>
<property name="rareShopList" value="RWB,RUB,RGB,UWB,UGB,UWB,Land4Black,Creature6Black"/>
<property name="uncommonShopList" value="Dimir,Rakdos,Orzhov,Golgari,Dimir,Rakdos,Orzhov,Golgari,Land"/>
</properties>
</object>
<object id="47" template="../obj/inn.tx" x="230" y="98"/>
<object id="48" template="../obj/shop.tx" x="336" y="80">
<properties>
<property name="commonShopList" value="Swamp"/>
<property name="noRestock" type="bool" value="true"/>
</properties>
</object>
<object id="49" template="../obj/quest.tx" x="114" y="114">
<properties>
<property name="questtype" value="swamp_town_identity"/>
</properties>
</object>
<object id="50" template="../obj/shardtrader.tx" x="304" y="194"/>
<object id="51" template="../obj/shop.tx" x="201" y="88">
<properties>
<property name="commonShopList" value="Black,Black,Enchantment4Black,Creature2Black,Instant4Black"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,Vehicle,Artifact,Equip,Wand,Legend4Black"/>
<property name="rareShopList" value="RWB,RUB,RGB,UWB,UGB,UWB,Land4Black,Creature6Black"/>
<property name="signXOffset" type="float" value="-4"/>
<property name="uncommonShopList" value="Dimir,Rakdos,Orzhov,Golgari,Dimir,Rakdos,Orzhov,Golgari,Land"/>
</properties>
</object>
<object id="53" template="../obj/RotatingShop.tx" class="RotatingShop" x="167" y="88">
<properties>
<property name="rotation" value="Black1,Black2,Black3,Black4,Black5,Black6"/>
<property name="signXOffset" type="float" value="4"/>
<property name="signYOffset" type="float" value="-16"/>
</properties>
</object>
</objectgroup>
</map>

View File

@@ -0,0 +1,113 @@
<?xml version="1.0" encoding="UTF-8"?>
<map version="1.9" tiledversion="1.9.2" orientation="orthogonal" renderorder="right-down" width="30" height="17" tilewidth="16" tileheight="16" infinite="0" nextlayerid="6" nextobjectid="53">
<editorsettings>
<export target="wastetown..tmx" format="tmx"/>
</editorsettings>
<tileset firstgid="1" source="../tileset/main.tsx"/>
<tileset firstgid="10113" source="../tileset/buildings.tsx"/>
<layer id="1" name="Background" width="30" height="17">
<data encoding="base64" compression="zlib">
eJyL4GZgiBjFo3gUj+JRPIpH8YjAAH23xTs=
</data>
</layer>
<layer id="2" name="Ground" width="30" height="17">
<data encoding="base64" compression="zlib">
eJydVUtSg0AQ7QUkBCsnMH42uo0eQC8UPcKQFPfws9Rz6BY9gpp4D+0m82qaZkBwqrpggOnX7/VjppgRFT5+JkQ0DXMdxznRV0b1OOT776z9zZafHfG7D76e5vE8D5z/0WDc8fx+2swj+eW68zkxBHuhYmcwbV3IdcVxnTWfxWp3fL+eUWssE6LLpP1c6pF1pcGTHKXKjzpLo8fGY5UKV7AufOTck4NJmCNQC/SQ3KjFzYJ2de55s2dbpSnWLD3WW9IfUktMB8vBaoQa7aj+wOvDFl7gVms73/sAPo31UOs6FBfYWncZZynReRq4Sy8t/lBdY/HM627SfdymIecL37/6ufP/pnh/o7Qfo6uN947+CrdPz88pD68V7xXX9fRPvrq/0kvtH/Gu8HPmfx3r37GcoS9qsP6ufJ/GcEZfZY3FFR1P8rB/dnmr8jUP0Rt48FAV+Zec2ZeAC2+B90rl6cMWTO1ZfI864CV7Tuh+Fx37CTgMwYSeMd9aXJwhen+0AxzQvxgmOCw8D2gYO1/1t12YMe5dfo3h2/NV6vgFXcroBg==
</data>
</layer>
<layer id="3" name="Foreground" width="30" height="17">
<properties>
<property name="spriteLayer" type="bool" value="true"/>
</properties>
<data encoding="base64" compression="zlib">
eJy1lU0KwjAQhacNWEE8R0EK9W+nC3HnXawnkKpn8AZ6nooX6Cl0rWYwQ9K0KU2iD4JTat43b1ojgL9OQ7/7v9Y/eCH7vSfpyPtdhQDXwG2tQ3vmQcyoFHs3o+qqScl/GVT3dpWaMWeSS8L6EQM843YfWy5+f8G9l025hNKom8+7IxufKfXZ5l0o92YJwDyp1y55ydvkqXJTQ+3DNXmq3Buvz73v2vX9uVvukfE1jeQ11YWhBxTNxZVL+5FHee4adxzJjPT7obm4cpveq0LjUk8Tbdb4HrtwX6H0xNliLvzUuQGT1/rZlluepXqfyMcM9LwxW6bMnjLa5tO1Z+1nblM2m3y5w/9UKbi+2T6mSVq2
</data>
</layer>
<layer id="5" name="AboveSprites" width="30" height="17">
<data encoding="base64" compression="zlib">
eJxjYBg8oIZ3oF0wCmDgujoDww116psrr8XAoKAFYTcN0vgW12FgkNDBZNPKTD1Oys0fDoDSsKZWXCGDlkGSRgeLO4gB9VRwK8y/zUPI30MJAACVSQnZ
</data>
</layer>
<objectgroup id="4" name="Objects">
<object id="38" template="../obj/entry_up.tx" x="208" y="272"/>
<object id="41" template="../obj/shop.tx" x="129" y="146">
<properties>
<property name="commonShopList" value="Vampire,Zombie,Skeleton,Demon,Knight4Black,Rogue4Black,Sliver2Black"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,Vehicle,Artifact,Equip,Wand"/>
<property name="rareShopList" value="Dimir,Rakdos,Orzhov,Golgari,Multicolor,Land4Black,Creature6Black"/>
<property name="uncommonShopList" value="Creature2Black,Creature,Black"/>
</properties>
</object>
<object id="42" template="../obj/shop.tx" x="177" y="145">
<properties>
<property name="commonShopList" value="Vampire,Zombie,Skeleton,Demon,Knight4Black,Rogue4Black,Sliver2Black"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,Vehicle,Artifact,Equip,Wand"/>
<property name="rareShopList" value="Dimir,Rakdos,Orzhov,Golgari,Multicolor,Land4Black,Creature6Black"/>
<property name="uncommonShopList" value="Creature2Black,Creature,Black"/>
</properties>
</object>
<object id="43" template="../obj/shop.tx" x="321" y="129">
<properties>
<property name="commonShopList" value="Vampire,Zombie,Skeleton,Demon,Knight4Black,Rogue4Black,Sliver2Black"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,Vehicle,Artifact,Equip,Wand"/>
<property name="rareShopList" value="Dimir,Rakdos,Orzhov,Golgari,Multicolor,Land4Black,Creature6Black"/>
<property name="uncommonShopList" value="Creature2Black,Creature,Black"/>
</properties>
</object>
<object id="44" template="../obj/shop.tx" x="114" y="194">
<properties>
<property name="commonShopList" value="Vampire,Zombie,Skeleton,Demon,Knight4Black,Rogue4Black,Sliver2Black"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,Vehicle,Artifact,Equip,Wand"/>
<property name="rareShopList" value="Dimir,Rakdos,Orzhov,Golgari,Multicolor,Land4Black,Creature6Black"/>
<property name="uncommonShopList" value="Creature2Black,Creature,Black"/>
</properties>
</object>
<object id="45" template="../obj/shop.tx" x="273" y="130">
<properties>
<property name="commonShopList" value="Vampire,Zombie,Skeleton,Demon,Knight4Black,Rogue4Black,Sliver2Black"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,Vehicle,Artifact,Equip,Wand"/>
<property name="rareShopList" value="Dimir,Rakdos,Orzhov,Golgari,Multicolor,Land4Black,Creature6Black"/>
<property name="uncommonShopList" value="Creature2Black,Creature,Black"/>
</properties>
</object>
<object id="46" template="../obj/shop.tx" x="337" y="177">
<properties>
<property name="commonShopList" value="Vampire,Zombie,Skeleton,Demon,Knight4Black,Rogue4Black,Sliver2Black"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,Vehicle,Artifact,Equip,Wand"/>
<property name="rareShopList" value="Dimir,Rakdos,Orzhov,Golgari,Multicolor,Land4Black,Creature6Black"/>
<property name="uncommonShopList" value="Creature2Black,Creature,Black"/>
</properties>
</object>
<object id="47" template="../obj/inn.tx" x="230" y="98"/>
<object id="48" template="../obj/shop.tx" x="336" y="80">
<properties>
<property name="commonShopList" value="Swamp"/>
<property name="noRestock" type="bool" value="true"/>
</properties>
</object>
<object id="49" template="../obj/quest.tx" x="114" y="114">
<properties>
<property name="questtype" value="swamp_town_tribal"/>
</properties>
</object>
<object id="50" template="../obj/shardtrader.tx" x="304" y="194"/>
<object id="51" template="../obj/shop.tx" x="167" y="88">
<properties>
<property name="commonShopList" value="Vampire,Zombie,Skeleton,Demon,Knight4Black,Rogue4Black,Sliver2Black"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,Vehicle,Artifact,Equip,Wand"/>
<property name="rareShopList" value="Dimir,Rakdos,Orzhov,Golgari,Multicolor,Land4Black,Creature6Black"/>
<property name="signXOffset" type="float" value="4"/>
<property name="uncommonShopList" value="Creature2Black,Creature,Black"/>
</properties>
</object>
<object id="52" template="../obj/shop.tx" x="201" y="88">
<properties>
<property name="commonShopList" value="Vampire,Zombie,Skeleton,Demon,Knight4Black,Rogue4Black,Sliver2Black"/>
<property name="mythicShopList" value="Planeswalker,WUBRG,Vehicle,Artifact,Equip,Wand"/>
<property name="rareShopList" value="Dimir,Rakdos,Orzhov,Golgari,Multicolor,Land4Black,Creature6Black"/>
<property name="signXOffset" type="float" value="-4"/>
<property name="uncommonShopList" value="Creature2Black,Creature,Black"/>
</properties>
</object>
</objectgroup>
</map>

View File

@@ -0,0 +1,119 @@
<?xml version="1.0" encoding="UTF-8"?>
<map version="1.9" tiledversion="1.9.2" orientation="orthogonal" renderorder="right-down" width="30" height="30" tilewidth="16" tileheight="16" infinite="0" nextlayerid="6" nextobjectid="64">
<editorsettings>
<export target="wastetown..tmx" format="tmx"/>
</editorsettings>
<tileset firstgid="1" source="../tileset/main.tsx"/>
<tileset firstgid="10113" source="../tileset/buildings.tsx"/>
<layer id="1" name="Background" width="30" height="30">
<data encoding="base64" compression="zlib">
eJzt1LEKACAIBND2fti5L291iLxAU+qG29SnBElvTRiGCc1QQWp0rdXnsdMulV10FmJluFn3VnAR+zXXsrPeN8KP/h883VWfNdPj1pN9boQuXbr/uhNtp9Ws
</data>
</layer>
<layer id="2" name="Ground" width="30" height="30">
<data encoding="base64" compression="zlib">
eJzVl0tOwzAQhg0skB33DIZ1OUNRBIEjcIDCQQpH4AAFCYFyJ5AQIWtWYY1HttWJm9jTxI3ESKO4TuLvn44fk4Vk7DBj7Ej7FLYUjN0Kw5ySe5BtmODn0ui4E/tjQqwL2eZOEbcfq/MPreV5Ym5q3s1su2+tGe+yHSe2x7QStthP1sfE+t0zD3F/jdopYsq48ZjdB+KqhNF41XP12y+ad0zwV+2nsp9bcqOL6+uJ3Ljgxl0brhBjjjRcC/MueIF+QzuP7AeO+0DItZJmPBHQiPXVAfYqa3N/zsLsWBxYXxFgK6sPuJTcXQhafi+FGfctMP9Ky6XEQnnGPVdG5vy+uDFboTnYzBn7nafhhtYvmMvxJyF31Px+WS7O77JDs/LWBOgovL2jtv9Jhfqxu7lb2bXMvb0DzqXYOa9ke406HTkaE69frLOL6c7+XesMhfYDf0x3H+9v/n3/LAQ+lV1aLmVv6zL//KfWOGO564E1x1gu2JA6JxU3xvRrpbHcZjasxkkR7xD7z1z3nbTL9wmVC/Oi6aijwf4AV6hrzg==
</data>
</layer>
<layer id="3" name="Walls" width="30" height="30">
<properties>
<property name="spriteLayer" type="bool" value="true"/>
</properties>
<data encoding="base64" compression="zlib">
eJxjYBgFo4B2YAcLA4M0jfEuFkx7Q1lJd+sUDtLUY7ODHHtJBdS211iHgcFEB5NtpA2hYeFCjr2khik2QK9wNoT610SbcnsnU+BvYuxFjicQsNZiYLDRwtSHK25R2FTwLyWAUnvfs6PShIAGI3Y7vpJgLyXpmhT/Hga61V2TgcEDiPU4MeWJiV9y7KUG2ME2MPYi24GeD2H2EhN/hPKwjjZue4kRI6aMgKVVYgA2O76wkleHklJvf0OyF91PhMIZ3c3kpAtyylpq2EsOIMVeatSd5NhLTUCuvZT6faj5d7DYCwAfmzHo
</data>
</layer>
<layer id="5" name="Overlay" width="30" height="30">
<data encoding="base64" compression="zlib">
eJzt0bERgCAUBNHtQjNI4f/+e4FqDMzUMYaZfdEFly1IWsGRcOZ7a13PTqVD7f8/O+9jBMy4dzTI9v2zryRpZxerjQgF
</data>
</layer>
<objectgroup id="4" name="Objects">
<object id="38" template="../obj/entry_up.tx" x="204" y="368" width="56" height="16"/>
<object id="41" template="../obj/shop.tx" x="256" y="208">
<properties>
<property name="commonShopList" value="Colorless,Colorless,Artifact,Creature2Colorless,Wand,Enchantment,Instant,Creature"/>
<property name="mythicShopList" value="Planeswalker,WUBRG"/>
<property name="rareShopList" value="Land4Colorless,Vehicle,White,Blue,Red,Green,Black"/>
<property name="uncommonShopList" value="Artifact,Land,Assembly,Golem,Sliver,Wall,Equip,Enchantment,Instant,Creature"/>
</properties>
</object>
<object id="55" template="../obj/shop.tx" x="272" y="144">
<properties>
<property name="commonShopList" value="Colorless,Colorless,Artifact,Creature2Colorless,Wand,Enchantment,Instant,Creature"/>
<property name="mythicShopList" value="Planeswalker,WUBRG"/>
<property name="rareShopList" value="Land4Colorless,Vehicle,White,Blue,Red,Green,Black"/>
<property name="uncommonShopList" value="Artifact,Land,Assembly,Golem,Sliver,Wall,Equip,Enchantment,Instant,Creature"/>
</properties>
</object>
<object id="57" template="../obj/shop.tx" x="320" y="144">
<properties>
<property name="commonShopList" value="Colorless,Colorless,Artifact,Creature2Colorless,Wand,Enchantment,Instant,Creature"/>
<property name="mythicShopList" value="Planeswalker,WUBRG"/>
<property name="rareShopList" value="Land4Colorless,Vehicle,White,Blue,Red,Green,Black"/>
<property name="uncommonShopList" value="Artifact,Land,Assembly,Golem,Sliver,Wall,Equip,Enchantment,Instant,Creature"/>
</properties>
</object>
<object id="50" template="../obj/shop.tx" x="304" y="208">
<properties>
<property name="commonShopList" value="Colorless,Colorless,Artifact,Creature2Colorless,Wand,Enchantment,Instant,Creature"/>
<property name="mythicShopList" value="Planeswalker,WUBRG"/>
<property name="rareShopList" value="Land4Colorless,Vehicle,White,Blue,Red,Green,Black"/>
<property name="uncommonShopList" value="Artifact,Land,Assembly,Golem,Sliver,Wall,Equip,Enchantment,Instant,Creature"/>
</properties>
</object>
<object id="51" template="../obj/shop.tx" x="352" y="208">
<properties>
<property name="commonShopList" value="Colorless,Colorless,Artifact,Creature2Colorless,Wand,Enchantment,Instant,Creature"/>
<property name="mythicShopList" value="Planeswalker,WUBRG"/>
<property name="rareShopList" value="Land4Colorless,Vehicle,White,Blue,Red,Green,Black"/>
<property name="uncommonShopList" value="Artifact,Land,Assembly,Golem,Sliver,Wall,Equip,Enchantment,Instant,Creature"/>
</properties>
</object>
<object id="52" template="../obj/shop.tx" x="352" y="272">
<properties>
<property name="commonShopList" value="Colorless,Colorless,Artifact,Creature2Colorless,Wand,Enchantment,Instant,Creature"/>
<property name="mythicShopList" value="Planeswalker,WUBRG"/>
<property name="rareShopList" value="Land4Colorless,Vehicle,White,Blue,Red,Green,Black"/>
<property name="uncommonShopList" value="Artifact,Land,Assembly,Golem,Sliver,Wall,Equip,Enchantment,Instant,Creature"/>
</properties>
</object>
<object id="53" template="../obj/shop.tx" x="304" y="272">
<properties>
<property name="commonShopList" value="Colorless,Colorless,Artifact,Creature2Colorless,Wand,Enchantment,Instant,Creature"/>
<property name="mythicShopList" value="Planeswalker,WUBRG"/>
<property name="rareShopList" value="Land4Colorless,Vehicle,White,Blue,Red,Green,Black"/>
<property name="uncommonShopList" value="Artifact,Land,Assembly,Golem,Sliver,Wall,Equip,Enchantment,Instant,Creature"/>
</properties>
</object>
<object id="54" template="../obj/shop.tx" x="256" y="272">
<properties>
<property name="commonShopList" value="Colorless,Colorless,Artifact,Creature2Colorless,Wand,Enchantment,Instant,Creature"/>
<property name="mythicShopList" value="Planeswalker,WUBRG"/>
<property name="rareShopList" value="Land4Colorless,Vehicle,White,Blue,Red,Green,Black"/>
<property name="uncommonShopList" value="Artifact,Land,Assembly,Golem,Sliver,Wall,Equip,Enchantment,Instant,Creature"/>
</properties>
</object>
<object id="47" template="../obj/inn.tx" x="150" y="273"/>
<object id="48" template="../obj/shop.tx" x="104" y="272">
<properties>
<property name="commonShopList" value="Equipment"/>
<property name="noRestock" type="bool" value="true"/>
</properties>
</object>
<object id="58" template="../obj/shop.tx" x="97" y="209">
<properties>
<property name="commonShopList" value="Colorless,Colorless,Artifact,Creature2Colorless,Wand,Enchantment,Instant,Creature"/>
<property name="mythicShopList" value="Planeswalker,WUBRG"/>
<property name="rareShopList" value="Land4Colorless,Vehicle,White,Blue,Red,Green,Black"/>
<property name="uncommonShopList" value="Artifact,Land,Assembly,Golem,Sliver,Wall,Equip,Enchantment,Instant,Creature"/>
</properties>
</object>
<object id="62" template="../obj/shardtrader.tx" x="400" y="288"/>
<object id="63" template="../obj/quest.tx" x="168" y="209">
<properties>
<property name="questtype" value="waste_town_generic"/>
</properties>
</object>
</objectgroup>
</map>

View File

@@ -0,0 +1,119 @@
<?xml version="1.0" encoding="UTF-8"?>
<map version="1.9" tiledversion="1.9.2" orientation="orthogonal" renderorder="right-down" width="30" height="30" tilewidth="16" tileheight="16" infinite="0" nextlayerid="6" nextobjectid="63">
<editorsettings>
<export target="wastetown..tmx" format="tmx"/>
</editorsettings>
<tileset firstgid="1" source="../tileset/main.tsx"/>
<tileset firstgid="10113" source="../tileset/buildings.tsx"/>
<layer id="1" name="Background" width="30" height="30">
<data encoding="base64" compression="zlib">
eJzt1LEKACAIBND2fti5L291iLxAU+qG29SnBElvTRiGCc1QQWp0rdXnsdMulV10FmJluFn3VnAR+zXXsrPeN8KP/h883VWfNdPj1pN9boQuXbr/uhNtp9Ws
</data>
</layer>
<layer id="2" name="Ground" width="30" height="30">
<data encoding="base64" compression="zlib">
eJzVl0tOwzAQhg0skB33DIZ1OUNRBIEjcIDCQQpH4AAFCYFyJ5AQIWtWYY1HttWJm9jTxI3ESKO4TuLvn44fk4Vk7DBj7Ej7FLYUjN0Kw5ySe5BtmODn0ui4E/tjQqwL2eZOEbcfq/MPreV5Ym5q3s1su2+tGe+yHSe2x7QStthP1sfE+t0zD3F/jdopYsq48ZjdB+KqhNF41XP12y+ad0zwV+2nsp9bcqOL6+uJ3Ljgxl0brhBjjjRcC/MueIF+QzuP7AeO+0DItZJmPBHQiPXVAfYqa3N/zsLsWBxYXxFgK6sPuJTcXQhafi+FGfctMP9Ky6XEQnnGPVdG5vy+uDFboTnYzBn7nafhhtYvmMvxJyF31Px+WS7O77JDs/LWBOgovL2jtv9Jhfqxu7lb2bXMvb0DzqXYOa9ke406HTkaE69frLOL6c7+XesMhfYDf0x3H+9v/n3/LAQ+lV1aLmVv6zL//KfWOGO564E1x1gu2JA6JxU3xvRrpbHcZjasxkkR7xD7z1z3nbTL9wmVC/Oi6aijwf4AV6hrzg==
</data>
</layer>
<layer id="3" name="Walls" width="30" height="30">
<properties>
<property name="spriteLayer" type="bool" value="true"/>
</properties>
<data encoding="base64" compression="zlib">
eJxjYBgFo4B2YAcLA4M0jfEuFkx7Q1lJd+sUDtLUY7ODHHtJBdS211iHgcFEB5MNA7BwIcdeUsMUGxiK4TyZAn8TYy96PFlrMTDYaGHqwxW32OJ5KIYzCLxnR6UJAQ1G7HZ8JcFeStI1Kf49DHSruyYDgwcQ63Fiyg/m+N3BRpm9pzUosx9kB3o+hNmLL/6eQ+0lNw8T619izIelVXLt/cJKXh1KSr39DcledD8RyifobiYnPZITT9SwlxxAir3UqDvJsZeagFx7KfX7UPPvYLEXAMqrMh0=
</data>
</layer>
<layer id="5" name="Overlay" width="30" height="30">
<data encoding="base64" compression="zlib">
eJzt0bERgCAUBNHtQjNI4f/+e4FqDMzUMYaZfdEFly1IWsGRcOZ7a13PTqVD7f8/O+9jBMy4dzTI9v2zryRpZxerjQgF
</data>
</layer>
<objectgroup id="4" name="Objects">
<object id="38" template="../obj/entry_up.tx" x="204" y="368" width="56" height="16"/>
<object id="41" template="../obj/shop.tx" x="256" y="208">
<properties>
<property name="commonShopList" value="Colorless,Colorless,Artifact,Creature2Colorless,Vehicle,Equip,Wand"/>
<property name="mythicShopList" value="White,Blue,Red,Green,Black,Legend"/>
<property name="rareShopList" value="Land4Colorless,Land4Colorless,Creature2Eldrazi"/>
<property name="uncommonShopList" value="Land,Enchantment,Instant,Creature"/>
</properties>
</object>
<object id="55" template="../obj/shop.tx" x="272" y="144">
<properties>
<property name="commonShopList" value="Colorless,Colorless,Artifact,Creature2Colorless,Vehicle,Equip,Wand"/>
<property name="mythicShopList" value="White,Blue,Red,Green,Black,Legend"/>
<property name="rareShopList" value="Land4Colorless,Land4Colorless,Creature2Eldrazi"/>
<property name="uncommonShopList" value="Land,Enchantment,Instant,Creature"/>
</properties>
</object>
<object id="57" template="../obj/shop.tx" x="320" y="144">
<properties>
<property name="commonShopList" value="Colorless,Colorless,Artifact,Creature2Colorless,Vehicle,Equip,Wand"/>
<property name="mythicShopList" value="White,Blue,Red,Green,Black,Legend"/>
<property name="rareShopList" value="Land4Colorless,Land4Colorless,Creature2Eldrazi"/>
<property name="uncommonShopList" value="Land,Enchantment,Instant,Creature"/>
</properties>
</object>
<object id="50" template="../obj/shop.tx" x="304" y="208">
<properties>
<property name="commonShopList" value="Colorless,Colorless,Artifact,Creature2Colorless,Vehicle,Equip,Wand"/>
<property name="mythicShopList" value="White,Blue,Red,Green,Black,Legend"/>
<property name="rareShopList" value="Land4Colorless,Land4Colorless,Creature2Eldrazi"/>
<property name="uncommonShopList" value="Land,Enchantment,Instant,Creature"/>
</properties>
</object>
<object id="51" template="../obj/shop.tx" x="352" y="208">
<properties>
<property name="commonShopList" value="Colorless,Colorless,Artifact,Creature2Colorless,Vehicle,Equip,Wand"/>
<property name="mythicShopList" value="White,Blue,Red,Green,Black,Legend"/>
<property name="rareShopList" value="Land4Colorless,Land4Colorless,Creature2Eldrazi"/>
<property name="uncommonShopList" value="Land,Enchantment,Instant,Creature"/>
</properties>
</object>
<object id="52" template="../obj/shop.tx" x="352" y="272">
<properties>
<property name="commonShopList" value="Colorless,Colorless,Artifact,Creature2Colorless,Vehicle,Equip,Wand"/>
<property name="mythicShopList" value="White,Blue,Red,Green,Black,Legend"/>
<property name="rareShopList" value="Land4Colorless,Land4Colorless,Creature2Eldrazi"/>
<property name="uncommonShopList" value="Land,Enchantment,Instant,Creature"/>
</properties>
</object>
<object id="53" template="../obj/shop.tx" x="304" y="272">
<properties>
<property name="commonShopList" value="Colorless,Colorless,Artifact,Creature2Colorless,Vehicle,Equip,Wand"/>
<property name="mythicShopList" value="White,Blue,Red,Green,Black,Legend"/>
<property name="rareShopList" value="Land4Colorless,Land4Colorless,Creature2Eldrazi"/>
<property name="uncommonShopList" value="Land,Enchantment,Instant,Creature"/>
</properties>
</object>
<object id="54" template="../obj/shop.tx" x="256" y="272">
<properties>
<property name="commonShopList" value="Colorless,Colorless,Artifact,Creature2Colorless,Vehicle,Equip,Wand"/>
<property name="mythicShopList" value="White,Blue,Red,Green,Black,Legend"/>
<property name="rareShopList" value="Land4Colorless,Land4Colorless,Creature2Eldrazi"/>
<property name="uncommonShopList" value="Land,Enchantment,Instant,Creature"/>
</properties>
</object>
<object id="47" template="../obj/inn.tx" x="150" y="273"/>
<object id="48" template="../obj/shop.tx" x="104" y="272">
<properties>
<property name="commonShopList" value="Equipment"/>
<property name="noRestock" type="bool" value="true"/>
</properties>
</object>
<object id="58" template="../obj/shop.tx" x="97" y="209">
<properties>
<property name="commonShopList" value="Colorless,Colorless,Artifact,Creature2Colorless,Vehicle,Equip,Wand"/>
<property name="mythicShopList" value="White,Blue,Red,Green,Black,Legend"/>
<property name="rareShopList" value="Land4Colorless,Land4Colorless,Creature2Eldrazi"/>
<property name="uncommonShopList" value="Land,Enchantment,Instant,Creature"/>
</properties>
</object>
<object id="61" template="../obj/shardtrader.tx" x="400" y="288"/>
<object id="62" template="../obj/quest.tx" x="168" y="209">
<properties>
<property name="questtype" value="waste_town_identity"/>
</properties>
</object>
</objectgroup>
</map>

View File

@@ -0,0 +1,119 @@
<?xml version="1.0" encoding="UTF-8"?>
<map version="1.9" tiledversion="1.9.2" orientation="orthogonal" renderorder="right-down" width="30" height="30" tilewidth="16" tileheight="16" infinite="0" nextlayerid="6" nextobjectid="65">
<editorsettings>
<export target="wastetown..tmx" format="tmx"/>
</editorsettings>
<tileset firstgid="1" source="../tileset/main.tsx"/>
<tileset firstgid="10113" source="../tileset/buildings.tsx"/>
<layer id="1" name="Background" width="30" height="30">
<data encoding="base64" compression="zlib">
eJzt1LEKACAIBND2fti5L291iLxAU+qG29SnBElvTRiGCc1QQWp0rdXnsdMulV10FmJluFn3VnAR+zXXsrPeN8KP/h883VWfNdPj1pN9boQuXbr/uhNtp9Ws
</data>
</layer>
<layer id="2" name="Ground" width="30" height="30">
<data encoding="base64" compression="zlib">
eJzVl0tOwzAQhg0skB33DIZ1OUNRBIEjcIDCQQpH4AAFCYFyJ5AQIWtWYY1HttWJm9jTxI3ESKO4TuLvn44fk4Vk7DBj7Ej7FLYUjN0Kw5ySe5BtmODn0ui4E/tjQqwL2eZOEbcfq/MPreV5Ym5q3s1su2+tGe+yHSe2x7QStthP1sfE+t0zD3F/jdopYsq48ZjdB+KqhNF41XP12y+ad0zwV+2nsp9bcqOL6+uJ3Ljgxl0brhBjjjRcC/MueIF+QzuP7AeO+0DItZJmPBHQiPXVAfYqa3N/zsLsWBxYXxFgK6sPuJTcXQhafi+FGfctMP9Ky6XEQnnGPVdG5vy+uDFboTnYzBn7nafhhtYvmMvxJyF31Px+WS7O77JDs/LWBOgovL2jtv9Jhfqxu7lb2bXMvb0DzqXYOa9ke406HTkaE69frLOL6c7+XesMhfYDf0x3H+9v/n3/LAQ+lV1aLmVv6zL//KfWOGO564E1x1gu2JA6JxU3xvRrpbHcZjasxkkR7xD7z1z3nbTL9wmVC/Oi6aijwf4AV6hrzg==
</data>
</layer>
<layer id="3" name="Walls" width="30" height="30">
<properties>
<property name="spriteLayer" type="bool" value="true"/>
</properties>
<data encoding="base64" compression="zlib">
eJxjYBgFo4B2YAcLA4M0jfEuFkx7Q1lJd+sUDtLUY7ODHHtJBdS211iHgcFEB5MNA7BwIcdeUsMUGxiK4TyZAn8TYy96PFlrMTDYaGHqwxW32OJ5KIYzCLxnR6UJAQ1G7HZ8JcFeStI1Kf49DHSruyYDgwcQ63Fiyg/r+GXGL/2fCcFmxKIWZAd6PoTZiy3+kM0DAXS9TEh2/ENTi80OQmL4zIcBWFrFBtDdi82OL6zk1aGk1NvfkOxF9xOhfILuZnLSIzllLTXsJQeQYi816k5y7KUmINdeSv0+1Pw7WOwFAAL/M3E=
</data>
</layer>
<layer id="5" name="Overlay" width="30" height="30">
<data encoding="base64" compression="zlib">
eJzt0SEOgEAQQ9GvuAI4sLsz9w9XgdMgcCwhOJbkP1VR0aQgqQdjwpRtVr+uP80Vlvrc8+f/2AL2OHMUyHLf89/WOny9QJL01gHnWwjD
</data>
</layer>
<objectgroup id="4" name="Objects">
<object id="38" template="../obj/entry_up.tx" x="204" y="368" width="56" height="16"/>
<object id="41" template="../obj/shop.tx" x="256" y="208">
<properties>
<property name="commonShopList" value="Creature,Creature2Blue,Creature2Red,Creature2Black,Creature2White,Creature2Green,Creature2Colorless,Sliver,Wall,Assembly,Human"/>
<property name="mythicShopList" value="Assassin,Squirrel,Dragon,Vampire,Minotaur,Dwarf,Devil,Soldier,Demon,Druid,Bird,Wolf,Knight,Skeleton,Shaman,Wizard,Pirate,Rogue,Dinosaur,Ogre,Planeswalker,Legend,WUBRG"/>
<property name="rareShopList" value="Human,Zombie,Goblin,Elf,Merfolk,Azorius,Dimir,Rakdos,Gruul,Selesnya,Orzhov,Izzet,Golgari,Boros,Simic"/>
<property name="uncommonShopList" value="Land,Vehicle,Equip,Wand,Artifact,Multicolor,Golem,Colorless,Enchantment,Instant"/>
</properties>
</object>
<object id="55" template="../obj/shop.tx" x="272" y="144">
<properties>
<property name="commonShopList" value="Creature,Creature2Blue,Creature2Red,Creature2Black,Creature2White,Creature2Green,Creature2Colorless,Sliver,Wall,Assembly,Human"/>
<property name="mythicShopList" value="Assassin,Squirrel,Dragon,Vampire,Minotaur,Dwarf,Devil,Soldier,Demon,Druid,Bird,Wolf,Knight,Skeleton,Shaman,Wizard,Pirate,Rogue,Dinosaur,Ogre,Planeswalker,Legend,WUBRG"/>
<property name="rareShopList" value="Human,Zombie,Goblin,Elf,Merfolk,Azorius,Dimir,Rakdos,Gruul,Selesnya,Orzhov,Izzet,Golgari,Boros,Simic"/>
<property name="uncommonShopList" value="Land,Vehicle,Equip,Wand,Artifact,Multicolor,Golem,Colorless,Enchantment,Instant"/>
</properties>
</object>
<object id="57" template="../obj/shop.tx" x="320" y="144">
<properties>
<property name="commonShopList" value="Creature,Creature2Blue,Creature2Red,Creature2Black,Creature2White,Creature2Green,Creature2Colorless,Sliver,Wall,Assembly,Human"/>
<property name="mythicShopList" value="Assassin,Squirrel,Dragon,Vampire,Minotaur,Dwarf,Devil,Soldier,Demon,Druid,Bird,Wolf,Knight,Skeleton,Shaman,Wizard,Pirate,Rogue,Dinosaur,Ogre,Planeswalker,Legend,WUBRG"/>
<property name="rareShopList" value="Human,Zombie,Goblin,Elf,Merfolk,Azorius,Dimir,Rakdos,Gruul,Selesnya,Orzhov,Izzet,Golgari,Boros,Simic"/>
<property name="uncommonShopList" value="Land,Vehicle,Equip,Wand,Artifact,Multicolor,Golem,Colorless,Enchantment,Instant"/>
</properties>
</object>
<object id="50" template="../obj/shop.tx" x="304" y="208">
<properties>
<property name="commonShopList" value="Creature,Creature2Blue,Creature2Red,Creature2Black,Creature2White,Creature2Green,Creature2Colorless,Sliver,Wall,Assembly,Human"/>
<property name="mythicShopList" value="Assassin,Squirrel,Dragon,Vampire,Minotaur,Dwarf,Devil,Soldier,Demon,Druid,Bird,Wolf,Knight,Skeleton,Shaman,Wizard,Pirate,Rogue,Dinosaur,Ogre,Planeswalker,Legend,WUBRG"/>
<property name="rareShopList" value="Human,Zombie,Goblin,Elf,Merfolk,Azorius,Dimir,Rakdos,Gruul,Selesnya,Orzhov,Izzet,Golgari,Boros,Simic"/>
<property name="uncommonShopList" value="Land,Vehicle,Equip,Wand,Artifact,Multicolor,Golem,Colorless,Enchantment,Instant"/>
</properties>
</object>
<object id="51" template="../obj/shop.tx" x="352" y="208">
<properties>
<property name="commonShopList" value="Creature,Creature2Blue,Creature2Red,Creature2Black,Creature2White,Creature2Green,Creature2Colorless,Sliver,Wall,Assembly,Human"/>
<property name="mythicShopList" value="Assassin,Squirrel,Dragon,Vampire,Minotaur,Dwarf,Devil,Soldier,Demon,Druid,Bird,Wolf,Knight,Skeleton,Shaman,Wizard,Pirate,Rogue,Dinosaur,Ogre,Planeswalker,Legend,WUBRG"/>
<property name="rareShopList" value="Human,Zombie,Goblin,Elf,Merfolk,Azorius,Dimir,Rakdos,Gruul,Selesnya,Orzhov,Izzet,Golgari,Boros,Simic"/>
<property name="uncommonShopList" value="Land,Vehicle,Equip,Wand,Artifact,Multicolor,Golem,Colorless,Enchantment,Instant"/>
</properties>
</object>
<object id="52" template="../obj/shop.tx" x="352" y="272">
<properties>
<property name="commonShopList" value="Creature,Creature2Blue,Creature2Red,Creature2Black,Creature2White,Creature2Green,Creature2Colorless,Sliver,Wall,Assembly,Human"/>
<property name="mythicShopList" value="Assassin,Squirrel,Dragon,Vampire,Minotaur,Dwarf,Devil,Soldier,Demon,Druid,Bird,Wolf,Knight,Skeleton,Shaman,Wizard,Pirate,Rogue,Dinosaur,Ogre,Planeswalker,Legend,WUBRG"/>
<property name="rareShopList" value="Human,Zombie,Goblin,Elf,Merfolk,Azorius,Dimir,Rakdos,Gruul,Selesnya,Orzhov,Izzet,Golgari,Boros,Simic"/>
<property name="uncommonShopList" value="Land,Vehicle,Equip,Wand,Artifact,Multicolor,Golem,Colorless,Enchantment,Instant"/>
</properties>
</object>
<object id="53" template="../obj/shop.tx" x="304" y="272">
<properties>
<property name="commonShopList" value="Creature,Creature2Blue,Creature2Red,Creature2Black,Creature2White,Creature2Green,Creature2Colorless,Sliver,Wall,Assembly,Human"/>
<property name="mythicShopList" value="Assassin,Squirrel,Dragon,Vampire,Minotaur,Dwarf,Devil,Soldier,Demon,Druid,Bird,Wolf,Knight,Skeleton,Shaman,Wizard,Pirate,Rogue,Dinosaur,Ogre,Planeswalker,Legend,WUBRG"/>
<property name="rareShopList" value="Human,Zombie,Goblin,Elf,Merfolk,Azorius,Dimir,Rakdos,Gruul,Selesnya,Orzhov,Izzet,Golgari,Boros,Simic"/>
<property name="uncommonShopList" value="Land,Vehicle,Equip,Wand,Artifact,Multicolor,Golem,Colorless,Enchantment,Instant"/>
</properties>
</object>
<object id="54" template="../obj/shop.tx" x="256" y="272">
<properties>
<property name="commonShopList" value="Creature,Creature2Blue,Creature2Red,Creature2Black,Creature2White,Creature2Green,Creature2Colorless,Sliver,Wall,Assembly,Human"/>
<property name="mythicShopList" value="Assassin,Squirrel,Dragon,Vampire,Minotaur,Dwarf,Devil,Soldier,Demon,Druid,Bird,Wolf,Knight,Skeleton,Shaman,Wizard,Pirate,Rogue,Dinosaur,Ogre,Planeswalker,Legend,WUBRG"/>
<property name="rareShopList" value="Human,Zombie,Goblin,Elf,Merfolk,Azorius,Dimir,Rakdos,Gruul,Selesnya,Orzhov,Izzet,Golgari,Boros,Simic"/>
<property name="uncommonShopList" value="Land,Vehicle,Equip,Wand,Artifact,Multicolor,Golem,Colorless,Enchantment,Instant"/>
</properties>
</object>
<object id="47" template="../obj/inn.tx" x="150" y="273"/>
<object id="48" template="../obj/shop.tx" x="104" y="272">
<properties>
<property name="commonShopList" value="Equipment"/>
<property name="noRestock" type="bool" value="true"/>
</properties>
</object>
<object id="58" template="../obj/shop.tx" x="97" y="209">
<properties>
<property name="commonShopList" value="Creature,Creature2Blue,Creature2Red,Creature2Black,Creature2White,Creature2Green,Creature2Colorless,Sliver,Wall,Assembly,Human"/>
<property name="mythicShopList" value="Assassin,Squirrel,Dragon,Vampire,Minotaur,Dwarf,Devil,Soldier,Demon,Druid,Bird,Wolf,Knight,Skeleton,Shaman,Wizard,Pirate,Rogue,Dinosaur,Ogre,Planeswalker,Legend,WUBRG"/>
<property name="rareShopList" value="Human,Zombie,Goblin,Elf,Merfolk,Azorius,Dimir,Rakdos,Gruul,Selesnya,Orzhov,Izzet,Golgari,Boros,Simic"/>
<property name="uncommonShopList" value="Land,Vehicle,Equip,Wand,Artifact,Multicolor,Golem,Colorless,Enchantment,Instant"/>
</properties>
</object>
<object id="63" template="../obj/shardtrader.tx" x="400" y="288"/>
<object id="64" template="../obj/quest.tx" x="168" y="209">
<properties>
<property name="questtype" value="waste_town_tribal"/>
</properties>
</object>
</objectgroup>
</map>

View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<template>
<tileset firstgid="1" source="../tileset/buildings.tsx"/>
<object name="RotatingShop" class="RotatingShop" gid="1251" width="16" height="16">
<properties>
<property name="hasSign" type="bool" value="true"/>
<property name="rotation" value=""/>
<property name="signXOffset" type="float" value="16"/>
<property name="signYOffset" type="float" value="-16"/>
<property name="type" value="Rotating"/>
</properties>
</object>
</template>

View File

@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<template>
<tileset firstgid="1" source="../tileset/buildings.tsx"/>
<object name="Quest" class="quest" gid="1418" width="16" height="16">
<properties>
<property name="questtype" value=""/>
<property name="type" value="quest"/>
</properties>
</object>
</template>

View File

@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<template>
<tileset firstgid="1" source="../tileset/buildings.tsx"/>
<object name="Shardtrader" class="shardtrader" gid="1446" width="16" height="16">
<properties>
<property name="hasSign" type="bool" value="true"/>
<property name="signXOffset" type="float" value="16"/>
<property name="signYOffset" type="float" value="-16"/>
<property name="type" value="shardtrader"/>
</properties>
</object>
</template>

View File

@@ -1,11 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<template> <template>
<tileset firstgid="1" source="../tileset/buildings.tsx"/> <tileset firstgid="1" source="../tileset/buildings.tsx"/>
<object name="Shop" type="shop" gid="1251" width="16" height="16"> <object name="Shop" class="shop" gid="1251" width="16" height="16">
<properties> <properties>
<property name="shopList" value=""/> <property name="commonShopList" value=""/>
<property name="hasSign" type="bool" value="true"/>
<property name="mythicShopList" value=""/>
<property name="noRestock" type="bool" value="false"/>
<property name="rareShopList" value=""/>
<property name="signXOffset" type="float" value="16"/> <property name="signXOffset" type="float" value="16"/>
<property name="signYOffset" type="float" value="-16"/> <property name="signYOffset" type="float" value="-16"/>
<property name="type" value="shop"/>
<property name="uncommonShopList" value=""/>
</properties> </properties>
</object> </object>
</template> </template>

View File

@@ -1,5 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<template> <template>
<tileset firstgid="1" source="../tileset/buildings.tsx"/> <tileset firstgid="1" source="../tileset/buildings.tsx"/>
<object name="Spellsmith" type="spellsmith" gid="1391" width="16" height="16"/> <object name="Spellsmith" class="spellsmith" gid="1391" width="16" height="16">
<properties>
<property name="hasSign" type="bool" value="true"/>
<property name="signXOffset" type="float" value="16"/>
<property name="signYOffset" type="float" value="-16"/>
<property name="type" value="spellsmith"/>
</properties>
</object>
</template> </template>

View File

@@ -19,6 +19,9 @@ ForestTown
PlainsTown PlainsTown
xy: 96, 0 xy: 96, 0
size: 48, 48 size: 48, 48
PirateShop
xy: 384, 704
size: 16, 16
WasteTown WasteTown
xy: 272, 128 xy: 272, 128
size: 48, 48 size: 48, 48
@@ -122,7 +125,7 @@ EquipmentShop
xy: 304, 784 xy: 304, 784
size: 16, 16 size: 16, 16
ItemShop ItemShop
xy: 304, 800 xy: 288, 912
size: 16, 16 size: 16, 16
CapitalShop CapitalShop
xy: 304, 816 xy: 304, 816
@@ -139,6 +142,231 @@ GolemShop
SliverShop SliverShop
xy: 368, 784 xy: 368, 784
size: 16, 16 size: 16, 16
RWBShop
xy: 304, 800
size: 16, 16
RWUShop
xy: 320, 800
size: 16, 16
RWGShop
xy: 336, 800
size: 16, 16
EnchantmentShop
xy: 352, 800
size: 16, 16
WUBRGShop
xy: 368, 800
size: 16, 16
RogueShop
xy: 288, 816
size: 16, 16
NonbasicLandShop
xy: 304, 816
size: 16, 16
SpaceMarineShop
xy: 320, 816
size: 16, 16
NecronShop
xy: 336, 816
size: 16, 16
ChaosShop
xy: 352, 816
size: 16, 16
TyranidShop
xy: 368, 816
size: 16, 16
M22Shop
xy: 384, 720
size: 16, 16
M21Shop
xy: 384, 750
size: 16, 16
M20Shop
xy: 384, 766
size: 16, 16
AssassinShop
xy: 384, 784
size: 16, 16
SquirrelShop
xy: 384, 800
size: 16, 16
DragonShop
xy: 384, 816
size: 16, 16
AssemblyShop
xy: 288, 832
size: 16, 16
VampireShop
xy: 304, 832
size: 16, 16
VehicleShop
xy: 320, 832
size: 16, 16
RUBShop
xy: 336, 832
size: 16, 16
RGBShop
xy: 352, 832
size: 16, 16
RGUShop
xy: 368, 832
size: 16, 16
MinotaurShop
xy: 384, 832
size: 16, 16
DinosaurShop
xy: 288, 848
size: 16, 16
UWBShop
xy: 304, 848
size: 16, 16
UGBShop
xy: 320, 848
size: 16, 16
UWGShop
xy: 336, 848
size: 16, 16
GWBShop
xy: 352, 848
size: 16, 16
DwarfShop
xy: 368, 848
size: 16, 16
DevilShop
xy: 384, 848
size: 16, 16
OgreShop
xy: 288, 864
size: 16, 16
EquipShop
xy: 320, 864
size: 16, 16
SoldierShop
xy: 336, 864
size: 16, 16
CardShop
xy: 352, 864
size: 16, 16
DnDShop
xy: 368, 864
size: 16, 16
DemonShop
xy: 384, 864
size: 16, 16
RotatingShop
xy: 288, 880
size: 16, 16
DruidShop
xy: 304, 880
size: 16, 16
WandShop
xy: 320, 880
size: 16, 16
BirdShop
xy: 336, 880
size: 16, 16
WolfShop
xy: 352, 880
size: 16, 16
KnightShop
xy: 368, 880
size: 16, 16
WallShop
xy: 384, 880
size: 16, 16
PlaneswalkerShop
xy: 304, 896
size: 16, 16
SkeletonShop
xy: 320, 896
size: 16, 16
SpiritShop
xy: 336, 896
size: 16, 16
ShamanShop
xy: 352, 896
size: 16, 16
WizardShop
xy: 368, 896
size: 16, 16
LegendShop
xy: 384, 896
size: 16, 16
ShardTrader
xy: 288, 896
size: 16, 16
Overlay8Black
xy: 400, 704
size: 5, 16
Overlay6Black
xy: 405, 704
size: 5, 16
Overlay4Black
xy: 400, 800
size: 5,16
Overlay2Black
xy: 405, 800
size: 5, 16
Overlay8Green
xy: 400, 768
size: 5, 16
Overlay6Green
xy: 405, 768
size: 5, 16
Overlay4Green
xy: 405, 864
size: 5, 16
Overlay2Green
xy: 405, 864
size: 5, 16
Overlay8Colorless
xy: 400, 784
size: 5, 16
Overlay6Colorless
xy: 405, 784
size: 5, 16
Overlay4Colorless
xy: 400, 880
size: 5, 16
Overlay2Colorless
xy: 405, 880
size: 5, 16
Overlay8Blue
xy: 400, 720
size: 5, 16
Overlay6Blue
xy: 405, 720
size: 5, 16
Overlay4Blue
xy: 400, 816
size: 5, 16
Overlay2Blue
xy: 405, 816
size: 5, 16
Overlay8Red
xy: 400, 736
size: 5, 16
Overlay6Red
xy: 405, 736
size: 5, 16
Overlay4Red
xy: 400, 832
size: 5, 16
Overlay2Red
xy: 405, 832
size: 5, 16
Overlay8White
xy: 400, 752
size: 5, 16
Overlay6White
xy: 405, 752
size: 5, 16
Overlay4White
xy: 400, 848
size: 5, 16
Overlay2White
xy: 405, 848
size: 5, 16
Test Test
xy: 128, 48 xy: 128, 48
size: 32, 32 size: 32, 32

Binary file not shown.

Before

Width:  |  Height:  |  Size: 228 KiB

After

Width:  |  Height:  |  Size: 238 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 506 KiB

After

Width:  |  Height:  |  Size: 512 KiB

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<tileset version="1.9" tiledversion="1.9.1" name="main" tilewidth="16" tileheight="16" tilecount="6320" columns="158"> <tileset version="1.9" tiledversion="1.9.2" name="main" tilewidth="16" tileheight="16" tilecount="10112" columns="158">
<image source="main.png" width="2528" height="640"/> <image source="main.png" width="2528" height="1024"/>
<tile id="105"> <tile id="105">
<objectgroup draworder="index" id="2"> <objectgroup draworder="index" id="2">
<object id="1" x="1" y="0" width="14" height="14"/> <object id="1" x="1" y="0" width="14" height="14"/>
@@ -7061,6 +7061,12 @@
<object id="2" x="0" y="0" width="7" height="16"/> <object id="2" x="0" y="0" width="7" height="16"/>
</objectgroup> </objectgroup>
</tile> </tile>
<tile id="5976">
<objectgroup draworder="index" id="2">
<object id="1" x="13" y="0" width="3" height="16"/>
<object id="2" x="0" y="0" width="16" height="3.86957"/>
</objectgroup>
</tile>
<tile id="6108"> <tile id="6108">
<objectgroup draworder="index" id="2"> <objectgroup draworder="index" id="2">
<object id="1" x="0" y="0" width="16" height="16"/> <object id="1" x="0" y="0" width="16" height="16"/>
@@ -7107,6 +7113,11 @@
<object id="1" x="0" y="0" width="15" height="15"/> <object id="1" x="0" y="0" width="15" height="15"/>
</objectgroup> </objectgroup>
</tile> </tile>
<tile id="6134">
<objectgroup draworder="index" id="2">
<object id="1" x="13" y="0" width="3" height="16"/>
</objectgroup>
</tile>
<tile id="6276"> <tile id="6276">
<objectgroup draworder="index" id="2"> <objectgroup draworder="index" id="2">
<object id="1" x="0" y="0"/> <object id="1" x="0" y="0"/>
@@ -7123,6 +7134,23 @@
<object id="1" x="0" y="0"/> <object id="1" x="0" y="0"/>
</objectgroup> </objectgroup>
</tile> </tile>
<tile id="6290">
<objectgroup draworder="index" id="2">
<object id="1" x="0" y="0" width="3" height="16"/>
<object id="2" x="0" y="13" width="16" height="3"/>
</objectgroup>
</tile>
<tile id="6291">
<objectgroup draworder="index" id="2">
<object id="1" x="0" y="13" width="16" height="3"/>
</objectgroup>
</tile>
<tile id="6292">
<objectgroup draworder="index" id="4">
<object id="3" x="13" y="0" width="3" height="16"/>
<object id="4" x="0" y="13" width="16" height="3"/>
</objectgroup>
</tile>
<wangsets> <wangsets>
<wangset name="Walls" type="corner" tile="2531"> <wangset name="Walls" type="corner" tile="2531">
<wangcolor name="" color="#ff0000" tile="-1" probability="1"/> <wangcolor name="" color="#ff0000" tile="-1" probability="1"/>

View File

@@ -27,6 +27,9 @@ CardBack
Gold Gold
xy: 48, 0 xy: 48, 0
size: 16, 16 size: 16, 16
Shards
xy: 32, 768
size: 16, 16
Life Life
xy: 48, 16 xy: 48, 16
size: 16, 16 size: 16, 16
@@ -48,6 +51,21 @@ Status
Menu Menu
xy: 32, 64 xy: 32, 64
size: 16, 16 size: 16, 16
CursedTreasure
xy: 336, 64
size: 16, 16
PipersCharm
xy: 240, 976
size: 16, 16
HillGiantClub
xy: 192, 576
size: 16, 16
SleepWand
xy: 304, 544
size: 16, 16
FarmersTools
xy: 288, 976
size: 16, 16
SolRing SolRing
xy: 320, 144 xy: 320, 144
size: 16, 16 size: 16, 16

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

View File

@@ -66,7 +66,7 @@
}, },
{ {
"type": "Label", "type": "Label",
"name": "mana", "name": "shards",
"font": "default", "font": "default",
"width": 64, "width": 64,
"height": 16, "height": 16,

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.8 KiB

After

Width:  |  Height:  |  Size: 8.9 KiB

View File

@@ -66,7 +66,7 @@
}, },
{ {
"type": "Label", "type": "Label",
"name": "mana", "name": "shards",
"font": "default", "font": "default",
"width": 64, "width": 64,
"height": 16, "height": 16,

View File

@@ -65,7 +65,7 @@
}, },
{ {
"type": "Label", "type": "Label",
"name": "mana", "name": "shards",
"font": "default", "font": "default",
"width": 48, "width": 48,
"height": 3, "height": 3,

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 11 KiB

View File

@@ -75,6 +75,26 @@
"height": 30, "height": 30,
"x": 320, "x": 320,
"y": 200 "y": 200
},
{
"type": "Label",
"name": "playerGold",
"style":"background",
"text": "[+Gold]",
"width": 48,
"height": 30,
"x": 420,
"y": 200
},
{
"type": "Label",
"name": "playerShards",
"style":"background",
"text": "[+Shards]",
"width": 48,
"height": 30,
"x": 420,
"y": 240
} }
] ]
} }

View File

@@ -75,6 +75,26 @@
"height": 30, "height": 30,
"x": 165, "x": 165,
"y": 335 "y": 335
},
{
"type": "Label",
"name": "playerGold",
"style":"background",
"text": "[+Gold]",
"width": 128,
"height": 32,
"x": 16,
"y": 405
},
{
"type": "Label",
"name": "playerShards",
"style":"background",
"text": "[+Shards]",
"width": 128,
"height": 32,
"x": 16,
"y": 435
} }
] ]
} }

View File

@@ -46,13 +46,42 @@
} , } ,
{ {
"type": "Label", "type": "Label",
"name": "gold", "name": "playerGold",
"style":"background", "style":"background",
"text": "[+Gold]", "text": "[+Gold]",
"width": 48, "width": 48,
"height": 30, "height": 30,
"x": 420, "x": 420,
"y": 200
},
{
"type": "TextButton",
"name": "restock",
"text": "Restock",
"width": 48,
"height": 30,
"x": 420,
"y": 160 "y": 160
},
{
"type": "Label",
"name": "playerShards",
"style":"background",
"text": "[+Shards]",
"width": 48,
"height": 30,
"x": 420,
"y": 240
},
{
"type": "Label",
"name": "shopName",
"style":"background",
"text": "A Street Market",
"width": 48,
"height": 20,
"x": 200,
"y": 0
} }
] ]
} }

View File

@@ -42,17 +42,46 @@
"width": 128, "width": 128,
"height": 32, "height": 32,
"x": 140, "x": 140,
"y": 405 "y": 435
} , } ,
{ {
"type": "Label", "type": "Label",
"name": "gold", "name": "playerGold",
"style":"background",
"text": "[+Gold]", "text": "[+Gold]",
"width": 128, "width": 128,
"height": 32, "height": 32,
"x": 16, "x": 16,
"y": 405 "y": 405
},
{
"type": "TextButton",
"name": "restock",
"text": "Restock",
"style":"background",
"width": 128,
"height": 30,
"x": 140,
"y": 405
},
{
"type": "Label",
"name": "playerShards",
"text": "[+Shards]",
"style":"background",
"width": 128,
"height": 32,
"x": 16,
"y": 435
},
{
"type": "Label",
"name": "shopName",
"style":"background",
"text": "A Street Market",
"width": 48,
"height": 20,
"x": 200,
"y": 0
} }
] ]
} }

View File

@@ -0,0 +1,100 @@
{
"width": 480,
"height": 270,
"yDown": true,
"elements": [
{
"type": "Image",
"image": "ui/market.png",
"width": 480,
"height": 270
},
{
"type": "Image",
"name": "shardIcon",
"image": "ui/buyshards.png",
"x": 60,
"y": 85,
"width": 100,
"height": 100
},
{
"type": "TextButton",
"name": "btnBuyShardsCost",
"text": "btnBuyShardsCost",
"binding": "Status",
"width": 100,
"height": 30,
"x": 60,
"y": 200
},
{
"type": "Image",
"name": "sellIcon",
"image": "ui/sell.png",
"x": 190,
"y": 85,
"width": 100,
"height": 100
},
{
"type": "TextButton",
"name": "btnSellShardsQuantity",
"text": "btnSellShardsQuantity",
"binding": "Equip",
"width": 100,
"height": 30,
"x": 190,
"y": 200
},
{
"type": "Image",
"name": "leaveIcon",
"image": "ui/leave.png",
"x": 320,
"y": 85,
"width": 100,
"height": 100
},
{
"type": "TextButton",
"name": "done",
"text": "tr(lblBack)",
"binding": "Back",
"width": 100,
"height": 30,
"x": 320,
"y": 200
},
{
"type": "Label",
"name": "shopName",
"style":"background",
"text": "Shard Trader",
"width": 48,
"height": 20,
"x": 200,
"y": 0
},
{
"type": "Label",
"name": "playerGold",
"style":"background",
"text": "[+Gold]",
"width": 48,
"height": 30,
"x": 420,
"y": 200
},
{
"type": "Label",
"name": "playerShards",
"style":"background",
"text": "[+Shards]",
"width": 48,
"height": 30,
"x": 420,
"y": 240
}
]
}

View File

@@ -0,0 +1,90 @@
{
"width": 270,
"height": 480,
"yDown": true,
"elements": [
{
"type": "Image",
"image": "ui/market_portrait.png",
"width": 270,
"height": 480
},
{
"type": "Image",
"name": "shardIcon",
"image": "ui/buyshards.png",
"x": 60,
"y": 85,
"width": 100,
"height": 100
},
{
"type": "TextButton",
"name": "btnBuyShardsCost",
"text": "btnBuyShardsCost",
"binding": "Status",
"width": 100,
"height": 30,
"x": 165,
"y": 105
},
{
"type": "Image",
"name": "sellIcon",
"image": "ui/sell.png",
"x": 60,
"y": 200,
"width": 100,
"height": 100
},
{
"type": "TextButton",
"name": "btnSellShardsQuantity",
"text": "btnSellShardsQuantity",
"binding": "Equip",
"width": 100,
"height": 30,
"x": 165,
"y": 220
},
{
"type": "Image",
"name": "leaveIcon",
"image": "ui/leave.png",
"x": 60,
"y": 315,
"width": 100,
"height": 100
},
{
"type": "TextButton",
"name": "done",
"text": "tr(lblBack)",
"binding": "Back",
"width": 100,
"height": 30,
"x": 165,
"y": 335
},
{
"type": "Label",
"name": "playerGold",
"style":"background",
"text": "[+Gold]",
"width": 128,
"height": 32,
"x": 16,
"y": 405
},
{
"type": "Label",
"name": "playerShards",
"style":"background",
"text": "[+Shards]",
"width": 128,
"height": 32,
"x": 16,
"y": 435
}
]
}

View File

@@ -132,18 +132,47 @@
}, },
{ {
"type": "Label", "type": "Label",
"name": "gold", "name": "playerGold",
"x": 0, "style":"background",
"y": 0, "x": 5,
"width": 120, "y": 5,
"width": 80,
"height": 20 "height": 20
}, },
{ {
"type": "TextButton", "type": "TextButton",
"selectable": true, "selectable": true,
"name": "pull", "name": "pullUsingGold",
"binding": "Status",
"text": "tr(lblDraw) [+gold]",
"x": 70,
"y": 5,
"width": 90,
"height": 20
},
{
"type": "Label",
"name": "playerShards",
"style":"background",
"x": 280,
"y": 5,
"width": 80,
"height": 20
},
{
"type": "TextButton",
"selectable": true,
"name": "pullUsingShards",
"binding": "Equip", "binding": "Equip",
"text": "tr(lblDraw)", "text": "tr(lblDraw) [+shards]",
"x": 345,
"y": 5,
"width": 90,
"height": 20
},
{
"type": "Label",
"name": "poolSize",
"x": 360, "x": 360,
"y": 180, "y": 180,
"width": 90, "width": 90,

View File

@@ -65,9 +65,9 @@
"name": "done", "name": "done",
"text": "tr(lblBack)", "text": "tr(lblBack)",
"binding": "Back", "binding": "Back",
"x": 175, "x": 180,
"y": 150, "y": 150,
"width": 70, "width": 90,
"height": 20 "height": 20
}, },
{ {
@@ -137,13 +137,50 @@
"y": 0, "y": 0,
"width": 120, "width": 120,
"height": 20 "height": 20
},
{
"type": "Label",
"name": "playerGold",
"style":"background",
"x": 180,
"y": 0,
"width": 90,
"height": 20
}, },
{ {
"type": "TextButton", "type": "TextButton",
"name": "pull",
"text": "tr(lblDraw)",
"selectable": true, "selectable": true,
"name": "pullUsingGold",
"binding": "Status",
"text": "tr(lblDraw) [+gold]",
"x": 180,
"y": 25,
"width": 90,
"height": 20
},
{
"type": "Label",
"name": "playerShards",
"style":"background",
"x": 180,
"y": 50,
"width": 90,
"height": 20
},
{
"type": "TextButton",
"selectable": true,
"name": "pullUsingShards",
"binding": "Equip", "binding": "Equip",
"text": "tr(lblDraw) [+shards]",
"x": 180,
"y": 75,
"width": 90,
"height": 20
},
{
"type": "Label",
"name": "poolSize",
"x": 16, "x": 16,
"y": 150, "y": 150,
"width": 97, "width": 97,

View File

@@ -60,7 +60,9 @@
], ],
"pointsOfInterest": [ "pointsOfInterest": [
"Black Castle", "Black Castle",
"Swamp Town", "Swamp Town Generic",
"Swamp Town Identity",
"Swamp Town Tribal",
"Swamp Capital", "Swamp Capital",
"Swamp Town2", "Swamp Town2",
"Zombie Town", "Zombie Town",

View File

@@ -51,7 +51,9 @@
], ],
"pointsOfInterest": [ "pointsOfInterest": [
"Blue Castle", "Blue Castle",
"Island Town", "Island Town Generic",
"Island Town Identity",
"Island Town Tribal",
"Island Capital", "Island Capital",
"NestU", "NestU",
"MerfolkPool", "MerfolkPool",

View File

@@ -67,7 +67,9 @@
"pointsOfInterest": [ "pointsOfInterest": [
"Green Castle", "Green Castle",
"Forest Capital", "Forest Capital",
"Forest Town", "Forest Town Generic",
"Forest Town Identity",
"Forest Town Tribal",
"ElfTown", "ElfTown",
"WurmPond", "WurmPond",
"Kavu Lair", "Kavu Lair",

View File

@@ -1,5 +1,50 @@
[ [
{ {
"name": "Piper's Charm",
"equipmentSlot": "Neck",
"iconName": "PipersCharm",
"effect": {
"startBattleWithCard": [
"Piper's Charm"
]
}
},{
"name": "Sleep Wand",
"equipmentSlot": "Left",
"iconName": "SleepWand",
"effect": {
"startBattleWithCard": [
"Sleep Wand"
]
}
},{
"name": "Hill Giant Club",
"equipmentSlot": "Right",
"iconName": "HillGiantClub",
"effect": {
"startBattleWithCard": [
"Hill Giant Club"
]
}
},{
"name": "Cursed Treasure",
"equipmentSlot": "Right",
"iconName": "CursedTreasure",
"effect": {
"startBattleWithCard": [
"Cursed Treasure"
]
}
},{
"name": "Farmer's Tools",
"equipmentSlot": "Left",
"iconName": "FarmersTools",
"effect": {
"startBattleWithCard": [
"Farmer's Tools"
]
}
},{
"name": "Sol Ring", "name": "Sol Ring",
"equipmentSlot": "Left", "equipmentSlot": "Left",
"iconName": "SolRing", "iconName": "SolRing",
@@ -765,7 +810,7 @@
"commandOnUse": "teleport to poi Spawn", "commandOnUse": "teleport to poi Spawn",
"iconName": "ColorlessRune", "iconName": "ColorlessRune",
"questItem": true, "questItem": true,
"manaNeeded": 1, "shardsNeeded": 1,
"cost": 100 "cost": 100
}, },
{ {
@@ -778,7 +823,7 @@
"commandOnUse": "teleport to poi \"Plains Capital\"", "commandOnUse": "teleport to poi \"Plains Capital\"",
"iconName": "WhiteRune", "iconName": "WhiteRune",
"questItem": true, "questItem": true,
"manaNeeded": 1, "shardsNeeded": 1,
"cost": 100 "cost": 100
}, },
{ {
@@ -791,7 +836,7 @@
"commandOnUse": "teleport to poi \"Swamp Capital\"", "commandOnUse": "teleport to poi \"Swamp Capital\"",
"iconName": "BlackRune", "iconName": "BlackRune",
"questItem": true, "questItem": true,
"manaNeeded": 1, "shardsNeeded": 1,
"cost": 100 "cost": 100
}, },
{ {
@@ -804,7 +849,7 @@
"commandOnUse": "teleport to poi \"Island Capital\"", "commandOnUse": "teleport to poi \"Island Capital\"",
"iconName": "BlueRune", "iconName": "BlueRune",
"questItem": true, "questItem": true,
"manaNeeded": 1, "shardsNeeded": 1,
"cost": 100 "cost": 100
}, },
{ {
@@ -817,7 +862,7 @@
"commandOnUse": "teleport to poi \"Mountain Capital\"", "commandOnUse": "teleport to poi \"Mountain Capital\"",
"iconName": "RedRune", "iconName": "RedRune",
"questItem": true, "questItem": true,
"manaNeeded": 1, "shardsNeeded": 1,
"cost": 100 "cost": 100
}, },
{ {
@@ -830,7 +875,7 @@
"commandOnUse": "teleport to poi \"Forest Capital\"", "commandOnUse": "teleport to poi \"Forest Capital\"",
"iconName": "GreenRune", "iconName": "GreenRune",
"questItem": true, "questItem": true,
"manaNeeded": 1, "shardsNeeded": 1,
"cost": 100 "cost": 100
}, },
{ {
@@ -844,7 +889,7 @@
"commandOnUse": "heal percent 0.5", "commandOnUse": "heal percent 0.5",
"iconName": "WhiteStaff", "iconName": "WhiteStaff",
"questItem": true, "questItem": true,
"manaNeeded": 5, "shardsNeeded": 5,
"cost": 1000 "cost": 1000
}, },
{ {
@@ -858,7 +903,7 @@
"commandOnUse": "hide 10", "commandOnUse": "hide 10",
"iconName": "BlackStaff", "iconName": "BlackStaff",
"questItem": true, "questItem": true,
"manaNeeded": 5, "shardsNeeded": 5,
"cost": 1000 "cost": 1000
}, },
{ {
@@ -871,7 +916,7 @@
"commandOnUse": "fly 10", "commandOnUse": "fly 10",
"iconName": "BlueStaff", "iconName": "BlueStaff",
"questItem": true, "questItem": true,
"manaNeeded": 5, "shardsNeeded": 5,
"cost": 1000 "cost": 1000
}, },
{ {
@@ -884,7 +929,7 @@
"commandOnUse": "remove enemy nearest", "commandOnUse": "remove enemy nearest",
"iconName": "RedStaff", "iconName": "RedStaff",
"questItem": true, "questItem": true,
"manaNeeded": 5, "shardsNeeded": 5,
"cost": 1000 "cost": 1000
}, },
{ {
@@ -898,7 +943,7 @@
"commandOnUse": "sprint 10", "commandOnUse": "sprint 10",
"iconName": "GreenStaff", "iconName": "GreenStaff",
"questItem": true, "questItem": true,
"manaNeeded": 5, "shardsNeeded": 5,
"cost": 1000 "cost": 1000
} }
] ]

View File

@@ -129,12 +129,57 @@
"radiusFactor": 0.5 "radiusFactor": 0.5
}, },
{ {
"name": "Waste Town", "name": "Waste Town Generic",
"type": "town", "type": "town",
"count": 100, "count": 30,
"spriteAtlas": "maps/tileset/buildings.atlas", "spriteAtlas": "maps/tileset/buildings.atlas",
"sprite": "WasteTown", "sprite": "WasteTown",
"map": "maps/map/waste_town.tmx", "map": "maps/map/waste_town_generic.tmx",
"radiusFactor": 0.8
},
{
"name": "Waste Town Identity",
"type": "town",
"count": 35,
"spriteAtlas": "maps/tileset/buildings.atlas",
"sprite": "WasteTown",
"map": "maps/map/waste_town_identity.tmx",
"radiusFactor": 0.8
},
{
"name": "Waste Town Tribal",
"type": "town",
"count": 35,
"spriteAtlas": "maps/tileset/buildings.atlas",
"sprite": "WasteTown",
"map": "maps/map/waste_town_tribal.tmx",
"radiusFactor": 0.8
},
{
"name": "Forest Town Generic",
"type": "town",
"count": 30,
"spriteAtlas": "maps/tileset/buildings.atlas",
"sprite": "ForestTown",
"map": "maps/map/forest_town_generic.tmx",
"radiusFactor": 0.8
},
{
"name": "Forest Town Identity",
"type": "town",
"count": 35,
"spriteAtlas": "maps/tileset/buildings.atlas",
"sprite": "ForestTown",
"map": "maps/map/forest_town_identity.tmx",
"radiusFactor": 0.8
},
{
"name": "Forest Town Tribal",
"type": "town",
"count": 35,
"spriteAtlas": "maps/tileset/buildings.atlas",
"sprite": "ForestTown",
"map": "maps/map/forest_town_tribal.tmx",
"radiusFactor": 0.8 "radiusFactor": 0.8
}, },
{ {
@@ -147,6 +192,32 @@
"radiusFactor": 0.8 "radiusFactor": 0.8
}, },
{ {
"name": "Plains Town Generic",
"type": "town",
"count": 30,
"spriteAtlas": "maps/tileset/buildings.atlas",
"sprite": "PlainsTown",
"map": "maps/map/plains_town_generic.tmx",
"radiusFactor": 0.8
},
{
"name": "Plains Town Identity",
"type": "town",
"count": 35,
"spriteAtlas": "maps/tileset/buildings.atlas",
"sprite": "PlainsTown",
"map": "maps/map/plains_town_identity.tmx",
"radiusFactor": 0.8
},
{
"name": "Plains Town Tribal",
"type": "town",
"count": 35,
"spriteAtlas": "maps/tileset/buildings.atlas",
"sprite": "PlainsTown",
"map": "maps/map/plains_town_tribal.tmx",
"radiusFactor": 0.8
},{
"name": "Plains Town", "name": "Plains Town",
"type": "town", "type": "town",
"count": 100, "count": 100,
@@ -156,6 +227,32 @@
"radiusFactor": 0.8 "radiusFactor": 0.8
}, },
{ {
"name": "Island Town Generic",
"type": "town",
"count": 30,
"spriteAtlas": "maps/tileset/buildings.atlas",
"sprite": "IslandTown",
"map": "maps/map/island_town_generic.tmx",
"radiusFactor": 0.8
},
{
"name": "Island Town Identity",
"type": "town",
"count": 35,
"spriteAtlas": "maps/tileset/buildings.atlas",
"sprite": "IslandTown",
"map": "maps/map/island_town_identity.tmx",
"radiusFactor": 0.8
},
{
"name": "Island Town Tribal",
"type": "town",
"count": 35,
"spriteAtlas": "maps/tileset/buildings.atlas",
"sprite": "IslandTown",
"map": "maps/map/island_town_tribal.tmx",
"radiusFactor": 0.8
},{
"name": "Island Town", "name": "Island Town",
"type": "town", "type": "town",
"count": 100, "count": 100,
@@ -165,6 +262,32 @@
"radiusFactor": 0.8 "radiusFactor": 0.8
}, },
{ {
"name": "Mountain Town Generic",
"type": "town",
"count": 30,
"spriteAtlas": "maps/tileset/buildings.atlas",
"sprite": "MountainTown",
"map": "maps/map/mountain_town_generic.tmx",
"radiusFactor": 0.8
},
{
"name": "Mountain Town Identity",
"type": "town",
"count": 35,
"spriteAtlas": "maps/tileset/buildings.atlas",
"sprite": "MountainTown",
"map": "maps/map/mountain_town_identity.tmx",
"radiusFactor": 0.8
},
{
"name": "Mountain Town Tribal",
"type": "town",
"count": 35,
"spriteAtlas": "maps/tileset/buildings.atlas",
"sprite": "MountainTown",
"map": "maps/map/mountain_town_tribal.tmx",
"radiusFactor": 0.8
},{
"name": "Mountain Town", "name": "Mountain Town",
"type": "town", "type": "town",
"count": 100, "count": 100,
@@ -173,6 +296,33 @@
"map": "maps/map/mountain_town.tmx", "map": "maps/map/mountain_town.tmx",
"radiusFactor": 0.8 "radiusFactor": 0.8
}, },
{
"name": "Swamp Town Generic",
"type": "town",
"count": 30,
"spriteAtlas": "maps/tileset/buildings.atlas",
"sprite": "SwampTown",
"map": "maps/map/swamp_town_generic.tmx",
"radiusFactor": 0.8
},
{
"name": "Swamp Town Identity",
"type": "town",
"count": 35,
"spriteAtlas": "maps/tileset/buildings.atlas",
"sprite": "SwampTown",
"map": "maps/map/swamp_town_identity.tmx",
"radiusFactor": 0.8
},
{
"name": "Swamp Town Tribal",
"type": "town",
"count": 35,
"spriteAtlas": "maps/tileset/buildings.atlas",
"sprite": "SwampTown",
"map": "maps/map/Swamp_town_tribal.tmx",
"radiusFactor": 0.8
},
{ {
"name": "Swamp Town", "name": "Swamp Town",
"type": "town", "type": "town",

View File

@@ -65,7 +65,9 @@
], ],
"pointsOfInterest": [ "pointsOfInterest": [
"Red Castle", "Red Castle",
"Mountain Town", "Mountain Town Generic",
"Mountain Town Identity",
"Mountain Town Tribal",
"Mountain Capital", "Mountain Capital",
"YuleTown", "YuleTown",
"BarbarianCamp", "BarbarianCamp",

Some files were not shown because too many files have changed in this diff Show More