It is currently 18 Apr 2024, 18:09
   
Text Size

Planechase development -- 84/86 uploaded

Moderator: CCGHQ Admins

Planechase development -- 84/86 uploaded

Postby Splinterverse » 06 Jul 2019, 11:48

Planechase is now available in DOTP2014!!! Enjoy!!!!!!

OVERVIEW

Since DOTP 2014 does not allow for players to operate two decks simultaneously, the DOTP 2014 version of Planechase is really what is known as the "shared planar deck" variant. This is an official variant and is the same one used in DOTP 2013.

This page won't go into the details of how the format is played, but rather focus on the details you need to get a game going in DOTP2014. For official rules, see https://mtg.gamepedia.com/Planechase.

IMPORTANT: The Planechase mode will only function properly in a free-for-all match with one AI player playing the Planechase deck with a minimum of 3 players (including the AI planar deck player). Planechase will not work as intended in 1v1 or 2HG.

DECKBUILDING

Since the planar deck may only contain the _PLANECHASE control card, plane cards, and phenomenon cards, you must build a minimum 60 card planar deck to avoid any basic lands being added automatically by the deck builder. The rules state that the planar deck should contain no more than 1 copy of each card. The rules also state that the planar deck must contain Planechase cards equal to 10 times the number of players. So, in real life, the planar deck could total 20-30 cards, but we don't have that option in DOTP 2014 (since the deck minimum is 60). As such, I think we can safely alter the rule to say no more than 2 copies of each card. That way you can achieve a 60 card deck with just 30 Planechase cards of your choice. Personally, I recommend playing with a deck that includes all of them because it will add the most variety to your games.

Planechase Deck and Enabler.zip
(388.03 KiB) Downloaded 385 times


I've also uploaded it to the CW Decks Folders on Google Drive, but the syncing doesn't appear to be moving it to right spots at the moment (and the enabler seems to have disappeared -- I've messaged Xander about it). For now, use the .zip above to get started.

It even comes with its own deck box:

Deck_In_Game_Selection_Screen.jpg


PLANAR DIE ROLLING

We don't have a way to add dice to DOTP2014, so instead we are using a control card (known as _PLANECHASE) to simulate die rolling. The card has an activated ability that allows whichever player whose turn it is to roll the die. (Behind the scenes, it chooses a random number between 1 and 6, with 4 of those numbers equating to blank sides and the other 2 numbers equating to Chaos and Planeswalk.) To roll the die, simply right-click on the card and choose "Roll planar die."

Due to how we had to implement the die rolling ability, the AI may try to roll when it doesn't have the mana to do so. It is only allowed to do this up to 10 times. So, you may see it trying repeatedly, with no result. You simply need to wait until it stops or hits its 10th attempt and then the game will proceed as normal. I've played many, many, many games with this, and the AI gave up every time after 6 attempts.

PHENOMENON CARDS

Phenomenon cards are like Instants. However, Instant-like cards played from the planar deck do not enter the graveyard upon resolution nor do they get played on the stack. Rather their effects fire and then they are placed on the bottom of the planar deck.

To allow players to refer to the text of these cards and to protect them from targeting, I've chosen to make these cards appear on the battlefield like enchantments do.

They will sit on the battlefield after their effects have been applied until the next turn begins. That will give players the opportunity to read their text instead of wondering "What the heck just happened?" (Trust me, the first time Morphic Tide is played, you'll be glad you can read the card.)

With the exception of one Phenomenon, all effects of these cards fire once. Chaotic Aether continues to fire until a player Planeswalks which can take some time (even multiple turns) to occur. As a result, this also suggested that Phenomenon's should reside on the battlefield (even if for a short time).

I think this is an improvement on DOTP2013's implementation of Planechase. In that version, the cards are gone so fast, and you really don't know what happened unless you know the cards really well.

PLANE CARDS

The DOTP2014 version of Planechase includes more planes than the official 2013 release and the mod for that game. We have 76 different planes for you to planeswalk to, including high quality art with custom frames.

ART

The deck builder may not show the art in all of its glory, but trust me when I say that all cards have high quality, custom, full card art. If you see any issues with the art, please let me know and I'll fix it. There is a template involved, so it's better if I handle it.

Here's a couple of examples using in-game screenshots:

AstralArena.jpg
BloodhillBastion.jpg


RANDOM DECKS

If, like me, you like to select "Random Deck" from the deck selection screen in free-for-all, you can certainly do that with Planechase. However, there is a chance that the game will randomly select a second copy of the Planechase deck. If that happens, simply concede the match and try again. Unless you have a low number of decks, this shouldn't happen too often. On a good PC, my experience has been that you can maintain about 250 decks before the game starts to have performance issues. Obviously if you want to play with non-AI opponents, you should use an additional copy of the game with far fewer decks in order to sync.

BUGS

I spent hours and hours testing each one of these cards, so hopefully you won't find any bugs. But it's not possible to test every interaction, so if you do find one, please post a message here or PM me or message me on Discord. I will fix it (or clarify if it is not actually a bug).

CARDS | Open
* = coded and tested
All cards have High Quality art with custom borders.
All cards have been uploaded to the CW.

----Planes----
*Academy at Tolaria West
*Agyrem
*Akoum
*Aretopolis
*Astral Arena
*Bant
*Bloodhill Bastion
*Celestine Reef
*Cliffside Market
*Edge of Malacol
*Eloren Wilds
*Feeding Grounds
*Fields of Summer
*Furnace Layer
*Gavony
*Glen Elendra
Glimmervoid Basin
*Goldmeadow
*Grand Ossuary
*Grixis
*Grove of the Dreampods
*Hedron Fields of Agadeem
*Horizon Boughs
*Immersturm
*Isle of Vesuva
*Izzet Steam Maze
*Jund
*Kessig
*Kharasha Foothills
*Kilnspire District
*Krosa
*Lair of the Ashen Idol
*Lethe Lake
*Llanowar
*Minamo
*Mirrored Depths
*Mount Keralia
*Murasa
*Naar Isle
*Naya
*Nephalia
*Norn's Dominion
*Onakke Catacomb
*Orochi Colony
*Orzhova
*Otaria
*Panopticon
Pools of Becoming
*Prahv
*Quicksilver Sea
*Raven's Run
*Sanctum of Serra
*Sea of Sand
*Selesnya Loft Gardens
*Shiv
*Skybreen
*Sokenzan
*Stairs to Infinity
*Stensia
*Stronghold Furnace
*Takenuma
*Talon Gates
*Tazeem
*Tember City
*The Aether Flues
*The Dark Barony
*The Eon Fog
*The Fourth Sphere
*The Great Forest
*The Hippodrome
*The Maelstrom
*The Zephyr Maze
*Trail of the Mage-Rings
*Truga Jungle
*Turri Island
*Undercity Reaches
*Velis Vel
*Windriddle Palaces

----Phenomenons----
*Chaotic Aether
*Interplanar Tunnel
*Morphic Tide
*Mutual Epiphany
*Planewide Disaster
*Reality Shaping
*Spatial Merging
*Time Distortion


CARDS NOT CURRENTLY CODED

Glimmervoid Basin -- this one is similar to Mirrorwing Dragon (one of our most complicated cards); I would love to see it included, but I don't think I'm able to code it.

Pools of Becoming -- this one might be possible by putting all of the known Chaos effects on the card and then firing based on the planar deck reveal OR by creating token Chaos only versions of each plane and invoking those? But, that's a lot of work for 1 card.


DEVELOPER NOTES

These notes are for fellow modders and testers who might want to make custom planes or help maintain the existing ones.

-- Please do not make any changes to these cards without reaching out to me (unless you don't plan to upload your changes to the CW). I've done thorough testing of each one, and there are certain things that seem like they would work on normal cards, but simply don't function as expected with DOTP2014 Planechase. Since there are only 84 cards total, we could ruin a bunch of people's games, if we don't keep these cards working. The slightest wrong move and the AI will stop rolling the planar die. (If it weren't for that, we wouldn't have the AI attempting to roll when it shouldn't.) I can be reached via posts on this forum, private messages, and in the Discord for the CW.

-- If there's one thing I would like for us as modders to do, is to add the type obscurity that we see for Planeswalkers, where it hides the enchantment type. That would be cool if we could do that for planes and phenomenons. It would also be great to get those final two cards coded, but I know that Pools of Becoming would take a lot of time.

-- I used DLC and modded plane/phenomenon cards from DOTP2013 as a starting point, but there was very little re-usable code. I used it more for a point-of-reference. The card files did not list the original modders names, so I was unable to credit them.

-- Coding the plane cards is different than other cards. You can't use EffectController much, so you have to do a check to see whose turn it is and then use that player as essentially the EffectController. Take a look at any Chaos ability for examples.

-- Since we don't have an actual die roll animation available, I chose to make every Chaos effect use the same SFX. My thinking is that it will help the player recognize that a Chaos effect just went off since the approximation of the die roll disappears somewhat quickly.

-- When effects say "each player", we have to exclude the AI planar deck player, so there is often a "~= EffectController()" portion of the code that normally wouldn't be there.

-- The _PLANECHASE control card, the plane cards, and the phenomenon cards all required special protections akin to those granted to The Monarch and City's Blessing tokens. Without that protection, the cards won't function properly and will be able to be targeted or wiped.

-- Interestingly, the Phenomenon type actually works without the Enchantment type being added. The reason I went ahead and added the Enchantment type is that, since this isn't paper magic and the Phenomenon cards don't go the graveyard, everything would happen so fast that the players would have no idea what just happened. By making them also Enchantments, I could have them sit on the battlefield long enough to be read by the players. Although we're not using the Phenomenon type as is, I wanted to mention that it does function as normal (play, then put in library) in case we need that effect for something else in the future.

- DOTP2013 had Planechase and there are some features of it may still be available in DOTP2014's code according to the decompiled LOL contents

    CARD_TYPE_PLANE - this one crashes DOTP2014, we're using an echantment subtype instead
    ZONE_COMMAND_PLANE_DECK
    ZONE_COMMAND_PLANE_ACTIVE - I tried messing with this, but had no success; the zone exists but you can't do anything with cards that go there
    TRIGGER_ROLLED_CHAOS - we are using this one on the _PLANECHASE card
    TRIGGER_ROLLED_PLANESWALK - we are using this one on the _PLANECHASE card
    TRIGGER_PLANESWALK_AWAY_FROM - we don't really need this with the way Planechase is implemented in DOTP2014
    TRIGGER_PLANESWALK_TO - not needed with our implementation
    TRIGGER_PLANAR_DIE_ROLLED - nothing really triggers off of this in the card text (maybe it was used for animations in DOTP2013)
    TRIGGER_PHENOMENON_ENCOUNTERED -- this is being used for other things
    PLANECHASE_DICE_ROLL_NOT_ROLLED
    PLANECHASE_DICE_ROLL_NONE
    PLANECHASE_DICE_ROLL_CHAOS
    PLANECHASE_DICE_ROLL_PLANESWALK
    AI_PLANAR_DIE_BEHAVIOUR DOTP2013 example: <AI_PLANAR_DIE_BEHAVIOUR behaviour="AlwaysRoll" />
    EffectController():Planeswalk()
    :PlaneDeck_Count()
    :PlaneDeck_GetBottom()
    :PlaneDeck_GetNth(i)
    :PlaneDeck_GetTop()
    card:PutInPlaneDeck() -- tried this; nothing happend
    :SetTraveledToPlane()
    MTG():SetPlanarDiceNothingOverload(PLANECHASE_DICE_ROLL_ constants)
    :UpdatePlanarDieRollCost()
---------------------------------------------
The DOTP2014 CW is updated nightly between 11 PM and 12 AM EST.
Known Issues/Bugs |
Impossible Cards List | Update Your Land Pools
Splinterverse
 
Posts: 918
Joined: 04 Sep 2016, 13:32
Has thanked: 150 times
Been thanked: 75 times

Re: Planechase development -- 84/86 uploaded

Postby fallenangle » 06 Jul 2019, 18:42

This is awesome that you got those cards working! Nice job!
fallenangle
 
Posts: 319
Joined: 20 Jul 2013, 02:31
Has thanked: 73 times
Been thanked: 41 times

Re: Planechase development -- 84/86 uploaded

Postby Splinterverse » 06 Jul 2019, 18:50

fallenangle wrote:This is awesome that you got those cards working! Nice job!
Thanks! Your comments helped me work through it all. I hope people enjoy playing this format. I had a blast. It livened up a lot of decks that I was bored with.
---------------------------------------------
The DOTP2014 CW is updated nightly between 11 PM and 12 AM EST.
Known Issues/Bugs |
Impossible Cards List | Update Your Land Pools
Splinterverse
 
Posts: 918
Joined: 04 Sep 2016, 13:32
Has thanked: 150 times
Been thanked: 75 times

Re: Planechase development -- 84/86 uploaded

Postby Parabolic » 10 Jul 2019, 18:24

Just wanted to say that replacing an AI player with the Planar deck is ingenious. I thought for sure I'd need to remake all my decks with specific Planechase cards just to play. Great job!
Parabolic
 
Posts: 74
Joined: 12 Jul 2013, 19:22
Has thanked: 10 times
Been thanked: 10 times

Re: Planechase development -- 84/86 uploaded

Postby Splinterverse » 10 Jul 2019, 18:51

Parabolic wrote:Just wanted to say that replacing an AI player with the Planar deck is ingenious. I thought for sure I'd need to remake all my decks with specific Planechase cards just to play. Great job!
Aw thanks! Yeah, I didn't want any of us to have to do that. :)
---------------------------------------------
The DOTP2014 CW is updated nightly between 11 PM and 12 AM EST.
Known Issues/Bugs |
Impossible Cards List | Update Your Land Pools
Splinterverse
 
Posts: 918
Joined: 04 Sep 2016, 13:32
Has thanked: 150 times
Been thanked: 75 times

Re: Planechase development -- 84/86 uploaded

Postby Exan627 » 11 Jul 2019, 20:18

Hi ! Thanks you for the great job ! For me the AI never roll the planar die....do you know why ?
Exan627
 
Posts: 5
Joined: 24 Feb 2017, 17:15
Has thanked: 3 times
Been thanked: 1 time

Re: Planechase development -- 84/86 uploaded

Postby Splinterverse » 12 Jul 2019, 00:17

Exan627 wrote:Hi ! Thanks you for the great job ! For me the AI never roll the planar die....do you know why ?
Thanks. It depends on a couple of things. First, if the plane is beneficial, the AI may be less likely to roll. Also, it depends on the deck the AI is playing. Some decks roll a lot, others don't. Try having the AI play different decks. Try a few different ones. If that doesn't work, send me the deck lists and I'll try.
---------------------------------------------
The DOTP2014 CW is updated nightly between 11 PM and 12 AM EST.
Known Issues/Bugs |
Impossible Cards List | Update Your Land Pools
Splinterverse
 
Posts: 918
Joined: 04 Sep 2016, 13:32
Has thanked: 150 times
Been thanked: 75 times

Re: Planechase development -- 84/86 uploaded

Postby Exan627 » 13 Jul 2019, 17:20

Ok ! After some game it's good. Some AI roll it some don't, it depend. On what ? I don't know... Sure the AI doesn't roll it with a lot of startegies but it's fun. I've played FFA with the new post of Themes Deck with the Apocalypse block..it was fun and a hell of a battlefield :D !! Thank you !
Exan627
 
Posts: 5
Joined: 24 Feb 2017, 17:15
Has thanked: 3 times
Been thanked: 1 time

Re: Planechase development -- 84/86 uploaded

Postby Splinterverse » 13 Jul 2019, 18:32

Exan627 wrote:Ok ! After some game it's good. Some AI roll it some don't, it depend. On what ? I don't know... Sure the AI doesn't roll it with a lot of startegies but it's fun. I've played FFA with the new post of Themes Deck with the Apocalypse block..it was fun and a hell of a battlefield :D !! Thank you !
Awesome! Glad to hear that!! I've been having fun with it as well. It makes the games very unpredictable -- in a good way! :D :D :D :D
---------------------------------------------
The DOTP2014 CW is updated nightly between 11 PM and 12 AM EST.
Known Issues/Bugs |
Impossible Cards List | Update Your Land Pools
Splinterverse
 
Posts: 918
Joined: 04 Sep 2016, 13:32
Has thanked: 150 times
Been thanked: 75 times

Re: Planechase development -- 84/86 uploaded

Postby migookman » 14 Jul 2019, 00:13

And it makes Commander even more fun!!
User avatar
migookman
 
Posts: 135
Joined: 05 Aug 2014, 06:37
Has thanked: 21 times
Been thanked: 28 times

Re: Planechase development -- 84/86 uploaded

Postby Splinterverse » 14 Jul 2019, 00:32

migookman wrote:And it makes Commander even more fun!!
Nice. Yeah, I haven't tried it with Commander yet. I should do that. Last time I played Commander, it seemed like the AI players were never casting their commanders, is that still the case?
---------------------------------------------
The DOTP2014 CW is updated nightly between 11 PM and 12 AM EST.
Known Issues/Bugs |
Impossible Cards List | Update Your Land Pools
Splinterverse
 
Posts: 918
Joined: 04 Sep 2016, 13:32
Has thanked: 150 times
Been thanked: 75 times

Re: Planechase development -- 84/86 uploaded

Postby migookman » 14 Jul 2019, 01:02

Yes, they still aren't casting their commanders. At one time, they were casting well.
User avatar
migookman
 
Posts: 135
Joined: 05 Aug 2014, 06:37
Has thanked: 21 times
Been thanked: 28 times

Re: Planechase development -- 84/86 uploaded

Postby Splinterverse » 14 Jul 2019, 10:49

migookman wrote:Yes, they still aren't casting their commanders. At one time, they were casting well.
Bummer. I think it has to do with the fact that we're using Exile for the Command Zone. There aren't many cards that interact with Exile and so the AI is probably pretty much trained to ignore Exile.

That said, I do think Exile is probably the best place for the Command Zone since the risk of it interacting poorly with another card there is much lower than other zones.

However, there may be some options to fix the issue:
1. We could make either the Commander Manager visible or some other card visible (similar to the _PLANECHASE card) for each player. That card could have the Commander exiled and nailed onto it. It could have an activated ability on it that casts the Commander from the Command Zone (or something to that effect). Having something on the battlefield for the AI to interact with would make it much more likely to click on it. We would need to make that card a special enchantment (like City's Blessing, The Monarch, _PLANECHASE etc.). We would need to include AI AVAILABILITY blocks and a high score on the card to make the AI interested.
2. We could change where the Command Zone is located, but we'd have to give the commander protections so that it couldn't be messed with when it was in the "Command Zone."
3. We could do one of the above but make it only happen if the game detects that the player is AI.

Xander9009 would probably have to implement what we described above, because it is quite complicated. Although, if there's someone out there that wants to try, there's no harm in trying using local files. If anybody needs help with the special enchantment/protections piece, I could help with that.
---------------------------------------------
The DOTP2014 CW is updated nightly between 11 PM and 12 AM EST.
Known Issues/Bugs |
Impossible Cards List | Update Your Land Pools
Splinterverse
 
Posts: 918
Joined: 04 Sep 2016, 13:32
Has thanked: 150 times
Been thanked: 75 times

Re: Planechase development -- 84/86 uploaded

Postby Parabolic » 31 Jul 2019, 21:49

One very powerful bug I've found: Windriddle Palaces ignores that playing a land off of it counts as playing a land. I was able to get 7 land out turn 1 because I just kept plucking them off the top of my opponent's decks.
Parabolic
 
Posts: 74
Joined: 12 Jul 2013, 19:22
Has thanked: 10 times
Been thanked: 10 times

Re: Planechase development -- 84/86 uploaded

Postby Splinterverse » 31 Jul 2019, 22:09

Parabolic wrote:One very powerful bug I've found: Windriddle Palaces ignores that playing a land off of it counts as playing a land. I was able to get 7 land out turn 1 because I just kept plucking them off the top of my opponent's decks.
Sorry to hear that. I have code to handle that and I don't see anything wrong with that code, so hopefully someone else can see what's wrong and let us know. The code is shown below.

Code: Select all
<ACTIVATED_ABILITY forced_skip="1">
      -- I had to make this ability an activated one. I tried various combinations of granted abilities, utility abilities, etc. and they didn't work. The granting of an ability to cast an opponent's card from exile, for example, only works when two players are involved (the owner and the controller). In situations like this where we need 3 players to be considered, those utility ability tags don't work.
      <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[You may play the top card of any player’s library during your turn.]]></LOCALISED_TEXT>
      <COST mana_cost="{0}" type="Mana" />
      <AVAILABILITY any_player="1">
         return EffectController():MyTurn() == true
      </AVAILABILITY>
      <RESOLUTION_TIME_ACTION>
         local selectionDC = EffectDC():Make_Chest(80)
         for i=0, MTG():GetNumberOfPlayers()-1 do
            local nthPlayer = MTG():GetNthPlayer(i)
            if nthPlayer ~= nil and nthPlayer:Library_GetTop() ~= nil then
               if nthPlayer ~= EffectSource():GetOwner() then
                  local card = nthPlayer:Library_GetTop()
                  if card ~= nil then
                     selectionDC:Set_CardPtr(i, card)
                     if EffectController():CanCastSpellUsingResourceCost(card, 10) == false then
                        selectionDC:QueryUnselect_CardPtr(i)
                     end
                  end
               end
            end
         end
         EffectController():ChooseItemFromDC("SPL_CARD_QUERY_CHOOSE_CARD_TO_PLAY", selectionDC, EffectDC():Make_Targets(10), QUERY_FLAG_MAY)
      </RESOLUTION_TIME_ACTION>
      <RESOLUTION_TIME_ACTION>
         -- per the rulings: 2012-06-01 If the top card of a player’s library is a land card, you may play it only if you haven’t played a land yet that turn.
         local target = EffectDC():Get_Targets(10) and EffectDC():Get_Targets(10):Get_CardPtr(0)
         if target ~= nil then
            if target:GetCardType():Test( CARD_TYPE_LAND ) == true then
               local interrogation = MTG():ClearInterrogationQuery()
               interrogation:SetPlayer( EffectController() )
               interrogation:SetToZone( ZONE_BATTLEFIELD )
               interrogation:SetFromZone( ZONE_HAND )
               interrogation:SetType( CARD_TYPE_LAND )
               local lands = interrogation:Count( INTERROGATE_CARDS_MOVED_ZONE, INTERROGATE_THIS_TURN )
               if lands == 0 then
                  target:PutOntoBattlefield(EffectController())
               else
                  Debug("You already played a land this turn.")
               end
            elseif EffectController():CanCastSpellUsingResourceCost(target, 10) then
               EffectController():CastSpellUsingResourceCost(target, 10)
            else
               Debug("You can't play this card.")
            end
         end
      </RESOLUTION_TIME_ACTION>
      <AI_AVAILABILITY window_step="begin_combat" window_turn="my_turn" type="window" />
      <AI_AVAILABILITY window_step="begin_combat" window_turn="their_turn" type="window" />
      <AI_AVAILABILITY window_step="declare_attackers" window_turn="my_turn" type="window" />
      <AI_AVAILABILITY window_step="declare_attackers" window_turn="their_turn" type="window" />
      <AI_AVAILABILITY window_step="declare_blockers" window_turn="my_turn" type="window" />
      <AI_AVAILABILITY window_step="declare_blockers" window_turn="their_turn" type="window" />
      <AI_AVAILABILITY window_step="end_of_turn" window_turn="my_turn" type="window" />
      <AI_AVAILABILITY window_step="end_of_turn" window_turn="their_turn" type="window" />
      <AI_AVAILABILITY window_step="main_1" window_turn="my_turn" type="window" />
      <AI_AVAILABILITY window_step="main_1" window_turn="their_turn" type="window" />
      <AI_AVAILABILITY window_step="main_2" window_turn="my_turn" type="window" />
      <AI_AVAILABILITY window_step="main_2" window_turn="their_turn" type="window" />
   </ACTIVATED_ABILITY>
   <UTILITY_ABILITY resource_id="10">
      <COST mana_cost="*" type="Mana" />
   </UTILITY_ABILITY>
---------------------------------------------
The DOTP2014 CW is updated nightly between 11 PM and 12 AM EST.
Known Issues/Bugs |
Impossible Cards List | Update Your Land Pools
Splinterverse
 
Posts: 918
Joined: 04 Sep 2016, 13:32
Has thanked: 150 times
Been thanked: 75 times

Next

Return to 2014

Who is online

Users browsing this forum: No registered users and 30 guests


Who is online

In total there are 30 users online :: 0 registered, 0 hidden and 30 guests (based on users active over the past 10 minutes)
Most users ever online was 4143 on 23 Jan 2024, 08:21

Users browsing this forum: No registered users and 30 guests

Login Form