Senryoku / Draftmancer

Multiplayer MTG Limited Simulator

Home Page:https://draftmancer.com

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

On Draft Effect: AddToDraftPool

Gochris10 opened this issue · comments

A QOL feature for custom cubes that want a very specific effect. Basically, after you draft the card, you also add a specific pool of cards to your draft pool. Some canon examples that I've heard of people using are Bruna and Gisela, Krav and Regna, both halves of B.F.M., and 4x Squadron Hawk.

To offer full specification would likely require some array <CardID | CardFace>. One possible implementation might leverage the related_cards field to avoid adding another parameter:
{
"name": "Squadron Hawk",
"mana_cost": "1W",
"type": "Creature",
"related_cards": [
"Squadron Hawk", "Squadron Hawk", "Squadron Hawk"
]
"draft_effects": [
"AddToDraftPool"
]
}

In the above case, drafting Squadron Hawk would add four copies of Squadron Hawk to your draft pool after confirming your pick. Alternatively, this could trigger after the draft, not on pick.

An additional effect that I am personally interested in the implementation of (but have no idea how it would work) is adding random cards to your pool using Scryfall. For example, a card that reads "After you draft this card, add a random green creature with mana value 6 or greater to your draft pool." might look like this:
{
"name": "Largeness Appreciator",
"mana_cost": "G",
"type": "Creature",
"related_cards": [
Random Green Creature
]
"draft_effects": [
"AddToDraftPool"
]
}

I'd rather avoid using the related_cards field for this, it will only save a minuscule amount of work and is already limiting (can't use it for its intended purpose, and in your example it will already display 'Squadron Hawk' three times in the UI for no apparent reason).

I started working on a prototype for your first proposal (#642) and deployed it at http://beta.draftmancer.com.
I'm leaning toward this syntax (the previous one with just the effect name is still valid for effects without parameters):

"draft_effects": [
  {
    "type": "AddCards", 
    "cards": ["Gisela, the Broken Blade"]
  }
]
"draft_effects": [
  {
    "type": "AddCards", 
    "cards": ["Squadron Hawk", "Squadron Hawk", "Squadron Hawk"]
  }
]

See the attached cube files for quick testing!
CustomCards_DraftEffect_AddCards.txt
CustomCards_DraftEffect_AddCards_Squadron_Hawk.txt

About the second effect, I'm a little hesitant to add something that rely on the Scryfall syntax, however the previous AddCards effect could easily be extended to support picking a card at random from the list. I'm thinking the best would be to add another effect, something like this:

"draft_effects": [
  {
    "type": "AddRandomCards", 
    "count": 1,
    "cards": ["Ancient Imperiosaur", ... (long list of green creatures) ...]
  }
]

Thoughts?

Wow, that was crazy fast! This is basically the ideal implementation I was hoping for and tests like a dream!

AddRandomCards would be very cool to see, although I don't know if it's a common enough effect to be worth implementing. I know I would use it though, haha :)

#642 is merged so I think I can close this.

Note: I ended up merging AddCards and AddRandomCards.

"draft_effects": [
  {
    "type": "AddCards", 
    "count": 1,
    "cards": ["Ancient Imperiosaur", ... (long list of green creatures) ...]
  }
]

count is optional and will default to the length of cards (i.e. previous AddCards behavior). If count is less than the number of entry in cards, the additional cards will be randomly picked from cards (like AddRandomCards previously).