- Added a new Puzzle Mode game state flag, "NoETBTrigs", which allows you to ignore the ETB triggers and replacement effects for a card when necessary.

- Fixed a bug that made it tricky to add several precast flags to a puzzle due to absence of whitespace trimming.
- Added puzzles PC_012616 and PC_020216 by Xitax.
- Updated the puzzle PC_122915 to set itself up automatically without being obnoxious.
This commit is contained in:
Agetian
2017-12-21 06:11:21 +00:00
parent a0baa659ec
commit f08a0eaffd
5 changed files with 58 additions and 8 deletions

2
.gitattributes vendored
View File

@@ -19751,6 +19751,8 @@ forge-gui/res/music/menus/The[!!-~]Pyre.mp3 -text
forge-gui/res/puzzle/INQ01.pzl -text
forge-gui/res/puzzle/INQ02.pzl -text
forge-gui/res/puzzle/INQ03.pzl -text
forge-gui/res/puzzle/PC_012616.pzl -text
forge-gui/res/puzzle/PC_020216.pzl -text
forge-gui/res/puzzle/PC_020816.pzl -text
forge-gui/res/puzzle/PC_021616.pzl -text
forge-gui/res/puzzle/PC_022416.pzl -text

View File

@@ -74,6 +74,7 @@ public abstract class GameState {
private final Map<String, String> abilityString = new HashMap<>();
private final Set<Card> cardsReferencedByID = new HashSet<>();
private final Set<Card> cardsWithoutETBTrigs = new HashSet<>();
private String tChangePlayer = "NONE";
private String tChangePhase = "NONE";
@@ -765,12 +766,12 @@ public abstract class GameState {
if (spellDef.contains(":")) {
// targeting via -> will be handled in executeScript
scriptID = spellDef.substring(spellDef.indexOf(":") + 1);
spellDef = spellDef.substring(0, spellDef.indexOf(":"));
scriptID = spellDef.substring(spellDef.indexOf(":") + 1).trim();
spellDef = spellDef.substring(0, spellDef.indexOf(":")).trim();
} else if (spellDef.contains("->")) {
String tgtDef = spellDef.substring(spellDef.indexOf("->") + 2);
String tgtDef = spellDef.substring(spellDef.indexOf("->") + 2).trim();
tgtID = parseTargetInScript(tgtDef);
spellDef = spellDef.substring(0, spellDef.indexOf("->"));
spellDef = spellDef.substring(0, spellDef.indexOf("->")).trim();
}
PaperCard pc = StaticData.instance().getCommonCards().getCard(spellDef);
@@ -897,14 +898,16 @@ public abstract class GameState {
// Note: Not clearCounters() since we want to keep the counters
// var as-is.
c.setCounters(Maps.<CounterType, Integer>newEnumMap(CounterType.class));
p.getZone(ZoneType.Hand).add(c);
if (c.isAura()) {
// dummy "enchanting" to indicate that the card will be force-attached elsewhere
// (will be overridden later, so the actual value shouldn't matter)
c.setEnchanting(c);
}
p.getGame().getAction().moveToPlay(c, null);
if (cardsWithoutETBTrigs.contains(c)) {
p.getGame().getAction().moveTo(ZoneType.Battlefield, c, null);
} else {
p.getZone(ZoneType.Hand).add(c);
p.getGame().getAction().moveToPlay(c, null);
}
@@ -1026,6 +1029,8 @@ public abstract class GameState {
} else {
cardAttackMap.put(c, null);
}
} else if (info.equals("NoETBTrigs")) {
cardsWithoutETBTrigs.add(c);
}
}

View File

@@ -0,0 +1,22 @@
[metadata]
Name:Perplexing Chimera (GatheringMagic.com) 012616 - Sucker Punch
URL:http://www.gatheringmagic.com/seanuy-012616-sucker-punch/
Goal:Win
Turns:2
Difficulty:Hard
Description: Survive and win on your next turn. Your Ruination Guide was stolen via Press Into Service. Your opponent also used Immobilizer Eldrazi's ability.
[state]
ActivePlayer=AI
ActivePhase=COMBAT_DECLARE_ATTACKERS
HumanLife=1
AILife=9
humanhand=Dimensional Infiltrator|Set:OGW; Abstruse Interference|Set:OGW; Sweep Away|Set:OGW; Volcanic Upheaval|Set:BFZ;
humangraveyard=
humanlibrary=Mountain|Set:BFZ;
#Grab the Reins:DBGainControl->422;
aiprecast=Preordain:CustomScript:AB$ PumpAll | Cost$ 2 C | ValidCards$ Creature.powerLTtoughness | KW$ HIDDEN CARDNAME can't block.; Grab the Reins:DBGainControl->422;
humanbattlefield=Island|Set:BFZ; Island|Set:BFZ; Island|Set:BFZ; Island|Set:BFZ; Mountain|Set:BFZ; Mountain|Set:BFZ; Mountain|Set:BFZ; Mountain|Tapped|Set:BFZ; Wastes|Set:OGW; Hedron Crawler|Set:OGW; Kozilek's Sentinel|Set:BFZ; Cultivator Drone|Set:OGW; Herald of Kozilek|Set:BFZ; Vestige of Emrakul|Set:BFZ; Ruination Guide|Set:BFZ|Tapped|Attacking|Id:422;
aibattlefield=Mountain|Tapped|Set:BFZ; Mountain|Tapped|Set:BFZ; Mountain|Tapped|Set:BFZ; Forest|Tapped|Set:BFZ; Forest|Tapped|Set:BFZ; Forest|Tapped|Set:BFZ; Wastes|Tapped|Set:OGW; Lifespring Druid|Set:BFZ|Tapped; Immobilizer Eldrazi|Set:OGW|Counters:P1P1=1|Tapped|Attacking; Embodiment of Fury|Set:OGW|Tapped|Attacking|ExecuteScript:TrigAnimate->420; Mountain|Set:BFZ|Id:420|Counters:P1P1=1|Attacking|Tapped;
aigraveyard=Press Into Service|Set:OGW;
ailibrary=
aiexile=

View File

@@ -0,0 +1,21 @@
[metadata]
Name:Perplexing Chimera (GatheringMagic.com) 020216 - Zookeeper
URL:http://www.gatheringmagic.com/seanuy-020216-zookeeper/
Goal:Win
Turns:1
Difficulty:Hard
Description: Win this turn.
[state]
ActivePlayer=Human
ActivePhase=main1
HumanLife=3
AILife=7
humanhand=Mortuary Mire|Set:BFZ; Bone Splinters|Set:BFZ; Visions of Brutality|Set:OGW; Unnatural Aggression|Set:BFZ; Flaying Tendrils|Set:OGW;
humangraveyard=Baloth Pup|Set:OGW; Slaughter Drone|Set:OGW; Vampire Envoy|Set:OGW;
humanlibrary=
humanprecast=Abstruse Interference:DBToken; Abstruse Interference:DBToken;
humanbattlefield=Swamp|Set:BFZ; Swamp|Set:BFZ; Swamp|Set:BFZ; Swamp|Set:BFZ; Forest|Set:BFZ; Forest|Set:BFZ; Forest|Set:BFZ; Wastes|Set:OGW; Sacred Foundry|Set:GTC|NoETBTrigs; Zulaport Cutthroat|Counters:P1P1=1|Set:BFZ; Lifespring Druid|Set:BFZ; Saddleback Lagac|Set:OGW; Malakir Soothsayer|Set:OGW; Seer's Lantern|Set:OGW;
aibattlefield=Forest|Tapped|Set:BFZ; Copperline Gorge|Tapped|Set:SOM; Stomping Ground|Tapped|Set:GTC; Temple Garden|Tapped|Set:RTR; Temple Garden|Tapped|Set:RTR; Noble Hierarch; Wild Nacatl; Kird Ape; Kird Ape; Eidolon of the Great Revel; Qasali Pridemage; Voice of Resurgence; Voice of Resurgence; Loxodon Smiter;
aigraveyard=
ailibrary=
aiexile=

View File

@@ -4,7 +4,7 @@ URL:http://www.gatheringmagic.com/seanuy-122915-burn-baby-burn/
Goal:Win
Turns:1
Difficulty:Hard
Description: Win this turn. AI has these cards in hand - Lightning Bolt, Guerrilla Tactics, Skullcrack, Pyrotechnics.\n\nIMPORTANT - Once the puzzle starts, you will be prompted to apply the replacement effect of the card Clone. You need to choose "No" in order for this puzzle to work correctly. Also, a notification box will pop up to name a card. It does not matter what you choose, the card "Lightning Bolt" will be automatically chosen after the game begins [These quirks will be resolved at a later date].
Description: Win this turn. AI has these cards in hand - Lightning Bolt, Guerrilla Tactics, Skullcrack, Pyrotechnics.
[state]
ActivePlayer=human
ActivePhase=main1
@@ -14,7 +14,7 @@ humanhand=Valorous Stance; Parallax Wave
humangraveyard=
humanlibrary=
humanprecast=
humanbattlefield=Plains|Set:ZEN; Plains|Set:ZEN; Plains|Set:ZEN; Island|Set:ZEN; Island|Set:ZEN; Island|Set:ZEN; Aven Riftwatcher|Counters:TIME=1; Brago, King Eternal; Heavy Infantry|Id:422; Runed Halo|NamedCard:Lightning Bolt; Angelic Shield; Clone|ExecuteScript:DBCopy->420
humanbattlefield=Plains|Set:ZEN; Plains|Set:ZEN; Plains|Set:ZEN; Island|Set:ZEN; Island|Set:ZEN; Island|Set:ZEN; Aven Riftwatcher|Counters:TIME=1; Brago, King Eternal; Heavy Infantry|Id:422; Runed Halo|NamedCard:Lightning Bolt|NoETBTrigs; Angelic Shield; Clone|ExecuteScript:DBCopy->420|NoETBTrigs
aibattlefield=Swamp|Tapped|Set:ZEN; Swamp|Tapped|Set:ZEN; Swamp|Tapped|Set:ZEN; Mountain|Set:ZEN; Mountain|Tapped|Set:ZEN; Mountain|Tapped|Set:ZEN; Volcanic Dragon|Id:420; Typhoid Rats; Skulking Fugitive; Vulshok Refugee; Mindslicer|Id:424; Accorder's Shield|Attaching:424; Torment|Attaching:422;
aihand=Lightning Bolt; Guerrilla Tactics; Skullcrack; Pyrotechnics
aigraveyard=