- Added 6 events to Time Vault.

- Fixed some minor AI issues.
This commit is contained in:
Agetian
2018-12-02 22:34:15 +03:00
parent 1698ea5bf1
commit a7989737d9
16 changed files with 209 additions and 20 deletions

View File

@@ -821,6 +821,10 @@ public class SpecialCardAi {
int computerHandSize = ai.getZone(ZoneType.Hand).size();
int maxHandSize = ai.getMaxHandSize();
if (ai.getCardsIn(ZoneType.Library).isEmpty()) {
return false; // nothing to draw from the library
}
if (!CardLists.filter(ai.getCardsIn(ZoneType.Battlefield), CardPredicates.nameEquals("Yawgmoth's Bargain")).isEmpty()) {
// Prefer Yawgmoth's Bargain because AI is generally better with it
@@ -1337,6 +1341,10 @@ public class SpecialCardAi {
Game game = ai.getGame();
PhaseHandler ph = game.getPhaseHandler();
if (ai.getCardsIn(ZoneType.Library).isEmpty()) {
return false; // nothing to draw from the library
}
int computerHandSize = ai.getZone(ZoneType.Hand).size();
int maxHandSize = ai.getMaxHandSize();

View File

@@ -110,7 +110,8 @@ public class CopySpellAbilityAi extends SpellAbilityAi {
@Override
protected boolean doTriggerAINoCost(Player aiPlayer, SpellAbility sa, boolean mandatory) {
// the AI should not miss mandatory activations (e.g. Precursor Golem trigger)
return mandatory || "Always".equals(sa.getParam("AILogic"));
String logic = sa.getParamOrDefault("AILogic", "");
return mandatory || logic.contains("Always"); // this includes logic like AlwaysIfViable
}
@Override

View File

@@ -8,6 +8,12 @@ import forge.game.spellability.SpellAbility;
public class ShuffleAi extends SpellAbilityAi {
@Override
protected boolean canPlayAI(Player aiPlayer, SpellAbility sa) {
String logic = sa.getParamOrDefault("AILogic", "");
if (logic.equals("Always")) {
// We may want to play this for the subability, e.g. Mind's Desire
return true;
}
// not really sure when the compy would use this; maybe only after a
// human
// deliberately put a card on top of their library

View File

@@ -315,7 +315,7 @@ public class LoadConquestScreen extends LaunchScreen {
font = FSkinFont.get(12);
float cardsWidth = font.getBounds(cards).width + iconSize + SettingsScreen.SETTING_PADDING;
float shardsWidth = font.getBounds(shards).width + iconSize + SettingsScreen.SETTING_PADDING;
g.drawText(value.getPlaneswalker().getName() + " - " + value.getCurrentPlane().getName(), font, SettingsScreen.DESC_COLOR, x, y, w - shardsWidth - cardsWidth, h, false, HAlignment.LEFT, false);
g.drawText(value.getPlaneswalker().getName() + " - " + value.getCurrentPlane().getName().replace("_", " "), font, SettingsScreen.DESC_COLOR, x, y, w - shardsWidth - cardsWidth, h, false, HAlignment.LEFT, false);
g.drawImage(FSkinImage.SPELLBOOK, x + w - shardsWidth - cardsWidth + iconOffset, y - SettingsScreen.SETTING_PADDING, iconSize, iconSize);
g.drawText(cards, font, SettingsScreen.DESC_COLOR, x + w - shardsWidth - cardsWidth + iconSize + SettingsScreen.SETTING_PADDING, y, w, h, false, HAlignment.LEFT, false);
g.drawImage(FSkinImage.AETHER_SHARD, x + w - shardsWidth + iconOffset, y - SettingsScreen.SETTING_PADDING, iconSize, iconSize);

View File

@@ -4,8 +4,8 @@ Types:Land
A:AB$ Mana | Cost$ T | Produced$ Any | Amount$ 3 | SpellDescription$ Add three mana of any one color.
R:Event$ Moved | Destination$ Battlefield | ValidCard$ Card.Self | ReplaceWith$ PayBeforeETB | Description$ If CARDNAME would enter the battlefield, sacrifice two untapped lands instead. If you do, put CARDNAME onto the battlefield. If you don't, put it into its owner's graveyard.
SVar:PayBeforeETB:DB$ Sacrifice | SacValid$ Land.untapped | Defined$ You | RememberSacrificed$ True | Amount$ 2 | StrictAmount$ True | SubAbility$ MoveToGraveyard
SVar:MoveToGraveyard:DB$ ChangeZone | Origin$ All | Destination$ Graveyard | Defined$ ReplacedCard | ConditionCheckSVar$ X | ConditionSVarCompare$ LT2 | SubAbility$ MoveToBattlefield
SVar:MoveToBattlefield:DB$ ChangeZone | Origin$ All | Destination$ Battlefield | Defined$ ReplacedCard | ConditionCheckSVar$ X | ConditionSVarCompare$ GE2 | SubAbility$ DBCleanup
SVar:MoveToGraveyard:DB$ ChangeZone | Origin$ All | Destination$ Graveyard | Defined$ ReplacedCard | ConditionCheckSVar$ X | ConditionSVarCompare$ LT2 | References$ X | SubAbility$ MoveToBattlefield
SVar:MoveToBattlefield:DB$ ChangeZone | Origin$ All | Destination$ Battlefield | Defined$ ReplacedCard | ConditionCheckSVar$ X | ConditionSVarCompare$ GE2 | References$ X | SubAbility$ DBCleanup
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
SVar:X:Remembered$Amount
SVar:NeedsToPlayVar:Z GE2

View File

@@ -2,7 +2,7 @@ Name:Mind's Desire
ManaCost:4 U U
Types:Sorcery
K:Storm
A:SP$ Shuffle | Cost$ 4 U U | SubAbility$ DBExile | SpellDescription$ Shuffle your library. Then exile the top card of your library. Until end of turn, you may play that card without paying its mana cost. (If it has X in its mana cost, X is 0.)
A:SP$ Shuffle | Cost$ 4 U U | SubAbility$ DBExile | AILogic$ Always | SpellDescription$ Shuffle your library. Then exile the top card of your library. Until end of turn, you may play that card without paying its mana cost. (If it has X in its mana cost, X is 0.)
SVar:DBExile:DB$ ChangeZone | Defined$ TopOfLibrary | Origin$ Library | Destination$ Exile | RememberChanged$ True | SubAbility$ DBEffect
SVar:DBEffect:DB$Effect | RememberObjects$ Remembered | StaticAbilities$ Play | SubAbility$ DBCleanup | ExileOnMoved$ Exile
SVar:Play:Mode$ Continuous | MayPlay$ True | MayPlayWithoutManaCost$ True | EffectZone$ Command | Affected$ Card.IsRemembered | AffectedZone$ Exile | Description$ You may play remembered card.

View File

@@ -2,6 +2,6 @@ Name:Mirari
ManaCost:5
Types:Legendary Artifact
T:Mode$ SpellCast | ValidCard$ Instant,Sorcery | ValidActivatingPlayer$ You | TriggerZones$ Battlefield | OptionalDecider$ You | Execute$ TrigCopy | TriggerDescription$ Whenever you cast an instant or sorcery spell, you may pay {3}. If you do, copy that spell. You may choose new targets for the copy.
SVar:TrigCopy:AB$CopySpellAbility | Cost$ 3 | Defined$ TriggeredSpellAbility
SVar:TrigCopy:AB$CopySpellAbility | Cost$ 3 | Defined$ TriggeredSpellAbility | AILogic$ AlwaysIfViable
SVar:Picture:http://www.wizards.com/global/images/magic/general/mirari.jpg
Oracle:Whenever you cast an instant or sorcery spell, you may pay {3}. If you do, copy that spell. You may choose new targets for the copy.

View File

@@ -4,6 +4,3 @@ Name:Lovisa Coldeyes|Deck:Lovisa Coldeyes.dck|Variant:Commander|Avatar:Lovisa Co
Name:Zur the Enchanter|Deck:Zur the Enchanter.dck|Variant:Commander|Avatar:Zur the Enchanter|Desc:
Name:Birds of Paradise|Deck:Birds of Paradise.dck|Variant:Vanguard|Avatar:Birds of Paradise|Desc:
Name:Rofellos, Llanowar Emissary|Deck:Rofellos, Llanowar Emissary.dck|Variant:Commander|Avatar:Rofellos, Llanowar Emissary|Desc:
Name:Akroma, Angel of Wrath|Deck:Akroma, Angel of Wrath.dck|Variant:Commander|Avatar:Akroma, Angel of Wrath|Desc:
Name:EVENT8|Deck:Random.dck|Variant:None|Avatar:None|Desc:
Name:EVENT9|Deck:Random.dck|Variant:None|Avatar:None|Desc:

View File

@@ -0,0 +1,33 @@
[metadata]
Name=Akroma, Angel of Fury
[Commander]
1 Akroma, Angel of Fury|PLC
[Main]
1 Basalt Gargoyle|TSP
1 Carbonize|SCG
1 Dragon Roost|ONS
1 Dragonspeaker Shaman|SCG
1 Fault Line|USG
1 Fledgling Dragon|JUD
1 Gemstone Caverns|TSP
1 Goblin Sky Raider|ONS
1 Grim Monolith|ULG
1 Heat Ray|USG
1 Imperial Hellkite|LGN
1 Lightning Axe|TSP
1 Lightning Dragon|USG
1 Pardic Dragon|TSP
1 Rimescale Dragon|CSP
1 Rock Slide|VIS
1 Rorix Bladewing|ONS
1 Shock|ONS
14 Snow-Covered Mountain|ICE
1 Spitting Drake|VIS
1 Starstorm|ONS
1 Tarox Bladewing|FUT
1 Thran Dynamo|UDS
1 Thunderbolt|WTH
1 Volcanic Geyser|MIR
1 Worn Powerstone|USG
[Sideboard]

View File

@@ -0,0 +1,36 @@
[metadata]
Name=Diamond Faerie
[Main]
1 Adarkar Valkyrie|CSP
1 Arctic Flats|CSP
1 Balduvian Frostwaker|CSP
1 Boreal Centaur|CSP
1 Boreal Druid|CSP
1 Boreal Griffin|CSP
1 Boreal Shelf|CSP
1 Centaur Omenreader|FUT
1 Coldsteel Heart|CSP
1 Counterspell|ICE
1 Diamond Faerie|CSP
4 Snow-Covered Forest|CSP
1 Frost Raptor|CSP
1 Frostweb Spider|CSP
1 Glacial Plating|CSP
1 Grand Coliseum|ONS
1 Heidar, Rimewind Master|CSP
1 Into the North|CSP
4 Snow-Covered Island|CSP
1 Ohran Viper|CSP
1 Phyrexian Ironfoot|CSP
1 Phyrexian Snowcrusher|CSP
4 Snow-Covered Plains|CSP
1 Power Sink|USG
1 Rimefeather Owl|CSP
1 Squall Drifter|CSP
1 Swords to Plowshares|ICE
1 Syncopate|ODY
1 Terramorphic Expanse|TSP
1 Thawing Glaciers|ALL
1 Woolly Mammoths|ICE
[Sideboard]

View File

@@ -0,0 +1,35 @@
[metadata]
Name=Kaysa
[Commander]
1 Kaysa|ALL
[Main]
1 Decree of Savagery|SCG
1 Defiant Elf|LGN
1 Dryad Arbor|FUT
1 Elvish Aberration|SCG
1 Elvish Champion|INV
1 Elvish Vanguard|ONS
1 Essence Warden|PLC
1 Explosive Growth|INV
11 Forest|INV
1 Gaea's Cradle|USG
1 Heedless One|ONS
1 Llanowar Reborn|FUT
1 Mythic Proportions|ONS
1 Priest of Titania|USG
1 Rancor|ULG
1 Rofellos, Llanowar Emissary|UDS
1 Strength in Numbers|TSP
1 Sylvan Messenger|APC
1 Sylvan Might|ODY
1 Thornweald Archer|FUT
1 Timberwatch Elf|LGN
1 Titania's Chosen|USG
1 Voice of the Woods|ONS
1 Wellwisher|ONS
1 Wirewood Channeler|LGN
1 Wirewood Elf|ONS
1 Wirewood Lodge|ONS
1 Wirewood Pride|ONS
1 Yavimaya Hollow|UDS
[Sideboard]

View File

@@ -0,0 +1,32 @@
[metadata]
Name=Burn
[Main]
1 Arc Lightning|USG
1 Blazing Salvo|ODY
1 Blistering Firecat|ONS
1 Empty the Warrens|TSP
1 Fault Line|USG
1 Firebolt|ODY
1 Flame Jet|UDS
1 Ghitu Encampment|ULG
1 Grapeshot|TSP
1 Heat Ray|USG
1 Incinerate|MIR
1 Kaervek's Torch|MIR
1 Keldon Megaliths|FUT
1 Lava Blister|ODY
1 Lightning Axe|TSP
1 Lightning Serpent|CSP
1 Molten Disaster|FUT
1 Rift Bolt|TSP
1 Rock Slide|VIS
1 Shock|ONS
1 Shower of Sparks|USG
1 Skred|CSP
13 Snow-Covered Mountain|CSP
1 Starstorm|ONS
1 Steam Blast|USG
1 Sudden Shock|TSP
1 Thunderbolt|WTH
1 Volcanic Geyser|MIR
[Sideboard]

View File

@@ -0,0 +1,44 @@
[metadata]
Name=Storm
[Avatar]
1 Titania|VAN
[Main]
1 Ancestral Recall|LEA
1 Ancestral Vision|TSP
1 Arcane Denial|ALL|1
1 Black Lotus|LEA
1 Brain Freeze|SCG
1 Brainstorm|ICE
1 Cloud of Faeries|ULG
1 Empty the Warrens|TSP
1 Frantic Search|ULG
1 Grand Coliseum|ONS
1 Grapeshot|TSP
1 Helm of Awakening|VIS
2 Island|ICE
1 Lotus Bloom|TSP
1 Lotus Vale|WTH
1 Mind's Desire|SCG
1 Mountain|USG
1 Mox Jet|LEA
1 Mox Ruby|LEA
1 Mox Sapphire|LEA
1 Necropotence|ICE
1 Obsessive Search|TOR
1 Ornithopter|3ED
1 Perilous Research|CSP
1 Phyrexian Walker|VIS
1 Shield Sphere|ALL
1 Snap|ULG
1 Sol Ring|LEA
3 Swamp|USG
1 Tendrils of Agony|SCG
1 Time Spiral|USG
1 Time Walk|LEA
1 Timetwister|LEA
1 Tolarian Academy|USG
1 Treachery|UDS
1 Worn Powerstone|USG
1 Yawgmoth's Will|USG
[Sideboard]

View File

@@ -1,9 +1,6 @@
Name:EVENT1|Deck:Random.dck|Variant:None|Avatar:None|Desc:
Name:EVENT2|Deck:Random.dck|Variant:None|Avatar:None|Desc:
Name:EVENT3|Deck:Random.dck|Variant:None|Avatar:None|Desc:
Name:EVENT4|Deck:Random.dck|Variant:None|Avatar:None|Desc:
Name:EVENT5|Deck:Random.dck|Variant:None|Avatar:None|Desc:
Name:EVENT6|Deck:Random.dck|Variant:None|Avatar:None|Desc:
Name:EVENT7|Deck:Random.dck|Variant:None|Avatar:None|Desc:
Name:EVENT8|Deck:Random.dck|Variant:None|Avatar:None|Desc:
Name:EVENT9|Deck:Random.dck|Variant:None|Avatar:None|Desc:
Name:Akroma, Angel of Wrath|Deck:Akroma, Angel of Wrath.dck|Variant:Commander|Avatar:Akroma, Angel of Wrath|Desc:
Name:Akroma, Angel of Fury|Deck:Akroma, Angel of Fury.dck|Variant:Commander|Avatar:Akroma, Angel of Fury|Desc:
Name:Diamond Faerie|Deck:Diamond Faerie.dck|Variant:Planechase|Avatar:Diamond Faerie|Desc:
Name:Storm|Deck:Storm.dck|Variant:Vanguard|Avatar:Titania|Desc:
Name:Red Deck Wins|Deck:Red Deck Wins.dck|Variant:Planechase|Avatar:Blistering Firecat|Desc:
Name:Kaysa|Deck:Kaysa.dck|Variant:Commander|Avatar:Kaysa|Desc:

View File

@@ -14,6 +14,6 @@ Name:Regatha|RegionSize:6|Unreachable:True|Desc:
Name:Shandalar|RegionSize:9|Unreachable:True|Desc:
Name:Tarkir|RegionSize:9|Desc:A plane dominated by five powerful clans... or five powerful dragon lords.\nConsists of 45 events. Contains cards from KTK, FRF, DTK, CMD, CNS/CN2, some C17.
Name:Theros|RegionSize:9|Desc:Mortals tremble before an awe-inspiring pantheon of gods.\nConsists of 45 events. Contains cards from THS, BNG, JOU, HOP, PCA, and more.
Name:Time_Vault|RegionSize:9|Unreachable:True|Desc:A mysterious and legendary Time Vault, allowing one to travel back in time and revisit the ages long past and experience the history of Dominaria.\nConsists of 18 events. Contains cards from ICE, ALL, CSP, MIR, VIS, WTH, USG, ULG, UDS, INV, PLS, APC, ODY, TOR, JUD, ONS, LGN, SCG, TSP, PLC, FUT, and COM.\n\nThe portal to this plane is unstable and will close soon, so hasten your step, planeswalker, while you have the chance...
Name:Time_Vault|RegionSize:6|Unreachable:True|Desc:A mysterious and legendary Time Vault, allowing one to travel back in time and revisit the ages long past and challenge the legends of Dominaria.\nConsists of 12 events. Contains cards from ICE, ALL, CSP, MIR, VIS, WTH, USG, ULG, UDS, INV, PLS, APC, ODY, TOR, JUD, ONS, LGN, SCG, TSP, PLC, FUT, and COM.\n\nThe portal to this plane is unstable and will close soon, so hasten your step, planeswalker, while you have the chance...
Name:Ulgrotha|RegionSize:6|Unreachable:True|Desc:
Name:Zendikar|RegionSize:9|Desc:This land of primal mana was lethal even before its Eldrazi prisoners escaped.\nConsists of 60 events. Contains cards from ZEN, WWK, ROE, BFZ, OGW, and C16.