Page 4 of 5

Re: Theros Spoiler Season

PostPosted: 19 Sep 2013, 12:07
by friarsol
Looks like Theros is up on magiccards.info. I can run my scraper for Oracle later if someone wants to merge the branch back in.

Re: Theros Spoiler Season

PostPosted: 19 Sep 2013, 19:47
by Sloth
Ok, i will try to merge Theros into the trunk.

Re: Theros Spoiler Season

PostPosted: 20 Sep 2013, 03:36
by friarsol
Alright Theros is in. I fixed a few card name issues that my new script picked up on. And also added Oracle text for all of that.

Re: Theros Spoiler Season

PostPosted: 20 Sep 2013, 05:28
by moomarc
Thanks guys. Great work on the set!

Re: Theros Spoiler Season

PostPosted: 20 Sep 2013, 20:14
by friarsol
It doesn't seem like there's exact information about what's in the "seeded" pack for Prerelease, but according to:
http://mtg-realm.blogspot.com/2013/09/t ... packs.html

"All the seed packs seem to follow a similar pattern - - Each has 11 commons (5 off-color, and 6 on-color, one of which was the same in both pre-release packs of each color). It has 3 uncommons. 1 on-color, 1 off-color, and 1 of either a multicolor or off-color and 1 rare/mythic, which can be multicolor. And of course the Promo card, which is playable:"

White: Celestial Archon
Blue: Shipbreaker Kraken
Black: Abhorrent Overlord
Red: Ember Swallower
Green: Anthousa, Setessan Hero

If I were to make a guess base upon the above information I'd say we can build the pack as:

5 On-Color Commons, 6 Random Commons
1 On-Color Uncommon, 2 Random Uncommons
1 On-Color Rare
1 Promo

And then as more information is revealed about the boosters we can change our Seeded booster appropriately.

Re: Theros Spoiler Season

PostPosted: 21 Sep 2013, 09:13
by Max mtg
Source for booster covers pictures: http://www.wizards.com/Magic/Magazine/A ... rcana/1307

Re: Theros Spoiler Season

PostPosted: 21 Sep 2013, 14:07
by Tygrak
So I was testing theros and noticed a mistake in a card:
the card Reaper of The Wilds costs 2BG, but in the snapshot it is 2BR.
If I find anymore things like that I will let you guys know.

Re: Theros Spoiler Season

PostPosted: 21 Sep 2013, 15:43
by Diogenes
I haven't checked ability costs yet, but I've looked through the casting costs and there are two others that are also wrong: Dragon Mantle (should be R, is 1R) and Hammer of Purphoros (should be 1RR, is 2R.) All others are correct.

Re: Theros Spoiler Season

PostPosted: 24 Sep 2013, 15:42
by friarsol
Theros Rules Update recap:

http://www.wizards.com/Magic/Magazine/A ... 66b&page=3

Shanodin Dryad gains the Creature Type Nymph.

Ashiok and Xenagos join the list of Planeswalker types.

God, Nymph, and Sable join the list of creature types.

"So, we're reversing course. Under this new paradigm, laid out in rule 301.5e and 303.4j, "enchanted," "equipped," and "fortified" are really just different ways to say "attached." It doesn't matter what type or subtype the permanent with the appropriate ability is, and that ability will refer to whatever the permanent is attached to."

That might simplify a lot of our dealings with these type of things.

Re: Theros Spoiler Season

PostPosted: 04 Oct 2013, 03:23
by Xitax
THS booster images for Forge

Re: Theros Spoiler Season

PostPosted: 09 Feb 2014, 08:05
by Max mtg
Now we have mana color conversion mechanics implemented. What is missing to implement Daxos of Meletis?
Is that the link between remembered exiled card and the ability to spend mana of any color for it?

Re: Theros Spoiler Season

PostPosted: 09 Feb 2014, 14:53
by friarsol
Max mtg wrote:Now we have mana color conversion mechanics implemented. What is missing to implement Daxos of Meletis?
Is that the link between remembered exiled card and the ability to spend mana of any color for it?
Since this only affects a single card/spellAbility, I think we'd need to set some type of metadata on that card (at the same time we mark it with "may be played"), and change the conversion matrix inside of PlayAbility right before the costs begin to be paid. Then, we'd need to make sure things are properly reset after the PlayAbility finishes (successfully or cancelled).

Re: Theros Spoiler Season

PostPosted: 10 Feb 2014, 21:40
by friarsol
Looks like Huggybaby has found some free time and released a whole bunch of images for us (and everyone else):

viewtopic.php?f=15&p=145560#p145560

moomarc, can you handle putting these up for us? Is there anyone else besides marc that's done it before/knows how to do it? I'm sure our userbase will be pretty stoked to get caught up with all the last few sets. Hopefully, the wait won't be as long for BNG as the CCGGQ team works through their migration period.

Re: Theros Spoiler Season

PostPosted: 11 Feb 2014, 09:01
by moomarc
No problem. Busy downloading at the moment.

Chris (and I think Sloth) also have the ftp details, not to mention Rob lurking around :-$ But I've got enough free time to do this, and should always be able to do it within a day or two of the images being released. Just gave them the details so someone besides me had them.

Re: Theros Spoiler Season

PostPosted: 12 Feb 2014, 13:02
by swordshine
Max mtg wrote:Now we have mana color conversion mechanics implemented. What is missing to implement Daxos of Meletis?
Is that the link between remembered exiled card and the ability to spend mana of any color for it?
Just tried to script Daxos of Meletis, only HumanPlaySpellAbility was updated. forge.ai.ComputerUtil.handlePlayingSpellAbility(Player, SpellAbility, Game) may be updated for AI.
Code: Select all
### Eclipse Workspace Patch 1.0
#P ForgeLocal
Index: forge-gui/src/main/java/forge/gui/player/HumanPlaySpellAbility.java
===================================================================
--- forge-gui/src/main/java/forge/gui/player/HumanPlaySpellAbility.java   (revision 24826)
+++ forge-gui/src/main/java/forge/gui/player/HumanPlaySpellAbility.java   (working copy)
@@ -18,7 +18,9 @@
 package forge.gui.player;
 
 import com.google.common.collect.Iterables;
+
 import forge.card.CardType;
+import forge.card.MagicColor;
 import forge.game.Game;
 import forge.game.GameObject;
 import forge.game.ability.AbilityUtils;
@@ -25,6 +27,7 @@
 import forge.game.card.Card;
 import forge.game.cost.CostPartMana;
 import forge.game.cost.CostPayment;
+import forge.game.mana.ManaPool;
 import forge.game.player.Player;
 import forge.game.player.PlayerController;
 import forge.game.spellability.AbilitySub;
@@ -32,6 +35,7 @@
 import forge.game.spellability.SpellAbility;
 import forge.game.spellability.TargetRestrictions;
 import forge.game.zone.Zone;
+
 import org.apache.commons.lang3.StringUtils;
 
 import java.util.ArrayList;
@@ -60,8 +64,12 @@
         // used to rollback
         Zone fromZone = null;
         int zonePosition = 0;
+        final ManaPool manapool = human.getManaPool();
 
         final Card c = this.ability.getHostCard();
+        boolean manaConvertion = ability.isSpell() && c.hasKeyword("May spend mana as though it were mana of any color to cast CARDNAME");
+
+
         if (this.ability instanceof Spell && !c.isCopiedSpell()) {
             fromZone = game.getZoneOf(c);
             if (fromZone != null) {
@@ -73,6 +81,11 @@
         // freeze Stack. No abilities should go onto the stack while I'm filling requirements.
         game.getStack().freezeStack();
 
+        if (manaConvertion) {
+            for(String s : MagicColor.Constant.COLORS_AND_COLORLESS) {
+                manapool.adjustColorReplacement(MagicColor.fromName(s), MagicColor.ALL_COLORS, true);
+            }
+        }
         // This line makes use of short-circuit evaluation of boolean values, that is each subsequent argument
         // is only executed or evaluated if the first argument does not suffice to determine the value of the expression
         boolean prerequisitesMet = this.announceValuesLikeX()
@@ -91,6 +104,9 @@
                     ability.getHostCard().unanimateBestow();
                 }
             }
+            if (manaConvertion) {
+                manapool.restoreColorReplacements();
+            }
             return;
         }
 
@@ -109,6 +125,9 @@
             if (mayChooseTargets) {
                 clearTargets(ability);
             }
+            if (manaConvertion) {
+                manapool.restoreColorReplacements();
+            }
         }
     }
 
Index: forge-gui/res/cardsfolder/d/daxos_of_meletis.txt
===================================================================
--- forge-gui/res/cardsfolder/d/daxos_of_meletis.txt   (revision 0)
+++ forge-gui/res/cardsfolder/d/daxos_of_meletis.txt   (working copy)
@@ -0,0 +1,16 @@
+Name:Daxos of Meletis
+ManaCost:1 W U
+Types:Legendary Creature Human Soldier
+PT:2/2
+K:CantBeBlockedBy Creature.powerGE3
+T:Mode$ DamageDone | ValidSource$ Card.Self | ValidTarget$ Player | CombatDamage$ True | Execute$ TrigExile | TriggerDescription$ Whenever CARDNAME deals combat damage to a player, exile the top card of that player's library. You gain life equal to that card's converted mana cost. Until end of turn, you may cast that card and you may spend mana as though it were mana of any color to cast it.
+SVar:TrigExile:AB$ Mill | Cost$ 0 | Defined$ TriggeredTarget | NumCards$ 1 | Destination$ Exile | RememberMilled$ True | SubAbility$ DBGainLife
+SVar:DBGainLife:DB$ GainLife | Defined$ You | LifeAmount$ X | References$ X | SubAbility$ DBEffect
+SVar:X:Remembered$CardManaCost
+SVar:DBEffect:DB$ Effect | StaticAbilities$ STPlay,STPlay2 | Triggers$ TriggerCastDoM | SVars$ TrigRemoveSelf | RememberObjects$ Remembered | SubAbility$ DBCleanup
+SVar:STPlay:Mode$ Continuous | EffectZone$ Command | Affected$ Card.IsRemembered+nonLand+YouOwn | AddHiddenKeyword$ May be played & May spend mana as though it were mana of any color to cast CARDNAME | AffectedZone$ Exile | Description$ Until end of turn, you may cast that card and you may spend mana as though it were mana of any color to cast it.
+SVar:STPlay2:Mode$ Continuous | EffectZone$ Command | Affected$ Card.IsRemembered+nonLand+OppOwn | AddHiddenKeyword$ May be played by your opponent & May spend mana as though it were mana of any color to cast CARDNAME | AffectedZone$ Exile
+SVar:TriggerCastDoM:Mode$ SpellCast | ValidCard$ Card.IsRemembered | TriggerZones$ Command | Execute$ TrigRemoveSelf | Static$ True
+SVar:TrigRemoveSelf:DB$ ChangeZone | Defined$ Self | Origin$ Command | Destination$ Exile
+SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
+SVar:Picture:http://www.wizards.com/global/images/magic/general/daxos_of_meletis.jpg
\ No newline at end of file

I think it would be better to AddSVar to that card and read mapParams of the svar in order to script other cards like Quicksilver Elemental.