Merge branch 'Card-Forge:master' into master
@@ -570,7 +570,7 @@ public class AiBlockController {
|
|||||||
|
|
||||||
// Try to block a Menace attacker with two blockers, neither of which will die
|
// Try to block a Menace attacker with two blockers, neither of which will die
|
||||||
for (final Card attacker : attackersLeft) {
|
for (final Card attacker : attackersLeft) {
|
||||||
if (CombatUtil.getMinNumBlockersForAttacker(attacker, combat.getDefenderPlayerByAttacker(attacker)) <= 1) {
|
if (CombatUtil.getMinNumBlockersForAttacker(attacker, combat.getDefenderPlayerByAttacker(attacker)) != 2) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -741,19 +741,17 @@ public class AiBlockController {
|
|||||||
combat.addBlocker(attacker, blocker);
|
combat.addBlocker(attacker, blocker);
|
||||||
usedBlockers.add(blocker);
|
usedBlockers.add(blocker);
|
||||||
if (CombatUtil.canAttackerBeBlockedWithAmount(attacker, usedBlockers.size(), combat)) {
|
if (CombatUtil.canAttackerBeBlockedWithAmount(attacker, usedBlockers.size(), combat)) {
|
||||||
|
attackersLeft.remove(attacker);
|
||||||
|
usedBlockers.clear();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (CombatUtil.canAttackerBeBlockedWithAmount(attacker, usedBlockers.size(), combat)) {
|
|
||||||
attackersLeft.remove(attacker);
|
|
||||||
} else {
|
|
||||||
for (Card blocker : usedBlockers) {
|
for (Card blocker : usedBlockers) {
|
||||||
combat.removeBlockAssignment(attacker, blocker);
|
combat.removeBlockAssignment(attacker, blocker);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
/** Reinforce blockers blocking attackers with trample (should only be made if life is in danger) */
|
/** Reinforce blockers blocking attackers with trample (should only be made if life is in danger) */
|
||||||
private void reinforceBlockersAgainstTrample(final Combat combat) {
|
private void reinforceBlockersAgainstTrample(final Combat combat) {
|
||||||
@@ -767,10 +765,7 @@ public class AiBlockController {
|
|||||||
tramplingAttackers = CardLists.filter(tramplingAttackers, Predicates.not(changesPTWhenBlocked(true)));
|
tramplingAttackers = CardLists.filter(tramplingAttackers, Predicates.not(changesPTWhenBlocked(true)));
|
||||||
|
|
||||||
for (final Card attacker : tramplingAttackers) {
|
for (final Card attacker : tramplingAttackers) {
|
||||||
boolean staticAssignCombatDamageAsUnblocked = StaticAbilityAssignCombatDamageAsUnblocked.assignCombatDamageAsUnblocked(attacker);
|
if (CombatUtil.getMinNumBlockersForAttacker(attacker, combat.getDefenderPlayerByAttacker(attacker)) > combat.getBlockers(attacker).size()) {
|
||||||
|
|
||||||
if (CombatUtil.getMinNumBlockersForAttacker(attacker, combat.getDefenderPlayerByAttacker(attacker)) > combat.getBlockers(attacker).size()
|
|
||||||
|| attacker.hasKeyword("CARDNAME can't be blocked unless all creatures defending player controls block it.")) {
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -800,7 +795,7 @@ public class AiBlockController {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (staticAssignCombatDamageAsUnblocked) {
|
if (!needsMoreChumpBlockers || StaticAbilityAssignCombatDamageAsUnblocked.assignCombatDamageAsUnblocked(attacker)) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -935,8 +930,6 @@ public class AiBlockController {
|
|||||||
CardLists.sortByPowerAsc(chumpPWDefenders);
|
CardLists.sortByPowerAsc(chumpPWDefenders);
|
||||||
if (!chumpPWDefenders.isEmpty()) {
|
if (!chumpPWDefenders.isEmpty()) {
|
||||||
for (final Card attacker : attackers) {
|
for (final Card attacker : attackers) {
|
||||||
GameEntity def = combat.getDefenderByAttacker(attacker);
|
|
||||||
if (def instanceof Card && threatenedPWs.contains(def)) {
|
|
||||||
if (attacker.hasKeyword(Keyword.TRAMPLE)) {
|
if (attacker.hasKeyword(Keyword.TRAMPLE)) {
|
||||||
// don't bother trying to chump a trampling creature
|
// don't bother trying to chump a trampling creature
|
||||||
continue;
|
continue;
|
||||||
@@ -945,11 +938,13 @@ public class AiBlockController {
|
|||||||
// already blocked by something, no need to chump
|
// already blocked by something, no need to chump
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
GameEntity def = combat.getDefenderByAttacker(attacker);
|
||||||
|
if (def instanceof Card && threatenedPWs.contains(def)) {
|
||||||
Card blockerDecided = null;
|
Card blockerDecided = null;
|
||||||
for (final Card blocker : chumpPWDefenders) {
|
for (final Card blocker : chumpPWDefenders) {
|
||||||
if (CombatUtil.canBlock(attacker, blocker, combat)) {
|
if (CombatUtil.canBlock(attacker, blocker, combat)) {
|
||||||
combat.addBlocker(attacker, blocker);
|
combat.addBlocker(attacker, blocker);
|
||||||
pwsWithChumpBlocks.add((Card) combat.getDefenderByAttacker(attacker));
|
pwsWithChumpBlocks.add((Card) def);
|
||||||
chosenChumpBlockers.add(blocker);
|
chosenChumpBlockers.add(blocker);
|
||||||
blockerDecided = blocker;
|
blockerDecided = blocker;
|
||||||
blockersLeft.remove(blocker);
|
blockersLeft.remove(blocker);
|
||||||
@@ -962,9 +957,9 @@ public class AiBlockController {
|
|||||||
// check to see if we managed to cover all the blockers of the planeswalker; if not, bail
|
// check to see if we managed to cover all the blockers of the planeswalker; if not, bail
|
||||||
for (final Card pw : pwsWithChumpBlocks) {
|
for (final Card pw : pwsWithChumpBlocks) {
|
||||||
CardCollection pwAttackers = combat.getAttackersOf(pw);
|
CardCollection pwAttackers = combat.getAttackersOf(pw);
|
||||||
|
if (!pwAttackers.isEmpty()) {
|
||||||
CardCollection pwDefenders = new CardCollection();
|
CardCollection pwDefenders = new CardCollection();
|
||||||
boolean isFullyBlocked = true;
|
boolean isFullyBlocked = true;
|
||||||
if (!pwAttackers.isEmpty()) {
|
|
||||||
int damageToPW = 0;
|
int damageToPW = 0;
|
||||||
for (Card pwAtk : pwAttackers) {
|
for (Card pwAtk : pwAttackers) {
|
||||||
if (!combat.getBlockers(pwAtk).isEmpty()) {
|
if (!combat.getBlockers(pwAtk).isEmpty()) {
|
||||||
|
|||||||
@@ -23,7 +23,10 @@ import forge.game.ability.effects.CharmEffect;
|
|||||||
import forge.game.card.*;
|
import forge.game.card.*;
|
||||||
import forge.game.card.CardPredicates.Presets;
|
import forge.game.card.CardPredicates.Presets;
|
||||||
import forge.game.combat.Combat;
|
import forge.game.combat.Combat;
|
||||||
import forge.game.cost.*;
|
import forge.game.cost.Cost;
|
||||||
|
import forge.game.cost.CostEnlist;
|
||||||
|
import forge.game.cost.CostPart;
|
||||||
|
import forge.game.cost.CostPartMana;
|
||||||
import forge.game.keyword.Keyword;
|
import forge.game.keyword.Keyword;
|
||||||
import forge.game.keyword.KeywordInterface;
|
import forge.game.keyword.KeywordInterface;
|
||||||
import forge.game.mana.Mana;
|
import forge.game.mana.Mana;
|
||||||
@@ -257,9 +260,6 @@ public class PlayerControllerAi extends PlayerController {
|
|||||||
public boolean confirmTrigger(WrappedAbility wrapper) {
|
public boolean confirmTrigger(WrappedAbility wrapper) {
|
||||||
final SpellAbility sa = wrapper.getWrappedAbility();
|
final SpellAbility sa = wrapper.getWrappedAbility();
|
||||||
//final Trigger regtrig = wrapper.getTrigger();
|
//final Trigger regtrig = wrapper.getTrigger();
|
||||||
if (ComputerUtilAbility.getAbilitySourceName(sa).equals("Deathmist Raptor")) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
if (wrapper.isMandatory()) {
|
if (wrapper.isMandatory()) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -75,6 +75,9 @@ public class ChooseGenericEffectAi extends SpellAbilityAi {
|
|||||||
}
|
}
|
||||||
return true; // perhaps the opponent(s) had Sigarda, Heron's Grace or another effect giving hexproof in play, still play the creature as 6/6
|
return true; // perhaps the opponent(s) had Sigarda, Heron's Grace or another effect giving hexproof in play, still play the creature as 6/6
|
||||||
}
|
}
|
||||||
|
if (ComputerUtilAbility.getAbilitySourceName(sa).equals("Deathmist Raptor")) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
return super.doTriggerAINoCost(aiPlayer, sa, mandatory);
|
return super.doTriggerAINoCost(aiPlayer, sa, mandatory);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,5 @@
|
|||||||
package forge.ai.ability;
|
package forge.ai.ability;
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import forge.ai.*;
|
import forge.ai.*;
|
||||||
import forge.game.ability.AbilityUtils;
|
import forge.game.ability.AbilityUtils;
|
||||||
import forge.game.ability.ApiType;
|
import forge.game.ability.ApiType;
|
||||||
@@ -17,6 +15,8 @@ import forge.game.trigger.Trigger;
|
|||||||
import forge.game.trigger.TriggerType;
|
import forge.game.trigger.TriggerType;
|
||||||
import forge.util.MyRandom;
|
import forge.util.MyRandom;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
public class FightAi extends SpellAbilityAi {
|
public class FightAi extends SpellAbilityAi {
|
||||||
@Override
|
@Override
|
||||||
protected boolean checkAiLogic(final Player ai, final SpellAbility sa, final String aiLogic) {
|
protected boolean checkAiLogic(final Player ai, final SpellAbility sa, final String aiLogic) {
|
||||||
@@ -31,10 +31,6 @@ public class FightAi extends SpellAbilityAi {
|
|||||||
// everything is defined or targeted above, can't do anything there unless a specific logic is set
|
// everything is defined or targeted above, can't do anything there unless a specific logic is set
|
||||||
if (sa.hasParam("Defined") && !sa.usesTargeting()) {
|
if (sa.hasParam("Defined") && !sa.usesTargeting()) {
|
||||||
// TODO extend Logic for cards like Arena
|
// TODO extend Logic for cards like Arena
|
||||||
if ("Grothama".equals(sa.getParam("AILogic"))) { // Grothama, All-Devouring
|
|
||||||
return SpecialCardAi.GrothamaAllDevouring.consider(ai, sa);
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -120,6 +116,11 @@ public class FightAi extends SpellAbilityAi {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected boolean doTriggerAINoCost(Player ai, SpellAbility sa, boolean mandatory) {
|
protected boolean doTriggerAINoCost(Player ai, SpellAbility sa, boolean mandatory) {
|
||||||
|
final String aiLogic = sa.getParamOrDefault("AILogic", "");
|
||||||
|
if (aiLogic.equals("Grothama")) {
|
||||||
|
return mandatory ? true : SpecialCardAi.GrothamaAllDevouring.consider(ai, sa);
|
||||||
|
}
|
||||||
|
|
||||||
if (checkApiLogic(ai, sa)) {
|
if (checkApiLogic(ai, sa)) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -394,7 +394,7 @@ public abstract class SpellAbilityEffect {
|
|||||||
|
|
||||||
public static void addForgetOnMovedTrigger(final Card card, final String zone) {
|
public static void addForgetOnMovedTrigger(final Card card, final String zone) {
|
||||||
String trig = "Mode$ ChangesZone | ValidCard$ Card.IsRemembered | Origin$ " + zone + " | ExcludedDestinations$ Stack,Exile | Destination$ Any | TriggerZones$ Command | Static$ True";
|
String trig = "Mode$ ChangesZone | ValidCard$ Card.IsRemembered | Origin$ " + zone + " | ExcludedDestinations$ Stack,Exile | Destination$ Any | TriggerZones$ Command | Static$ True";
|
||||||
String trig2 = "Mode$ Exiled | ValidCard$ Card.IsRemembered | TriggerZones$ Command | Static$ True";
|
String trig2 = "Mode$ Exiled | ValidCard$ Card.IsRemembered | ValidCause$ SpellAbility.!EffectSource | TriggerZones$ Command | Static$ True";
|
||||||
|
|
||||||
final Trigger parsedTrigger = TriggerHandler.parseTrigger(trig, card, true);
|
final Trigger parsedTrigger = TriggerHandler.parseTrigger(trig, card, true);
|
||||||
final Trigger parsedTrigger2 = TriggerHandler.parseTrigger(trig2, card, true);
|
final Trigger parsedTrigger2 = TriggerHandler.parseTrigger(trig2, card, true);
|
||||||
|
|||||||
@@ -73,20 +73,9 @@ public class TriggerExiled extends Trigger {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (hasParam("ValidCause")) {
|
if (!matchesValidParam("ValidCause", runParams.get(AbilityKey.Cause))) {
|
||||||
if (!runParams.containsKey(AbilityKey.Cause)) {
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
SpellAbility cause = (SpellAbility) runParams.get(AbilityKey.Cause);
|
|
||||||
if (cause == null) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (!matchesValid(cause, getParam("ValidCause").split(","))) {
|
|
||||||
if (!matchesValid(cause.getHostCard(), getParam("ValidCause").split(","))) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|||||||
|
After Width: | Height: | Size: 156 KiB |
|
After Width: | Height: | Size: 490 KiB |
|
After Width: | Height: | Size: 130 KiB |
@@ -0,0 +1,7 @@
|
|||||||
|
Name:Hallowed Sigil
|
||||||
|
ManaCost:no cost
|
||||||
|
Colors:white
|
||||||
|
Types:Enchantment
|
||||||
|
A:AB$ Pump | Cost$ PayShards<4> T | ValidTgts$ Creature.YouCtrl | KW$ Hexproof | SubAbility$ Eject | ActivationLimit$ 1 | SpellDescription$ Target creature you control gains hexproof until end of turn. Exile Hallowed Sigil.
|
||||||
|
SVar:Eject:DB$ ChangeZone | Defined$ Self | Origin$ Battlefield | Destination$ Exile
|
||||||
|
Oracle:{M},{T}:Target creature you control gains hexproof until end of turn. Exile Hallowed Sigil.
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
Name:Sigil of Torment
|
||||||
|
ManaCost:no cost
|
||||||
|
Colors:black
|
||||||
|
Types:Enchantment
|
||||||
|
A:AB$ Destroy | Cost$ 4 B T PayShards<5> | ValidTgts$ Creature | TgtPrompt$ Select target creature | ActivationLimit$ 1 | SubAbility$ DBLifeGain | SpellDescription$ Destroy target creature. You gain 3 life. Exile Sigil of Torment.
|
||||||
|
SVar:DBLifeGain:DB$ GainLife | Defined$ You | LifeAmount$ 3 | SubAbility$ Eject
|
||||||
|
SVar:Eject:DB$ ChangeZone | Defined$ Self | Origin$ Battlefield | Destination$ Exile
|
||||||
|
Oracle:{M},{T}: Destroy target creature. You gain 3 life. Exile Sigil of Torment.
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
Name:Power of Valyx
|
||||||
|
ManaCost:no cost
|
||||||
|
Colors:black
|
||||||
|
Types:Enchantment
|
||||||
|
K:Hexproof
|
||||||
|
A:AB$ Destroy | Cost$ 4 B T Sac<1/Creature.YouCtrl/creature you control>| ValidTgts$ Creature | TgtPrompt$ Select target creature | SubAbility$ DBLifeGain | SpellDescription$ Destroy target creature. You gain 3 life.
|
||||||
|
SVar:DBLifeGain:DB$ GainLife | Defined$ You | LifeAmount$ 3
|
||||||
|
Oracle:{M},{T}, Sacrifice a creature: Destroy target creature. You gain 3 life.
|
||||||
23
forge-gui/res/adventure/common/decks/miniboss/valyx.dck
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
[metadata]
|
||||||
|
Name=valyx
|
||||||
|
[Main]
|
||||||
|
3 Damnation|MM3|1
|
||||||
|
2 Deathrender|CNS|1
|
||||||
|
2 Deathrender|LRW|1
|
||||||
|
1 Doomed Dissenter|DBL|1
|
||||||
|
2 Doomed Dissenter|GN3|1
|
||||||
|
1 Ecstatic Awakener|DBL|1
|
||||||
|
2 Ecstatic Awakener|MID|1
|
||||||
|
3 Indulgent Tormentor|PM15|1
|
||||||
|
3 Lord of the Void|GTC|1
|
||||||
|
4 Mark of the Oni|BOK|1
|
||||||
|
3 Murder|CMR|1
|
||||||
|
1 Phyrexian Reclamation|C15|1
|
||||||
|
1 Phyrexian Reclamation|J22|1
|
||||||
|
2 Reaper from the Abyss|J22|1
|
||||||
|
3 Sign in Blood|SCD|1
|
||||||
|
1 Skirsdag High Priest|C14|1
|
||||||
|
2 Skirsdag High Priest|J22|1
|
||||||
|
19 Swamp|MOM|1
|
||||||
|
1 Swamp|MOM|3
|
||||||
|
4 Westvale Abbey|SOI|1
|
||||||
48
forge-gui/res/adventure/common/decks/standard/cultist.dck
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
[metadata]
|
||||||
|
Name=cultist
|
||||||
|
[Avatar]
|
||||||
|
|
||||||
|
[Main]
|
||||||
|
2 Bloodgift Demon|SCD|1
|
||||||
|
2 Bloodsoaked Champion|CLB|1
|
||||||
|
2 Bloodsoaked Champion|NCC|1
|
||||||
|
2 Demon of Catastrophes|J22|1
|
||||||
|
1 Doomed Dissenter|BBD|1
|
||||||
|
1 Doomed Dissenter|MB1|1
|
||||||
|
2 Ecstatic Awakener|DBL|1
|
||||||
|
2 Ecstatic Awakener|MID|1
|
||||||
|
2 Feaster of Fools|MH1|1
|
||||||
|
1 Grave Pact|10E|1
|
||||||
|
2 Grave Pact|CM2|1
|
||||||
|
1 Grave Pact|COM|1
|
||||||
|
2 Graven Archfiend|YSNC|1
|
||||||
|
1 Grim Haruspex|C19|1
|
||||||
|
1 Grim Haruspex|CLB|1
|
||||||
|
2 Harvester of Souls|CN2|1
|
||||||
|
2 Herald of Torment|BNG|1
|
||||||
|
1 Murder|CMR|1
|
||||||
|
2 Murder|SNC|1
|
||||||
|
2 Sign in Blood|ARC|1
|
||||||
|
1 Sign in Blood|STA|1
|
||||||
|
4 Skirsdag High Priest|2XM|1
|
||||||
|
11 Swamp|MOM|1
|
||||||
|
2 Swamp|SHM|1
|
||||||
|
2 Swamp|SHM|2
|
||||||
|
5 Swamp|SHM|3
|
||||||
|
2 Swamp|SHM|4
|
||||||
|
[Sideboard]
|
||||||
|
2 Culling Dais|2XM|1
|
||||||
|
2 Furnace Celebration|CMR|1
|
||||||
|
4 Glaring Spotlight|GTC|1
|
||||||
|
2 Grim Return|M14|1
|
||||||
|
1 Lord of the Void|GTC|1
|
||||||
|
2 Ravenous Demon|DKA|1
|
||||||
|
2 Reaper from the Abyss|C14|1
|
||||||
|
[Planes]
|
||||||
|
|
||||||
|
[Schemes]
|
||||||
|
|
||||||
|
[Conspiracy]
|
||||||
|
|
||||||
|
[Dungeon]
|
||||||
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<tileset version="1.10" tiledversion="1.10.1" name="desertbuildingtiles" tilewidth="16" tileheight="16" tilecount="1036" columns="28">
|
|
||||||
<image source="../tileset/desertbuildingtiles.png" width="448" height="592"/>
|
|
||||||
</tileset>
|
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<map version="1.10" tiledversion="1.10.1" orientation="orthogonal" renderorder="right-down" width="64" height="64" tilewidth="16" tileheight="16" infinite="0" nextlayerid="16" nextobjectid="47">
|
<map version="1.10" tiledversion="1.10.1" orientation="orthogonal" renderorder="right-down" width="64" height="64" tilewidth="16" tileheight="16" infinite="0" nextlayerid="16" nextobjectid="48">
|
||||||
<tileset firstgid="1" name="autotiles" tilewidth="16" tileheight="16" tilecount="432" columns="12">
|
<tileset firstgid="1" name="autotiles" tilewidth="16" tileheight="16" tilecount="432" columns="12">
|
||||||
<image source="../../world/tilesets/autotiles.png" width="192" height="576"/>
|
<image source="../../world/tilesets/autotiles.png" width="192" height="576"/>
|
||||||
</tileset>
|
</tileset>
|
||||||
@@ -518,7 +518,82 @@
|
|||||||
</tile>
|
</tile>
|
||||||
</tileset>
|
</tileset>
|
||||||
<tileset firstgid="10581" source="../tileset/buildings.tsx"/>
|
<tileset firstgid="10581" source="../tileset/buildings.tsx"/>
|
||||||
<tileset firstgid="12373" source="../tileset/buildings.tsx"/>
|
<tileset firstgid="12373" source="../tileset/buildings-nocollide.tsx"/>
|
||||||
|
<objectgroup id="7" name="Invisible">
|
||||||
|
<object id="4" template="../obj/exit.tx" name="Hekma" x="8" y="0" width="1016" height="1" visible="0"/>
|
||||||
|
<object id="5" template="../obj/exit.tx" name="Hekma" x="1023" y="-1" width="1" height="1025" visible="0"/>
|
||||||
|
<object id="6" template="../obj/exit.tx" name="Hekma" x="0" y="1018" width="1022" height="6" visible="0"/>
|
||||||
|
<object id="7" template="../obj/exit.tx" name="Hekma" x="0" y="0" width="4" height="1016" visible="0"/>
|
||||||
|
<object id="25" template="../obj/shop.tx" x="721" y="80" width="14" height="14" visible="0">
|
||||||
|
<properties>
|
||||||
|
<property name="signXOffset" type="float" value="3"/>
|
||||||
|
<property name="signYOffset" type="float" value="8"/>
|
||||||
|
</properties>
|
||||||
|
</object>
|
||||||
|
<object id="26" template="../obj/shop.tx" x="721" y="192" width="14" height="14" visible="0">
|
||||||
|
<properties>
|
||||||
|
<property name="signXOffset" type="float" value="3"/>
|
||||||
|
<property name="signYOffset" type="float" value="8"/>
|
||||||
|
</properties>
|
||||||
|
</object>
|
||||||
|
<object id="27" template="../obj/shop.tx" x="673" y="144" width="14" height="14" visible="0">
|
||||||
|
<properties>
|
||||||
|
<property name="signXOffset" type="float" value="3"/>
|
||||||
|
<property name="signYOffset" type="float" value="8"/>
|
||||||
|
</properties>
|
||||||
|
</object>
|
||||||
|
<object id="33" template="../obj/shop.tx" x="641" y="96" width="14" height="14" visible="0">
|
||||||
|
<properties>
|
||||||
|
<property name="signXOffset" type="float" value="3"/>
|
||||||
|
<property name="signYOffset" type="float" value="8"/>
|
||||||
|
</properties>
|
||||||
|
</object>
|
||||||
|
<object id="28" template="../obj/shop.tx" x="753" y="63" width="14" height="13" visible="0">
|
||||||
|
<properties>
|
||||||
|
<property name="signXOffset" type="float" value="3"/>
|
||||||
|
<property name="signYOffset" type="float" value="8"/>
|
||||||
|
</properties>
|
||||||
|
</object>
|
||||||
|
<object id="31" template="../obj/shop.tx" x="833" y="48" width="14" height="15" visible="0">
|
||||||
|
<properties>
|
||||||
|
<property name="signXOffset" type="float" value="3"/>
|
||||||
|
<property name="signYOffset" type="float" value="8"/>
|
||||||
|
</properties>
|
||||||
|
</object>
|
||||||
|
<object id="29" template="../obj/shop.tx" x="769" y="128" width="14" height="14" visible="0">
|
||||||
|
<properties>
|
||||||
|
<property name="signXOffset" type="float" value="3"/>
|
||||||
|
<property name="signYOffset" type="float" value="8"/>
|
||||||
|
</properties>
|
||||||
|
</object>
|
||||||
|
<object id="30" template="../obj/inn.tx" x="721" y="128" width="14" height="16" visible="0"/>
|
||||||
|
<object id="36" template="../obj/portal.tx" x="709" y="333" visible="1">
|
||||||
|
<properties>
|
||||||
|
<property name="direction" value="left"/>
|
||||||
|
<property name="portalState" value="active"/>
|
||||||
|
<property name="teleport" value="../common/maps/map/naktamun.tmx"/>
|
||||||
|
<property name="teleportObjectId" value="37"/>
|
||||||
|
</properties>
|
||||||
|
</object>
|
||||||
|
<object id="37" template="../obj/portal.tx" x="653" y="349" visible="1">
|
||||||
|
<properties>
|
||||||
|
<property name="direction" value="right"/>
|
||||||
|
<property name="portalState" value="active"/>
|
||||||
|
<property name="teleport" value="../common/maps/map/naktamun.tmx"/>
|
||||||
|
<property name="teleportObjectId" value="36"/>
|
||||||
|
</properties>
|
||||||
|
</object>
|
||||||
|
<object id="38" template="../obj/waypoint.tx" x="150" y="396" visible="0"/>
|
||||||
|
<object id="8" template="../obj/entry_down.tx" x="592" y="32" width="16" height="16" visible="1"/>
|
||||||
|
<object id="47" template="../obj/portal.tx" name="Training Area" x="144" y="417" visible="1">
|
||||||
|
<properties>
|
||||||
|
<property name="direction" value="down"/>
|
||||||
|
<property name="portalState" value="active"/>
|
||||||
|
<property name="teleport" value="../common/maps/map/naktamun/gym.tmx"/>
|
||||||
|
<property name="teleportObjectId" value="1"/>
|
||||||
|
</properties>
|
||||||
|
</object>
|
||||||
|
</objectgroup>
|
||||||
<layer id="1" name="Ground" width="64" height="64" locked="1">
|
<layer id="1" name="Ground" width="64" height="64" locked="1">
|
||||||
<data encoding="csv">
|
<data encoding="csv">
|
||||||
74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,4657,32,4184,4184,4184,4184,4184,4184,4184,32,4657,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,
|
74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,4657,32,4184,4184,4184,4184,4184,4184,4184,32,4657,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,
|
||||||
@@ -933,73 +1008,6 @@
|
|||||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||||
</data>
|
</data>
|
||||||
</layer>
|
</layer>
|
||||||
<objectgroup id="7" name="Invisible">
|
|
||||||
<object id="4" template="../obj/exit.tx" name="Hekma" x="8" y="0" width="1016" height="1" visible="0"/>
|
|
||||||
<object id="5" template="../obj/exit.tx" name="Hekma" x="1023" y="-1" width="1" height="1025" visible="0"/>
|
|
||||||
<object id="6" template="../obj/exit.tx" name="Hekma" x="0" y="1018" width="1022" height="6" visible="0"/>
|
|
||||||
<object id="7" template="../obj/exit.tx" name="Hekma" x="0" y="0" width="4" height="1016" visible="0"/>
|
|
||||||
<object id="25" template="../obj/shop.tx" x="721" y="80" width="14" height="14" visible="0">
|
|
||||||
<properties>
|
|
||||||
<property name="signXOffset" type="float" value="3"/>
|
|
||||||
<property name="signYOffset" type="float" value="8"/>
|
|
||||||
</properties>
|
|
||||||
</object>
|
|
||||||
<object id="26" template="../obj/shop.tx" x="721" y="192" width="14" height="14" visible="0">
|
|
||||||
<properties>
|
|
||||||
<property name="signXOffset" type="float" value="3"/>
|
|
||||||
<property name="signYOffset" type="float" value="8"/>
|
|
||||||
</properties>
|
|
||||||
</object>
|
|
||||||
<object id="27" template="../obj/shop.tx" x="673" y="144" width="14" height="14" visible="0">
|
|
||||||
<properties>
|
|
||||||
<property name="signXOffset" type="float" value="3"/>
|
|
||||||
<property name="signYOffset" type="float" value="8"/>
|
|
||||||
</properties>
|
|
||||||
</object>
|
|
||||||
<object id="33" template="../obj/shop.tx" x="641" y="96" width="14" height="14" visible="0">
|
|
||||||
<properties>
|
|
||||||
<property name="signXOffset" type="float" value="3"/>
|
|
||||||
<property name="signYOffset" type="float" value="8"/>
|
|
||||||
</properties>
|
|
||||||
</object>
|
|
||||||
<object id="28" template="../obj/shop.tx" x="753" y="63" width="14" height="13" visible="0">
|
|
||||||
<properties>
|
|
||||||
<property name="signXOffset" type="float" value="3"/>
|
|
||||||
<property name="signYOffset" type="float" value="8"/>
|
|
||||||
</properties>
|
|
||||||
</object>
|
|
||||||
<object id="31" template="../obj/shop.tx" x="833" y="48" width="14" height="15" visible="0">
|
|
||||||
<properties>
|
|
||||||
<property name="signXOffset" type="float" value="3"/>
|
|
||||||
<property name="signYOffset" type="float" value="8"/>
|
|
||||||
</properties>
|
|
||||||
</object>
|
|
||||||
<object id="29" template="../obj/shop.tx" x="769" y="128" width="14" height="14" visible="0">
|
|
||||||
<properties>
|
|
||||||
<property name="signXOffset" type="float" value="3"/>
|
|
||||||
<property name="signYOffset" type="float" value="8"/>
|
|
||||||
</properties>
|
|
||||||
</object>
|
|
||||||
<object id="30" template="../obj/inn.tx" x="721" y="128" width="14" height="16" visible="0"/>
|
|
||||||
<object id="36" template="../obj/portal.tx" x="709" y="333" visible="1">
|
|
||||||
<properties>
|
|
||||||
<property name="direction" value="left"/>
|
|
||||||
<property name="portalState" value="active"/>
|
|
||||||
<property name="teleport" value="../common/maps/map/naktamun.tmx"/>
|
|
||||||
<property name="teleportObjectId" value="37"/>
|
|
||||||
</properties>
|
|
||||||
</object>
|
|
||||||
<object id="37" template="../obj/portal.tx" x="653" y="349" visible="1">
|
|
||||||
<properties>
|
|
||||||
<property name="direction" value="right"/>
|
|
||||||
<property name="portalState" value="active"/>
|
|
||||||
<property name="teleport" value="../common/maps/map/naktamun.tmx"/>
|
|
||||||
<property name="teleportObjectId" value="36"/>
|
|
||||||
</properties>
|
|
||||||
</object>
|
|
||||||
<object id="38" template="../obj/waypoint.tx" x="150" y="396" visible="0"/>
|
|
||||||
<object id="8" template="../obj/entry_down.tx" x="592" y="32" width="16" height="16" visible="1"/>
|
|
||||||
</objectgroup>
|
|
||||||
<objectgroup id="15" name="Enemies">
|
<objectgroup id="15" name="Enemies">
|
||||||
<object id="42" template="../obj/enemy.tx" name="Khenra" x="137" y="396">
|
<object id="42" template="../obj/enemy.tx" name="Khenra" x="137" y="396">
|
||||||
<properties>
|
<properties>
|
||||||
@@ -1052,7 +1060,7 @@
|
|||||||
]
|
]
|
||||||
}
|
}
|
||||||
]</property>
|
]</property>
|
||||||
<property name="enemy" value="Master White Wizard"/>
|
<property name="enemy" value="Warrior"/>
|
||||||
</properties>
|
</properties>
|
||||||
</object>
|
</object>
|
||||||
<object id="45" template="../obj/enemy.tx" name="Mummy" gid="2147495535" x="151" y="396" width="16" height="16">
|
<object id="45" template="../obj/enemy.tx" name="Mummy" gid="2147495535" x="151" y="396" width="16" height="16">
|
||||||
@@ -1061,6 +1069,5 @@
|
|||||||
<property name="waypoints" value="38"/>
|
<property name="waypoints" value="38"/>
|
||||||
</properties>
|
</properties>
|
||||||
</object>
|
</object>
|
||||||
<object id="46" template="../obj/portal.tx" name="Training Area" x="144" y="416"/>
|
|
||||||
</objectgroup>
|
</objectgroup>
|
||||||
</map>
|
</map>
|
||||||
|
|||||||
@@ -1,9 +1,19 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<map version="1.10" tiledversion="1.10.1" orientation="orthogonal" renderorder="right-down" width="100" height="50" tilewidth="16" tileheight="16" infinite="0" nextlayerid="6" nextobjectid="20">
|
<map version="1.10" tiledversion="1.10.1" orientation="orthogonal" renderorder="right-down" width="100" height="50" tilewidth="16" tileheight="16" infinite="0" nextlayerid="6" nextobjectid="20">
|
||||||
<tileset firstgid="1" source="autotiles.tsx"/>
|
<tileset firstgid="1" source="../autotiles.tsx"/>
|
||||||
<tileset firstgid="433" source="../tileset/main.tsx"/>
|
<tileset firstgid="433" source="../../tileset/main.tsx"/>
|
||||||
<tileset firstgid="10545" source="desertbuildingtiles.tsx"/>
|
<tileset firstgid="10545" source="../../tileset/desertbuildingtiles.tsx"/>
|
||||||
<tileset firstgid="11581" source="../tileset/buildings.tsx"/>
|
<tileset firstgid="11581" source="../../tileset/buildings.tsx"/>
|
||||||
|
<objectgroup id="3" name="Hidden Objects" locked="1">
|
||||||
|
<object id="1" template="../../obj/portal.tx" x="672" y="333" width="16" height="16" visible="1">
|
||||||
|
<properties>
|
||||||
|
<property name="direction" value="up"/>
|
||||||
|
<property name="portalState" value="active"/>
|
||||||
|
<property name="teleport" value="../common/maps/map/naktamun.tmx"/>
|
||||||
|
<property name="teleportObjectId" value="47"/>
|
||||||
|
</properties>
|
||||||
|
</object>
|
||||||
|
</objectgroup>
|
||||||
<layer id="1" name="Ground" width="100" height="50" locked="1">
|
<layer id="1" name="Ground" width="100" height="50" locked="1">
|
||||||
<data encoding="csv">
|
<data encoding="csv">
|
||||||
2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,
|
2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,
|
||||||
@@ -58,14 +68,6 @@
|
|||||||
2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452
|
2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452,2452
|
||||||
</data>
|
</data>
|
||||||
</layer>
|
</layer>
|
||||||
<objectgroup id="3" name="Hidden Objects" locked="1">
|
|
||||||
<object id="1" template="../obj/portal.tx" x="671.5" y="351.5">
|
|
||||||
<properties>
|
|
||||||
<property name="direction" value="up"/>
|
|
||||||
</properties>
|
|
||||||
</object>
|
|
||||||
<object id="10" template="../obj/entry_up.tx" x="672" y="352"/>
|
|
||||||
</objectgroup>
|
|
||||||
<layer id="2" name="Buildings" width="100" height="50" locked="1">
|
<layer id="2" name="Buildings" width="100" height="50" locked="1">
|
||||||
<properties>
|
<properties>
|
||||||
<property name="spriteLayer" type="bool" value="true"/>
|
<property name="spriteLayer" type="bool" value="true"/>
|
||||||
@@ -178,37 +180,37 @@
|
|||||||
</data>
|
</data>
|
||||||
</layer>
|
</layer>
|
||||||
<objectgroup id="4" name="Enemies" locked="1">
|
<objectgroup id="4" name="Enemies" locked="1">
|
||||||
<object id="12" template="../obj/enemy.tx" name="Falcon-headed Aven Initiate" x="592" y="320">
|
<object id="12" template="../../obj/enemy.tx" name="Falcon-headed Aven Initiate" x="592" y="320">
|
||||||
<properties>
|
<properties>
|
||||||
<property name="enemy" value="Falcon-headed Aven Warrior"/>
|
<property name="enemy" value="Falcon-headed Aven Warrior"/>
|
||||||
</properties>
|
</properties>
|
||||||
</object>
|
</object>
|
||||||
<object id="13" template="../obj/enemy.tx" name="Ibis-headed Aven Initiate" x="592" y="272">
|
<object id="13" template="../../obj/enemy.tx" name="Ibis-headed Aven Initiate" x="592" y="272">
|
||||||
<properties>
|
<properties>
|
||||||
<property name="enemy" value="Ibis-headed Aven Warrior"/>
|
<property name="enemy" value="Ibis-headed Aven Warrior"/>
|
||||||
</properties>
|
</properties>
|
||||||
</object>
|
</object>
|
||||||
<object id="14" template="../obj/enemy.tx" name="Minotaur Initiate" x="592" y="224">
|
<object id="14" template="../../obj/enemy.tx" name="Minotaur Initiate" x="592" y="224">
|
||||||
<properties>
|
<properties>
|
||||||
<property name="enemy" value="Amonkhet Minotaur Warrior"/>
|
<property name="enemy" value="Amonkhet Minotaur Warrior"/>
|
||||||
</properties>
|
</properties>
|
||||||
</object>
|
</object>
|
||||||
<object id="15" template="../obj/enemy.tx" name="Khenra Initiate" x="752" y="224">
|
<object id="15" template="../../obj/enemy.tx" name="Khenra Initiate" x="752" y="224">
|
||||||
<properties>
|
<properties>
|
||||||
<property name="enemy" value="Khenra Warrior"/>
|
<property name="enemy" value="Khenra Warrior"/>
|
||||||
</properties>
|
</properties>
|
||||||
</object>
|
</object>
|
||||||
<object id="16" template="../obj/enemy.tx" name="Naga Initiate" x="752" y="272">
|
<object id="16" template="../../obj/enemy.tx" name="Naga Initiate" x="752" y="272">
|
||||||
<properties>
|
<properties>
|
||||||
<property name="enemy" value="Naga Warrior"/>
|
<property name="enemy" value="Naga Warrior"/>
|
||||||
</properties>
|
</properties>
|
||||||
</object>
|
</object>
|
||||||
<object id="17" template="../obj/enemy.tx" name="Human Initiate" x="752" y="320">
|
<object id="17" template="../../obj/enemy.tx" name="Human Initiate" x="752" y="320">
|
||||||
<properties>
|
<properties>
|
||||||
<property name="enemy" value="Warrior"/>
|
<property name="enemy" value="Warrior"/>
|
||||||
</properties>
|
</properties>
|
||||||
</object>
|
</object>
|
||||||
<object id="18" template="../obj/enemy.tx" name="Anointed" x="672" y="224">
|
<object id="18" template="../../obj/enemy.tx" name="Anointed" x="672" y="224">
|
||||||
<properties>
|
<properties>
|
||||||
<property name="enemy" value="Mummy"/>
|
<property name="enemy" value="Mummy"/>
|
||||||
</properties>
|
</properties>
|
||||||
196
forge-gui/res/adventure/common/maps/map/unhallowed_abbey_1F.tmx
Normal file
@@ -0,0 +1,196 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<map version="1.9" tiledversion="1.9.2" orientation="orthogonal" renderorder="right-down" width="30" height="22" tilewidth="16" tileheight="16" infinite="0" nextlayerid="9" nextobjectid="90">
|
||||||
|
<editorsettings>
|
||||||
|
<export target="wastetown..tmx" format="tmx"/>
|
||||||
|
</editorsettings>
|
||||||
|
<tileset firstgid="1" source="../tileset/main.tsx"/>
|
||||||
|
<tileset firstgid="10113" source="../tileset/buildings.tsx"/>
|
||||||
|
<layer id="6" name="Collision" width="30" height="22">
|
||||||
|
<data encoding="base64" compression="zlib">
|
||||||
|
eJzt1dEJgCAQBmAfDW6DaJxs1GiEapxoj4o8uEwl9ZSIfriX5Pz4oUhVQqiXjxnOu1xxuTnj6/tF12WU6kt7x74nId66TwNC1HA9x2cLs40mNWzuES6bmkcmOAfPzGcctmmGJMW27WG3Wfcb4d7Xtx/rltj/+5brO8i43V6mf0vUftI31XTZvnCZITa3SW2cTt/fZvwf2XzTjc0GSO1G/w==
|
||||||
|
</data>
|
||||||
|
</layer>
|
||||||
|
<layer id="1" name="Background" width="30" height="22">
|
||||||
|
<data encoding="base64" compression="zlib">
|
||||||
|
eJxjYBhZwI2TeEyJXkrwcLD3CTvxGARIUT+KR/EoHsWjeBSP4sGFARkE62E=
|
||||||
|
</data>
|
||||||
|
</layer>
|
||||||
|
<layer id="2" name="Ground" width="30" height="22">
|
||||||
|
<data encoding="base64" compression="zlib">
|
||||||
|
eJzt1M0NgzAMBWDfOCSZIHQI1imz0K7VH9img5AIWaRRRZ4NgqqqpXeAyHwxikL0/fWq3nOUu5cdncYfP++aulk8uSvprbMgPa0jetg5sdLns9vO5fVoPu3yP7sDtmRexERt1JWYiI24GrNkI+5JaXJ55bx/97fdIeRqdGYX+nqlWyttNj99V3JPSuwlU3pPonbJlLqpfTFTeA+dmd+VTI2b9/BZ94r9pxkBhlPcCw==
|
||||||
|
</data>
|
||||||
|
</layer>
|
||||||
|
<layer id="7" name="Ornamental Walls" width="30" height="22">
|
||||||
|
<data encoding="base64" compression="zlib">
|
||||||
|
eJzt1TEOgCAQBMCrkQ9YGZ+KPNVY+wUbL8ELGljW7ja5hkCmgA0ibTnn+vydmuGuu2j2ILJNz1GzXDsC31zj974l8uxWk2n3miwbMa2NuiNx1923c2gXtINI0B6ivR+xGWavzTStrZPvu0vmj2KaNsm4eeDdXx51O/I=
|
||||||
|
</data>
|
||||||
|
</layer>
|
||||||
|
<layer id="3" name="Clutter" width="30" height="22">
|
||||||
|
<properties>
|
||||||
|
<property name="spriteLayer" type="bool" value="true"/>
|
||||||
|
</properties>
|
||||||
|
<data encoding="base64" compression="zlib">
|
||||||
|
eJxjYBgFo2AU0AtIazEwyGihimlqMjBoadLWXnOgnRZo9roC7XSjsb3I4J8k/eyiF2hD4yvwQLAiD4Qvz4MQw6dvqAJi/TtUwWj8Du/4xQYKNPHzRwFuAABfLAtS
|
||||||
|
</data>
|
||||||
|
</layer>
|
||||||
|
<layer id="8" name="Overhang" width="30" height="22">
|
||||||
|
<data encoding="base64" compression="zlib">
|
||||||
|
eJxjYBgFo2BkAwWegXbBKBgFo2AUjIJRMLQBAEtjAC0=
|
||||||
|
</data>
|
||||||
|
</layer>
|
||||||
|
<objectgroup id="4" name="Objects">
|
||||||
|
<object id="38" template="../obj/entry_up.tx" x="208.333" y="350.665">
|
||||||
|
<properties>
|
||||||
|
<property name="teleport" value=""/>
|
||||||
|
</properties>
|
||||||
|
</object>
|
||||||
|
<object id="50" template="../obj/enemy.tx" x="208.402" y="144.809">
|
||||||
|
<properties>
|
||||||
|
<property name="enemy" value="High Cultist"/>
|
||||||
|
<property name="reward">[
|
||||||
|
{
|
||||||
|
"type": "item",
|
||||||
|
"probability": 1,
|
||||||
|
"count": 1,
|
||||||
|
"itemName": "Cultist's Key"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
</property>
|
||||||
|
<property name="threatRange" type="int" value="30"/>
|
||||||
|
</properties>
|
||||||
|
</object>
|
||||||
|
<object id="66" template="../obj/treasure.tx" x="224" y="95.5">
|
||||||
|
<properties>
|
||||||
|
<property name="reward">[{
|
||||||
|
"type": "randomCard",
|
||||||
|
"count": 2,
|
||||||
|
"colors": [ "colorID" ]
|
||||||
|
},{
|
||||||
|
"type": "randomCard",
|
||||||
|
"count": 1,
|
||||||
|
"probability": 0.5,
|
||||||
|
"rarity": [ "rare" ],
|
||||||
|
"colors": [ "colorID" ]
|
||||||
|
},{
|
||||||
|
"type": "randomCard",
|
||||||
|
"count": 3,
|
||||||
|
"addMaxCount": 2
|
||||||
|
}]</property>
|
||||||
|
</properties>
|
||||||
|
</object>
|
||||||
|
<object id="67" template="../obj/booster.tx" x="224.25" y="80.25">
|
||||||
|
<properties>
|
||||||
|
<property name="reward">[
|
||||||
|
{
|
||||||
|
"editions": [ "SOI", "EMN", "MID", "VOW" ],
|
||||||
|
"type": "card",
|
||||||
|
"count": 10,
|
||||||
|
"rarity": [ "Common" ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"editions": [ "SOI", "EMN", "MID", "VOW" ],
|
||||||
|
"type": "card",
|
||||||
|
"count": 3,
|
||||||
|
"rarity": [ "Uncommon" ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"editions": [ "SOI", "EMN", "MID", "VOW" ],
|
||||||
|
"type": "card",
|
||||||
|
"count": 1,
|
||||||
|
"rarity": [ "Rare", "Mythic Rare" ]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
</property>
|
||||||
|
</properties>
|
||||||
|
</object>
|
||||||
|
<object id="68" template="../obj/enemy.tx" x="172" y="205.5">
|
||||||
|
<properties>
|
||||||
|
<property name="enemy" value="False Monk"/>
|
||||||
|
<property name="threatRange" type="int" value="40"/>
|
||||||
|
</properties>
|
||||||
|
</object>
|
||||||
|
<object id="69" template="../obj/enemy.tx" x="174" y="236.5">
|
||||||
|
<properties>
|
||||||
|
<property name="enemy" value="False Monk"/>
|
||||||
|
<property name="threatRange" type="int" value="40"/>
|
||||||
|
</properties>
|
||||||
|
</object>
|
||||||
|
<object id="70" template="../obj/enemy.tx" x="170" y="270">
|
||||||
|
<properties>
|
||||||
|
<property name="enemy" value="False Monk"/>
|
||||||
|
<property name="threatRange" type="int" value="40"/>
|
||||||
|
</properties>
|
||||||
|
</object>
|
||||||
|
<object id="71" template="../obj/enemy.tx" x="243" y="270">
|
||||||
|
<properties>
|
||||||
|
<property name="enemy" value="False Monk"/>
|
||||||
|
<property name="threatRange" type="int" value="40"/>
|
||||||
|
</properties>
|
||||||
|
</object>
|
||||||
|
<object id="72" template="../obj/enemy.tx" x="243.5" y="235">
|
||||||
|
<properties>
|
||||||
|
<property name="enemy" value="False Monk"/>
|
||||||
|
<property name="threatRange" type="int" value="40"/>
|
||||||
|
</properties>
|
||||||
|
</object>
|
||||||
|
<object id="73" template="../obj/enemy.tx" x="243" y="204.5">
|
||||||
|
<properties>
|
||||||
|
<property name="enemy" value="False Monk"/>
|
||||||
|
<property name="threatRange" type="int" value="40"/>
|
||||||
|
</properties>
|
||||||
|
</object>
|
||||||
|
<object id="74" template="../obj/enemy.tx" x="120" y="182">
|
||||||
|
<properties>
|
||||||
|
<property name="enemy" value="False Knight"/>
|
||||||
|
<property name="threatRange" type="int" value="50"/>
|
||||||
|
<property name="waypoints" value="78,83,79,81,80,82,77,76"/>
|
||||||
|
</properties>
|
||||||
|
</object>
|
||||||
|
<object id="75" template="../obj/enemy.tx" x="300.5" y="186">
|
||||||
|
<properties>
|
||||||
|
<property name="enemy" value="False Knight"/>
|
||||||
|
<property name="threatRange" type="int" value="50"/>
|
||||||
|
<property name="waypoints" value="81,80,82,77,76,78,83,79"/>
|
||||||
|
</properties>
|
||||||
|
</object>
|
||||||
|
<object id="76" template="../obj/waypoint.tx" x="124" y="216"/>
|
||||||
|
<object id="77" template="../obj/waypoint.tx" x="121.5" y="267"/>
|
||||||
|
<object id="78" template="../obj/waypoint.tx" x="134.5" y="165.5"/>
|
||||||
|
<object id="79" template="../obj/waypoint.tx" x="281.5" y="171"/>
|
||||||
|
<object id="80" template="../obj/waypoint.tx" x="293" y="268"/>
|
||||||
|
<object id="81" template="../obj/waypoint.tx" x="301" y="215.5"/>
|
||||||
|
<object id="82" template="../obj/waypoint.tx" x="208" y="270"/>
|
||||||
|
<object id="83" template="../obj/waypoint.tx" x="209" y="175.5"/>
|
||||||
|
<object id="84" template="../obj/enemy.tx" x="207.5" y="224.5">
|
||||||
|
<properties>
|
||||||
|
<property name="enemy" value="False Knight"/>
|
||||||
|
<property name="threatRange" type="int" value="50"/>
|
||||||
|
<property name="waypoints" value="83,82"/>
|
||||||
|
</properties>
|
||||||
|
</object>
|
||||||
|
<object id="85" template="../obj/manashards.tx" x="98.5" y="224"/>
|
||||||
|
<object id="86" template="../obj/gate.tx" x="207.75" y="124.5" width="16.4999" height="22">
|
||||||
|
<properties>
|
||||||
|
<property name="dialog">[{
|
||||||
|
"text":"This door is locked",
|
||||||
|
"options":[
|
||||||
|
{ "name":"Leave" },
|
||||||
|
{
|
||||||
|
"name":"Unlock with Cultist's Key",
|
||||||
|
"condition":[{"item":"Cultist's Key"}],
|
||||||
|
"text":"The gate is unlocked.",
|
||||||
|
"options":[{"name":"Continue.", "action":[ {"deleteMapObject":-1},{"removeItem":"Cultist's Key"}]} ]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}]</property>
|
||||||
|
</properties>
|
||||||
|
</object>
|
||||||
|
<object id="87" template="../obj/manashards.tx" x="321.5" y="217.75"/>
|
||||||
|
<object id="88" template="../obj/manashards.tx" x="192.25" y="128.5"/>
|
||||||
|
<object id="89" template="../obj/entry_up.tx" gid="1073753167" x="192.087" y="64" rotation="0">
|
||||||
|
<properties>
|
||||||
|
<property name="teleport" value="../common/maps/map/unhallowed_abbey_2F.tmx"/>
|
||||||
|
</properties>
|
||||||
|
</object>
|
||||||
|
</objectgroup>
|
||||||
|
</map>
|
||||||
411
forge-gui/res/adventure/common/maps/map/unhallowed_abbey_2F.tmx
Normal file
@@ -0,0 +1,411 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<map version="1.9" tiledversion="1.9.2" orientation="orthogonal" renderorder="right-down" width="30" height="19" tilewidth="16" tileheight="16" infinite="0" nextlayerid="8" nextobjectid="117">
|
||||||
|
<editorsettings>
|
||||||
|
<export target="wastetown..tmx" format="tmx"/>
|
||||||
|
</editorsettings>
|
||||||
|
<properties>
|
||||||
|
<property name="dungeonEffect" value=""/>
|
||||||
|
</properties>
|
||||||
|
<tileset firstgid="1" source="../tileset/main.tsx"/>
|
||||||
|
<tileset firstgid="10113" source="../tileset/buildings.tsx"/>
|
||||||
|
<tileset firstgid="11905" source="../tileset/DarkAbbeyTiles.tsx"/>
|
||||||
|
<layer id="6" name="Collision" width="30" height="19">
|
||||||
|
<data encoding="base64" compression="zlib">
|
||||||
|
eJxjYBi8wI2TMKaFnU8JmPuYynYTYye17SbFTmrZjctOdDOx2UGJ3SB903gxMUh8Nw9x6si1FxsAmYmPj6yfHLuxhScuc7DJDXV76aUfpG8lB3l6l3NQnpdgdhMbzpTaiW43MfZSy050u/EBatuJbDe+dEurOgnZHnz84WgvtcIWAIOHLCo=
|
||||||
|
</data>
|
||||||
|
</layer>
|
||||||
|
<layer id="1" name="Background" width="30" height="19">
|
||||||
|
<data encoding="base64" compression="zlib">
|
||||||
|
eJx7ws7A8GQI4UJ54jE1zCAVD4Sd+Oynt33UjD9y7B6u4QyzE91uevkRXYxe4YzN/8MtXvHZTUt34Ms/tPY/NrMHMv8OZN1ArDtM+BhQQBM3+XaBzCIFIwNS9Q4GDAAw7Fue
|
||||||
|
</data>
|
||||||
|
</layer>
|
||||||
|
<layer id="2" name="Ground" width="30" height="19">
|
||||||
|
<data encoding="base64" compression="zlib">
|
||||||
|
eJzV1F0KwkAMBOB9788F2tIzCD2NnsIDqNeqtb2bK7IQFpvMBFcwMBS2bL/koZnrEOYfpM+C3Dk1ISz1fo7N99z0/mU+4lOrO2Az8yImaqMuYyI24npMy0bcQZjn0U5enXPeQZkV6aGEm2ytp1KuVaXcQ4e5U8u5W8yt8s16ifdW57y9007mp+8ye5KxNZPdk6htmawr7Wv1jvxP05lletz8jtwRbP8ybGn78R/qCRGT22E=
|
||||||
|
</data>
|
||||||
|
</layer>
|
||||||
|
<layer id="7" name="Ornamental Walls" width="30" height="19">
|
||||||
|
<data encoding="base64" compression="zlib">
|
||||||
|
eJzl1G0OQDAMBuD+ZnoFcRXBwdzFvTDugcwSZsOqPhJv0tik2xM/CuCbkQFAGR5XH/CbidjviwWffdbktF1mFaky11y26zszXO9T3PZom+p2450S18/JLWYrR+Xa+q64tjTjne3s1qj2Puep7t3n/+hSZ0HPICXUOfT913DYHKavzWmatq5llu85TTM294m86ZpFzQDLEj8K
|
||||||
|
</data>
|
||||||
|
</layer>
|
||||||
|
<layer id="3" name="Clutter" width="30" height="19">
|
||||||
|
<properties>
|
||||||
|
<property name="spriteLayer" type="bool" value="true"/>
|
||||||
|
</properties>
|
||||||
|
<data encoding="base64" compression="zlib">
|
||||||
|
eJxjYBgFo2AUDDZQKE89sx5rMjA80SRdjlLwH2SuFulyo4A0MBq/o2AU4AcAe0YOPQ==
|
||||||
|
</data>
|
||||||
|
</layer>
|
||||||
|
<objectgroup id="4" name="Objects">
|
||||||
|
<object id="66" template="../obj/treasure.tx" x="256.447" y="95.763">
|
||||||
|
<properties>
|
||||||
|
<property name="reward">[{
|
||||||
|
"type": "randomCard",
|
||||||
|
"count": 2,
|
||||||
|
"colors": [ "colorID" ]
|
||||||
|
},{
|
||||||
|
"type": "randomCard",
|
||||||
|
"count": 1,
|
||||||
|
"probability": 0.5,
|
||||||
|
"rarity": [ "rare" ],
|
||||||
|
"colors": [ "colorID" ]
|
||||||
|
},{
|
||||||
|
"type": "randomCard",
|
||||||
|
"count": 3,
|
||||||
|
"addMaxCount": 2
|
||||||
|
}]</property>
|
||||||
|
</properties>
|
||||||
|
</object>
|
||||||
|
<object id="75" template="../obj/enemy.tx" x="291.571" y="166.141">
|
||||||
|
<properties>
|
||||||
|
<property name="enemy" value="Demon"/>
|
||||||
|
<property name="threatRange" type="int" value="30"/>
|
||||||
|
<property name="waypoints" value="100,101,99"/>
|
||||||
|
</properties>
|
||||||
|
</object>
|
||||||
|
<object id="83" template="../obj/waypoint.tx" x="193.014" y="286.598"/>
|
||||||
|
<object id="86" template="../obj/entry_up.tx" x="208.316" y="175.684">
|
||||||
|
<properties>
|
||||||
|
<property name="teleport" value="../common/maps/map/unhallowed_abbey_1F.tmx"/>
|
||||||
|
</properties>
|
||||||
|
</object>
|
||||||
|
<object id="87" template="../obj/booster.tx" x="272.228" y="95.7719">
|
||||||
|
<properties>
|
||||||
|
<property name="reward">[
|
||||||
|
{
|
||||||
|
"editions": [ "VOW" ],
|
||||||
|
"type": "card",
|
||||||
|
"count": 10,
|
||||||
|
"rarity": [ "Common" ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"editions": [ "VOW" ],
|
||||||
|
"type": "card",
|
||||||
|
"count": 3,
|
||||||
|
"rarity": [ "Uncommon" ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"editions": [ "VOW" ],
|
||||||
|
"type": "card",
|
||||||
|
"count": 1,
|
||||||
|
"rarity": [ "Rare", "Mythic Rare" ]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
</property>
|
||||||
|
</properties>
|
||||||
|
</object>
|
||||||
|
<object id="88" template="../obj/treasure.tx" x="240.333" y="47.6667">
|
||||||
|
<properties>
|
||||||
|
<property name="reward">[{
|
||||||
|
"type": "randomCard",
|
||||||
|
"count": 2,
|
||||||
|
"colors": [ "colorID" ]
|
||||||
|
},{
|
||||||
|
"type": "randomCard",
|
||||||
|
"count": 1,
|
||||||
|
"probability": 0.5,
|
||||||
|
"rarity": [ "rare" ],
|
||||||
|
"colors": [ "colorID" ]
|
||||||
|
},{
|
||||||
|
"type": "randomCard",
|
||||||
|
"count": 3,
|
||||||
|
"addMaxCount": 2
|
||||||
|
}]</property>
|
||||||
|
</properties>
|
||||||
|
</object>
|
||||||
|
<object id="89" template="../obj/booster.tx" x="257.333" y="47.3333">
|
||||||
|
<properties>
|
||||||
|
<property name="reward">[
|
||||||
|
{
|
||||||
|
"editions": [ "MID" ],
|
||||||
|
"type": "card",
|
||||||
|
"count": 10,
|
||||||
|
"rarity": [ "Common" ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"editions": [ "MID" ],
|
||||||
|
"type": "card",
|
||||||
|
"count": 3,
|
||||||
|
"rarity": [ "Uncommon" ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"editions": [ "MID" ],
|
||||||
|
"type": "card",
|
||||||
|
"count": 1,
|
||||||
|
"rarity": [ "Rare", "Mythic Rare" ]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
</property>
|
||||||
|
</properties>
|
||||||
|
</object>
|
||||||
|
<object id="90" template="../obj/treasure.tx" x="175.667" y="48.3333">
|
||||||
|
<properties>
|
||||||
|
<property name="reward">[{
|
||||||
|
"type": "randomCard",
|
||||||
|
"count": 2,
|
||||||
|
"colors": [ "colorID" ]
|
||||||
|
},{
|
||||||
|
"type": "randomCard",
|
||||||
|
"count": 1,
|
||||||
|
"probability": 0.5,
|
||||||
|
"rarity": [ "rare" ],
|
||||||
|
"colors": [ "colorID" ]
|
||||||
|
},{
|
||||||
|
"type": "randomCard",
|
||||||
|
"count": 3,
|
||||||
|
"addMaxCount": 2
|
||||||
|
}]</property>
|
||||||
|
</properties>
|
||||||
|
</object>
|
||||||
|
<object id="91" template="../obj/treasure.tx" x="144.333" y="95">
|
||||||
|
<properties>
|
||||||
|
<property name="reward">[{
|
||||||
|
"type": "randomCard",
|
||||||
|
"count": 2,
|
||||||
|
"colors": [ "colorID" ]
|
||||||
|
},{
|
||||||
|
"type": "randomCard",
|
||||||
|
"count": 1,
|
||||||
|
"probability": 0.5,
|
||||||
|
"rarity": [ "rare" ],
|
||||||
|
"colors": [ "colorID" ]
|
||||||
|
},{
|
||||||
|
"type": "randomCard",
|
||||||
|
"count": 3,
|
||||||
|
"addMaxCount": 2
|
||||||
|
}]</property>
|
||||||
|
</properties>
|
||||||
|
</object>
|
||||||
|
<object id="92" template="../obj/booster.tx" x="127.667" y="94">
|
||||||
|
<properties>
|
||||||
|
<property name="reward">[
|
||||||
|
{
|
||||||
|
"editions": [ "SOI" ],
|
||||||
|
"type": "card",
|
||||||
|
"count": 10,
|
||||||
|
"rarity": [ "Common" ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"editions": [ "SOI" ],
|
||||||
|
"type": "card",
|
||||||
|
"count": 3,
|
||||||
|
"rarity": [ "Uncommon" ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"editions": [ "SOI" ],
|
||||||
|
"type": "card",
|
||||||
|
"count": 1,
|
||||||
|
"rarity": [ "Rare", "Mythic Rare" ]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
</property>
|
||||||
|
</properties>
|
||||||
|
</object>
|
||||||
|
<object id="93" template="../obj/booster.tx" x="159" y="47">
|
||||||
|
<properties>
|
||||||
|
<property name="reward">[
|
||||||
|
{
|
||||||
|
"editions": [ "EMN" ],
|
||||||
|
"type": "card",
|
||||||
|
"count": 10,
|
||||||
|
"rarity": [ "Common" ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"editions": [ "EMN" ],
|
||||||
|
"type": "card",
|
||||||
|
"count": 3,
|
||||||
|
"rarity": [ "Uncommon" ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"editions": [ "EMN" ],
|
||||||
|
"type": "card",
|
||||||
|
"count": 1,
|
||||||
|
"rarity": [ "Rare", "Mythic Rare" ]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
</property>
|
||||||
|
</properties>
|
||||||
|
</object>
|
||||||
|
<object id="94" template="../obj/enemy.tx" x="208.666" y="270.394">
|
||||||
|
<properties>
|
||||||
|
<property name="enemy" value="Demon"/>
|
||||||
|
<property name="threatRange" type="int" value="30"/>
|
||||||
|
<property name="waypoints" value="98,97,83"/>
|
||||||
|
</properties>
|
||||||
|
</object>
|
||||||
|
<object id="95" template="../obj/enemy.tx" x="122.212" y="172.727">
|
||||||
|
<properties>
|
||||||
|
<property name="enemy" value="Demon"/>
|
||||||
|
<property name="threatRange" type="int" value="30"/>
|
||||||
|
<property name="waypoints" value="104,102,103"/>
|
||||||
|
</properties>
|
||||||
|
</object>
|
||||||
|
<object id="97" template="../obj/waypoint.tx" x="192.727" y="255.455"/>
|
||||||
|
<object id="98" template="../obj/waypoint.tx" x="223.091" y="255.455"/>
|
||||||
|
<object id="99" template="../obj/waypoint.tx" x="288.545" y="127.273"/>
|
||||||
|
<object id="100" template="../obj/waypoint.tx" x="287.636" y="192"/>
|
||||||
|
<object id="101" template="../obj/waypoint.tx" x="319.091" y="159.273"/>
|
||||||
|
<object id="102" template="../obj/waypoint.tx" x="97.4545" y="159.636"/>
|
||||||
|
<object id="103" template="../obj/waypoint.tx" x="126.545" y="127.455"/>
|
||||||
|
<object id="104" template="../obj/waypoint.tx" x="125.636" y="200.909"/>
|
||||||
|
<object id="108" name="Ward" class="dialog" gid="11912" x="192.063" y="128.292" width="48" height="16">
|
||||||
|
<properties>
|
||||||
|
<property name="dialog">[{
|
||||||
|
"text":"A translucent, shimmering red field blocks your path. Pained screams echo through the room behind you.",
|
||||||
|
"options":[
|
||||||
|
{ "name":"Leave." }
|
||||||
|
]
|
||||||
|
}]</property>
|
||||||
|
</properties>
|
||||||
|
</object>
|
||||||
|
<object id="109" name="Sacrifice1" class="dialog" gid="11905" x="159.667" y="123.333" width="16" height="16">
|
||||||
|
<properties>
|
||||||
|
<property name="dialog">[
|
||||||
|
{
|
||||||
|
"text":"A captive lies tied to the altar. Glowing red runes encircle them.",
|
||||||
|
"options":[
|
||||||
|
{
|
||||||
|
"text":"As the third captive is freed, you hear the sound of shattering as the barrier in the center of the chamber fails. Time to end this.",
|
||||||
|
"action":[{"deleteMapObject":-1},{"advanceMapFlag":"gate"}],
|
||||||
|
"name":"Free them."
|
||||||
|
"options":[{
|
||||||
|
"condition":[{"getMapFlag":{"key":"gate","op":">=","val":3}}],
|
||||||
|
"action":[{"deleteMapObject":108}],
|
||||||
|
"name":"ok" }]
|
||||||
|
},
|
||||||
|
{ "name":"Leave." }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
]</property>
|
||||||
|
</properties>
|
||||||
|
</object>
|
||||||
|
<object id="110" name="Sacrifice2" class="dialog" gid="11906" x="256.667" y="123.667" width="16" height="16">
|
||||||
|
<properties>
|
||||||
|
<property name="dialog">[
|
||||||
|
{
|
||||||
|
"text":"A captive lies tied to the altar. Glowing red runes encircle them.",
|
||||||
|
"options":[
|
||||||
|
{
|
||||||
|
"text":"As the third captive is freed, you hear the sound of shattering as the barrier in the center of the chamber fails. Time to end this.",
|
||||||
|
"action":[{"deleteMapObject":-1},{"advanceMapFlag":"gate"}],
|
||||||
|
"name":"Free them."
|
||||||
|
"options":[{
|
||||||
|
"condition":[{"getMapFlag":{"key":"gate","op":">=","val":3}}],
|
||||||
|
"action":[{"deleteMapObject":108}],
|
||||||
|
"name":"ok" }]
|
||||||
|
},
|
||||||
|
{ "name":"Leave." }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
]</property>
|
||||||
|
</properties>
|
||||||
|
</object>
|
||||||
|
<object id="111" name="Sacrifice3" class="dialog" gid="11907" x="224" y="285.333" width="16" height="16">
|
||||||
|
<properties>
|
||||||
|
<property name="dialog">[
|
||||||
|
{
|
||||||
|
"text":"A captive lies tied to the altar. Glowing red runes encircle them.",
|
||||||
|
"options":[
|
||||||
|
{
|
||||||
|
"text":"As the third captive is freed, you hear the sound of shattering as the barrier in the center of the chamber fails. Time to end this.",
|
||||||
|
"action":[{"deleteMapObject":-1},{"advanceMapFlag":"gate"}],
|
||||||
|
"name":"Free them."
|
||||||
|
"options":[{
|
||||||
|
"condition":[{"getMapFlag":{"key":"gate","op":">=","val":3}}],
|
||||||
|
"action":[{"deleteMapObject":108}],
|
||||||
|
"name":"ok" }]
|
||||||
|
},
|
||||||
|
{ "name":"Leave." }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
]</property>
|
||||||
|
</properties>
|
||||||
|
</object>
|
||||||
|
<object id="113" template="../obj/dialog.tx" x="209.364" y="114.091" width="13.8182" height="13.3636">
|
||||||
|
<properties>
|
||||||
|
<property name="dialog">[{
|
||||||
|
"text":"*The large, imposing demon before you smirks*\n Ah, so you must be the one who's been freeing my sacrifices...and the volunteer to be my new one. Tell me, mortal, as your last words that aren't a howl of pain - why challenge me?",
|
||||||
|
"options":[{
|
||||||
|
"name":"Because you're a monster, and you should be stopped!",
|
||||||
|
"text":"*The demon sneers.*\n Ah, a noble *hero*. I should have guessed. Your kind die like anyone else when your power runs dry - allow me to demonstrate!",
|
||||||
|
"options":[{
|
||||||
|
"name":"End",
|
||||||
|
"action":[{"deleteMapObject":113}]
|
||||||
|
}]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name":"I want power. I'll take it from what's left of you.",
|
||||||
|
"text":"*The demon chuckles.*\n I'll commend your ambition, if not your sense. Fight hard enough, and I might let you replace that failure you dealt with upstairs.",
|
||||||
|
"options":[{
|
||||||
|
"name":"End",
|
||||||
|
"action":[{"deleteMapObject":113}]
|
||||||
|
}]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name":"Honestly, you just looked like you'd be a good fight.",
|
||||||
|
"text":"*The demon blinks in surprise, then laughs.*\n Well, if that's what you seek, you'll find more than you bargained for here. I hope you enjoy the last battle of your life, *mortal*.",
|
||||||
|
"options":[{
|
||||||
|
"name":"End",
|
||||||
|
"action":[{"deleteMapObject":113}]
|
||||||
|
}]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name":"...",
|
||||||
|
"text":"*The fiend's eyes narrow.*\n Too scared for words? So be it, mortal. You'll die all the same.",
|
||||||
|
"options":[{
|
||||||
|
"name":"End",
|
||||||
|
"action":[{"deleteMapObject":113}]
|
||||||
|
}]
|
||||||
|
}]
|
||||||
|
}]</property>
|
||||||
|
</properties>
|
||||||
|
</object>
|
||||||
|
<object id="116" template="../obj/enemy.tx" x="203.566" y="96.2358" width="24" height="24">
|
||||||
|
<properties>
|
||||||
|
<property name="defeatDialog">[{
|
||||||
|
"text":"*With a snarl of pain, the demon collapses to the floor.* \n Congratulations, mortal, you've bested me. In exchange for my life, I offer a lesson - the same killing power I wield.",
|
||||||
|
"options":[{
|
||||||
|
"name":"I have no need for power from something as vile as you. Die!",
|
||||||
|
"text":"*The demon's eyes widen in fear.* \n No! I will not be destroyed by- \n *A final blast of power reduces him to mana in the air of this place, and something clatters to the ground. A holy symbol of this place - or rather, what it once was. As the unholy energy around it fades, you can still feel magic coursing through it.*"
|
||||||
|
"options":[{
|
||||||
|
"name":"End",
|
||||||
|
"action":[{"addItem":"Hallowed Sigil"},{"deleteMapObject":116}]
|
||||||
|
}]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name":"If you knew anything worth teaching me directly, I wouldn't have been able to defeat you.",
|
||||||
|
"text":"*The demon's eyes widen in fear.* \n No! I will not be destroyed by- \n *A final blast of power reduces him to mana in the air of this place, and something clatters to the ground. A holy symbol of this place - or rather, what it once was. As the unholy energy around it fades, you can still feel magic coursing through it.*"
|
||||||
|
"options":[{
|
||||||
|
"name":"End",
|
||||||
|
"action":[{"addItem":"Hallowed Sigil"},{"deleteMapObject":116}]
|
||||||
|
}]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name":"...Very well, even a monster like you deserves mercy. *Once.*",
|
||||||
|
"text":"*The demon smiles, moving his hand in an arcane gesture.* \n *As you unconsciously mimic it, you feel a dark, repulsive power crystallize in your hand. \n *The demon smiles as he begins to fade into a cloud of smoke.* \n Very well, mortal. My power is yours to wield...until next time."
|
||||||
|
"options":[{
|
||||||
|
"name":"End",
|
||||||
|
"action":[{"addItem":"Unhallowed Sigil"},{"deleteMapObject":116}]
|
||||||
|
}]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name":"As you should. I'll take your offer.",
|
||||||
|
"text":"*The demon smiles, moving his hand in an arcane gesture.* \n *As you unconsciously mimic it, you feel a dark, repulsive power crystallize in your hand. \n *The demon smiles as he begins to fade into a cloud of smoke.* \n Very well, mortal. My power is yours to wield...until next time."
|
||||||
|
"options":[{
|
||||||
|
"name":"End",
|
||||||
|
"action":[{"addItem":"Unhallowed Sigil"},{"deleteMapObject":116}]
|
||||||
|
}]
|
||||||
|
}]
|
||||||
|
}]
|
||||||
|
</property>
|
||||||
|
<property name="effect">{ "startBattleWithCard": [ "Mox Jet", "Power of Valyx"]
|
||||||
|
}</property>
|
||||||
|
<property name="enemy" value="Valyx Feaster of Torment"/>
|
||||||
|
</properties>
|
||||||
|
</object>
|
||||||
|
</objectgroup>
|
||||||
|
</map>
|
||||||
BIN
forge-gui/res/adventure/common/maps/tileset/DarkAbbeyTiles.png
Normal file
|
After Width: | Height: | Size: 784 B |
@@ -0,0 +1,4 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<tileset version="1.9" tiledversion="1.9.2" name="DarkAbbeyTiles" tilewidth="16" tileheight="16" tilecount="30" columns="6">
|
||||||
|
<image source="DarkAbbeyTiles.png" width="96" height="80"/>
|
||||||
|
</tileset>
|
||||||
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 13 KiB |
1406
forge-gui/res/adventure/common/maps/tileset/desertbuildingtiles.tsx
Normal file
|
Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 1.7 KiB |
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.8 KiB |
@@ -0,0 +1,68 @@
|
|||||||
|
valyx.png
|
||||||
|
size: 136,96
|
||||||
|
format: RGBA8888
|
||||||
|
filter: Nearest,Nearest
|
||||||
|
repeat: none
|
||||||
|
Avatar
|
||||||
|
xy: 0, 0
|
||||||
|
size: 16, 16
|
||||||
|
Idle
|
||||||
|
xy: 0, 16
|
||||||
|
size: 24, 24
|
||||||
|
Idle
|
||||||
|
xy: 24, 16
|
||||||
|
size: 24, 24
|
||||||
|
Idle
|
||||||
|
xy: 48, 16
|
||||||
|
size: 24, 24
|
||||||
|
Idle
|
||||||
|
xy: 72, 16
|
||||||
|
size: 24, 24
|
||||||
|
Walk
|
||||||
|
xy: 0, 40
|
||||||
|
size: 24, 24
|
||||||
|
Walk
|
||||||
|
xy: 24, 40
|
||||||
|
size: 24, 24
|
||||||
|
Walk
|
||||||
|
xy: 48, 40
|
||||||
|
size: 24, 24
|
||||||
|
Walk
|
||||||
|
xy: 72, 40
|
||||||
|
size: 24, 24
|
||||||
|
Attack
|
||||||
|
xy: 0, 64
|
||||||
|
size: 24, 24
|
||||||
|
Attack
|
||||||
|
xy: 24, 64
|
||||||
|
size: 24, 24
|
||||||
|
Attack
|
||||||
|
xy: 48, 64
|
||||||
|
size: 24, 24
|
||||||
|
Attack
|
||||||
|
xy: 72, 64
|
||||||
|
size: 24, 24
|
||||||
|
Hit
|
||||||
|
xy: 0, 88
|
||||||
|
size: 24, 24
|
||||||
|
Hit
|
||||||
|
xy: 24, 88
|
||||||
|
size: 24, 24
|
||||||
|
Hit
|
||||||
|
xy: 48, 88
|
||||||
|
size: 24, 24
|
||||||
|
Hit
|
||||||
|
xy: 72, 88
|
||||||
|
size: 24, 24
|
||||||
|
Death
|
||||||
|
xy: 0, 112
|
||||||
|
size: 24, 24
|
||||||
|
Death
|
||||||
|
xy: 24, 112
|
||||||
|
size: 24, 24
|
||||||
|
Death
|
||||||
|
xy: 48, 112
|
||||||
|
size: 24, 24
|
||||||
|
Death
|
||||||
|
xy: 72, 112
|
||||||
|
size: 24, 24
|
||||||
BIN
forge-gui/res/adventure/common/sprites/enemy/fiend/valyx.png
Normal file
|
After Width: | Height: | Size: 4.0 KiB |
@@ -0,0 +1,68 @@
|
|||||||
|
false_knight.png
|
||||||
|
size: 64,96
|
||||||
|
format: RGBA8888
|
||||||
|
filter: Nearest,Nearest
|
||||||
|
repeat: none
|
||||||
|
Avatar
|
||||||
|
xy: 0, 0
|
||||||
|
size: 16, 16
|
||||||
|
Idle
|
||||||
|
xy: 0, 16
|
||||||
|
size: 16, 16
|
||||||
|
Idle
|
||||||
|
xy: 16, 16
|
||||||
|
size: 16, 16
|
||||||
|
Idle
|
||||||
|
xy: 32, 16
|
||||||
|
size: 16, 16
|
||||||
|
Idle
|
||||||
|
xy: 48, 16
|
||||||
|
size: 16, 16
|
||||||
|
Walk
|
||||||
|
xy: 0, 32
|
||||||
|
size: 16, 16
|
||||||
|
Walk
|
||||||
|
xy: 16, 32
|
||||||
|
size: 16, 16
|
||||||
|
Walk
|
||||||
|
xy: 32, 32
|
||||||
|
size: 16, 16
|
||||||
|
Walk
|
||||||
|
xy: 48, 32
|
||||||
|
size: 16, 16
|
||||||
|
Attack
|
||||||
|
xy: 0, 48
|
||||||
|
size: 16, 16
|
||||||
|
Attack
|
||||||
|
xy: 16, 48
|
||||||
|
size: 16, 16
|
||||||
|
Attack
|
||||||
|
xy: 32, 48
|
||||||
|
size: 16, 16
|
||||||
|
Attack
|
||||||
|
xy: 48, 48
|
||||||
|
size: 16, 16
|
||||||
|
Hit
|
||||||
|
xy: 0, 64
|
||||||
|
size: 16, 16
|
||||||
|
Hit
|
||||||
|
xy: 16, 64
|
||||||
|
size: 16, 16
|
||||||
|
Hit
|
||||||
|
xy: 32, 64
|
||||||
|
size: 16, 16
|
||||||
|
Hit
|
||||||
|
xy: 48, 64
|
||||||
|
size: 16, 16
|
||||||
|
Death
|
||||||
|
xy: 0, 80
|
||||||
|
size: 16, 16
|
||||||
|
Death
|
||||||
|
xy: 16, 80
|
||||||
|
size: 16, 16
|
||||||
|
Death
|
||||||
|
xy: 32, 80
|
||||||
|
size: 16, 16
|
||||||
|
Death
|
||||||
|
xy: 48, 80
|
||||||
|
size: 16, 16
|
||||||
|
After Width: | Height: | Size: 3.3 KiB |
@@ -0,0 +1,68 @@
|
|||||||
|
false_monk.png
|
||||||
|
size: 64,96
|
||||||
|
format: RGBA8888
|
||||||
|
filter: Nearest,Nearest
|
||||||
|
repeat: none
|
||||||
|
Avatar
|
||||||
|
xy: 0, 0
|
||||||
|
size: 16, 16
|
||||||
|
Idle
|
||||||
|
xy: 0, 16
|
||||||
|
size: 16, 16
|
||||||
|
Idle
|
||||||
|
xy: 16, 16
|
||||||
|
size: 16, 16
|
||||||
|
Idle
|
||||||
|
xy: 32, 16
|
||||||
|
size: 16, 16
|
||||||
|
Idle
|
||||||
|
xy: 48, 16
|
||||||
|
size: 16, 16
|
||||||
|
Walk
|
||||||
|
xy: 0, 32
|
||||||
|
size: 16, 16
|
||||||
|
Walk
|
||||||
|
xy: 16, 32
|
||||||
|
size: 16, 16
|
||||||
|
Walk
|
||||||
|
xy: 32, 32
|
||||||
|
size: 16, 16
|
||||||
|
Walk
|
||||||
|
xy: 48, 32
|
||||||
|
size: 16, 16
|
||||||
|
Attack
|
||||||
|
xy: 0, 48
|
||||||
|
size: 16, 16
|
||||||
|
Attack
|
||||||
|
xy: 16, 48
|
||||||
|
size: 16, 16
|
||||||
|
Attack
|
||||||
|
xy: 32, 48
|
||||||
|
size: 16, 16
|
||||||
|
Attack
|
||||||
|
xy: 48, 48
|
||||||
|
size: 16, 16
|
||||||
|
Hit
|
||||||
|
xy: 0, 64
|
||||||
|
size: 16, 16
|
||||||
|
Hit
|
||||||
|
xy: 16, 64
|
||||||
|
size: 16, 16
|
||||||
|
Hit
|
||||||
|
xy: 32, 64
|
||||||
|
size: 16, 16
|
||||||
|
Hit
|
||||||
|
xy: 48, 64
|
||||||
|
size: 16, 16
|
||||||
|
Death
|
||||||
|
xy: 0, 80
|
||||||
|
size: 16, 16
|
||||||
|
Death
|
||||||
|
xy: 16, 80
|
||||||
|
size: 16, 16
|
||||||
|
Death
|
||||||
|
xy: 32, 80
|
||||||
|
size: 16, 16
|
||||||
|
Death
|
||||||
|
xy: 48, 80
|
||||||
|
size: 16, 16
|
||||||
|
After Width: | Height: | Size: 1.8 KiB |
@@ -0,0 +1,68 @@
|
|||||||
|
high_cultist.png
|
||||||
|
size: 64,96
|
||||||
|
format: RGBA8888
|
||||||
|
filter: Nearest,Nearest
|
||||||
|
repeat: none
|
||||||
|
Avatar
|
||||||
|
xy: 0, 0
|
||||||
|
size: 16, 16
|
||||||
|
Idle
|
||||||
|
xy: 0, 16
|
||||||
|
size: 16, 16
|
||||||
|
Idle
|
||||||
|
xy: 16, 16
|
||||||
|
size: 16, 16
|
||||||
|
Idle
|
||||||
|
xy: 32, 16
|
||||||
|
size: 16, 16
|
||||||
|
Idle
|
||||||
|
xy: 48, 16
|
||||||
|
size: 16, 16
|
||||||
|
Walk
|
||||||
|
xy: 0, 32
|
||||||
|
size: 16, 16
|
||||||
|
Walk
|
||||||
|
xy: 16, 32
|
||||||
|
size: 16, 16
|
||||||
|
Walk
|
||||||
|
xy: 32, 32
|
||||||
|
size: 16, 16
|
||||||
|
Walk
|
||||||
|
xy: 48, 32
|
||||||
|
size: 16, 16
|
||||||
|
Attack
|
||||||
|
xy: 0, 48
|
||||||
|
size: 16, 16
|
||||||
|
Attack
|
||||||
|
xy: 16, 48
|
||||||
|
size: 16, 16
|
||||||
|
Attack
|
||||||
|
xy: 32, 48
|
||||||
|
size: 16, 16
|
||||||
|
Attack
|
||||||
|
xy: 48, 48
|
||||||
|
size: 16, 16
|
||||||
|
Hit
|
||||||
|
xy: 0, 64
|
||||||
|
size: 16, 16
|
||||||
|
Hit
|
||||||
|
xy: 16, 64
|
||||||
|
size: 16, 16
|
||||||
|
Hit
|
||||||
|
xy: 32, 64
|
||||||
|
size: 16, 16
|
||||||
|
Hit
|
||||||
|
xy: 48, 64
|
||||||
|
size: 16, 16
|
||||||
|
Death
|
||||||
|
xy: 0, 80
|
||||||
|
size: 16, 16
|
||||||
|
Death
|
||||||
|
xy: 16, 80
|
||||||
|
size: 16, 16
|
||||||
|
Death
|
||||||
|
xy: 32, 80
|
||||||
|
size: 16, 16
|
||||||
|
Death
|
||||||
|
xy: 48, 80
|
||||||
|
size: 16, 16
|
||||||
|
After Width: | Height: | Size: 1.8 KiB |
@@ -468,4 +468,9 @@ CartoucheOfAmbition
|
|||||||
CartoucheOfZeal
|
CartoucheOfZeal
|
||||||
xy:320,240
|
xy:320,240
|
||||||
size:16,16
|
size:16,16
|
||||||
|
HallowedSigil
|
||||||
|
xy:320,256
|
||||||
|
size:16,16
|
||||||
|
UnhallowedSigil
|
||||||
|
xy:320,272
|
||||||
|
size:16,16
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 273 KiB After Width: | Height: | Size: 272 KiB |
@@ -43,8 +43,8 @@
|
|||||||
"x": 0.5,
|
"x": 0.5,
|
||||||
"y": 0.5,
|
"y": 0.5,
|
||||||
"structureAtlasPath": "world/tilesets/terrain.atlas",
|
"structureAtlasPath": "world/tilesets/terrain.atlas",
|
||||||
"sourcePath": "world/models/fill.png",
|
"sourcePath": "world/structures/models/fill.png",
|
||||||
"maskPath": "world/masks/fill.png",
|
"maskPath": "world/structures/masks/fill.png",
|
||||||
"height": 0.99,
|
"height": 0.99,
|
||||||
"width": 0.9,
|
"width": 0.9,
|
||||||
"periodicOutput": false,
|
"periodicOutput": false,
|
||||||
|
|||||||
@@ -32,8 +32,8 @@
|
|||||||
"x": 0.5,
|
"x": 0.5,
|
||||||
"y": 0.5,
|
"y": 0.5,
|
||||||
"structureAtlasPath": "world/structures/structures.atlas",
|
"structureAtlasPath": "world/structures/structures.atlas",
|
||||||
"sourcePath": "world/models/fill.png",
|
"sourcePath": "world/structures/models/fill.png",
|
||||||
"maskPath": "world/masks/fill.png",
|
"maskPath": "world/structures/masks/fill.png",
|
||||||
"height": 0.99,
|
"height": 0.99,
|
||||||
"width": 0.9,
|
"width": 0.9,
|
||||||
"periodicOutput": false,
|
"periodicOutput": false,
|
||||||
|
|||||||
@@ -107,7 +107,8 @@
|
|||||||
"CaveW6",
|
"CaveW6",
|
||||||
"OrthodoxyBasilica",
|
"OrthodoxyBasilica",
|
||||||
"Nahiri Encampment",
|
"Nahiri Encampment",
|
||||||
"MageTower White"
|
"MageTower White",
|
||||||
|
"UnhallowedAbbey"
|
||||||
],
|
],
|
||||||
"structures": [
|
"structures": [
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -7840,6 +7840,168 @@
|
|||||||
"BiomeWhite"
|
"BiomeWhite"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "False Knight",
|
||||||
|
"sprite": "sprites/enemy/humanoid/human/knight/false_knight.atlas",
|
||||||
|
"deck": [
|
||||||
|
"decks/standard/death_knight.dck"
|
||||||
|
],
|
||||||
|
"ai": "",
|
||||||
|
"spawnRate": 1,
|
||||||
|
"difficulty": 0.1,
|
||||||
|
"speed": 30,
|
||||||
|
"life": 18,
|
||||||
|
"rewards": [
|
||||||
|
{
|
||||||
|
"type": "deckCard",
|
||||||
|
"probability": 1,
|
||||||
|
"count": 2,
|
||||||
|
"addMaxCount": 4,
|
||||||
|
"rarity": [
|
||||||
|
"common"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "deckCard",
|
||||||
|
"probability": 0.5,
|
||||||
|
"count": 1,
|
||||||
|
"addMaxCount": 2,
|
||||||
|
"rarity": [
|
||||||
|
"uncommon"
|
||||||
|
],
|
||||||
|
"cardTypes": [
|
||||||
|
"Creature",
|
||||||
|
"Artifact",
|
||||||
|
"Enchantment",
|
||||||
|
"Instant",
|
||||||
|
"Sorcery"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "deckCard",
|
||||||
|
"probability": 0.25,
|
||||||
|
"count": 1,
|
||||||
|
"addMaxCount": 1,
|
||||||
|
"rarity": [
|
||||||
|
"rare",
|
||||||
|
"mythicrare"
|
||||||
|
],
|
||||||
|
"cardTypes": [
|
||||||
|
"Creature",
|
||||||
|
"Artifact",
|
||||||
|
"Enchantment",
|
||||||
|
"Instant",
|
||||||
|
"Sorcery"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "deckCard",
|
||||||
|
"probability": 0.1,
|
||||||
|
"count": 1,
|
||||||
|
"rarity": [
|
||||||
|
"rare"
|
||||||
|
],
|
||||||
|
"cardTypes": [
|
||||||
|
"Land"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "gold",
|
||||||
|
"probability": 0.3,
|
||||||
|
"count": 10,
|
||||||
|
"addMaxCount": 90
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"colors": "B",
|
||||||
|
"questTags": [
|
||||||
|
"Disguised",
|
||||||
|
"Soldier",
|
||||||
|
"Human",
|
||||||
|
"Knight",
|
||||||
|
"Unholy",
|
||||||
|
"IdentityBlack"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "False Monk",
|
||||||
|
"sprite": "sprites/enemy/humanoid/human/warlock/false_monk.atlas",
|
||||||
|
"deck": [
|
||||||
|
"decks/standard/cultist.dck"
|
||||||
|
],
|
||||||
|
"randomizeDeck": false,
|
||||||
|
"spawnRate": 1,
|
||||||
|
"difficulty": 0.1,
|
||||||
|
"speed": 24,
|
||||||
|
"life": 15,
|
||||||
|
"rewards": [
|
||||||
|
{
|
||||||
|
"type": "deckCard",
|
||||||
|
"probability": 1
|
||||||
|
"count": 2,
|
||||||
|
"addMaxCount": 2,
|
||||||
|
"rarity": [
|
||||||
|
"common"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "deckCard",
|
||||||
|
"probability": 0.5,
|
||||||
|
"count": 1,
|
||||||
|
"addMaxCount": 1,
|
||||||
|
"rarity": [
|
||||||
|
"uncommon"
|
||||||
|
],
|
||||||
|
"cardTypes": [
|
||||||
|
"Creature",
|
||||||
|
"Artifact",
|
||||||
|
"Enchantment",
|
||||||
|
"Instant",
|
||||||
|
"Sorcery"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "deckCard",
|
||||||
|
"probability": 0.25,
|
||||||
|
"count": 1,
|
||||||
|
"addMaxCount": 1,
|
||||||
|
"rarity": [
|
||||||
|
"rare",
|
||||||
|
"mythicrare"
|
||||||
|
],
|
||||||
|
"cardTypes": [
|
||||||
|
"Creature",
|
||||||
|
"Artifact",
|
||||||
|
"Enchantment",
|
||||||
|
"Instant",
|
||||||
|
"Sorcery"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "deckCard",
|
||||||
|
"probability": 0.1,
|
||||||
|
"count": 1,
|
||||||
|
"rarity": [
|
||||||
|
"rare"
|
||||||
|
],
|
||||||
|
"cardTypes": [
|
||||||
|
"Land"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "gold",
|
||||||
|
"probability": 0.3,
|
||||||
|
"count": 10,
|
||||||
|
"addMaxCount": 90
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"colors": "B",
|
||||||
|
"questTags": [
|
||||||
|
"Human",
|
||||||
|
"Disguised",
|
||||||
|
"Unholy",
|
||||||
|
"IdentityBlack",
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "Farmer",
|
"name": "Farmer",
|
||||||
"nameOverride": "",
|
"nameOverride": "",
|
||||||
@@ -11673,6 +11835,86 @@
|
|||||||
null
|
null
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "High Cultist",
|
||||||
|
"sprite": "sprites/enemy/humanoid/human/warlock/high_cultist.atlas",
|
||||||
|
"deck": [
|
||||||
|
"decks/standard/cultist.dck"
|
||||||
|
],
|
||||||
|
"randomizeDeck": false,
|
||||||
|
"spawnRate": 1,
|
||||||
|
"difficulty": 0.1,
|
||||||
|
"speed": 24,
|
||||||
|
"life": 30,
|
||||||
|
"rewards": [
|
||||||
|
{
|
||||||
|
"type": "deckCard",
|
||||||
|
"probability": 1,
|
||||||
|
"count": 2,
|
||||||
|
"addMaxCount": 4,
|
||||||
|
"rarity": [
|
||||||
|
"common"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "deckCard",
|
||||||
|
"probability": 0.5,
|
||||||
|
"count": 1,
|
||||||
|
"addMaxCount": 2,
|
||||||
|
"rarity": [
|
||||||
|
"uncommon"
|
||||||
|
],
|
||||||
|
"cardTypes": [
|
||||||
|
"Creature",
|
||||||
|
"Artifact",
|
||||||
|
"Enchantment",
|
||||||
|
"Instant",
|
||||||
|
"Sorcery"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "deckCard",
|
||||||
|
"probability": 0.25,
|
||||||
|
"count": 1,
|
||||||
|
"addMaxCount": 1,
|
||||||
|
"rarity": [
|
||||||
|
"rare",
|
||||||
|
"mythicrare"
|
||||||
|
],
|
||||||
|
"cardTypes": [
|
||||||
|
"Creature",
|
||||||
|
"Artifact",
|
||||||
|
"Enchantment",
|
||||||
|
"Instant",
|
||||||
|
"Sorcery"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "deckCard",
|
||||||
|
"probability": 0.1,
|
||||||
|
"count": 1,
|
||||||
|
"rarity": [
|
||||||
|
"rare"
|
||||||
|
],
|
||||||
|
"cardTypes": [
|
||||||
|
"Land"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "gold",
|
||||||
|
"probability": 0.3,
|
||||||
|
"count": 10,
|
||||||
|
"addMaxCount": 90
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"colors": "B",
|
||||||
|
"questTags": [
|
||||||
|
"Human",
|
||||||
|
"Disguised",
|
||||||
|
"Unholy",
|
||||||
|
"IdentityBlack",
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "High Elf",
|
"name": "High Elf",
|
||||||
"sprite": "sprites/enemy/humanoid/elf/druid_2.atlas",
|
"sprite": "sprites/enemy/humanoid/elf/druid_2.atlas",
|
||||||
@@ -21035,6 +21277,69 @@
|
|||||||
"BiomeRed"
|
"BiomeRed"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "Valyx Feaster of Torment",
|
||||||
|
"sprite": "sprites/enemy/fiend/valyx.atlas",
|
||||||
|
"deck": [
|
||||||
|
"decks/miniboss/valyx.dck"
|
||||||
|
],
|
||||||
|
"ai": "",
|
||||||
|
"spawnRate": 1,
|
||||||
|
"difficulty": 0.1,
|
||||||
|
"speed": 31,
|
||||||
|
"life": 80,
|
||||||
|
"rewards": [
|
||||||
|
{
|
||||||
|
"type": "deckCard",
|
||||||
|
"probability": 1,
|
||||||
|
"count": 2,
|
||||||
|
"addMaxCount": 4,
|
||||||
|
"rarity": [
|
||||||
|
"common"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "deckCard",
|
||||||
|
"probability": 1,
|
||||||
|
"count": 2,
|
||||||
|
"addMaxCount": 2,
|
||||||
|
"rarity": [
|
||||||
|
"uncommon"
|
||||||
|
],
|
||||||
|
"cardTypes": [
|
||||||
|
"Creature",
|
||||||
|
"Artifact",
|
||||||
|
"Enchantment",
|
||||||
|
"Instant",
|
||||||
|
"Sorcery"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "deckCard",
|
||||||
|
"probability": 1,
|
||||||
|
"count": 2,
|
||||||
|
"addMaxCount": 1,
|
||||||
|
"rarity": [
|
||||||
|
"rare",
|
||||||
|
"mythicrare"
|
||||||
|
],
|
||||||
|
"cardTypes": [
|
||||||
|
"Creature",
|
||||||
|
"Artifact",
|
||||||
|
"Enchantment",
|
||||||
|
"Instant",
|
||||||
|
"Sorcery"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"colors": "B",
|
||||||
|
"questTags": [
|
||||||
|
"Demon",
|
||||||
|
"Humanoid",
|
||||||
|
"Unholy",
|
||||||
|
"IdentityBlack"
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "Vampire",
|
"name": "Vampire",
|
||||||
"sprite": "sprites/enemy/undead/vampire.atlas",
|
"sprite": "sprites/enemy/undead/vampire.atlas",
|
||||||
|
|||||||
@@ -1234,5 +1234,32 @@
|
|||||||
"Slobad's Iron Boots"
|
"Slobad's Iron Boots"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
|
{
|
||||||
|
"name": "Hallowed Sigil",
|
||||||
|
"description": "Turn a creature hexproof until end of turn.",
|
||||||
|
"equipmentSlot": "Neck",
|
||||||
|
"iconName": "HallowedSigil",
|
||||||
|
"effect": {
|
||||||
|
"startBattleWithCard": [
|
||||||
|
"Hallowed Sigil"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Unhallowed Sigil",
|
||||||
|
"description": "Devour the life of an enemy creature, killing it.",
|
||||||
|
"equipmentSlot": "Right",
|
||||||
|
"iconName": "UnhallowedSigil",
|
||||||
|
"effect": {
|
||||||
|
"startBattleWithCard": [
|
||||||
|
"Sigil of Torment"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Cultist's Key",
|
||||||
|
"iconName": "StrangeKey",
|
||||||
|
"questItem": true
|
||||||
|
}
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -3130,6 +3130,18 @@
|
|||||||
"Planeswalker"
|
"Planeswalker"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "UnhallowedAbbey",
|
||||||
|
"type": "dungeon",
|
||||||
|
"count": 1,
|
||||||
|
"spriteAtlas": "maps/tileset/buildings.atlas",
|
||||||
|
"sprite": "Monastery",
|
||||||
|
"map": "../common/maps/map/unhallowed_abbey_1F.tmx",
|
||||||
|
"radiusFactor": 0.8,
|
||||||
|
"questTags": [
|
||||||
|
"UnhallowedAbbey"
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "VampireCastle",
|
"name": "VampireCastle",
|
||||||
"type": "dungeon",
|
"type": "dungeon",
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
Name:Scepter of Celebration
|
Name:Scepter of Celebration
|
||||||
ManaCost:2 G
|
ManaCost:2 G
|
||||||
Types:Artifact Equipment
|
Types:Artifact Equipment
|
||||||
S:Mode$ Continuous | Affected$ Creature.EquippedBy | AddPower$ 2 | AddKeyword$ Trample | Description$ Equipped creature gets +2/+2 and has trample.
|
S:Mode$ Continuous | Affected$ Creature.EquippedBy | AddPower$ 2 | AddKeyword$ Trample | Description$ Equipped creature gets +2/+0 and has trample.
|
||||||
T:Mode$ DamageDone | ValidSource$ Card.EquippedBy | Execute$ TrigToken | CombatDamage$ True | ValidTarget$ Player | TriggerZones$ Battlefield | TriggerDescription$ Whenever equipped creature deals combat damage to a player, create that many 1/1 green and white Citizen creature tokens.
|
T:Mode$ DamageDone | ValidSource$ Card.EquippedBy | Execute$ TrigToken | CombatDamage$ True | ValidTarget$ Player | TriggerZones$ Battlefield | TriggerDescription$ Whenever equipped creature deals combat damage to a player, create that many 1/1 green and white Citizen creature tokens.
|
||||||
SVar:TrigToken:DB$ Token | TokenAmount$ X | TokenScript$ gw_1_1_citizen
|
SVar:TrigToken:DB$ Token | TokenAmount$ X | TokenScript$ gw_1_1_citizen
|
||||||
SVar:X:TriggerCount$DamageAmount
|
SVar:X:TriggerCount$DamageAmount
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ Types:Legendary Creature Horse
|
|||||||
PT:1/4
|
PT:1/4
|
||||||
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigFood | TriggerDescription$ When CARDNAME enters the battlefield, create two Food tokens. (They’re artifacts with "{2}, Sacrifice this artifact: You gain 3 life.")
|
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigFood | TriggerDescription$ When CARDNAME enters the battlefield, create two Food tokens. (They’re artifacts with "{2}, Sacrifice this artifact: You gain 3 life.")
|
||||||
SVar:TrigFood:DB$ Token | TokenAmount$ 2 | TokenScript$ c_a_food_sac | TokenOwner$ You
|
SVar:TrigFood:DB$ Token | TokenAmount$ 2 | TokenScript$ c_a_food_sac | TokenOwner$ You
|
||||||
A:AB$ Effect | Cost$ Sac<2/Food> | ValidTgts$ Creature.YouCtrl | RememberObjects$ Targeted | StaticAbilities$ CombatDamageToughness | ForgetOnMoved$ Battlefield | TgtPrompt$ Select target creature you control | SpellDescription$ Until end of turn, target creature you control assigns combat damage equal to its toughness rather than its power.
|
A:AB$ Effect | Cost$ Sac<1/Food> | ValidTgts$ Creature.YouCtrl | RememberObjects$ Targeted | StaticAbilities$ CombatDamageToughness | ForgetOnMoved$ Battlefield | TgtPrompt$ Select target creature you control | SpellDescription$ Until end of turn, target creature you control assigns combat damage equal to its toughness rather than its power.
|
||||||
SVar:CombatDamageToughness:Mode$ CombatDamageToughness | ValidCard$ Card.IsRemembered | Description$ This creature assigns combat damage equal to its toughness rather than its power.
|
SVar:CombatDamageToughness:Mode$ CombatDamageToughness | ValidCard$ Card.IsRemembered | Description$ This creature assigns combat damage equal to its toughness rather than its power.
|
||||||
DeckHas:Ability$Token|LifeGain|Sacrifice & Type$Food
|
DeckHas:Ability$Token|LifeGain|Sacrifice & Type$Food
|
||||||
DeckHints:Type$Food|Treefolk|Wall
|
DeckHints:Type$Food|Treefolk|Wall
|
||||||
|
|||||||
@@ -0,0 +1,11 @@
|
|||||||
|
Name:Grima, Saruman's Footman
|
||||||
|
ManaCost:2 U B
|
||||||
|
Types:Legendary Creature Human Advisor
|
||||||
|
PT:1/4
|
||||||
|
S:Mode$ CantBlockBy | ValidAttacker$ Creature.Self | Description$ CARDNAME can't be blocked.
|
||||||
|
T:Mode$ DamageDone | ValidSource$ Card.Self | ValidTarget$ Player | CombatDamage$ True | Execute$ TrigDigUntil | TriggerZones$ Battlefield | TriggerDescription$ Whenever NICKNAME deals combat damage to a player, that player exiles cards from the top of their library until they exile an instant or sorcery card. You may cast that card without paying its mana cost. Then that player puts the exiled cards that weren't cast this way on the bottom of their library in a random order.
|
||||||
|
SVar:TrigDigUntil:DB$ DigUntil | Defined$ TriggeredTarget | Valid$ Instant,Sorcery | ValidDescription$ instant or sorcery | FoundDestination$ Exile | RevealedDestination$ Exile | RememberFound$ True | IsCurse$ True | SubAbility$ DBPlay
|
||||||
|
SVar:DBPlay:DB$ Play | ValidZone$ Exile | Valid$ Instant.IsRemembered,Sorcery.IsRemembered | ValidSA$ Spell | WithoutManaCost$ True | Optional$ True | ForgetPlayed$ True | SubAbility$ DBRestRandomOrder
|
||||||
|
SVar:DBRestRandomOrder:DB$ ChangeZoneAll | ChangeType$ Card.IsRemembered | Origin$ Exile | Destination$ Library | LibraryPosition$ -1 | RandomOrder$ True | SubAbility$ DBCleanup
|
||||||
|
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||||
|
Oracle:Grima, Saruman's Footman can't be blocked.\nWhenever Grima deals combat damage to a player, that player exiles cards from the top of their library until they exile an instant or sorcery card. You may cast that card without paying its mana cost. Then that player puts the exiled cards that weren't cast this way on the bottom of their library in a random order.
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
Name:Gwaihir, Greatest of the Eagles
|
||||||
|
ManaCost:4 W
|
||||||
|
Types:Legendary Creature Bird Noble
|
||||||
|
PT:5/5
|
||||||
|
K:Flying
|
||||||
|
T:Mode$ Attacks | ValidCard$ Card.Self | TriggerZones$ Battlefield | Execute$ TrigPump | TriggerDescription$ Whenever NICKNAME attacks, target attacking creature gains flying until end of turn.
|
||||||
|
SVar:TrigPump:DB$ Pump | ValidTgts$ Creature.attacking | TgtPrompt$ Select target attacking creature | KW$ Flying
|
||||||
|
T:Mode$ Phase | Phase$ End of Turn | ValidPlayer$ You | TriggerZones$ Battlefield | CheckSVar$ LifeGained | SVarCompare$ GE3 | Execute$ TrigToken | TriggerDescription$ At the beginning of your end step, if you gained 3 or more life this turn, create a 3/3 white Bird creature token with flying and "Whenever this creature attacks, target attacking creature gains flying until end of turn."
|
||||||
|
SVar:TrigToken:DB$ Token | TokenScript$ w_3_3_bird_flying_attacks
|
||||||
|
SVar:LifeGained:Count$LifeYouGainedThisTurn
|
||||||
|
SVar:HasAttackEffect:TRUE
|
||||||
|
DeckHints:Ability$LifeGain
|
||||||
|
DeckHas:Ability$Token
|
||||||
|
Oracle:Flying\nWhenever Gwaihir attacks, target attacking creature gains flying until end of turn.\nAt the beginning of your end step, if you gained 3 or more life this turn, create a 3/3 white Bird creature token with flying and "Whenever this creature attacks, target attacking creature gains flying until end of turn."
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
Name:Haldir, Lorien Lieutenant
|
||||||
|
ManaCost:X G
|
||||||
|
Types:Legendary Creature Elf Soldier
|
||||||
|
PT:0/0
|
||||||
|
K:Vigilance
|
||||||
|
K:etbCounter:P1P1:X
|
||||||
|
SVar:X:Count$xPaid
|
||||||
|
A:AB$ PumpAll | Cost$ 5 G | ValidCards$ Creature.Elf+StrictlyOther+YouCtrl | NumAtt$ Y | NumDef$ Y | KW$ Vigilance | SpellDescription$ Until end of turn, other Elves you control gain vigilance and get +1/+1 for each +1/+1 counter on NICKNAME.
|
||||||
|
SVar:Y:Count$CardCounters.P1P1
|
||||||
|
DeckHas:Ability$Counters
|
||||||
|
Oracle:Haldir, Lorien Lieutenant enters the battlefield with X +1/+1 counters on it.\nVigilance\n{5}{G}: Until end of turn, other Elves you control gain vigilance and get +1/+1 for each +1/+1 counter on Haldir.
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
Name:Lobelia, Defender of Bag End
|
||||||
|
ManaCost:2 B
|
||||||
|
Types:Legendary Creature Halfling Citizen
|
||||||
|
PT:2/2
|
||||||
|
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigExile | TriggerDescription$ When NICKNAME enters the battlefield, look at the top card of each opponent's library and exile those cards face down.
|
||||||
|
SVar:TrigExile:DB$ Dig | DigNum$ 1 | ChangeNum$ All | Defined$ Opponent | DestinationZone$ Exile | ExileFaceDown$ True
|
||||||
|
A:AB$ Charm | Cost$ T Sac<1/Artifact> | Choices$ DBEffect,DBLoseGain
|
||||||
|
SVar:DBEffect:DB$ Effect | StaticAbilities$ STPlay | SpellDescription$ Until end of turn, you may play a card exiled with NICKNAME without paying its mana cost.
|
||||||
|
SVar:STPlay:Mode$ Continuous | MayPlay$ True | WithoutManaCost$ True | Affected$ Card.ExiledWithEffectSource | AffectedZone$ Exile | MayPlayLimit$ 1
|
||||||
|
SVar:DBLoseGain:DB$ LoseLife | Defined$ Opponent | LifeAmount$ 2 | SubAbility$ DBGain2 | SpellDescription$ Each opponent loses 2 life and you gain 2 life.
|
||||||
|
SVar:DBGain2:DB$ GainLife | Defined$ You | LifeAmount$ 2
|
||||||
|
Oracle:When Lobelia enters the battlefield, look at the top card of each opponent's library and exile those cards face down.\n{T}, Sacrifice an artifact: Choose one —\n• Until end of turn, you may play a card exiled with Lobelia without paying its mana cost.\n• Each opponent loses 2 life and you gain 2 life.
|
||||||
12
forge-gui/res/cardsfolder/upcoming/lord_of_the_nazgul.txt
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
Name:Lord of the Nazgul
|
||||||
|
ManaCost:3 U B
|
||||||
|
Types:Legendary Creature Wraith Noble
|
||||||
|
PT:4/4
|
||||||
|
K:Flying
|
||||||
|
S:Mode$ Continuous | Affected$ Creature.Wraith+YouCtrl | AddKeyword$ Protection from Ringbearers | Description$ Wraiths you control have protection from Ring-bearers.
|
||||||
|
T:Mode$ SpellCast | ValidCard$ Instant,Sorcery | ValidActivatingPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigToken | TriggerDescription$ Whenever you cast an instant or sorcery spell, create a 3/3 black Wraith creature token with menace. Then if you control nine or more Wraiths, Wraiths you control have base power and toughness 9/9 until end of turn.
|
||||||
|
SVar:TrigToken:DB$ Token | TokenAmount$ 1 | TokenScript$ b_3_3_wraith_menace | TokenOwner$ You | SubAbility$ DBAnimateAll
|
||||||
|
SVar:DBAnimateAll:DB$ AnimateAll | ValidCards$ Wraith.YouCtrl | Power$ 9 | Toughness$ 9 | ConditionPresent$ Card.Wraith+YouCtrl | ConditionCompare$ GE9
|
||||||
|
SVar:BuffedBy:Instant,Sorcery
|
||||||
|
DeckHints:Type$Wraith
|
||||||
|
Oracle:Flying\nWraiths you control have protection from Ring-bearers.\nWhenever you cast an instant or sorcery spell, create a 3/3 black Wraith creature token with menace. Then if you control nine or more Wraiths, Wraiths you control have base power and toughness 9/9 until end of turn.
|
||||||
13
forge-gui/res/cardsfolder/upcoming/shelob_dread_weaver.txt
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
Name:Shelob, Dread Weaver
|
||||||
|
ManaCost:3 B
|
||||||
|
Types:Legendary Creature Spider Demon
|
||||||
|
PT:3/3
|
||||||
|
T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Creature.OppCtrl+nonToken | TriggerZones$ Battlefield | Execute$ TrigExile | TriggerDescription$ Whenever a nontoken creature an opponent controls dies, exile it.
|
||||||
|
SVar:TrigExile:DB$ ChangeZone | Defined$ TriggeredNewCardLKICopy | Origin$ Graveyard | Destination$ Exile
|
||||||
|
A:AB$ PutCounter | Cost$ 2 B ExiledMoveToGrave<1/Creature.ExiledWithSource> | CounterType$ P1P1 | CounterNum$ 2 | SubAbility$ TrigDraw | SpellDescription$ Put two +1/+1 counters on NICKNAME.
|
||||||
|
SVar:TrigDraw:DB$ Draw | NumCards$ 1 | SpellDescription$ Draw a card.
|
||||||
|
A:AB$ ChangeZone | Cost$ X 1 B | TgtPrompt$ Select target creature | Origin$ Exile | Destination$ Battlefield | Tapped$ True | ValidTgts$ Creature.ExiledWithSource+cmcEQX | Hidden$ True | Mandatory$ True | ChangeNum$ 1 | GainControl$ True | SpellDescription$ Put target creature card with mana value X exiled with NICKNAME onto the battlefield tapped under your control.
|
||||||
|
SVar:X:Count$xPaid
|
||||||
|
SVar:PlayMain1:TRUE
|
||||||
|
DeckHas:Ability$Counters
|
||||||
|
Oracle:Whenever a nontoken creature an opponent controls dies, exile it.\n{2}{B}, Put a creature card exiled with Shelob, Dread Weaver into its owner's graveyard: Put two +1/+1 counters on Shelob. Draw a card.\n{X}{1}{B}: Put target creature card with mana value X exiled with Shelob onto the battlefield tapped under your control.
|
||||||
7
forge-gui/res/tokenscripts/b_3_3_wraith_menace.txt
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
Name:Wraith Token
|
||||||
|
ManaCost:no cost
|
||||||
|
Types:Creature Wraith
|
||||||
|
Colors:black
|
||||||
|
PT:3/3
|
||||||
|
K:Menace
|
||||||
|
Oracle:Menace
|
||||||
10
forge-gui/res/tokenscripts/w_3_3_bird_flying_attacks.txt
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
Name:Bird Token
|
||||||
|
ManaCost:no cost
|
||||||
|
Types:Creature Bird
|
||||||
|
Colors:white
|
||||||
|
PT:3/3
|
||||||
|
K:Flying
|
||||||
|
T:Mode$ Attacks | ValidCard$ Card.Self | TriggerZones$ Battlefield | Execute$ TrigPump | TriggerDescription$ Whenever this creature attacks, target attacking creature gains flying until end of turn.
|
||||||
|
SVar:TrigPump:DB$ Pump | ValidTgts$ Creature.attacking | TgtPrompt$ Select target attacking creature | KW$ Flying
|
||||||
|
SVar:HasAttackEffect:TRUE
|
||||||
|
Oracle:Flying\nWhenever this creature attacks, target attacking creature gains flying until end of turn.
|
||||||